System Engineering/OS

Linux #12. 내가 보려 만든 리눅스 명령어 모음 Vol.1

ZunoXI 2023. 10. 12.

개요

 

실무에서 자주 사용하는 리눅스 명령어에 대해 기술

 

 

 

 

참고

https://www.inflearn.com/course/%EB%A6%AC%EB%88%85%EC%8A%A4-bash-%EC%8B%A4%EC%A0%84%ED%8E%B8/dashboard

 

시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script - 인프런 | 강의

실전편은 쉘스크립트 뿐 아니라 인프라 전반을 다루고 있습니다. 정말 실무에 가까운 이야기와 실무에서 많이 다뤄야만 하는 트러블슈팅(장애 해결) 위주로 구성했어요!, Linux 중급자로 나아가

www.inflearn.com

- 인프런, "시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script" 강의 참고 

 

 

 

리눅스 쉘(Shell)

 

리눅스도 GUI를 제공하지만 일반적으로 CLI를 많이 쓰는 이유는 GUI에 사용되는 CPU, Memory 등의 리소스를 아껴 서비스 리소스제공에 힘을 실을 수 있기 때문이다. 일반적으로 bash shell이 GNU 프로젝트 리눅스(대부분의 실무에서 사용하는 리눅스)의 기본 쉘이다. 

 

bash CLI 유용한 단축키

 

  • Ctrl + a : 라인 맨 앞으로 커서 이동
  • Ctrl + e : 라인 맨 뒤로 커서 이동
  • Ctrl + r : history 검색

 

파일시스템관련 명령어

cd (Change Directory)

cd - : 바로 전 디렉토리로 이동

 

ls (list) 

-h(human readable) : 사람이 보기 편한 방식으로 용량 표기
-t :  시간순으로 나열하여 표기 (r 옵션 추가 시 반대로 정렬하여 표기)
-l : 리스트 형식으로 출력
-a  : 숨김파일도 모두 표시

df (disk free)


- h : 사람이 보기 편한방식으로 용량표기
- t : 디스크 타입을 표기
- i : i node 확인 

 

 

라인 출력

head : 지정한 파일의 1라인부터 지정한라인까지 출력 (기본 : 10)
tail : 지정한 파일의 마지막 라인부터 지정한 수만큼 출력 (기본 : 10)
- t : 실시간으로 파일을 열어두고  ctrl + c 로 죽이기 전까지 지속적으로 출력됨  
- F : f옵션에서  logrotate로 로그파일이 변경되는 것을 연동해서 지속적으로 출력함

 

파일 이동 / 복사

 

cp(copy) : 지정한 파일을 지정한 위치와 이름으로 복사
- r : recursive 하위디렉토리 포함
- f : force 강제 복사(오버라이트 가능)
- p : 퍼미션을 그대로 복사

 

mv (Move) : 지정한 파일을 지정한 위치와 이름으로 이동 (원본 디렉토리가 남아 있는지의 여부가 cp와 다름)

 

 

파일 조작

 

touch : 지정한 이름의 비어있는 파일을 생성하거나 파일이 있는경우 타임스태프를 업데이트

 

rename : 지정한 규칙에 따라 여러개의 파일 이름을 변경
- rename 변경전파일명 변경후파일명 대상파일
- ex) test1, test2, test3 의 파일들을 test01, test02, test03으로 변경
 rename test test0 test? => test라는 문자를 test0으로 변경하고 대상 ?은 숫자 또는 문자가 한자리를 차지하고 있는 것을 대상으로 하겠다는 의미(정규표현식)

-> 위 내용대로 수행하면 test2 testa3 의 파일이 있는 경우 test2만 test02로 이름이 변경된다

 

rm (ReMove) : 지정한 파일을 삭제 (실수로 삭제하면 돌이킬 수 없으니 조심할 것)
- r : recursive 하위디렉토리, 파일 포함
- f : force 강제로 삭제
- i : 정말로 지울지 확인하는 메시지를 띄워주는 기능
 . 삭제 시 rm -rf test? 이라고 입력하면 test 뒤에 숫자 또는 문자가 한자리 차지 하고 있는 것을 의미
- 특정 파일 제외 삭제 시 

 . rm -v !("삭제 제외할 파일")

 

ln : 지정한 파일에 대한 심볼릭 링크나 하드링크 생성
- 옵션을 사용하지 않으면 하드링크 파일을 생성 (한쪽을 삭제해도 원본 데이터를 볼 수 있다)
- -s옵션을 사용하면 심볼릭링크를 생성 ( 윈도우 바로가기와 같음, 원본이 삭제되면 함께 삭제됨)

심볼릭 링크로 (-s) 옵션으로 사용하면 l 표시가 파일 접근권한자에 표시된다. (ex. lrwxrwxrwx)
- 실제로 실무에서는 심볼릭링크를 사용하는 경우가 많으므로 -s 붙여서 사용하는 것을 기억하는 것이 좋다.

 

기타 유용한 명령어

 

stat : 지정한 파일의 통계를 출력
cat(catenate) : 지정한 파일의 내용을 출력 

less : 상하로 커서 이동이 가능한 파일보기 (cat보다는 긴 파일을 쉽게 볼 수 있다는 장점이 있음)

paste : 지정한 파일들의 행을 읽어 탭으로 구분하여 병합

 

dd (dataset definition) : 블록 단위로 데이터셋을 정의하여 파일을 쓰고 읽음
- dd if=인풋파일이름 of=아웃풋파일이름 bs=바이트(크기) count=블럭을 복사할 횟수
- /urandom 은 자동으로 난수를 생성해주는 장치파일
- /dev/zero 는 파일 내용을 0으로 채우는 기능
- 금방 만들어지기 때문에 실제로 테스트할때는 몇 기가 단위로 만들어서 성능을 테스트한다.

 

tar (Tape Archive) : 지정한 데이터 및 디렉토리를 하나의 파일로 만듦
- 파일을 묶을 때 : tar -cvzf 타르볼 파일명디렉토리 명 /파일명
- 파일을 풀때 : tar -xvzf 타르볼파일명
- -c : create : 생성한다.
- -v : vervorse 행위의 진행내용을 보여주는 경우
- -z : zip으로 압축한다는 의미
- -f : 파일 이름을 명시적으로 기입한다는 의미
- -x : extract 타르볼을 풀어주겠다는 의미
- -tf : 압축파일내용을 보여주는 용도
- tgz : 과거 타르볼에 압축 지원 안 할 때 gz로 압축을 했어서 tar.gz라는 식으로 확장했었는데, 이후 타르볼이 지원하면서 tgz 형식으로 압축명을 지정함
- 특정 파일이나 폴더를 제외하고 압축하고 싶을 때
 . tar -cvzf [저장할 파일명] --exclude [제외시킬 경로 혹은 파일] [압축할 대상]

반응형

댓글