二周第二次课(1月30日)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二周第二次课(1月30日)相关的知识,希望对你有一定的参考价值。

2.10 环境变量PATH
2.11 cp命令
2.12 mv命令
2.13 文档查看cat/more/less/head/tail


2.10 环境变量PATH

!!!回顾

#which 可以查看命令的所处路径,有没有别名。

#find 命令是查找整个硬盘相关的路径,但是#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。

技术分享图片



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 文件越来越多,动态显示(截图)

技术分享图片



以上是关于二周第二次课(1月30日)的主要内容,如果未能解决你的问题,请参考以下文章

二周第二次课(12月19日)

二周第二次课(12月19日)

二周第二次课(10月24日)

二周第二次课

十周第二次课(3月1日)

五周第二次课(1月9日)