Linux常用命令知識點總結

来源:https://www.cnblogs.com/zqingyang/p/18142052
-Advertisement-
Play Games

目錄 目錄目錄基礎指令Linux命令基本格式文件操作文件格式文件許可權創建文件查看文件刪除文件移動文件複製文件編輯文件查找文件查找命令路徑vim文本編輯器一般指令模式(command mode)編輯模式(insert mode)指令列命令模式command-line mode目錄操作列印路徑查看目錄切 ...


目錄

目錄


基礎指令

Linux命令基本格式

gec@ubuntu:~$ 命令   [選項]   [參數]  

文件操作

文件格式

file命令,該命令用於查看Linux系統中文件的類型,包括但不限於文本文件、目錄、二進位文件、符號鏈接等。

file [選項] 文件名

file code.tar.bz2 #查看code.tar.bz2 的文件類型

文件許可權

chmod命令,是英文單詞change module的縮寫,利用該命令可以修改Linux系統的文件許可權

chmod   許可權   文件

系統中的所有用戶被分成三類:文件所有者(現登錄用戶),同組用戶和其他用戶。這三類用戶對這個文件的rwx許可權,可以由命令 ls -l 來查看。

在上述列子中,rwx三組許可權對應了三種用戶。當我們需要修改這些許可權的時候,為了便於描述,一般用3組八進位數來對應這些許可權為,如下表所示:

image

image

創建文件

touch 文件不存在時創建空文件 , 文件存在時將已存在的文件或目錄的時間標簽更新為當前系統時間

touch  文件名            //可以一次性創建多個不同類型的文件

查看文件

cat命令,是英文concatenate的縮寫,該命令是 Linux操作系統中最常用的命令之一。cat 命令允許創建單個或多個文件、查看文件內容、連接文件和重定向終端或文件中的輸出,常用於查看文件內容。

cat file.txt #顯示文本文件內容
cat -n a.c  #顯示文本文件內容(並顯示行號)
cat -A a.c   #顯示文本文件內容(含不可見字元)
		  #註意:在某些情況下,我們可能需要檢測文件中那些不可見的字元。比如在Windows系統中編輯了程式源文件,放到Ubuntu系統中編譯可能會出現字元錯誤,這是因為Windows系統中的某些回車符、製表符跟Ubuntu系統的不一致,導致無法編譯,而這些字元是不可見的,因此可以使用上述 cat -A 來識別。

刪除文件

rm 永久性地刪除文件系統中指定的文件或目錄。在使用 rm 命令刪除文件或目錄時,系統不會產生任何提示信息

rm   [選項]  文件或目錄
	-f:強制刪除(force),和 -i 選項相反,使用 -f,系統將不再詢問,而是直接刪除目標文件或目錄。
	-i:和 -f 正好相反,在刪除文件或目錄之前,系統會給出提示信息,使用 -i 可以有效防止不小心刪除有用的文件或目錄。
	-r:遞歸刪除,主要用於刪除目錄,可刪除指定目錄及包含的所有內容,包括所有的子目錄和文件。

移動文件

mv 命令,是英文move的縮寫,該命令有兩種作用:既可以在不同的目錄之間移動文件或目錄,也可以對文件和目錄進行重命名。

mv  [選項]   源文件   目標文件/目錄路徑
	-f:強制覆蓋,如果目標文件已經存在,則不詢問,直接強制覆蓋
	-i:交互移動,如果目標文件已經存在,則詢問用戶是否覆蓋(預設選項)
	-n:如果目標文件已經存在,則不會覆蓋移動,而且不詢問用戶

複製文件

cp命令,是英文copy的縮寫,主要用來複制文件和目錄,同時藉助某些選項,還可以實現複製整個目錄,以及比對兩文件的新舊而予以升級等功能。

cp  [選項]  源文件(被覆制文件)  目標路徑
	-i:詢問,如果目標文件已經存在,則會詢問是否覆蓋
	-r:遞歸複製,用於複製目錄
	-u:若目標文件和源文件有差異,則可以更新目標文件,可用於對文件的升級和備用

編輯文件

gedit命令,可以以記事本的風格打開一個文件,gedit圖形化編輯器跟Windows下記事本的用法基本一致。

gedit  文件名

查找文件

find命令,該命令用於查找Linux系統中某個指定的路徑下文件的位置,並且可以把文件的絕對路徑輸出到終端。註意:如果打算查找根目錄下的文件,則應該使用sudo獲取root許可權。

find 路徑 [選項] 文件名

find /usr -name  "xxx.h" #在/usr中查找所有以.h結尾的文件 
find /tmp -type d       # 在/tmp中查找類型為目錄的文件
find / -name passwd #找出檔名為 passwd 這個文件

查找命令路徑

