참고서적 - 리눅스 입문자를 위한 명령어 사전, 모의 해킹으로 알아보는 리눅스 서버 해킹과 보안
$ 명령어 [옵션(인수)] [옵션(인수)] [옵션(인수)]...
옵션 : 명령어가 제공하는 부가 기능 실행
인수: 명령어나 옵션에 넘기는 값
디렉터리: 파일을 모아두는 장소 -> 트리구조로 되어있음
절대경로: 루트 디렉터리에서 시작해서 목적지 디렉터리로 향하는 경로
/(슬래시)로 디렉터리 계층을 구분해서 표기.
상대경로: 현재 디렉터리에서 목적지를 향하는 경로
.(닷)이나 ..같은 기호를 사용.
.은 현재 디렉터리를 뜻하고, ..은 부모 디렉터리를 뜻함.
경로 표기 예 | 의미 |
/디렉터리/........../파일 | 절대 경로 표기 |
./파일 | 상대 경로 표기 |
파일 | 상대 경로 표기에서 ./를 생략한 표현 |
간략화 표현 예 | 의미 |
. | 현재 디렉터리 |
.. | 부모 디렉터리 |
~ | 자신의 홈 디렉터리 |
~사용자명 | 특정 사용자 홈 디렉터리 |
1. ls, 파일 및 디렉터리 목록 확인
ls(list의 약자)
ls 명령어는 인수로 지정한 디렉터리에 존재하는 파일과 디렉터리를 알파벳 순서로 출력함.
-F 옵션과 함께 사용하면 분류 기호도 함께 나타남.
옵션으로 표시되는 분류 기호 | 의미 |
/ | 디렉터리 |
@ | 심볼릭 링크 |
* | 실행 가능 파일 |
-a 옵션을 붙이면 닷 파일도 표시됨.
-l 옵션으로 디렉터리의 상세 정보 확인 가능
주요 옵션 | 기능 |
-a | 일반 파일(디렉터리) 외에 닷 파일도 표시 |
-d | 디렉터리를 인수로 지정했을 때 디렉터리 내부를 표시하는 것이 아니라 다른 파일과 마찬가지로 디렉터리명을 표시 |
-F | 분류 기호를 추가해서 표시 |
-l | 최종 갱신일이나 파일(디렉터리) 소유자, 권한 등을 표시 |
-t | 파일(디렉터리)을 최근 갱신 순서로 나열 |
-R | 서브 디렉터리 안에 있는 파일(디렉터리)도 모두 표시 |
-h | -l 옵션과 함께 지정하면 파일 크기에 맞춰 사람이 읽기 쉬운 단위로 변경해서 표시 |
-1 | 한 줄에 하나씩 표시 |
--color=auto | 파일이나 디렉터리 종류에 따라 다른 색상으로 표시 |
# 현재 디렉터리 안에 있는 파일을 표시
$ ls
# dir 디렉터리 안에 있는 파일을 표시
$ ls dir
# dir 디렉터리 안에 있는 파일 정보를 상세히 표시
$ ls -l dir
# 현재 디렉터리 안에 있는 파일을 분류 기호와 함께 표시
$ ls -F
# 현재 디렉터리 안에 있는 닷 파일도 포함해서 모두 표시
$ ls -a
2. cd, 디렉터리 이동
cd(change directory의 약자)
#cd /tmp로 현재 디렉터리로 이동
$ cd /tmp
3. pwd, 현재 위치 확인
pwd(print working directory의 약자)
현재 위치한 디렉터리의 경로를 표시한다.
4. mkdir, 디렉터리 생성
mkdir(make directory의 약자)
기본적으로 현재 위치의 하위 디렉터리로 생성하며, 상위 디렉터리가 생성되어 있지 않을 때 -p옵션을 설정하면 상위 디렉터리도 자동으로 생성한다.
5. rmdir & rm, 파일 및 디렉터리 삭제
rmdir(remove directory의 약자)
디렉터리를 삭제하려면 '쓰기 권한'이 있어야함. 단, root 사용자는 모든 권한을 갖고 있기 때문에 모든 디렉터리를 삭제할 수 있음. rm은 디렉터리뿐만 아니라 파일도 삭제할 수 있는 명령어이므로 주의.
-r은 하위디렉터리까지 모두 삭제
-f는 삭제시 내용을 확인하지 않고 바로 삭제
rm 멍령어 인수에서는 삭제하고 싶은 파일을 여러개 지정할 수 있음.
-i 옵션으로 삭제 여부 확인 가능.
#touch 명령어로 파일 생성
$ touch test.txt
#rm 명령어로 생성한 파일 삭제
$ rm test.txt
#-i 옵션, y입력하여 삭제
$ rm -i test.txt
6. cp, 파일 및 디렉터리 복사
cp(copy의 약자)
cp 명령어 실행할 때 사용자는 '읽기 권한'이 있어야함.
디렉터리 복사할 때는 -r (recursive, 재귀) 옵션을 사용해야 하위 디렉터리까지 복사됨.
복사하는 경우 현재 복사를 진행하는 사용자가 소유자가 됨.
복사 시 기존 소유자를 유지하고 싶으면 -p (presere, 유지) 옵션을 사용.
$ cp 대상파일 복사위치
# 테스트 파일 생성
$ touch copy.txt
# cp 명령ㅇ어로 copy.txt의 사본인 copy2.txt를 생성
$ cp copy.txt copy2.txt
# 하위 디렉터리 포함한 테스트 디렉터리 생성
mkdir -p test/subdir
# -r 옵션을 이용하여 디렉터리 복사
cp -r test test2
7. mv, 파일 및 디렉터리 이동
mv(move의 약자)
파일이나 디렉터리를 이동, 이름을 변경할때.
$ mv 대상파일 이동할위치
$ mv 대상파일 변경할이름
8. find, 파일 및 디렉터리 탐색
$ find 경로 검색옵션 동작
주요 옵션
-name <파일명>
-type <파일종류>
파일을 검색한 후 검색된 파일에 대해 처리하는 옵션
-print 파일 경로 출력
-ls 검색 결과 목록 출력
-exec <명령> 검색된 파일에 명령을 실행
9. du & df, 파일 및 디렉터리 용량 확인
du - 디렉터리 용량 표시.
주요 옵션: -s(sum, 합계표시), -h(easier to human, 읽기 쉬운 표시 형태), -sh(s + h)
df - 현재 사용 중인 디스크와 파일 시스템의 전체 용량 및 여유 공간 표시
주요 옵션: -k(KB 단위표시), -h(KB, MB, GB 단위 표시)
# 현재 디렉터리의 파일별 용량(크기) 출력(하위 디렉터리 포함)
$ du
# 지정된 디렉터리 및 하위 디렉터리의 전체 용량 출력
$ du -sh
# KB 단위로 파일 시스템별 용량 출력
$ df -k
# 사람이 읽기 편한 단위(MB, GB)로 파일 시스템별 용량 출력
$ df -h
10. tar, 파일 및 디렉터리 압축(묶기)과 해제
압축하거나 한 파일로 묶을 때 사용.
tar 자체는 압축 명령어가 아닌 파일을 묶는 명령어.
압축할 때 기존 파일의 속성과 디렉터리 구조 등을 그대로 가져갈 수 있음.
압축 옵션: -z(gzip 압축), -j(bzip 압축)
주요 옵션: -c(파일 생성, 묶기), -f(대상 지정) -v(처리 정보를 표시), -x(파일 압축 풀기)
11. sudo, root 권한 실행 명령어
root 권한이 필요할 때 sudo를 사용.
$ sudo 명령어