>  기사  >  php教程  >  기본 Linux 명령 형식 및 디렉터리 처리 명령

기본 Linux 명령 형식 및 디렉터리 처리 명령

高洛峰
高洛峰원래의
2016-11-14 12:38:311461검색

명령 프롬프트

[root@localhost ~]#

root: 현재 로그인한 사용자
localhost: 호스트 이름
~: 현재 디렉터리, 여기는 "Home"입니다. 디렉토리
#: 루트 슈퍼 유저의 프롬프트, 일반 사용자인 경우 $

명령 형식

명령 [옵션] [파라미터]

괄호 []는 선택 사항을 나타냅니다.

디렉터리의 콘텐츠 쿼리: ls

ls [옵션] [파일 또는 디렉터리]

옵션:
-a: 표시 숨겨진 파일을 포함한 모든 파일
-l: 세부 정보 표시
-d: 디렉터리 속성 보기
-h: 파일 크기를 인간화하여 표시
-i: inode 표시

위 옵션에 명령어를 입력하면 다음과 같이 표시되는 결과가 나옵니다.

[root@localhost ~]# lsanaconda-ks.cfg  test
[root@localhost ~]# ls -a.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .config  .cshrc  .tcshrc  test
[root@localhost ~]# ls -l总用量 4-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Nov 12 19:26 test
[root@localhost ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg
[root@localhost ~]# ls -ld test/drwxr-xr-x. 2 root root 6 Nov 12 19:26 test/
[root@localhost ~]# ls -lh总用量 4.0K
-rw-------. 1 root root 2.7K Nov 10 02:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Nov 12 19:26 test
[root@localhost ~]# ls -i71259104 anaconda-ks.cfg  36099565 test

ls -l 명령어와 ls -lh 명령어의 결과 차이에 주의하세요

여기에 설명이 필요합니다.

-rw-------. 1 root root 2.7K Nov 10 02:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Nov 12 19:26 test

우선, 첫 번째 기호 "-"(따옴표 안의 -)는 파일 유형을 나타냅니다(일반적으로 사용되는 세 가지가 있습니다. 즉, -는 파일을 나타냅니다. d 는 디렉터리를 나타내고 l은 소프트 링크 파일을 나타냅니다.) 또한 덜 일반적으로 사용되는 파일로는 블록 장치 파일, 문자 장치 파일, 소켓 파일 및 관리 파일이 있습니다.

위에서 보면 anaconda-ks.cfg는 파일이고, test는 디렉터리(윈도우 폴더 개념으로 이해 가능)임을 알 수 있다.

둘째, 첫 번째 기호를 제외하고 rw------를 살펴보겠습니다. 총 9개의 문자가 있는데 rw-,---,- 세 그룹으로 나누어야 합니다. -- ,각 그룹은 u의 소유자, g가 속한 그룹, 다른 사람의 권한을 순서대로 나타냅니다. 위에서는 각각 루트와 루트에 해당합니다. 즉, 첫 번째 루트는 소유자의 권한이 루트 권한이라는 뜻이고, 두 번째 루트는 자신이 속한 그룹의 권한도 루트 권한이라는 뜻이고, 다른 사람에게는 그런 권한이 전혀 없다는 뜻이다.

그 중 r은 읽기 가능, w는 쓰기 가능, x는 실행 권한을 의미합니다.

자세한 내용을 이해하기 위해 anaconda-ks.cfg 파일에 대한 표는 다음과 같습니다.

기본 Linux 명령 형식 및 디렉터리 처리 명령

따라서 테스트 파일 rwxr-xr에 대한 내용은 다음과 같습니다. -x , 독자는 그 권위를 스스로 판단해야 합니다.

9자 뒤의 점 "."은 ACL 권한을 나타내고 그 뒤의 숫자 1은 참조 횟수를 나타냅니다. 예를 들어 파일에 소프트 링크가 있는 경우(Windows 바로 가기와 유사) , 그 참조 개수는 2입니다.

다음 2.7k 루트는 파일 크기, 다음은 날짜, 마지막은 파일 이름을 나타냅니다.

디렉터리 처리 명령

디렉토리 생성: mkdir

mkdir -p [디렉터리 이름]

-p : 재귀 생성

[root@localhost ~]# lsanaconda-ks.cfg  test

[root@localhost ~]# mkdir otherFolder[root@localhost ~]# lsanaconda-ks.cfg  otherFolder  test

[root@localhost ~]# mkdir folder_2/test_2mkdir: 无法创建目录"folder_2/test_2": 没有那个文件或目录

[root@localhost ~]# mkdir -p folder_2/test_2[root@localhost ~]# lsanaconda-ks.cfg  folder_2  otherFolder  test

[root@localhost ~]# ls folder_2/test_2

위와 같이 -p 옵션이 없는 mkdir은 빈 디렉터리를 생성할 수 있지만 하위 디렉터리를 포함하는 디렉터리를 반복적으로 생성할 수는 없습니다. 재귀적으로 생성하려면 -p를 추가하세요.

디렉터리 전환: cd

cd [디렉터리]

작업:

cd ~: 현재 사용자의 홈 디렉터리 입력

cd-: 进入上次目录

cd.. : 进入上一级目录

cd : 回到家目录

[root@localhost ~]# lsanaconda-ks.cfg  folder_2  otherFolder  test

[root@localhost ~]# cd /folder_2/test_2[root@localhost test_2]# cd[root@localhost ~]# cd -/root/folder_2/test_2

[root@localhost test_2]# cd ../../otherFolder[root@localhost otherFolder]# cd ..[root@localhost ~]#

注意理清概念:相对路径和绝对路径

绝对路径:从根目录一级级找下去,需要写全路径

[root@localhost ~]# cd folder_2/test_2
[root@localhost test_2]#

相对路径:参照当前所在目录进行查找

[root@localhost test_2]# cd ../../otherFolder
[root@localhost otherFolder]#

查询所在目录位置:pwd

pwd

可以说是最简单的命令了,查询所在目录的位置

[root@localhost ~]# pwd/root

[root@localhost ~]# lsanaconda-ks.cfg  folder_2  otherFolder  test
[root@localhost ~]# cd folder_2/[root@localhost folder_2]# lstest_2
[root@localhost folder_2]# cd test_2/[root@localhost test_2]# pwd/root/folder_2/test_2

删除空目录:rmdir

rmdir [目录名]

只能删除空目录,这个命令用得比较少。

[root@localhost ~]# lsanaconda-ks.cfg  folder_2  otherFolder  test

[root@localhost ~]# rmdir otherFolder[root@localhost ~]# lsanaconda-ks.cfg  folder_2  test

[root@localhost ~]# rmdir folder_2rmdir: 删除 "folder_2" 失败: 目录非空
[root@localhost ~]#

删除文件或目录:rm

rm -rf [文件或目录]

r 表示可以同时删除文件和目录,f表示强制删除

如果不添加任何选项,那么只可以删除文件,删除时提示是否确认删除

如果只添加选项 -r,那么可以删除文件也可以删除目录,删除时提示是否确认删除

如果添加了选项 -rf,那么将不做任何提示删除文件或目录

[root@localhost ~]# lsabc.txt  anaconda-ks.cfg  folder_2  test

[root@localhost ~]# rm abc.txtrm:是否删除普通空文件 "abc.txt"?y

[root@localhost ~]# rm testrm: 无法删除"test": 是一个目录
[root@localhost ~]# rm -r testrm:是否删除目录 "test"?y

[root@localhost ~]# lsanaconda-ks.cfg  folder_2

[root@localhost ~]# rm -rf folder_2[root@localhost ~]# lsanaconda-ks.cfg
[root@localhost ~]#

复制命令:cp

cp [选项] [原文件或目录] [目标目录]

选项:
-r : 复制目录
-p : 同时复制文件属性
-d : 若源文件是链接文件,则复制链接属性
-a : 包含以上所有选项,相当于 -rpd

在[目标目录]后面加上文件名,就是改名复制。

[root@localhost ~]# lsanaconda-ks.cfg  bbc.txt  folder_a  folder_b

[root@localhost ~]# cp bbc.txt folder_a[root@localhost ~]# ls folder_a/bbc.txt

[root@localhost ~]# cp folder_a folder_bcp: 略过目录"folder_a"[root@localhost ~]# cp -r folder_a folder_b[root@localhost ~]# ls folder_bfolder_a  test_1

[root@localhost ~]# ll总用量 4-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Nov 13 17:21 bbc.txt
drwxr-xr-x. 2 root root   20 Nov 13 17:38 folder_a
drwxr-xr-x. 4 root root   34 Nov 13 17:39 folder_b

[root@localhost ~]# ll folder_a总用量 0-rw-r--r--. 1 root root 0 Nov 13 17:38 bbc.txt

[root@localhost ~]# cp -a bbc.txt folder_b[root@localhost ~]# ll folder_b总用量 0-rw-r--r--. 1 root root  0 Nov 13 17:21 bbc.txt
drwxr-xr-x. 2 root root 20 Nov 13 17:39 folder_a
drwxr-xr-x. 2 root root  6 Nov 13 17:38 test_1
[root@localhost ~]#

这里需要解释一下的是,在原文件 bbc.txt 中,其修改时间为 17:21,在普通复制下,它的时间这个属性是不会被复制,我们可以看到复制后的bbc.txt的时间为17:38,如果需要连同属性一起复制,那么就加上 -pd 或者 直接 -a,如上所示,我们把bbc.txt复制到folder_b,这时我们查看属性的时候,时间属性和原属性是一致的。

在上述命令中,ll 是 ls -l 的简写。

剪切或改名命令:mv

mv [原文件或目录] [目标目录]

如果原文件或者目录 与 目标目录在同一个目录下,那么就是重命名

如果不在同一个目录下,那么就是剪切

通过以下实践理解:

[root@localhost ~]# lsanaconda-ks.cfg  bbc.txt

[root@localhost ~]# mv bbc.txt abc.txt[root@localhost ~]# lsabc.txt  anaconda-ks.cfg

[root@localhost ~]# mkdir test[root@localhost ~]# lsabc.txt  anaconda-ks.cfg  test

[root@localhost ~]# mv abc.txt test/[root@localhost ~]# lsanaconda-ks.cfg  test

[root@localhost ~]# ls test/abc.txt
[root@localhost ~]#

链接命令:ln

ln -s [原文件] [目标文件]

生成链接文件
-s : 创建软连接

硬链接的特征:

拥有相同 i 节点和存储block块,可以看做是同一个文件

可通过i节点识别,i节点是相同的

不能跨分区

不能针对目录使用

通过上述命令,可以理解为为某个内容添加一个标签,通过打开这个标签就可以进入这个内容,硬连接,即再生成一个标签,同样可以通过这个标签进入这个内容。

如果内容被修改,那么不管从硬链接的哪个文件进入,都是被修改的。

软链接的特征:

类似windows的快捷方式

软链接拥有自己的i节点和block块,但是数据块只保存原文件的文件名和I节点号,并没有实际的文件数据

lrwxrwxrwx l为软链接(软链接的权限都为rwxrwxrwx,这只是软链接本身的权限)

修改任意文件,另一个都改变

删除原文件,软链接不能用(和windows的快捷方式一样)

硬链接:

[root@localhost ~]# lsanaconda-ks.cfg
[root@localhost ~]# mkdir folder[root@localhost ~]# lsanaconda-ks.cfg  folder
[root@localhost ~]# touch bbb.txt[root@localhost ~]# lsanaconda-ks.cfg  bbb.txt  folder
[root@localhost ~]# ln bbb.txt folder/ccc.txt[root@localhost ~]# ll folder/总用量 0-rw-r--r--. 2 root root 0 Nov 13 18:08 ccc.txt
[root@localhost ~]# ll bbb.txt -rw-r--r--. 2 root root 0 Nov 13 18:08 bbb.txt

软链接:

[root@localhost ~]# mkdir folder_b[root@localhost ~]# ln -s bbb.txt folder_b/eee.txt[root@localhost ~]# ll 总用量 4-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg
-rw-r--r--. 2 root root    0 Nov 13 18:10 bbb.txt
drwxr-xr-x. 2 root root   20 Nov 13 18:09 folder
drwxr-xr-x. 2 root root   20 Nov 13 18:11 folder_b
[root@localhost ~]# ll folder_b总用量 0lrwxrwxrwx. 1 root root 7 Nov 13 18:11 eee.txt -> bbb.txt
[root@localhost ~]# rm -rf bbb.txt [root@localhost ~]# ll folder_b总用量 0lrwxrwxrwx. 1 root root 7 Nov 13 18:11 eee.txt -> bbb.txt

删除了原文件,软链接的箭头目标为红色一闪一闪,表示找不到目标文件。

常用目录作用

[root@localhost ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  temp  tmp  usr  var

说明:

/ 根目录

/bin 命令保存目录(普通用户权限)

/sbin 命令保存目录(root权限)

/boot 启动目录,包含启动相关文件,和开机有关

/dev 设备文件保存目录

/etc 配置文件保存目录

/home 普通用户家目录

/lib 系统库保存目录

/mnt 系统挂载目录

/media 挂载目录(常用于光盘挂载)

/root 超级用户家目录

/tmp 临时目录

/proc 直接写入内存的

/sys 直接写入内存的

/usr 系统软件资源目录

/var 系统相关文档内容


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.