Linux 파일 및 디렉터리 관리
우리는 리눅스의 디렉토리 구조가 트리 구조이고, 최상위 디렉토리가 루트 디렉토리인 것을 알고 있습니다.
다른 디렉토리는 마운트하여 트리에 추가할 수 있으며 마운트 해제하여 제거할 수 있습니다.
이 튜토리얼을 시작하기 전에 절대 경로와 상대 경로가 무엇인지 알아야 합니다.
절대 경로:
경로는 루트 디렉터리 /에서 시작하여 작성됩니다. 예: /usr/share/doc 이 디렉터리.상대 경로:
경로는 /로 시작하지 않고 작성됩니다. 예를 들어 /usr/share/doc에서 /usr/share/man으로 이동할 경우 다음과 같이 작성할 수 있습니다. 이것은 상대적인 경로 작성 방법입니다!
디렉토리 처리를 위한 일반적인 명령
다음으로 디렉터리 처리를 위한 몇 가지 일반적인 명령을 살펴보겠습니다.
ls: 디렉터리 나열
cd: 디렉터리 전환
pwd: 표시 현재 디렉터리
mkdir: 새 디렉터리 만들기
rmdir: 빈 디렉터리 삭제
cp: 파일 또는 디렉터리 복사
rm: 파일 또는 디렉터리 제거
할 수 있습니다. man [command]를 사용하면 man cp와 같은 각 명령의 사용법 문서를 볼 수 있습니다.
ls(목록 디렉터리)
Linux 시스템에서는 아마도 ls 명령이 가장 일반적으로 실행됩니다.
구문:
[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称 [root@www ~]# ls [--color={never,auto,always}] 目录名称 [root@www ~]# ls [--full-time] 目录名称
옵션 및 매개변수:
-a: 모든 파일이 숨겨진 파일(.로 시작하는 파일)과 함께 나열됩니다. (일반적으로 사용됨)
-d: 디렉토리 자체만 나열됩니다. 디렉터리에 파일 데이터를 나열하는 대신(일반적으로 사용됨)
-l: 파일 속성 및 권한 등을 포함한 긴 데이터 문자열을 나열합니다.(일반적으로 사용됨)
은 홈 디렉터리의 모든 파일을 나열합니다. List (속성 및 숨김 파일 포함)
[root@www ~]# ls -al ~
cd (디렉토리 전환)
cd는 Change Directory의 약어로, 작업 디렉토리를 변경하는 데 사용되는 명령입니다.
문법:
cd [相对路径或绝对路径]
#使用 mkdir 命令创建w3cschool.cc目录 [root@www ~]# mkdir w3cschool.cc #使用绝对路径切换到w3cschool.cc目录 [root@www ~]# cd /root/w3cschool.cc/ #使用相对路径切换到w3cschool.cc目录 [root@www ~]# cd ./w3cschool.cc/ # 表示回到自己的家目录,亦即是 /root 这个目录 [root@www w3cschool.cc]# cd ~ # 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思; [root@www ~]# cd ..
cd 명령을 몇 번 해보면 잘 이해할 수 있을 것입니다.
pwd (현재 디렉터리 표시)
pwd는 Print Working Directory의 약어로, 현재 디렉터리를 표시하는 명령입니다.
[root@www ~]# pwd [-P] 选项与参数: -P :显示出确实的路径,而非使用连结 (link) 路径。 范例:单纯显示出目前的工作目录: [root@www ~]# pwd /root <== 显示出目录啦~ 范例:显示出实际的工作目录,而非连结档本身的目录名而已 [root@www ~]# cd /var/mail <==注意,/var/mail是一个连结档 [root@www mail]# pwd /var/mail <==列出目前的工作目录 [root@www mail]# pwd -P /var/spool/mail <==怎么回事?有没有加 -P 差很多~ [root@www mail]# ls -ld /var/mail lrwxrwxrwx 1 root root 10 Sep 4 17:54 /var/mail -> spool/mail # 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail # 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!
mkdir(새 디렉터리 만들기)
새 디렉터리를 만들려면 mkdir(디렉토리 만들기)을 사용하세요.
구문:
mkdir [-mp] 目录名称
옵션 및 매개변수:
-m: 구성 파일 권한! 직접 구성, 기본 권한(umask)을 볼 필요가 없습니다~
-p: 필요한 디렉터리(상위 디렉터리 포함)를 반복적으로 직접 생성할 수 있도록 도와줍니다!
예: /tmp로 이동하여 여러 새 디렉터리를 만들어 확인하세요.
[root@www ~]# cd /tmp [root@www tmp]# mkdir test <==创建一名为 test 的新目录 [root@www tmp]# mkdir test1/test2/test3/test4 mkdir: cannot create directory `test1/test2/test3/test4': No such file or directory <== 没办法直接创建此目录啊! [root@www tmp]# mkdir -p test1/test2/test3/test4
-p 옵션을 추가하면 직접 다중 레이어 디렉터리를 만드는 데 도움이 됩니다!
예: rwx--x--x
[root@www tmp]# mkdir -m 711 test2 [root@www tmp]# ls -l drwxr-xr-x 3 root root 4096 Jul 18 12:50 test drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1 drwx--x--x 2 root root 4096 Jul 18 12:54 test2
권한이 있는 디렉터리 만들기 위의 권한 섹션에서 구성 속성을 강제 적용하기 위해 -m을 추가하지 않으면 시스템은 기본 속성을 사용합니다.
위의 예에서와 같이 -m을 사용하는 경우 새 디렉터리에 drwx--x--x 권한을 부여하기 위해 -m 711을 제공합니다.
RMDIR (빈 디렉토리 삭제)
Syntax :
rmdir [-p] 目录名称
options and parameters :
-p : wople wevel "empty"director w3cschool.cc directory
[root@www tmp]# rmdir w3cschool.cc/
example을 삭제합니다. : mkdir 예제에서 생성된 디렉토리(/tmp 아래)를 삭제하세요!
[root@www tmp]# ls -l <==看看有多少目录存在? drwxr-xr-x 3 root root 4096 Jul 18 12:50 test drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1 drwx--x--x 2 root root 4096 Jul 18 12:54 test2 [root@www tmp]# rmdir test <==可直接删除掉,没问题 [root@www tmp]# rmdir test1 <==因为尚有内容,所以无法删除! rmdir: `test1': Directory not empty [root@www tmp]# rmdir -p test1/test2/test3/test4 [root@www tmp]# ls -l <==您看看,底下的输出中test与test1不见了! drwx--x--x 2 root root 4096 Jul 18 12:54 test2test1/test2/test3/test4를 즉시 삭제하려면 -p 옵션을 사용하세요. 그러나 이 rmdir은 빈 디렉터리만 삭제할 수 있다는 점에 유의하세요. rm 명령을 사용하면 비어 있지 않은 디렉터리를 삭제할 수 있습니다. cp(파일 또는 디렉터리 복사)cp는 파일 및 디렉터리 복사를 의미합니다. 구문:
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
옵션 및 매개변수: -a: -pdr의 의미와 동일합니다. (일반적으로 사용됨) - -d: 소스 파일은 링크 파일(링크 파일)의 속성입니다. 파일 자체 대신 링크 파일 속성을 복사하세요.
- -f: 대상 파일이 이미 존재하고 열 수 없으면 이를 제거하고 시도하세요. 다시
- -i: 대상 파일(대상)이 이미 존재하는 경우 덮어쓰기 시 동작을 먼저 묻습니다(일반적으로 사용됨)
- -l: 하드 링크(하드 링크)의 링크 파일을 생성합니다. ) 파일 자체를 복사하는 대신 ;
- -p: 기본 속성을 사용하는 대신 해당 속성과 함께 파일을 복사합니다(일반적으로 백업에 사용됨)
- -r: 반복 및 연속 복사, 디렉터리에 사용 복사(일반적으로 사용됨)
- -s: 기호 링크 파일, 즉 "바로가기" 파일로 복사합니다.
- -u: 대상이 다음보다 오래된 경우에만 대상을 업그레이드합니다. 소스! 루트 ID를 사용하여 홈 디렉터리의 .bashrc를 /tmp로 복사하고 이름을 bashr
[root@www ~]# cp ~/.bashrc /tmp/bashrc [root@www ~]# cp -i ~/.bashrc /tmp/bashrc cp: overwrite `/tmp/bashrc'? n <==n不覆盖,y为覆盖
rm으로 바꿉니다(파일 또는 디렉터리 제거)
구문:
rm [-fir] 文件或目录옵션 및 매개 변수: -f : 존재하지 않는 파일을 강제로 무시하며 경고 메시지가 표시되지 않습니다.
- -i: 대화형 모드, 삭제하기 전에 사용자에게 조치를 취할지 묻는 메시지가 표시됩니다.
- -r: 재귀 삭제 ! 디렉토리 삭제에 가장 일반적으로 사용됩니다! 이것은 매우 위험한 선택입니다! ! !
cp 예제에서 방금 생성한 bashrc를 삭제하세요!
[root@www tmp]# rm -i bashrc rm: remove regular file `bashrc'? y
-i 옵션을 추가하면 잘못된 파일명 삭제를 방지하도록 사전에 요청합니다!
[root@www ~]# mv [-fiu] source destination [root@www ~]# mv [options] source1 source2 source3 .... directory옵션 및 매개변수: -f : force는 강제를 의미합니다. 대상 파일이 이미 존재하는 경우 묻지 않고 직접 덮어씁니다.
- -i : 대상파일(destination)이 이미 존재한다면 덮어쓸지 묻습니다!
- -u : 대상 파일이 이미 존재하고 소스가 비교적 새로운 경우 업그레이드(업데이트)됩니다
- 파일을 복사하고 디렉터리를 생성한 후 해당 디렉터리로 파일을 이동합니다
[root@www ~]# cd /tmp [root@www tmp]# cp ~/.bashrc bashrc [root@www tmp]# mkdir mvtest [root@www tmp]# mv bashrc mvtest
특정 파일을 특정 디렉터리로 이동하면 끝입니다!
지금 디렉토리 이름을 mvtest2
[root@www tmp]# mv mvtest mvtest2
Linux 파일 콘텐츠 보기
로 이름을 바꾸세요. Linux 시스템에서 파일 콘텐츠를 보려면 다음 명령을 사용하세요.
cat 첫 번째 줄부터 파일 콘텐츠를 표시하세요
tac 마지막 줄부터 보면 tac이 cat을 거꾸로 쓴 것을 알 수 있어요!
nl 표시되면 줄번호를 출력!
more는 파일 내용을 페이지별로 표시합니다
less는 more와 유사하지만 more보다 더 나은 점은 페이지를 앞으로 넘길 수 있다는 점입니다!
머리는 처음 몇 줄만 보세요
꼬리는 꼬리 줄만 보세요
man [command]를 사용하면 다음과 같은 각 명령의 사용법 문서를 볼 수 있습니다. man cp .
cat
첫 번째 줄부터 파일 내용 표시
구문:
cat [-AbEnTv]
옵션 및 매개변수:
-A: -vET 통합 옵션과 동일합니다. 공백;
-b: 줄 번호 나열, 비어 있지 않은 줄의 줄 번호만 표시, 빈 줄은 줄 번호로 표시되지 않습니다!
-E : 후행 줄 바꿈 바이트 표시 $;
-n : -b 옵션과 다른 빈 줄을 포함하여 줄 번호를 인쇄합니다.
- T: 표시 ^I가 있는 [tab] 버튼
-v: 보이지 않는 특수 문자 나열
/etc/issue의 내용 보기:
[root@www ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m
tac
tac 명령은 cat 명령과 정반대입니다. . 파일 내용이 마지막 줄부터 표시됩니다. tac이 거꾸로 쓰여 있는 것을 알 수 있습니다! 예:
[root@www ~]# tac /etc/issue Kernel \r on an \m CentOS release 6.4 (Final)
nl
줄 번호 표시
구문:
nl [-bnw] 文件
옵션 및 매개변수:
-b: 줄 번호를 지정하는 두 가지 주요 방법이 있습니다.
-b a: 빈 줄인지 여부에 관계없이 줄 번호도 나열됨을 나타냅니다(cat -n과 유사). -b t: 빈 줄이 있으면 빈 줄에 줄 번호를 나열하지 않습니다(기본값).- -n: 줄 번호를 나열하는 세 가지 주요 방법이 있습니다.
-n ln: 화면 왼쪽 끝에 줄 번호가 표시됩니다. -n rn: 행 번호는 0을 추가하지 않고 해당 열의 맨 오른쪽에 표시됩니다. -n rz: 해당 필드의 맨 오른쪽에 줄 번호가 표시되고 0이 추가됩니다.
-w: 줄 번호 필드가 차지하는 자릿수입니다. - 예 1: nl을 사용하여 /etc/issue의 내용을 나열합니다.
[root@www ~]# nl /etc/issue 1 CentOS release 6.4 (Final) 2 Kernel \r on an \m
[root@www ~]# more /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%) <== 重点在这一行喔!你的光标也会在这里等待你的命令
more 프로그램을 실행하는 동안 누를 수 있는 여러 버튼이 있습니다. 스페이스 키(스페이스): 한 페이지 넘기는 것을 의미합니다.
- Enter: "한 줄" 넘기는 것을 의미합니다.
/string : 표시된 콘텐츠에서 키워드 "string"을 검색하는 것을 의미합니다.
:f : 현재 표시된 파일 이름과 줄 수를 즉시 표시합니다.
q : 즉시 종료를 의미합니다. 더 이상 파일 내용을 표시하지 않습니다.
b 또는 [ctrl]-b: 페이지를 뒤로 넘기는 것을 의미하지만 이 작업은 파이프라인이 아닌 파일에만 유용합니다.
less
페이지별로 넘기면 다음 예에서는 /etc/man.config 파일의 내용을 출력합니다.
[root@www ~]# less /etc/man.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(中间省略).... : <== 这里可以等待你输入命令!
less 실행 시 입력할 수 있는 명령은 다음과 같습니다.
Space 키 : Flipping 한 페이지 아래로 ;
[pagedown]: 페이지 아래로 스크롤
[pageup]: 페이지 위로 스크롤
/string : "문자열"을 아래로 검색하는 기능; ?String : "문자열"을 위쪽으로 검색하는 기능
n : 이전 검색 반복(/ 또는 ?! 관련)
N : 이전 검색을 역순으로 반복(/ 또는 ? ! )
q: less 프로그램을 종료합니다.
head
파일의 처음 몇 줄을 지웁니다.
구문:
head [-n number] 文件
옵션 및 매개변수:
-n: 뒤에 숫자가 옵니다. 표시된 숫자를 나타냅니다 행의 의미
[root@www ~]# head /etc/man.config
기본적으로 처음 10행이 표시됩니다! 처음 20줄을 표시하려면 다음을 수행해야 합니다:
[root@www ~]# head -n 20 /etc/man.config
tail
파일의 마지막 몇 줄을 지웁니다.
구문:
tail [-n number] 文件
옵션 및 매개변수:
-n : 뒤에 숫자가 옵니다. , 표시할 줄 수를 나타냅니다. 의미
-f: 다음 파일 이름을 지속적으로 감지함을 나타내며 [ctrl]-c를 누를 때까지 꼬리 감지가 끝나지 않습니다
[root@www ~]# tail /etc/man.config # 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样: [root@www ~]# tail -n 20 /etc/man.config