質量團隊 Linux 平常操做培訓,提高團隊總體 Linux 水平。php
注: 如下全部命令都是在 Centos
操做系統來進行演示。html
詳見: Linux 幫助命令及工具java
命令 | 說明 |
---|---|
useradd |
建立一個新用戶或更新默認新用戶信息 |
usermod |
修改一個用戶帳戶 |
userdel |
刪除用戶帳戶和相關文件 |
passwd |
修改用戶密碼 |
chage |
更改用戶密碼過時信息 |
id |
顯示真實和有效的 UID 和 GID |
su |
切換用戶 |
sudo |
以系統管理者身份執行指令 |
w |
顯示已經登陸的用戶以及他們在作什麼 |
who |
顯示已經登陸的用戶 |
who am i |
顯示實際用戶 |
whoami |
顯示有效用戶 |
groupadd |
建立一個新組 |
groupmod |
修改組信息 |
groupdel |
刪除一個組 |
gpasswd |
將用戶加入或刪除組 |
newgrp |
切換用戶組 |
newusers |
批量更新和建立新用戶 |
chpasswd |
批量更新密碼 |
# 建立組 $ groupadd daodaotest2 # 修改組名 $ groupmod -n daodaotest daodaotest2 # 建立用戶 $ useradd daodaotest # 指定參數建立用戶,-u uid;-g 用戶組名;-G 附加組;-d 主目錄;-c 用戶描述;-s shell $ useradd -u 550 -g daodaotest -G root -d /home/daodaotest -c "test user" -s /bin/bash daodaotest # 修改用戶信息 $ usermod -c "update test user" daodaotest # 查看用戶和組信息 $ id daodaotest uid=550(daodaotest) gid=1009(daodaotest) 組=1009(daodaotest),0(root) # 設置用戶密碼 $ passwd daodaotest # 查看用戶密碼 $ passwd -S daodaotest 或 $ chage -l daodaotest # 僅切換用戶 $ su daodaotest # 切換用戶,並同時切換環境變量 $ su - daodaotest # 以 root 身份安裝軟件 $ sudo yum install jq -y # 查看當前有效用戶 $ whoami # 查看當前實際用戶 $ who am i # 退出 $ exit # 刪除用戶,強制刪除並刪除與用戶的相關文件(home、郵件等) $ userdel -rf daodaotest # 刪除組 $ groupdel daodaotest
# Linux 用戶文件: $ cat /etc/passwd # 用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:默認 Shell pe:x:1001:1001::/home/pe:/bin/bash # Linux 用戶影子文件 $ cat /etc/shadow # 用戶名:加密密碼:最後一次修改時間:最小修改時間間隔:密碼有效期:密碼須要變動前的警告天數:密碼過時後的寬限時間:帳號失效時間:保留字段 pe:$6$rounds=656000$qX8tIa/2E34tao1V$6xKEJc9pGhY/lqLFKPuzqt0Kd8nROPy3RdGS4a7HyCN.upgPfYZ.eF453P6.Y4u0GifVui8KdMPW4NdjhW1cn0:18239:0:99999:7::: # Linux 用戶組文件 $ cat /etc/group # 組名:口令:組標識號:組用戶列表 pe:x:1001:peftp,ruiftp,hx # Linux 組影子文件 $ cat /etc/gshadow # 組名:加密密碼:組管理員:組附加用戶列表 pe:!::peftp,ruiftp,hx
文件類型node
文件類型 | 說明 |
---|---|
b | 面向塊的設備文件(block-oriented device file) |
c | 面向字符的設備文件(charcter-oriented device file) |
d | 目錄(directroy) |
f | 文件(regular file) |
l | 符號連接文件(symbolic link) |
p | 管道文件(pipe)或命名管道文件(named pipe) |
命令列表linux
命令 | 說明 |
---|---|
ls |
列目錄內容 |
cd |
改變工做目錄 |
pwd |
返回當前的工做目錄 |
mkdir |
創建目錄 |
rmdir |
刪除目錄 |
touch |
建立新文件、修改文件權限和時間屬性 |
file |
查看文件類型 |
cp |
複製文件和目錄 |
md5sum |
獲取 md5 值 |
diff |
比較文件 |
mv |
移動 (更名) 文件 |
rm |
移除文件或者目錄 |
tree |
樹狀圖列出目錄 |
cat |
從第一行開始查看文本內容 |
tac |
與 cat 相反,從最後一行開始查看文本內容 |
more |
按頁顯示文本內容 |
less |
與 more 相似,功能跟搶到,提供翻頁、跳轉、查找等命令 |
nl |
添加行號顯示出內容 |
head |
查看文件的前面 N 行,默認爲 10 行 |
tail |
查看文件的後面 N 行,默認爲 10 行 |
wc |
統計行 |
cut |
截取文本 |
split |
切割文件 |
# 長數據格式列出全部目錄,並按時間排序 $ ls -lat # 長數據格式列出全部目錄,並按時間反序排序 $ ls -lart # 長數據格式列出全部目錄,並按大小反序排序 $ ls -larS # 進入 home 目錄 $ cd ~ 或 $ cd # 進入上一次工做目錄 $ cd - # 進入上層目錄 $ cd .. # 顯示當前目錄 $ pwd # 查看軟連接的實際路徑 $ pwd -P # 遞歸建立目錄 $ mkdir -p daodaotest/test # 遞歸刪除目錄 $ rmdir -p daodaotest/test # 建立文本 $ touch 1.txt # 查看文件類型 $ file 1.txt # 複製文件 $ cp 1.txt 2.txt # 查看文件 md5 $ md5sum 1.txt 2.txt # 比較文本 $ diff 1.txt 2.txt # 遞歸複製目錄 $ cp -r daodaotest daodaotest2 # 修改文件名稱 $ mv daodaotest2 daodaotest22 # 移動文件或目錄 $ mv 2.txt daodaotest22 # 刪除文件 $ rm 2.txt # 強制遞歸刪除 $ rm -rf daodaotest # 顯示樹狀目錄和文件 $ tree . # 僅顯示樹狀目錄 $ tree -d . # 顯示指定層級目錄和問題 $ tree -L 2 . # 查看文本內容 $ cat /etc/passwd $ more /etc/passwd $ less /etc/passwd $ nl /etc/passwd # 與 cat 相反,從最後一行開始查看文本內容 $ tac /etc/passwd # 統計行數 $ ls -l | wc -l $ cat /etc/passwd | wc -l # 查看前幾行 $ head -5 /etc/passwd # 動態查看文本內容 $ tail -f /var/log/messages
詳見:Linux 打印文本部分行內容(前幾行,指定行,中間幾行,跨行,奇偶行,後幾行,最後一行,匹配行)正則表達式
命令 | 說明 |
---|---|
which |
在 PATH 路徑中查找命令位置 |
whereis |
程序名查找,只搜索二進制(-b),man 文件(-m),源代碼文件(-s),默認返回全部 |
locate |
從數據庫中 /var/lib/mlocate/mlocate.db 查找文件,默認 |
find |
從磁盤中查找文件 |
grep |
查找文件中符合條件的字符串 |
# 操做 grep 命令 $ which grep alias grep='grep --color=auto' /usr/bin/grep $ whereis grep grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz /usr/share/man/man1p/grep.1p.gz $ locate /bin/grep /usr/bin/grep # 查找全部 .sh 結尾的文件 $ find . -name "*.sh" # 查找當前路徑下的全部目錄 $ find . -type d # 查找當前路徑下的全部文件 $ find . -type f # 查找當前路徑下的全部文件,並列出來 $ find . -type f -exec ls -l {} \ # 查找7天前的以 .log 結果的文件,確認以後刪除 $ find . -name "*.log" -mtime +7 -ok rm {} \; # 查找關鍵字 $ grep root /etc/passwd # 正則表達式查找 $ grep "/.*sh" /etc/passwd # 遞歸(-r) 查找目錄下的全部文件 $ grep -r LANG /etc # 遞歸(-r) 查找目錄下的全部文件,排除指定目錄和文件 $ grep -r --exclude-dir={yum,ssh,profile.d,rc.d,ansible} --exclude=*.conf LANG /etc # 查找關鍵字,並打印前(-B),後(-A),先後(-C)各多少行 $ grep root -C 1 /etc/passwd # 不區分大小寫(-i)查找關鍵字,並打印行號(-n) $ grep -i ROOT -n /etc/passwd # 反向選擇,輸出沒有匹配的行 $ grep -v root /etc/passwd
權限碼shell
權限 | 二進制 | 八進制 | 描述 |
---|---|---|---|
--- | 000 | 0 | 無權限 |
--x | 001 | 1 | 只有執行權限 |
-w- | 010 | 2 | 只有寫入權限 |
-wx | 011 | 3 | 寫和執行權限 |
r-- | 100 | 4 | 讀權限 |
r-x | 101 | 5 | 讀取和執行的權限 |
rw- | 110 | 6 | 讀取的寫入的權限 |
rwx | 111 | 7 | 全部權限 |
常見權限表數據庫
權限 | 說明 |
---|---|
-rw------- (600) | 只有擁有者有讀寫權限 |
-rw-r--r-- (644) | 只有擁有者有讀寫權限;而屬組用戶和其餘用戶只有讀權限 |
-rwx------ (700) | 只有擁有者有讀、寫、執行權限 |
-rwxr-xr-x (755) | 擁有者有讀、寫、執行權限;而屬組用戶和其餘用戶只有讀、執行權限 |
-rwx--x--x (711) | 擁有者有讀、寫、執行權限;而屬組用戶和其餘用戶只有執行權限 |
-rw-rw-rw- (666) | 全部用戶都有文件讀、寫權限 |
-rwxrwxrwx (777) | 全部用戶都有讀、寫、執行權限 |
命令列表json
命令 | 說明 |
---|---|
chmod |
修改文件權限 |
chown |
更改文件屬主,也能夠同時更改文件屬組 |
chgrp |
更改文件屬組 |
umask |
權限掩碼 |
詳見:linux知識點系列之 umaskbash
# 修改文件權限 $ chmod 755 test.txt $ chmod +rw test.txt # 修改文件權限,遞歸(-R)修改 $ chmod -R 755 /tmp/daodaotest # 修改文件屬主用戶和屬組 $ chown jlh.jlh test.txt # 修改文件屬組用戶 $ chgrp jlh test.txt
命令 | 說明 |
---|---|
top |
顯示當前系統正在執行的進程的相關信息 |
ps |
查看進程瞬時狀態 |
kill |
殺死進程 |
killall |
殺死指定名稱的全部進程 |
# 顯示當前進程狀況,輸入 h 查看幫助 $ top # 查看 java 進程 $ ps -ef | grep java # 強制 kill 掉進程 $ kill -9 <pid> # kill 全部進程 $ killall -9 php-fpm
詳見: Linux 查詢應用進程號、端口、文件(知道其中之一查詢其餘)
Linux 常見的壓縮包格式:tar、gz、tar.gz、bz二、tar.bz二、zip
壓縮率通常來講:
tar.bz2 > tar.gz > zip > tar
命令 | 說明 |
---|---|
tar |
tar、tar.gz 壓縮解壓 |
zip |
zip 壓縮 |
unzip |
zip 解壓 |
gzip |
gz 壓縮 |
gunzip |
gz 解壓 |
tar 是最經常使用的解壓縮命令。
參數說明:
-c 創建新的壓縮文件 -r 添加文件到已經壓縮的文件 -u 添加改變了和現有的文件到已經存在的壓縮文件 -x 從壓縮的文件中提取文件 -t 顯示壓縮文件的內容 -z 支持gzip解壓文件 -j 支持bzip2解壓文件 -v 顯示操做過程 -k 保留源文件不覆蓋 -C 切換到指定目錄 -f 指定壓縮文件 --delete 刪除包中文件 --strip-components 去除目錄 --add-file 向包中添加文件
# 歸檔 tar 包,不壓縮 $ tar -cvf test.tar test1.log test2.log $ tar - # 僅查看包中文件,不解壓 $ tar -tvf test.tar # 歸檔並壓縮爲 tar.gz、tar.bz2 $ tar -zcvf test.tar.gz test1.log test2.log $ tar -jcvf test.tar.bz2 test1.log test2.log # 解壓 $ tar -xvf test.tar $ tar -zxvf test.tar.gz $ tar -jxvf test.tar.bz2 # 解壓到指定目錄 $ tar -xvf test.tar -C dir
參數說明:
# zip -d 從壓縮文件內刪除指定的文件。 -f 此參數的效果和指定"-u"參數相似,但不只更新既有文件,若是某些文件本來不存在於壓縮文件內,使用本參數會一併將其加入壓縮文件中。 -j 只保存文件名稱及其內容,而不存聽任何目錄名稱。 -r 遞歸處理,將指定目錄下的全部文件和子目錄一併處理。 -u 更換較新的文件到壓縮文件內。 -v 顯示指令執行過程或顯示版本信息。 -y 直接保存符號鏈接,而非該鏈接所指向的文件,本參數僅在UNIX之類的系統下有效。 - <壓縮效率> 壓縮效率是一個介於1-9的數值。 # unzip -l 顯示壓縮文件內所包含的文件 -j 只保存文件名稱及其內容,而不存聽任何目錄名稱。 -o 以壓縮文件內擁有最新更改時間的文件爲準,將壓縮文件的更改時間設成和該 -v 顯示指令執行過程或顯示版本信息。 -d 指定解壓目錄,目錄不存在會建立
# 打包 test 目錄下的文件 $ zip -r test.zip test/ # 打包 test 目錄下文件,且壓縮包不帶 test 目錄 $ zip -rj test.zip test/ # 指定壓縮比率,數值(1-9)越大,壓縮率越高,耗時越長 $ zip -r8 test.zip test/* # 解壓 zip 包 $ unzip test.zip -d dir # 查看壓縮包中的文件 $ unzip -l test.zip # 查看更多信息,例如crc校驗信息等 $ unzip -v test.zip # 解壓jar包 $ unzip -o java.jar -d dir
參數說明:
-k 保留源文件 -d 解開壓縮文件 -r 遞歸處理,將指定目錄下的全部文件及子目錄一併處理 -v 顯示指令執行過程
# 壓縮 $ gzip test1.log # 解壓 $ gunzip test1.log
命令 | 說明 |
---|---|
df |
報告文件系統磁盤空間的使用狀況 |
du |
報告磁盤空間使用狀況 |
fdisk |
Linux分區表操做工具軟件 |
# 查看磁盤使用狀況,易讀方式 $ df -h # 查看 inode 使用狀況 $ df -i # 查看磁盤佔用空間,易讀方式 $ du -h # 查看本目錄磁盤佔用總大小 $ du -sh # 查看指定層級目錄的大小 $ du -h --max-depth=2 . $ du -h -d 2 . # 查看系統硬盤 $ fdisk -l
微信公衆號:daodaotest