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

一、环境变量PATH

# echo $PATH,查看哪些目录在环境变量里面

七、环境变量PATH、cp命令、mv命令、文档查看cat、more、less、head、tail_cp命令 _02

将路径加入到PATH中的方法:

1.直接将路径加入到PATH中,比如root目录。命令如下:

#  PATH=$PATH:/root

# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/bin:/root/bin/root

七、环境变量PATH、cp命令、mv命令、文档查看cat、more、less、head、tail_cp命令 _04

改回原来的变量直接输入命令:

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

然后再刷新一下变量:变量立即生效。

# source /etc/profile

2.使用绝对路径:

PATH目录里现在是没有/root目录的,如果我将ls移到/root目录下,当执行ls命令时,系统就会报没有那个文件或目录。示例命令:

# mv /usr/bin/ls /root/

# ls

-bash: /usr/bin/ls: 没有那个文件或目录

再PATH后可以使用这个命令。

# /root/ls

ananaconda-ks.cfg ls

为了不影响使用,将ls文件更改回来,命令:

# mv /root/ls /usr/bin

加入到PATH后,下次再使用就不生效了。如果想永久生效。输入命令:

# vi /etc/profile

在配置文件的结尾加上这个目录的命令:如/root:

PATH=$PATH:/root/

不想要了的话再改回来:

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

或者把配置文件删除掉那最后加的一行,再编辑那个配置文件:

# vi /etc/profile

把光标移动到最后一行的末端,再连续敲两个dd就删除掉那一行了,再:wq退出来。

echo命令:用于打印,输出。

二 、cp命令

cp是copy(复制)的简写,命令格式为:cp [选项][来源文件][目的文件]。例如将test1复制成test2。

可写为:cp test1 test2。格式:# cp 源文件 目标文件

常用选项:

-r:复制一个目录,必须加-r选项,否则不能复制。把目录拷贝到目录下,不会问,会直接放到目标目录下,若目标目录不存在,会新建一个,并改好名字。复制目录时源文件的尾巴要加个斜杠,即使目录不存在也加斜杠。

如:# cp -r /tmp/123/  /tmp/456

-i:安全选项,若遇到已存在的文件,会询问是否覆盖,与rm命令类似。在RedHat/VCentos系统中,使用的命令其实就是cp -i,可以用which查看。

若不想它询问,就使用绝对路径:

/usr/bin/cp

就不会询问了。

小实验:

# cp 123

# touch 111

# touch 222

# cp -i 111 222

cp:是否覆盖'222'? n

# echo ‘abc'>111

# echo 'def'>222

# cat 111 222

abc

def

此处的touch作访问的作用,此处echo没有起到输出作用,而是分别写入了文件“111”和“222”。起写入作用的就是符号“>”,这在Linux中叫做重定向,即把前面产生的输出写入到后面的文件中,当使用符号>时,如果文件中有内容,则会删除文件中原有的内容,而使用符号>>则不会删除原有的内容;符号>>是追加的意思。再用cat读取文件。

!$:上一条命令的最后一条参数,即以空格分开的最后一个参数。

三、mv命令(move)

作用:移动或更改文件名。

移动格式:mv [选项] [源文件或目录] [目标文件或目录]。

更改文件名格式:mv 原文件名  新文件名。

也可以移动和改名一并进行,格式:mv 原文件名  新的路径/新文件名。

该命令有如下情况:

a)目标文件是目录,但该目录不存在。

b)目标文件是目录,且该目录存在。

c)目标文件是文件,且该问价不存在。

d)目标文件是文件,但该文件存在。

当目标文件是目录时,其存在与否,执行后的结果不一样。若该目录存在,则会把源文件或目录移动到该目录中。若该目录不存在,则会把源目录重命名为给定的目标文件名。

当目标文件是文件时,其存在与否,执行后的结果不一样。若该文件存在,则会询问是否覆盖。若不存在,则会把源文件重命名为给定的目标文件名。

也和cp命令一样有-i选项。不想询问就用绝对路径。

四、文档查看cat_more_less_head_tail

(一)cat命令

不是单词简写,可以用man cat查看解释。用于查看文件的内容并显示在屏幕上。cat后面可以不加选项,直接加文件名。

-n:查看文件时,把行号也显示在屏幕上。

-A:显示所有的内容,包括特殊字符。示例:

# cat -A dirb

1111111111$

上例中,若不加-A选项,那么每行后面的$符号是看不到的。

也可以用cat 文件名>>文件名:把前面文件里的内容追加到后面的文件里面去。

tac命令:cat命令的反序写法,也是显示文件内容,只不过是反着排序,先显示最后一行,最后才显示第一行。

wc -l命令:可以查看一个文件里有多少行。每运行一次都会增加行数。

(二)more命令

也是用于查看文件内容,后面直接跟文件名。当文件内容太多,一屏幕不能全部显示,用cat命令会看不到前面的内容,这时可以用more命令。看完一屏幕后,按空格键可以看下一屏幕,看完所有内容就会推出。按Ctrl+D可以向上翻屏,按Ctrl+F向下翻屏(同空格)。若想提前退出,按q键即可。

(三)less命令

作用和more命令一样,后面直接跟文件名,但less命令比more功能要多一些。按空格键可以翻页,按j键可以向下移动(按一下就向下一行),按k键向上移动;也可以用上下方向键。在使用more和less查看文件时,可以按一下/键,并输入一个字符串(如root),再回车,就可以查找这个字符串。若查找多个该字符串,按n键显示下一个,按shift+n可以显示上一个。也可以用?键替代/键搜索字符串,不同的是,/是在当前行向下搜索,而?是在当前行向上搜索。

shift+G:定位到行首。G:定位到行尾。

(四|head命令

用于显示文件的前十行,后面直接跟文件名。

-n:显示文件的前几行。也可以省略字母n,-后面直接跟数字,数字几就显示几行。

(五)tail命令

和head命令类似,用于查看文件的最后十行,后面直接跟文件名。

-n:显示文件的最后几行。也可以省略字母n,-后面直接跟数字,数字几就显示几行。

-f:动态显示文件的最后十行。若文件内容在不断增加,使用该选项也很方便直观。比如tail -f /var/log/messages可以动态、实时的查看文件/var/log/messages中的内容。