第二章 文件、目录管理(上)

一、系统目录结构

二、ls命令

三、文件类型

四、alias命令

五、绝对路径、相对路径

六、cd命令

七、创建和删除目录

八、rm命令

九、环境变量PATH

十、cp命令

十一、mv命令

十二、文档查看cat_more_less_head_tail

十三、文件或目录权限chmod

十四、更改所有者和所属组chown

十五、umask

 

一、系统目录结构

1.1 ls 全拼list,列出指定目录或者文件

1.2 [[email protected] ~]# ls /  →列出根目录下的文件、目录
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

第二章 文件、目录管理(上)
/root/ 根root,root用户的家目录

1.3 tree  →以树形式显示目录下有哪些子目录、文件

安装tree:#yum install -y tree

#man tree 显示tree的用法(帮助文件)

第二章 文件、目录管理(上)

#tree --hep  →显示常用选项

第二章 文件、目录管理(上)

-L Level 指定最大目录深度

例:#tree -L 2 /

第二章 文件、目录管理(上)

1.4目录结构

1.4.1以#开头的行都是运行的命令,它下面的内容是命令运行后的结果

1.4.1.1  ls后不加任何选项也不跟目录名或者文件名:会列出当前目录下的文件和目录,不包含隐藏文件

第二章 文件、目录管理(上)

1.4.1.2  后面加-a选项、不加目录名或者文件名:会列出当前目录下所有文件和目录,含有隐藏文件

第二章 文件、目录管理(上)

1.4.1.3  后面加-l选项、不加目录名或者文件名:会列出当前目录下除隐藏文件外的所有文件和目录的详细信息,包含其权限。所属主、所属组以及文件创建日期和时间

第二章 文件、目录管理(上)

1.4.1.4  后面不加选项、只跟文件名:会列出该文件,使用时通常加上-l使用,列出文件的详细信息

第二章 文件、目录管理(上)1.4.1.5  后面不加选项、只跟目录名:会列出指定目录下的文件和目录

第二章 文件、目录管理(上)

1.4.2结构

/bin:bin是Binary的缩写,该目录下存放的是最常用的命令

/boot:该目录下存放的是启动linux时使用的一些核心文件,包括一些连接文件以及镜像文件

/dev:dev是Device(设备)的缩写。该目录下存放是的Linuxdede 外部设备。在Linux中,访问设备的方式和访问文件的方式是相同的。

/etc:该目录下存放的所有系统管理所需的配置文件和子目录

/home:这是用户的家目录。在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的

/lib和/lib64:这两个目录下存放的是系统最基本的动态链接共享库,其作用类似于windows下的DLL文件,几乎所有的应用程序都需要用到这些共享库。其中/bin64位64位的软件包的库文件所在的目录。

/media:系统会自动识别一些设备(如U盘、光驱等),当识别后,Linux会把识别到的设备挂载到该目录下

/mnt:系统提供该目录是为了让用户临时挂载别的文件目录。我么可以把光驱挂在/mnt上,然后进入该目录查看光驱里的内容

/opt:这是给主机额外安装软件所设置的目录,该目录默认为空。

/proc:该目录是一个虚拟目录,是系统内存的映射,可以直接访问它来获取系统信息。

/root:该目录是系统管理员的用户家目录

/run:这个目录和/var/run是同一个目录,这里面存放的是一些服务的pid。一个服务启动完成后,是有一个pid文件的。

/sbin:s就是super user的意思,该目录存放的是系统管理员使用的系统管理程序

/srv:该目录存放的是一些服务启动之后需要提取的数据

/sys:该目录存放的是与硬件驱动程序相关的信息

/tmp:该目录是用来存放一些临时文件的

/usr:这是一个非常重要的目录,类似Windows下的program files目录,用户的很多应用程序和文件都存放在该目录下。

/usr/bin:该目录存放的是系统用户使用的应用程序

/usr/sbin:该目录存放的是超级用户使用的比较高级的管理程序和系统守护程序

/usr/srv:该目录是内核源代码默认的放置位置

/var:该目录存放的是不断扩充且经常修改的目录,包括各种日志文件或者pid文件

 

二、ls命令

2.1  #ls -a(#ls -la)

第二章 文件、目录管理(上)

2.2  #ls -l

第二章 文件、目录管理(上)

2.3  #ls -i(#ls -li)  →列出多少文件使用相同的inode号

第二章 文件、目录管理(上)

2.4 #ls -t(#ls -lt)  →以时间顺序排序,晚的在上面

2.5 #ls -d  →只列目录本身,不列目录下内容,使用#pwd查看当前目录

第二章 文件、目录管理(上)

 

三、文件类型

3.1使用#ls -la或者#ls -l命令查看当前目录下的文件时,共显示了9列内容(以空格划分列)

