环境变量PATH、命令cp、命令mv、文档查看cat/more/less/head/tail

环境变量PATH

1、什么是环境变量PATH

环境变量PATH是一个变量,这个变量里面有多个绝对路径,用:分割。 在这些路径下面的命令是可以省略掉目录路径,直接敲出来使用。

2、如何查看环境变量

2.1、echo $PATH 查看环境变量

#echo

        echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。

        linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到,echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

#echo $PATH         //显示环境变量内容

073305_b69P_3643875.png

2.2、which xx查看命令路径

用#which查看#rm命令可见,rm命令实际上是alias命令设置的带有-i选项的别名,#rm的绝对路径是/usr/bin/rm。

073347_Ezgo_3643875.png

如果没有加选项,命令和绝对路径效果是一样的。

 

命令其实就是绝对路径的可执行文件,不过是命令加上了一些选项(可执行文件执行时会执行的一些参数)。想要执行命令,就要找到命令在什么路径,而系统会在环境变量的几个目录中寻找有没有输入的命令;

073717_boy6_3643875.png

 

2.3、which查找的原理是查环境变量

随便输入一个没有的命令,因为环境变量的路径中没有找到这个命令,所以会显示未找到命令;

074206_fXde_3643875.png

我们把/usr/bin/ls文件复制一份到/tmp/ls2,然后执行/tmp/ls2,结果和/usr/bin/ls效果一样,但是如果我们直接用ls2命令,会告诉我们没有找到命令,用which查看会显示

/usr/bin/which: no ls2 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

意思是/usr/bin/which查询结果是在 (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)中没有找到ls2,而括号里面的一串绝对路径就是环境变量$PATH。在这里也可以知道which查询路径的时候是在环境变量PAHT的一堆路径变量里查询的。

074425_H8DJ_3643875.png

所以也就是说如果想要用ls2命令,而不是用/tmp/ls2,就需要把ls2的路径也添加进环境变量PATH才行。

3、如何添加环境变量

3.1、命令行添加临时环境变量

#PATH=$PATH:/XXX/            //把目录/XXX/添加到环境变量中;

用# PATH=$PATH:/tmp/命令把/tmp/目录添加到PATH环境变量中去,#echo $PATH发现末尾/tmp/路径已经添加进来了,PATH中的变量用冒号分割。

再用ls2命令就可以执行了,#which也能查看ls2的路径了(因为PATH中有了ls2的路径)

074538_c1WD_3643875.png

但是当我们打开一个新的终端的时候就发现,#ls2又不能用了,#echo $PATH查询环境变量发现之前添加的/tmp/路径有没有了,但是查看/tmp/ls2文件是在的。

所以# PATH=$PATH:/tmp/只能临时添加环境变量,并没有永久把这个变量添加进去,想要永久把这个变量添加进去就要修改 配置文件重新启动了。

074618_bojr_3643875.png

3.2、修改配置文件永久添加环境变量

/etc/profile是个每次开机或者打开终端都会去加载的文件,如果我们把# PATH=$PATH:/tmp/命令写入这个文件,那就相当于每次开机或打开中断都会重新把/tmp/这个路径添加进PATH变量中去,这样就能实现打开新的终端或重启后都能使用这个ls2命令了。

 

通过vi命令去修改/etc/profile,在文件最后添加上# PATH=$PATH:/tmp/命令。

074656_Tsw7_3643875.png

074707_iHWs_3643875.png

打开新的终端,查看环境变量当中有了/tmp/,#ls2命令也能用了。

074722_90Kj_3643875.png

3.3、命令行临时删除环境变量

当我们不像在使用ls2时要去掉环境变量的相应目录,给PATH重新赋值,

# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

回显发现PATH中的/tmp/路径没有了,#ls2命令也不能用了。

074756_Jurx_3643875.png

3.4、修改配置文件永久删除环境变量

刚才的修改只是临时的,/etc/profile文件中的那条命令还在,每次打开新的终端或重启后又会把/tmp/加入PATH,想要永久不能使用要把添加的命令删除掉。

074813_NM1M_3643875.png

 

命令cp

 

#cp -r /tmp/a/    /home/b/

-r,只有在拷贝目录的时候需要加上,拷贝文件的时候不需要加;

如果目标目录b/不存在,那命令会把源目录a/拷贝过来并重命名为b/;

如果目标目录b/已经存在,那命令会把源目录a/拷贝到目录b/下,形成b/a/;

如果目标目录b/下已经存在a/,即存在目录b/a/,则会提示是否要覆盖/home/b/a/;

-i是个提示性质的安全选项,好像是inform/information,很多地方会做出提示。

