? ? ? ?從本節開始,我們正式進入Linux的學習,通過前面的了解,我們知道我們要以命令的形式使用操作系統(使用操作系統提供的各類命令,以獲得字符反饋的形式去使用操作系統。),因此,我們是很有必要的去了解基本的操作命令,這一節,我們便系統學習Linux操作系統下的基本命令。
目錄
一、Linux的目錄結構
1.1 Linux目錄結構概念
1.2 Linux路徑描述方式
1.2.1 絕對路徑和相對路徑的概念
1.2.2 特殊路徑符
二、Linux命令入門
2.1 什么是Linux命令
2.2 Linux命令基礎格式
2.3 實用命令小技巧
2.3.1? 查詢命令用法man
2.3.2?Tab鍵自動補全
2.3.3? 復制粘貼內容
2.3.4??通配符*
三、基礎命令
3.1 pwd查看當前位置的絕對路徑
3.2 cd切換工作目錄
3.3 ls顯示目錄中的文件
3.3.1 不使用參數和選項
3.3.2? ls使用選項
3.3.3? ls使用參數?
3.4 touch創建普通文件
3.5 mkdir創建目錄文件/文件夾
3.6 rm刪除文件
3.7 cp拷貝文件
3.8 mv剪切文件
3.9 find查找文件
3.10 which命令
3.11 清空窗口命令clear
3.12 grep命令過濾文件內容
3.13 管道符 |
3.14 wc?數量統計
3.15?su?
3.16 重定向符
3.17?關機與重啟
四、文件查看命令
4.1 cat命令
4.2 more分屏顯示文件內容
4.3 less
4.4 head
4.5 tail
五、文本編輯命令
5.1 vi/vim編輯器介紹
5.2?vi\vim編輯器的三種工作模式
5.3?vi/vim 常用命令
5.3.1 控制插入模式下文本編輯中光標的位置
5.3.2 常用操作命令
5.3.3 末行模式下的操作
六、文件壓縮與解壓命令
6.1?tar打包工具
6.1.1?tar 打包過程
6.1.2?tar 解包過程
6.2?gzip解壓縮工具
6.2.1?gzip 壓縮的過程
6.2.2?gzip 解壓的過程
6.3 從壓縮包一步解包拿到文件
七、進程管理命令
7.1 ps 進程顯示命令
7.2 kill 結束進程
7.2.1??前臺進程結束方法
7.2.2 后臺進程結束方法
7.3?強制結束進程
7.4?顯示運行進程的任務號
7.5 進程的移動
7.6?系統默認開啟的進程
八、用戶管理命令
8.1?系統存儲用戶信息的文件
?8.2?添加新用戶
8.3?修改用戶密碼
?8.4?刪除用戶
一、Linux的目錄結構
1.1 Linux目錄結構概念
? ? Windows 系統可以擁有多個盤符, 如 C盤、D盤、E盤,而Linux的目錄結構是一個樹型結構,Linux沒有盤符這個概念, 只有一個根目錄 /, 所有文件都在它下面。如下圖所示:
注意:
? ? ? ?Linux為多用戶操作系統,為保證文件的安全性,每創建一個用戶,都會在根目錄下的home路徑下創建一個以用戶名命名的目錄,這也稱之為家目錄,每個用戶對于文件的修改,刪除,移動只能在當前目錄下或者其子文件下,如果想要操作家目錄之外的文件,必須要切換至管理員身份,然后才可以進行操作。我們的家目錄為:/home/stu 。Linux中對于文件夾的描述為目錄,也就是說目錄就是我們所說的文件夾。
?
1.2 Linux路徑描述方式
1.2.1 絕對路徑和相對路徑的概念
? ? ? ?我們知道:在Windows系統中,路徑之間的層級關系,使用: \ 來表示,然而在Linux系統中,路徑之間的層級關系,使用: /來表示。如下圖所示,
絕對路徑:以根目錄為起點,描述路徑的一種寫法,路徑描述以/開頭
相對路徑:以當前目錄為起點,描述路徑的一種寫法,路徑描述無需以/開頭
舉個栗子:如圖,通過pwd得知當前所在是家目錄下的mycode文件夾下:/home/stu/mycode,? 這個文件夾下有三個文件夾,現在想要通過cd命令,切換工作目錄到day02文件夾中去。那么,cd命令的參數(Linux路徑)如何寫呢?下面兩種寫法,都可以正確的切換目錄到指定的day02文件夾下。
- cd /home/stu/mycode/day02? ?絕對路徑寫法
- cd day02? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?相對路徑寫法(沒指定路徑,默認就是當前目錄下)
1.2.2 特殊路徑符
? ? ? 為更加靈活方便的支持路徑的切換,在Linux中存在一些特殊的路徑符,我們需要知道,這樣方便我們后續切換路徑。主要有四個:
特殊路徑符:
- .? 表示當前目錄,比如 cd ./Desktop 表示切換到當前目錄下的Desktop目錄內,和cd Desktop效果一致。
- ..? 表示上一級目錄,比如:cd ..?? 即可切換到上一級目錄。
- ~? 表示HOME目錄,比如:cd ~??? 在任何位置輸入這個命令都能直接回到家目錄。
- -? 表示返回最近訪問目錄,比如:cd -?
?
二、Linux命令入門
? ? ? 在正式進入命令學習之前,我們先理解一下什么是命令,明白命令的基礎格式,對于后續十分重要。
2.1 什么是Linux命令
? ? ? 我們知道,windows系統是以圖形界面操作的,非常形象易用,而Linux則是以命令字符的該來進行操作的,相對window來講并不直觀,具有一定的門檻。什么是命令?命令是對系統進行管理的指令,就像在windows上你要創建一個文件,你需要用鼠標或鍵盤點擊創建,而在linux上你需要輸入命令來創建,達到的效果是一樣的。你想要刪除文件、編輯文本、重啟系統…等等操作都要通過命令來執行,所以說,命令是Linux系統管理的重要方式,要使用Linux系統必須要掌握Linux命令。命令也可以理解為:二進制的可執行文件/程序,Linux的命令都在:/bin路徑下存放。
2.2 Linux命令基礎格式
? ? ?無論是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
命令? 【可選項】【可選參數】
- 命令: 命令本身
- 可選項:[可選,非必填]命令的一些選項,可以通過選項控制命令的行為細節
- 參數:[可選,非必填]命令的參數,多數用于命令的指向目標等
- 溫馨提示:選項和參數的具體定義可通過man命令查詢,后續介紹,掌握基本的命令,遇到不會的可以通過man命令查詢。(后續介紹)
?2.3 實用命令小技巧
? ? ? ? 在本節中,我將向您演示一些專業的Linux命令技巧,這些技巧將使您節省大量時間,在某些情況下還可以避免很多麻煩,而且它也將幫助您提高工作效率。
2.3.1? 查詢命令用法man
? ? ? ? ? Linux系統中有大量的命令,而且每個命令又有很多的參數和用法,因此不可能記住每一條命令的每一個參數和用法。因此,需要一個查詢工具,類似字典或說明書的作用。幫助手冊,用來查看命令、系統調用,庫函數等幫助信息,示例如下:
?當一個命令有多種形式時,可以加入參數修飾,1 代表查看命令? ?2 代表系統調用 (內核中的函數)?
3 代表庫函數。
注:在此窗口中,按回車鍵Enter逐行往下滾,按空格鍵翻頁,按q鍵退出。
? ? ? ? ?由上可見,查詢到的說明是非常詳細的,每個參數都會詳細說明。以后在使用中忘記了哪個命令的用法,可通過man命令來查詢。
2.3.2?Tab鍵自動補全
? ? ? ?Tab鍵俗稱制表符,位于鍵盤最左側大小寫鎖定鍵CapLock之上,波浪線鍵之下。制表位表示四個空格,用來分隔字符。在命令行操作中可以用來自動補齊命令,選項參數(最新Redhat7支持部分參數補齊),以及路徑。當一個命令或路徑較長時,可輸入前面幾個字符然后按[Tab]鍵,有以下情況:
1.由前面的幾個字符能唯一確定一個命令或路徑時,它便會自動幫你補全;
2.由前面幾個字符不能唯一確定一個命令或路徑時,再按一次[Tab]鍵,它會列出所有可能的命令或路徑;
可見,Tab鍵不僅能自動補全,還能幫你列出可能的情況,是十分好用的一個小技巧。
2.3.3? 復制粘貼內容
? ? ? ? 一般正常的使用:用鼠標選中想要復制的內容,然后點擊右鍵選擇“復制(Copy)”來復制內容,在要粘貼的地方也是點擊右鍵,然后右鍵選擇“粘貼(Paste)”。
? ? ? ?在Linux中,用鼠標選中某段內容時,默認就已復制了,然后到要粘貼的地方,向下按一下(點擊)鼠標的滾輪,即可粘貼。
2.3.4??通配符*
在Linux中,通配符*表示任意、不等長度的字符,與命令結合使用十分方便,如下:
- rm -r * :代表一次性刪除當前目錄下所有文件(包含普通文件、目錄文件...)
- rm -rf *:代表一次性刪除當前目錄下所有文件(包含普通文件、目錄文件...),并且即使有問題,也不會有提示信息,直接刪除
三、基礎命令
3.1 pwd查看當前位置的絕對路徑
? ? ? ? 我們可以通過pwd命令,來查看當前所在位置的絕對路徑。如下圖所示:
pwd命令來自:Print Work Directory,pwd命令,無選項,無參數,直接輸入pwd即可。
3.2 cd切換工作目錄
? ? ? ? 當Linux終端(命令行)打開的時候,會默認以用戶的home目錄作為當前的工作目錄.
? ? ? cd命令來自英文:Change Directory,? 可以通過cd命令,更改當前所在的工作目錄,cd 后的參數表示要切換到的位置,可以使用絕對路徑或相對路徑。
特殊目錄切換:
- cd ..? 表示切換到上一級目錄。
- cd ~? 表示?在任何位置輸入這個命令都能直接回到家目錄。
- cd -? 表示返回最近訪問目錄
3.3 ls顯示目錄中的文件
? ? ? ?ls命令的作用是列出當前目錄下的內容,語法細節如下:
- -a -l -h 是可選的選項
- ?Linux路徑是此命令可選的參數
3.3.1 不使用參數和選項
? ? ? 當不使用選項和參數,直接使用ls命令本體,表示:以平鋪形式,列出當前工作目錄下的內容
Linux系統的命令行終端,在啟動的時候,默認會加載:
? 當前登錄用戶的home 目錄作為當前工作目錄,所以 ls 命令列出的是home 目錄的內容?home 目錄:每個 Linux 操作用戶在 Linux 系統的個人賬戶目錄,路徑在: /home/ 用戶名
3.3.2? ls使用選項
ls? -a? ?會列出當前目錄下的全部文件(包含隱藏的文件/文件夾)a即all?
可以看到,ls -a 對比 ls 列出的內容更多了。
? 圖中以 . 開頭的,表示是 Linux 系統的隱藏文件 / 文件夾(只要以 . 開頭,就能自動隱藏)? 只有通過 -a 選項,才能看到這些隱藏的文件 / 文件夾
ls -l? 表示以列表(豎向排列)的形式展示內容,并展示更多信息.?
?
語法中的選項是可以組合使用的,比如學習的-a和-l可以組合應用。
寫法:
? ls -l -a? ls -la? ls -al上述三種寫法,都是一樣的,表示同時應用-l和-a的功能
3.3.3? ls使用參數?
? ? ? ? ? 當使用參數,ls命令的參數表示:指定一個Linux路徑,列出指定路徑的內容。當然選項和參數可以同時使用。如下所示:
3.4 touch創建普通文件
? ? ? ? ?可以通過touch命令創建普通文件。
3.5 mkdir創建目錄文件/文件夾
? ? ? 通過mkdir命令可以創建新的目錄(文件夾)mkdir來自英文:Make Directory
注意:綠色顯示為可執行程序,在Linux中可執行程序沒有后綴,比如window中的test.exe可執行程序,在Linux中就是test, 但是對于gcc編譯器必須要指定后綴區分不同的文件。藍色顯示為文件夾。
3.6 rm刪除文件
? ?rm命令可用于刪除普通文件、目錄/文件夾,rm命令來自英文單詞:remove
? -r 選項用于 刪除目錄/文件夾? -f 表示 force , 強制刪除(不會彈出提示確認信息)? ? ?普通用戶刪除內容不會彈出提示,只有root 管理員用戶刪除內容會有提示,所以一般普通用戶用不到-f選項? 參數 1 、參數 2 、 ...... 、參數 N 表示要刪除的文件或文件夾路徑,按照空格隔開
需要注意:??
? ? ? rm是一個危險的命令,特別是在處于root(超級管理員)用戶的時候。請謹慎使用。
如下命令,請千萬千萬不要在root管理員用戶下執行:rm -rf /? ?效果等同于在Windows上執行C盤格式化。
PS:你心里癢癢就在虛擬機試試吧,大不了恢復快照或者重新裝個虛擬機哦
3.7 cp拷貝文件
? ? 拷貝文件copy, 拷貝目錄文件/文件夾時,需要加上“-r” ,示例如下:
3.8 mv剪切文件
? ?mv命令是move的縮寫,可以用來移動文件或者將文件改名,是Linux系統下常用的命 令,經常用來備份文件或者目錄。實例如下:
3.9 find查找文件
在目錄樹中搜索指定的文件,也可以指定開始的搜索位置。
3.10 which命令
? ? ? 我們在前面學習的Linux命令,其實它們的本體就是一個個的二進制可執行程序。
和Windows系統中的.exe文件,是一個意思。我們可以通過which命令,查看所使用的一系列命令的程序文件存放在哪里。
3.11 清空窗口命令clear
該命令可將窗口進行清空
3.12 grep命令過濾文件內容
在文件中過濾出包含指定字符串的行 ,過濾出的結果可以作為管道符的輸入
?
3.13 管道符 |
? ? ? ?學習了grep命令后,我們在來學習一個新的特殊符號,管道符:|
管道符的含義是:將管道符左邊命令的結果,作為右邊命令的輸入
?
3.14 wc?數量統計
統計文件中單詞個數(-w)、字符個數(-c)、行數(-l) ,示例如下:
?
3.15?su?
su username 切換用戶,沒有指定用戶名,則默認切換到管理員用戶,示例如下:
?3.16 重定向符
重定向符:>和>>
- >??將左側命令的結果,覆蓋寫入到符號右側指定的文件中
- >>?將左側命令的結果,追加寫入到符號右側指定的文件中
3.17?關機與重啟
首先,應切換為管理員身份:sudo? su? ?,輸入密碼(不回顯)
執行關機指令:shutdown? -h? now? (立即關機)
? ? ? ? ? ? ? ? ? ? ? ? ?shutdown? -h? 10? ? ?(10分鐘后關機)
關機任務取消:shutdown? -c
重啟指令:shutdown? -r now? ? (立即重啟)
? ? ? ? ? ? ? ? ??shutdown? -h? 10? ? ?(10分鐘后重啟)
四、文件查看命令
4.1 cat命令
用法1:查看文件內容,會在中端平鋪展開
?
用法2:合并兩個文件為一個文件,?本來是默認打印在屏幕上 >重定向打印在在文件里
?
用法3:往文件中寫入數據, Ctrl+d 是結束輸入
?
4.2 more分屏顯示文件內容
more命令同樣可以查看文件內容,同cat不同的是:
? cat 是直接將內容全部顯示出來?more支持翻頁,如果文件內容過多,可以一頁頁的展示, 在查看的過程中,通過空格翻頁。
4.3 less
less?工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統查看文件內容的工具,功能極其強大。 less?的用法比起?more?更加的有彈性。在?more?的時候,我們并沒有辦法向前面翻, 只能往后面看 但若使用了?less?時,就可以使用?[pageup][pagedown]?等按鍵的功能來往前往后翻看文件,更容易用 來查看一個文件的內容! 除此之外,在?less?里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜。
4.4 head
顯示文件前 n 行的內容,默認head命令打印其相應文件的開頭10行。如下:
4.5 tail
顯示文件后 n 行的內容,默認tail命令打印其相應文件的末尾10行示例如下:
五、文本編輯命令
5.1 vi/vim編輯器介紹
? ? ? vi是visual interface的簡稱, 是Linux中最經典的文本編輯器,同圖形化界面中的 文本編輯器一樣,vi是命令行下對文本文件進行編輯的絕佳選擇。Linux系統都會自帶vi編輯器,但是vi編輯器太難用了!所以建議大家安裝vim編輯器,安裝命令:?apt?install vim。?vim 是 vi 的加強版本,兼容 vi 的所有指令,不僅能編輯文本,而且還具有 shell 程序編輯的功能,可以不同顏色的字體來辨別語法的正確性,極大方便了程序的設計和編輯性。
5.2?vi\vim編輯器的三種工作模式
1、命令模式(Command mode)
? ? ? ??命令模式下,所敲的按鍵編輯器都理解為命令,以命令驅動執行不同的功能。
? 此模式下,不能自由進行文本編輯。
2、插入模式(Insert mode)
? 也就是所謂的編輯模式、輸入模式。此模式下,可以對文件內容進行自由編輯。
3、末行模式(Last line mode)
??也就是底線命令模式,以:開始,通常用于文件的保存、退出。
?????? vi xxx???使用vi編輯器打開文件,此文件可以不存在,它會自己創建。?用vi打開一個vi后,自動進入到命令模式。命令模式中無法編輯文件,也就是無法敲代碼,要編輯文件就要進入輸入模式,按下“i、I、a、A、o、O、”等就會進入到編輯模式。一般按下“i”進入輸入模式。按下ESC鍵可退出輸入模式。在我們編輯完代碼需要保存退出時,便要進入末行模式,此時按 shift+:即可, 然后輸入相應的指令退出編輯器。
5.3?vi/vim 常用命令
5.3.1 控制插入模式下文本編輯中光標的位置
a | 進入到當前光標后開始編輯 |
A | 進入到當前光標所在行的行末開始編輯 |
i | 進入當前光標位置前一個位置開始編輯(常用) |
I | 進入當前光標所在行的行頭開始編輯 |
o | 進入當前光標下一行開始編輯 |
O | 進入當前光標上一行開始編輯 |
? ? ? ?上述命令須在命令模式下執行,當然,我們不對上面的命令記憶也可以操作光標的位置,按下鍵盤上的上下左右鍵來控制光標位置即可!
5.3.2 常用操作命令
nyy | 復制光標所在向下n行,比如10yy就是復制光標下面的10行 |
yy | 復制光標所在行 |
p | 與nyy結合使用,從光標下面一行開始復制n行 |
ndd | 刪除光標所在行及其下n行 |
dd | 刪除光標所在行 |
u | 撤銷,恢復上一步 |
ctrl +r | 反撤銷 |
gg | 光標移動到整個文本的第一行 |
G | 光標移動到整個文本的最后一行 |
上述命令須在命令模式下執行。
5.3.3 末行模式下的操作
在輸入/編輯模式下,輸入: ,即可進入底線命令模式/末行模式,支持如下命令:
:w | 只保存文本 |
:q | 只退出編輯 |
:wq | 保存并退出(常用) |
:q! | 強制退出,不保存退出 |
:set nu | 顯示行號 |
:set nonu | 取消行號顯示 |
保存退出后,按回車鍵Enter即可退出文本編輯器
六、文件壓縮與解壓命令
? ? ? ?Linux下常用的壓縮擴展名有:.tar、.tar.bz2、.tar.gz。? ? ?
? ? ?tar命令工具只提供了打包和解包的功能,tar在提供打包和解包的同時使用gzip進行壓縮和解壓,實現類似windwos下winRAR軟件的命令。
6.1?tar打包工具
將文件打包或者解包
- ?c 創建包文件
- ?f 指定目標為文件而不是設備
- ?v 顯示詳細過程
- ?t 顯示包中的內容而不釋放
- ?x 釋放包中的內容
- ?z GNU 版本新加的,使得 tar 有壓縮和解壓的功能
6.1.1?tar 打包過程
tar cvf? 包名? 需要打包文件名
6.1.2?tar 解包過程
tar? xvf? ?打包的包名
?
6.2?gzip解壓縮工具
? ? ? 對剛剛打包的包進行壓縮或者解壓縮的工具
.gzip工具負責壓縮和解壓縮.gz格式的壓縮包。
????? gzip xxx??????????????? //壓縮
? ? ? gzip -d xxx.gz?????? //解壓縮
?????? gzip對文件夾進行壓縮
?????? gzip -r xxx??????????? //對文件夾進行壓縮
?????? gzip -rd xxx.gz????? //對文件夾進行解壓縮
?????? gzip雖然可以對文件夾進行壓縮,但是并不能提供打包的服務,只是對文件夾中的所有文件進行了單獨的壓縮。
6.2.1?gzip 壓縮的過程
gzip? 包名? ?如:gzip? my.tar
6.2.2?gzip 解壓的過程
gzip -d? 壓縮格式后的文件名? ? 如:gzip? -d? my.tar.gz
6.3 從壓縮包一步解包拿到文件
?tar? zxf? 壓縮包名? ? z:解壓縮? x:解包? f:普通文件? 如:tar zxf my.tar.gz? ? ?
?
七、進程管理命令
? ? ? ?進程是一段正在運行的程序,我們應該如何管理進程呢?
7.1 ps 進程顯示命令
- ps 顯示當前終端運行的進程
- ps -f 看到的進程更詳細一些 可以看到進程編號
- ps -ef 可以看到系統全部正在運行的進程
7.2 kill 結束進程
7.2.1??前臺進程結束方法
? ? ? ?當運行前臺進程時,只有當當前運行的前臺進程運行完,才可以執行其他的命令,它的結束很簡單,用快捷鍵即可:Ctrl+C? 這也是后面學習信號中的一個信號。
7.2.2 后臺進程結束方法
? ? ? ?與前臺進程相比,后臺進程不需要等當前的進程執行完畢才能執行其他命令,它無法用快捷鍵Ctrl+C結束后臺進程,需要使用:kill +PID號就可以。
方法一:kill+ PID號
?
方法二:再打開另外一個終端窗口,輸入:ps -ef? grep "后臺進程名"? 展示出詳細信息,查看PID號,然后再利用kill+PID號結束后臺進程。
7.3?強制結束進程
? ? ? 當我們使用:kill+PID號無法結束進程時,可以使用:kill -9 PID 強制結束進程 ,這也是后面需要學習的一個信號。
7.4?顯示運行進程的任務號
jobs顯示當前終端的任務
jobs -l 顯示更詳細詳細 pid也可以顯示
7.5 進程的移動
fg %任務號? ? ? ? 將后臺運行的或掛起的進程挪到前臺執行
bg %任務號? ? ? ?將掛起的進程喚醒到后臺執行
7.6?系統默認開啟的進程
? ? ? 我們知道進程就是一個正在運行程序,我們輸入的命令其實也是可執行程序,因此,我們每輸入一個命令就會產生一個進程,操作系統為了讓我們輸入的命令能夠正常執行,會默認打開命令解釋器:bash, 他也是一個進程,通過后續的學習,我們可以知道:產生一個新的進程,其實就是首先復制命令解釋器進程bash, 然后再將此進程替換為我們需要打開的進程。
八、用戶管理命令
8.1?系統存儲用戶信息的文件
8.2?添加新用戶
8.3?修改用戶密碼
8.4?刪除用戶
? ? ?userdel 刪除用戶時,首先確保該用戶沒有登錄。userdel 默認僅刪除用戶,不會刪除家目錄及家目錄中的文件,若想刪除用戶的同時移除家目錄, 那么使用 userdel -r username。
以上就是Linux基本命令的全部內容!請務必掌握,這是后續學習的基礎,歡迎大家點贊加關注評論,您的支持是我前進最大的動力!下期再見!?