2.10环境变量PATH安全
2.10.1咱们使用which的时候能够查一个命令的时候快速的查到也能够查到有没有别名。它是怎么快速的查到的。bash
[root@MOMOCO-02 ~]# echo $PATHless
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binssh
【咱们能快速的查到命令的路径其实咱们就是在这几个目录查的,其实咱们真正用的命令是在绝对路径里面的】ide
[root@MOMOCO-02 ~]# gybspa
-bash: gyb: 未找到命令orm
【若是这些目录里面没有这些命令,他就会提示你没有找到命令】文档
[root@MOMOCO-02 ~]# which ls字符串
alias ls='ls --color=auto'it
/usr/bin/ls
[root@MOMOCO-02 ~]# cp /usr/bin/ls /tmp/ls1
【咱们拷贝一份ls命令到tmp目录下】
[root@MOMOCO-02 ~]# /tmp/ls1
anaconda-ks.cfg
[root@MOMOCO-02 ~]# ls1
-bash: ls1: 未找到命令
[root@MOMOCO-02 ~]# ls
anaconda-ks.cfg
【当咱们使用绝对路径运行拷贝的命令时咱们可使用效果和ls同样。当咱们直接ls1时就会提示你没有找到命令,由于你的ls1别没有在你的环境变量目录里面。】
[root@MOMOCO-02 ~]# PATH=$PATH:/tmp
【咱们能够把/tmp目录添加到PATH中】
[root@MOMOCO-02 ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@MOMOCO-02 ~]# ls1
anaconda-ks.cfg
[root@MOMOCO-02 ~]# which ls1
/tmp/ls1
【能够看到我改为的红色的/tmp这说明我已经添加到里面去了,从上面的操做咱们能看出来ls1生效了。】
Last login: Mon Dec 18 14:21:24 2017 from 192.168.38.1
[root@MOMOCO-02 ~]# ls1
-bash: ls1: 未找到命令
【当咱们再打开一个终端的时候在运行ls1它就不生效了】
[root@MOMOCO-02 ~]# vi /etc/profile
【咱们可配置文件让它永久生效,咱们再最后面加上PATH=$PATH:/tmp这样每次启动终端的时候它都会加载这个命令,若是你不想要了能够进到配置文件把这个命令删除掉。你把光标定位到这个命令的首行而后敲键盘的dd就删除了。】
2.11 cp命令
2.11.1 cp 全称:copy
[root@MOMOCO-02 ~]# cp /etc/passwd /tmp/1.txt
cp:是否覆盖"/tmp/1.txt"? y
【拷贝一个文件,红色为源文件,蓝色为目标文件】
[root@MOMOCO-02 ~]# cp /tmp/gyb01/ /tmp/gyb02
cp: 略过目录"/tmp/gyb01/"
[root@MOMOCO-02 ~]# touch /tmp/gyb01/2/1.txt
[root@MOMOCO-02 ~]# cp -r /tmp/gyb01/ /tmp/gyb02
【-r选项是拷贝一个目录,之后咱们作个约定目录咱们后面都要加根号,不加也不错。】
[root@MOMOCO-02 ~]# tree !$
/tmp/gyb02/
└── 2
├── 1.txt
└── 3
2 directories, 1 file
【!$表明上一个命令的最后的一个选项以空格或tab键为分割,他的意思就是[root@MOMOCO-02 ~]# tree /tmp/gyb02/】
[root@MOMOCO-02 ~]# which cp
alias cp='cp -i'
/usr/bin/cp
【-i安全选项提示:以下。不想要提示可使用绝对路径。】
[root@MOMOCO-02 ~]# cp /etc/passwd /tmp/1.txt
cp:是否覆盖"/tmp/1.txt"?
[root@MOMOCO-02 ~]# cp -r /tmp/gyb01/ /tmp/gyb02/
[root@MOMOCO-02 ~]# tree /tmp/
/tmp/
├── 1.txt
├── gyb01
│ └── 2
│ ├── 1.txt
│ └── 3
├── gyb02
├── 2
│ ├── 1.txt
│ └── 3
└── gyb01
└── 2
├── 1.txt
└── 3
16 directories, 4 files
[root@MOMOCO-02 ~]# cp -r /tmp/gyb01/ /tmp/gyb02/
cp:是否覆盖"/tmp/gyb02/gyb01/2/1.txt"?
【能够看到咱们此次步骤以前已经运行过了,当目标目录已经存在的时候咱们再次运行这个命令他会把源目录拷贝目标目录下。咱们再次运行他会询问你是否覆盖,觉得gyb02下已经有gyb01了】
我
2.12 mv命令
2.12.1 mv全称:move
[root@MOMOCO-02 ~]# cd /tmp/
【切换目录】
[root@MOMOCO-02 tmp]# ls
1.txt ls
gyb systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-chronyd.service-tBl99U
gyb01 systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-vgauthd.service-MEvzYK
gyb02 systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-vmtoolsd.service-GKWJzB
[root@MOMOCO-02 tmp]# mv 1.txt /root/
【移动一个文件,红色为源文件,蓝色为目标目录】
[root@MOMOCO-02 tmp]# ls /root/
1.txt anaconda-ks.cfg
[root@MOMOCO-02 tmp]# mv ls gyb/
[root@MOMOCO-02 tmp]# ls
gyb systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-chronyd.service-tBl99U
gyb01 systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-vgauthd.service-MEvzYK
gyb02 systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-vmtoolsd.service-GKWJzB
[root@MOMOCO-02 tmp]# touch ls
[root@MOMOCO-02 tmp]# mv ls gyb/
mv:是否覆盖"gyb/ls"? n
【当目标目录下已经有目标文件的时候他会提示你。由于mv有-i选项以下,不想提示就用绝对路径】
[root@MOMOCO-02 tmp]# which mv
alias mv='mv -i'
/usr/bin/mv
[root@MOMOCO-02 tmp]# mv gyb gyd
[root@MOMOCO-02 tmp]# ls
gyb01 systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-chronyd.service-tBl99U
gyb02 systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-vgauthd.service-MEvzYK
gyd systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-vmtoolsd.service-GKWJzB
ls
【若是目标目录不存在他就会把源目录的名字改为目标目录的名字,也能够用来改文件的名字以下】
[root@MOMOCO-02 tmp]# mv ls ls1
[root@MOMOCO-02 tmp]# ls
gyb01 systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-chronyd.service-tBl99U
gyb02 systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-vgauthd.service-MEvzYK
gyd systemd-private-52973ffabe3e4e15ae97f09bf182e3ac-vmtoolsd.service-GKWJzB
ls1
2.13文档查看cat-more-less-head-tail
2.13.1 cat
[root@MOMOCO-02 tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
......
GYB:x:1000:1000::/home/GYB:/bin/bash
gyb:x:1001:1001::/home/gyb:/bin/bash
【cat是用来查看一个文档的命令,一下显示完,tac为倒叙查看一个文档:以下】
[root@MOMOCO-02 ~]# tac /etc/passwd
gyb:x:1001:1001::/home/gyb:/bin/bash
GYB:x:1000:1000::/home/GYB:/bin/bash
......
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
[root@MOMOCO-02 ~]# cat -n /etc/passwd
1root:x:0:0:root:/root:/bin/bash
2bin:x:1:1:bin:/bin:/sbin/nologin
3daemon:x:2:2:daemon:/sbin:/sbin/nologin
........
20GYB:x:1000:1000::/home/GYB:/bin/bash
21gyb:x:1001:1001::/home/gyb:/bin/bash
【-n选项会显示行号】
2.13.2 more
这也是一个查看文档的命令,格式:[root@MOMOCO-02 ~]# more anaconda-ks.cfg可是他不会一会儿显示完,他是一屏幕一屏幕显示的,你能够按空格键向下翻页,若是你想往上看能够Ctrl+b。
[root@MOMOCO-02 ~]# wc anaconda-ks.cfg
51 139 1418 anaconda-ks.cfg
【查看一个文件的有多少行】
[root@MOMOCO-02 ~]# cat /etc/passwd >> anaconda-ks.cfg
【追加剧定向的意思,把红色的文件增长到×××的文件里面】
[root@MOMOCO-02 ~]# wc anaconda-ks.cfg
72 168 2338 anaconda-ks.cfg
2.13.3 less
这也是一个查看文档的命令,格式:[root@MOMOCO-02 ~]# less anaconda-ks.cfg可是他不会一会儿显示完,他是一屏幕一屏幕显示的,你能够按空格键向下翻页,若是你想往上看能够Ctrl+b或则Ctrl+f向下。他还支持方向键查看,当你看到最后的时候他不会自动退出来这个时候你须要按一个q键退出来。
你也能够搜索:
从上往下搜索,先按一个/而后输入你要搜索的字符按回车。他会高亮显示这个字符,按n键向下翻看下一个字符串,Shift+n向上翻看上一个字符串。
从下往上搜索先把光标定位到最后面,先按一个?而后输入你要搜索的字符按回车。他会高亮显示这个字符,按n键向上翻看上一个字符串,Shift+n向下翻看下一个字符串。【首行和行尾的定位:按一个g定位到行首,Shift+g定位到行尾】
2.13.4 head和tail
[root@MOMOCO-02 ~]# head -n 4 anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
【显示一个文件的头4行,若是你把-n 4去掉他默认是10行】
[root@MOMOCO-02 ~]# tail -n 4 anaconda-ks.cfg
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
GYB:x:1000:1000::/home/GYB:/bin/bash
gyb:x:1001:1001::/home/gyb:/bin/bash
【显示一个文件的尾4行,若是你把-n 4去掉他默认是10行】
[root@MOMOCO-02 ~]# tail -f anaconda-ks.cfg
【-f选项是动态的显示一个文件,他不会退出来。你能够按一个Ctrl+c退出来。】