啟用某服務及將某服務加入自啟動
安裝與更新 - 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檔案。
若要指定輸出幾行內容,可以用-nx
,x
用於指定數量。
如: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 切換當前...