[1. 리눅스 일반] 03 리눅스의 기본 명령어 (2) - 디렉터리 및 파일
System/Linux Master

[1. 리눅스 일반] 03 리눅스의 기본 명령어 (2) - 디렉터리 및 파일



1. 디렉터리 관련 명령어


가. pwd : 현재 작업 중인 디렉터리 위치 표시

나. cd (Change Directory) : 디렉터리 이동

1) 절대 경로 : 시작 위치와 상관없이 경로에 모든 디렉터리 표시

2) 상대 경로 : /(루트)에서부터 시작

· 형식 : cd [상대경로 or 절대경로][설정경로]


설정 경로

설명

~

 현재 사용자의 홈 디렉터리로 이동

.

 현재 디렉터리

..

 현재에서 한 단계 상위 디렉터리로 이동

/

 루트 디렉터리


다. mkdir (make directory) : 새 디렉터리 생성

· 형식 : mkdir [옵션] [디렉터리명]


옵션

설명

-m

 디렉터리를 생성할 때 권한 설정(디폴트는 755)

-p

 상위 경로 생성

-v

 디렉터리 생성 후 생성된 디렉터리의 메시지 출력


라. rmdir (remove directory) : 디렉터리 삭제 (디렉터리 안에 파일이 존재하는 경우 삭제되지 않음)

· 형식 : rmdir [디렉터리명]



2. 파일 관련 명령어


가. ls : 현재 위치한 디렉터리의 파일 목록 출력

· 형식 : ls [옵션] [경로명]


옵션

설명

-a

 숨겨진 파일을 포함한 모든 파일과 디렉터리 표시

-l

 퍼미션, 크기, 사이즈 등 자세한 정보 표시

-d

 지정된 디렉터리 정보 출력

-r

 알파벳 역순으로 정보 출력

-R

 하위 경로와 그 안에 있는 파일 표시


나. cp : 파일 또는 디렉터리 복사

· 형식 [옵션] [원본] [대상]


옵션

설명

-b

 복사 대상 파일이 이미 존재할 경우를 대비하여 백업 파일을 만듦

-f

 복사 대상이 이미 존재하면 복사 대상 파일을 강제로 지우고 복사

-i

 복사 대상이 이미 존재하면 사용자에게 덮어씌울 것인지 확인받음

-r

 디렉터리를 복사할 경우 하위 디렉터리와 파일을 모두 복사


다. rm : 파일 또는 디렉터리 삭제

· 형식 : rm [옵션] [파일명 or 디렉터리명]


옵션

설명

-f

 질의 메시지 없이 강제로 파일이나 디렉터리 삭제

-i

 삭제 시 사용자에게 질의

-r

 삭제 디렉터리가 포함하고 있는 하위 디렉터리를 포함하여 모든 파일 삭제


라. mv : 파일 또는 디렉터리 이동, 파일명 변경

· 형식 : mv [옵션] [원본] [대상]


옵션

설명

-b

 백업 파일 생성

-f

 대상 파일이 이미 있어도 사용자에게 어떻게 처리할지 묻지 않음

-v

 파일이 옮겨지는 과정 상세 표시


마. touch : 크기가 0byte인 빈 파일 생성

· 서버의 현재 시간으로 파일의 최근 사용한 시간과 최근 수정 시간 등 타임 스탬프[각주:1] 변경

· 형식 : touch [옵션] [파일명]


옵션

설명

-a

 접근시간 변경

-m

 수정시간 변경

-c

 시스템 현재 시간으로 파일 시간 정보 수정

-t [시간정보]

 특정 파일의 시간 정보 변경

-r [파일1] [파일2]

 파일1의 시간 정보를 파일2에 동일하게 적용


바. file : 파일의 종류 및 파일 속성값 표시

· 형식 : file [옵션] [파일명]


옵션

설명

-b

 파일명은 출력하지 않고 파일 유형만 표시

-f

 파일 목록에서 지정한 파일들에 대해서만 명령 실행

-z

 압축파일 내용 출력

-i

 MIME 타입 문자로 출력


사. find : 현재 디렉터리부터 하위 디렉터리까지 주어진 조건의 파일을 찾아 해당 경로 표시

