Linux常用操作

2021-10-21 16:59:11 字數 4929 閱讀 3135

啟用某服務及將某服務加入自啟動

安裝與更新 - apt&dpkg

環境變數 - env

檢視歷史輸入的命令 - history

常用的檔案操作命令 - sort&uniq&cut&sed&awk

文字編輯工具vi和nano

文字對比工具 - comm&diff&vimdiff

後台任務 - jobs&bg&fg

查詢程序 - ps

持續輸出檔案內容 - tail

定時執行命令 - watch

別名 - alias

在指定目錄下同時建立多個資料夾,例:在dir目錄下建立三個子資料夾,dir1,dir2,dir3

$ mkdir

dir# 新建乙個資料夾

$ mkdir -p dir/

# 同時新建多個資料夾

which命令可以查詢已經加入$path(環境變數)後的命令的路徑。

$ which nmap

/usr/bin/nmap

# 檢視nmap命令所在路徑

$ which

ls

ls: aliased to ls --color=auto

# ls命令實際執行的是ls --color=auto

locate命令可以快速查詢檔案,locate我理解有點像windows的everything的檔案搜尋工具。

locate是在locate.db中快速查詢,比全盤掃瞄查詢速度快,updatedb命令可以更新locate.db

$ locate xmpp-info.nse

/usr/share/nmap/scripts/xmpp-info.nse

# 查詢xmpp-info.nse檔案

$ sudo updatedb

# 更新locate.db資料庫

find命令功能更豐富,可以查詢指定許可權、使用者、修改時間、檔案大小等,除了查詢檔案外,還支援執行命令。

查詢檔案示例:

$ find / -name filename -type f 2>/dev/null

# 查詢filename檔案,並過濾掉error資訊。

which是在path環境變數中查詢,locate和find都是檔案查詢,locate速度快,find功能更強大。

$ sudo systemctl start ssh

# 啟用ssh服務

$ sudo ss -antlp |

grep sshd

# 查詢ssh服務程序

$ sudo systemctl enable

ssh# 將ssh服務加入開機啟動項

$ systemctl list-unit-files

# 檢視服務狀態及是否開機啟動

$ sudo apt update

# 更新apt本地資料庫

$ sudo apt upgrade

# 更新所有可更新的內容,包括系統更新。

$ sudo apt upgrade nmap

# 若要更新特定工具,則在upgrade後指定需要更新的工具名稱。

$ apt-cache search nmap

# 在apt本地快取資料庫中查詢是否有nmap軟體。

**注意:利用apt-cache search查詢的是軟體包的描述中是否包含搜尋的關鍵字,而非軟體包名詞。**

$ apt show package-name

# 顯示詳情,package-name是完整的軟體包名稱,apt-cache找到某軟體包後,用apt show顯示詳情。

$ apt install package-name

# 安裝指定軟體包

$ apt remove --purge package-name

# 解除安裝指定軟體。--purge引數將刪除所有資料,不指定該引數則保留使用者配置資料。

$ sudo dpkg -i package.deb

# -i引數,執行安裝

env可以檢視詳細的環境變數資訊

echo $path,可以檢視設定的path變數資訊。

echo $home,檢視使用者的home目錄路徑。

echo $pwd,檢視當前所在路徑,跟pwd命令的輸出內容相同。

history命令可以檢視歷史輸入命令。

.bash_history檔案是存放歷史輸入命令的地方。

.bashrc檔案中可以設定歷史命令儲存數量和儲存大小上限,即histsize和histfilesize。

export histtimeformat='%f %t '

可以在顯示歷史命令的時候,同時顯示命令執行的時間。應急排查的時候會有用。

sort&uniq&cut&sed&awk是常用的針對檔案的操作命令,功能不同可以結合起來使用。

$ cat access.log |

cut -d " " -f 1 |

sort

|uniq -c |

sort -urn

1038 208.68.234.99

59 208.115.113.91

22 208.54.80.244

