linux命令格式:
創新互聯建站長期為近1000家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為郊區企業提供專業的成都網站建設、成都網站制作,郊區網站改版等技術服務。擁有十余年豐富建站經驗和眾多成功案例,為您定制開發。
說明:command: 命令名,相應功能的英文單詞或單詞的縮寫 [-options]:選項,可用來對命令進行控制,也可以省略,[]代表可選 parameter1 …:傳給命令的參數:可以是零個一個或多個
一般是linux命令自帶的幫助信息
如:
man是linux提供的一個手冊,包含了絕大部分的命令、函數使用說明
該手冊分成很多章節(section),使用man時可以指定不同的章節來瀏覽。
例:man ls ; man 2 printf
man中各個section意義如下:
man是按照手冊的章節號的順序進行搜索的。
man設置了如下的功能鍵:
在敲出命令的前幾個字母的同時,按下tab鍵,系統會自動幫我們補全命令
當系統執行過一些命令后,可按上下鍵翻看以前的命令,history將執行過的命令列舉出來
ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似于DOS下的dir命令。
Linux文件或者目錄名稱最長可以有265個字符,“.”代表當前目錄,“..”代表上一級目錄,以“.”開頭的文件為隱藏文件,需要用 -a 參數才能顯示。
ls常用參數:
Linux允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中。
如:ls test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )
注意: 輸出重定向會覆蓋原來的內容,輸出重定向則會追加到文件的尾部。
查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文件的內容,此時可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。
管道:一個命令的輸出可以通過管道做為另一個命令的輸入。
管道我們可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這里“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。
clear作用為清除終端上的顯示(類似于DOS的cls清屏功能),也可使用快捷鍵:Ctrl + l ( “l” 為字母 )。
在使用Unix/Linux的時候,經常需要更換工作目錄。cd命令可以幫助用戶切換工作目錄。Linux所有的目錄和文件名大小寫敏感
cd后面可跟絕對路徑,也可以跟相對路徑。如果省略目錄,則默認切換到當前用戶的主目錄。
使用pwd命令可以顯示當前的工作目錄,該命令很簡單,直接輸入pwd即可,后面不帶參數。
通過mkdir命令可以創建一個新的目錄。參數-p可遞歸創建目錄。
需要注意的是新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,并且目錄創建者必須對當前目錄具有寫權限。
可使用rmdir命令刪除一個目錄。必須離開目錄,并且目錄必須為空目錄,不然提示刪除失敗。
可通過rm刪除文件或目錄。使用rm命令要小心,因為文件刪除后不能恢復。為了防止文件誤刪,可以在rm后使用-i參數以逐個確認要刪除的文件。
常用參數及含義如下表所示:
Linux鏈接文件類似于Windows下的快捷方式。
鏈接文件分為軟鏈接和硬鏈接。
軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
使用格式:
如果沒有-s選項代表建立一個硬鏈接文件,兩個文件占用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項是更常見的形式。
注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。
Linux系統中grep命令是一種強大的文本搜索工具,grep允許對文本文件進行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式為:
在grep命令中輸入字符串參數時,最好引號或雙引號括起來。例如:grep‘a ’1.txt。
常用選項說明:
find命令功能非常強大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。
常用用法:
cp命令的功能是將給出的文件或目錄復制到另一個文件或目錄中,相當于DOS下的copy命令。
常用選項說明:
用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名。
常用選項說明:
計算機中的數據經常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復數據。
tar使用格式 tar [參數] 打包文件名 文件
tar命令很特殊,其參數前面可以使用“-”,也可以不使用。
常用參數:
tar與gzip命令結合使用實現文件打包、壓縮。 tar只負責打包文件,但不壓縮,用gzip壓縮tar打包后的文件,其擴展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip [選項] 被壓縮文件
常用選項:
tar與bzip2命令結合使用實現文件打包、壓縮(用法和gzip一樣)。
tar只負責打包文件,但不壓縮,用bzip2壓縮tar打包后的文件,其擴展名一般用xxxx.tar.gz2。
在tar命令中增加一個選項(-j)可以調用bzip2實現了一個壓縮的功能,實行一個先打包后壓縮的過程。
壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
通過zip壓縮文件的目標文件不需要指定擴展名,默認擴展名為zip。
壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件
解壓文件:unzip -d 解壓后目錄文件 壓縮文件
whoami該命令用戶查看當前系統當前賬號的用戶名。可通過cat /etc/passwd查看系統用戶信息。
由于系統管理員通常需要使用多種身份登錄系統,例如通常使用普通用戶登錄系統,然后再以su命令切換到root身份對傳統進行管理。這時候就可以使用whoami來查看當前用戶的身份。
who命令用于查看當前所有登錄系統的用戶信息。
常用選項:
如果是圖形界面,退出當前終端;
如果是使用ssh遠程登錄,退出登陸賬戶;
如果是切換后的登陸用戶,退出則返回上一個登陸賬號。
在Unix/Linux中添加用戶賬號可以使用adduser或useradd命令,因為adduser命令是指向useradd命令的一個鏈接,因此,這兩個命令的使用格式完全一樣。
useradd命令的使用格式如下:
useradd [參數] 新建用戶賬號
在Unix/Linux中,超級用戶可以使用passwd命令為普通用戶設置或修改用戶口令。用戶也可以直接使用該命令來修改自己的口令,而無需在命令后面使用用戶名。
可以通過su命令切換用戶,su后面可以加“-”。su和su –命令不同之處在于,su -切換到對應的用戶時會將當前的工作目錄自動轉換到切換后的用戶主目錄:
注意:如果是ubuntu平臺,需要在命令前加“sudo”,如果在某些操作需要管理員才能操作,ubuntu無需切換到root用戶即可操作,只需加“sudo”即可。sudo是ubuntu平臺下允許系統管理員讓普通用戶執行一些或者全部的root命令的一個工具,減少了root 用戶的登陸和管理時間,提高了安全性。
方法一:
方法二:
groupadd 新建組賬號 groupdel 組賬號 cat /etc/group 查看用戶組
使用方法:usermod -g 用戶組 用戶名
新創建的用戶,默認不能sudo,需要進行一下操作
-g用來制定這個用戶默認的用戶組
-G一般配合'-a'來完成向其它組添加
chmod 修改文件權限有兩種使用格式:字母法與數字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
cal命令用于查看當前日歷,-y顯示整年日歷
設置時間格式(需要管理員權限):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC為年前兩位yy為年的后兩位,前兩位的mm為月,后兩位的mm為分鐘,dd為天,hh為小時,ss為秒。如: date 010203042016.55。
顯示時間格式(date '+%y,%m,%d,%H,%M,%S'):
進程是一個具有一定獨立功能的程序,它是操作系統動態執行的基本單元。
ps命令可以查看進程的詳細狀況,常用選項(選項可以不加“-”)如下:
top命令用來動態顯示運行中的進程。top命令能夠在運行后,在指定的時間間隔更新顯示信息。可以在使用top命令時加上-d 來指定顯示信息更新的時間間隔。
在top命令執行后,可以按下按鍵得到對顯示的結果進行排序:
kill命令指定進程號的進程,需要配合 ps 使用。有些進程不能直接殺死,這時候我們需要加一個參數“ -9 ”,“ -9 ” 代表強制結束.
使用格式:
kill [-signal] pid
df命令用于檢測文件系統的磁盤空間占用和空余情況,可以顯示所有文件系統對節點和磁盤塊的使用情況。
du命令用于統計目錄或文件所占磁盤空間的大小,該命令的執行結果與df類似,du更側重于磁盤的使用狀況。
du命令的使用格式如下: du [選項] 目錄或文件名
在前面的兩個章節中,我們主要介紹了Linux基本知識和虛擬機的安裝,從當前章節開始,我們一起學習下Linux的基本命令,在當前章節,我們先簡單的學習下一些系統的基本命令,慢慢的由淺入深,在后面的章節中我們將學習其他的命令比如文件操作、備份壓縮等
命令我們可以理解成在Windows中我們常常為了查看ip輸入的ipconfig,在Linux中也有很多的命令,比如操作目錄、文件、網絡、磁盤等等命令
使用者權限:管理員用戶
參數說明:
添加用戶czbk(傳智播客的首拼)執行
我們使用useradd命令創建了一個用戶czbk
useradd 可用來建立用戶帳號。帳號建好之后,再用 passwd 設定帳號的密碼。
執行如下
由上圖我們發現,我們在使用useradd新增用戶的時候,出現了權限不足,也就是說我們使用用戶itcast沒有創建用戶的權限。
我們通過管理員賬號root進行創建,首先我們從控制臺中切換到root
在 密碼的地方輸入我們的root密碼【root】即可進入到root用戶下。
我們在root下繼續創建czbk用戶
以下是useradd常用選項
用戶管理的一項重要內容是用戶口令的管理。用戶賬號剛創建時沒有口令,但是被系統鎖定,無法使用,必須為其指定口令后才可以使用
使用者權限:管理員用戶
指定和修改用戶口令的Shell命令是 passwd 。超級用戶可以為自己和其他用戶指定口令,普通用戶只能用它修改自己的口令。命令的格式為:
可使用的選項:
設置當前用戶的口令
此處我們設置密碼和itcast賬號密碼一致,為【Itheima888】
usermod 命令通過修改系統帳戶文件來修改用戶賬戶信息
修改用戶賬號就是根據實際情況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登錄Shell等。
使用者權限:管理員用戶
修改已有用戶的信息使用 usermod 命令,其格式如下:
下面命令將用戶czbk用戶名修改成czbk2019
以下是usermod常用選項
假如我們其中一個用戶的賬號不再使用,可以從系統中刪除。刪除用戶賬號就是要將/etc/passwd等系統文件中的該用戶記錄刪除,必要時還刪除用戶的主目錄。
使用者權限:管理員用戶
刪除一個已有的用戶賬號使用 userdel 命令,其格式如下:
-f:強制刪除用戶,即使用戶當前已登錄;
-r:刪除用戶的同時,刪除與用戶相關的所有文件
此命令刪除用戶czbk2019
成功刪除用戶czbk2019
以下是userdel常用選項
引子:
為了方便用戶管理, 提出了 組 的概念, 如下圖所示
比如新建賬戶【張三】,那么它默認對應的組就是張三
一個用戶可以有一個或者多個組
假如說(如上圖),我們在企業級開發過程中,我們有多個組,其中一個開發組對應三個賬戶,張三、李四、王五、如果就像上面提到的,一個用戶默認對應一個組,那么三個賬戶張三、李四、王五就有了三個不同的組,如果大家都操做一個文件,在進行權限分配的時候,就要對不同的三個組進行授權,顯然這樣是不合理的,因為太過繁瑣。
所以,才有了組(新建組)的概念,我們把張三、李四、王五統一放到【開發組】,在對文件授權的時候,我們只對【開發組】進行授權由此,這樣的話【張三、李四、王五】都有相等的權利操作了。
新增一個用戶組(組名可見名知意,符合規范即可),然后將用戶添加到組中
使用者權限:管理員用戶
使用的選項有:
新增用戶組czbk-it
上面的命令向系統中增加了一個新組czbk-it,新組的組標識號是在當前已有的最大組標識號的基礎上加1
以下是groupadd常用選項
使用者權限:管理員用戶
常用的選項有:
上面的命令將組czbk-it的組名修改為czbk-it-2019。
以下是groupmod常用選項
在查詢用戶所屬的用戶組前,我們先增加一個用戶ituser-groups
要查詢一個用戶屬于哪個用戶組,使用groups命令,其格式如下
查詢用戶ituser-groups屬于某個用戶組,執行groups命令
由此可見,ituser-groups用戶屬于用戶組ituser-groups(用戶組默認與用戶名一樣)
使用者權限:管理員用戶
要刪除一個已有的用戶組,使用groupdel命令,其格式如下
刪除czbk-it-2019用戶組
刪除成功
以下是groupdel常用選項
1、創建一個新的組,并添加組ID(需要切換到root用戶)
執行效果如下
2、創建3個用戶(需要切換到root用戶)
3、將上面三個用戶添加到組itbj2020group
我們通過passwd命令將三個用戶添加到組
什么是gpasswd:
gpasswd 是 Linux 下工作組文件 /etc/group 和 /etc/gshadow 管理工具,用于將一個用戶添加到組或者從組中刪除。
語法
將上面的三個用戶使用gpasswd添加到組(需要切換到root用戶)
執行如下
查看用戶組下所有用戶(所有用戶)
執行效果如下(或者直接打開/etc/group文件都可以)
由上圖可知:三個用戶全部都加入到了itbj2020group組。
date 可以用來顯示或設定系統的日期與時間
使用者權限:所有用戶
語法如下:
參數
-d字符串:顯示字符串所指的日期與時間。字符串前后必須加上雙引號;
-s字符串:根據字符串來設置日期與時間。字符串前后必須加上雙引號;
-u:顯示GMT;
--help:在線幫助;
--version:顯示版本信息
1、設置時間
用 -s選項可以設置系統時間,如下:
2、顯示時間
協調世界時,又稱世界統一時間、世界標準時間、國際協調時間。由于英文(CUT)和法文(TUC)的縮寫不同,作為妥協,簡稱UTC。。
(2)GMT
即 格林尼治 平太陽時間,是指格林尼治所在地的標準時間,也是表示地球自轉速率的一種形式
外文名: Universal Time
其他外文名 G.M.T.(Greenwich Mean Time)
(3)CST
北京時間 (中國國家標準時間) 北京時間是中國采用國際時區東八時區的區時作為標準時間 。 北京時間并不是北京(東經116.4°)的地方時間,而是東經120°的地方時間,故東經120度地方時比北京的地方時早約14分半鐘。因為北京處于國際時區劃分中的東八區,同格林尼治時間(世界時)整整相差8小時(即北京時間=世界時+8小時),故命名為“北京時間”。東八區包括的范圍從東經112.5°到東經127.5°,以東經120°為中心線,東西各延伸7.5°,總寬度為15°的區域。 而中國幅員遼闊,東西相跨5個時區(即東五區、東六區、東七區、東八區、東九區5個時區)授時臺必須建在地理中心地帶,從而也就產生了長短波授。“北京時間”與“北京當地時間”是兩個概念, “北京時間”的發播不在北京,而在陜西蒲城(處于東七區)
(4)東八區
東八區( UTC / GMT +08:00)是比 世界協調時間 (UTC)/ 格林尼治時間 (GMT)快8小時的時區,理論上的位置是位于 東經 112.5度至127.5度之間,是東盟標準的其中一個候選時區。當格林尼治標準時間為0:00時,東八區的標準時間為08:00
pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" cid="n486" mdtype="fences" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); position: relative !important; background-position: inherit; background-repeat: inherit;"總結:
上面提到了很多知識:即UTC/GMT/CST/東八區
總結一下就是,北京時間(中國國家標準時間CST)采用東八區區時,即:
協調世界時(UTC)+8 / 格林尼治時間(GMT)+8
也就是說+8后的時間才是北京時間/pre
logname命令用于顯示用戶名稱。
執行logname指令,它會顯示目前用戶的名稱
語法為如下:
參數 :
顯示登錄賬號的信息
su命令用于變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。
使用權限:所有使用者。
語法如下:
變更帳號為 root 并在執行 ls 指令后退出返回原使用者
切換到root
這樣的話,我們就進入到了root用戶下。
id命令用于顯示用戶的ID,以及所屬群組的ID。
id會顯示用戶以及所屬群組的實際與有效ID。若兩個ID相同,則僅顯示實際ID。若僅指定用戶名稱,則顯示目前用戶的ID。
使用者權限:所有用戶
語法
參數說明:
顯示當前用戶信息
執行效果如下
sudo:控制用戶對系統命令的使用權限,root允許的操作。
通過sudo可以提高普通用戶的操作權限
使用者權限:普通用戶
語法如下:
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command
參數說明 :
sudo命令使用
指定root用戶執行指令
修改網卡配置文件
比如,在下面的例子中,我們使用普通用戶修改網卡的配置文件,在進行保存的時候,提示我們【無法打開并寫入文件】,那么此時,我們可以通過sudo命令來提升自己的寫入權限
執行:
執行效果如下(保存)
然后點擊回車
執行效果如下(鍵入itcast密碼)
執行保存
top命令用于實時顯示 process 的動態。
使用權限:所有使用者。
顯示進程信息
執行效果如下
顯示完整命令,與top命令不同的就是command屬性像是進行了命令補全
執行效果如下
執行效果如下
Linux ps命令用于顯示當前進程 (process) 的狀態信息
使用者權限:所有用戶
語法如下:
顯示進程信息
顯示指定用戶信息
顯示所有進程信息
Linux kill命令用于刪除執行中的程序或工作(可強制中斷)
使用者權限:所有用戶
語法如下:
參數說明 :
殺死一個進程
強制殺死進程
徹底殺死進程
殺死指定用戶所有進程
1.方法一 過濾出itcast用戶進程
2.方法二,直接殺死
shutdown命令可以用來進行關閉系統,并且在關機以前傳送訊息給所有使用者正在執行的程序,shutdown 也可以用來重開機
使用者權限:管理員用戶
語法如下:
參數說明 :
立即關機
指定1分鐘后關機,1分鐘關機并顯示警告信息
指定1分鐘后重啟,并發出警告信息
reboot命令用于用來重新啟動計算機
使用者權限:管理員、普通(需要驗證)用戶
語法如下:
參數 :
開始重新啟動
重啟效果如下
who命令用于顯示系統中有哪些使用者正在上面,顯示的資料包含了使用者 ID、使用的終端機、從哪邊連上來的、上線時間、呆滯時間、CPU 使用量、動作等等
使用者權限:所有使用者都可使用。
語法如下:
參數說明 :
顯示當前登錄系統的用戶
顯示明細(標題)信息
由上圖可知,截止到現在只有itcast在線。
引子:
timedatectl是用于控制系統時間和日期。可以用來查詢和更改系統時鐘于設定,同時可以設定和修改時區信息。
在實際開發過程中,系統時間的顯示會和實際出現不同步;我們一般為了校正服務器時間、時區的時候會使用timedatectl命令/pre
使用者權限:所有使用者都可使用,設置時間需要管理員,下面會標注。
幾個常見的概念,進行總結如下:
顯示系統的當前時間和日期,使用命令行中的timedatectl命令
執行效果如下
上圖顯示中國時區
一、ifconfig
自ubuntu17起,已經不提供這個命令了,要自動安裝
sudo apt install net-tools
ifconfig -a :查看當前系統所有的網絡接口
ifconfig interface(PS:這里是網絡接口的名稱) down:禁用當前網絡接口
ifconfig interface up :啟用網絡接口
二、ip命令
1、管理網絡接口
1)、ip link list 顯示網絡設備的運行狀態
2)、ip -s link list 顯示更詳細的網絡設備運行狀態
4)、ip link set dev ens33 mtu 1600: 改變網絡設備最大傳輸單元 MTU的值為1600
2、管理ip地址
1)、ip a show dev ens33 顯示指定網絡接口的ip
2)、ip addr ls ens33
5)、ip -4 addr flush ens33
通過id修改的ip地址重啟后會消失。如果要永久保存,則需要修改配置文件
3、管理路由表
1)、ip route show 顯示main 路由表的路由信息
每行定義一個路由表,前面的數字為路由編號,后面為路由名稱
以上的幾個路由表為默認路由表,用戶不可以修改
默認所有的路由表都會被插入到254的main表中。在進行路由查詢時,內核只使用路由表main
3)、ip route show table local 指定顯示路由表
4、管理策略路由
1)、ip route list 列出當前系統的策略路由規則
2、添加一條到達網絡224.0.0.0/28的路由
route add -net 224.0.0.0/28 netmask 224.0.0.0 dev docker0
3、刪除指定的路由記錄224.0.0.0
route del -net 224.0.0.0 netmask 224.0.0.0
route -n 查看路由
5、刪除默認網關
route del default gw 172.17.0.0 dev docker0
route -n
四、netstat命令
1、netstat(network status) 查看各種網絡信息的,包括網絡連接、路由表以及網絡接口的各種統計數據
netstat [options]
常用的幾個選項:
-a :顯示所有處于活動狀態的套接字
-t :顯示TCP/IP協議的連接信息
-l:列出所有處于監聽狀態的套接字
-n:直接顯示ip地址,不轉換成域名
-i :列出所有的網絡接口
-p:顯示使用套接字的進程id和程序名
-r:顯示路由表信息
2、netstat -a
顯示所有的端口,包含未監聽的和監聽的
3、nestat -at
只顯示TCP/IP協議的連接
4、netstat -tl
只顯示處于監聽狀態的TCP連接
5、netstat -tlanx
顯示數字形式的ip地址
6、netstat -anp | grep ":80"
排查處于某個端口被占用導致服務器無法啟動
7、netstat -i
列出當前系統的所有網絡接口
8、netstat -r
查看路由表信息
該命令是向某臺主機( )發送ICMP數據包,并接收響應
Ctrl+C退出ping 命令