# Table of Contents

# 명령어 종류

리눅스 명령어는 크게 네 종류로 구분된다. type명령어를 사용하면 명령어의 타입을 확인할 수 있다.

# 실행 파일

/usr/bin 디렉토리에서 본 파일들처럼 실행 파일을 말한다.

# type cp
cp is hashed (/bin/cp)

# 쉘에 내장된 명령어

쉘에 내장된 명령어다.

# type cd
cd is a shell builtin

# 쉘 함수

# 별칭

별칭을 사용하면 명령어로 본인의 명령어를 새롭게 정의할 수 있다.

# type ls
ls is aliased to `ls --color=auto'

# 백그라운드 실행

명령어 뒤에 &을 추가하면 프로세스가 백그라운드로 실행된다.

# 명령어 정리

# alias

alias명령어를 사용하면 우리만의 명령어를 만들 수 있다.

우선 type명령어로 alias가 존재하는지 확인한다.

# type lsbin
bash: type: lsbin: not found

이제 다음과 같은 형태로 alias를 생성할 수 있다.

// alias name='string'
# alias lsbin='cd /bin; ls;'

다음과 같이 모든 alias를 확인할 수 있다.

# alias
...
alias lsbin='cd /bin; ls;'

unalias명령어로 alias를 삭제할 수 있다.

# unalias lsbin

# cal

달력과 현재 날짜를 표시한다.

# cal
    January 2022      
Su Mo Tu We Th Fr Sa  
                   1  
 2  3  4  5  6  7  8  
 9 10 11 12 13 14 15  
16 17 18 19 20 21 22  
23 24 25 26 27 28 29  
30 31 

# cp

파일이나 디렉토리를 복사할 때 사용한다.

file1을 file2에 복사한다.

// cp <file1> <file2>
# cp a.txt b.txt

file을 directory에 복사한다.

// cp <file> <directory>
# cp a.txt /home/yologger/mydir

디렉토리의 모든 파일을 다른 디렉토리에 복사한다.

# cp dir1/* dir2

# date

현재 시간과 날짜를 표시한다.

# date
Wed Jan  5 08:48:22 KST 2022

# df

현재 사용 중인 디스크 정보와 사용 가능한 디스크의 용량을 표시한다.

# df
Filesystem     1K-blocks    Used Available Use% Mounted on
overlay         61255492 2587752  55526416   5% /
tmpfs              65536       0     65536   0% /dev
shm                65536       0     65536   0% /dev/shm
/dev/vda1       61255492 2587752  55526416   5% /etc/hosts
tmpfs            1016696       0   1016696   0% /proc/acpi
tmpfs            1016696       0   1016696   0% /sys/firmware

# diff

두 파일을 비교할 수 있다.

$ cat text1
Hello world!
$ cat text2
Hello Linux!
$ diff text1 text2
1c1
< Hello world!
---
> Hello Linux!

# echo

텍스트를 화면에 출력한다.

$ echo "Hello World"
Hello World

# file

파일의 타입을 확인할 수 있다.

$ file a.txt
a.txt: ASCII text

# find

파일을 탐색할 수 있다. 보통 다음과 같은 형식으로 사용한다.

$ find [경로] -name ["파일명"]

현재 디렉토리와 하위 디렉토리에서 txt로 끝나는 파일을 탐색한다.

$ find . -name "*.txt"

사용자의 홈 디렉토리와 하위 디렉토리에서 txt로 끝나는 파일을 탐색한다.

$ find ~ -name "*.txt"

# free

메모리 사용 현황을 확인할 수 있다.

# free
             total       used       free     shared    buffers     cached
Mem:       2033396    1369668     663728     331176      83108     926972
-/+ buffers/cache:     359588    1673808
Swap:      1048572      19064    1029508

파일의 앞 부분을 출력한다.

// 앞의 다섯 줄을 출력한다.
head -n 5 a.txt

# help

명령어의 도움말 기능이다. 설명 및 사용법을 확인할 수 있다.

// help <command>
# help cd

# less

텍스트 파일의 내용을 확인할 수 있다.

$ less a.txt

# mkdir

디렉토리를 생성할 수 있다.

$ mkdir mydir

# more

파일 내용이 너무 길면 스크롤로 확인해야하는 불편함이 있다. more는 파일 내용을 한 페이지씩 보여준다.

$ more long.txt

# mv

파일 또는 디렉토리를 이동하거나 이름을 변경할 때 사용한다.

파일 이름을 변경한다.

// mv <old_file> <new_file>
# mv a.txt c.txt

파일을 디렉토리로 이동한다.

// mv <file> <directory>
# mv a.txt /home/yologger/mydir

현재 디렉토리의 모든 파일을 다른 디렉토리로 이동한다. 단 타겟 디렉토리가 생성되어있어야 한다.

# mv * /home/yologger/mydir 

# ping

목적지로 패킷을 전송한다. 목적지와의 네트워크 연결을 확인하는데 사용할 수 있다.

$ ping www.google.com
PING www.google.com (142.250.196.132) 56(84) bytes of data.
64 bytes from nrt12s36-in-f4.1e100.net (142.250.196.132): icmp_seq=1 ttl=37 time=32.4 ms
64 bytes from nrt12s36-in-f4.1e100.net (142.250.196.132): icmp_seq=2 ttl=37 time=34.0 ms
64 bytes from nrt12s36-in-f4.1e100.net (142.250.196.132): icmp_seq=3 ttl=37 time=34.6 ms
64 bytes from nrt12s36-in-f4.1e100.net (142.250.196.132): icmp_seq=4 ttl=37 time=33.2 ms

# ps

프로세스 정보를 확인할 수 있다.

$ ps
  PID TTY          TIME CMD
    1 pts/0    00:00:00 bash
   19 pts/0    00:00:00 ps

보통 aux옵션을 함께 사용한다.

$ ps aux

# tar

파일을 압축할 수 있다. -cvf옵션을 사용하면 된다.

$ ls
text1.txt     text2.txt

$ tar -cvf text.tar text1.txt txt2.txt

$ text.tar     text1.txt     text2.txt

xvf옵션으로 압축을 풀 수 있다.

$ tar -xvf text.tar

# top

프로세스 등 시스템 상태를 동적으로 확인할 수 있다.

$ top
Tasks:   2 total,   1 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.9 sy,  0.0 ni, 98.6 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   2033396 total,   832256 used,  1201140 free,     8040 buffers
KiB Swap:  1048572 total,        0 used,  1048572 free.   589484 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                      
    1 root      20   0   18212   3208   2708 S   0.0  0.2   0:00.04 bash                                         
   21 root      20   0   19904   2260   1948 R   0.0  0.1   0:00.00 top  

ps가 명령어 실행 순간의 스냅샷을 보여준다면 top는 동적으로 시스템 활동을 보여준다.

# rmdir

디렉토리를 삭제한다.

$ rmdir mydir

# tail

파일의 뒷 부분을 출력한다.

// 파일의 뒷 부분 다섯 줄을 출력한다.
$ tail -n 5 a.txt

-f옵션을 추가하면 실시간으로 파일을 확인할 수 있다. 로그 파일의 최근 내용을 확인하는데 유용하다.

$ tail -f /var/log/messages

# which

실행 파일의 설치 위치를 확인할 수 있다.

# which pwd
/bin/pwd