반응형

자주 사용하는 리눅스 명령어 정리

인프런 개발자를 위한 쉬운 리눅스 참고 하였습니다.

 

파일시스템

현재 위치 확인

pwd(print working directory)

$ pwd                        
/Users/user

 

디렉터리 생성

mkdir(make directroy)

$ cd ~
$ mkdir easylinux        easylinux  디렉터리 생성

 

디렉터리를 이동

cd(change directory)

$  cd ./                            현재 디렉터리 이동
$  cd easylinux               현재 디렉터리에서 easylinux디렉터리 이동
$  cd ./easylinux             현재 디렉터리에서 easylinux디렉터리 이동
$  cd ~                            홈 디렉터리 이동 
$  cd ..                            상위 디렉터리 이동
$  cd /                             root 디렉터리 이동

 

디렉터리의 파일 리스트 조회

ls(list)

$  ls                                현재 위치 기준 디렉터리 조회
$  ls easylinux                easylinux 디렉터리위치 기준 디렉터리 조회
$  ls -alh                         숨김 파일 및 파일 사이즈도 함께 조회

 

디렉터리/파일의 구조를 확인

tree

$ tree                             일반조회
$ tree -d                         디렉터리만 조회
$ tree -a                         숨김파일까지 조회
$ tree -L {깊이}               깊이 지정 조회

 

디렉터리/파일을 복사

cp(copy)

파일 복사: cp [원본 파일] [대상 위치]

다른이름으로 복사: cp [원본 파일] [위치와 파일명]

디렉터리 복사: cp -r [원본 위치] [대상 위치]

현재 디렉터리로 복사: cp -r [원본 위치] .

$ cd easylinux
$ touch file1 && toch file2      file1,file2 파일 생성
$ cp file1 ../                            상위 디렉터리에  file1복사
$ mkdir badlinux
$ cp file2 badlinux/file3          file2 파일을 badlinux 디렉터리에 file3이름으로 복사
$ cp -r . badlinux                    현재 디렉터리를 badlinux디렉터리에 복사
$ cp -r badliniux .                    badlinux 디렉터리를 현재 디렉터리에 복사

 

디렉터리/파일을 이동

mv(move)

파일/디렉터리 이동: mv [원본 위치] [새 위치]

$ cd ~/easylinux/badlinux
$ mv badlinux ../badlinux2       badlinux 디렉터리 안 badlinux 디렉터리를 상위디렉터리로 badlinux2로 이름을 바꿔서 이동

 

디렉터리/파일을 찾기

find

파일/디렉터리 찾기: find [찾을 위치] -name [파일/디렉터리명]

$ cd ~/easylinux
$ find badlinux -name file1        badlinux 디렉터리에서 file1 찾기

 

디렉터리/파일을 삭제

rm(remove)

파일 삭제: rm [삭제할 파일 위치]

디렉터리 삭제: rm -r[삭제할 디렉터리 위치]

파일 강제 삭제(*주의): rm -rf [삭제할 파일 위치]

 

$ cd ~/easylinux/badlinux2

$ rm file1                               file1 삭제

$ rm -r badlinux                    badlinux 디렉터리 삭제

 

파일 작성하고 수정

vi편집기 사용

INSERT 모드(i)             : 문자 편집 가능

 

COMMAND 모드(esc)   : 복사/붙여넣기/ 파일저장/종료 등 다양한 작업가능

:q                                                  종료(quit)  
:q!                                                 강제종료
:wq                                               저장(write) 후 종료 
:wq!                                              저장(write) 후 강제종료 

dd                                                 줄삭제(delete)
yy                                                 복사(copy)
p                                                   붙여넣기(paste)
u                                                   되돌리기(undo)

:set number                                  라인 넘버 보기
/검색어 -> enter -> n으로탐색      검색
:%s/원본/대체/g                            원본  대체 변경

 

파일의 내용을 확인

cat

$cat nginx.conf

 

파이프 '|'

[이전 명령어] |[이후 명령어] 명령어의 출력을 다음 명령으로 전달

 

출력 내용을 검색하는 grep

파일의 내용 검색: cat [파일명] | grep [검색어]

이전 n라인 출력: grep -B n [검색어]

이후 n라인 출력: grep -A n [검색어]

대소문자 구분 없이 검색: grep -i [검색어]

$cat nginx.conf | grep cmd           nginx.conf 안 cmd검색
$cat nginx.conf | grep -B 3 cmd   nginx.conf 안 cmd검색  이전3라인 출력
$cat nginx.conf | grep -A 2 cmd   nginx.conf 안 cmd검색  이후2라인 출력
$cat nginx.conf | grep -i cMd       nginx.conf 안 cmd검색  대소문자 구문없이

 

출력 결과를 저장하는 리다이렉션

>      기존파일이 있는경우 덮어쓰기

>>    기존 파일이 있는경우 내용추가

$cat nginx.conf | grep cmd > test.txt           검색한 내용을 test.txt파일에 저장
$cat nginx.conf | grep cmd >> test.txt         검색한 내용을 test.txt파일에 추가 저장

 