第二章 文件、目录管理(上)

3.2第一列:包含文件类型、所有者、所属组以及其他用户对该文件的权限。第1列共11位,最后一位是.

第一位用于描述该文件的类型

d 表示该文件为目录

- 表示该文件为普通文件

l 表示该文件为链接文件

b 表示该文件为块设备(如/dev/sda就是,磁盘分区文件就是这种类型)

c 表示该文件为串行端口设备文件(又称字符设备文件),如键盘、鼠标等

s 表示该文件为套接字文件(socket),用于进程之间的通信

文件类型后面的9位,每3位为一组,r表示可读,w表示可写,x表示可执行。前3位为所有者权限,中间3位为所属组权限,最后3位为其他非本组用户权限。

第二列:表示该文件占用的节点(inode),如果是目录,那这个数值与 该目录下子目录数量有关

第三列:表示该文件的所有者

第四列:表示该文件的所属组

第五列:表示该文件的大小

第6、7、8列:表示该文件最后一次被修改的时间,依次为月份、日期以及时间

第九列:表示文件名

 

四、alias命令

4.1alias命令→显示系统里所有拥有别名的命令

第二章 文件、目录管理(上)

4.2看别名

#which 查看命令别名或者命令所在的路径

第二章 文件、目录管理(上)

 

五、绝对路径、相对路径

5.1绝对路径:路径的写法一定是由根目录/写起的,例如/usr/local/masql。具有唯一性

相对路径:路径的写法不是由根目录/写起的。例如:

第二章 文件、目录管理(上)

此时用户所在的路径为/home/test,home前有/,test前没有/,这个test是相对于目录/home来说的,所以称为相对路径。

 

六、cd命令

6.1cd →change directory,就是用来变更用户所在的目录的,如果后面什么都不跟,就会直接进入当前用户的根目录下。

6.2如何查看当前所在目录:#pwd

第二章 文件、目录管理(上)

6.3命令cd后面只能跟目录,不能跟文件名,否则会报错

#cd :进入当前用户的家目录下

#cd -:表示上一次所在的目录

#cd ~:~就是用户的家目录,表示更换到用户家目录下

#cd .:表示当前目录

#cd ..:返回上一级目录

#cd /:进入根目录/

#man cd:查看cd命令帮助文件 

 

七、创建和删除目录

7.1创建目录

mkdir  →make directory

7.1.1创建一个新目录,并查看目录信息

第二章 文件、目录管理(上)

7.1.2同时创建两个目录

#mkdir /tmp/linux01/1/2  →创建失败,因为这时还没有/1目录,无法创建/1/2

如何同时创建一串目录:

#mkdir -p /tmp/linux01/1/2

#mkdir -pv /tmp/linux01/2/3/4

使用-p可以同时创建一串目录,使用-pv可以显示创建过程,v表示可视化

第二章 文件、目录管理(上)

7.2删除目录

rmdir  → remove directory

7.2.1删除一个目录

#rmdir /tmp/linux01/1/2  →删除失败:目录非空

第二章 文件、目录管理(上)

注:

目录非空(有子目录、文件)的情况下不能删除;只能删除空目录,不能删非空目录和文件。

 

八、rm命令

8.1 rm  →remove

8.1.1可以删除文件,也可以删除目录及非空目录

# rm /tmp/linux01/123
rm: 无法删除"/tmp/linux01/123": 是一个目录
但是在删除目录时必须使用-r选项,否则不能删除

第二章 文件、目录管理(上)

-r选项:删除目录的选项,可以删除非空目录。注意:使用#rm -r删除目录时,会询问是否删除,"y"表示是;"n“表示否;

-f选项:表示强制删除。不再询问是否删除,直接删除。注意:如果后面跟一个不存在的文件或者目录,删除时也不会报错;删除一个存在的目录时,删除时会报错,-f不能直接删除目录,需要和-r组合

第二章 文件、目录管理(上)

8.1.2rm选项

-r:删除目录、文件(可以非空)

-f:强制删除,不提示

-rf:强制删除目录,不提示

-rfv:显示删除过程

8.1.3删除一个不存在的目录

-r:会提示不存在

-rv:会提示不存在

-f:不提示

-rf:不提示

-rfv:不提示

第二章 文件、目录管理(上)

 

九、环境变量PATH

9.1先介绍#which命令

which命令是查找某个命令的绝对路径

#which ls

第二章 文件、目录管理(上)

这里我们看到ls其实是ls --color=auto,这时使用了alias设置了别名。

9.2为什么我们使用命令时,只是使用了别名,直接打出命令,而没有使用这些命令的绝对路径呢?是环境变量PATH在起作用

#echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
echo用来输出$PATH的值。PATH前的$是变量的前缀符号。

可以看出/bin是在PATH设定下的,所以可以找出ls

 

