linux文件与目录管理-2
2.10 环境变量PATH
- which 用来查看某个命令的绝对路径 或者有没有别名
- 例如ls 用which来查看它的绝地路径
这里可以看到ls是有别名的 绝对路径:/usr/bin/ls
rmidr 绝对路径:/usr/bin/rmdir 是没有别名的
- 我们用命令应该使用它的绝对路径 但是为什么可以不使用绝对路径它也能执行呢
-
这里就是环境变量在起作用
ls 命令的绝对路径为/usr/bin/ls
PATH下是有/usr/bin/ 那么我们就可以直接使用命令可不用绝对路径
没有在PATH下目录里的命令是找不到的 那它就不会被执行
现在我们使用cp命令拷贝一份ls的绝对路径 并更名为/tmp/lf
我们使用它的绝对路径/tmp/lf 是可以使用的 但是我们直接使用命令不能的 因为它没有在PATH下的那些目录中 如果需要使用lf命令需要更改环境变量
需要把/tmp/ 加入到PATH里面, 那么就可以使用lf命令, 重新赋值
方法如下:
这种方法使用命令只是临时有效 ,重新打开就不会被执行 , 必须使用绝对路径
可以看到/tmp/目录不存在了永久生效
修改 /etc/profile 配置文件可以让它每次开机或者打开终端都加载这个命令
在文件底部写入PATH=$PATH:/tmp/ 并进行保存
这样就可以永久使用lf命令
- 去除方法
1 可以重新修改/etc/profile配置文件 将里面的PATH=$PATH:/tmp/删除
2 PATH重新赋值
2.11 cp命令
- cp命令用来拷贝源文件成目标文件
cp -r 用来拷贝目录
这里源目录带/ 那么我们拷贝的目标目录也应该带/
其中 !$表示上条命令的最后一条参数
- which cp 可以看到其中是带有 -i 参数,如果拷贝源文件到目标文件 ,但目标文件和已经存在的文件同名,它会询问是否覆盖 。可以使用绝对路径,这样就不会再询问
cp -r 拷贝目录是不会询问的。
当目标目录已经存在时,它会把源目录放到目标目录下
当目标目录不存在,它会把源目录拷贝过来并且会更改名字
当源目录名与目标目录名相同时也会询问是否要覆盖
2.12 mv命令
-mv 把文件转移位置并同是更改文件名
在同目录下则只是更改文件名
在同目录下移源目录到目标目录 会把源目录放在目标目录下 如果是相同文件名则会询问是否覆盖 当使用绝对路径时是不会再询问的
当目标目录不存在时 则只是改名字
当目标目录存在 会把源目录放在目标目录下
当目标目录下存在和目标目录同文件名 那么会询问是否需要覆盖
2.13 文档查看cat/more/less/head/tail
-cat查看文件内容(正序)
-tac 查看文件内容(倒序)
- cat -A $符号表示结束符 在每行的行尾
- cat -n 显示行号
-
more用来一屏一屏显示文件内容 用空格键往下查看 Ctrl+b往上查看 全部显示完会自动退出 - less 查看文件内容 空格一屏一屏往下看 Ctrl+f往下看或者↓方向键
- Ctrl+b往上看或者↑方向键
看到最后q键退出
-搜索字符串 /+字符 例如/root 被搜素字符高亮状态
n键上翻 shift+n下翻
倒序搜索 ?+字符 定位到文件末尾 n键下翻 shift+n上翻-
- shift+g定位到行首 +G定位到行尾
head 查看文件前10行
tail 查看文件后10行
指定行数 -n 数字
tail -f 查看动态文件 比如日志