이번 포스팅에서는 리눅스에서 자주 사용되는 명령어에 대해서 포스팅을 해보려고 합니다.
ls, cd, chmod, cp, mv, rm, history, grep, find, evince 등에 대해서 설명드리겠습니다.
반도체 설계도 리눅스에서 작업을 많이 하고 자주 쓰는 명령어를 반복해서 사용합니다.
이걸 잘 활용하면 shell scriptIng 같은 언어를 사용해서 설계 자동화를 할 수 있습니다.
그리고 자주 쓰는 명령어 외에도, 알고 있으면 가끔씩 사용할 일이 있는 명령어들에 대해서도 정리해 보려고 합니다.

자주 쓰는 명령어
ls( = list)
ls의 뜻은 list의 줄임말로 현재 위치한 디렉토리에 있는 내용(디렉토리, 파일) 리스트를 출력하는 명령어입니다.
- 디렉토리를 지정하여 파일 목록을 출력할수도 있습니다.
- 옵션을 사용하지 않으면 숨김 파일은 나오지 않습니다.
- 디렉토리명을 생략하면 현재 위치한 디렉토리의 파일 목록을 출력합니다.
기본 형식
ls [옵션] [디렉토리]
옵션
ls -l [디렉토리]
파일들을 나열할때 자세히 출력한다.
ls -a [디렉토리]
경로안의 모든 파일을 나열한다.(숨김파일도 포함)
ls -R [디렉토리]
위치한 디렉토리 하부 디렉토리의 파일까지 모두 출력한다.
ls -r [디렉토리]
출력 결과를 내림차순으로 정렬한다.
ls -t [디렉토리]
출력 결과를 파일이 수정된 시간을 기준으로 정렬한다.
cd( = change directory)
이 명령어는현재 작업하고 있는 디렉토리의 위치를 이동하는 명령어 입니다. cd 명령어 뒤에 디렉토리의 이동경로를 입력해주시면 해당 디렉토리로 즉시 이동합니다.
* 디렉토리 경로를 입력시 TAB 키를 사용하면 자동 완성 기능으로 편하게 입력할 수 있습니다.
기본 형식
cd [이동할 디렉토리의 경로]
* cd 명령어에는 별도의 옵션이 존재하지 않습니다. 하지만 디렉토리의 경로를 이야기할 때 절대 경로와 상대 경로의 개념의 이해가 필요합니다.
절대 경로
절대 경로는 루트부터 이동할 디렉토리의 경로까지 모든 경로를 입력한 것을 말합니다.
ex) /home/user/develop/Test
상대 경로
상대 경로는 현재 위치한 폴더를 기준으로 이동하고자 하는 디렉토리로 바로 이동할 때 사용하는 방법입니다. cd의 디렉토리 경로 인자 값에 특수기호를 넣어 다양한 액션을 취할 수 있습니다.
- cd .. : 상위 디렉토리로 이동합니다. 예를 들어 현재 위치가 /user/Test라면 /user로 이동합니다.
- cd . : 현재 위치한 폴더로 이동합니다. 사실상 기능은 새로고침과 동일합니다.
- cd - : 이전에 위치했던 폴더로 이동합니다. 윈도우의 뒤로 가기와 동일합니다.
- cd / : ROOT 디렉토리로 이동합니다.
- cd ~ : 홈 디렉토리로 이동합니다
mkdir( = make directory)
이 명령어 디렉토리(폴더)를 생성할 때 사용하는 명령어입니다.
- 경로를 지정하지 않으면 현 위치를 Defualt로 합니다.
- 생성할 디렉토리를 여러개 나열하여 한번의 명령어로 복수의 디렉토리를 생성할 수 있습니다.
기본 형식
mkdir [옵션][생성 할 디렉토리]
옵션
mkdir -m [생성 할 디렉토리]
디렉토리를 생성할 때 권한을 설정합니다. (defualt : 755)
mkdir -p [생성 할 디렉토리]
상위 경로도 함께 생성합니다.
mkdir -v [생성 할 디렉토리]
디렉토리를 생성하고 생성된 디렉토리에 대한 메시지를 출력합니다.
chmod( = change mode)
이 명령어는 파일과 디렉토리의 사용권한을 변경할 때 사용한다.
기본 형식
chmod [옵션][모드][파일]
옵션
chmod -R [모드] [파일]
하위 파일과 디렉토리 모든 권한을 변경한다.
chmod -v [모드] [파일]
실행되고 있는 모든 파일을 나열한다.
chmod -c [모드] [파일]
권한이 변경된 파일내용을 출력한다.
모드
1. 문자열 모드
chmod 옵션 (reference) (operator) (modes) 파일
- reference(대상) :
u : user의 권한
g : group의 권한
o : other의 권한
a : all의 권한 - operator :
+ : 해당 권한 추가
- : 해당 권한 제거
= : 해당 권한 설정 변경 - modes :
r : read 권한
w : write 권한
x : excute 권한
- : 사용권한없음
2. 8진수 모드
chmod 옵션 (8진수) 파일
- 파일 타입
- d 디렉토리, l(소문자 L) 링크 카운터, s 소켓, p 파이프, - 일반, c 특수문자, b 특수블럭
- rwxr-xr-x = 755
- 처음3개문자 = user의 권한
- 중간3개문자 = group의 권한
- 마지막3개문자 = other의 권한
- r은 파일 읽기 = 4, w는 파일 쓰기 = 2, x는 파일 실행 = 1로, 3개문자씩 수를 더해서 쓴다.
- 추가 사항 : 특수 권한
- 777 = 일반적인 8진법 형태
- 4777= SetUid 설정 때 4000을 더함
- 2777= SetGid 설정 때 2000을 더함
- 1777= Sticky bit 설정 때 1000을 더함
rm( = remove)
이 명령어는 파일이나 디렉토리를 삭제 시킬때 사용하는 명령어입니다.
기본 형식
rm [옵션 ] [삭제 할 디렉토리/파일]
- 경로를 지정하지 않으면 현 위치를 Defualt로 합니다.
- 비어있지 않은 디렉토리는 -r 옵션 없이는 삭제하실 수 없습니다.
옵션
rm -f [삭제 할 디렉토리/파일]
강제로 파일이나 디렉토리를 삭제하고 대상이 없는 경우에는 메시지를 출력하지 않습니다.
rm -r [삭제 할 디렉토리/파일]
디렉토리 내부의 모든 내용을 삭제합니다.
rm -d [삭제 할 디렉토리/파일]
비어있는 디렉토리들만 제거
rm -i [삭제 할 디렉토리/파일]
매번 삭제할때마다 사용자에게 삭제할것인지 묻습니다
rm -l [삭제 할 디렉토리/파일]
3개의 이상의 파일을 삭제하거나 디렉토리 내부가 비어있지 않을때만 삭제할것인지 묻습니다.
rm -v [삭제 할 디렉토리/파일]
삭제되는 대상의 정보를 출력합니다.
cp( = copy)
이 명령어는 파일이나 폴더를 복사하는 데 사용하는 명령어입니다.
기본 형식
cp [옵션] [복사 할 디렉토리/파일명] [복사 될 디렉토리/파일명]
옵션
cp -r [복사 할 디렉토리/파일명] [복사 될 디렉토리/파일명]
하위 디렉토리까지 모두 복사
cp -i [복사 할 디렉토리/파일명] [복사 될 디렉토리/파일명]
복사될 파일의 이름이 이미 존재한다면 사용자에게 덮어쓰기 여부를 묻는다
cp -b [복사 할 디렉토리/파일명] [복사 될 디렉토리/파일명]
복사될 파일의 이름이 이미 존재한다면 백업 파일을 생성한다
cp -f [복사 할 디렉토리/파일명] [복사 될 디렉토리/파일명]
복사될 파일의 이름이 이미 존재한다면 강제로 덮어쓰기 한다.
cp -a [복사 할 디렉토리/파일명] [복사 될 디렉토리/파일명]
원본 파일의 속성 및 링크 정보까지 모두 복사
cp -p [복사 할 디렉토리/파일명] [복사 될 디렉토리/파일명]
원본 파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사
cp -v [복사 할 디렉토리/파일명] [복사 될 디렉토리/파일명]
복사 진행 상태를 출력한다.
mv( = move)
이 명령어는 파일이나 디렉토리를 이동시킬 때 사용하는 명령어입니다.
기본 형식
mv [옵션] [원본 파일/디렉토리] [사본 파일/디렉토리]
mv -b [원본 파일 경로] [사본 파일 경로]
파일이 지워지기 전에 백업 파일을 만든다. '--suffix' 옵션을 지정하지 않으며 '~'를 붙여서 백업 파일 생성한다.
mv -f [원본 파일 경로] [사본 파일 경로]
대상 파일이 있더라도 파일을 강제(삭제 여부를 묻지 않고)로 삭제한다.
mv -i [원본 파일 경로] [사본 파일 경로]
대상 파일이 있는 경우 덮어쓸 것인지 물어 본다.
mv -v [원본 파일 경로] [사본 파일 경로]
파일 이동 과정을 출력한다.
find
이 명령어는 리눅스 파일 시스템에서 파일을 검색하는 데 사용되는 명령어입니다. 다양한 표현식을 사용하여 원하는 파일의 목록을 추출할 수 있습니다.
기본 형식
find [옵션] [경로] [표현식]
옵션
- P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.
- L : 심볼릭 링크에 연결된 파일 정보 사용.
- H : 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외.
- D : 디버그 메시지 출력.
표현식
- name : 해당 이름의 파일을 찾음. 해당 이름에는 정규 표현식을 활용할 수 있음
- type : 지정된 파일 타입에 해당하는 파일 검색
- user : 해당 유저에게 속한 파일 검색
- empty : 빈 디렉토리 혹은 크기가 0인 파일 검색
- delete : 검색된 파일 혹은 디렉토리 삭제
- exec : 검색된 파일에 대해 지정된 명령 실행
- path : 지정된 문자열 패턴에 해당하는 경로에서 검색.
- print : 검색 결과를 출력. 검색 항목은 newline으로 구분. (기본 값)
- print0 : 검색 결과를 출력. 검색 항목은 null로 구분.
- size : 파일 크기를 사용하여 파일 검색.
- mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정.
- maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정.
- atime : n일 이내에 액세스된 파일을 찾음.
- ctime : n일 이내에 만들어진 파일을 찾음.
- mtime : n일 이내에 수정된 파일을 찾음.
- cnewer file : 해당 파일보다 최근에 수정된 파일을 찾음.
grep
이 명령어는 파일(로그파일, 텍스트 파일)에서 특정 문자열을 찾을 때 사용하며 tail 명령어나 find 명령어등 다양한 명령어들과 함께 사용하여 파일에서 실시간으로 특정 문자열을 찾는다던지, 혹은 디렉터리 내에서 특정 이름을 포함하는 파일을 찾을 때 등 다양하게 응용도 가능합니다
기본 형식
grep [옵션][패턴][파일명]
옵션
grep -c [패턴] [파일명]
일치하는 행의 수를 출력한다.
grep -i [패턴] [파일명]
대소문자를 구별하지 않는다.
grep -v [패턴] [파일명]
일치하지 않는 행만 출력한다.
grep -n [패턴] [파일명]
포함된 행의 번호를 함께 출력한다.
grep -l [패턴] [파일명]
패턴이 포함된 파일의 이름을 출력한다.
grep -w [패턴] [파일명]
단어와 일치하는 행만 출력한다.
grep -x [패턴] [파일명]
라인과 일치하는 행만 출력한다.
grep -r [패턴] [파일명]
하위 디렉토리를 포함한 모든 파일에서 검색한다.
grep -m 숫자 [패턴] [파일명]
최대로 표시될 수 있는 결과를 제한한다.
grep -E [패턴] [파일명]
찾을 패턴을 정규 표현식으로 찾는다.
grep -F [패턴] [파일명]
찾을 패턴을 문자열로 찾는다
History
이 명령어는 기존에 실행한 명령어의 이력을 출력하거나 실행할때 사용합니다.

