Linux系統編程——基礎命令總結

目錄

一、Linux常用命令

1、常用工具

2、目錄和文件命令

3、安裝和卸載軟件命令

4、壓縮包管理

5、文件屬性、用戶用戶組及查找與檢索命令

6、網絡管理命令

7、其他命令

二、Linux vi/vim常用命令

三、Linux下軟件源更新失敗問題解決


一、Linux常用命令

1、常用工具

(1)XshellXShell是一個模塊化模擬器,因爲它提供了許多下拉選項卡。然後,用戶可以單擊這些選項卡以創建完全獨立的窗口,它旨在允許計算機充當終端。

(2)WinSCP :WinSCP 是一個 Windows 環境下使用的 SSH 的開源圖形化 SFTP 客戶端。同時支持 SCP 協議。它的主要功能是在本地與遠程計算機間安全地複製文件,並且可以直接編輯文件。

(3)SecureCRTSecureCRT是一個出色的終端管理器和安全驗證器,可以幫助保護您最敏感的數據。

2、目錄和文件命令

(1)用戶目錄:位於/home/user,稱之爲用戶工作目錄;

(2)ls:是英文單詞list的簡寫,其功能爲列出目錄的內容;

  • ls -a 列出隱藏文件,文件中以開頭的均爲隱藏文件,如:~/.bashrc
  • ls -l 列出文件的詳細信息
  • ls -R 連同子目錄中的內容起列出​

(3)cd:change dir 改變當前所在路徑,使用“cd”命令跳轉到相應目錄。使用時要確認後面的目標目錄是否存在。比如:cd file1;cd file1/file2;cd ..(返回上一級目錄);cd(返回根目錄)

(4)which:查看指定命令所在的路徑,如:which ls 

(5)pwd查看當前所在路徑,當打開終端時,如果需要自己目前在哪一個目錄,可以使用pwd命令,它返回一個絕對的路徑(從根“/”開始的路徑)

(6)mkdir:mkdir用於創建目錄,可以一次創建多個

(7)rmdir:rmdir用於刪除空目錄,可以一次刪除多個

(8)touch:將每個文件的訪問及修改時間都更新爲目前的時間,如果文件不存在則創建一個字節數爲0的文件,它可以產生任何文件,可以是一個空的txt文件,也可以是一個空的zip文件等。

(9)rm:  使用rm命令刪除文件。但是rm不能簡單地刪除目錄。使用“rm - rf”刪除目錄(跟一個參數r),此時,會刪除文件夾和文件夾中的文件。rm -rf bazel*   表示刪除所有以bazel爲前綴的文件。sudo rm -rf protobuf/  表示強制遞歸刪除 protobuf文件夾下的所有文件。

(10)mv使用mv命令重命名文件或移動文件;例:mv A B(將目錄A重命名爲目錄B),mv hello /mnt/f/linux/(將hello文件移動到linux目錄下)

(11)cp:拷貝文件和拷貝目錄;它需要兩個參數:第一個是:從哪裏copy文件,第二個參數是把文件copy到哪裏去例:cp file1 file2,cp file1 /dir,cp file1 ../,cp - r /usr/xu/ /usr/liu/ 表示將/usr/xu目錄中的所有文件及其子目錄拷貝到目錄/usr/liu中。

(12)cat:查看文件內容,輸出到終端,如果cat時沒有跟文件名,則讀標準輸入,遇到\n後,輸出到標準輸出,終端下輸入Ctrl -d表示結束;cat命令是linux下的一個文本輸出命令,通常是用於觀看某個文件的內容的

  • $ cat filename # 顯示整個文件內容

  • $ cat > filename # 創建一個文件,並把標準輸入輸出到filename文件中,以ctrl+d作爲輸入結束 ; cat<<EOF>filename或cat>filename<<EOF,以EOF作爲輸入結束,和ctrl+d的作用一樣

  • $cat file1 file2 > file #將幾個文件合併爲一個文件

(13)more:​查看文本文件的內容,屏幕顯示完一屏就等待用戶按下任意鍵再滾動到下屏,如果中途不想繼續看下去了,可以按Ctrl+C或q終止顯示;more file1;

(14)less:查看文本文件的內容,屏幕顯示完一屏就等待用戶按鍵,用戶可以向上或向下查看,如果中途不想繼續看下去了,可以按Ctrl+C或q終止顯示;

