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



④.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


-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:将文件的权限、时间、用户属性一起复制(备份常用)



-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

Comments NOTHING