2023년 9월 22일 금요일

리눅스 파일과 디렉토리 관리 명령어

리눅스 파일과 디렉토리 관리 명령어

파일과 디렉토리 관리 명령어


명령 의미 기능
ls list directory content 디렉토리 내용 출력
cp copy files and directory 파일의 복사
rm remove files and directory 파일/디렉토리의 제거
mv move files 파일/디렉토리의 이동 및 변경
cat concatenate files 파일의 연결 및 출력
more file perusal filter 페이지 단위로 출력
less opposite of more 역방향 출력 가능
cd change directory 디렉토리 이동
mkdir make directory 디렉토리 생성
rmdir remove empty directory change mode access permission 빈 디레토리 제거
chmod change mode access permission 파일/디렉토리의 접근 모드 변경
file determine file type 파일의 형 분류
ln make link between files 파일 연결점 생성 (단축아이콘 생성)
find search for files in directory hierarchy 파일들을 검색
head output the first part of files 파일의 앞부분 일부 출력
tail output the last part of files 파일의 뒷부분 일부 출력


ls 명령의 사용 예

ls 명령은 파일의 목록을 출력하는 명령으로써 옵션으로는 다음과 -1 옵션을 사용하는 경우 파일의 성격 및 접근 허가 상태, 파일의 소유자, 그룹 소유자,파임 크기, 파일의 생성 날짜, 파일 명의 순으로 출력됩니다.

$ls -l         # 현재 디렉토리를 긴 형식으로 출력
$ ls -a         # 현재 디렉토리의 모든(all : dot으로 시작하는 것도 포함하여) 내용 출력
$ ls *.c        # 현재 디렉토리에서 .c로 끝나는 파일 출력
$ ls /etc       # /etc 디렉토리의 파일 출력
$ ls -Rl /usr   # /usr 밑에 있는 모든 파일을 긴 형식으로 순환적으로 하위 디렉토리 출력


cp 명령의 사용 예

cp 명령은 복사 명령으로써, DOS 명령과는 다르게 반드시 두 개 이상의 인수를 사용해야 한다. 옵션으로는 -R, -i 등이 있습니다.

$ cp /etc/bashro	 # 파일 /etc/bashrc를 bashrc라는 이름으로 현 작업 디렉토리에 복사 (1s 명령으로 복사유무 확인)
$ cp /etc/bashrc bashre	 # 파일 /etc/bashrc를 .bashrc라는 이름으로 현 작업디렉토리에 복사
$ cp .bashre save.bashro # 파일 bashrc를 save. bashrc로 복사


mv 명령의 사용 예

rm 명령은 파일의 제거 명령으로써, 인수로 주어진 파일을 제거 한다. -R 옵션은 하위 디렉토리를 모두 제거하고, -f 옵션은 제거하기 전에 최종 질의를 하지 않고 지우는 옵션입니다.

$ rm save.bashrc	# 파일 save.bashrc를 제거
$ mkdir book book/chap1 book/chap2	# 1s -lR I more로 내용 확인
$ touch book/memo
$ Is - IR book 
$ rm -R book		# 디렉토리 b00k을 순환적(Recursive)으로 모두 제거
$ rm -i * 		# 모든 파일을 대화식(interactive) 으로 확인 후 제거
$ rm -Rf book		# 디렉토리 book을 순환적, 강제로(force) 제거


cat 명령의 사용 예

cat 명령은 concatenate의 약자로 두 개의 파일을 합성하는데 주로 사용되지만 파일의 내용을 화면에 출력하는 명령으로 변형하여 사용되기도 합니다. 즉, <, >, >> 등을 이용하여 파일의 생성 방향을 변경하고 복사합니다.

$ cat /etc/motd			# 화면에 파일 /etc/moto43)를 출력
$ cat /etc/issue		# 화면에 파일 /etc/issue44)를 출력
$ cat /etc/profile /etc/bashro	# 두 파일을 연속해서 출력
$ cat - > memo			# 입력 내용을 확인하기 위해서입니다. (Ctrl)-d가 입력될 때까지 내용 저장

(Ctrl) -d
$ more memo 			# 입력 내용을 확인하기 위해서입니다.

$ cat /etc/issue >issue01-3-1	# /etc/issue 파일을 현 작업 디렉토리에 issue01-3-1로 저장
$ cat /etc/profile > .profile	# /etc/profile 파일을 현 작업 디렉토리 밑에 profie로 복사


more 명령의 사용 예

more 명령은 파일의 내용을 출력하는 명령으로 줄 단위, 페이지 단위로 내용을 출력 을 조작하여 사용자가 내용을 확인할 수 있도록 돕습니다. -d 옵션을 사용하면 출력 내용 조작법이 함께 출력됩니다. 또 |(pipe)를 이용하여 다른 명령의 출력 결과의 화면 출력을 조절할 수 있는 기능으로도 사용이 가능합니다.

$ more /etc/issue	# /etc/issue 파일을 한 화면씩 출력
$ more /etc/passwd	# /etc/passwd 파일
$ Is -I /usr | more	# /usr 디레토리 목록


less 명령의 사용 예