21 99.127.177.95

8 70.194.129.34

1 201.21.152.44

listing

# 如上,將access.log檔案中的ip位址過濾出來(cut),並進行去重(uniq)展示重複出現次數,並排序(sort)。

awk命令不同於cut,可以指定多個字元作為切割的標誌。

$ echo

"this is test and test is this and test."

|awk -f "and"

''this is test test.

# -f引數,指定切割標誌, '' 指定資料切割後的第一塊內容和第三塊內容。

在命令模式下輸入:

nano操作更便捷一些,支援ctrl+c,ctrl+v,ctrl+s,不過nano不一定是系統預設安裝的。

簡單對比兩個檔案的差異。

comm 檔案1 檔案2

輸出結果第一列是檔案1獨有的內容,第二列是檔案2獨有的內容,第三列是兩個檔案共有的內容。

如果只關注第三列共有內容,可以通過「-12」來關閉顯示第一列和第二列的內容。

diff比對內容更詳細。

diff -u file1 file2

"-"表示檔案1中獨有的

"+"表示檔案2中獨有的

其他則是共有的內容

利用vim開啟兩個檔案進行比對,視覺化,更直觀一些。

當前臺執行的持續性任務用「ctrl+z」掛起後,可以使用bg命令切換到後台繼續執行。若有多個任務則bg %num%num是任務編號,不加編號預設最近被掛起的任務。

若希望任務在後台執行,需要在命令的最後加字元「&」。

jobs命令可以檢視正在後台執行或掛起的任務。

fg %num命令可以指定任務返回前台執行,%num為任務編號,也可以用%command,如%ping,將ping任務返回前台。

ps -ef

查詢所有程序的詳細資訊。

ps -fc 程序名

查詢指定程序的資訊。

-e展示所有程序

-c展示指定程序,(大寫c),個人感覺不如用grep過濾好用。

ps aux

還可以查詢到cpu記憶體的占用情況。

tail -f file.log

持續不斷輸出log檔案的內容,監控log檔案。

若要指定輸出幾行內容,可以用-nxx用於指定數量。

如:tail -n11 file.log輸出11行。

不指定-nx,預設輸出10行。

watch -n x 命令

watch用於定期執行指定命令,-n x用於指定時間週期,秒為單位。

如:watch -n 5 ps aux

每五秒執行一次查詢程序。

wget -o localfilename downloadurl

curl -o localfilename downloadurl

alias允許設定命令的別名。對於常用命令,包含多個引數,就可以設定別名來簡化操作。

設定別名時,需要注意避開系統自帶的命令名稱

執行alias不帶引數,可以檢視所有設定的別名。

$ alias ls=

'ls -la --color=auto'

# 設定ls別名,執行命令:ls -la --color=auto

$ unalias

ls# 取消對ls別名的設定

通過alias設定的別名應該只在當前shell視窗下有效,若設定長期有效的,可以在使用者home目錄下的".bashrc"檔案內設定。

Linux常用操作

顯示檔案內容more less head tail cat pg 分頁 檢視檔案cat 檔案拼接合併 cat 檔案1 檔案2 輸出檔案 查詢檔案內容grep 選項 字串 檔案列表 對檔案內容排序sort 比較檔案內容comm 排好序的檔案 diff b忽略空格 b忽略空行 i忽略大小寫 結果中 第乙...

Linux常用操作

mount t cifs o username password nounix,noserverino mount掛載點 mount t cifs o username domain gid 0 uid 0 nounix,noserverino mount掛載點 export ld library ...

Linux常用操作

etc 系統配置 bin 系統程式 dev 裝置檔案,如cd rom,網路藉口,usb等 lib 共享的庫檔案 usr 使用者共享的檔案,如幫助檔案 var 大小可變檔案,如日誌 ls 檢視目錄下的檔案 ls a 檢視目錄下的所有檔案 包括隱藏檔案 ls l 檢視目錄下檔案的詳細資訊 cd 切換當前...