mv=move ,命令格式爲:mv 參數 源文件或目錄 目標文件或目錄 該命令有以下幾種狀況 ,安全
[root@localhost lic]# mkdir /tmp/test_mv [root@localhost lic]# cd /tmp/test_mv/ [root@localhost test_mv]# mkdir 1 2 [root@localhost test_mv]# mv 1 3 [root@localhost test_mv]# tree . ├── 2 └── 3 2 directories, 0 files [root@localhost test_mv]# mv 2 3 [root@localhost test_mv]# tree . └── 3 └── 2 2 directories, 0 files [root@localhost test_mv]# touch 3/1.txt 3/2/2.txt [root@localhost test_mv]# tree . └── 3 ├── 1.txt └── 2 └── 2.txt 2 directories, 2 files [root@localhost test_mv]# mv 3/1.txt 4.txt [root@localhost test_mv]# tree . ├── 3 │ └── 2 │ └── 2.txt └── 4.txt 2 directories, 2 files [root@localhost test_mv]# mv 4.txt 3/2/2.txt mv:是否覆蓋"3/2/2.txt"? y [root@localhost test_mv]# tree . └── 3 └── 2 └── 2.txt 2 directories, 1 file
如上圖所示,第一條命令是建立了一個測試用的目錄,這樣作是爲了保持文件和目錄的簡潔,隨後在/tmp/test_mv 目錄下建立了1 和2 兩個目錄,執行mv 1 3 結果能夠看到是將1目錄重命名爲3目錄。執行mv 2 3 結果是將2目錄移動到了已存在的3目錄當中。而後又建立了兩個文件3/1.txt 和3/2/2.txt ,執行mv 3/1.txt 4.txt 能夠看到本來4.txt 是不存在的,執行完以後發現將3/1.txt 移動到了當先目錄/tmp/test_mv 下並重命名爲4.txt ,最後一條指令 mv 4.txt 3/2/2txt ,3/2/2.txt 是本來就存在的,發現系統會提示是否覆蓋該文件。bash
cp=copy 該命令用於複製,其參數以下less
[root@localhost test_mv]# cp 3/2 3/4 cp: 略過目錄"3/2" [root@localhost test_mv]# tree . └── 3 └── 2 └── 2.txt 2 directories, 1 file [root@localhost test_mv]# cp -r 3/2 3/4 [root@localhost test_mv]# tree . └── 3 ├── 2 │ └── 2.txt └── 4 └── 2.txt
[root@localhost test_mv]# cp -i 3/2/2.txt 3/4/2.txt cp:是否覆蓋"3/4/2.txt"?
前面提到過which命令能夠查看命令的絕對路徑和別名,理論上當咱們使用命令時須要敲命令的絕對路徑,可是咱們每每直接敲出來命令就能夠直接執行,這就是環境變量在起做用,測試
[root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
能夠看到,咱們使用的命令都是在上面所示的目錄裏面,若是咱們把ls命令移動到其餘目錄裏,ls就不能直接運行了,而使用ls的絕對路徑就能夠執行。日誌
[root@localhost ~]# mv /usr/bin/ls /tmp [root@localhost ~]# ls -bash: ls: 未找到命令 [root@localhost ~]# /tmp/ls anaconda-ks.cfg
如何直接運行ls呢?第一個辦法就是把ls還原回去,還有就是講/tmp這個目錄加入到環境變量中code
[root@localhost ~]# PATH=$PATH:/tmp [root@localhost ~]# ls anaconda-ks.cfg
這是臨時的改變環境變量,當咱們從新打開一個終端時發現ls又不能生效了ast
Last login: Thu Jun 7 23:27:22 2018 from 192.168.254.1 [root@localhost ~]# ls -bash: ls: 未找到命令
若是要它永久生效,須要更改PATH的配置文件/etc/profile,在最後新加一行PATH=$PATH:/tmp 就生效了。test
cat 、tac,more ,less ,head ,tail 這幾個命令都是用來查看文件內容的。變量
tac命令跟cat命令幾乎徹底同樣,區別就是tac會將最後一行顯示在第一行,第二行是倒數第二行.......配置
more命令查看文件時 ,當一屏幕顯示不下時,它會分屏顯示,看完第一屏可使用Ctrl+f 向下翻屏(空格鍵也能夠實現),也可使用Ctrl+D向上翻屏,若是想提早退出可使用q鍵。
less命令跟more相似,可是功能更多,按空格鍵能夠向下翻屏,j 鍵能夠向下移動,k 鍵能夠向上移動,在使用more/less時能夠按下/ 或?鍵,並輸入一串字符,就能夠在文本中查找該字符了,相似於Windows中Ctrl+f ,使用/是從光標所在行向下查找,按n鍵查找下一個。使用?鍵時是從光標所在行向上查找,按n鍵查找更上一個。
head命令是查看文件內容的前10行,tail命令是查看文件內容的後10行,咱們也能夠指定多少行 ,用法是head -n 指定前n行,tail -n 指定顯示後n行。 若是文件在不斷增長,可使用tail -f 命令來動態顯示文件的末尾10行(通常查看日誌文件一類的使用)