터미널(Terminal)과 쉘(Shell)
리눅스에서 명령어를 사용하기 위해서는 명령어를 작성하고 관리하는 Linux Shell이란 것이 필요하다. 그리고 Linux Shell은 터미널(단말기)에서 실행되어야한다. 즉 터미널이 실행되면 텍스트를 입출력하기 위한 환경이 조성되고 shell이 실행된다고 생각하자. 리눅스에서 터미널을 열거나 git bash 같은 cmd창을 실행하면 프롬프트 창이 나오는데 여기에 shell이 실행되고 있는 것이다.
Linux system의 기본 명령어들
date
sepang@ubuntu:~$ date
Wed 01 Sep 2021 09:20:34 AM PDT
현재 날짜를 출력한다.
tty (teletypewriter)
sepang@ubuntu:~$ tty
/dev/pts/1
현재 사용중인 터미널의 이름을 출력한다. 터미널 탭을 하나 더 열고 tty를 입력하면 어떻게 될까?
sepang@ubuntu:~$ tty
/dev/pts/2
이름에서 차이를 보이는 것을 알 수 있다. 즉 다른 터미널을 가지는 것이다. 해당 명령어와 관련된 내용은 이후에 더 자세히 살펴보도록 하자
ls
sepang@ubuntu:~$ ls
Desktop Documents Downloads Music Pictures Public snap Templates Videos
현재 위치한 디렉토리에 있는 폴더 및 파일들을 출력한다.
ls -l
명령어에 특정 '-(option)'을 덧붙이면 이용하여 해당 명령어에 추가적인 기능을 더할 수 있게 된다. 'ls -l'같은 경우에는 파일 정보를 더욱 상세하게 출력한다.
sepang@ubuntu:~$ ls -l
total 36
drwxr-xr-x 2 sepang sepang 4096 Sep 1 04:38 Desktop
drwxr-xr-x 2 sepang sepang 4096 Sep 1 04:38 Documents
drwxr-xr-x 2 sepang sepang 4096 Sep 1 04:38 Downloads
-rw-rw-r-- 1 sepang sepang 0 Sep 1 09:39 file
drwxr-xr-x 2 sepang sepang 4096 Sep 1 04:38 Music
drwxr-xr-x 2 sepang sepang 4096 Sep 1 09:21 Pictures
drwxr-xr-x 2 sepang sepang 4096 Sep 1 04:38 Public
drwxr-xr-x 3 sepang sepang 4096 Sep 1 04:40 snap
drwxr-xr-x 2 sepang sepang 4096 Sep 1 04:38 Templates
drwxr-xr-x 2 sepang sepang 4096 Sep 1 04:38 Videos
ls -a
숨겨져 있는 파일까지 모두 출력한다.
touch + (name)
sepang@ubuntu:~$ touch file
sepang@ubuntu:~$ ls
Desktop Downloads Music Public Templates
Documents file Pictures snap Videos
파일을 생성하는 명령어이다. touch file 이후 ls를 확인해보면 'file'이라는 이름을 가진 파일이 생성되었음을 확인할 수 있다. 그리고 공백을 기준으로 파일이름을 연달아 적어 한번에 2개이상의 파일을 생성할 수 있다. 만약 파일 이름 앞에 '.'을 붙인다면 이 파일은 숨겨져서 ls 명령어로 찾을 수 없다.
※ 명령어를 실행할 때 현재 위치한 디렉토리의 파일과 폴더를 기준으로 실행된다
mkdir + (name)
epang@ubuntu:~$ mkdir dir1
sepang@ubuntu:~$ ls
Desktop Documents file Pictures snap Videos
dir1 Downloads Music Public Templates
touch가 파일을 생성하는 명령어였다면 해당 명령어는 디렉토리를 생성하는 명령어이다.
rm + (filename)
파일을 삭제하는 명령어이다. 공백을 기준으로 파일이름을 연달아 적어 한번에 2개이상의 파일을 삭제할 수도 있다. 참고로 '*'는 '모두 선택'이라는 뜻이다. 만약 rm *을 한다면 모두 현재 디렉토리의 모든 파일을 삭제한다는 뜻이다.
rmdir + (directory name)
디렉토리를 삭제하는 명령어이다. 만약 디렉토리가 비어있지 않다면 삭제 시도시 오류가 발생하므로 디렉토리를 삭제하려면 내부의 파일과 폴더를 먼저 삭제해야 한다.
rm -r + (directory name)
굳이 디렉토리 내부 내용을 일일이 삭제하지 않고 디렉토리를 삭제하는 명령어이다. -r의 'r'은 'recursive(재귀적)'이다. 재귀적으로 돌면서 디렉토리 내부를 모두 삭제하고 선택한 디렉토리도 삭제한다.
cd + (path)
sepang@ubuntu:~$ cd dir1
sepang@ubuntu:~/dir1$ cd ..
sepang@ubuntu:~$
현재 위치하는 디렉토리의 위치를 변경한다. '/'로 하위 디렉토리를 구분함을 기억하자 그러면 저 '~' 표시는 무엇일까? 이는 다음 명령어에서 확인 가능하다.
※ 절대 경로 & 상대 경로
위 처럼 경로를 필요로 하는 명령어들이 있다. 경로는 두가지 방법으로 표현이 가능하다.
- 절대경로: root 디렉토리('/'로 표현, 최상위 디렉토리)부터 시작해서 경로를 나타낸다. 가령 '/home/sepang'처럼 말이다. 말 그대로 '절대'경로이기 때문에 현재 위치한 디렉토리에 상관없이 같은 경로로 인식을 한다. 시작점이 root 디렉토리니깐 당연한 말이다,,,
- 상대경로: 절대경로와 달리 시작점을 현재 위치한 디렉토리로 잡는다. 이를 위해 몇가지 알아야 할게 있다. '.'은 현재 디렉토리, '..'은 상위 디렉토리를 뜻한다. 예를 들면 현재 위치에서 상위 디렉토리에 존재하는 'dir2'라는 디렉토리로 이동하고 싶다면 'cd ../dir2'라고 입력하면 된다.
pwd
sepang@ubuntu:~$ pwd
/home/sepang
pwd는 현재 위치한 디렉토리를 출력한다. 때문에 '~'는 '/home/(사용자명)' 임을 알 수 있다.
man + (명령어), (명령어) --help
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐
fied.
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
해당 명령어의 메뉴얼을 볼 수 있다. 사용법이나 옵션값등을 확인할 수 있다.
참고 자료
STT youtube channel / https://www.youtube.com/channel/UCora73FsjH9ZuIjCvJ0J0iA
'스터디 > 오픈소스SW' 카테고리의 다른 글
리눅스 명령어 기초 4 - bash 명령어, bash redirection, pipe (0) | 2021.09.02 |
---|---|
리눅스 명령어 기초 3 - 작업/프로세스 관련 명령 (0) | 2021.09.02 |
리눅스 명령어 기초 2 - 파일/디렉토리 관련 명령어 (0) | 2021.09.02 |
리눅스 OS 설치 (0) | 2021.09.02 |
CLI (Command Line Interface) 기본 (0) | 2021.07.30 |
댓글