W 5-1, sudo usermod -aG sudo u12345678
一般帳號是沒有 sudo 權限可以執行, 但可將帳號加到 sudo 群組即可擁有該權限, 如果被修改的帳號已經登入, 需要重新登入才會生效喔!
# sudo usermod -aG sudo u12345678
.......
W 5-2, sudo visudo
Linux 系統內描述有關 sudo 相關權限的檔案在 /etc/sudoers, 雖然說可以直接修改該檔案, 但建議使用 sudo visudo 這個指令進行修改, 這樣系統可以針對你的修改內容進行防呆(檢查語法).
# sudo visudo
.......
W 5-3, sudo -lU account_name
查看該帳號可以用 sudo 執行的指令清單, 使用時記得將 accopunt_name 換成你想要查詢的帳號名稱
# sudo -lU account_name
.......
W 5-4, which command_name
這個指令可以用來查看某個指令的檔案位置, 舉例來說: which cp
# which command_name
.......
W 5-5, whereis command_name
這個指令可以用來查看某個指令的檔案與相關檔案的位置, 舉例來說: whereis cp
# whereis cp
.......
W 5-6, locate readme.txt
查找某個檔案的位置, 由於這個指令在查找檔案時是以系統內的快取(/var/lib/mlocate/mlocate.db) 來查找的, 所以速讀極快, 但是當你要查的檔案太新的時候, 可能會來不及更新快取檔案, 因而造成找不到! 這個時候需要使用 sudo updatedb 來對 mlocate.db 進行更新即可.
# locate readme.txt
.......
W 5-7, find
這個指令搜尋時是以整個硬碟裡的資料為主, 所以整體來說會比較耗時, 所以一般來說會比較少用. 另外這個指令的用法有很多, 以下列出幾個比較常用的作為範例;
找在某個目錄下所有 .txt 的檔案
# find /home -name *.txt
找在某個目錄下所有的子目錄
# find /home -type d
找在某個目錄下所有的檔案
# find /home/ubuntu -type f
找出目前所在目錄下大於 10M 的檔案
# find . -size +10M
找出 /home/ 目錄下大於 10M 的檔案
# find /home/ -size +10M
找出目前所在目錄下大於 100M 的檔案並用 ls -l 列印出來
# find . -type f -size +100M -exec ls -l {} \;
W 5-8, tar
這個指令是用來打包與壓縮檔案或目錄的, 可以搭配多個參數來進行所需要的動作, 以下透過範例的方式詳述使用方法;
參數
-c 建立打包擋案
-f 指定檔名
-t 查看打包檔的內容
-x 解開打包檔的內容
-C 指定解開時的目錄
將目錄下所有 log 開頭的檔案打包再一起並存入 /tmp/backup.tar
# tar -cf /tmp/backup.tar log*
將 backup.tar 解壓縮到 /tmp/extract 的目錄下
# tar -xf /tmp/backup.tar -C /tmp/extract
.......
W 5-9, tar with gzip, bzip2, xz
tar 可透過另外的參數來強化打包壓縮率, 範例與說明如下;
使用 gzip 壓縮
使用方法: 在 tar 打包指令中加上 -z
# tar -czf /tmp/backup.tar.gz log*
使用 bzip2 (速度比 gzip 慢) 壓縮
使用方法: 在 tar 打包指令中加上 -j
# tar -cjf /tmp/backup.tar.gz log*
使用 xz 壓縮
使用方法: 在 tar 打包指令中加上 -J
# tar -cJf /tmp/backup.tar.xz log*
.......
補充說明
- gzip, bzip2, xz 也可以單獨使用來壓縮檔案, 但僅限單一檔案,
而且原始檔案會被取代 [ DEMO ]- 壓縮 -v
- 解壓縮 -d
- gzip -v log.txt
- gzip -d log.gz
W 5-10, zip
這個指令在 windows 中非常熟悉, 但是在 linux 系統下有可能沒有支援, 這個時候就需要透過以下指令進行安裝
sudo apt-get install zip
使用方法與範例如下;
範例:將 data 目錄下所有檔案壓儲到 file.zip, 這邊不用加上 .zip (自動)
# zip file data/*
將 data 目錄下所有檔案及副目錄壓儲到 file.zip
# zip -r file data/*
解壓縮
# unzip file.zip 可以加上 ( -d /home/tmp ) 來制定解壓縮後擺放的位置
列出壓縮檔所有內容
# unzip -l file.zip
.......