less 명령은 more 명령과 달리 화면 출력 내용을 앞으로 이동시킬 수 있는 명령입니다. 파일의 마지막에는 (END)라는 글자가 출력됩니다.

$ more /etc/issue	# /etc/issue 파일을 한 화면씩 출력
$ more /etc/passwd	# /etc/passwd 파일
$ Is -I /usr | more	# /usr 디레토리 목록


cd 명령의 사용 예

cd명령은 작업 디렉토리를 변경하는 쉘 내부 명령어 입니다.

$ cd /etc		# 자신의 홈디렉토리로 이동
$ Is -I	
$ cd			# 자신의 홈디렉토리로 이동
$ cd /usr		# /usr 디렉토리로 이동
$ Is -I 
$ cd /home/sophomore	# sophomore라는 디렉토리로 이동
$ cd /bin		# /bin 디렉토리로 이동
$ Is -1
1810
$ cd ~senior		# senior라는 계정의 홈디렉토리로 이동
$ ed $HOME		# sophomore의 홈디렉토리로 이동


mkdir / rmdir 명령의 사용 예

mkdir / rmdir은 디렉토리를 생성하고, 제거하는 명령이다. P 옵션을 이용하면 하위 디렉토리도 자동으로 생성합니다.

$ cd
$ mkdir book; mkdir book/{chap1,chap2}  # mkdir -p book/chap {1, 2}
$ cat /etc/issue > book/chap1/memo	# 상대경로 이용
$ rm -i book/chap 1/memo 
$ rmdir book/chap2 book/chap1 book	# rm -rf book


chmod 명령의 사용 예

chmod 명령은 파일의 접근 허용 모드를 변경하는 명령입니다.

chmod / chown 글 링크


file 명령의 사용 예

파일의 표시는 ls -1 명령으로 출력하는 경우, 가장 앞에 존재하는 파일의 형식을 나타내는 기호입니다.

파일의 종류 명령의 실행 예 응답 메시지 표시
디렉토리 file . directory d
실행파일 file /bin/bash executable -
링크 file /bin/sh symbolic link l
케렉터 스페셜 파일 tty ; file /dev/pts/? character special c
블록 스페셜 파일 file /dev/fd0 block special b
아스키 텍스트 file .cshrc ASCII text -


ln 명령의 사용 예

ln은 Link 의 약어로서 리눅스 파일시스템에서 링크파일을 만드는 명령어입니다. 리눅스에서는 심볼릭링크와 하드링크의 두가지 링크 파일이 존재합니다.

심볼릭링크 (Symbolic Link)

단순히 원본파일을 가리키도록 링크만 시켜둔 것으로 MS의 윈도우시스템에서 흔히 사용하는 '바로가기' 같은 것이며, 원본파일을 가리키고만 있으므로 원본파일의 크기와는 무관합니다. 그리고 심볼릭링크에서는 원본파일이 삭제되어 존재하지 않을 경우에 링크파일은 깜박거리면서 링크파일의 원본파일이 없다는 것을 알려줍니다.

$ ln hard_source hard_link

하드링크 (Hard Link)

원본파일과 다른 이름으로 존재하는 동일한 파일이며 원본파일과 동일한 내용의 다른 파일이라고 할 수 있습니다. 그리고 하드링크에서는 원본파일과 링크파일 두개가 서로 다른 파일이기 때문에 둘 중 하나를 삭제하더라도 나머지 하나는 그대로 남아 있습니다. 또한 하드링크에서는 원본파일의 내용이 변경될 경우에는 링크파일의 내용 또한 자동으로 변경됩니다.

$ ln -s /tmp    /var/tmp


find 명령의 사용 예

find 명령은 리눅스의 방대한 자료 중에서 파일을 찾고자 할 때 사용됩니다. 아래의 명령은 /etc 디렉토리 밑에 있는 모든 파일을 검색하여 issue라는 이름으로 구성된 파일을 경로 명까지 print 하라는 명령어입니다.

$ ls -l         # 현재 디렉토리를 긴 형식으로 출력
$ ls -a         # 현재 디렉토리의 모든(all : dot으로 시작하는 것도 포함하여) 내용 출력
$ ls *.c        # 현재 디렉토리에서 .c로 끝나는 파일 출력
$ ls /etc       # /etc 디렉토리의 파일 출력
$ ls -Rl /usr   # /usr 밑에 있는 모든 파일을 긴 형식으로 순환적으로 하위 디렉토리 출력


head / tail 명령의 사용 예

이 명령들은 파일의 일부분을 출력하는 명령으로 head는 파일의 앞부분, tail은 파 일의 뒷부부의 10라인만을 출력하는 명령입니다. 옵션의 - 기호를 이용하여 출력을 원하는 줄 수를 지정할 수 있습니다.

$ head /etc/group	# 파일의 앞부분 10줄을 화면에 출력
$ head -3 /etc/group	# 파일의 앞부분 3줄을 화면에 출력
$ tail /etc/passwd	# 파일의 뒷부분 10줄을 화면에 출력
$ tail -3 /etc/passwd	# 파일의 뒷부분 3줄을 화면에 출력