IT_Study/Operating System

Operating System (5) : Shell command 정리, CLI Shell 제작하기

__Vivacé__ 2023. 3. 22. 15:20

자주 쓰는 Shell 명령어 정리

 

Cat

파일 내용을 출력하는 명령어

# proc 디렉토리에는 시스템 정보들이 모여있음
$ cat /proc/cpuinfo

명령어 입력시 보이는 화면

# 파일 내용 저장도 가능하다.
# $ cat [파일 주소] > [저장할 문서 이름]
$ cat /proc/cpuinfo > bts.txt

Find

파일을 찾는 명령어

# find [경로] -name "파일명"
# 경로를 적을 때에는 항상 뒤에 '/'를 붙여주자 

# 전 영역에서 kfc.txt라는 파일 찾기
$ find / -name "kfc.txt"

# 단어에 config가 포함된 파일, 디렉토리 찾기
$ find / -name "*config*"

# 파일만 찾기
$ find [경로] -name "파일명" -type f

# 디렉토리만 찾기
$ find [경로] -name "파일명" -type d

접근 권한에 따라 파일을 못 찾을 수도 있음

 

이 명령어 또한 결과를 '>' 를 이용해 저장할 수 있음


Grep

문자열을 검색하는 명령어 / 정규표현식 사용 가능

# 사용법
$ grep [찾을 단어] [어디서 찾을 지] [옵션]

# meminfo 파일 내 "kB" 문자열 검색하기 <-- kB 문자열이 포함된 한 줄이 출력됨
$ grep kB ./meminfo

# 현재 디렉토리에 있는 모든 파일 중, "ache"가 들어있는 라인 모두 출력
$ grep ache ./8 -r

# 다른 명령어 출력 결과에 문자열 검색하기 <-- 출력 결과를 파이프 오른쪽으로 넘겨서 처리하는 원리
$ ls -al | grep .v

Cat & Grep 활용

# 1. meminfo 파일 내에서, File이란 단어를 포함하는 라인 출력

$ cat /proc/meminfo | grep File
$ grep File /proc/meminfo

# 2. linux 디렉토리가 시스템 어디에 있는 지 + 경로에 include가 있어야 한다
$ sudo find / -name "linux" -type d | grep include

History

명령어 사용 이력이 출력된다.

![num] : 특정번호 명령어가 수행되었다는 의미

$ history

$ !680  # 680번 째 사용했던 명령어를 재사용한다.

history 명령어 실행 시 나오는 화면


Symbolic Link

명령어 만들기

# 1. ls 바이너리의 위치를 찾는다.
$ which ls

# 2. ln 명령어 <-- 파일이나 디렉토리를 링크(link)하는 데 사용
# $ ln [옵션] [file1] [file2] <-- file1을 file2가 가리키게 되는 것
# -s : 심볼릭 옵션

$ ln -s /usr/bin/ls bts

# 3. bts를 실행하면, ls가 실행되도록 만든 것
$ ./bts

bts 실행 시, ls 명령어와 똑같이 작동함을 확인할 수 있음


파일 용량 확인하기

# 디렉토리 or 파일의 용량을 확인
# -s 옵션 = 디렉토리 개별이 아닌, 총 사용량만을 출력함 <-- 디렉토리는 항상 4KB
# -h 옵션 = 사람이 보기 쉽게 출력

# 사용법
$ du -sh [파일명]

 file

어떤 종류의 파일인 지 확인할 수 있음

$ file [파일명]

 


 

여러 가지 명령어를 동작하는 C언어 프로그램 작성

먼저 test.c 파일에 다음 내용을 작성

이후 gcc로 컴파일 후, 작동해보면 다음 창이 나타난다.

gcc ./test.c -o ./now

 

이후 어느 디렉토리에서든 작동시키려면, /usr/bin/ 에 실행파일을 옮기면 된다.

! now 위치를 절대경로로 입력해야 한다.

sudo ln -s ~/workplace/dinner/now /usr/local/bin/now