기본 형식
history [옵션]
옵션
history N
기억하고 있는 명령어 최근 개수만큼 출력
ex) history 5 : 최근 명령어 5개 출력
history !N
번호에 해당하는 명령어 실행
ex) history !5 : history 중 5번에 해당하는 명령어 실행
!!
바로 이전에 실행했었던 명령어를 실행
알•쓸•명(알아두면 쓸데 있는 명령어)
nice
리눅스에서 프로세스가 실행될 때, 아래의 그림과 같이 nice 라는 값을 갖고 실행됩니다. 여기서 nice 값은 process 간 실행 우선순위를 의미하고, 해당 명령어를 통해 프로세스의 우선 순위를 변경하는 명령어
아래의 그림은 'pl -l' 라고 하는 프로세스의 리스트를 출력하는 명령어를 사용했을 때, 출력되는 결과입니다.
아래의 그림에서 PRI와 NI라고 하는 것들이 보이는데
- PRI란, 운영체제에서 참고하는 우선순위( 사용자가 조작 불가)
- NI 는 사용자가 조작이 가능한 우선순위.

nice 값은 -20부터 19까지 줄 수 있다. 따로 지정해주지 않았을 경우, default nice 값은 0이다.
nice 값이 낮을수록(-20에 가까울수록) 우선순위가 높고, 높을수록(19에 가까울수록) 우선순위가 낮아진다.
기본 형식
nice -n [n] [process 명]
n만큼 process 의 nice 값이 증가된 상태로 process 실행
( nice -[n] [process 명] 으로도 사용 가능 )
nice [process 명] : process 의 nice 값이 10만큼 증가된 상태로 process 실행
renice
nice 명령어가 실행 전 process 에 nice 값을 조정하여 process 를 실행시킨다면, renice 는 이미 실행중인 process 의 nice 값을 조정하는 명령어입니다.
기본 형식
renice [n] [PID]
실행중인 process 가 갖는 nice 값을 n 으로 변경(증가가 아니라 그대로 n으로 변경).
evince
리눅스(GNOME 환경)에서 PDF, PostScript, DjVu, TIFF 등 다양한 문서 포맷을 열어보는 기본 문서 뷰어 명령어입니다.
기본 형식
evince [파일명]
scp (secure copy)
scp 명령어는 SecureCopy의 약자로, 원격서버에 있는 파일과 폴더를 전송하거나 가져오기 위해 사용하는 명령어입니다. ssh 원격 접속 프로토콜을 기반으로 하며, ssh와 동일한 22번 포트를 이용하기 때문에 password/identity file을 이용해 안전하게 송수신 할 수 있습다.
* SSH(Secure Shell)는 암호화 기술을 사용하여 안전하지 않은 네트워크(인터넷)를 통해 원격 컴퓨터에 안전하게 접속, 명령을 실행 및 관리하고 파일을 전송하는 네트워크 프로토콜입니다
로컬에서 원격지로 파일 전송
단일 파일을 원격지로 전송할 때
scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는 위치]
ex) scp test.xt roo@192.168.000.000: /test
복수 파일을 원격지로 전송할 때
scp [옵션] [파일명 1] [파일명 2] [원격지_id]@[원격지_ip]:[받는 위치]
ex) scp test1.txt test2.txt root@192.168.000.000:/test
여러 파일을 포함한 디렉터리를 원격지로 보낼 때
scp [옵션] [디렉터리 이름] [원격지_id]@[원격지_ip]:[보낼 경로]
ex) scp -r testdir root@192.168.000.000:/test
옵션
scp -r [ 파일명] [원격지_id]@[원격지_ip]:[받는 위치]
디렉토리 내 모든 파일/디렉토리 복사
scp -p [ 파일명] [원격지_id]@[원격지_ip]:[받는 위치]
원본 권한 속성은 유지하고, 복사
scp -P [ 파일명] [원격지_id]@[원격지_ip]:[받는 위치]
포트 번호 지정 복사
scp -c [ 파일명] [원격지_id]@[원격지_ip]:[받는 위치]
파일을 압축하여 복사
scp -v [ 파일명] [원격지_id]@[원격지_ip]:[받는 위치]
복사 과정 출력
원격지에서 로컬로 파일 전송
단일 파일을 원격지로 전송할 때
scp [옵션] [원격지_id]@[원격지_ip]:[원본 위치] [받는 위치]
ex) scp root@192.168.000.000:/test1.txt /test
복수 파일을 원격지로 전송할 때
scp [옵션] [원격지_id]@[원격지_ip]:[원본 위치 파일][원본 위치 파일] [받는 위치]
ex) scp root@192.168.000.000:"/test1.txt /test2.txt" /test
여러 파일을 포함한 디렉터리를 원격지로 보낼 때
scp [옵션] [원격지_id]@[원격지_ip]:[디렉터리 위치] [받을 경로]
ex) scp -r root@192.168.000.000:/test1 /test2
tree
이 명령어 디렉토리 안의 내용을 나무형식으로 리스트시 사용합니다.
아래의 그림에서 왼쪽은 tree 명령어의 메뉴얼 페이지이고 오른쪽 그림은 tree 명령어를 사용했을 때 출력된 결과입니다. 보시는 것과 같이 tree 명령어를 사용하면 하위 디렉토리의 모든 파일을 트리 형태로 리스트업하는걸 확인하실 수 있습니다.


