您的位置:首页 > 大数据 > 人工智能

环境变量PATH ,cp、 mv命令,文档查看cat/more/less/head/tail2.10-2.13

2017-12-19 18:23 603 查看
2.10环境变量

一、环境变量PATH 

 1、先说下which, 它用来查找某个命令的绝对路径,包括它有没有别名,比如:

which rm

alias rm='rm -i'

               /usr/bin/rm

2、那么它为什么能这么快查出路径呢?它是从哪里查到的呢?实际系统是从环境变量里查到的

例如:echo $PATH#打印环境变量

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

当我们敲命令时是直接打出来的命令而不用先输命令的绝对路径,是因为环境变量PATH在起作用了,当我们们输入一个命令时,系统会自动到环境变量里去查找这个命令,也是就上面这些路径中去查找。echo其实就是打印的意思,而PATH前面的$表示后面接的是变量。

 

3、因为/bin 在PATH的设定中,所以我们平时输出ls的时候是可以找到的。如果将 ls 移到 /tmp 下就不行,因为 PATH 里没有 /tmp 这个目录,而你又将 ls 移动到 /tmp 底下了,系统会提示:找不到这个命令‘command not found!’ 

要解决这个问题的话,有两个方法,一种方法是直接将 /tmp 的路径加入 $PATH 当中,另一种方法就是使用绝对路径 

例如:

PATH=$PATH:/tmp/    #在环境变量中加入/tmp/   

echo @PATH  #输出环境变量

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ #/tmp/ 已加入环境变量

可测试一下:

which ls

/tmp/ls  #ls的路径在/tmp/ 下"

ls

anaconda-ks.cfg

也可以直接用

/tmp/ ls

anaconda-ks.cfg

4、如果想把环境变量的设置应用到另一个终端,可以把它设置成永久的

可以编辑系统文件/etc/profile

vi /etc/profile,按i

PATH=$PATH:/tmp/ #增加路径

:wq

这时用cat查看一下文件内容

cat /etc/profile

会发现最后一行,已经加上了

如果想取消之前的设置,就重新设置一下

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin#在环境变量里删除tmp

或者vi /etc/profile里,按两个d键删掉,:wq

2.11cp命令

1,拷贝文件

cp=copy,把源文件拷贝到目标路径并改名成新文件,比如我们将/etc/passwd文件拷贝到/tmp/下改名叫1.txt,那么

cp /etc/passwd /tmp/1.txt

2,拷贝目录 

把 /tmp/aminglinux/拷贝到/tmp/aming/下,加-r

cp -r /tmp/aminglinux/ /tmp/aming

which cp

alias cp='cp -i'自带参数,拷贝时默认会询问是否覆盖,用绝对路径就不会询问了,

比如/usr/bin/cp /etc/passwd /tmp/1.txt#passwd会直接变成/tmp下的1.txt

当目标目录已经存在的时候,它会把原目录拷贝过来直接放到目标目录下去,

如要将/tmp/aminglinux拷贝到/tmp/aming1/,/tmp/aminglinux下有一个子目录2和子目录文件2.txt 若aming1 已经存在,会有什么结果呢,

cp -r /tmp/aminglinux/  /tmp/aming1/

可得 2 aminglinux

2.12、mv命令 

move的简写,即移动。格式为 mv [ 选项 ] [源文件] [目标文件] ,介绍几个常用的选项:

如果直接在同一个文件夹中移动,就等于重命名

比如想把anaconda-ks.cfg改名为anaconda-ks.cfg.1

使用mv anaconda-ks.cfg anaconda-ks.cfg.1即可

也可以在不同文件夹中移动并改名

比如想把/tmp/1.txt放到/root/并改名为2.txt

使用mv /tmp/1.txt /root/2.txt即可

mv命令使用时也有-i选项

-i : 和cp的-i 一样,当目标文件存在时会问用户是否要覆盖。在Redhat/CentOS系统中,我们使用的mv其实是mv -i

该命令有几种情况: 

1) 目标文件是目录,而且目标文件不存在; 

2) 目标文件是目录,而且目标文件存在; 

3) 目标文件不是目录不存在; 

目标文件是目录,是否存在,移动的结果是不一样的

1、目标文件为目录,并且目标目录不存在,相当于把 ‘a’ 重命名为 ‘b’。 

例如

mv aming/ aming2/#把aming移到aming2,aming2不存在的话,移完之后查看,目标目录下只就aming2

ls

aming2

aminglinux

2、目标文件为目录,且目标目录存在,则会把 ‘源文件’ 移动到 ‘目标’ 目录里 

tmp/下有aming2/和amingliux/

若mv aming2/ aminglinux/

ls aminglinux/

2 aming2#可以看出aming2/放在了amingliux/下

3、目标文件为目录,且目标目录存在,则会把 ‘dira’ 移动到 ‘dirb’ 目录里 ,并且会问是否要覆盖

2.13、文档查看cat/more/less/head/tai 

1、命令: cat 

比较常用的一个命令,即查看一个文件的内容并显示在屏幕上, 后面可以不加任何选项直接跟文件名,有两个常用的选项:

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

-A : 显示所有东西出来,包括特殊字符: 

tac可以倒叙查看文件的内容

2、more 

也是用来查看一个文件的内容,后面直接跟文件名,当文件内容太多,一屏幕不能占下,而你用 ‘cat’ 肯定是看不前面的内容的,那么使用 ‘more’ 就可以解决这个问题了,当看完一屏后按空格键继续看下一屏。按ctrl+b回看上一屏,看完所有内容后就会退出,如果你想提前退出,只需按 ‘q’ 键即可。

3、less 

作用跟more一样,后面直接跟文件名,但比more方便的地方在于,可以按方向皱键上下来翻,空格键同样可以翻页,而按 ‘j’ 键可以向下移动(按一下就向下移动一行),按 ‘k’ 键向上移动。按 ‘q’ 键退出。

还可以用

在使用more和less查看某个文件时,你可以按一下 ‘/’ 键,然后输入一个cdrom回车,这样就可以搜索这个cdrom这个词了。如果是搜索有没有多个cdrom?可以按 ‘n’ 键继续向下搜索,按shift+"n"键,可以向上搜索。

另外也可以按 ‘?’ 来搜索,比如搜索root,可用

? root

与用‘/’ 搜索不同的是,是在当前行向下搜索,而 ‘?’ 是在当前行向上搜索,搜索方向相反。如果我想直接查看最后一行可用 shift+g,直接查看第一行,可能用"g"定位。

4、head 

后直接跟文件名,则显示文件的前十行。如果加 -n 选项则显示文件前n行。‘-n’后可以有空格也可以无空格。

也可以指定显示文件的前6行,则可以用

head -n 6 anaconda-ks.cfg# 指定查看文件的前6行

5、tail 

和head一样,后面直接跟文件名,则显示文件最后十行。如果加-n 选项则显示文件最后n行。 也可以指定查看文件的最后6行,则可以用

tail -n 6 anaconda-ks.cfg# 指定查看文件的最后6行

tail -f : 动态显示文件的最后十行,这个在查看日志的时候比较常用,如果文件是不断增加的,则用-f 选项。如:tail -f /var/log/messages #查看日志的最后十行

tips:

!$上一条命令的以空格或tab 键分割的最后一个参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