· 형식 : find [경로] [옵션] [정규표현식] [파일명]


옵션

설명

-name

 이름을 기준으로 파일 검색

-user

 user의 파일이나 디렉터리 검색

-perm

 지정된 권한의 파일 검색

-type

 파일 유형에 따라 파일 검색

-atime n

 n일 전에 접근한 파일 검색

-exec

 검색된 파일에 수행할 명령어 지정


아. locate : 파일 위치 찾기

· 형식 : locate [파일명]


3. 텍스트 파일 관련 명령어


가. cat : 파일 내용 출력

· 형식 : cat [옵션] [파일]


옵션

설명

-n

 각 문장 앞에 번호 표시 (빈 행 포함)

-b

 각 문장 앞에 번호 표시 (빈 행 제외)

-s

 연속되는 2개 이상의 빈 행을 한 행으로 출력

-A

 텍스트 파일에 존재하는 개행 문자나 탭 문자 등을 확인


나. head : 파일의 앞부분을 지정한 만큼 출력

· 형식 : head [옵션] [파일명]


옵션

설명

-c [숫자]

 출력을 원하는 용량 지정(byte 단위)

-n [숫자], -[숫자]

 출력을 원하는 줄 수 지정


다. tail : 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부 출력

· 형식 : tail [옵션] [파일명]


옵션

설명

-c [숫자]

 출력을 원하는 용량 지정

-n [숫자], -[숫자]

 출력을 원하는 줄 수 지정

-f

 지정된 파일에 새롭게 추가되는 파일 내용 실시간 출력

-v

 파일 출력 시 파일명 표시

-q

 파일 출력 시 파일명 표시 X


라. more : 파일을 화면 단위로 끊어서 출력

1) 위에서 아래 방향으로만 출력 → 지나간 내용 다시 못 봄

· 형식 : more [옵션] 파일명

2) 명령어 실행 상태에서 키 입력으로 다양한 작업을 수행할 수 있다.

· Space Bar : 다음 페이지로 전환

· Enter : 한 줄씩 출력

· Ctrl + D : 반 페이지 출력

· Ctrl + B : 이전 페이지 출력

· Q : 종료

· /[패턴] : 지정한 패턴의 문자열 검색


옵션

설명

-[숫자]

 한 페이지에 표시되는 라인 수


마. less : 텍스트 파이을 한 번에 한 화면씩 출력

· 기능적으로 more를 확장한 것 → 커서를 화면의 상하좌우로 이동할 수 있음


바. grep : 파일에서 특정한 패턴(문자열) 또는 정규 표현식으로 나타낸 단어 검색

· 형식 : grep [옵션] [문자열] [파일명]


옵션

설명

-r

 디렉터리 내의 모든 디렉터리와 파일들을 검색하도록 지정

-E

 패턴을 정규 표현식으로 확장

-i

 대소문자 차이 무시

-v

 검색할 문자열이 포함되지 않은 줄만 출력

-n

 라인 수 출력

-l

 문자열이 포함된 파일명 출력


사. wc : 파일의 라인, 단어, 알파벳 수 표시

· 형식 : wc [옵션] [파일명]


옵션

설명

-l

 전체 라인 수 출력

-w

 전체 단어 수 출력

-c

 전체 문자(알파벳) 수 출력


아. sort : 명령어 결과나 문서 내용 정렬

· 형식 : sort [옵션] [정렬할 파일명]

옵션

설명

-b

 앞 공백 무시

-o

 저장할 파일 명시

-r

 역순으로 표시

-f

 대소문자 구분 X

-t

 필드 구분자 지정

-u

 중복 행 제거

-m

 정렬 파일 병합

-n

 숫자만 비교


자. cut : 파일에서 특정 필드 추출. (필드는 구분자로 구분)

· 형식 : cut [옵션] [파일명]

옵션

설명

-c

 잘라낼 곳의 글자 위치 지정. 콤마(.)나 하이픈(-)을 사용하여 범위 지정

-f

 잘라낼 필드 지정

-d

 필드 구분자 지정. 디폴트는 탭

-s

 대소문자 구분 X


차. split : 하나의 파일을 여러 개의 작은 파일로 분리할 때 사용

