先介紹一個命令 which,它用於查看某個命令的所在路徑命令。linux
echo用來輸出$PATH的值。PATH前面的$是變量的前綴符號。安全
[root@cham2 ~]# ls /usr/bin/ls /usr/bin/ls [root@cham2 ~]# cp /usr/bin/ls /tmp/ls2 [root@cham2 ~]# /tmp/ls2 /tmp/ls2 和ls是同樣的 anaconda-ks.cfg [root@cham2 ~]# ls anaconda-ks.cfg [root@cham2 ~]# ls2 直接ls2不行,由於ls2並無在PATH的目錄裏面 -bash: ls2: 未找到命令 [root@cham2 ~]# PATH=$PATH:/tmp/ 把它加上,從新賦值,加上/tmp/ [root@cham2 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ [root@cham2 ~]# ls2 再運行ls2就能夠執行了 anaconda-ks.cfg [root@cham2 ~]# which ls2 咱們看一下 /tmp/ls2
打開一個新終端LS2又不能用了bash
由於/tmp自動退出了PATH的路徑。 若是想永久的把/tmp加入到/PATH的路徑下,
輸入命令#vi /etc/profile
而後在最後一行加入PATH=$PATH:/tmp/
而後保存退出。less
給PATH從新賦值一下 執行命令: #PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
而後把vi /etc/profile的最後一行添加PATH路徑刪除便可。spa
一、命令語法:
cp [選項][來源文件][目的文件]命令行
二、命令描述:
cp是copy(即複製)的簡寫unix
三、命令選項:
-r: 若是要複製一個目錄,必須加-r選項,不然不能複製
-i:這是安全選項,若是遇到一個已存在的文件,會詢問是否覆蓋。日誌
**小知識**在用cp命令時,全部的目錄所有末尾加上"/"。cp目錄時,不會詢問你是否覆蓋,說明當目標目錄已經存在的時候,它會把原目錄直接放到目標目錄下面去。若是目標目錄不存在,它會把原目錄cp過來,並改變一個名字。code
如下是命令行:圖片
[root@cham2 ~]# cp copy ^C [root@cham2 ~]# cp /etc/passwd /tmp/1.txt 拷貝文件 passwd到tmp/1.txt [root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham 拷貝目錄與要加-r 拷貝目錄須要加「/」 [root@cham2 ~]# tree /tmp/chamlinux/ /tmp/chamlinux/ └── 2 └── 2.txt 1 directory, 1 file [root@cham2 ~]# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var [root@cham2 ~]# ls /tmp/ 1.txt ks-script-JG2UJk yum.log cham ls2 chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 ~]# ls /tmp 1.txt ks-script-JG2UJk yum.log cham ls2 chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham1/ chamlinux拷貝到cham1目錄 [root@cham2 ~]# tree !$ *小知識*上一條命令的最後參數 tree /tmp/cham1/ /tmp/cham1/ └── 2 └── 2.txt 1 directory, 1 file [root@cham2 ~]# tree !$ tree /tmp/cham1/ /tmp/cham1/ └── 2 └── 2.txt 1 directory, 1 file [root@cham2 ~]# which cp 看一下 which cp alias cp='cp -i' /usr/bin/cp [root@cham2 ~]# which rm -i是安全選項,詢問是否覆蓋或者是否刪除 alias rm='rm -i' /usr/bin/rm [root@cham2 ~]# cp /etc/passwd /tmp/1.txt 會詢問是否覆蓋 cp:是否覆蓋"/tmp/1.txt"? ^C [root@cham2 ~]# /usr/bin/cp /etc/passwd /tmp/1.txt 這樣纔不會詢問 [root@cham2 ~]# tree /tmp/ 1.txt cham/ cham1/ chamlinux/ .font-unix/ .ICE-unix/ ks-script-JG2UJk ls2 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy/ .Test-unix/ .X11-unix/ .XIM-unix/ yum.log [root@cham2 ~]# tree /tmp/cham1/ /tmp/cham1/ └── 2 └── 2.txt 1 directory, 1 file [root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham1/ 拷貝目錄的時候不會問是否覆蓋 [root@cham2 ~]# ls /tmp/cham1/ 看一下。當目標目錄已經存在的時候,會把源目錄放到 目標目錄下面去,若是目標目錄不存在的,會把源 目錄拷貝過來並改個名字 2 chamlinux [root@cham2 ~]# tree /tmp/cham1/ /tmp/cham1/ ├── 2 │ └── 2.txt └── chamlinux └── 2 └── 2.txt 3 directories, 2 files [root@cham2 ~]# cp -r /tmp/chamlinux/ /tmp/cham1/ 由於chamlinx下面已經存在chamlinux 因此會存在是否覆蓋 cp:是否覆蓋"/tmp/cham1/chamlinux/2/2.txt"? n
1.命令語法:
mv[選項][源文件或目錄][目標文件或目錄]
2.命令描述:
mv是move的簡寫,能夠移動文件或者 重命名文件(語法爲: mv [源文件名][修改後的文件名])
3.命令的幾種狀況:
目標文件是目錄,但該目錄不存在。
目標文件是目錄,且該目標存在。
目標文件是文件,且文件不存在。
目標文件是文件,但該文件存在。
當目標文件是目錄時,其存在與否,執行後的結果不同。若是該目錄存在,則會把源文件或目錄移動到該目錄中。若是該目錄不存在,則會把源文件重命名爲給定的目標文件名。
當目標文件是文件時,其存在與否,執行後的結果也是不同的。若是該文件存在,則會詢問是否覆蓋。若是該文件不存在,則會把源文件重命名爲給定的目標文件名。
命令行以下:
[root@cham2 ~]# mv move ^C [root@cham2 ~]# ls anaconda-ks.cfg [root@cham2 ~]# mv anaconda-ks.cfg anaconda-ks.cfg.1 同一個目錄下是更名字 [root@cham2 ~]# ls anaconda-ks.cfg.1 [root@cham2 ~]# cd /tmp/ 進入tmp [root@cham2 tmp]# ls 1.txt chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy cham ks-script-JG2UJk yum.log cham1 ls2 [root@cham2 tmp]# mv 1.txt /root/2.txt 移動1.txt到root/2.txt文件不存在,把源文件 重命名爲給定的目標文件名 [root@cham2 tmp]# ls /root/ 看一下 2.txt anaconda-ks.cfg.1 [root@cham2 tmp]# ls cham ks-script-JG2UJk yum.log cham1 ls2 chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 tmp]# mv ls2 cham/ [root@cham2 tmp]# ls cham 2 ls2 [root@cham2 tmp]# touch ls2 再建一個ls2 [root@cham2 tmp]# mv ls2 cham/ 若是該文件存在,則會詢問是否覆蓋 mv:是否覆蓋"cham/ls2"? n [root@cham2 tmp]# which mv alias mv='mv -i' /usr/bin/mv [root@cham2 tmp]# /usr/bin/mv ls2 cham/ [root@cham2 tmp]# ls cham chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy cham1 ks-script-JG2UJk yum.log [root@cham2 tmp]# ls cham/ 2 ls2 [root@cham2 tmp]# ls cham chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy cham1 ks-script-JG2UJk yum.log [root@cham2 tmp]# mv cham1/ cham/ [root@cham2 tmp]# mv cham/ cham2/ [root@cham2 tmp]# ls cham2 ks-script-JG2UJk yum.log chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 tmp]# ls cham2 ks-script-JG2UJk yum.log chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 tmp]# mv cham2/ chamlinux/ [root@cham2 tmp]# ls chamlinux/ 2 cham2 [root@cham2 tmp]# mkdir -pv cham2 mkdir: 已建立目錄 "cham2" [root@cham2 tmp]# ls cham2 ks-script-JG2UJk yum.log chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy [root@cham2 tmp]# touch cham2/1.txt [root@cham2 tmp]# tree cham2 cham2 └── 1.txt 0 directories, 1 file [root@cham2 tmp]# tree chamlinux chamlinux ├── 2 │ └── 2.txt └── cham2 ├── 2 │ └── 2.txt ├── cham1 │ ├── 2 │ │ └── 2.txt │ └── chamlinux │ └── 2 │ └── 2.txt └── ls2 7 directories, 5 files [root@cham2 tmp]# mv cham2/ chamlinux/ mv:是否覆蓋"chamlinux/cham2"? y mv: 沒法將"cham2/" 移動至"chamlinux/cham2": 文件已存在 [root@cham2 tmp]#
1.命令語法 cat [參數] 文件名
2.命令描述 用於查看一個文件的內容並將其顯示在屏幕上。(cat後面能夠不加任何選項,直接跟文件名。)
3.命令參數 -n :查看文件時,把行號也顯示在屏幕上。
-A :顯示全部的內容,包括特殊字符。
1.命令語法
tac 文件名
2.命令描述
命令tac是命令cat的反序寫法,也是把文件的內容顯示在屏幕上。
只不過是先顯示最後一行,而後顯示倒數第二行,最後才顯示第一行。
小知識: #wc -l 文件名 //查看一個文件的行數
1.命令語法 more 文件名
2.命令描述
命令more也用於查看一個文件的內容,後面直接跟文件名。
當文件內容太多的時候,一屏不能所有顯示時,用命令cat確定是看不了前面的內容的,這時可使用命令more。
當看完一屏後,按空格鍵能夠繼續看下一屏,看完全部內容後就會退出。
按Ctrl+D能夠向上翻屏,按Ctrl+F能夠向下翻屏(同空格)。
若是你想提早退出,按q便可。
1.命令語法
less 文件名
2.命令描述
命令less的做用和命令more同樣,後面直接跟文件名,但命令less比more功能要多一點。
按空格鍵能夠翻頁。
按j鍵能夠向下移動,按k鍵能夠向上移動。
在使用more和less查看某個文件時,你能夠按一下/鍵,並輸入一個字符串(如root),而後回車,這樣就能夠查找這個字符串了。
若是是查找多個字符串,能夠按n鍵顯示下一個。
另外,也能夠用?鍵代替/鍵來搜索字符串,惟一不一樣的是,/是在當前行向下搜索,而?是在當前行向上搜索。
1.命令語法
head 文件名
2.命令描述
命令head用於顯示文件的前10行,後面直接跟文件名。
3.命令參數
-n :顯示文件的前幾行(n表明行數,n也能夠省略)
1.命令語法
tail 文件名
2.命令描述
和命令head相似,命令tail用於顯示文件的最後10行,後面直接跟文件名。
3.命令參數
-n :顯示文件的最後幾行(-n後面有無空格都可,且字母n也能夠省略)。
-f :它能夠動態顯示文件的最後10行(通常用來查看日誌)。若是文件的內容在不斷的增長(動態增長的內容會所有顯示),使用-f選項很是方便和直觀。好比tail -f /var/log/messages能夠動態,實時地查看文件/var/log/messages中的內容。