!$表示上一条命令的最后一个参数,以空格或者Tap分割的最后一个参数。

 

如果目标目录b/不存在,那命令会把源目录a/拷贝过来并重命名为b/;

223137_tjtr_3643875.png

如果目标目录b/已经存在,那命令会把源目录a/拷贝到目录b/下,形成b/a/;

223218_lRqE_3643875.png

如果目标目录b里面有和源目录a中相同名字的文件,会询问是否覆盖,不同名的文件被直接拷贝进去;

224242_bVPG_3643875.png

 

命令mv

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。

源文件被移至目标文件有两种不同的结果:

1、如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。

2、如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

 

#mv /tmp/a/ /tmp/b/

//如果目标目录b/存在,命令会把a/放到目标目录中,形成/tmp/b/a/

//如果目标目录b/不存在,命令会把a/直接该名成b/

 

//如果目标目录b/存在,命令会把a/放到目标目录中,形成/tmp/b/a/

224658_ZdnK_3643875.png

//如果目标目录b/不存在,命令会把a/直接该名成b/

224658_IqL3_3643875.png

 

文档查看cat/more/less/head/tail

1、命令cat

cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容

 

注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。

因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。

按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

 

cat(选项)(参数)

选项:

-n或-number:输出所有行从1开始行数编号; 

-b或--number-nonblank:和-n相似,只不过对于空白行不编号; 

-A:显示不可打印字符,行尾显示“$”; 

-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行; 

参数:

文件列表:指定要连接的文件列表。

 

 

cat m1 (在屏幕上显示文件ml的内容) 

cat m1 m2 (同时显示文件ml和m2的内容) 

cat m1 m2 > file (将文件ml和m2合并后输出到文件file中)

cat m1 >> m2(将文件ml里面的内容追加到m2中)

 

cat m1 (在屏幕上显示文件ml的内容) 

071719_soAJ_3643875.png

cat m1 m2 (同时显示文件ml和m2的内容) 

071726_4m3K_3643875.png

cat m1 m2 > file (将文件ml和m2合并后输出到文件file中)

071733_vNxU_3643875.png

cat m1 >> m2(将文件ml里面的内容追加到m2中)

071739_AXbF_3643875.png

2、命令tac

tac命令用于将文件以行为单位的反序输出,即第一行最后显示,最后一行先显示。

072440_1P1A_3643875.png

3、命令wc

wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。

如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。

3525test.txt
行数单词数字节数文件名

072727_WwC7_3643875.png

 

4、命令less

less(按屏幕)命令的作用与more(按百分比)十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按q键,不会像more一样自动退出。

空格键 滚动一屏幕

回车键 滚动一行

[pagedown]: 向下翻动一页

[pageup]: 向上翻动一页

ctrl + F - 向前移动一屏

ctrl + B - 向后移动一屏

ctrl + D - 向前移动半屏

ctrl + U - 向后移动半屏

G - 移动到最后一行

g - 移动到第一行

n:重复前一个搜索(与 / 或 ? 有关,搜索后使用)

N:反向重复前一个搜索(与 / 或 ? 有关,搜索后使用)

q 退出

 

5、命令head

head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。

-n<数字>:指定显示头部内容的行数;显示文件的前n行

 

head命令默认显示文件的头10行内容。

072913_7AOa_3643875.png

head -n 5 3.txt

072933_bSir_3643875.png

6、命令tail

tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行

选项:

        -n或——line=:输出文件的尾部N(N位数字)行内容。

       -f(常常用来查看一个动态文件,会不断显示文件末端添加进来的内容)

 

tail -n 5 file (显示文件的最后5行内容)

tail -n +9 file (显示文件file的内容,从第9行至文件末尾)

 

tail命令默认在屏幕上显示指定文件的末尾10行

073153_r4eF_3643875.png

tail -n 5 file (显示文件的最后5行内容,最后一行因为有回车)

tail -n -5 file (显示文件的最后5行内容)

 

073207_eIv6_3643875.png

tail -n +9 file (显示文件file的内容,从第9行至文件末尾)

073239_Bqu6_3643875.png

 

-f(常常用来查看一个动态文件,会不断显示文件末端添加进来的内容)

tail -f b.txt    

此种用法常常用来显示一个动态的.log文件。

每次在终端1中执行一次cat a.txt >> b.txt ,就会把a.txt中的内容追加到b.txt中一次,在另外一个终端中可以看到b.txt中的内容在尾部不断的随cat a.txt >> b.txt命令运行而增加。

073946_CyIq_3643875.png

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/codepencil/blog/1555774

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值