第四节.学习Linux系统的文件及目录管理

最后更新于 2021-10-08 479 次阅读


1.绝对路径及相对路径的用途

路径:变量PATH

(1)绝对路径

在对文件名的正确性方面,绝对路径的正确性会比较高,特别是在使用程序(shell脚本)来管理系统时,绝对路径的使用能确保不会有问题。同时,在计划任务(at和cron)中尤其重要。

(2)相对路径

相对路径常用于某些软件的目录设置中,例如一个软件的需求安装目录为/etc,/bin和/man,有的人可能在安装时喜欢放在/usr/local/packages/etc,/usr/local/packages/bin,/usr/local/packages/man;而有的人可能喜欢放在/home/packages/etc,/home/packages/bin,/home/packages/man,这时候如果使用绝对路径,就会出现目录下的东西难以对应的问题,而如果使用../etc,../bin,../man这样的相对路径写法就不会有太大的问题。

2.目录的相关操作

(1)常用的特殊目录:

① . “.”代表此层目录
②. “..”代表上一层目录
③. “-”代表前一个工作目录

类似于windows里的返回键,返回到上一级的目录(不一定是上一层)

④. "cd ~"代表前往目前使用者的家目录
⑤. “cd ~account ”代表前往account这个使用者的家目录

例如:cd ~jiaran 前往jiaran的家目录

(2)常用处理目录的命令

①.cd

用于在目录之间切换

②.pwd(print working directory)

显示当前目录

常用参数:

-P(大写) :用于显示真正的路径,而不是显示链接路径

例:

③.mkdir

创建新目录

常用参数

-m:设置文件的权限,不使用默认权限

例:mkdir -m 754 test

-p:直接递归创建目录(包括上一级目录)

例:正常情况下,如果你想在/usr创建一个/test1/test2/test3文件夹,首先得先创建test1和test2这两个文件夹,然后才能创建test3这个文件夹,但是加参数-p后,系统就会自己帮你创建前两个文件夹。

mkdir -p /usr/test1/test2/test3

-m和-p参数一起使用的结果

④.rmdir

删除目录

常用参数:

-p:连同上层“空的”目录一起删除

常规情况下,rmdir删除的目录必须是空目录,不然就会出现如下提示。

加上参数-P后就成功删除了

(3)执行文件路径的环境变量$PATH

在还不是太了解Linux系统的时候,可能会对一些命令产生疑问,为什么有一些命令可以在任意目录下直接运行?例如ls这个查看文件和目录的命令,通过查询我们可以知道,ls这个命令位于/bin/ls之中,那么为什么我们可以在其他目录中运行这个命令,而不提示找不到该/bin/ls命令呢?这时候我们要引入环境变量$PATH的概念。

当我们在运行某一个命令时,比如ls命令,系统就会从环境变量$PATH所设置定义的文件夹里按照顺序来对命令进行查找,如果在PATH定义的目录中包含多个名为ls可执行文件,那么先查到的同名文件先被执行。

①.查看系统环境变量$PATH定义文件夹的命令为:echo $PATH

目录与目录之间以":"隔开,按从左到右为顺序进行查找

②.将某一目录临时添加到环境变量中的命令:PATH=$PATH:/文件夹:/文件夹(“:”冒号分隔两个文件夹)"

例:将目录/bin/ls ls命令移到/root目录中(mv /bin/ls /root),然后运行ls,就会提示

这时候,将/root添加到系统变量中,再次运行ls,就能够使用了

(4)文件与目录管理

文件与目录管理主要是显示文件的属性信息,对文件目录进行复制粘贴、删除及移动

①.“ls”命令:对文件与目录的查看

命令范例:ls [-option] 文件名或目录名称

常用参数:

-a :显示该目录下全部的文件,包括隐藏文件(.开头的文件)

-d:仅列出目录本身,而不是列出目录内的文件数据

-F:根据文件、目录的等信息,给予附加的数据结构(*:代表可执行文件;/:代表目录;=:代表socket文件;|:代表FIFO文件)

-l:列出详细信息详情,包含文件的权限、时间等属性(常用)(ls -l = ll(两个L小写))

例如:ls -l /usr =ll /usr

ls命令 带-al参数
ls命令 带-alF参数

-h:把文件容量用常用的容量单位(KB GB)表示出来

-i:列出inode号码(最左边的数字)

--color=never:不要依据文件特性给予颜色显示

--color=always:显示颜色

--full-time 显示完整的时间

②."cp"命令:复制、建立链接文件、比对文件的新旧再更新(备份常用)、复制整个目录

命令格式:cp 【-option】 源文件 目标文件

注意:当复制多个源文件时,目标文件一定是目录(cp -a ~/.bashrc ~/bath.history /tmp

例:cp -a ~/.bashrc /tmp/bashrc

常用参数:

-a:将文件的所有属性、权限、时间、用户、SELinux、links、xattr属性一并复制过去

-p:将文件的权限、时间、用户属性一起复制(备份常用)

源文件属性
不添加任何参数复制过后的文件属性
添加了-p参数后的复制,可见 bashrc文件的时间变成了源文件的属性

-d:若源文件为链接文件的属性(link file),则复制链接文件属性而非链接文件本身

-i:若目标文件已经存在时,在覆盖时会询问是否覆盖(常用)

-r:递归复制,用于目录的复制操作(常用)

-s :复制成为符号链接文件,即快捷方式(符号链接)

例如:cp -s /root/.bashrc /tmp/bashrc_slink

-l:进行硬链接的链接文件建立,而非复制文件本身

-u:目标文件比源文件旧时才更新文件、或目标文件不存在时才复制文件

总之,由于cp命令带有控制文件目录权限等属性的特性,在进行复制操作时,要考虑:

·是否需要保留完整的文件信息?

·源文件是否为链接文件?

·源文件是否是特殊文件?如socket、FIFO文件

·源文件是否为目录?

③.“rm”命令:删除文件及目录

命令格式:rm 【-option】 文件或目录

例如:rm -fr /usr/local

rm -i /bashrc* 把目录下开头是bashrc的文件删除(*是通配符,可以匹配任何东西)

常用参数:

-f:在删除过程中,忽略不存着的文件、忽略告警信息

-i:交互模式,删除文件前会和使用者进行确认(root用户下默认开启)

-r:递归删除,一般用于目录的删除。十分危险的选项

④.“mv”命令:移动文件及目录

命令格式:mv 【-option】 源文件 目标文件

例:mv -i /root/.bashrc /tmp

mkdir ./test

mv bashrc test(将文件转移到目录)

常用参数:

-f:force 转移文件时,如果目标文件已经存在,不会进行询问而是直接覆盖

-i:交互模式,会进行确认

-u:在转移时,只有目标文件比源文件旧时,才进行更新

(5)获取路径的文件名和目录名的命令

①.获取路径的文件名

命令:basename /etc/sysconfig/netword

②.获取路径的目录名

命令:dirname /etc/sysconfig/network