十、cp命令

10.1cp  →copy

命令格式:cp 选项 源文件 目的文件

10.2选项

-r:复制目录,必须加-r 选项,否则不能复制(复制文件,不加-r)

第二章 文件、目录管理(上)

-i:安全选项。如果遇到一个已存在的文件,会询问是否覆盖。

cp其实是cp -i

#which cp

alias cp=“cp -i”

/bin/cp

第二章 文件、目录管理(上)

10.3总结

①当目标目录不存在时,则会把源目录重命名为目标目录名;当目标目录存在时,则会把源目录移到目标目录下;(目标是目录时);

②当目标文件不存在时,则会把源文件重命名为目标文件名;当目标文件存在时,则会询问是否覆盖。(目标是文件时)

 

十一、mv命令

与cp用法一样(参考第十部分)

 

十二、文档查看cat_more_less_head_tail

12.1 cat:查看一个文件的内容并显示出来

12.1.1 cat后面可以不跟任何选项,直接跟文件名

选项:

-n:查看文件时,把行号也显示到屏幕上

-A:显示所有的内容,包括特殊字符

第二章 文件、目录管理(上)

注:》表示追加,把前面的内容追加到后面的文件中;>也表示重定向,如果文件中有内容,则会删除原有文件的内容

12.2 tac命令:和cat一样,但是是倒序显示

12.3 more:也用于查看文件的内容,后面直接跟文件名

12.3.1当文件太多,一屏不能完全显示时,使用more

12.3.2看完一屏,可以使用空格键向下翻,看下一屏,看完后就会自动退出。

12.3.3快捷键:Ctrl+D,向上翻屏;Ctrl+F,向下翻屏(同空格键);退出,按q键

12.4 less:同more,但是功能比般若强大。

12.4.1快捷键:Ctrl+D,向上翻屏;Ctrl+F,向下翻屏(同空格键);退出,按q键。j键向下移动(按一下向下移动一行),k键向上移动;g定位到行首,G定位到行尾。

12.4.2可查询:按一下/键,输入字符串,就可以查找这个字符串了。如果查询到多个该字符串,n表示下一个,N表示显示上一个;使用?也可以查询,但是/是自上向下查询,?是自下向上查询

12.5head命令

12.5.1默认显示文件的前10行,后面直接跟文件名。

12.5.2选项:

-n:可以修改显示文件的前几行(-n后有无空格都可以;-后面省略n也可以)

第二章 文件、目录管理(上)

12.6 tail命令:与head用法一样,只是显示的是倒数10行

第二章 文件、目录管理(上)

12.6.1 tail命令的-f选项也常用,它可以动态的显示文件的最后10行。例:

第二章 文件、目录管理(上)

 

十三、文件或目录权限chmod

13.1 chmod  →change mode

用于改变用户对文件、目录的读写执行权限,格式:chmod -R xyz 文件名。-R表示级联更改,xyz表示数字,代表权限。

r 读=4

w 写=2

x 执行=1

- 无=0

例:rwxr--r-x=745

13.1 chmod只对目录或文件本身权限进行修改,不能修改目录下的子目录和文件。使用-R可以

第二章 文件、目录管理(上)

13.2其他用法

①chmod rwxrw-rw- 文件名

②chmod u=rwx,g=rw-,o=rw-;u是user,g是group,o是others;a代表all

第二章 文件、目录管理(上)

③针对u/g/o/a,增加或减少他们的某个权限:

a+x,a-x,u+x,u-x。。。。

chmod a+x 文件名

第二章 文件、目录管理(上)

十四、更改所有者和所属组chown

14.1chgrp  →change group

chgrp命令可以更改文件的所属组,格式:chgrp 组名 文件名

第二章 文件、目录管理(上)

chgrp命令还可以更改目录的所属组;

第二章 文件、目录管理(上)

chgrp命令只更改了目录本身,而目录下的子目录及文件并没有更改;通过-R可以实现级联更改子目录、文件的所属组

第二章 文件、目录管理(上)

14.2 chown  →change owner

chown命令更改文件的所有者、或者所属组

格式:chown 账户名 文件名  或 chown 账户名:组名 文件名

chown命令只更改了目录本身,而目录下的子目录及文件并没有更改;通过-R可以实现级联更改子目录、文件的所属组

第二章 文件、目录管理(上)

 

十五、umask

15.1umask命令用于改变文件的默认权限。一般目录的默认权限是755;文件的默认权限是644(因为目录必须要打开才能访问;而文件不能随便访问)

15.2 umask值是可以自定义的:#umask xyz:xyz表示数字,预设值为0022

15.3 目录的最高权限是777,文件的最高权限是666(文件预设不能给执行权限,容易被操作);新创新的目录权限为775,文件权限为664.