第一章、第二章
查看運行層級
runlevel
目前有7個層級,3是有聯網的多用戶模式,5是配有GUI的多用戶模式,等等
第三章
啟動shell
查看/etc/passwd
文件,可以看到每個用戶的默認shell程序,如:
christine:x:1001:1001::/home/christine:/bin/bash
表示christine這個用戶登錄后,GNU bash shell會自動啟動
bash手冊
man命令根據關鍵詞搜索,man -k keyword
info
help,可以直接用,如help help
,也可以按參數來,大部分命令支持--help
參數,如ls --help
文件系統
/usr 是文件系統的第二層次結構,存放的是一些可共享的只讀數據。
列出文件和目錄
ls有個-R參數,選項不僅顯示了當前目錄下的內容,還顯示了目錄下所有子目錄及其內容
鏈接文件
軟鏈接
例如給data.txt創建一個軟鏈接文件
ln -s data.txt data_txt_link.txt
此時查看data_txt_link.txt文件,此文件是鏈接文件:
lrwxrwxrwx 1 xiaojiao docker 11 Feb 28 15:06 data_txt_link.txt -> ../data.txt
硬鏈接
例如給data.txt創建一個硬鏈接文件
ln ../data.txt data_hard_link.txt
但是不能跨存儲設備創建硬鏈接,否則會有如下類型的報錯:
ln: failed to create hard link './sand.py' => '/mnt/d/learn/test/sand/sand.py': Invalid cross-device link
異同
1 軟鏈接/硬鏈接創建鏈接時,原始文件都必須事先存在
2 軟鏈接相當于創建了快捷方式, ls -i可以看到inode編號不同,硬鏈接創建的是一個獨立的虛擬文件,其中包含了原始文件的信息以及位置。但是兩者就根本而言是同一個文件,inode相同
3 軟鏈接與原始文件文件大小一般不同,因為只是創建了一個指向原始文件的快捷方式,但硬鏈接與原始文件大小相同
4 硬鏈接只能對處于同一存儲設備的文件創造,軟鏈接沒有這個限制
處理文件
創造文件
注意:touch命令創建文件時,如果文件已存在,會改變文件的時間,不會對已存在的文件內容造成任何影響
復制文件
cp復制文件時,新文件的創建時間是復制時的時間,但注意,若目標文件已存在,將不會提醒,直接覆蓋,因此最好加上-i選項
移動mv
移動/重命名命令沒什么好說的,已經很熟悉了,但是要注意,mv操作后,文件的時間以及inode是不變的
mv命令也可以不經過允許就覆蓋已存在的文件,所以建議用-i
處理目錄
略
查看文件內容
查看文件類型
file命令,如:file data.txt
查看整個文件
cat -n 可以顯示行號; -b只給有內容的行加上行號
第四章 更多的bash shell命令
監測程序
探查進程
ps:選項非常多,以下只列出我自己常用的選項的含義:
選項 | 含義 |
---|---|
a | 顯示與任意終端關聯的所有進程(對應,T顯示與當前終端關聯的所有進程) |
r | 僅顯示運行中的進程 |
e | 顯示命令使用的環境變量 |
f | 用層級格式來顯示進程,顯示哪些進程啟動了哪些進程 |
實時檢測進程
top,平均負載三個值分別表示最近1/5/15分鐘的平均負載
結束進程
kill 部分任務會忽略kill 命令,可以使用kill -9 pid 或 kill -s HUP pid
pkill 可以直接使用進程名,如pkill http*
可以kill所有進程名以http開頭的進程
監測磁盤空間
mount/umount
在默認情況下,mount 命令會輸出當前系統已掛載的設備列表,但是mount 命令的默認輸出非常雜亂
umount 略
df
直接df -h,以易讀方式顯示磁盤空間,其他參數不需要記憶
du
du 命令可以顯示某個特定目錄(默認情況下是當前目錄)的磁盤使用情況
讓輸出更清晰易讀的選項:
選項 | 含義 |
---|---|
-c | 顯示所有已列出文件的總大小 |
-h | 按人類易讀格式輸出大小 |
-s | 輸出每個參數的匯總信息 |
處理數據文件
數據排序sort
sort命令將數字視為字符并按標準的字符排序,如1000
會排在2
的前面,要想按照數字排序,使用sort -n,注意,如果文件有多行,sort會按照第一列的數字排序。
常用選項:
選項 | 含義 |
---|---|
-n | 將數字按值排序 |
-c | 不排序,但檢查輸入數據是否有序,無序的話就報告,形如sort: test_sort1.txt:2: disorder: 2 |
-M | 用三字符的月份名按月份排序,如Jan, Feb等 |
-t | 指定字段分隔符 |
-k | 排序鍵從 POS1 位置開始,到 POS2 位置結束(如果指定了 POS2的話) |
-r | 逆序排序(升序變成降序) |
-u | 相當于sort | uniq |
-t -k可以結合使用,例如/etc/passwd 文件,以冒號分隔,按照第三列來排序,可以寫作:
sort -t ':' -k 3 -n /etc/passwd
數據搜索grep egrep
常用選項:
選項 | 含義 |
---|---|
-v | 反向搜索 |
-n | 顯示匹配到的行的行號 |
egrep 命令是 grep 的一個衍生,支持 POSIX 擴展正則表達式,其中包含更多可用于指定匹配模式的字符 | |
其他略 |
數據壓縮
gzip 壓縮,可以正則匹配一次壓縮多個,如gzip test*
gunzip 解壓
數據歸檔
tar,選項很多,但我一般壓縮用zcvf(tar -zcvf test.tar.gz test*,這里是創建了一個名為test.tar.gz的文件,包含test開頭的所有文件和目錄,其實test*這里可以是空格分隔的多個參數,可包含文件或目錄),解壓用zxvf,目前看來夠用了,且使用沒出錯,所以略