(15)head:顯示指定文件的前面幾行。如果沒有指定文件,將從標準輸入(鍵盤)上讀取。如果沒有指定要顯示的行數,則默認顯示前10行。如果要顯示文件的前5行:head -5 file1;

(16)tail:顯示指定文件的最後幾行。若沒有指定顯示的行或字符數,則默認顯示末尾10行。如果要顯示文件的末5行:tail -5 file1;

(17)wc:​利用 wc 指令我們可以計算文件的 Byte 數、字數、或是列數,若不指定文件名稱、或是所給予的文件名爲“-”,則 wc 指令會從標準輸入設備讀取數據。

  • -c 或–bytes 或–chars 只顯示 Bytes 數。
  • -l 或–lines 只顯示列數。
  • -w 或–words 只顯示字數。

(18)du:查看某個目錄的大小;以M爲單位:du -hm /home/asialee/test;以B爲單位:du -hb ./*;以K爲單位,4K的整倍數:du -hk ./*;

(19)df:查看磁盤的使用情況;

  • ​​df --block-size=GB
  • df--block-size=MB

3、安裝和卸載軟件命令

(Ubuntu環境下安裝和卸載軟件命令)

(1)apt-get:在Linux中,使用apt來安裝軟件包(需要在root權限下操作,用sudo命令)

更新源服務器列表:sudo vi /etc/apt/sources.list

更新完服務器列表後需要更新下源

  • sudo apt-get update 更新源(更新軟件庫),只檢查,不更新(已安裝的軟件包是否有可用的更新,給出彙總報告)
  • sudo apt-get install package 安裝包
  • sudo apt-get remove package 刪除包
  • sudo apt-cache search package 搜索軟件包
  • sudo apt-cache show package 獲取包的相關信息,如說明、大小、版本等
  • sudo apt-get install package --reinstall 重新安裝包
  • sudo apt-get -f install 修復安裝
  • sudo apt-get remove package --purge 刪除包,包括配置文件等
  • sudo apt-get build-dep package 安裝相關的編譯環境
  • sudo apt-get upgrade 更新已安裝的包,更新已安裝的軟件包,用法:sudo apt upgrade 軟件包名。
  • sudo apt-get dist-upgrade 升級系統
  • sudo apt-cache depends package 瞭解使用該包依賴那些包
  • sudo apt-cache rdepends package 查看該包被哪些包依賴
  • sudo apt-get source package 下載該包的源代碼
  • sudo apt-get clean && sudo apt-get autoclean 清理無用的包
  • sudo apt-get check 檢查是否有損壞的依賴
  • bazel clean: 清除bazel編譯的緩存

注:sudo:超級用戶命令, sudo是在Linux命令行廣泛使用的“超級用戶”命令。例如,如果想要進入administrator或root權限,就可以使用sudo命令。

(2)源碼安裝

  • 解壓縮源代碼包
  • cd dir
  • ./configure 檢測文件是否缺失,創建Makefile,檢測編譯環境
  • make 編譯源碼,生成庫和可執行程序
  • sudo make install 把庫和可執行程序,安裝到系統路徑下

4、壓縮包管理

(1)tar:可以解壓一些類型的文件,如.tar,.tar.gz,.tar.bz2等。

  • .tar文件:打包,tar cvf dir.tar dir;解壓,tar xvf dir.tar dir;
  • .tar.gz文件:打包,tar zcvf dir.tar.gz dir;解壓,tar zxvf dir.tar.gz;
  • .tar.bz2文件:打包,tar jcvf dir.tar.bz2 dir;解壓,tar jxvf dir.tar.bz2;

(2)rar

  • rar a -r newdir dir ;打包:把dir壓縮成newdir.rar
  • unrar x newdir.rar ;解包:把newdir.rar解壓縮到當前目錄

(3)zip

  • zip -r dir.zip dir;用zip壓縮文件,比如:“zip -r file.zip file”表示將file目錄壓縮爲file.zip;“zip -r file.zip file1 file2”表示將file1文件和file2文件壓縮成爲file.zip;
  • unzip dir.zip;用unzip解壓zip文件,比如:“unzip file.zip”表示file.zip直接解壓到當前目錄裏面;“unzip file.zip -d dir”表示file.zip解壓到dir目錄裏面;“unzip file\*.zip”表示file1,file2同時解壓到當前目錄裏。

5、文件屬性、用戶用戶組及查找與檢索命令

(1)whoami:查看當前登錄用戶;

(2)chmod:改變文件權限命令

  • chmod [who] [+|-|=] [mode] 文件名:文字設定法

操作對象who可是下述字母中的任一個或者它們的組合

  • u 表示“用戶(user)”,即文件或目錄的所有者。
  • g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。
  • o 表示“其他(others)用戶”。
  • a 表示“所有(all)用戶”。它是系統默認值。

操作符號表示:

  • + 添加某個權限。
  • -取消某個權限。
  • =賦予給定權限並取消其他所有權限(如果有的話)。

設置mode所表示的權限可用下述字母的任意組合

  • r 可讀。
  • w 可寫。
  • x 可執行。
  • chmod [mode] 文件名:數字設定法

數字表示的屬性的含義:

  • 0表示沒有權限,
  • 1表示可執行權限,
  • 2表示可寫權限,
  • 4表示可讀權限

(3)chownchgrp

(4)find:根據文件名查找

(5)grep:根據內容檢索

  • -c:只輸出匹配行的計數。
  • -I:不區分大小寫(只適用於單字符)。
  • -h:查詢多文件時不顯示文件名。
  • -l:查詢多文件時只輸出包含匹配字符的文件名。
  • -n:顯示匹配行及行號。
  • -s:不顯示不存在或無匹配文本的錯誤信息。
  • -v:顯示不包含匹配文本的所有行。
  • -R: 連同子目錄中所有文件一起查找。

比如到系統頭文件目錄下查找所有包含printf的文件:$ grep 'printf' /usr/include -R;

6、網絡管理命令

(1)ifconfig查看IP地址,網卡信息;

  • sudo ifconfig eth0 down:關閉網卡;
  • sudo ifconfig eth0 up:開啓網卡eth0;
  • sudo ifconfig eth0 IP:給eth0配置臨時IP;

(2)ping:ping 主機名/IP地址;使用ping檢查與服務器的連接,比如:“ping www.baidu.com"。

(3)netstat

(4) nslookup

(5)finger:查詢用戶的信息,通常會顯示系統中某個用戶的用戶名、主目錄、停滯時間、登錄時間、登錄shell等信息等。

(6)遠程登陸命令

ssh 是一個用來登錄到遠程機器並執行命令的程序(遠程連接);

ssh user@host //登錄到的機器地址 (ssh [email protected]

ssh -p port user@host // 連接到特定端口的選項 (ssh -p 22 [email protected]

退出遠程連接:exitCtrl+D

7、其他命令

(1)Tap可以自動填充剩餘內容。例如,一個文件爲hello.c,你只要按”vi he+TAB“就可以自動把後面的"llo.c"自動補足。

(2)man,help:如果對某個命令不熟悉,不知怎樣使用,這個命令可以幫助您瞭解命令以及如何使用命令,使用man命令,它顯示命令的手冊頁。例如,“man cd”顯示了cd命令的用法。同樣功能,也可以用“help cd ”來實現。

(3)clear:清屏,使光標和提示符回到屏幕第一行。快捷鍵可以使用:Ctrl -l。

(4)date :顯示當前時間;cal :顯示年月的日曆。

(5)locate: 類似於Windows中的搜索命令一樣。當你不知道保存文件的位置或文件的實際名稱時,此命令非常有用。例如,你想搜索一個含有“hello”的文件,它會給出一個Linux系統中所有包含“hello”的文件的列表。

(6)free -m:查看空閒內存。

(7)uname -a:查看內核版本信息。

(8)nano,vi:編輯命令,nano, vi,都是已經在Linux命令行中安裝的文本編輯器。nano是一個很好的文本編輯器,用顏色表示關鍵字,可以兼容大多數語言,如“nano check.txt”可以創建一個check.tx文件;vi比nano更簡單,也可以用來創建新文件或修改文件。

(9)Ctrl+Z強制退出。

(10)sudo halt,或者 sudo reboot,重啓系統 。

二、Linux vi/vim常用命令

vi/vim 基本共分爲三種模式,分別是命令模式(Command mode)輸入模式(Insert mode)底線命令模式(Last line mode)

vi/vim 常用按鍵說明

1、一般模式主要有光標移動、搜索替換和刪除複製粘貼等

(1)移動光標的方法

移動光標的方法
h 或 向左箭頭鍵(←) 光標向左移動一個字符
j 或 向下箭頭鍵(↓) 光標向下移動一個字符
k 或 向上箭頭鍵(↑) 光標向上移動一個字符
l 或 向右箭頭鍵(→) 光標向右移動一個字符
如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起的,因此可以使用這四個按鈕來移動光標。 如果想要進行多次移動的話,例如向下移動 30 行,可以使用 "30j" 或 "30↓" 的組合按鍵, 亦即加上想要進行的次數(數字)後,按下動作即可!
[Ctrl] + [f] 屏幕『向下』移動一頁,相當於 [Page Down]按鍵 (常用)
[Ctrl] + [b] 屏幕『向上』移動一頁,相當於 [Page Up] 按鍵 (常用)
+ 光標移動到非空格符的下一行
- 光標移動到非空格符的上一行
n<space> 那個 n 表示『數字』,例如 20 。按下數字後再按空格鍵,光標會向右移動這一行的 n 個字符。例如 20<space> 則光標會向後面移動 20 個字符距離。
0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字符處 (常用)
$ 或功能鍵[End] 移動到這一行的最後面字符處(常用)
G 移動到這個檔案的最後一行(常用)
nG n 爲數字。移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的第 20 行(可配合 :set nu)
gg 移動到這個檔案的第一行,相當於 1G 啊! (常用)
n<Enter> n 爲數字。光標向下移動 n 行(常用)

(2)搜索替換

搜索替換
/word 向光標之下尋找一個名稱爲 word 的字符串。例如要在檔案內搜尋 vbird 這個字符串,就輸入 /vbird 即可! (常用)
?word 向光標之上尋找一個字符串名稱爲 word 的字符串。
n 這個 n 是英文按鍵。代表重複前一個搜尋的動作。舉例來說, 如果剛剛我們執行 /vbird 去向下搜尋 vbird 這個字符串,則按下 n 後,會向下繼續搜尋下一個名稱爲 vbird 的字符串。如果是執行 ?vbird 的話,那麼按下 n 則會向上繼續搜尋名稱爲 vbird 的字符串!
N 這個 N 是英文按鍵。與 n 剛好相反,爲『反向』進行前一個搜尋動作。 例如 /vbird 後,按下 N 則表示『向上』搜尋 vbird 。
使用 /word 配合 n 及 N 是非常有幫助的!可以讓你重複的找到一些你搜尋的關鍵詞!
:n1,n2s/word1/word2/g n1 與 n2 爲數字。在第 n1 與 n2 行之間尋找 word1 這個字符串,並將該字符串取代爲 word2 !舉例來說,在 100 到 200 行之間搜尋 vbird 並取代爲 VBIRD 則:
『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g 或 :%s/word1/word2/g 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !(常用)
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !且在取代前顯示提示字符給用戶確認 (confirm) 是否需要取代!(常用)

(3) 刪除、複製和粘貼

刪除、複製與貼上
x, X 在一行字當中,x 爲向後刪除一個字符 (相當於 [del] 按鍵), X 爲向前刪除一個字符(相當於 [backspace] 亦即是退格鍵) (常用)
nx n 爲數字,連續向後刪除 n 個字符。舉例來說,我要連續刪除 10 個字符, 『10x』。
dd 刪除遊標所在的那一整行(常用)
ndd n 爲數字。刪除光標所在的向下 n 行,例如 20dd 則是刪除 20 行 (常用)
yy 複製遊標所在的那一行(常用)
nyy n 爲數字。複製光標所在的向下 n 行,例如 20yy 則是複製 20 行(常用)
p, P p 爲將已複製的數據在光標下一行貼上,P 則爲貼在遊標上一行! 舉例來說,我目前光標在第 20 行,且已經複製了 10 行數據。則按下 p 後, 那 10 行數據會貼在原本的 20 行之後,亦即由 21 行開始貼。但如果是按下 P 呢? 那麼原本的第 20 行會被推到變成 30 行。 (常用)
u 復原前一個動作。(常用)
[Ctrl]+r 重做上一個動作。(常用)
這個 u 與 [Ctrl]+r 是很常用的指令!一個是復原,另一個則是重做一次~ 利用這兩個功能按鍵,你的編輯,嘿嘿!很快樂的啦!
. 不要懷疑!這就是小數點!意思是重複前一個動作的意思。 如果你想要重複刪除、重複貼上等等動作,按下小數點『.』就好了! (常用)

2、一般模式切換到編輯模式的可用的按鈕說明

進入輸入或取代的編輯模式
i, I 進入輸入模式(Insert mode):
i 爲『從目前光標所在處輸入』, I 爲『在目前所在行的第一個非空格符處開始輸入』。 (常用)
a, A 進入輸入模式(Insert mode):
a 爲『從目前光標所在的下一個字符處開始輸入』, A 爲『從光標所在行的最後一個字符處開始輸入』。(常用)
o, O 進入輸入模式(Insert mode):
這是英文字母 o 的大小寫。o 爲『在目前光標所在的下一行處輸入新的一行』; O 爲在目前光標所在處的上一行輸入新的一行!(常用)
r, R 進入取代模式(Replace mode):
r 只會取代光標所在的那一個字符一次;R會一直取代光標所在的文字,直到按下 ESC 爲止;(常用)
上面這些按鍵中,在 vi 畫面的左下角處會出現『--INSERT--』或『--REPLACE--』的字樣。 由名稱就知道該動作了吧!!特別注意的是,我們上面也提過了,你想要在檔案裏面輸入字符時, 一定要在左下角處看到 INSERT 或 REPLACE 才能輸入喔!
[Esc] 退出編輯模式,回到一般模式中(常用)

 3、一般模式切換到指令行模式的可用的按鈕說明

指令行的儲存、離開等指令
:w 將編輯的數據寫入硬盤檔案中(常用)
:w! 若文件屬性爲『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案權限有關啊!
:q 離開 vi (常用)
:q! 若曾修改過檔案,又不想儲存,使用 ! 爲強制離開不儲存檔案。
注意一下啊,那個驚歎號 (!) 在 vi 當中,常常具有『強制』的意思~
:wq 儲存後離開,若爲 :wq! 則爲強制儲存後離開 (常用)
:w [filename] 將編輯的數據儲存成另一個檔案(類似另存新檔)
:r [filename] 在編輯的數據中,讀入另一個檔案的數據。亦即將 『filename』 這個檔案內容加到遊標所在行後面
:n1,n2 w [filename] 將 n1 到 n2 的內容儲存成 filename 這個檔案。

4、vim的環境變更

vim 環境的變更
:set nu 顯示行號,設定之後,會在每一行的前綴顯示該行的行號
:set nonu 與 set nu 相反,爲取消行號!

 5、vim 中批量添加註釋

方法一 :塊選擇模式

批量註釋:

Ctrl + v 進入塊選擇模式,然後移動光標選中你要註釋的行,再按 Shift+i 進入行首插入模式輸入註釋符號如 // 或 #,輸入完畢之後,按兩下 ESCVim 會自動將你選中的所有行首都加上註釋,保存退出完成註釋。

取消註釋:

Ctrl + v 進入塊選擇模式,選中你要刪除的行首的註釋符號,注意 // 要選中兩個,選好之後按 d 即可刪除註釋,ESC 保存退出。

方法二: 替換命令

批量註釋:

使用下面命令在指定的行首添加註釋。使用名命令格式: :起始行號,結束行號s/^/註釋符/g(注意冒號)。

取消註釋:

使用名命令格式: :起始行號,結束行號s/^註釋符//g(注意冒號)。

例子:

  • 在 10 - 20 行添加 // 註釋 :10,20s#^#//#g
  • 在 10 - 20 行刪除 // 註釋 :10,20s#^//##g
  • 在 10 - 20 行添加 # 註釋 :10,20s/^/#/g
  • 在 10 - 20 行刪除 # 註釋 :10,20s/#//g

三、Linux下軟件源更新失敗問題解決

Ubuntu18.04LTS 設置失效,配置軟件源,軟件源更新失敗:無法安全地用該源進行更新 ,錯誤如下:

解決方法如下:

1、下載Ubuntu對應版本的鏡像源

Ubuntu鏡像源下載   

注意:Ubuntu版本要和本地的版本對應。

2、進入文件所在目錄,把下載的 sources.list 文件移動到 /etc/apt/ 目錄下覆蓋原來的 sources.list 。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章