1. 程式人生 > >學習Linux常用命令總結

學習Linux常用命令總結

Linux:

大家都知道Linux的目錄結構:只有一個根目錄。Linux由於是Open Source的作業系統,所以他的程式碼可以修改成適合在各種機器上面執行的,也就是說,Linux是具有“可移植性”,這是一個很重要的功能。
Linux的目錄結構如下圖所示:
Linux樹形結構

執行環境:

我使用的是Centos7系統,配合VMware虛擬機器執行。附上如何在VMware中設定Centos7的網路配置方法:https://www.linuxidc.com/Linux/2017-07/145845.htm
注意:本人親測,在Centos7中已經不適用ifconfig查詢網路地址這一命令了,使用的是ip addr

命令。同時網絡卡名稱有eno改為了eno167777363。

目錄的相關操作:

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最常使用的情況是:

  1. 建立一個空的檔案;
  2. 將某個檔案日期修訂為目前(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主要的優點

  1. 命令記憶能力
  2. 命令與檔案補全功能(Tab)
  3. 命令別名設定功能(alias)
  4. 作業控制、前臺、後臺控制
  5. 程式指令碼(Shell Script)
  6. 萬用字元(wildcard)

bash shell的內建命令:type
通過type命令可以知道每個命令是否為bash的內建命令。

什麼是變數?

變數就是以一組文字或符號等,來代替一些設定或者是一串保留的資料。

變數的顯示與設定:echounset
顯示變數: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私房菜(第四版)