2.10 环境变量PATH
2.11 cp命令
2.12 mv命令
2.13 文档查看cat/more/less/head/tail
2.10 环境变量PATH
!!!回顾
#which
可以查看命令的所处路径,有没有别名。
#find
find命令归纳总结比较好的文章:http://ask.apelearn.com/question/17771
命令是查找整个硬盘相关的路径,但是
#which 只在/usr/local/sbin:/usr/local/bin/:/usr/sbin:/usr/bin:/root/bin (:是分割位置)如果命令都在此几个目录下,就不需要键入绝对路径。
例如#rm (真正用到命令,应该使用绝对路径,命令其实也是一个文件,需要找到对应路径,才能触发他的使用)
#rm
可以直接用,
#/usr/bin/rm
也可以用绝对路径使用
一般常用命令会存放在这几个路径下:
/usr/local/sbin:/usr/local/bin/:/usr/sbin:/usr/bin:/root/bin,
而rm存放在/usr/bin/
如果我们任意键入不存在命令,系统会报错,未找到命令,
例如
用LS作个例子 作个copy,新的copy改个新名字(其实它的功能还是跟ls一样),改作ls2
先#which ls 来寻找它所在的路径,/usr/bin/ls,
找到路径后,再作个cp,
#cp /usr/bin/ls /tmp/ls2
复制文件随后,需要把cp后的路径,加入到$PATH里面
#PATH=$PATH:/tmp/
($PATH后面带的参数,就是需要写入PATH里面的内容,此处一般带目录)
#echo $PATH
OK.发现多了一个/tmp/
运行ls2
#ls2
结果ok,跟ls功能一样 ,成功激发ls,这就是环境变量的作用与含义。
打开另一个Shell终端 发现#ls2 不生效。
如果想ls2每次在终端都生效,此时需要把ls环境变量设为永久生效
方法
#vi /etc/profile(每次开机都可以自动加载命令)(截图)
#cat
再次打开终端,
#echo $PATH
(截图)发现多了ls2的路径
#ls2
生效
取消ls2
#echo $PATH 复制ls2的路径以外的路径, #PATH=(粘贴ls2以外的路径,有点像反选的作用) #ls2 不生效 再#vi /etc/profile 将之前添加ls2的路径deleted删掉,保存退出.
#ls2 不生效
进入新一个Xhshell终端页面,
#echo $PATH
路径不存在,成功取消ls2。
总结:
复制命令的大致步骤如下,
先which需要复制的命令,找到对应路径,然后cp路径需要复制的命令到一个临时目录下,例如/tmp/
完成复制后,修改环境变量#$PATH=:/tmp/,适当#echo $PATH查看是否成功加入参数。
修改环境变量后,修改#/etc/profile 配置文件,在末端键入环境变量的路径$PATH=:/tmp/
完成以上操作后,键入复制后的命令即可。
取消该复制命令的话,反操作即可。
2.11 cp命令
命令#cp
cp=copy 顾名思义,复制,拷贝的意思。
作用 拷贝源文件、目标文件。
相关知识点:cp格式,源文件,源目录,目标文件,目标目录。
文件用法 ,
复制/etc/passwd到/tmp/,并将passwd改名1.txt
#cp /etc/passwd /tmp/1.txt
目录用法
#cp -r /tmp/aminglinux/ /tmp/aming
对比源与目标,一样
#tree /tmp/aminglinux/ #tree /tmp/aming
#cp copy源有“/”,目标没有“/”?
其实#cp命令在这加不加“/”都一样效果,但是在这需要统一化,加上“/”
#cp -r /tmp/aminglinux/ /tmp/aming1/
#tree !$
(此处标星,!$上一条命令的最后一个参数,相当于
#cp -r /tmp/aminglinux/ /tmp/aming1/
上面的/tmp/aming1/,即是说#tree !$等于#tree /tmp/aming1/,
此处#tree !$区别与!tree,!tree是上次最新,最后的tree的命令)
拷贝文件,
#which rm 别名,#rm -i #which cp 有别名#cp -i(-i其实就是一个安全询问)
#cp /etc/passwd /tmp/1.txt 发现会询问是否删除,其实是-i的作用
如果不需要询问,可以直接用绝对路径命令
#/usr/bin/cp /etc/passwd /tmp/1.txt
#cp -r /tmp/aminglinux/ /tmp/aming1/ #ls /tmp/aming1 #tree /tmp/aming1
拷贝目录,是不会询问“是否覆盖”类提示消息。*当目标目录已经存在的时候,它会把源目录直接放到目标目录下面,如果目标目录不存在,它会把源目录拷贝过来,并且改个名字。
2.12 mv命令
相当于把文件摞动到别的地方
同一个目录下使用#mv,此时功能是改名。
例如
#ls /root #mv anaconda-ks.cfg2 anaconda-ks.cfg.1 #ls anaconda-ks.cfg.1
改名成功。
移动文件,并改名用法。
#cd /tmp/ #mv /tmp/1.txt /root/2.txt #ls /root/ 2.txt
同样,我们可以这样,得出如下结果
#mv ls2 aming/ #ls aming/ 2 ls2
!!!!!!!注意!!!!!!!
#touch ls2 #mv ls2 aming/ mv:是否覆盖 ... n
因为aming/下面已经有了ls2 ,所以n.(mv之所以会提示,是因为也有“-i”,如果不想出现,提示,跟cp一样,,#which出路径,使用绝对路径)
#usr/bin/mv ls2 aming/
直接覆盖,不再询问。
mv命令两点用途:改名,移动地方。
特殊用法
#mv aming1/ aming/ 把aming1/放到aming/下面去 #mv aming/ aming2/ (aming2/是不存在的)
#ls 发现aming/被改成aming2/,
此处可以理解成,当aming2/不存在时 源目录aming/会被改成aming2/,改名作用。也就是说,当目标目录不存在的时候,相当于将源目录的名称改成目标目录名称。
#mv aming2/ aminglinux/ #ls aminglinx/ 2 aming2/
此用法相当于cp的用法。
#mkdir aming2(此处作比较作用,无意义) #mv
如果在同一个目录下面,改名
如果目标文件存在,是否覆盖
如果目标是目录,且目录不存在,源也是目录,此时会把源的名字改了。
如果目标目录已存在,源也是一个目录,那他就会把这目录放到目标目录里面去。
2.13 文档查看cat_more_less_head_tail
#cat
(q退出)查看文件内容
tac与cat对应,tac是倒序查看文件内容,cat是正序。
详细用法
#man cat
#cat -A 显示文件路径的结束,用$结尾 #cat -n 显示文件行列行号
#more (q退出)
一屏一屏显示 按“空格”显示下一屏
#wc -l ancond-ks.cfg.1 查看行数
把/etc/passwd 的内容 增加到anaconda-ks.cfg.1 下面去
#cat /etc/passwd >>anaconda-ks.cfg.1 #wc -l anaconda-ks.cfg.1
再用more 可以看到数据每页只显示个别数据,more的作用是现实满屏数据,不完全显示。
往后翻,ctrl-B(back)
#less (q退出)
less和more差不多,不过less支持方向键移动走位查看。
ctrl-b 往后
ctrl-f 往前
搜索
"/" 搜索 高亮显示 "n"(next) 下一个 shift n 上一个
倒序搜索(看最后)“?”
shift g 末行
g 首行
#head 头10行 #tail 尾10行 #head -n 2 前2行 #tail -n 2 后2行
*tail查看动态文件用法多,例如日志。
#tail -f 动态使用文件内容
例如 先
#tail -f anaconda-ks.cfg.1
复制1个终端窗口,在新的窗口打开查看
再
#tail -n 2 /etc/passwd >>anaconda-ks.cfg.1
返回,发现anaconda-ks.cfg.1 文件越来越多,动态显示(截图)