1. 程式人生 > >二周第二次課(1月30日)

二周第二次課(1月30日)

應該 刪除 發現 .com ks.cfg roo 環境變量 conda 圖片

2.10 環境變量PATH
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日)