Linux基礎命令完全指南【上篇】
- Linux基礎命令完全指南
- github地址
- 前言
- 命令行操作的引入
- Linux文件系統
- 樹形結構的根文件系統
- 絕對路徑和相對路徑
- 適用場景
- Linux目錄下的隱藏文件
- 基本指令
- 目錄和文件相關
- 1. ls
- 2. cd和pwd
- cd
- pwd
- 3. touch
- 4. mkdir
- 5. cp
- 6. mv
- 移動目錄時覆蓋寫入的兩種特殊情況
- 7. alias
- 文件查看相關
- 1. cat
- 2. more
- 3. less
- 4. head
- 5. tail
- 總結核心概念
Linux基礎命令完全指南
github地址
有夢想的電信狗
前言
本文介紹Linux系統
的基本知識和一些常見命令的基本使用,命令的更多用法需結合man
手冊進行查詢。命令和命令的細節較多,因此文章分為上篇和下篇。本文是文章的上篇。
命令行操作的引入
在
Windows系統
中,用戶通常依賴圖形界面(GUI
)進行文件管理和操作,例如通過鼠標點擊資源管理器完成復制、刪除等任務;
而Linux
系統雖然也提供GUI工具,但其核心優勢在于命令行(CLI
)。通過終端輸入簡潔的命令,用戶可直接操控系統內核,實現更高效、靈活的操作,例如批量處理文件、遠程管理服務器等場景。
命令行不僅節省資源,還能通過腳本自動化復雜任務,是開發者及運維人員的核心工具,體現了
Linux
“一切皆文件
”的設計哲學。
- 因此學習Linux下命令行的使用很有必要。
- Linux操作系統極其穩定,最常用于做服務器操作系統,因此最好永不關機。
Linux文件系統
首先聲明一個概念,
Linux下一切皆文件
。能被看到的都是文件,既包括最常見的文本文件,甚至鼠標,鍵盤,顯示器等設備都是文件。隨著后面學習的深入,會對這一概念有更深入的理解。
樹形結構的根文件系統
Linux
的目錄結構整體上是一個多叉樹,他的葉子結點,一定是空目錄或者文件,路上結點一定是一個非空目錄。
因此,我們所有的對文件或者目錄的增刪查改,本質都是對這顆多叉樹的增刪查改。
與大多數操作系統一致,Linux系統的文件系統結構是樹形結構的。且各個目錄都有各自的功能。
/
:是Linux
的根目錄。bin
:存放二進制可執行文件,以命令居多boot
:存放開機啟動程序dev
:存放設備文件: 包括字符設備文件、塊設備文件home
:存放 普通用戶 的目錄etc
:用戶信息和系統配置文件 passwd、grouplib
:操作系統使用的庫文件:例如 libc.so.6是一個動態庫root
:管理員宿主目錄(家目錄)usr
:用戶資源管理目錄 unix software resource 用戶的一些文件 第三方應用的資源文件opt
和proc
: 與Linux 進程相關的文件
Linux
的一個目錄中,既可以存放目錄文件,也可以存放其他文件。
絕對路徑和相對路徑
我們在磁盤中定位一個文件,通常需要路徑來描述。
路徑定位需要有唯一性。
絕對路徑
:從/
開始定位到指定位置,具有唯一性的路徑,稱為絕對路徑。相對路徑
:以當前所處路徑為起始參考位置,來進行定位的路徑,成為相對路徑。
- 絕對路徑以根目錄
/
為起點。 - 相對路徑以當前路徑為起點。
適用場景
絕對路徑
:絕對路徑以根目錄/
為起點,一般比較長,但具有不變性。一般用在一些固定常見,配置文件中使用。相對路徑
:以當前路徑為起點,一般比較短小,命令行輸入中常使用相對路徑。
使用絕對路徑進入目錄dir1
使用相對路徑進入目錄dir1
Linux目錄下的隱藏文件
Linux
中的每一個目錄下都有兩個隱藏文件.
和..
。可以通過ls -a
來查看
-l
是讓文件以列表的形式來進行呈現。
Linux
中的每一個目錄下都有兩個隱藏文件.
和..
。這兩個文件有什么用呢?
在
Linux
中,以.
開頭的文件都是隱藏文件,只有在ls -a
是才能被看到。
-
.
:表示當前路徑。 -
..
:表示當前路徑的上級路徑。 -
.
存在的意義:幫助用戶定位當前目錄下的一個文件。如: ./a,out -
..
存在的意義:幫助用戶定位到當前路徑的上級路徑以及上級路徑中的文件。
基本指令
目錄和文件相關
1. ls
功能:列出目錄內容
語法:ls [選項] [目錄]
常用參數:
-l
:長格式顯示(包含權限、所有者、大小等信息)-a
:列出目錄下的所有文件,包括以 . 開頭的隱含文件。-h
:以人類可讀格式顯示文件大小,更人性化-t
:按修改時間排序-R
:遞歸列出子目錄內容-d
: 將目錄象文件一樣顯示,而不是顯示其下的文件。 如:ls –d 指定目錄-i
: 輸出文件的 i 節點的索引信息。 如 ls –ai 指定文件-k
: 以 k 字節的形式表示文件的大小。ls –alk 指定文件-n
: 用數字的 UID,GID 代替名稱。-F
: 在每個文件名后附上一個字符以說明該文件的類型,“*”表示可執行的普通文件;“/”表示目錄;“@”表示符號鏈接;“|”表示FIFOs;“=”表示套接字(sockets)。(目錄類型識別)-r
: 對目錄反向排序。-t
:以時間排序。-s
: 在l文件名后輸出該文件的大小。(大小排序,如何找到目錄下最大的文件)-1
: 一行只輸出一個文件。
2. cd和pwd
cd
語法:cd 路徑
。
路徑可以是相對路徑,也可以是絕對路徑。
功能:改變工作目錄。將當前工作目錄改變到指定的目錄下。
# 直接輸入cd,默認切換到當前用戶的home目錄
# 對于root用戶 則切換到 /root 目錄下
cd
#返回上級目錄
cd ..
# 使用絕對路徑
cd /home/changan_memroy/linux/
# 使用相對路徑
cd ../day02/
# 進入用戶home目錄
cd ~
cd /home # 與上一行的寫法等價
# 返回最近訪問目錄
cd -
~
該符號表示當前用戶的home目錄。-
該符號表示用戶最近進入的一個目錄。.
表示當前目錄。
pwd
語法: pwd
功能:顯示用戶當前所在的目錄
常用選項:無
cd
配合-
和~
方便地切換目錄。- 切換完目錄后使用
pwd
驗證當前所在目錄。
3. touch
語法:touch [選項]… 文件…
功能:touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的文件。
常用選項:
-a
或--time=atime
或--time=access
或--time=use
只更改存取時間。
-c
或--no-create
不建立任何文檔。-d
: 使用指定的日期時間,而非現在的時間。-f
: 此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。-m
: 或--time=mtime
或--time=modify
只更改變動時間。-r
: 把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。-t
: 使用指定的日期時間,而非現在的時間
加上不同的參數,就有不同的用法,但最常用的用法是使用
touch
來創建文件。例如創建.c
或.cpp
源程序文件或者普通文件,創建別的文件也是如此。
4. mkdir
語法:mkdir [選項] 路徑名稱
功能:在當前目錄下創建一個名為 dirname
的目錄
常用選項:
-p
或--parents
后面跟一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。(遞歸創建子目錄)
演示如下
5. cp
語法:cp [選項] 源文件或目錄 目標文件或目錄
功能: 復制文件或目錄
說明: cp指令用于復制文件或目錄。如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中。若同時指定多個文件或目錄,而最后的目的地并非一個已存在的目錄,則會出現錯誤信息
常用選項:
-f
或--force
: 強行復制文件或目錄, 不論目的文件或目錄是否已經存在-i
或--interactive
:拷貝時,若目標目錄下有同名文件,覆蓋文件之前會先詢問用戶是否覆蓋-r
: 遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理-R
或--recursive
:遞歸處理,將指定目錄下的文件及子目錄一并處理
最常用的選項是
-f
和-r
目標目錄
d1
中沒有同名文件,因此不需要加-f
6. mv
mv命令是move的縮寫,可以用來
移動文件
或者將文件重命名
(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。
語法:mv [選項] 源文件或目錄 目標文件或目錄
功能: 視mv
命令中第二個參數類型的不同(是目標文件還是目標目錄),mv
命令將文件重命名或將其移至一個新的目錄中。
- 當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。
- 當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。
常用選項:
-f
:force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i
:若目標文件 (destination) 已經存在時,就會詢問是否覆蓋
移動目錄時覆蓋寫入的兩種特殊情況
- 目標路徑下有同名目錄,同名目錄不為空時,無法覆蓋。
- 目標路徑下有同名目錄,為空目錄,直接覆蓋。
7. alias
之前對于
ls
命令,我們是否會有疑問?為什么ll
等價于ls -l
。
這里本質上是命令alias
在起作用。
語法:alias [選項][名稱[='命令']]
功能:創建或顯示命令別名,用于簡化復雜的命令。
常用選項:
? -p
:以可被 Shell 重新使用的格式輸出別名(便于保存到配置文件中)。
功能詳解:
-
定義別名:通過
名稱='命令'
的格式將長命令或常用命令定義為簡短的別名。
? 示例:alias ll='ls -l'
(輸入ll
即可執行ls -l
)。
? 若命令包含空格或特殊字符,需用引號包裹。 -
查看別名:
? 直接輸入alias
(不加參數)可列出所有已定義的別名。
? 輸入alias 名稱
可查看特定別名的定義(如alias ll
)。 -
永久生效:
? 在~/.bashrc
或~/.zshrc
中寫入別名定義,重啟終端或執行source ~/.bashrc
后生效。
注意事項:
? 使用 unalias 名稱
可刪除臨時別名。
? 若別名與系統命令同名,優先執行別名(用 \命令
或 command 命令
可繞過別名)。
文件查看相關
1. cat
語法:cat [選項][文件]
功能: 查看目標文件的內容, 常用于行數短小的文件的查看。
常用選項:
-b
:對非空行輸出編號-n
: 對輸出的所有行編號-s
:不輸出多行空行
2. more
cat
會查看整個文件的內容,直接定位到文件的末尾,當遇到大文件時,直接定位到文件的末尾,會導致我們不便查看到文件前面的內容。而more
指令可以讓我們從文件第的一行開始,通過Enter
來進行向后滾動,逐行依次查看內容。但
more
的缺點是只能從文件開頭向后進行翻頁,無法向前進行查看。
語法:more [選項][文件]
功能:more命令,功能類似 cat
常用選項:
-n
:對輸出的所有行編號q
: 退出more
3. less
語法: less [參數] 文件
功能:
-
less
工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux
正統查看文件內容的工具,功能極其強大。 -
less
的用法比起more
更加的有彈性。在more
的時候,我們并沒有辦法向前面翻, 只能往后面看 -
但若使用了
less
時,就可以使用[pageup][pagedown]
等按鍵的功能來往前往后翻看文件,更容易用來查看一個文件的內容! -
除此之外,在
less
內可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜索。而且less
在查看之前不會加載整個文件
選項:以下選項適用于通過less
進入文件后在文件內進行搜索,而不是在使用less
打開文件時進行搜索。
-i
忽略搜索時的大小寫-N
顯示每行的行號/字符串
:向下搜索“字符串”的功能?字符串
:向上搜索“字符串”的功能n
:重復前一個搜索(與 / 或 ? 有關)N
:反向重復前一個搜索(與 / 或 ? 有關)q
:quit
所有選項是在:
處進行輸入的。例如向下查找字符串hello,輸入/hello
。
其他命令也都是在使用less
打開文件后再進行輸入的。
因此查看文件使用
less
和cat
,以及通過==管道(下篇介紹)==配合head
和tail
比較多
4. head
head
與 tail
就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head
用來顯示檔案的開頭至標準輸出中,而 tail
就是看檔案的結尾。
語法: head [參數]... [文件]...
功能:
head 用來顯示檔案的開頭至標準輸出中,默認head命令打印其相應文件的開頭10行。
選項:
-n [行數]
:顯示文件的前n
行
5. tail
tail
命令從指定點開始將文件寫到標準輸出.使用tail
命令的-f
選項可以方便的查閱正在改變的日志文件,tail -f filename
會把filename
里最尾部的內容顯示在屏幕上,并且不但刷新,使你看到最新的文件內容.
語法: tail [必要參數] [選擇參數] [文件]
功能: 用于顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。tail
默認顯示文件的后10行。
選項:
-f
循環讀取-n 行數
: 顯示行數
總結核心概念
- "一切皆文件"設計理念貫穿系統設計
- 命令行操作相比GUI更高效,適合批量處理與自動化
- 掌握路徑定位與基礎命令組合使用是Linux操作的關鍵基礎
這些命令構成了Linux系統操作的基石,熟練使用將顯著提升工作效率。下篇將講解查找、壓縮解壓等進階命令。
以上就是本文的所有內容了,如果覺得文章寫的不錯,還請留下免費的贊和收藏,也歡迎各位大佬在評論區交流
分享到此結束啦
一鍵三連,好運連連!