Linux基本操作之路径的详解 |
您所在的位置:网站首页 › f的写法怎么写 › Linux基本操作之路径的详解 |
一、linux下的路径
Linux中的路径可以分为绝对路径和相对路径,因为根据档名写法的不同,也可以将所谓的路径(path)定义为绝对路径(absolute)和相对路径(relative)。这两种文件名/路径的写法根据是这样的: 绝对路径:由跟目录(/)开始起的文件或者目录名称,例如 /home/dmtais/.bashrc: (绝对路径的写法一定是由 / 目录写起的) 相对路径:相对于目前路径的文件名写法。例如 ./home/dmtsai 或 ../ ../home/dmtsai 等。反正开头不是 / 属于相对路径的写法。(相对路径的写法不是由 / 目录写起的). . :代表当前的目录,也可以使用 ./ 来表示; .. :代表上一层目录,也可以 ../ 来表示;这个 . 与 .. 目录的概念是很重要的,你经常看到 cd .. 或 ./command 之类的指令下达方式,就是代表上一层与目前所在目录的工作状态, 例如:如何先进入到/var/spool/mail/目录,在进入到/var/spool/lpd/目录内? $ cd /var/spool/mail/ ##进入到/var/spool/mail/下 $ cd ../lpd/ ##返回上一层目录并进入lpd目录 $ cd ../.. ##返回上边的两级目录回到/var目录下
二、目录的相关操作
1、目录下的各种操作如下: . ##代表此层目录 .. ##代表上一层目录 - ##代表前一个工作目录 ~ ##代表[目前用户身份]所在的加目录 ~redhat ##代表redhat这个用户的加目录(redhat是个账号的名称)需要注意到额是:在所有的 目录下都会存在的两个目录,分别是[ . ] 与 [ .. ] 分别代表此层和上层目录的意思。但是用 $ls -al 去查询的时候可以看到两个目录确实是存在的,经过对目录权限的查看可以发现这两个目录的权限和属性是一样的,这代表着根目录的上一层(..)与自己的目录(.)是同一个目录。 2、几个常见处理目录的指令: cd : 变换目录pwd : 显示当前的目录mikdir :创建一个目录rmdir : 删除一个空目录
3、pwd的使用方法 $ pwd ##列出当前的目录(显示的是连结的方式) $ pwd -P ##显示文件的真实路径
4、mkdir的使用方法 $ mkdir westos ##创建westos $ mkdir -p test/redhat/yang ##以递归的方式创建目录 $ mkdir -m 752 bin ##创建给新创建的目录添加权限
5、rmdir删除空目录只有只能删除空目录 $ rmdir test ##删除单个目录 $ rmdir -p test/westos/redhat ##如果存在多级目录只能用-p来进行删除(注:如果目录中有已经建立好的文件是不能用此命令去删除的)
三、相关的执行文件的路径的变量:$PATH 1、当我们在执行一个命令的时候,举例来说 [ ls ] 好了,系统会依照PATH的设定去每个PATH定义的目录下搜寻文件名为 ls 的可执行文件,如果在PATH定义的目录中含有多个文件名为 ls 可执行文件,那么先搜寻到的同名指令被执行! 现在,请下达 [ echo $PATH ] 来看看到底哪些目录被定义出来? echo有 [显示、印出] 的意思,而PATH 前面的 $ 表示后面接的变量,所以会显示当前的 PATH ! $ echo $PATH ##查看当前路径的环境PATH(一定是大写)这个变量的内容是由一推目录所组成的,每个目录中间用冒号来隔开,每个目录是有[顺序] 之分的,仔细看一下上面的输出,就可以发现无论是root还是dmtsai都有 /bin 或 /usr/bin 这个目录,这个目录在PATH 变量内,所以当然就能够在任何地方执行ls来找到/bin/ls 执行档,因为 /bin 在CentOS7 当中,就是连结到 /usr/bin 去的 ! 所以这两个目录的内容一摸一样。 需要执行的命令必须放置在/usr/bin 或者 /usr/sbin 这两个目录下,不然正常的情况下是无法执行的,只有设置了。相应的环境变量之后才命令才能够生效,如果换成其他的目录。 实验的步骤 :
PATH用途总结: 不同身份使用者预设的PATH不同,默认能够随意执行的指令也不同(root 与 dmtsai;PATH是可以修改的;使用绝对路径或相对路径指定的文件名来执行,会比搜寻PATH来的正确。指令应该要放置到正确的目录下,执行才会比较方便。本目录(.)最好不要到PATH当中。
2、一般处理目录文件时常用到的一些命令,复制、删除与移动: cp 、rm、mv cp 复制命令相关的参数选择: -a :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明: (常用) -d :若来源文件为链接文件的 属性(link file),则复制链接文件属性而非文件本身的; -f :为强制 (force)的意思,若目标文件已存在且无法开启,则移除后再尝试一下。 -i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l :进行硬式连结(hard link)的连结档建立,而非复制文件本身 -p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用) -r : 递归持续复制,用于目录的复制行为;(常用) -s :复制成为符号链接文件(symbolic link) -u :当源文件和现文件存在差异时才使用,一般做备份用。 rm 移除文件或目录 或更名 选项参数:-f :就是 force的意思,忽略不存在的文件,不会出现警告讯息。-i : 互动模式,在删除前会询问使用者是否动作。-r :递归删除,最常见用在目录的删除,这里非常危险的选项。
3、获取路径的文件名与目录名称 每个文件的完整档名包括了前面的目录与最终的文件名,而每个档名的长度都可以达到255个字符,那么我们我hi如何知道那个式档名哪个是目录名? $ basename /usr/bin/sort 输出"sort"。 $ basename ./include/stdio.h .h 输出"stdio"。 为basename指定一个路径,basename命令会删掉所有的前缀包括最后一个slash(‘/’)字符,然后将字符串显示出来。 $ dirname /etc/sysconfig/network 输出为/etc/sysconfig /etc/sysconfig 四、文件内容的查阅 如果我们要查阅一个文件的内容时,这里有相当多的指令可以使用,最常用的显示文件内容的指令是cat 与 more 以及less。相关的命令如下图所示。 cat 由第一开始显示文件内容。tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写。nl 显示的时候,顺道输出行号。more 一页一页的显示文件的内容less 与more类似,但是比more更好的是,他可以往前翻页。head 只看几行tail 只看文件后边的几行od 以二进制的方式读取文件内容 cat $ cat -A ##列出一些特殊的字符而不是空白而已详细分析查看 cat --help tac (反向示例) nl (添加行号打印) -b : 指定行号的方式,主要有两种; -b a :表示无论是否为空行,也同样列出行号(类似 cat -n); -b t : 如果空行,空的那一行要列出行号(默认值); -n : 列出行号表示的方法,主要有三种:-n ln : 行号在屏幕的最左方显示 -n rn : 行号在自己字段的最有方显示,且不加 0; -n rz :行号在自己字段的最右方显示,且加0; 五、可翻页检视 上述提到的nl 与 cat tac 等,都是一次性的将数据一口气显示到屏幕上面,如果想要一页页的翻,可以使用more,less命令。 在进行more命令的使用时下边是命令的使用方法: 空格键盘(space): 代表向下翻一页; Enter :代表向下翻 [ 一行 ] /字符串 :代表在这个显示的内容当中,向下搜寻 [字符串] 这个关键词; :f :立刻显示出文件名以及目前显示的行数 q :代表立刻离开more,不再显示该文件的内容。 b 或 [ctrl] -b :代表往回翻页,不过这动作只对文件有作用,对管线无用 例子:显示passwd文件中11到20行的内容,并显示行号。 $ head -n 20 /etc/passwd | tail -n 20 | nl ##先提取passwd的前20行的内容,再显示提取到的20行中后20行的内容,并显示行号。od (非纯文本文档) 上边所所述的是纯文本文档的内容,但是如果要查阅的是非文本文件,举例来说,例如/usr/bin/passwd 这个执行文档的内容时,又该如何去读出信息呢,由于执行档通常是binary file 使用上边提到的指令来读取其他的内容时,确实会产生类似乱码数据。 选项参数 -t : 后边可以接各种 [类型 (TYPE)] 的输出,例如; a : 利用默认的字符来输出; c : 使用 ASCII 字符来输出
六、which和whereis查找命令所在的位置以及文件和目录所在的位置 1、which命令的使用方法 which [指令] ##查找与该指令完整的文件名
2、whereis命令的使用方法 $ whereis [-bmsu] 文件或目录名 选项与参数: -l :可以列出 whereis 回去查询的几个主要的目录而已 -b :只找binary 格式的文件 -m :只找在说明文件 manual 路径下的文件 -s :只找 source 来源的文件 -u :搜寻不在上述三个目录当中的其他特殊文件 $ whereis ifconfig ##查找ifconfig文件所在的路径 $ whereis passwd ##查找passwd文件所在的目录whereis命令主要是针对/bin/sbin 底下的执行文档,以及 /usr/share/man 底下的 man page 文件,跟几个比较特特定的目录来处理而已,
3、locate / updatedb 选项与参数 -i : 忽略大小写的差异 -c :不输出档名,仅计算占到的文件的数量 -l : 仅输出几行的意思,例如输出五行 则是 -l 5 -S : 输出 locate所使用的数据库文件的相关信息,包括该数据库记录的文件 / 目录量等 -r :后面可接正规的显示方式 (1)、让用户能进入成为[可工作目录] 的基本权限为何: 可使用的指令: 例如cd 等变换工作的指令。 目录所需权限:用户对于这个目录至少需要具有x权限 额外需求:如果用户想要在这个目录内利用 ls 查询文件名,则用户对此目录还需要 r 权限。
(2)、用户在某个目录内读取的基本权限为何? 可使用的指令:例如 cat more less 等等。 目录所需权限:用户对这个目录至少需要具有 x 权限等等。 文件所需权限:使用者对文件至少需要具有 r 的权限才行 。 该文件的存取模式(read/write/excute); 该文件的拥有者与群组(owner/group); 该文件的容量; 该文件建立或状态改变的时间(ctime);最近一次读取的时间(atime);最近一次修改的时间(mtime);定义文特性的旗帜(flag);该文件真正内容的指向;每日一学: $ uname -r ## 查看系统的核心版本 $ uname -m ## 查看操作系统的版本位
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |