2.10 环境变量PATH
环境变量PATH的用法:
1. 查看环境变量过的目录:echo $PATH
不用绝对路径即可执行的命令;命令文件所在的目录,就是环境变量目录!
[[email protected] ~]# echo $PATH
2. 查看命令所在的路径,也显示出命令的别名:which 跟命令
[[email protected] ~]# which ls
3. 复制命令文件,粘贴到没有环境变量的目录下:
cp 跟复制命令文件的绝对路径 跟粘贴到目录的绝对路径/自定义命令名称
[[email protected] ~]# cp /usr/bin/ls /tmp/ls2
4. 查看粘贴到/tmp目录下的命令文件(ls命令文件以重命名为ls2):
[[email protected] ~]# ls /tmp
5. 运行拷贝来的命令文件ls2:
[[email protected] ~]# ls2
因为/tmp 这个目录,没有做环境变量,所有无法直接使用ls2命令文件!!!
执行这个命令文件是可以的,前提命令是绝对路径执行!
6. 用which命令,搜索ls2命令文件的绝对路径:
无法搜索到,原因:ls2命令文件,所在目录没有环境变量!!
[[email protected] ~]# which ls2
7. 给目录做环境变量:PATH=$PATH:跟目录的绝对路径
[[email protected] ~]# PATH=$PATH:/tmp/
8. 查看环境变量的目录:看看里面有没有tmp目录?
[[email protected] ~]# echo $PATH
9. 执行/tmp下的ls2这个命令文件:
[[email protected] ~]# ls2
10. 永久的保存指定目录环境变量,编辑启动执行的配置文件:
[[email protected] ~]# vi /etc/profile
文件最下面,另起一行,插入:指定目录的变量——保存退出
插入:PATH=$PATH:/tmp/
11. 取消定义的环境变量目录:指定系统自带的环境变量目录
[[email protected] ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
12. 永久取消定义的环境变量目录:编辑启动执行的配置文件:
[[email protected] ~]# vi /etc/profile
删除定义的环境变量目录命令:PATH=$PATH:/tmp/
快捷:删除文件行,一般模式下,连续两下d键,即可删除光标所在行
2.11 cp命令
cp是copy缩写,就是拷贝!
cp命令作用:原文件——拷贝成——目标文件
1. 拷贝文件命令:
cp /原文件目录/原文件 /目标文件目录/目标文件(可自定义重命名)
/etc/是原文件所在目录,passwd是原文件 ;
/tmp/是目标文件存放目录,1.txt是原文件重命名的目标文件,
[[email protected] ~]# cp /etc/passwd /tmp/1.txt
2. passwd这个密码文件里的内容,和1.txt是一样的内容,用cat命令查看这两个普通文档内容!
[[email protected] ~]# cat /etc/passwd
[[email protected] ~]# /tmp/1.txt
3. 创建一个目录,做实验:
[[email protected] ~]# mkdir /tmp/mulu1
4. 拷贝目录命令:
cp -r /原目录路径/原目录/ /目标存储目录/目标目录/(可自定义重命名)
[[email protected] ~]# cp r /tmp/mulu1/ /tmp/mulu2
5. 拷贝同名文件到指定目录下,安全提示:是否覆盖?
tmp目录已存在1.txt为名的文件,粘贴过来会提示:是否覆盖?覆盖:y 取消:n
[[email protected] ~]# cp /root/1.txt /tmp/1.txt
6. 拷贝同名文件到指定目录下,直接覆盖不提示!
用cp命令的命令文件路径:/usr/bin/cp
查看命令的命令文件路径:which 跟命令
[[email protected] ~]# /usr/bin/cp /root/1.txt /tmp/1.txt
7. 实验: 拷贝同名目录到指定目录下:cp拷贝目录:要在目录名后面加/
查看/tmp/目录下,mulu1结构
[[email protected] ~]# tree /tmp/mulu1/
拷贝同名mulu1,到/tmp/目录下,粘贴/tmp/下,会覆盖tmp下的mulu1吗?
[[email protected] ~]# cp -r /root/mulu1/ /tmp/mulu1/
粘贴完,再查看/tmp/下,mulu1结构
[[email protected] ~]# tree /tmp/mulu1/
得出结果:当目标目录存在的时候,会把原目录直接放到目标目录下面去!
如果同名目录不存在,会把原目录直接放在指定目录路径下,
2.12 mv命令
mv 是move缩写:移动文件或目录的命令
1. 同一目录,移动文件重命名:mv 跟原文件 跟重新设定的名
(这样操作:就是重命名的作用=更改文件名)
1.txt是原文件 11.txt是移动重命名的文件
[[email protected] ~]# mv 1.txt 11.txt
2. 移动文件命令:mv 跟原文件 跟存放目录路径
[[email protected] ~]# mv 11.txt /tmp/
3. 移动同名文件,到指定目录下:带提示!
移动11.txt到/tmp/下,/tmp/下有同名的11.txt,提示:是否覆盖?
[[email protected] ~]# mv 11.txt /tmp/
4. 移动同名文件,到指定目录下:不要提示!
移动11.txt到/tmp/下,/tmp/下有同名的11.txt,不提示覆盖:用mv绝对路径命令
查看命令的命令文件路径:which 跟命令
mv 的绝对路径命令:/usr/bin/mv
[[email protected] ~]# which mv
[[email protected] ~]# /usr/bin/mv 11.txt /tmp/
5. 同一目录,移动目录重命名:mv 跟原目录 跟重新设定的名
注意:目录后面都要加上/
[[email protected] ~]# mv mulu1/ mulu2/
6. 实验: 移动同名目录到指定目录下:nv移动目录:要在目录名后面加/
查看/tmp/目录下,mulu1结构
[[email protected] ~]# tree /tmp/mulu2/
移动同名mulu1,到/tmp/目录下,会覆盖tmp下的同名mulu2吗?
[[email protected] ~]# mv /root/mulu2/ /tmp/mulu2/
移动完,再查看/tmp/下,mulu2结构
[[email protected] ~]# tree /tmp/mulu2/
得出结果:
当目标目录存在的时候,会把原目录直接放到目标目录下面去!
如果同名目录不存在,会把原目录直接放在指定目录路径下,
mv 如果原文件和目标文件都是在同一个目录,就是重命名
mv 如果目标的文件已存在,就问是否覆盖!
mv 如果目标的目录已存在,就会把原目录放在目标目录下
mv 如果目录的目录已存在,目标目录下也和原目录同名,就会提示是否覆盖了
2.13 文档查看cat_more_less_head_tail
1. cat:查看文件内容
例:cat 1.txt
2. cat -A :查看文件内容,每行行尾加上$结束符号
例:cat -A 1.txt
3. cat -n :查看文件内容,每行行首显示行号
例:cat -n 1.txt
4. more:查看文件内容,文件内容是一屏一屏显示:
向下翻屏:空格键
向上翻屏:Ctrl+b
例:more 1.txt
5. wc -l :查看文件内容总行数
例:wc -l 1.txt
less :查看文件内容命令
1. 上下一行一行移动:方向键
2. 向后(向下)翻屏:空格键 或Ctrl+f
向前(向上)翻屏:Ctrl+b
3. 退出:q
4. 从前(上)往后(下)搜索关键词:/跟关键词
(搜索到的关键词会高亮显示)
向后(向下)查看高亮的关键词:n键
向前(向上)查看高亮的关键词:Shift+n
5. 从后(下)往前(上)搜索关键词:?跟关键词
(搜索到的关键词会高亮显示)
向前(向上)查看高亮的关键词:n键
向后(向下)查看高亮的关键词:Shift+n
6. 定位到首行:g
定位到末行:Shift+g
7. head :查看文件内容前10行(默认不加参数,前10行)
例:head 1.txt
head -n :指定查看文件内容前2行
例:head -n 2 1.txt
8. tail :查看文件内容后10行(默认不加参数,后10行)
例:tail 1.txt
tail -n :指定查看文件内容后2行
例:tail -n 2 1.txt
tail -f :动态显示文件的内容(看日志文件会用到此命令)