目錄
💻前言?
💻指令
🎮ls指令
🎮pwd指令
🎮whoami指令
🎮cd指令
🎮clear指令
🎮touch指令
🎮mkdir指令
🎮rmdir指令
🎮rm指令
🎮man指令
🎮cp指令
🎮mv指令
🎮cat指令
🎮tac指令
🎮more指令
🎮less指令
🎮head指令
🎮tail指令
🎮date指令
🎮cal指令
🎮find指令
🎮which指令
🎮alias指令
🎮grep指令
🎮如何添加與刪除用戶?
🎮zip/unzip指令
🎮tar指令
🎮file指令
?編輯
🎮bc指令
🎮uname指令
🎮幾個重要的熱鍵
🎮關機指令
🎮拓展命令
💻前言?
- Linux的操作特點:純命令行(雖然也有圖形化界面,但主要是工程師使用,意義不大)
- windows的操作特點:圖形化界面(也有純命令行的形式,但其更貼近大眾,命令行學習成本高)
先有指令,還是先有圖形化界面呢??
先有指令!
現有鍵盤,還是先有鼠標呢??
先有鍵盤!圖形化界面和鼠標的出現更多的是當計算機逐漸趨向大眾化時所誕生的產物(包括顯示器),為了能夠讓普通老百姓能夠以較低的學習成本去使用電腦。
所以總的來說,無論是圖形化界面還是指令,本質都是一樣的,但是命令行指令會更貼近我們操作系統的底層,所以作為一名計算機工程師,熟悉基本的指令也就成為我們探究計算機世界的一門十分重要的功課。
在學習命令行指令的時候,我們可以結合windows的界面操作對比來進行深入的學習!!有助于我們加深理解。下面我們就要開始學習了
💻指令
🎮ls指令
語法:
?ls [選項][目錄或文件]
功能:
- 對于目錄,該命令列出該目錄下的所有子目錄與文件。
- 對于文件,將列出文件名以及其他信息。
一級,相當于是只展示該目錄所擁有的部分,且沒有隱藏文件
常用選項:
-a? ?列出目錄下的所有文件,包括以 . 開頭?的隱含文件。
每個目錄下默認存在兩個隱含文件 . 和 . . ( . 代表當前目錄 . . 代表上級目錄)。
列出多級,相當于無論藏得多深都會被展示出來,甚至是隱藏文件
-d 將目錄像文件一樣顯示,而不是顯示其下的文件。?如:ls –d 指定目錄
-i??輸出文件的 i 節點的索引信息。 如: ls –i 指定文件
-k 以 k 字節的形式表示文件的大小。
-l 列出文件的詳細信息。
ls -l 也可以簡寫為ll
-n 用數字的 UID,GID 代替名稱。(介紹 UID, GID)
-F 在每個文件名后附上一個字符以說明該文件的類型?
“*”表示可執行的普通文件; “/”表示目錄; “@”表示符號鏈接; “|”表示FIFOs; “=”表示套接字(sockets)。(目錄類型識別)
-r 對目錄反向排序。
-t 以時間排序。
-s 在l文件名后輸出該文件的大小。(大小排序,如何找到目錄下最大的文件)
-R 列出所有子目錄下的文件。 (遞歸)
-1 一行只輸出一個文件。
🎮pwd指令
語法: pwd
功能:顯示用戶當前所在的目錄
🎮whoami指令
語法:?whoami
功能:?顯示用戶當前的身份。
🎮cd指令
在Linux系統中,磁盤上的文件和目錄被組成一棵目錄樹,其中每個結點都是目錄或文件。
語法:?cd?目錄名
功能:?改變工作目錄。將當前工作目錄改變到指定的目錄下。
常用方式:
cd?. . (返回上級目錄)
?cd?絕對路徑 (使用絕對路徑改變當前工作目錄)
?cd 相對路徑
cd?~ (進入主工作目錄)。
普通用戶的主工作目錄默認為 /home/xxx,root用戶的主工作目錄默認為 /root。
cd?- (返回上一次所在目錄)
🎮clear指令
語法:?clear
功能:?清空屏幕。
🎮touch指令
語法:?touch?選項?文件
功能:?touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的文件。
常用選項:
-a ? 或--time=atime或--time=access或--time=use只更改存取時間。
-c ? 或--no-create ?不建立任何文檔。
-d ?使用指定的日期時間,而非現在的時間。
-f ?此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。
-m ? 或--time=mtime或--time=modify ?只更改變動時間。
-r ?把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。
-t ?使用指定的日期時間,而非現在的時間?
🎮mkdir指令
在Windows中我們通過Ctrl+Shift+N在當前目錄新建一個空目錄,我們若是想在Linux當中新建一個空目錄,則需要用到mkdir指令。
語法:mkdir?[選項]?dirname...
功能:在當前目錄下創建一個名為 “dirname”的目錄
常用選項:
-p dirname?可以是一個路徑名稱,此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。
注意:此處的路徑也可以是相對路徑。
🎮rmdir指令
rmdir是一個與mkdir相對應的指令,mkdir是建立目錄,而rmdir是刪除目錄。
語法:?rmdir?選項?dirname
功能:?刪除空目錄。
適用對象:?具有當前目錄操作權限的所有使用者。
常用選項:
-p 當子目錄被刪除后如果父目錄也變成空目錄的話,就連同父目錄一起刪除。
🎮rm指令
rmdir指令只能用于刪除空目錄,若是要相刪除其他文件,則需要用到rm指令。
語法:?rm?選項?dirname
功能:?刪除文件或目錄。
適用對象:?所有使用者。
常用選項:
-i 刪除前逐一詢問確認
-f 即使文件屬性為只讀(即寫保護),亦直接刪除
-r 刪除目錄及其下所有文件(遞歸式刪除)
當你要刪除當前目錄下的所以文件時,可以使用通配符 *?
但是為了保險起見,一般使用通配符刪除當前目錄下的所有文件時,建議在通配符 * 前面加上 . / 告知系統要刪除的資源在當前目錄下( . 代表當前目錄)
特別注意:?上面說到 -f 是強制性刪除,-r 是遞歸式刪除,這兩個結合在一起就是遞歸式強制性刪除,千萬不要執行以下指令,因為在Linux當中沒有類似回收站的東西也沒有撤銷刪除的功能,刪除指令一旦執行則是不可逆的。
該指令的意思是從(/)根目錄開始進行遞歸式強制性刪除,即刪除根目錄下所有文件,這是一個大忌,典型的刪庫跑路行為。所以,當你要使用“rm?-rf?dirname”這條指令前,你必須明確以下兩點:
?1、你清楚的知道你自己正在干什么。
?2、執行該命令后所造成的結果是你能夠承擔的。
🎮man指令
Linux的指令有很多參數,我們不一定能全部記住,我們可以通過查看聯機手冊獲取幫助。訪問Linux手冊頁的指令便是man
語法:?man?選項?指令
功能:?查看指令的使用規則等
常用選項:
-k 根據關鍵字搜索聯機幫助
num 只在第num章節查找
-a 將所有章節的查找結果都顯示出來
手冊分為8章:
可執行程序或shell命令
系統調用(內核提供的函數)
庫函數(程序庫中的函數)
特殊文件(通常在/dev中找到)
文件格式和約定,如/etc/passwd
游戲
雜項
系統管理命令(通常僅限于root用戶)
🎮cp指令
在Windows中我們可以通過Ctrl+C和Ctrl+V將一個地方的文件或目錄復制一份到另一個地方,我們若是在Linux當中想要完成該操作,就要用到cp指令。
語法:?cp?選項?源文件或目錄?目標文件或目錄
功能:?復制文件或目錄。
常用選項:
-f 或 --force 強行復制文件或目錄,不論目標文件或目錄是否已經存在。
-i 或 --interactive 覆蓋文件之前先詢問用戶
-r 或 -R 遞歸處理,將指定目錄下的文件與子目錄一并處理,若源文件或目錄的形態不屬于目錄或符號鏈接,則一律視為普通文件處理。
當我們需要將當前目錄的所有內容進行拷貝時,可以用到通配符進行拷貝。
🎮mv指令
在Windows中我們經常使用Ctrl+X和Ctrl+V將一個地方的文件或目錄移動到另一個地方,我們若是要在Linux當中完成此操作,則需要使用mv指令。
語法:?mv?選項?源文件或目錄?目標文件或目錄
功能:?視mv指令當中兩個參數的不同而不同。
當第二個參數是不存在的名稱時,mv指令完成文件重命名或目錄重命名
當第二個參數是已存在目錄名稱時,mv指令將文件移動置該目錄中。
常用選項:
-f 強制的意思(force),如果目標文件已經存在,不會詢問而直接覆蓋。
-i 若目標文件已經存在,則會詢問是否覆蓋。
🎮cat指令
在Linux當中無法想Windows一樣用鼠標點開某一文件進行閱讀,要想閱讀文件可以用cat指令。
語法:?cat?選項?文件
功能:?查看目標文件的內容。?
常用選項:
1)-b 對非空輸出行編號
-n 對輸出的所有行編號
-s 禁止重復的空輸出行。
注意:?cat指令會將目標文件內容全部打印到屏幕上。若是目標文件內容過大,則會導致刷屏(直到將文件內容全部打印到屏幕上)。因此cat指令一般僅適用于查看內容較少的文件。
🎮tac指令
使用tac指令,我們可以反向查看目標文件的內容。
語法:?tac?文件
功能:?反向查看目標文件的內容。
🎮more指令
上面說到,cat指令僅適用于查看內容較少的文件,我們若是要查看海量信息文件,則可以適用more指令。
語法:?more?文件
功能:?查看目標文件的內容。
注意:?more指令只能通過按回車鍵進行下翻操作,無法進行上翻操作,并且more指令在查看之前會先加載整個文件。
🎮less指令
上面的more指令只能進行下翻操作,而less指令可以同時支持上翻和下翻操作。
語法:?less?選項?文件
功能:?既有查看目標文件的內容的功能,又有搜索功能。
注意:?less指令可以通過按上下鍵進行上翻和下翻操作,并且less指令在查看之前不會加載整個文件。
常用選項:
1)-i 忽略搜索時的大小寫。
2)-N 顯示每行的行號。
3)/字符串 向下搜索“字符串”的功能。
4)?字符串 向上搜索“字符串”的功能。
5)n 重復前一個搜索(與/或?有關)。
6)N 反向重復前一個搜索(與/或?有關)。
🎮head指令
語法:?head?選項?文件
功能:?用于顯示文件的開頭至標準輸出中,默認head指令打印其相應文件的開頭10行。
常用選項:
-n 需要顯示的行數。
🎮tail指令
語法:?tail?選項?文件
功能:?用于顯示文件的末尾至標準輸出中,默認tail指令打印其相應文件的末尾10行。
常用選項:
-n 需要顯示的行數。
-f 循環讀取。
如何讀取文件中間某一段內容?
例如,現在test.txt文件當中有十萬行內容,我們如何讀取第1001至1010行?
在認識了head和tail指令后,你可能很容易想到如下方法:先用head指令讀取test.txt文件中的前1010行存入臨時文件temp.txt中,然后將temp.txt文件的后10行打印輸出即可。
注意: >(輸出重定向),圖中第一條指令的意思是,將本應該輸出到屏幕的內容輸出重定向到temp.txt文件當中。
這樣寫顯然有點麻煩(還需要創建一個臨時文件),有一種簡便的方式可以實現該操作,該方式需要用到“命令行管道”。
我們知道,管道是用于傳輸某種資源的(下水管道用于傳輸水,天然氣管道用于傳輸天然氣),而計算機上面最重要的資源就是數據。
在指令中管道用“|”來表示,管道左邊接收產生的數據,右邊讀取數據。:
因此我們可以將test.txt文件的前1010行從管道左側輸入管道,并在管道右側讀取數據進行進一步的操作即可。
🎮date指令
語法:?date?選項?格式
功能:?用于顯示時間、設置時間、完成時間與時間戳之間的相互轉換等。
用法一:?用于顯示時間,使用者可以選定欲顯示的格式,格式設定為一個加號,后接數個標記,其中常用的標記如下:
+%H 顯示當前的小時,范圍(00~23)。
+%M 顯示當前的分鐘,范圍(00~59)。
+%S 顯示當前的秒數,范圍(00~59)
+%X?相當于%H:%M:%S。
%d 顯示當前的號數。
?%m 顯示當前的月份
%Y 顯示當前的年份。
%F 相當于%Y-%m-%d。
用法二:?用于設定時間。
date -s 設置當前時間,只有root用戶才能設置,普通用戶只能查看。
date -s 20250412?將時間設置為20250412,這樣會將具體時間設置為空(00:00:00)。
date -s 01:01:01 設置具體時間,不會對日期做更改。
date -s “01:01:01 2021-07-25” 同時設置日期和具體時間。
date -s “01:01:01 20210725” 同時設置日期和具體時間。
date -s “2025-04-12?01:01:01” 同時設置日期和具體時間。
date -s “2025041201:01:01” 同時設置日期和具體時間。
用法三:?完成時間與時間戳之間的相互轉換
date +%s 顯示當前時間的時間戳。
小貼士:?時間戳是當前時間與計算機起始時間的差值,單位為秒。
date -d @時間戳 將時間戳轉換為時間。?
🎮cal指令
cal指令可以用于顯示公歷(陽歷)日歷。
語法:?cal?選項?月份?年份
功能:?用于查看日歷等時間信息,如只有一個參數,則表示年份(1~9999),如有兩個參數,則表示月份和年份。
常用選項:
-3 顯示系統前一個月、當前月以及下一個月的日歷。
-j 顯示在當年中的第幾天(一年日期按天算,從1月1號算起,默認顯示當前月在一年中的天數)。?
?-y 顯示當前年份的日歷
🎮find指令
語法:?find?路徑?選項?…
功能:?用于在文件樹中查找文件,并作出相應的處理(可能訪問磁盤,所以效率比較低)。
常用選項:
-name 文件名 按照文件名查找文件
~ 的含義:
- 代表當前登錄用戶的主目錄
- 例如,如果用戶名是 GalaxyPokemon,~ 就等同于 /home/GalaxyPokemon
-size 大小 按照文件大小查找文件
🎮which指令
Linux當中的每個指令其實都是用計算機語言編寫出的可執行程序,這些程序都存儲在文件當中,我們可以通過which指令查看某一指令的程序文件所在路徑。
語法:?which?指令
功能:?用于查找某一指令的程序文件所在路徑。
當我們執行某一指令時,實際是調用其可執行程序,因此我們還可以通過其程序文件的所在路徑進行調用該指令。
🎮alias指令
當你覺得某一指令太長時,你可以使用alias指令給它起一個別名。
語法:?alias?別名=‘原名’
功能:?可以用于給指令取別名。
🎮grep指令
grep指令類似于關鍵詞搜索(行過濾器)。
語法:?grep?選項?搜尋字符串?文件
功能:?在文件中搜索字符串,將找到的行打印出來。
常用選項:
-i 忽略大小寫進行查找。?
-n 輸出行號。
-v 反向選擇,顯示出沒有待搜索字符串的行。
🎮如何添加與刪除用戶?
當我們購買了云服務器后,我們得到的是一個root賬號。
實際上,使用root賬號是比較危險的,因為root賬號的權限太大,為了避免自己對某些系統文件進行誤操作,我們最好創建一個普通用戶的賬號使用。
如何添加一個普通用戶賬號?
?第一步:?輸入addser?yourid(yourid是待創建的用戶的用戶名)。
第二步:?輸入passwd yourid進行設置密碼。
注意:?Linux當中輸入密碼時,密碼不回顯。
第三步:?再次輸入密碼進行確認。
當看到以下提示時,說明用戶創建成功。
這時我們可以在/home目錄下看到該用戶的用戶名。
如何刪除用戶賬號?
?刪除賬號時之間輸入userdel?-r?yourid(yourid是要刪除的用戶的用戶名)。
此時我們在/home目錄下便看不到該用戶的用戶名了。
注意:?創建和刪除用戶的操作者都必須是root用戶,而不是普通用戶。
🎮zip/unzip指令
zip指令用于打包壓縮目錄或文件。
語法:?zip?選項?壓縮文件.zip?待打包目錄或文件
功能:?將目錄或文件打包壓縮成zip格式。
常用選項:
-r 遞歸處理,將指定目錄下的所有文件和子目錄一并處理。
unzip指令用于解壓文件。
語法:?unzip?壓縮文件.zip?選項?目錄
功能:?將壓縮文件解壓到指定目錄當中。
注意:?解壓文件時若不帶-d選項和目標目錄,則默認解壓到當前目錄下。?
🎮tar指令
tar指令也可以用來打包壓縮和解壓文件,并且還可以實現不解開壓縮包,直接查看里面內容的操作,以及只打包不壓縮等操作。
語法:?tar?選項?壓縮文件?…
功能:?打包/解包,不解開壓縮包,直接查看里面內容。
常用選項:
-c 建立一個壓縮文件的參數指令(create的意思)。
-x 解開一個壓縮文件的參數指令。
-t 查看tarfile里面的文件。
-z 是否同時具有gzip屬性?即是否需要用gzip壓縮?
-j 是否同時具有bzip2屬性?即是否需要用bzip2壓縮?
-v 壓縮的過程中顯示文件(常用)。
-f 使用檔名,請留意,在f之后要立即接檔名,不要再加參數。
-C 解壓到指定目錄。
解包示例:
不解開壓縮包,直接查看里面內容:
🎮file指令
語法:?file
功能:?查看文件的更多屬性信息。
🎮bc指令
Windows里面有計算器,Linux下面也有,bc指令就是Linux下的計算器。
語法:?bc
功能:?進行運算。
🎮uname指令
語法:?uname?選項
功能:?用于獲取電腦和操作系統的相關信息。
常用選項:
-r 輸出電腦和操作系統相關信息。
-a 詳細輸出所有信息,依次為內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類型,硬件平臺類型,操作系統名稱。
🎮幾個重要的熱鍵
- 上下按鍵。上下按鍵在Linux當中存儲的是歷史命令,通過按上下鍵我們可以查看我們最近敲的命令。我們也可以使用history指令查看歷史命令。
- Ctrl+D 退出當前命令行。
- Ctrl+C 讓當前程序停掉(終止失控程序)。
- Tab 自動補齊功能。
🎮關機指令
語法:?shutdown?選項
常見選項:
1)-h 將系統的服務停掉后,立即關機。
2)-r 將系統的服務停掉之后就重新啟動。
3)-t sec 經過sec秒后關機。
注:?所有關機指令只能由root用戶執行。
🎮拓展命令
◆安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件處理命令:?le、mkdir、grep、dd、?nd、mv、ls、di?、cat、ln;
◆ 系統管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 網絡操作命令:ifcon?g、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、?nger、mail、 nslookup;
◆ 系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。