[Linux] 기본 쉘 명령어 정리

강주형·2023년 2월 11일
0

리눅스 입문

목록 보기
1/3

세세한 옵션들을 실사용하면서 익히기

man

$ man ls
$ man dir

man: manual의 약자
해당 명령어의 매뉴얼을 보여줌

매뉴얼 내에서 검색하고자 할 때 /검색내용 사용
예를 들면 /help

현재 검색내용의 다음 것을 보고싶으면 / 만 다시 명령하면 됨


디렉터리 관련

$ ls: 현재 디렉터리에 있는 파일들 보여줌

$ cd: 디렉터리 변경 (change directory), 디렉터리명 입력 안 하면 홈 디렉터리로 이동

$ cd ..: parents directory로 이동

$ cd -: 직전 디렉터리로 이동

$ pwd: 현재 디렉터리 위치 보여줌

~: 현재 사용자의 홈 디렉터리 (예: /home/joohyeong)


예시


파일 내용 조회

$ cat: 문서 전체 내용 출력
$ head: 문서 상단 일부 출력
$ tail: 문서 하단 일부 출력

예시

<참고>
more/less 한 화면에 보여줄 수 있을 만큼 조금씩 잘라서 출력할 때 사용
vim: 텍스트 에디터, 사용법이 좀 복잡함
nano: 텍스트 에디터, 윈도우에 익숙하면 좀 더 쓰기 편함

세세한 옵션은 man 이용해서 확인하기


파일 내용 검색

$ grep 파일 내용 중에 어떤 키워드를 찾을 떄 사용

여러 파일에서 검색하려면 다음과 같이 하면 됨

$ grep "키워드" 파일명1.txt 파일명2.log ...

화면에 출력이 되는 명령어 안에서 검색도 가능
아래처럼 사용

$ ls -al | grep "kern.log"

$ ls -al 명령을 했을 때 출력되는 것에서 kern.log 라는 키워드를 찾겠다.


이런식으로도 가능

<참고>
|: 파이프라인 기호
-> 다양하게 활용 가능


파일 검색

$ find 파일 검색할 때 사용

find로 찾은 파일들을 대상으로 delete, ls, ... 등의 기능도 사용 가능
기본 수식은 -print (출력)

find는 현재 디렉터리와 그 이하의 디렉터리를 모두 탐색함
즉, root에서 find하면 모든 디렉터리를 검색

<참고>
.: 현재 디렉터리
..: 현재 디렉터리의 상위 디렉터리

  • name: 파일의 이름으로 검색하겠다. (뒤에 패턴을 넣어줘야 함, 위 코드면 정확히 conf인 파일만 검색)
  • 허가 거부: 권한이 없음

더 간단히 쓰는 팁: 파이프 이용

find의 활용은 굉장히 광범위함


압축 관련 커맨드

리눅스에서는 *.zip 뿐만 아니라 *.gz, *.tar, *.tar.gz등도 많이 활용함

find로 출력된 리스트를 filelist라는 파일로 만든다는 뜻 (부등호 나중에 자세히)

$ gzip filelist

filelist 파일을 압축해서 filelist.gz 생성, 원래 파일은 삭제

$ gunzip filelist.gz

filelist.gz 파일을 압축 해제해서 filelist 생성, 압축 파일은 삭제

<참고> 리눅스는 확장자를 가리지 않음

$ mv 는 파일의 디렉티러를 이동하거나, 파일명을 바꾸는 등에 사용


filelist.gz 압축 파일을 확장자가 없는 test라는 파일명으로 바꾸고
$ file 명령어로 파일의 속성을 확인해본 결과 압축파일이라고 알려줌


*.tar.gz, *.tgz 등도 사용
tar: 툴 이름인데, 압축하는 게 아니라 파일을 쭉 연결해주는 역할 (파일 용량 그대로 합쳐만 주는 것)
gz: 하나로 연결한 것을 gz로 압축을 하는 것

아래 코드는 filelist.gzsnap 폴더를 묶어서 test2.tar.gz 파일로 압축하겠다는 뜻


newdir이라는 디렉터리를 새로 생성하고,
그 디렉터리에 상위 디렉터리에 있는 test2.tar.gz 압축 파일을 압축 해제하기

<참고>
상위 디렉터리에서 rm -rf newdir/ 하면 삭제됨


시간 및 기타 커맨드

현재 시간 출력

$ date

SSH 등 클라우드를 이용할 때 서버의 시간을 확인해야 할 때 주로 사용

연월일 포매팅으르 바꿀 수도 있음 ($ date --help로 확인)


내가 입력한 명령어 히스토리 조회

$ history


직전 커맨드 다시 실행
$ !!


쉘 끝내기

$ exit

쉘을 빠져나오면서 터미널이 쉘을 실행하고 있으니까 터미널도 같이 끝남
정확히는 쉘을 빠져나오는 것!

여기서 exit를 한 번 더 하면 터미널 꺼짐


지정한 문자열 또는 텍스트를 출력

변수를 출력할 때 주로 사용

$ echo

<참고>

  • $ 뒤에 뭐 붙이면 그 이름의 변수를 뜻함
  • PWD, PATH 등을 환경변수라고 함

각 변수들이 어떻게 지정되어 있나 확인

$ env


툴의 위치를 확인

$ which


관리자 권한 실행

리눅스를 처음 생성할 때 계정을 하나 필수적으로 만듦
리눅스에는 root라는 관리자 계정이 숨어있음
(윈도우에서의 Administrator)

두 계정의 권한이 다름
-> 어떤 일을 할 수 있는지의 차이

어떤 프로그램을 사용할 때는 기본적으로 관리자 계정으로 설치하기
설치하기 위해서는 관리자의 권한이 필요함

관리자 권한으로 실행할 떈 $ sudo 사용


apt 패키지 매니저

패키지 관리 시스템
사용자 -> Package Manager -> Repository

주로 패키지 설치/삭제/조회를 많이 함

Ubuntu에는 apt라는 패키지 툴이 있음 (CentOS에서는 yum 사용)
-> 하는 일은 다 비슷비슷함

$ apt --help하면 여러 기능을 볼 수 있음 (설치, 재설치, 조회, 제거, ...)


단, $ apt list는 내 PC에 설치된 패키지가 아니라 Repository에 저장되어 있는 패키지를 보여줌
-> 설치할 수 있는 패키지

$ apt list --installed하면 내 리눅스에 설치되어 있는 패키지만 보여줌


nano 텍스트 에디터

리눅스의 기본 텍스트 에디터는 Vim인데 사용법이 좀 복잡함 (Vi의 업그레이드 버전)

Ubuntu에는 nano라는 툴이 깔려있음, Vim보다 훨씬 직관적

$ nano

파일을 열 때는 $ nano filename 하면 됨

리눅스를 계속 공부할 거면 Vim에 익숙해지는 게 좋긴 함!

profile
Statistics & Data Science

0개의 댓글