學習Linux常用命令總結
Linux:
大家都知道Linux的目錄結構:只有一個根目錄。Linux由於是Open Source的作業系統,所以他的程式碼可以修改成適合在各種機器上面執行的,也就是說,Linux是具有“可移植性”,這是一個很重要的功能。
Linux的目錄結構如下圖所示:
執行環境:
我使用的是Centos7系統,配合VMware虛擬機器執行。附上如何在VMware中設定Centos7的網路配置方法:https://www.linuxidc.com/Linux/2017-07/145845.htm
注意:本人親測,在Centos7中已經不適用ifconfig查詢網路地址這一命令了,使用的是ip addr
目錄的相關操作:
cd(change directory):變換目錄
cd. :代表此層目錄
cd… :代表上一層目錄
cd- :代表前一個工作目錄
cd~ :代表“目前使用者”所在的主資料夾
cd/ :代表返回根目錄
cd~account:代表account這個使用者的主資料夾(account為賬號名稱)
pwd:顯示當前目錄
-p:顯示完整路徑
mkdir:建立一個新的目錄
-p:父目錄不存在的情況下先生成父目錄
-v:顯示命令執行過程中的詳細資訊
rmdir:刪除一個空的目錄
-p:可連續刪除上一層目錄
檢視檔案與目錄:
ls:常用ll
-a:全部的檔案,連同隱藏檔案(開頭為.的檔案)一起列出來
-d:僅列出目錄本身,而不是列出目錄內的檔案資料
-l:列出長資料串,包含檔案的屬性與許可權等資料
-r:將排序結果反向輸出
-s:以檔案容量大小排序,而不是用檔名排序
-t:按時間排序
複製、刪除和移動:
cp(複製檔案或目錄)
-i:若目標檔案已經存在時,在覆蓋前會先詢問動作的進行
-p:連同檔案的屬性(許可權、使用者、時間)一起復制過去,而非使用預設屬性
-r:遞迴持續複製,用於目錄的複製行為
-s:複製成為符號連結檔案,軟連線即快捷方式
rm(移除檔案或目錄)
-f:force的意思,忽略不存在的檔案,不會出現警告資訊
-i:在刪除前會詢問
-r:遞迴刪除,慎用!!!
mv(移動檔案與目錄,或更名)
-f:force的意思,忽略不存在的檔案,不會出現警告資訊
-i:在目標檔案已經存在前會詢問是否覆蓋
如何將一個檔案移動到上級目錄?
mv 要移動的檔名 …/
檔案內容查閱
cat(concatenate):由第一行開始顯示檔案內容
-n:顯示行號
tac:從最後一行開始顯示,倒著寫的cat
nl:顯示的時候,順便輸出行號
more:一頁一頁的顯示檔案內容
操作:
Enter:向下n行,需要定義。預設為1行
空格鍵:向下滾動一屏 或 Ctrl+F
B:返回上一屏 或 Ctrl+B
Q:退出more
less:與more相似,但是比more更好的是,可以往前翻頁
-m:顯示類似more命令的百分比
-n:顯示每行的行號
操作:
空格鍵:前進一頁 或 page down
B:後退一頁 或 page up
D:前進半頁
U:後退半頁
回車鍵:前進一行 或 方向鍵向下
Y:後退一行 或 方向鍵向上
Q:退出
head:只看頭幾行
tail:只看尾巴幾行
-f:迴圈讀取
od:以二進位制的方式讀取檔案內容
修改檔案時間或建立新檔案:
三個重要的變動時間:
modification time(mtime):當該檔案的“內容資料”變更時,就會更新這個時間。內容資料值得是檔案的內容,而不是檔案的屬性或許可權。
status time(ctime):當該檔案的“狀態”改變時,就會更新這個時間,舉例來說,像是許可權與屬性被更改了,都會更新這個時間。
access time(atime):當“該檔案的內容被取用”時,就會更新這個讀取時間。舉例來說,我們使用cat去讀取/etc/a.conf,就會更新該檔案的atime。
touch最常使用的情況是:
- 建立一個空的檔案;
- 將某個檔案日期修訂為目前(mtime與atime)
查詢命令
find:查詢檔案或目錄
which:指令碼檔名的查詢
whereis:尋找特定檔名
-b:只找二進位制格式的檔案
-m:只找在manual路徑下的檔案
-s:只找source原始檔
-u:查詢不在上述三個選項當中的其他特殊檔案
locate:根據關鍵字查詢
vi與vim的使用
vi的使用:
1.使用vi進入一般模式:vi 檔名
2.按下i進入編輯模式(i,o,a都可以)
3.按下Esc回到一般模式
4.在一般模式中輸入“:wq”儲存後離開vi
常用命令:
壓縮與打包檔案
在Linux環境中,壓縮副檔名大多是*.tar,*tar.gz,*.tgz,*.gz,*.z,*.bz2
gzip,zcat:gizp可以說是應用最廣泛的壓縮命令。*.gz
gzip -d 來解壓縮,zcat可以讀取壓縮為文字檔案內容。
bzip2,bzat:比giz好。*.bz2
壓縮:bzip2 -z 檔名;解壓縮:bzip2 -d 檔名 .bz2。
tar命令
-c :新建打包檔案,可搭配-v來檢視過程中被打包的檔名。
-t:檢視打包檔案的內容含有哪些檔名
-x:解打包或解壓縮的功能,可以搭配-C(大寫)在特定目錄解開
-c,-t,-x不可同時出現在一串命令中
-j:通過bzip2的支援進行壓縮/解壓縮,此時檔名最好為*.tar.bz2
-z:通過gzip的支援進行壓縮/解壓縮,此時檔名最好為*.tar.gz*
-v:在壓縮/解壓縮過程中,將正在處理的檔名顯示出來
-f filename:-f後面要接被處理的檔名。建議-f單獨寫一個引數
-C 目錄:這個引數用在解壓縮時,若要在特定目錄解壓縮。
-P:保留備份資料的原本許可權與屬性,常用於備份重要的配置檔案
-p:保留絕對路徑,即允許備份資料中含有根目錄存在之意
-exclude = FIFE:在壓縮過程中,不要講FIFE打包
bash
shell:只要能夠操作應用程式的介面都能夠成為shell。
bash主要的優點:
- 命令記憶能力
- 命令與檔案補全功能(Tab)
- 命令別名設定功能(alias)
- 作業控制、前臺、後臺控制
- 程式指令碼(Shell Script)
- 萬用字元(wildcard)
bash shell的內建命令:type
通過type命令可以知道每個命令是否為bash的內建命令。
什麼是變數?
變數就是以一組文字或符號等,來代替一些設定或者是一串保留的資料。
變數的顯示與設定:echo、unset
顯示變數:echo $變數名
例:
echo $HOME
取消變數:unset 變數名
其他命令
管道 |
Linux提供管道符號“|”。作用是“命令1”的輸出內容,將作為“命令2”的輸入內容。一般與grep命令一起使用。
格式:命令1 | 命令2
grep命令
表示全域性正則表示式版本
功能:用於過濾/搜尋的特定字元。可使用正則表示式與多種命令配合使用。
ps命令
功能:Process Status的縮寫。ps命令提供對程序的一次性檢視,即執行ps命令的那個時刻的程序資訊。
-e:顯示所有程式
-f:顯示UID,PPIP與STIME欄位
kill命令
功能:刪除執行中的程式或工作。
常用:kill -9 pid
file命令
功能:檢視檔案型別
env命令
功能:檢視所有環境變數
HOME:代表使用者的主資料夾
SHELL:告知目前此環境使用的SHELL是哪個程式
HISTORY:歷史命令
MAIL:郵件命令
PATH:執行檔案查詢的路徑
LANG:語系資料
RANDOM:隨機數變數 0~32767
set命令
功能:檢視所有變數(包括環境變數或自定義變數)
echo $?
功能:返回上一條命令所回傳的值,成功為0,可以找錯
ulimit -a
功能:列出你目前身份的所有限制資料數值
alias和unalias
功能:別名設定
chmod命令
功能:變更檔案或目錄的許可權
-R或-recursive:遞迴處理,將指定目錄下的所有資料夾及子目錄一併處理
許可權範圍的表示法如下:
u:User,即檔案或目錄的擁有者
g:Group,即檔案或目錄的所屬群組
o:Other,除了檔案或目錄擁有者或所屬群組之外,其他使用者皆屬於這個範圍
a:All,即全部的使用者,包含擁有者,所屬群組以及其他使用者
符號:
+:新增許可權
-:取消許可權
有關許可權代號的部分,列表如下:
代號 | 許可權 | 數字代號 |
---|---|---|
r | 讀取許可權 | 4 |
w | 寫入許可權 | 2 |
x | 執行許可權或切換許可權 | 1 |
- | 不具有任何許可權 | 0 |
Linux許可權格式
先記錄這麼多,以後繼續補充啦!
參考書籍:鳥哥的Linux私房菜(第四版)