자주 사용하는 리눅스 명령어 정리
인프런 개발자를 위한 쉬운 리눅스 참고 하였습니다.
파일시스템
현재 위치 확인
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 |
---|