1) 파일의 내용을 라인 수로 분할할 수도 있고, 용량 단위로 분할할 수도 있다.

2) 주로 디스켓에 파일을 나누어 복사하거나 백업할 때 CD-RW 용량 단위로 분할할 경우 유용하다.

· 형식 : split [옵션] [파일명]


옵션

설명

-b

 byte 단위로 파일 분할

-l

 주어진 라인 수 단위로 파일 분할



4. 파일 비교 명령어


가. diff : 두 개의 파일을 행 단위로 비교하여 다른 부분 출력

· 형식

- 파일을 비교할 경우 : diff [옵션] [파일1] [파일2]

- 디렉터리를 비교할 경우 : diff [옵션] [디렉터리1] [디렉터리2]

옵션

설명

-b

 연속된 공백 무시

-i

 대소문자 구분 X

-s

 두 파일이 같은지 확인

-r

 두 디렉터리 차이점 출력


나. cmp : 두 개의 파일을 byte(문자) 단위로 비교하여 출력

· 형식 : cmp [옵션] [파일1] [파일2]


옵션

설명

-b

 두 파일 간의 다른 byte 출력

-i

 두 파일 간의 다른 문자 위치와 문자 출력

-s

 아무것도 출력하지 않고 실행 결과 코드만 반환


다. comm : 두 개의 파일을 줄 단위로 비교하여 출력

· 형식 : comm [옵션] [파일1] [파일2]


옵션

설명

-1

 '파일1'에만 있는 내용을 제외하고 내용 출력

-2

 '파일2'에만 있는 내용을 제외하고 내용 출력

-3

 '파일1'과 '파일2'에 공통으로 존재하는 내용을 제외하고 출력



5. 리다이렉션과 정규 표현식


가. 리다이렉션(redirection) : 표준 입출력의 방향을 재지정하는 것

1) 표준 입력/출력/에러가 화면이 아닌 파일로 대체 → 모니터로 출력이 파일로 재지정

2) 표준 입력/출력/에러 장치

· 표준 입력 장치 : 키보드

· 표준 출력 장치 : 모니터

· 표준 에러 장치 : 모니터

3) 리다이렉션 연산자


연산자

설명

>

 · 명령을 화면에 출력하는 것이 아니라 프린터나 파일에 출력하도록 전송

 · 파일이 존재하지 않으면 새로운 파일을 만들고 같은 파일이 존재하면 덮어씀

>>

 · 파일이 있는 경우 지정된 파일에 결과를 추가

 · 파일이 존재하지 않으면 지정된 이름으로 파일 생성

<

 키보드가 아닌 지정된 파일에서 입력 내용 읽어옴

>&

 명령의 출력을 다른 명령의 입력으로 보냄

<&

 명령의 입력을 읽고 다른 명령의 출력으로 보냄


나. 파이프(Pipe) : 둘 이상의 명령을 함께 묶어 출력 결과를 다른 프로그램이 입력으로 전환하는 기능

1) 현재 명령의 표준 출력을 다음 명령의 표준 입력으로 사용

2) 연결 기호 : '|'

3) 더 이상 처리할 명령어가 없으면 표준 출력 장치인 화면으로 출력한다.

· 형식 : [명령어1] | [명령어2] | [명령어3]


다. 정규 표현식


기호

의미

^

 라인의 첫 글자

$

 라인의 끝 글자

.

 한 글자

*

 * 기호 바로 이전의 글자나 정규 표현식이 0회 이상 반복

[]

 · 대체 글자 목록을 []에 나열

 · '-'로 문자 범위 지정

[^]

 · 대체 못할 글자 목록을 [^]에 나열

 · '-'로 문자 범위 지정

+

 + 기호 바로 이전 글자나 정규 표현식이 1회 이상 반복

?

 ? 기호 바로 이전 글자나 정규 표현식ㅇ ㅣ없거나 1회만 존재

()

 부분 정규 표현식의 시작과 끝을 표시

|

 |로 구분된 단어들 중 최소 하나 존재

{m,n}

 {} 기호 바로 이전 글자나 정규 표현식이 m개 이상 n개 이하 반복


  1. 타임 스탬프 : 파일의 시간 정보. 접근시간, 수정시간, 변경시간이 있다. [본문으로]