본문 바로가기
오픈소스SW

리눅스 명령어 기초 1 - 기본 명령어

by sepang 2021. 9. 2.

터미널(Terminal)과 쉘(Shell)

git bash

리눅스에서 명령어를 사용하기 위해서는 명령어를 작성하고 관리하는 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

댓글