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退出來。】