1.目錄管理:ls、cd、pwd、mkdir、rmdir、tree
ls
-l:長格式
文件類型:
-:普通文件
d: 目錄文件
b: 塊設備文件(block)
c: 字符設備文件(character)
l: 符號鏈接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket)
文件權限:9位,每3位為一組,每組由rwx(讀、寫、執行)組成。
文件硬連接的次數
文件的屬主(owner)
文件的屬組(group)
文件的大小(size)單位是字節
時間戳(timestamp):最近一次被修改的時間,也就是文件內容被改變的時間
訪問時間:access
修改時間:modify,文件內容發生了改變
改變時間:change,metadata,元數據
-h:做單位轉換(默認字節轉換為kb)(K、M、G)
-a: 顯示以. 開頭的隱藏文件
. 表示當前目錄
.. 表示父目錄
-A:
-d:顯示目錄自身屬性
-i:index node inode(字節號)
-r:逆序顯示
-R:遞歸(recursive)顯示
cd: change directory
家目錄, 主目錄,home directory
cd ~USERNAME:進入指定用戶的家目錄
cd -: 在當前目錄和前一次所在目錄之間來回切換
命令類型:
內置命令(shell內置)
外部命令:在文件系統的某個路徑下有一個與命令名稱相應的可執行文件
type:顯示命令為哪種(內置/外部)類型
pwd:Printing Working directory 當前工作目錄
mkdir :創建空目錄
-p:parent 遞歸創建目錄,需要時創建目錄的上層目錄,但即使這些目錄已存在也不當作錯誤處理
-v:verbose 每次創建目錄都顯示信息
命令行展開:
(a+d)(b+c)=ab+ac+db+dc
{a,d}_{b,c} = a_b, a_c, d_b, d_c
rmdir:刪除目錄(remove directory)
刪除空目錄
-p:parents 刪除指定目錄及其上級文件夾
tree :查看目錄樹
2.文件管理:touch、stat、file、rm、cp、mv、nano
touch:每個文件的訪問時間和修改時間改為當前時間。
如果這個文件不存在則創建該文件文件
-a:只更改訪問時間
-c:--no-create 不創建任何文件
-m:只更改修改時間
-t: STNMP 使用[[CC]yy]MMDDhhmm[.ss]格式的時間而非當前時間
stat
用法:stat [選項]... 文件...
Display file or file system status.
-L, --dereference follow links
-Z, --context print the SELinux security context
-f, --file-system display file system status instead of file status
-c --format=格式 使用指定輸出格式代替默認值,每用一次指定格式換一新行
--printf=格式 類似 --format,但是會解釋反斜槓轉義符,不使用換行作
輸出結尾。如果您仍希望使用換行,可以在格式中
加入"\n"
-t, --terse 使用簡潔格式輸出
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出
有效的文件格式序列(不使用 --file-system):
%a 八進制權限
%A 用可讀性較好的方式輸出權限
%b 計算已分配塊數(參見%B)
%B 以字節為單位輸出%b 所報告的每個塊的大小
%C SELinux 安全環境字符串
%d 十進制設備編號
%D 十六進制設備編號
%f 十六進制原始模式
%F 文件類型
%g 文件的屬組ID
%G 文件的屬組組名
%h 硬鏈接數量
%i Inode 編號
%n 文件名
%N 如果對象是一個符號鏈接,顯示引用到的其它文件名
%o I/O 塊大小
%s 總計大小,以字節為單位
%t 十六進制主設備類型
%T 十六進制子設備類型
%u 文件的屬主ID
%U 文件的屬主用戶名
%x 上次訪問時間
%X 從UNIX 元年起計的上次訪問時間
%y 上次修改時間
%Y 從UNIX 元年起計的上次修改時間
%z 上次更改時間
%Z 從UNIX 元年起計的上次更改時間
有效的文件系統格式序列:
%a 非超級用戶可用的剩余塊數
%b 文件系統的總數據塊數
%c 文件系統中文件節點總數
%d 文件系統中空閒文件節點數
%f 文件系統中空閒塊數
%C SELinux 安全環境字符串
%i 十六進制文件系統ID
%I 允許的文件名最大長度
%n 文件名
%s 塊大小(用於快速傳輸)
%S 基本塊大小(用於塊計數)
%t 十六進制類型描述
%T 可讀性較好的類型描述
ASCII
128不同的字符:
二進制:
2^6=0,63
2^7=0,127
000 0000 - 111 1111
2^16=65536
漢字標准:GB1830、GBK、 GB2312、Unicode
創建文件,可以使用文本編輯器 nano
^是Ctrl
^G 求助
^O 寫入
^R 讀檔
^Y 上頁
^K 剪下文字
^C 游標位置
^X 離開
^J 對齊
^W 搜尋
^V 下頁
^U 還原剪下
^T 拼寫檢查
file:Determine type of file 確定文件類型
rm:刪除文件
-i: 在刪除前需要確認
-f: force 強制刪除。忽略不存在的文件,不提示確定
-r: recursive 遞歸刪除目錄及內容
復制和移動文件
復制文件
cp:copy 將源文件復制至目標文件,或將多個源文件復制至目標目錄。
用法:cp [選項]... [-T] 源文件 目標文件
或:cp [選項]... 源文件... 目錄
或:cp [選項]... -t 目錄 源文件...
-r:遞歸復制目錄及其子目錄內的所有內容
-i: interactive 蓋前詢問(使前面的 -n 選項失效)
-f: 如果目標文件無法打開則將其移除並重試(當 -n 選項)
-p: 等於--preserve=模式,所有權,時間戳
--preserve[=屬性列表保持指定的屬性(默認:模式,所有權,時間戳),如果可能保持附加屬性:環境、鏈接、xattr 等]
-a: 不保留指定的文件屬性,復制前在目標目錄創建來源文件路徑中的所有目錄
移動文件
mv:move 將源文件重命名為目標文件,或將源文件移動至指定目錄。
用法:mv [選項]... [-T] 源文件 目標文件
或:mv [選項]... 源文件... 目錄
或:mv [選項]... -t 目錄 源文件...
3.文本處理:cat、more、less、head、hail、sort、wc、uniq、grep
查看文本
cat、more、less、head、tail
cat:連接並顯示 將[文件]或標准輸入組合輸出到標准輸出。
用法:cat [選項]... [文件]...
-n: --number 對輸出的所有行編號
-E: --show-ends 在每行結束處顯示"$"
分屏顯示
more、less
more:向後翻
less:
翻屏:
向後翻一屏:SPACE
向前翻一屏:b
向後翻一行:ENTER
向前翻一行:k
查找:
/KEYWORD: 向後
n: 下一個
N:前一個
?KEYWORD:向前
n: 下一個
N:前一個
q: 退出
head:查看前n行
tail:查看後n行
-n
tail -f: 查看文件尾部,不退出,等待顯示後續追加至此文件的新內容可以監控日志文件);
文本處理:
cut、join、sed、awk(sed、awk查看單獨文檔)
cut:文本剪切
-d:指定字段分割符(默認是一個空格)
-f:指定要顯示的字段
-f 1,3:第一段和第三段
-f 1-3:第一段到第三段
join:針對每一對具有相同內容的輸入行,整合為一行寫到標准輸出,
默認的內容連接區塊是由第一個空白符代表的分界符號。當文件1
或文件2 都被指定為"-"時,程序將從標准輸入讀取數據。
用法:join [選項]... 文件1 文件2
-a 文件編號 文件編號的值可以是1 或2,分別對應文件1 和 文件2。
此選項用於根據指定文件編號輸出不成對的行目。
-e 字符 將缺失的輸入區塊替換為指定字符
-i, --ignore-case 比較時忽略大小寫
-j 域 等於"-1 域 -2 域"
-o 格式 按照指定格式構造輸出行
-t 字符 使用指定字符作為輸入和輸出的分隔符
-v 文件編號 類似 -a 文件編號,但禁止組合輸出行
-1 域 在文件1 的此域組合
-2 域 在文件2 的此域組合
文本排序:sort
sort:只影響顯示,默認是根據ASIIC的升序排列
-n:按照數值大小升序排序
-r:降序排序
-t:字段分隔符
-k:以哪一個字段進行比較
-u:排序後相同行只顯示一次
-f:排序時忽略字符大小寫
uniq:相同並相鄰行只顯示一次
-d:報告顯示重復的行
-c:顯示文件中某一行重復的次數
文本統計:wc(word count)
行數 單詞數 字節數(包括空格)
-l:只顯示行數
-L:只顯示最長的行包含多少字符
-w:只顯示單詞數
-c:只顯示字節數
-m:只顯示字符數
字符處理命令:tr:轉換或刪除字符
用法:tr [OPTION]... SET1 [SET2]
-d:刪除出現字符集中的所有字符
grep:在每個 FILE 或是標准輸入中查找 PATTERN。
用法: grep [選項]... PATTERN [FILE]...
正則表達式選擇與解釋:
-E, --extended-regexp PATTERN 是一個可擴展的正則表達式(縮寫為 ERE)
-F, --fixed-strings PATTERN 是一組由斷行符分隔的定長字符串。
-G, --basic-regexp PATTERN 是一個基本正則表達式(縮寫為 BRE)
-P, --perl-regexp PATTERN 是一個 Perl 正則表達式
-e, --regexp=PATTERN 用 PATTERN 來進行匹配操作
-f, --file=FILE 從 FILE 中取得 PATTERN
-i, --ignore-case 忽略大小寫
-w, --word-regexp 強制 PATTERN 僅完全匹配字詞
-x, --line-regexp 強制 PATTERN 僅完全匹配一行
-z, --null-data 一個 0 字節的數據行,但不是空行
後面會有單獨的章節介紹sed、awk、grep。