기본 형식
tree [옵션]
옵션
- -d: 디렉토리만 리스트
- -a: 모든 파일 리스트
- -f : 표시되는 파일의 전체 경로 표시
- -L : 디렉토리 depth 설정
- --prune : 빈 디렉토리는 제외한 리스트
- -p : 파일의 타입 및 권한 출력
- -u : 사용자(username) 출력
- -s : 파일의 사이즈 출력
- --du : 디렉토리에 대한 실제 크기 출력
- -o : 출력을 파일로 전송
참고자료
https://coding-factory.tistory.com/802
[Linux] 리눅스 grep 명령어 사용법 (파일 내 특정 문자열 찾기)
리눅스 grep명령어는 로그파일이나, 텍스트 파일에서 특정 문자열을 찾을 때 사용하며 tail 명령어나 find 명령어등 다양한 명령어들과 함께 사용하여 로그 파일에서 실시간으로 특정 문자열을 찾
coding-factory.tistory.com
https://eehoeskrap.tistory.com/543
[Linux] 리눅스 scp 명령어 사용법
scp secure copy의 줄임말로 ssh를 이용하여 네트워크로 연결된 호스트간에 파일을 주고받는 명령어 원격지에 있는 파일과 디렉터리를 보내거나 가져올 때 사용하는 파일 전송 프로토콜 ssh와 동일한
eehoeskrap.tistory.com
https://coding-factory.tistory.com/753
[Linux] 리눅스 mkdir 명령어(디렉토리 생성) 사용법 & 옵션 정리
mkdir mkdir의 뜻은 make directory의 약자로 디렉토리(폴더)를 생성할 때 사용하는 명령어입니다. mkdir [옵션][생성 할 디렉토리] new_folder 디렉토리 생성 ex) mkdir new_folder /home/user/위치에 new_folder 디렉토
coding-factory.tistory.com
'프로그래밍' 카테고리의 다른 글
| [Linux] What is Shell in Linux? (0) | 2026.02.19 |
|---|---|
| [Linux] Permission (0) | 2026.02.19 |