关注并标星大同学吧
每天1次,打卡学习
积累1个新知识,增1分职场底气
作者称谓:Jack xu
个人介绍:不断学习的数字后端工程师
微信公众号:志芯
半导体知识分享第25期
技能升级,从这里开始
1相对路径和绝对路径
绝对路径和相对路径在shell环境中经常遇到,各有用处。
1.1绝对路径
绝对路径必定由“/”开头,绝对路径是为档案/文件的所在位置做指向,在任何时候,都可以用绝对路径来找到我们想要的文件。绝对路径举例:
1.2相对路径
相对路径不由“/”开头,相对路径是相对于现在目前所在的位置,为目的地指向。通常相对路径比绝对路径短一点,可以当成我们迅速找到文件/档案的捷径
相对路径举例:
1.3系统如何识别相对路径指向的绝对路径
在给出相对路径时,系统如何识别其相应的绝对路径呢?
事实上,相对路径是根据PATH环境变量来查找绝对路径的。
举例来说,我目前在 /home/test 这个 test 使用者的家目录中,我想要看看里面的 .bashrc 这个档案的数据,使用的是 more 这个指令,而这个指令在 /bin/more 当中。通常的命令写法是:
$ more .bashrc
而由于PATH变量的值为:
$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/user/bin
在执行more命令时,shell会根据PATH变量的路径中顺序查找,一旦查找匹配到(此例匹配到的应该是/bin/more),便执行/bin/more .bashrc。这便是执行命令时由相对路径查找绝对路径的过程。
所以我们就可以理解为什么执行当前目录下的可执行程序应该用的格式是:
$ ./test.sh。而不是直接用test.sh了。因为通常PATH变量不包含当前路径。如果不加./会导致相对路径格式的命令找不到绝对路径。
2目录相关的操作
2.1路径符号
2.2目录处理命令
2.2.1cd
cd命令用来切换工作目录至dirname。其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。
• 语法
• 选项
• 实例
2.2.2pwd
pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。
• 语法
• 选项
• 实例
2.2.3mkdir
mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
注意:在创建文件时,不要把所有的文件都存放在主目录中,可以创建子目录,通过它们来更有效地组织文件。最好采用前后一致的命名方式来区分文件和目录。例如,目录名可以以大写字母开头,这样,在目录列表中目录名就出现在前面。
在一个子目录中应包含类型相似或用途相近的文件。例如,应建立一个子目录,它包含所有的数据库文件,另有一个子目录应包含电子表格文件,还有一个子目录应包含文字处理文档,等等。目录也是文件,它们和普通文件一样遵循相同的命名规则,并且利用全路径可以唯一地指定一个目录。
• 语法
• 选项
• 参数
目录:指定要创建的目录列表,多个目录之间用空格隔开。
• 实例
在目录/usr/meng下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问。
在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问。
2.2.4rmdir
rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname 表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。
注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm 命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。
虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。
• 语法
• 选项
• 参数
目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。
•