which命令,在Linux系統中該命令用於定位和查找系統中可執行文件的路徑。它主要用於確定某個命令是否存在以及該命令的完整路徑。

which [選項] 命令名

which ls #查找ls命令的路徑

vim文本編輯器

因為中文編碼有 big5 與utf8 兩種,如果你的文件是使用big5 編碼製作的,但在vim 的終端介面中你使用的是萬國碼(utf8), 由於編碼的不同,你的中文文件內容當然就是一堆亂碼了!

【1】安裝並部署好 vsCode 編程環境,並安裝 vim 插件,試試使用 vi 模式編寫代碼。

直接在 vsCode 中的擴展欄搜索 vim 安裝即可。關於 vi 編輯器:

  • 特點:
    1. vi的改進版本叫vim(vi’s improved version),vi和vim是同一個軟體。
    2. vi其初衷是解放滑鼠,只用鍵盤高效操作所有的編輯任務。
    3. 沒有菜單,操作分成編輯模式和命令模式,除了編輯之外的操作都在命令模式下進行。

Vi有三種工作模式:一般命令模式、編輯模式、指令列命令行模式。

image

一般指令模式(command mode)

作用: ①移動游標 ②搜索與取代 ③刪除字元、刪除整列 ④複製整列、粘貼整列

進入: ①預設進入②在編輯模式或指令列模式中按下 ESC

# ①移動游標
	[Ctrl] + [b]	#向上翻一頁
	[Ctrl] + [f]	#向下翻一頁
	0 或功能鍵[Home] #移動到這一列的最前面字元處
	$ 或功能鍵[End]	 #移動到這一列的最後面字元處
	gg #移動到這個文件的第一行 (常用)
	G #移動到這個文件的最後一行(常用)
    n <Enter> #n 為數字。游標向下移動 n 行(常用)
        
# ②搜索與取代
	/word	#向游標之下尋找一個名稱為 word 的字元串。 (常用)
    :n1,n2s/word1/word2/g   #n1 與 n2 為數字。在第 n1 與 n2 列之間尋找 word1 這個字元串,並將該字元串取代為 word2 !
    :1,$s/word1/word2/g    #從第一列到最後一列尋找 word1 字元串,並將該字元串取代為 word2 !
    :1,$s/word1/word2/gc   #從第一列到最後一列尋找 word1 字元串,並將該字元串取代為 word2 !且在取代前顯示提示字元給用戶確認 	
    					 #(confirm) 是否需要取代!(常用)
        
# ③刪除字元、刪除整列
	見下表
命令 效果
yy 複製游標所在的那一整行
nyy n為數字。複製游標所在的向下 n 列,例如 20yy 則是複製 20 列(常用)
p 將已複製的數據在游標下一列貼上
P 貼在游標上一列
X 向前刪除一個字元(相當於 [backspace] 亦即是退格鍵)
x 向後刪除一個字元 (相當於 [del] 按鍵)
dd 刪除游標所在的那一整行
ndd n 為數字。刪除游標所在的向下 n 列,例如 20dd 則是刪除 20 列 (常用)
u 撤銷, 複原前一個動作。
. 重覆前一個動作的意思
ctrl+r 重做上一個動作
r 替換當前字元
k 游標向上移動
j 游標向下移動
h 游標向左移動
l 游標向右移動(小寫的L)

刪除文本

需要註意的是被刪除的內容並沒有真正刪除,都放在了剪貼板中。將游標移動到指定位置處,按下 "p" 鍵,就可以將剛纔刪除的內容又粘貼到此處。

快捷鍵 功能描述
x 刪除游標所在位置的字元
dd 刪除游標所在行
ndd 刪除當前行(包括此行)後 n 行文本
dG 刪除游標所在行一直到文件末尾的所有內容
D 刪除游標位置到行尾的內容
:a1,a2d 函數從 a1 行到 a2 行的文本內容

複製粘貼

快捷鍵 功能描述
p 將剪貼板中的內容粘貼到游標後
P(大寫) 將剪貼板中的內容粘貼到游標前
y 複製已選中的文本到剪貼板
yy 將游標所在行複製到剪貼板,此命令前可以加數字 n,可複製多行
yw 將游標位置的單詞複製到剪貼板

其他常用

某些情況下,可能需要把兩行進行連接。比如說,下麵的文件中有兩行文本,現在需要將其合併成一行(實際上就是將兩行間的換行符去掉)。可以直接在命令模式中按下 "J" 鍵。

如果不小心誤刪除了文件內容,則可以通過 "u" 鍵來撤銷剛纔執行的命令。如果要撤銷剛纔的多次操作,可以多按幾次 "u" 鍵。

編輯模式(insert mode)

作用: ①以插入或取代來編輯內容