큰 파일 읽을때

less

$ cat nginx.conf > tree_result.txt
$ less tree_result.txt                            enter, space 로 탐색 q로 종료

 

아카이브란?

여러 파일이나 디렉터리를 하나의 파일로 묶음 (tar)

압축?

데이터를 더 작은 크리고 죽이는 과정 포함 (zip, gz..)

 

아카이브

파일이나 디렉터리 아카이브           : tar -cvf [결과파일.tar] [디렉터리또는파일] \

파일이나 디렉터리 아카이브 해제    :tar -xvf [결과파일.tar]

 

아카이브를 압축하는 tar

파일이나 디렉터리 압축                  : tar -czvf [압축파일.tar.gz] [디렉터리또는파일]

파일이나 디렉터리 압축 해제          : tar -xzvf [압축파일.tar.gz]

 

시스템 관리 기본

ifconfig             IP확인 

chmod +x       실행 권한이 부여

chmod +x go-web-application-windows.exe      go-web-application-windows.exe 프로그램 실행권한 부여
./ go-web-application-windows.exe                    go-web-application-windows.exe 실행
./ go-web-application-windows.exe &                 go-web-application-windows.exe  백그라운드에서 실행

ps -al              실행 중인 프로세스를 조회하는 

kill                  실행 중인 프로세스(PID)를 종료하는 

kill -9 PID       강제종료

 

터미널 활용

watch            주기적으로 명령어를 실행하는

watch –n [주기(초)] [실행할 명령어]

$ watch -n 1 ps -al                     1초 간격으로 실행된 프로세스 확인

 

export            환경변수를 지정하는 

$ export WEBAPP_VAR=linux1     환경변수 지정

 

alias              명령어를 단축어로지정하는 

alias [새로운명령]=[기존명령어조합]

$ aslias mktar='tar -cvf'
$ mkdir tartest
$ cd tartest
$ touch file1 && touch file2
$ mktar test.tar .                           현재 디렉터리를 test.tar로 아카이브

 

명령어 환경 설정 (zsh, bash)

- 사용자의 홈 디렉터리에 .zshrc, .bashrc 파일 수정

- 파일의 명령어들은 쉘 세션 시작 시 자동으로 실

$ vi ~/.zshrc                                  (zsh인 경우)    
$ vi ~/.bashrc                                (bash인 경우)  
export WEBAPP_VAR=devwiki
alias mktar='tar -cvf'                      터미널 시작시 .bashrc에 있는 명령어 자동으로 실행

 

참고

ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력

ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력

ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력

ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력

반응형

'Backend > 리눅스' 카테고리의 다른 글

터미널(Terminal) 쉘(Shell) 개념 정리  (0) 2024.07.08
반응형

터미널(Terminal)과 셸(Shell) 개념을 간단히 알아보겠습니다.

터미널(Terminal)이란?

버스 터미널처럼 무언가 들어오고(input,입력), 나가는(output,출력) "창구"를 의미한다.

bash(대표적인 Shell 프로그램) 나 cmd 에서 CLI(command line interface) 방식으로 입력과 출력을 얻는 그 화면 자체를 터미널이라고 한다.

 CLI (Command Line Interface)

명령 줄 인터페이스.
터미널을 통해 사용자와 컴퓨터가 상호작용하는 방식을 뜻한한다.
입력과 출력형태로 동작하며 모두 text 형태로 이루어져 있다.

 

쉘(Shell)이란?

직역하면 껍질이라는 뜻이다.쉘은 말 그대로 커널(kernel)을 감싸고 있는 껍질이다. 사용자는 커널에 접근하기 위해선 쉘을 거쳐야합니다. 즉, 쉘은 커널과 사용자 사이의 매개체 역할을 하는 프로그램을 말한다.

 

우린 종종 윈도우환경에서 명령 프롬프트(CMD)를 통해 운영체제에 접근하여 뭔가 실행하거나, 디렉토리를 만들거나(mkdir) 디렉토리를 이동(cd) 한다. 이때 사용하는 명령 프롬프트(CMD)를 shell 이라고 한다.

(kernel) 커널

직역하면 '핵심'이라는 뜻이다.  운영체제(OS)의 주요 구성 요소.
컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스이다.
OS 내에 위치하고, 하드웨어의 모든 주요 기능을 제어하기 때문에 붙은 이름이다. 메모리 위에 항상 상주.

 

정리

터미널과 쉘의 차이는?

터미널 위에 쉘이 실행되고 있는것이다. 터미널은 명령을 입력하는 쉘을 실행하기 위한 토대라고 볼수 있다.

이 둘은 함께 실행될 수 박에 없다. 티비를 켜면 무조건 화면 안에 무언가가 방송되고있거나 지지직거리는것처럼!

터미널을 활성화 함과 동시에 쉘이 실행된다고 봐도 무방하다.

 

 

반응형

'Backend > 리눅스' 카테고리의 다른 글

리눅스 명령어 정리  (1) 2024.07.08

+ Recent posts