Linux 常用命令記錄
1. 磁盤命令
1.1 查看各個(gè)磁盤大小
df
1.1 查看文件夾所占大小
主要參考博文
# 查看當(dāng)前目錄占用磁盤的大小,并列出子目錄及文件占用磁盤的大小
du
# 查看特定目錄占用磁盤的大小搬素,并列出子目錄及文件占用磁盤的大小
du ~/Downloads
# 查看時(shí)僅輸出總大小隙笆,不輸出子目錄及文件占用磁盤的大小
du -s ~/Downloads
2. 文件夾命令
2.1 制作文件鏈接(軟or硬)
? 制作鏈接的含義是:創(chuàng)造一個(gè)和源文件夾(or文件)保持同步的目標(biāo)文件夾(or目標(biāo)文件)。無論是改動(dòng)源文件夾還是目標(biāo)文件夾安岂,兩者都將保持同步。差異在于帆吻,軟鏈接只會(huì)在指定位置生成一個(gè)源文件夾的鏡像域那,并不占用磁盤空間;硬鏈接則真的會(huì)生成一個(gè)與源文件夾完全一樣的目標(biāo)文件夾猜煮,并保持同步次员。
? 主要參考博文
# 制作鏈接的命令為
ln
# 制作軟鏈接
ln -s source_dir destination_dir
# 制作硬鏈接
ln source_dir destination_dir
Windows 中的鏈接制作(cmd中)
# 目錄軟鏈接 mklink /D destination_dir source_dir # 文件軟鏈接(不加參數(shù)默認(rèn)是文件的軟鏈接) mklink destination_file source_file # 硬鏈接 mklink /H destination_dir source_dir
2.2 壓縮和解壓
2.2.1 zip and unzip
? zip 命令和 unzip 命令是壓縮/解壓的互為對(duì)應(yīng)的命令
? zip 命令參考博文
? unzip 命令參考博文
# zip 壓縮
# 基本用法是:zip [參數(shù)] [打包后的文件名] [打包的目錄路徑]
# 參數(shù):
# -r 將指定的目錄下的所有子目錄以及文件一起處理
# -q 安靜模式,在壓縮的時(shí)候不顯示指令的執(zhí)行過程
zip -r ./data/ ./data.zip
# unzip 解壓
# 和 zip 命令相對(duì)應(yīng)
# 注意參數(shù)為 -d 王带,是小寫d
unzip ./data.zip -d ./data
3. 進(jìn)程管理相關(guān)
3.1 進(jìn)程管理
-
ps
顯示進(jìn)程(一次性)的情況淑蔚,參考 博文 和 博文
# 顯示現(xiàn)行終端機(jī)的所有程序,包括其他用戶的程序 ps a # 顯示所有進(jìn)程 ps -A # 同 A 參數(shù) ps -e # 列出程序時(shí)辫秧,顯示每個(gè)程序真正的指令名稱束倍,不包含路徑,參數(shù)或常駐服務(wù)的表示 ps c # 樹狀結(jié)構(gòu)顯示 ps -H # 以用戶為主的格式來顯示程序狀況 ps u # 列出目前所有的正在內(nèi)存中的程序 ps aux # 最常用的查詢特定進(jìn)程的方法:查詢帶key_str的進(jìn)程,并進(jìn)行特定操作 ps aux | grep key_str
-
top
實(shí)時(shí)動(dòng)態(tài)顯示進(jìn)程(和線程情況)绪妹,參考 百度經(jīng)驗(yàn)
# 顯示所有Linux線程 top -H # 輸出特定進(jìn)程的情況甥桂,進(jìn)程號(hào)為 pid_number top -p pid_number # 輸出 pid_number 進(jìn)程內(nèi)運(yùn)行的線程狀況 top -H -p pid_number
-
htop
top命令的華麗版,參考博文 以及百度經(jīng)驗(yàn)
# 查看所有的進(jìn)程信息邮旷,可以用鼠標(biāo)進(jìn)行點(diǎn)選 # 按F2黄选,再選擇 Display options,可以設(shè)置視圖 # 例如 tree view(將進(jìn)程以樹狀表示)等 htop # 查看用戶"user"的進(jìn)程信息 htop -u user
-
kill
殺不死的僵尸進(jìn)程
# 殺死 pid_number 的進(jìn)程 kill pid_number # 強(qiáng)制殺死 pid_number 的進(jìn)程 kill -9 pid_number # 注意,zombie(僵尸)進(jìn)程無法殺死
Windows 殺死進(jìn)程(cmd)婶肩,其它選項(xiàng)可以參考 博文
#強(qiáng)行終止 pid_number 的進(jìn)程 taskkill /F /PID pid_number
?
待續(xù)
3. 文件搜索
-
find
# 常用格式,pathname是為了指定查找文件的范圍 find pathname -options # 在 庫文件夾 中按照名字尋找特定庫 find /usr/local/lib -name cv2.so # -user: 按照文件屬主查找 # -prune:不在指定的 pathname 中查找 # -perm: 按照文件權(quán)限進(jìn)行查找
-
locate
根據(jù)每天例行工作的contab程序建立的數(shù)據(jù)庫,在數(shù)據(jù)庫中進(jìn)行檢索律歼,檢索字符串是文件(夾)名的一部分即可被檢索出來民镜,貌似無法指定查詢路徑,參考博客
# 根據(jù)數(shù)據(jù)庫來檢索(字符與數(shù)據(jù)庫中的文件名進(jìn)行匹配) locate cv2.so # 立即更新數(shù)據(jù)庫险毁,在/var/lib/slocate/下生成 slocate.db updatedb
-
whereis
和locate一致制圈,從linux文件數(shù)據(jù)庫 /var/lib/slocate/slocate.db 中尋找,文件名是全匹配
測(cè)試發(fā)現(xiàn)畔况,和 locate 相比鲸鹦,很多都找不到即便文件名匹配也找不到
參考博文
# 尋找 numpy whereis numpy
-
which
只能尋找執(zhí)行文件,在PATH變量中尋找
# 查詢 ipython 命令所在的路徑 which ipython
待續(xù)
3. 文本文件處理
3.1 文件分割
-
linux
和下面的cat對(duì)應(yīng)跷跪,采用split命令
# 對(duì)文本文件按照每 10 行進(jìn)行切割馋嗜,切割出來的文件名字是 some.txt.aa, some.txt.ab 等 # 如果不指定 最后的參數(shù),則切割出來的文件是 xaa, xab等 split -l 10 some.txt some.txt. # 對(duì)文件按照大小進(jìn)行切割 # 注意最后的參數(shù)的點(diǎn)不可刪除吵瞻,這代表切割出來的文件的名字是 a.tar.gz.aa, a.tar.gz.ab 等 # 如果不指定 最后的參數(shù)葛菇,則切割出來的文件是 xaa, xab等 split -b 5m a.tar.gz a.tar.gz. # 注意,可以將切割的文件再合并起來,可以檢驗(yàn) a.tar.gz 的大小和 a_copy.tar.gz 完全一致 cat a.tar.gz.a* > a_copy.tar.gz
windows待續(xù)
3.1 txt文件合并
-
windows
將所有的txt文件放在同一文件夾 ./tmp 下听皿,合并之后放在 ./all.txt 中熟呛,參考百度經(jīng)驗(yàn)
實(shí)測(cè)發(fā)現(xiàn) 中文的合并存在亂碼
type ./tmp/*.txt > ./all.txt
-
linux
將同一類型的文件合并到一塊(如果可以合并的話)
cat ./tmp/*.txt > ./all.txt
和sed 配合使用可以參考IBM博客
?