二周第二次課(1月30日)
2.11 cp命令
2.12 mv命令
2.13 文檔查看cat/more/less/head/tail
2.10 環境變量PATH
!!!回顧
#which 可以查看命令的所處路徑,有沒有別名。
#find 命令是查找整個硬盤相關的路徑,但是#which 只在/usr/local/sbin:/usr/local/bin/:/usr/sbin:/usr/bin:/root/bin (:是分割位置)如果命令都在此幾個目錄下,就不需要鍵入絕對路徑。
例如#rm (真正用到命令,應該使用絕對路徑,命令其實也是一個文件,需要找到對應路徑,才能觸發他的使用)
#rm 可以直接用,
#/usr/bin/rm 也可以用絕對路徑使用
一般常用命令會存放在這幾個路徑下:/usr/local/sbin:/usr/local/bin/:/usr/sbin:/usr/bin:/root/bin,
而rm存放在/usr/bin/
如果我們任意鍵入不存在命令,系統會報錯,未找到命令,
例如
用LS作個例子 作個copy,新的copy改個新名字(其實它的功能還是跟ls一樣),改作ls2
先#which ls 來尋找它所在的路徑,/usr/bin/ls,
找到路徑後,再作個cp,
#cp /usr/bin/ls /tmp/ls2
復制文件隨後,需要把cp後的路徑,加入到$PATH裏面
#PATH=$PATH:/tmp/ ($PATH後面帶的參數,就是需要寫入PATH裏面的內容,此處一般帶目錄)
#echo $PATH ,OK.發現多了一個/tmp/
運行ls2
#ls2
結果ok,跟ls功能一樣 ,成功激發ls,這就是環境變量的作用與含義。
打開另一個Shell終端 發現#ls2 不生效。
如果想ls2每次在終端都生效,此時需要把ls環境變量設為永久生效
方法
#vi /etc/profile(每次開機都可以自動加載命令)(截圖)
#cat
再次打開終端,
#echo $PATH (截圖)發現多了ls2的路徑
#ls2 生效
取消ls2
#echo $PATH 復制ls2的路徑以外的路徑,
#PATH=(粘貼ls2以外的路徑,有點像反選的作用)
#ls2 不生效
再#vi /etc/profile 將之前添加ls2的路徑deleted刪掉,保存退出.
#ls2 不生效
進入新一個Xhshell終端頁面,
#echo $PATH 路徑不存在,成功取消ls2。
2.11 cp命令
命令#cp
cp=copy 顧名思義,復制,拷貝的意思。
作用 拷貝源文件、目標文件。
相關知識點:cp格式,源文件,源目錄,目標文件,目標目錄。
文件用法 ,
復制/etc/passwd到/tmp/,並將passwd改名1.txt
#cp /etc/passwd /tmp/1.txt
目錄用法
#cp -r /tmp/aminglinux/ /tmp/aming
對比源與目標,一樣
#tree /tmp/aminglinux/
#tree /tmp/aming
#cp copy源有“/”,目標沒有“/”?
其實#cp命令在這加不加“/”都一樣效果,但是在這需要統一化,加上“/”
#cp -r /tmp/aminglinux/ /tmp/aming1/
#tree !$
(此處標星,!$上一條命令的最後一個參數,相當於#cp -r /tmp/aminglinux/ /tmp/aming1/中的/tmp/aming1/,即是說#tree !$等於#tree /tmp/aming1/,
此處#tree !$區別與!tree,!tree是上次最新,最後的tree的命令)
拷貝文件,
#which rm 別名,#rm -i
#which cp 有別名#cp -i(-i其實就是一個安全詢問)
#cp /etc/passwd /tmp/1.txt 發現會詢問是否刪除,其實是-i的作用
如果不需要詢問,可以直接用絕對路徑命令
#/usr/bin/cp /etc/passwd /tmp/1.txt
#cp -r /tmp/aminglinux/ /tmp/aming1/
#ls /tmp/aming1
#tree /tmp/aming1
拷貝目錄,是不會詢問“是否覆蓋”類提示消息。*當目標目錄已經存在的時候,它會把源目錄直接放到目標目錄下面,如果目標目錄不存在,它會把源目錄拷貝過來,並且改個名字。
2.12 mv命令
相當於把文件摞動到別的地方
同一個目錄下使用#mv,此時功能是改名。
例如
#ls /root
#mv anaconda-ks.cfg2 anaconda-ks.cfg.1
#ls
anaconda-ks.cfg.1
改名成功。
移動文件,並改名用法。
#cd /tmp/
#mv /tmp/1.txt /root/2.txt
#ls /root/
2.txt
同樣,我們可以這樣,得出如下結果
#mv ls2 aming/
#ls aming/
2 ls2
!!!!!!!註意!!!!!!!
#touch ls2
#mv ls2 aming/
mv:是否覆蓋 ... n
因為aming/下面已經有了ls2 ,所以n.(mv之所以會提示,是因為也有“-i”,如果不想出現,提示,跟cp一樣,,#which出路徑,使用絕對路徑)
#usr/bin/mv ls2 aming/ 直接覆蓋,不再詢問。
mv命令兩點用途:改名,移動地方。
特殊用法
#mv aming1/ aming/ 把aming1/放到aming/下面去
#mv aming/ aming2/ (aming2/是不存在的)
#ls 發現aming/被改成aming2/,
此處可以理解成,當aming2/不存在時 源目錄aming/會被改成aming2/,改名作用。也就是說,當目標目錄不存在的時候,相當於將源目錄的名稱改成目標目錄名稱。
#mv aming2/ aminglinux/
#ls aminglinx/
2 aming2/
此用法相當於cp的用法。
#mkdir aming2(此處作比較作用,無意義)
#mv
如果在同一個目錄下面,改名
如果目標文件存在,是否覆蓋
如果目標是目錄,且目錄不存在,源也是目錄,此時會把源的名字改了。
如果目標目錄已存在,源也是一個目錄,那他就會把這目錄放到目標目錄裏面去。
2.13 文檔查看cat_more_less_head_tail
#cat (q退出)查看文件內容
tac與cat對應,tac是倒序查看文件內容,cat是正序。
詳細用法,#man cat。
#cat -A 顯示文件路徑的結束,用$結尾
#cat -n 顯示文件行列行號
#more (q退出)
一屏一屏顯示 按“空格”顯示下一屏
#wc -l ancond-ks.cfg.1 查看行數
把/etc/passwd 的內容 增加到anaconda-ks.cfg.1 下面去
#cat /etc/passwd >>anaconda-ks.cfg.1
#wc -l anaconda-ks.cfg.1
再用more 可以看到數據每頁只顯示個別數據,more的作用是現實滿屏數據,不完全顯示。
往後翻,ctrl-B(back)
#less (q退出)
less和more差不多,不過less支持方向鍵移動走位查看。
ctrl-b 往後
ctrl-f 往前
搜索
"/" 搜索 高亮顯示 "n"(next) 下一個 shift n 上一個
倒序搜索(看最後)“?”
shift g 末行
g 首行
#head 頭10行 #tail 尾10行
#head -n 2 前2行
#tail -n 2 後2行
*tail查看動態文件用法多,例如日誌。
#tail -f 動態使用文件內容
例如 先#tail -f anaconda-ks.cfg.1 (截圖)
復制1個終端窗口,在新的窗口打開查看
再#tail -n 2 /etc/passwd >>anaconda-ks.cfg.1 (截圖)
返回,發現anaconda-ks.cfg.1 文件越來越多,動態顯示(截圖)
二周第二次課(1月30日)