進入使用:

插入模式:i I  o O a A #均可進入編輯模式 退出ESC
	i #在當前游標處插入文本
	I #在當前游標所在行的開頭處插入文本
	O #往上插一行
	o #往下插一行
	A #在當前游標所在行的末尾處插入文本
	a #在當前游標的下一個字元處插入文本

取代模式:
	r #取代一個字元
	R #一直取代, 直到按ESC結束

界面提示: INSERT 或 REPLACE

指令列命令模式command-line mode

作用: ①以插入或取代來編輯內容

進入使用: : / ?

#指令列模式的儲存、離開等指令
	:w 	將編輯的數據寫入硬碟文件中(常用)
	:q 	離開 vi (常用)
	:q! 放棄保存並退出
	:wq 儲存後離開
	:wq! 則為強制儲存後離開 (常用)

#vim 環境的變更
	:set nu 	顯示行號,設定之後,會在每一列的首碼顯示該列的行號
	:set nonu 	與 set nu 相反,為取消行號!

查找內容

:?printf #查找printf

如果在文件中並沒有找到所要查找的字元串,則在文件底部會出現 "Pattern not found" 提示。

在查找過程中需要註意的是,要查找的字元串是嚴格區分大小寫的,如查找 "shenchao" 和 "ShenChao" 會得到不同的結果。如果想忽略大小寫,則輸入命令 ":set ic";調整回來輸入":set noic"。

如果在字元串中出現特殊符號,則需要加上轉義字元 ""。常見的特殊符號有 \、*、?、$ 等。如果出現這些字元,例如,要查找字元串 "10$",則需要在命令模式中輸入 "/10$"。

替換文本

快捷鍵 功能描述
r 替換游標所在位置的字元
R 從游標所在位置開始替換字元,其輸入內容會覆蓋掉後面等長的文本內容,按“Esc”可以結束

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 初識STL STL,(Standard Template Library),即"標準模板庫",由惠普實驗室開發,STL中提供了非常多對信息學奧賽很有用的東西。 vector vetor是STL中的一個容器,可以看作一個不定長的數組,其基本形式為: vector<數據類型> 名字; 如: vector ...
  • 拓展閱讀 資料庫設計工具-08-概覽 資料庫設計工具-08-powerdesigner 資料庫設計工具-09-mysql workbench 資料庫設計工具-10-dbdesign 資料庫設計工具-11-dbeaver 資料庫設計工具-12-pgmodeler 資料庫設計工具-13-erdplus ...
  • .NET 部署 IIS 的簡單步驟一: 下載 dotnet-hosting-x.y.z-win.exe ,下載地址:.NET Downloads (Linux, macOS, and Windows) (microsoft.com) .NET 部署 IIS 的簡單步驟二: 選擇對應的版本,點擊進入詳 ...
  • 在處理大型Excel工作簿時,有時候我們需要在工作表中凍結窗格,這樣可以在滾動查看數據的同時保持某些行或列固定不動。凍結窗格可以幫助我們更容易地導航和理解複雜的數據集。相反,當你不需要凍結窗格時,你可能需要解凍它們以獲得完整的視野。 下麵將介紹如何使用免費.NET庫通過C#實現凍結Excel視窗以鎖 ...
  • 在 Avalonia 中,樣式是定義控制項外觀的一種方式,而控制項主題則是一組樣式和資源,用於定義應用程式的整體外觀和感覺。本文將深入探討這些概念,並提供示例代碼以幫助您更好地理解它們。 樣式是什麼? 樣式是一組屬性,用於定義控制項的外觀。它們可以包括背景色、邊框、字體樣式等。在 Avalonia 中,樣 ...
  • 引言 上一篇我們創建了一個Sample.Api項目和Sample.Repository,並且帶大家熟悉了一下Moq的概念,這一章我們來實戰一下在xUnit項目使用依賴註入。 Xunit.DependencyInjection Xunit.DependencyInjection 是一個用於 xUnit ...
  • 老周在幾個世紀前曾寫過樹莓派相關的 iOT 水文,之所以沒寫 Nano Framework 相關的內容,是因為那時候這貨還不成熟,可玩性不高。不過,這貨現在已經相對完善,老周都把它用在項目上了——第一個是自製的智能插座,這個某寶上50多塊可以買到,搜“esp32 插座”就能找到。一種是 86 型盒子 ...
  • JWT(JSON Web Token)是一種用於在網路應用之間傳遞信息的開放標準(RFC 7519)。它使用 JSON 對象在安全可靠的方式下傳遞信息,通常用於身份驗證和信息交換。 在Web API中,JWT通常用於對用戶進行身份驗證和授權。當用戶登錄成功後,伺服器會生成一個Token並返回給客戶端 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...