这个RHCE的讲师说实话讲课的顺序是真的诡异,上一秒可能还在基础的基础,下一秒就类似高级进阶的那种了,人傻了,那么按照惯例这只是上课笔记的整理而已。并不会有任何实质性的内容
不管是在哪一个操作系统中,都会有绝对路径以及相对路径使用,那么这两者如何区分呢
绝对路径:从根开始的文件路径 /
众所周知Linux系统的结构,
[root@Elapse ~]# cd /
[root@Elapse /]# ls
bin dev home lib64 media opt root selinux sys usr
boot etc lib lost+found mnt proc sbin srv tmp var
例如我现在用户 Elapse
的用户目录下有一个 test.txt
,这个文件的绝对路径就是 /home/elapse/test.txt
相对路径: 相对于当前路径的路径
如果说绝对路径是以根目录开始的路径的话,那么相对路径就是以你当前的路径为 根目录
开始的路径(看起来有点绕,并不)
举个例子,上文说到一个绝对路径 /home/elapse/test.txt
,但是如果我当前的目录就是 /home
的话,那么我只需要 ./elapse/test/txt
就可以了(当然./这个可有可无,./表示当前目录)
这里还用到了个多余的命令是 pwd
,这个命令是用于查看当前路径的命令
(更加具体的自行百度)
软链接类似于Windows操作系统的快捷方式,原文件被删除则软链接失效,变为“死链接”,当然可以通过恢复原文件的方式来恢复软链接
新建软链接:ln-s<原文件路径><想要链接的地方>
原文件路径必须为绝对路径
特点:可以对任何文件做软链接,包括目录,普通文件,可以跨文件系统
硬链接就是比较硬核的链接了,他跟复制差不多,但是也不一样,和软链接的区别是,软链接的原文件失效了就死链了,但是硬链接不会,所以通常硬链接也是用来防止文件误删除的
新建硬链接: ln<原文件><目标文件>
这里先创建一个文件夹和文件
尝试一下硬链接
我们发现,目录是不允许创建的
和软链接一样的是,他能同时对文件进行操作,同时,硬链接以文件副本的形式存在。不占用实际空间,但是不可以跨文件系统,必须在同一个文件系统下创建。
在Linux中可以赋值变量等操作的
除此外,还有配合符号的用法
[root@Elapse ~]# echo '$a $b' #''为原字符输出
$a $b
[root@Elapse ~]#
[root@Elapse ~]# echo "$a $b" #""取出变量的值输出
Hello Asolmn
[root@Elapse ~]#
就是去除同样的而已,其实没多大用,对日志审计也没什么用。,因为像 a
和 a
中间出现了不同的字符串的话并不能好好的去重
查看环境变量:
[root@Elapse ~]# env
常见环境变量:
PATH:由目录组成的,当用户在任何目录输入命令,都会在当前目录和PATH列表中的目录查找执行
插个题外话
不同的目录保存不同级别用户的命令 /usr/bin: 保存普通用户可以执行的命令 ls pwd cd /usr/sbin: 保存管理员使用的管理命令 ifconfig fdisk
添加临时环境变量:
为了环境演示,首先我在 /tmp/t/
目录下写了一个.sh文件,输出一串字
[root@Elapse ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/root/bin
[root@Elapse ~]# PATH=$PATH:/tmp/t/
[root@Elapse ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/root/bin:/tmp/t/
[root@Elapse ~]#
这样,不论在哪一个目录下输入t.sh都会执行/tmp/t/目录下的t.sh了
那么如何永久添加呢,有以下两种方法
export PATH=$PATH:<路径>
添加:export PATH=$PATH:<路径>