創建目錄 mkdir
創建文件 touch
刪除文件 rm 刪除目錄 rm -r -f 表示強制刪除 常用rm -rf
cp 複製 複製目錄要 -i
mv 移動目錄 重命名。 rename 重命名。
文件查看命令: cat tac less more head tail
這幾個的快捷鍵用的比較少。我主要用的是 回車鍵 空格鍵 還有方向鍵 查看。more 空格鍵分屏看 回車鍵 一行一行看less B 上翻 f 下翻 空格 下翻 回車一 行 一行
/ 支持查看時搜索。 n向下翻 N向上
文件的目錄屬性。d目錄 - 文件或者執行程序 l 鏈接文件 b塊設備 (例如硬盤) c 串設備。鼠標 鍵盤類
chmod 更改文件 目錄權限
chown 更改文件或目錄的 所有者 或所屬組 chown user:group xxx
目錄默認權限 755 文件 默認644 usmask 022
chattr 隱藏屬性。 chattr +a 文件不能修改 刪除 只能追加 chattr +a file chattr -a file
chattr +i 不能修改 刪除。 chattr +i file chattr -i file
lsattr 能查看隱藏權限。 lsattr file
suid sgid stick 這三個權限有點難。 只記得suid 用於能指向的二進制文件。 例如 passwd 能臨時擁有root的權限
查找命令 : which whereis 能查找命令的絕對路徑
find -name -size -user -exec -xargs -atime ctime mine
例 find / -user zhangyong -size +100M -exec rm -rf {} \;
find / -mtime +30 -type d -exec mv -r {} /tmp \;
find /root/ -cmin -30 |xargs ls -l
atime 執行過的 或者訪問過的時間
mtime 創建時間
ctime 修改過屬性 例如 屬主 權限時間。 atime 天數單位 amin 小時單位
stat 能看查看文件的三個屬性。 access modify change
鏈接文件: 軟鏈接 ln -s 最好加絕對路徑。 硬鏈接 不用 -s 。 硬鏈接不能跨分區。只能用在文件,indoe 號 一樣。硬鏈接兩個文件能同時更新。
用戶名文件: /etc/passwd
密碼文件:/etc/shadow
增加用戶: useradd -g 指定用戶的組 -M 不創建用戶家目錄 -d 自定義家目錄 -G加入某附屬組
刪除用戶: userdel -r 刪除用戶的家目錄
修改用戶屬性。 usermod -g 組屬性 -u uid
讓某個用戶加入某個組 gpasswd -a -d 從某個組 刪除用戶
passwd 修改用戶密碼 passwd --stdin 明文修改密碼 可用於shell腳本里面。
su切換用戶。 su - 切換用戶的時候 切換用戶環境。
sudo 配置文件。直接用visudo 修改。 sudo -l 列出當前用戶的sudo權限。
df 查看已掛載的磁盤信息。
du 查看文件的使用情況。
fdisk -l 查看磁盤信息。 格式化磁盤。mkfs.ext4
mount 掛載磁盤 umount 卸載磁盤。
/etc/fstab 分區表信息。 blkid 查看磁盤的uuid
vim 三種模式。 一般模式 光標移動。h左 j下 k上 l右 yy複製 dd剪貼刪除 pp 粘貼 v可視化選擇。x刪除 y複製 d剪切刪除
x向後刪除一個字符 X向前刪除一個字符 dw 刪除一個單詞
i 插入 a 在光標後插入 A 在行尾插入
命令行模式 / name ?name 搜索n向下 N向上翻
:/ 1,10s/root/ROOT/ 替換 每行第一個toot 加上g 全局替換。 加上 -c 有選擇替換
set nu 顯示行號。 set nonu 不顯示行號。
gzip 壓縮。 gzip finename gunzip 解壓縮 gunzip filename.gz
bzip2 壓縮 bzip2 filename bunzip2 bunzip2 ffilename.bz2
xz 壓縮 xz filename unxz unxz filename.xz
tar -cvf 打包 tar -xvf 解包 -c 制定路徑
tar -zcvf 打包壓縮 tar -zxvf 解包 gzip -tf 查看包內容
tar -jcvf tar -jxvf bzip2
tar -Jcvf tar -Jxvf xz
shell編程入門: 1.特性 !!表示上一條命令。 !n 表示執行第n條命令 !pwd 表示執行最近一條以pw開頭的命 alias 命令別名。unalias 取消別名。 當前用戶永久生效。vi ~/.bashrc 全局。vi /etc/bashrc 重定向 : 正確重定向 > 錯誤重定向 2> 追加 >> 2>> &> 正確 錯誤同時輸出。 &>> 正確錯誤 同時追加 命令 >>文件1 2>>文件2 把正確的追加到文件1 把錯誤的追加到文件2 變量 echo $PATH env 列出系統預設的環境變量 set 列出系統預設 和自定義的變量 變量配置文件:全局 /etc/profile 在末行加入 exprot myname=zhangyong 然後運行 source /etc/profile 當前用戶: ~/.bashrc 多命令執行順序。 ;分號。 多命令順序執行 無邏輯關係。 && 命令1&&命令2 邏輯與 1正確執行 2 執行 1不正確執行。 2不執行 || 邏輯或 命令1 || 命令2 1 執行 2不執行 1不執行 2執行 通配符 ?表示一個任意字符 * 0個或任意多個字符 [] 匹配括號任意一個字符 [abc] 可以是a 可以是c 可以是b [-] 一段範圍。 [^ ] 邏輯非 |
cat命令-d 後面制定分隔符 -f 指定第幾段 -c 後面 sort 排序 -t 分隔符 -n 使用純數字排列 -r反向排序 uniq 去重複 常用選項 -c 統計重複的行 把行數寫在前面。 tr 替換字符 -d 刪除某個字符 -d後面跟要刪除的字符 -s 把重複的字符去掉。 split 切割文檔 -b 按大小分割 單位byte -l 按行數來分割文檔 grep 過濾 grep -n ‘root’ 過濾帶有root 的行 grep -n -v 'root' 過濾不帶root的行。 -v 取反 grep '[0-9]' 過濾帶有數字的行 grep -v '[0-9]' 過濾不帶數字的行 grep -v '^#' 過濾以#號開頭的行 grep -v '^$' 過濾所有空行 grep '^[a-Z]' 過濾字母開頭的行 grep '^[^0-9]' 過濾非數字開頭的行 grep 'r.t' grep 'r*t' 過濾一個 或多個字符 sed 命令 sed -n '1.10'p 打印1到10行 sed -n '/root/'p 打印含有root 的行 -e 能實現多個任務 -i 能直接修改文件的內容 sed '/root/d' 刪除含有root 的行 d 刪除動作 sed '1,10s/root/ROOT/g' 1到10行的root替換成ROOT sed 's/[0-9]//g' 刪除所有的數字 sed 's/[^0-9]//g' 刪除所有的非數字 awk 命令 awk -F : '{print $1}' -F 指定分割符號 不用 -F 表示用空格做分隔符 awk '/oo/' test.txt 匹配oo的行 awk -F : '$1~/oo/' 1.txt 針對第一個$1 匹配。 條件操作符 == > < != >= <= awk -F : '$3>="500"' 第三段大於等於500的行 awk -F : '$7!="/sbin/nologin"' 1.txt 第7段不等於/sbin/nologin 的行 NF 段數 NR 行數 |