리눅스 쉘 기본 명령어(Basic Shell Commands)
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
리눅스 쉘 기본 명령어에 대해 알아보겠습니다. 옵션은 대부분 제외하였습니다.
cd
가장 많이 쓰는 명령어 중에 하나인 cd는 "change directory"의 약자로 특정 디렉토리로 이동하고 싶을 때 사용합니다. cd 뒤에 가고 싶은 디렉토리 경로를 입력합니다.
cd <가고자 하는 디렉토리 경로>
cd # 사용자 디렉토리로 이동
cd / # root 디렉토리로 이동
cd .. # 상위 디렉토리로 이동
cd Desktop/wecode # Desktop 하위 wecode 디렉토리로 이동ls
ls는 "list"의 약자로, 현재 디렉토리에 속한 파일 및 디렉토리를 나열해줍니다.
➜ ls #현재 디렉토리에 있는 내용 출력
django-tutorial javascript_assignment study
➜ ls -a # 숨겨진 파일이나 디렉토리도 함께 보여줌
. .DS_Store django-tutorial study
.. .git javascript_assignment
➜ ls -l # 자세한 내용(권한, 포함된 파일 수, 소유자, 그룹, 파일크기, 수정일자, 파일이름)
drwxr-xr-x@ 4 LeeJongMin staff 128 2 1 22:42 django-tutorial
drwxr-xr-x@ 4 LeeJongMin staff 128 2 4 12:54 javascript_assignment
drwxr-xr-x@ 19 LeeJongMin staff 608 1 3 10:07 study
➜ ls -al # a와 l의 기능을 모두 포함
total 16
drwxr-xr-x 7 LeeJongMin staff 224 2 4 12:53 .
drwx------@ 47 LeeJongMin staff 1504 2 5 17:25 ..
-rw-r--r--@ 1 LeeJongMin staff 6148 2 1 22:42 .DS_Store
drwxr-xr-x 14 LeeJongMin staff 448 2 5 23:44 .git
drwxr-xr-x@ 4 LeeJongMin staff 128 2 1 22:42 django-tutorial
drwxr-xr-x@ 4 LeeJongMin staff 128 2 4 12:54 javascript_assignment
drwxr-xr-x@ 19 LeeJongMin staff 608 1 3 10:07 study
➜ ls -h -al # -h를 붙이면 K, M, G 단위의 파일크기를 사용하여 사람에게 보기 좋게 표시
total 16
drwxr-xr-x 7 LeeJongMin staff 224B 2 4 12:53 .
drwx------@ 47 LeeJongMin staff 1.5K 2 5 17:25 ..
-rw-r--r--@ 1 LeeJongMin staff 6.0K 2 1 22:42 .DS_Store
drwxr-xr-x 14 LeeJongMin staff 448B 2 5 23:45 .git
drwxr-xr-x@ 4 LeeJongMin staff 128B 2 1 22:42 django-tutorial
drwxr-xr-x@ 4 LeeJongMin staff 128B 2 4 12:54 javascript_assignment
drwxr-xr-x@ 19 LeeJongMin staff 608B 1 3 10:07 studymv
mv는 "move"의 약자로 파일이나 디렉토리를 원하는 곳으로 옮기거나, 이름을 변경할 때 사용할 수 있는 명령어 입니다.
cp
cp는 "copy"의 약자로 파일이나 디렉토리를 원하는 곳에 원하는 이름으로 복사할 수 있는 명령어 입니다.
cat
cat은 "concatenate"의 약자로 두 개 이상의 파일을 연결해서 출력할 때 사용됩니다. (하나만 출력할 수도 있지만 일반적으로 두 개 이상일 때 사용합니다.
less
less는 파일 내용을 확인하는 명령어들 중 하나로, 한 번에 보여지는 만큼만 vim과 같은 내부 창에 새로 출력을 해줍니다. 해당 창에서 위아래로 움직이며 파일 내용을 확인할 때 용이합니다. 파일 수정은 불가합니다.
tail
tail은 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력해줍니다. 아무 옵션을 주지 않으면 기본적으로 10개 행을 출력해줍니다.
nohup
nohup은 터미널을 종료해도 프로그램이 백그라운드에서 계속 실행되도록 하는 명령어 입니다.
자세한 내용 아직 이해가 가지 않아서 추후에 다시 정리하겠습니다.
rm
rm은 remove의 약자로 파일과 디렉토리 삭제에 사용되는 명령어 입니다.
mkdir
mkdir은 "make directory"의 약자로 새로운 디렉토리를 만들 수 있는 명령어 입니다. 참고로 touch <파일명>으로는 새로운 파일을 만들 수 있습니다.
clear
clear는 말 그대로 쉘 창에 있는 기록을 모두 지워줍니다. 맥 사용자의 경우 cmd+k도 똑같은 기능을 합니다.
pwd
pwd는 "print working directory"의 약자로 현재 작업 중인 디렉토리의 절대 경로를 반환해줍니다. 지금 있는 곳이 어딘지 모르겠다면 pwd를 입력해보세요.
chown
chown은 파일이나 디렉토리의 소유권자 및 그룹식별자를 바꾸는 명령어 입니다. "change ownership" 뭐 이런거 같네요.
각 파일이나 디렉토리의 소유권자는 위에서 살펴본 ls -al 명령어를 사용하면 확인할 수 있습니다.
chmod
chmod는 해당 파일이나 디렉토리의 퍼미션(허용 권한)을 수정할 수 있는 명령어 입니다.
ls-al명령어를 치면 아래와 같은 결과가 출력되는데요, 여기서 맨 앞에 있는 rwxr-xr-x 이 9자리의 문자가 퍼미션과 관계가 있습니다. 참고로 9자리 문자의 앞에 있는 "d"는 디렉토리, "i"는 링크파일, "-"는 일반파일을 나타냅니다.
9자리를 표현하는 문자는 "r", "w", "x","-" 4가지가 있는데요, 각각 아래와 같은 뜻을 가집니다.
"r" : 읽기 권한
"w" : 쓰기 권한
"x" : 실행 권한
"-" : 권한 없음
그리고 9자리는 각각 3자리씩 나눠서 권한을 가지는 사용자가 구분되는데요, 그 구분은 아래와 같습니다.
첫 3자리 : 소유자
중간 3자리 : 그룹
마지막 3자리 : 모든 사용자
위에서 나왔던 rwxr-xr-x를 예시로 보면, 소유자는 읽고, 쓰고, 실행할 수 있는 모든 권한(rwx)을 가졌고, 그룹과 모든 사용자는 읽고 실행할 수 있는 권한(r-x)을 가졌네요. 이 권한을 수정할 수 있는 방법은 아래와 같습니다.
여기서 퍼미션 값이란, 각 문자를 숫자로 변환한 값(r=4, w=2, x=1)을 더한 값입니다. 예를 들어 rwx는 7, r-x는 5입니다. 이런식으로 각 그룹별로 끊어서 숫자를 입력하면 됩니다.
grep
grep은 특정 파일 내에서 지정한 패턴을 가진 문자열을 찾은 후, 해당 문자열을 출력해줍니다. 그리고 패턴에는 정규표현식의 패턴을 사용합니다. 정규표현식 패턴은 이전에 정리한 적이 있으니 참고해보세요! -> 정규표현식 알아가기
history
history는 현재까지 쳤던 모든 명령어 리스트를 행 넘버와 함께 출력해줍니다.
ps
ps는 현재 작동하는 프로세스의 목록을 출력해줍니다. 뒤에 붙는 옵션에 따라 출력되는 값이 달라집니다. (ps도 아직 프로세스에 대한 이해가 부족해 나중에 다시 정리하도록 하겠습니다.)
-a : 전체 사용자의 프로세스 출력
-u : 각 프로세스 사용자 및 사용시간 출력
-x : 제어 터미널이 없는 프로세스 출력
-l : 자세한 형태의 정보 출력
-e : 모든 프로세스 상태 출력
man 과 tldr
man은 명령어를 어떻게 쓰는지 설명해주는 내용을 출력해줍니다. 하지만 내용이 좀 방대하게 나와서 중요한 부분만 알려주는tldr로 대체해서 사용하기도 합니다. 다만 tldr은 내장되어있지 않기 때문에, 패키지매니저를 통해 따로 설치해야 합니다.
기타 꿀팁
Control + a 눌르면 커서가 해당 줄의 맨 앞으로 이동합니다. Control + e 눌르면 커서가 해당 줄의 맨 뒤로 이동합니다.
Last updated