- ls -d 查看目錄屬性,通常與-l連用
- ls -i 查看i節點(inode)
- ls -t 按修改時間排序(最新修改在上面)
- ls -r 逆序排序
- mkdir -p 遞歸創建文件夾
- cp -p 保留文件屬性複製
- cat -n 查看文件內容(顯示行號)
- tac 倒序查看文件內容
- less 分頁查看文件內容(/關鍵詞:搜索,n/p:查看下一個/上一個)
- head -n N:查看文件前N行,默認N=10
- tail -n N:查看文件後N行,默認N=10
- tail -f 動態查看文件末尾內容
- ln -s 創建軟鏈接
- 軟鏈接文件默認擁有lrwxrwxrwx權限
- 硬鏈接不能跨分區創建、不能針對目錄使用、通過i節點識別
- umask -S 查看新建目錄/文件默認權限,文件默認沒有x權限,抑或
- find 搜索範圍 -name 關鍵詞:全詞匹配搜索文件名,支持*?模糊搜索
- find 搜索範圍 -iname 關鍵詞:忽略大小寫
- find 搜索範圍 -size +xxx 文件大於xxx個數據塊(1個數據塊512B=0.5k)
- 數據塊爲Linux文件最小存儲單位
- find 搜索範圍 -user username:按用戶查找
- find 搜索範圍 -group:按用戶組查找
- find 搜索範圍 -cmin -5:按文件屬性搜索,5min內
- amin:訪問時間access
- cmin:文件屬性change
- mmin:文件內容modify
- find 搜索範圍 -type -f:按文件類型查找(f:文件,d:目錄,l:軟鏈接)
- find 搜索範圍 -user Yolanda -o size -204800
- find 搜索範圍 -name init* -a type -f
- -a 兩個條件同時滿足
- -o 兩個條件滿足其一
- find 搜索範圍 -inum:按i節點查找
- find 搜索範圍 -name 關鍵詞 -exec 命令 {} \; 搜索結果執行命令
- find 搜索範圍 -inum 11111 -exec rm {} \;
- find 搜索範圍 -iname init* -exec ls -l {} \;
- locate 關鍵詞:在文件資料庫中模糊查找文件(文件資料庫定期更新)
- locate -i:忽略大小寫
- updatedb 更新文件資料庫(新建文件無法被查找到,需手動更新)
- /tmp目錄無法被loacate查找到
- which 查看命令所在目錄(別名)
- whereis 查看命令所在目錄 & 幫助文檔所在目錄
- grep 關鍵詞 文件名:文件內容查找
- grep -i 忽略大小寫
- grep -n 顯示行號
- grep --color=auto 搜索結果顏色顯示
- grep -v 反選
- grep -v ^# 文件名 反選以#開頭行(忽略註釋行)
- man 命令/配置文件名稱 查看命令/配置文件的幫助信息
- /關鍵詞:搜索
- man services:查看services配置文件幫助信息(不是配置文件絕對路徑)
- 1:命令幫助
- 5:配置文件幫助
- man 5 passwd:查看passwd配置文件幫助信息
- whatis 命令:查看命令簡短信息
- 命令 --help:查看命令選項信息
- info 命令:查看命令幫助信息
- help shell內置命令:查看shell內置命令幫助信息(e.g. cd, umask, pwd)
- apropose 配置文件:查看配置文件信息
- who 查看登錄用戶
- tty表示本地登錄
- pts表示遠程登錄
- w 查看當前用戶詳細登錄信息
- uptime:Linux連續運行時間
- gzip 文件 壓縮文件
- gunzip 文件.gz 解壓文件
- gzip -d 文件.gz 解壓文件
- gzip 只能壓縮文件,不能壓縮目錄,壓縮文件不保留原文件
- tar -cvf xxx.tar 打包目錄:打包
- tar -czvf xxx.tar.gz 打包目錄:打包 & 壓縮
- tar -xzvf xxx.tar.gz 解包
- zip Linux & Windows均支持
- Linux不支持rar
- zip壓縮比不如gzip
- zip不刪除原文件
- zip xxx.zip 文件:壓縮文件
- zip -r xxx.zip 目錄:壓縮目錄
- unzip xxx.zip 解壓縮(不區分目錄/文件)
- bzip2 -k:產生壓縮文件後保留原文件(-k:keep)
- bzip2 -k 文件:壓縮文件
- tar -cjf xxx.tar.bz2 打包目錄:打包 & 壓縮
- bunzip2 xxx.bz2 解壓
- bzip -d 解壓
- tar -xjf xxx.tar.bz2 解包
CHAPTER 10
- echo 輸出
- echo -e 輸出轉義字符
- echo -e “\e[;31m abcd\e[0m” 紅色輸出abcd
- 30m 黑色
- 31m 紅色
- 32m 綠色
- 33m 黃色
- 34m 藍色
- 35m 洋紅
- 36m 青色
- 37m 白色
- cat -A xxx 查看文件內容,包含隱藏字符
- history -c 清空歷史命令
- history -w 把緩存中的歷史命令寫入歷史命令保存文件~/.bash_history
- 歷史命令默認保存1000條,/etc/profile HISTSIZE
- !n 重複執行第n條命令
- !! 重複執行上一條命令
- !xxx 重複執行最後一條以xxx開頭的命令
- alias 別名=‘原名’
- 別名永久生效 vi ~/.bashrc
- 快捷鍵:
- ctrl + A:光標移到命令行開頭
- ctrl + U:刪除/剪切光標前的字符
- ctrl + K:刪除/剪切光標後的字符
- ctrl + Y:粘貼剪切的內容
- ctrl + R:搜索歷史命令
- ctrl + D:退出當前終端
- 命令 >> 文件 2>&1 正確&錯誤打印重定向到相同文件
- 命令 &>> 文件 正確&錯誤打印重定向到文件
- 命令 &>/dev/null 輸出寫入垃圾箱
- 命令 >> 文件1 2>> 文件2 正確&錯誤打印分別重定向到不同文件
- wc < 文件 輸入重定向統計,ctrl + D結束輸入
- wc -c 統計字節數
- wc -w 統計單詞數
- wc -l 統計行數
- 命令1;命令2 多個命令順序執行
- 命令1&&命令2 邏輯與,1正確執行,2纔會執行
- 命令1||命令2 邏輯或 1不正確執行,2纔會執行
- 命令 && echo yes || echo no
- 命令1 | 命令2 1的正確輸出作爲2 的輸入
- set 查看所有變量
- export 設置環境變量,對所有子shell中生效
- export 變量名=變量值
- export 已定義本地變量
- env 查看所有環境變量
- unset 清空本地變量/環境變量
- PATH 系統查找命令的路徑,冒號分割的路徑列表
- PATH="$PATH":/root/sh PATH變量疊加,臨時生效,重啓後失效
- PS1 定義系統提示符的變量
- sum=$(($1 + (())進行數值運算
- read 接收鍵盤輸入
- read -p 輸出提示信息
- read -t 等待用戶輸入時間
- read -n 接受指定字符數
- read -s 隱藏輸入的數據
- read -t 30 -p "Please input your name: " name 接受輸入保存入變量name
- 算術運算:declare -x cc=bb
- 算術運算:cc=$( expr $aa + $bb )
- 算術運算:cc=$(( $aa + $bb ))
- 算術運算:cc=$[ $aa + $bb ]
- source 配置文件 使配置文件更改生效,不用註銷or重新登錄
- . 配置文件 使配置文件更改生效,不用註銷or重新登錄
- 登錄時執行的配置文件:
- /etc目錄下配置文件,對所有用戶生效
- /etc/profile
- /etc/profile.d/*.sh
- ~/.bash_profile
- ~/.bashrc
- /etc/bashrc
- 註銷時執行的配置文件:~/.bash_logout
- ~/.bash_history
- 本地終端顯示登錄信息:/etc/issue,支持轉義
- 遠程終端顯示登錄信息:/etc/issue.net,不支持轉義
- service sshd restart 重啓ssh服務
- 登錄後顯示登錄信息:/etc/motd
CHAPTER 11
- cut -d 分隔符,默認tab
- cut -f 列號
- printf ‘%s\t’ $(cat test.txt)
- awk ‘{printf $2 “\t” $6 “\n”}’
- df -h | awk ‘{printf $1 “\t” $6 “\n”}’
- awk ‘BEGIN{printf “This is a transcript!”} {print $2}’ BEGIN指定在處理數據前先執行動作,僅執行一次
- FS 指定分隔符
- awk ‘BEGIN{FS=":"} END{print “~~end~~”} {print $1 “\t” $3}’ /etc/passwd END在所有動作後執行