1. 文件管理
ls命令 – 顯示指定工作目錄下的內容及屬性信息
ls 命令是Linux下最常用的指令之一。ls命令為英文單詞 list 的縮寫,正如英文單詞 list 的意思,其功能是列出指定目錄下的內容及其相關屬性信息。
默認狀態下,ls命令會列出當前目錄的內容。而帶上參數后,我們可以用ls做更多的事情。作為最基礎同時又是使用頻率很高的命令,我們很有必要搞清楚ls命令的用法,那么接下來一起看看吧!
語法格式: ls [選項] [文件]
常用參數:
-a顯示所有文件及目錄 (包括以“.”開頭的隱藏文件)
-l使用長格式列出文件及目錄信息
-r將文件以相反次序顯示(默認依英文字母次序)
-t根據最后的修改時間排序
-A同 -a ,但不列出 “.” (當前目錄) 及 “..” (父目錄)
-S根據文件大小排序
-R遞歸列出所有子目錄
參考實例
列出所有文件(包括隱藏文件):
ls -a
列出文件的詳細信息:
ls -l
列出根目錄(/)下的所有目錄:
ls /
列出當前工作目錄下所有名稱是 “s” 開頭的文件 :
ls -ltr s*
列出 /bin 目錄下的所有目錄及文件的詳細信息 :
ls -lR /bin
列出當前工作目錄下所有文件及目錄并以文件的大小進行排序 :
ls -AS
pwd命令 – 顯示當前路徑
pwd命令是“print working directory”中每個單詞的首字母縮寫,其功能正如所示單詞一樣,為打印工作目錄,即顯示當前工作目錄的絕對路徑。
在實際工作中,我們經常會在不同目錄之間進行切換,為了防止“迷路”,我們可以使用pwd命令快速查看當前我們所在的目錄路徑。
語法格式: pwd [參數]
常用參數:
-L顯示邏輯路徑
參考實例
查看當前工作目錄路徑:
pwd
/home/linuxcool
mkdir命令 – 創建目錄
mkdir命令是“make directories”的縮寫,用來創建目錄。
注意:默認狀態下,如果要創建的目錄已經存在,則提示已存在,而不會繼續創建目錄。 所以在創建目錄時,應保證新建的目錄與它所在目錄下的文件沒有重名。 mkdir命令還可以同時創建多個目錄,是不是很強大呢?
語法格式 : mkdir [參數] [目錄]
常用參數:
-p遞歸創建多級目錄
-m建立目錄的同時設置目錄的權限
-z設置安全上下文
-v顯示目錄的創建過程
參考實例
在工作目錄下,建立一個名為 dir 的子目錄:
mkdir dir
在目錄/usr/linuxcool下建立子目錄dir,并且設置文件屬主有讀、寫和執行權限,其他人無權訪問
mkdir -m 700 /usr/linuxcool/dir
同時創建子目錄dir1,dir2,dir3:
mkdir dir1 dir2 dir3
遞歸創建目錄:
mkdir -p linuxcool/dir
cp命令 – 復制文件或目錄
cp命令可以理解為英文單詞copy的縮寫,其功能為復制文件或目錄。
cp命令可以將多個文件復制到一個具體的文件名或一個已經存在的目錄下,也可以同時復制多個文件到一個指定的目錄中。
語法格式:cp [參數] [文件]
常用參數:
-f若目標文件已存在,則會直接覆蓋原文件
-i若目標文件已存在,則會詢問是否覆蓋
-p保留源文件或目錄的所有屬性
-r遞歸復制文件和目錄
-d當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄
-l對源文件建立硬連接,而非復制文件
-s對源文件建立符號連接,而非復制文件
-b覆蓋已存在的文件目標前將目標文件備份
-v詳細顯示cp命令執行的操作過程
-a等價于“dpr”選項
參考實例
復制目錄:
cp -R dir1 dir2/
將文件test1改名為test2:
cp -f test1 test2
復制多個文件:
cp -r file1 file2 file3 dir
交互式地將目錄 /usr/linuxcool 中的所有.c文件復制到目錄 dir 中
cp -r /usr/linuxcool/*.c dir
mv命令 – 移動或改名文件
mv命令是“move”單詞的縮寫,其功能大致和英文含義一樣,可以移動文件或對其改名。
這是一個使用頻率超高的文件管理命令,我們需要特別留意它與復制的區別:mv與cp的結果不同。mv命令好像文件“搬家”,文件名稱發生改變,但個數并未增加。而cp命令是對文件進行復制操作,文件個數是有增加的。
語法格式:mv [參數]
常用參數:
-i若存在同名文件,則向用戶詢問是否覆蓋
-f覆蓋已有文件時,不進行任何提示
-b當文件存在時,覆蓋前為其創建一個備份
-u 當源文件比目標文件新,或者目標文件不存在時,才執行移動此操作
參考實例
將文件file_1重命名為file_2:
mv file_1 file_2
將文件file移動到目錄dir中 :
mv file /dir
將目錄dir1移動目錄dir2中(前提是目錄dir2已存在,若不存在則改名):
mv /dir1 /dir2
將目錄dir1下的文件移動到當前目錄下:
mv /dir1/* .
2. 文檔編輯
cat命令 – 在終端設備上顯示文件內容
Linux系統中有很多個用于查看文件內容的命令,每個命令又都有自己的特點,比如這個cat命令就是用于查看內容較少的純文本文件的。cat這個命令也很好記,因為cat在英語中是“貓”的意思,小貓咪是不是給您一種嬌小、可愛的感覺呢?
注意:當文件內容較大時,文本內容會在屏幕上快速閃動(滾屏),用戶往往看不清所顯示的具體內容。因此對于較長文件內容可以按Ctrl+S鍵,停止滾屏;以及Ctrl+Q鍵可以恢復滾屏;而按Ctrl+C(中斷)鍵則可以終止該命令的執行?;蛘邔τ诖笪募?,干脆用more命令吧!
語法格式:cat [參數] [文件]
常用參數:
-n顯示行數(空行也編號)
-s顯示行數(多個空行算一個編號)
-b顯示行數(空行不編號)
-E每行結束處顯示$符號
-T將TAB字符顯示為 ^I符號
-v使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e等價于”-vE”組合
-t 等價于”-vT”組合
-A等價于 -vET組合
–help顯示幫助信息
–version顯示版本信息
參考實例
查看文件的內容:
cat filename.txt
查看文件的內容,并顯示行數編號:
cat -n filename.txt
查看文件的內容,并添加行數編號后輸出到另外一個文件中:
cat -n linuxcool.log > linuxprobe.log
清空文件的內容:
cat /dev/null > /root/filename.txt
持續寫入文件內容,碰到EOF符后結束并保存:
cat > filename.txt <<EOF
> Hello, World
> Linux!
> EOF
將軟盤設備制作成鏡像文件:
cat /dev/fd0 > fdisk.iso
echo命令 – 輸出字符串或提取Shell變量的值
echo命令用于在終端設備上輸出字符串或變量提取后的值,這是在Linux系統中最常用的幾個命令之一,但操作卻非常簡單。
人們一般使用在變量前加上$符號的方式提取出變量的值,例如:$PATH,然后再用echo命令予以輸出?;蛘咧苯邮褂胑cho命令輸出一段字符串到屏幕上,起到給用戶提示的作用。
語法格式:echo [參數] [字符串]
常用參數:
-n不輸出結尾的換行符
-e “\a”發出警告音
-e “\b”刪除前面的一個字符
-e “\c”結尾不加換行符
-e “\f”換行,光標扔停留在原來的坐標位置
-e “\n”換行,光標移至行首
-e “\r”光標移至行首,但不換行
-E禁止反斜杠轉移,與-e參數功能相反
—version查看版本信息
–help查看幫助信息
參考實例
輸出一段字符串:
echo "LinuxCool.com"
LinuxCool.com
輸出變量提取后的值:
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
對內容進行轉義,不讓$符號的提取變量值功能生效:
echo \$PATH
$PATH
結合輸出重定向符,將字符串信息導入文件中:
echo "It is a test" > linuxcool
使用反引號符執行命令,并輸出其結果到終端:
echo `date`
輸出帶有換行符的內容
echo -e "a\nb\nc"
a
b
c
輸出信息中刪除某個字符,注意看數字3消失了:
echo -e "123\b456"
12456
rmdir命令 – 刪除空目錄
rmdir命令作用是刪除空的目錄,英文全稱:“remove directory”。
注意:rmdir命令只能刪除空目錄。當要刪除非空目錄時,就要使用帶有“-R”選項的rm命令。
rmdir命令的“-p”參數可以遞歸刪除指定的多級目錄,但是要求每個目錄也必須是空目錄。
語法格式 :? rmdir [參數] [目錄名稱]
常用參數:
-p用遞歸的方式刪除指定的目錄路徑中的所有父級目錄,非空則報錯
– – ignore-fail-on-non-empty忽略由于刪除非空目錄時導致命令出錯而產生的錯誤信息
-v顯示命令的詳細執行過程
– – help顯示命令的幫助信息
– – version顯示命令的版本信息
參考實例
刪除空目錄:
rmdir dir
遞歸刪除指定的目錄樹:
rmdir -p dir/dir_1/dir_2
顯示指令詳細執行過程:
rmdir -v dir
rmdir: 正在刪除目錄 'dir'
rmdir -p -v dir/dir_1/dir_2
rmdir: 正在刪除目錄 'dir/dir_1/dir_2
rmdir: 正在刪除目錄 'dir/dir_1'
rmdir: 正在刪除目錄 'dir_2'
顯示命令的版本信息:
rmdir --version
rmdir (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
許可證 GPLv3+:GNU 通用公共許可證第 3 版或更新版本https://gnu.org/licenses/gpl.html。
本軟件是自由軟件:您可以自由修改和重新發布它。
在法律范圍內沒有其他保證。
tail命令 – 查看文件尾部內容
tail用于顯示文件尾部的內容,默認在屏幕上顯示指定文件的末尾10行。如果給定的文件不止一個,則在顯示的每個文件前面加一個文件名標題。如果沒有指定文件或者文件名為“-”,則讀取標準輸入。
語法格式:tail [參數]
常用參數:
–retry即是在tail命令啟動時,文件不可訪問或者文件稍后變得不可訪問,都始終嘗試打開文件。使用此選項時需要與選項“——follow=name”連用
-c<N>或——bytes=<N>輸出文件尾部的N(N為整數)個字節內容
-f<name/descriptor>–follow<nameldescript>:顯示文件最新追加的內容
-F與選項“-follow=name”和“–retry”連用時功能相同
-n<N>或——line=<N>輸出文件的尾部N(N位數字)行內容
–pid=<進程號>與“-f”選項連用,當指定的進程號的進程終止后,自動退出tail命令
–help顯示指令的幫助信息
–version顯示指令的版本信息
參考實例
顯示文件file的最后10行:
tail file
顯示文件file的內容,從第20行至文件末尾:
tail +20 file
顯示文件file的最后10個字符:
tail -c 10 file
一直變化的文件總是顯示后10行:
tail -f 10 file
顯示幫助信息:
tail --help
expr命令 – 命令行計數器
expr命令的英文全稱是“expression”,即是表達式的意思,作用是一個命令行的計數器,常用于在UNIX/LINUX系統中求表達式變量的值,一般用于整數值,也可用于字符串。
語法格式:expr [表達式]
常用參數:
空格隔開每個項
\(反斜杠)放在 shell 特定的字符前面
“”(引號)對包含空格和其他特殊字符的字符串要用引號括起來
參考實例
計算字串長度:
expr length “this is a test” ?
14
抓取字串:
expr substr “this is a test” 3 5
is is
抓取第一個字符數字串出現的位置:
expr index "sarasara" a
2
整數運算:
expr 14 % 9
5 ?
expr 10 + 10
20
expr 1000 + 900
1900
expr 30 / 3 / 2
5
expr 30 * 3 ?
expr: Syntax error ?
expr 30 \* 3
90
注意:使用乘號時,必須用反斜線屏蔽其特定含義。因為shell可能會誤解顯示星號的意義
使用expr進行四則運算:
expr \( 10 + 10 \) \* 2 + 100
140
3. 系統管理
uname命令 – 顯示系統信息
uname命令的英文全稱即“Unix name”。
用于顯示系統相關信息,比如主機名、內核版本號、硬件架構等。
如果未指定任何選項,其效果相當于執行”uname -s”命令,即顯示系統內核的名字。
語法格式:uname [參數]
常用參數:
-a顯示系統所有相關信息
-m顯示計算機硬件架構
-n顯示主機名稱
-r顯示內核發行版本號
-s顯示內核名稱
-v顯示內核版本
-p顯示主機處理器類型
-o顯示操作系統名稱
-i顯示硬件平臺
參考實例
顯示系統主機名、內核版本號、CPU類型等信息:
uname -a
Linux linuxcool 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
僅顯示系統主機名:
uname -n
linuxcool
顯示當前系統的內核版本 :
uname -r
3.10.0-123.el7.x86_64
顯示當前系統的硬件架構:
uname -i
x86_64
rsh命令 – 遠端登入的shell
rsh命令的英文全稱為“remote shell”,該命令提供的用戶環境,也就是shell,以便指令能夠在指定的遠端主機上執行。
語法格式: rsh [參數]
常用參數:
-d使用Socket層級的排錯功能
-l指定要登入遠端主機的用戶名稱
-n把輸入的指令號向代號為/dev/null的特殊外圍設備
參考實例
遠程命令執行:
rsh -l linuxcool 192.168.1.88 /bin/ls
yes命令 – 重復打印字符串
yes命令的作用是中輸出指定的字符串,直到yes進程被殺死。不帶任何參數輸的yes命令默認的字符串就是y。 終止yes命令可以使用組合鍵ctrl+c
yes命令通常在腳本中使用,在腳本中可以對對命令和程序的確認提示和問題進行管道輸出并回答提問(例如:你確認要刪除這個文件嗎,按’y’ or ‘n’)。
語法格式: yes [字符串]
– -help顯示幫助信息
– -version顯示命令版本信息
參考實例
重復打印一段字符:
yes linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
...
^C //使用ctrl+c強制停止
useradd命令 – 創建用戶
useradd命令用來創建新的用戶或更改用戶的信息。
useradd可用來建立用戶帳號。帳號建好之后,再用passwd設定帳號的密碼。使用useradd指令所建立的帳號,實際上是保存在/etc/passwd文本文件中。
語法格式:useradd [參數] [用戶名]
常用參數:
-D改變新建用戶的預設值
-c添加備注文字
-d新用戶每次登陸時所使用的家目錄
-e用戶終止日期,日期的格式為YYYY-MM-DD
-f用戶過期幾日后永久停權。當值為0時用戶立即被停權,而值為-1時則關閉此功能,預設值為-1
-g指定用戶對應的用戶組
-G定義此用戶為多個不同組的成員
-m用戶目錄不存在時則自動創建
-M不建立用戶家目錄,優先于/etc/login.defs文件設定
-n取消建立以用戶名稱為名的群組
-r建立系統帳號
-u指定用戶id
參考實例
添加新用戶linuxcool:
useradd linuxcool
不創建家目錄,并且禁止登陸:
useradd -M -s /sbin/nologin linuxcool
添加新用戶linuxcool,指定UID為888,指定歸屬用戶組為root,cool成員,其shell類型為/bin/sh:
useradd -u 888 -s /bin/sh -G root,cool linuxcool
添加新用戶linuxcool,設置家目錄為/tmp/linuxcool,用戶過期時間為2019/05/01.過期后兩天停權:
useradd -e "2019/05/01" -f 2 -d /tmp/linuxcool linuxcool
who命令 – 打印當前登錄用戶
who命令用來打印當前登錄用戶信息,包含了系統的啟動時間 、 活動進程 、 使用者 ID、使用終端等信息,是系統管理員了解系統運行狀態的常用命令。
who命令的輸出信息默認來自文件“/var/log/utmp”和“/var/log/wtmp”。
語法格式: who [參數] [選項]
常用參數:
-a打印全面信息
-b打印系統最近啟動時間
-d打印死掉的進程
-l打印系統登錄進程
-H帶有列標題打印用戶名,登錄終端和登錄時間
-t打印系統上次鎖定時間
-u打印已登錄用戶列表
參考實例
打印用戶登錄信息(-H 帶有列標題打?。?/p>
who -H
名稱 ? ? 線路 ? ? ? ?? 時間 ? ? ? ? ? ?? 備注
root ? ? pts/0 ? ? ?? 2019-04-10 12:31 (192.168.12.34)
打印全部信息:
who -H -a
名稱 ? ? 線路 ? ? ? 時間 ? ? ? ? ? 空閑? 進程號 備注 ? 退出
系統引導 2019-04-03 15:01
運行級別 3 2019-04-03 15:02
登錄 ? ? tty1 ? ?? 2019-04-03 15:02 ? ? ? ? ? 852 id=tty1
? ? ? ? ? ? ? ? ? 2019-04-03 15:31 ? ? ? ?? 1022 id=102 ?
終端=0 退出=0
root ? ? + pts/0 ? 2019-04-10 12:27 ? .? 2789 (192.168.12.34)
打印系統最近啟動時間 :
who -b
系統引導 2019-04-03 15:01
打印系統登錄進程:
who -l
登錄 ? tty1 ? ? ? ? 2019-04-03 15:02 ? ? ? ? ? ? ? 852 id=tty1
4. 磁盤管理
df命令 – 顯示磁盤空間使用情況
df命令的英文全稱即“Disk Free”,顧名思義功能是用于顯示系統上可使用的磁盤空間。默認顯示單位為KB,建議使用“df -h”的參數組合,根據磁盤容量自動變換合適的單位,更利于閱讀。
日常普遍用該命令可以查看磁盤被占用了多少空間、還剩多少空間等信息。
語法格式: df [參數] [指定文件]
常用參數:
-a顯示所有系統文件
-B <塊大小>指定顯示時的塊大小
-h以容易閱讀的方式顯示
-H以1000字節為換算單位來顯示
-i顯示索引字節信息
-k指定塊大小為1KB
-l只顯示本地文件系統
-t <文件系統類型>只顯示指定類型的文件系統
-T輸出時顯示文件系統類型
– -sync在取得磁盤使用信息前,先執行sync命令
參考實例
顯示磁盤分區使用情況:
df
文件系統 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1K-塊 ?? 已用 ? ? 可用 ? 已用% 掛載點
devtmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? 1980612 ? ? ? 0? 1980612 ?? 0% /dev
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 1994756 ? ? ? 0? 1994756 ?? 0% /dev/shm
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 1994756 ?? 1040? 1993716 ?? 1% /run
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 1994756 ? ? ? 0? 1994756 ?? 0% /sys/fs/cgroup
/dev/mapper/fedora_linuxhell-root 15718400 2040836 13677564 ? 13% /
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 1994756 ? ? ? 4? 1994752 ?? 1% /tmp
/dev/sda1 ? ? ? ? ? ? ? ? ? ? ? ? ? 999320? 128264 ? 802244 ? 14% /boot
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 398948 ? ? ? 0 ? 398948 ? 0% /run/user/0
以容易閱讀的方式顯示磁盤分區使用情況:
df -h
文件系統 ? ? ? ? ? ? ? ? ? ? ? ? ? 容量 ? 已用 ? 可用? 已用% 掛載點
devtmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? 1.9G ? ? 0? 1.9G ?? 0% /dev
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2.0G ? ? 0? 2.0G ?? 0% /dev/shm
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2.0G? 1.1M? 2.0G ?? 1% /run
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2.0G ? ? 0? 2.0G ?? 0% /sys/fs/cgroup
/dev/mapper/fedora_linuxhell-root ? 15G? 2.0G ? 14G ? 13% /
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2.0G? 4.0K? 2.0G ?? 1% /tmp
/dev/sda1 ? ? ? ? ? ? ? ? ? ? ? ?? 976M? 126M? 784M ? 14% /boot
tmpfs ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 390M ? ? 0? 390M ?? 0% /run/user/0
顯示指定文件所在分區的磁盤使用情況:
df /etc/dhcp
文件系統 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1K-塊 ?? 已用 ? ? 可用 ? 已用% 掛載點
/dev/mapper/fedora_linuxcool-root 15718400 2040836 13677564 ? 13% /
顯示文件類型為ext4的磁盤使用情況:
df -t ext4
文件系統 ? ? ?? 1K-塊 ? 已用 ? 可用 ?? 已用% 掛載點
/dev/sda1 ? ?? 999320 128264 802244 ? 14% /boot
lsblk命令 – 查看系統的磁盤
lsblk命令的英文是“list block”,即用于列出所有可用塊設備的信息,而且還能顯示他們之間的依賴關系,但是它不會列出RAM盤的信息。
lsblk命令包含在util-linux-ng包中,現在該包改名為util-linux。
語法格式:lsblk [參數]
常用參數:
-a顯示所有設備
-b以bytes方式顯示設備大小
-d不顯示 slaves 或 holders
-Dprint discard capabilities
-e排除設備
-f顯示文件系統信息
-h顯示幫助信息
-iuse ascii characters only
-m顯示權限信息
-l使用列表格式顯示
-n不顯示標題
-o輸出列
-P使用key=”value”格式顯示
-r使用原始格式顯示
-t顯示拓撲結構信息
參考實例
lsblk命令默認情況下將以樹狀列出所有塊設備:
lsblk
lsblk NAME ? MAJ:MIN rm? SIZE RO type mountpoint
sda ? ?? 8:0 ?? 0 232.9G? 0 disk
├─sda1 ? 8:1 ?? 0? 46.6G? 0 part /
├─sda2 ? 8:2 ?? 0 ? ? 1K? 0 part ?
├─sda5 ? 8:5 ?? 0 ? 190M? 0 part /boot
├─sda6 ? 8:6 ?? 0 ? 3.7G? 0 part [SWAP]
├─sda7 ? 8:7 ?? 0? 93.1G? 0 part /data
└─sda8 ? 8:8 ?? 0? 89.2G? 0 part /personal
sr0 ? ? 11:0 ?? 1? 1024M? 0 rom
默認選項不會列出所有空設備:
lsblk -a
也可以用于列出一個特定設備的擁有關系,同時也可以列出組和模式:
lsblk -m
要獲取SCSI設備的列表,你只能使用-S選項,該選項是用來以顛倒的順序打印依賴的:
lsblk -S
例如,你也許想要以列表格式列出設備,而不是默認的樹狀格式??梢詫蓚€不同的選項組合,以獲得期望的輸出:
lsblk -nl
fdisk命令 – 磁盤分區
fdisk命令的英文全稱是“Partition table manipulator for Linux”,即作為磁盤的分區工具。進行硬盤分區從實質上說就是對硬盤的一種格式化, 用一個形象的比喻,分區就好比在一張白紙上畫一個大方框,而格式化好比在方框里打上格子。
語法格式:fdisk [參數]
常用參數:
-b指定每個分區的大小
-l列出指定的外圍設備的分區表狀況
-s將指定的分區大小輸出到標準輸出上,單位為區塊
-u搭配”-l”參數列表,會用分區數目取代柱面數目,來表示每個分區的起始地址
-v顯示版本信息
參考實例
查看所有分區情況:
fdisk -l
選擇分區磁盤:
fdisk /dev/sdb
在當前磁盤上建立擴展分區:
fdisk /ext
不檢查磁盤表面加快分區操作:
fdisk /actok
重建主引導記錄:
fdisk /cmbr
quota命令 – 顯示磁盤已使用的空間與限制
quota命令用于顯示磁盤已使用的空間與限制。執行quota命令可查詢磁盤空間的限制,并得知已使用多少空間。
語法參數:quota [參數]
常用參數:
-g列出群組的磁盤空間限制
-q簡明列表,只列出超過限制的部分
-u列出用戶的磁盤空間限制
-v顯示該用戶或群組,在所有掛入系統的存儲設備的空間限制
-V顯示版本信息
參考實例
顯示目前執行者(root )的 quota 值:
quota -guvs
顯示 test 這個使用者的 quota 值:
quota -uvs test
arpd命令 – 收集arp信息
arpd命令是用來收集免費arp信息的一個守護進程,它將收集到的信息保存在磁盤上或者在需要時,提供給內核用戶用于避免多余廣播。
語法格式:arpd [參數]
參考實例
-l將arp數據庫輸出到標準輸出設備顯示并退出
-f指定讀取和加載arpd數據庫的文本文件,文件的格式與“-l”輸出信息類似
-b指定arpd數據庫文件,默認的位置為“/var/lib/arpd.db
-a指定目標被認為死掉前查詢的次數
-k禁止通過內核發送廣播查詢
-n設定緩沖失效時間
常用參數:
啟動arpd進程:
arpd -b /var/tmp/arpd.db
一段時間后看結果:
killall arpd ; arpd -l -b /var/tmp/arpd.db
啟用內核幫助程序,將主要角色留給內核:
arpd -b /var/tmp/arpd.db -a 1 eth0 eth1
完全替換接口eth0和eth1上的內核決議。 在這種情況下,內核仍會進行單播探測以驗證條目,但所有廣播活動都被抑制并在arpd的授權下進行:
arpd -b /var/tmp/arpd.db -a 3 -k eth0 eth1
禁止內核發送廣播查詢 :
arpd -k
5. 文件傳輸
curl命令 – 文件傳輸工具
curl命令是一個利用URL規則在shell終端命令行下工作的文件傳輸工具;它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱curl為下載工具。
作為一款強力工具,curl支持包括HTTP、HTTPS、ftp等眾多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特征;做網頁處理流程和數據檢索自動化。
語法格式:curl [參數] [網址]
常用參數:
-O把輸出寫到該文件中,保留遠程文件的文件名
-u通過服務端配置的用戶名和密碼授權訪問
參考實例
將下載的數據寫入到文件,必須使用文件的絕對地址:
curl https://www.linuxcool.com/abc.txt --silent -O
訪問需要授權的頁面時,可通過-u選項提供用戶名和密碼進行授權:
curl -u root https://www.linuxprobe.com/
Enter host password for user 'root':
ftpwho命令 – 顯示ftp會話信息
ftpwho命令用于顯示當前所有以FTP登入的用戶會話信息。
執行該命令可得知當前用FTP登入系統的用戶有哪些人,以及他們正在進行的操作。
語法格式:ftpwho [參數]
常用參數:
-h顯示幫助信息
-v詳細模式,輸出更多信息
參考實例
查詢當前正在登錄FTP 服務器的用戶:
ftpwho
fsck命令 – 檢查并修復Linux文件系統
fsck命令的英文全稱是“filesystem check”,即檢查文件系統的意思,常用于檢查并修復Linux文件系統的一些錯誤信息,操作文件系統需要先備份重要數據,以防丟失。
Linux fsck命令用于檢查并修復Linux文件系統,可以同時檢查一個或多個 Linux 文件系統;若系統掉電或磁盤發生問題,可利用fsck命令對文件系統進行檢查。
語法格式:fsck [參數] [文件系統]
常用參數:
-a自動修復文件系統,不詢問任何問題
-A依照/etc/fstab配置文件的內容,檢查文件內所列的全部文件系統
-N不執行指令,僅列出實際執行會進行的動作
-P當搭配”-A”參數使用時,則會同時檢查所有的文件系統
-r采用互動模式,在執行修復時詢問問題,讓用戶得以確認并決定處理方式
-R當搭配”-A”參數使用時,則會略過/目錄的文件系統不予檢查
-t指定要檢查的文件系統類型
-T執行fsck指令時,不顯示標題信息
-V顯示指令執行過程
參考實例
修復壞的分區文件系統:
fsck -t ext3 -r /usr/local
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
fsck.ext3: Is a directory while trying to open /usr/local
The superblock could not be read or does not describe a correct ext2
filesystem.? If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
? ? e2fsck -b 8193
/usr/local: status 8, rss 1232, real 0.020288, user 0.002022, sys 0.005354
顯示fsck系統安裝的版本號:
fsck --version
fsck from util-linux 2.23.2
ftpshut命令 – 指定時間關閉FTP服務器
ftpshut命令為系統管理者提供了在設置的時間關閉FTP服務器,且能在關閉之前發出警告信息通知用戶的功能。
關閉時間若設置后為”none”,則會馬上關閉服務器。如果采用”+30″的方式來設置表示服務器在30分鐘之后關閉。依次類推,假設使用”1130″的格式則代表服務器會在每日的11時30分關閉,時間格式為24 小時制。FTP服務器關閉后,在/etc目錄下會產生一個名稱為shutmsg的文件,把它刪除后即可再次啟用FTP服務器。
語法格式:ftpshut [參數]
常用參數:
-d切斷所有FTP連線時間
-l停止接受FTP登入的時間
參考實例
在晚上11:00 關閉FTP服務器,并在關閉前5 分鐘拒絕新的FTP登錄,前3 分鐘關閉所有ftp的鏈接,且給出警告信息 :
ftpshut-d 3 -1 5 1100 "Server will be shutdown at 23:00:00"
lprm命令 – 刪除打印隊列中的打印任務
lprm命令的英文全稱是“Remove?jobs?from?the?print?queue”,意為用于刪除打印隊列中的打印任務。尚未完成的打印機工作會被放在打印機貯列之中,這個命令可用來將未送到打印機的工作取消。
語法格式:lprm [參數] [任務編號]
常用參數:
-E與打印服務器連接時強制使用加密
-P指定接受打印任務的目標打印機
-U指定可選的用戶名
參考實例
將打印機hpprint中的第102號任務移除:
lprm -Phpprint 102
將第101號任務由預設打印機中移除:
lprm 101
6. 網絡通訊
ping命令 – 測試主機間網絡連通性
ping命令主要用來測試主機之間網絡的連通性,也可以用于。執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。
不過值得我們注意的是:Linux系統下的ping命令與Windows系統下的ping命令稍有不同。Windows下運行ping命令一般會發出4個請求就結束運行該命令;而Linux下不會自動終止,此時需要我們按CTR+C終止或者使用-c參數為ping命令指定發送的請求數目。
語法格式:ping [參數] [目標主機]
常用參數:
-d使用Socket的SO_DEBUG功能
-c指定發送報文的次數
-i指定收發信息的間隔時間
-I使用指定的網絡接口送出數據包
-l設置在送出要求信息之前,先行發出的數據包
-n只輸出數值
-p設置填滿數據包的范本樣式
-q不顯示指令執行過程
-R記錄路由過程
-s設置數據包的大小
-t設置存活數值TTL的大小
-v詳細顯示指令的執行過程
參考實例
檢測與linuxcool網站的連通性:
ping www.linuxcool.com
連續ping4次:
ping -c 4 www.linuxcool.com
設置次數為4,時間間隔為3秒:
ping -c 4 -i 3 www.linuxcool.com
利用ping命令獲取指定網站的IP地址:
ping -c 1 linuxcool.com | grep from | cut -d " " -f 4
220.181.57.216
netstat命令 – 顯示網絡狀態
netstat 命令用于顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
從整體上看,netstat的輸出結果可以分為兩個部分:一個是Active Internet connections,稱為有源TCP連接,其中”Recv-Q”和”Send-Q”指%0A的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到;另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是只能用于本機通信,性能可以提高一倍)。
語法格式:netstat [參數]
常用參數:
-a顯示所有連線中的Socket
-p顯示正在使用Socket的程序識別碼和程序名稱
-u顯示UDP傳輸協議的連線狀況
-i 顯示網絡界面信息表單
-n直接使用IP地址,不通過域名服務器
參考實例
顯示詳細的網絡狀況:
netstat -a
顯示當前戶籍UDP連接狀況:
netstat -nu
顯示UDP端口號的使用情況:
netstat -apu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address? Foreign Address? State? PID/Program name ? ?
udp ? ? ?? 0 ? ?? 0 0.0.0.0:bootpc ? ? ? ?? 0.0.0.0:* ? ?? 4000/dhclient ? ? ?
udp ? ? ?? 0 ? ?? 0 localhost:323 ? ? ? ? ? 0.0.0.0:* ? ?? 3725/chronyd ? ? ? ?
udp6 ? ? ? 0 ? ?? 0 localhost:323 ? ? ? ? ? [::]:* ? ? ? ? 3725/chronyd
顯示網卡列表:
netstat -i
Kernel Interface table
Iface MTU Met? RX-OK? RX-ERR? RX-DRP RX-OVR? TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 ? 0? 181864 ? 0 ? ?? 0 ? ? ? 0 ? ? 141278 ? 0 ? ? 0 ? ? 0 ?? BMRU
lo ? 16436? 0 ? 3362 ?? 0 ? ?? 0 ? ? ? 0 ? ? 3362 ? ? 0 ? ? 0 ? ? 0 ?? LRU
顯示組播組的關系:
netstat -g
IPv6/IPv4 Group Memberships Interface ? ?
RefCnt Group
--------------- ------ ---------------------
lo ? ? ?? 1 ? ALL-SYSTEMS.MCAST.NET
eth0 ? ?? 1 ? ALL-SYSTEMS.MCAST.NET lo ? ? ? 1 ? ff02::1
eth0 ? ?? 1 ? ff02::1:ff0a:b0c eth0 ? ? ? ?? 1 ? ff02::1
ifconfig命令 – 顯示或設置網絡設備
ifconfig命令的英文全稱是“network interfaces configuring”,即用于配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟后機器重啟后,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網卡的配置文件了。
語法格式:ifconfig [參數]
常用參數:
add<地址>設置網絡設備IPv6的IP地址
del<地址>刪除網絡設備IPv6的IP地址
down關閉指定的網絡設備
up啟動指定的網絡設備
IP地址指定網絡設備的IP地址
參考實例
顯示網絡設備信息:
# ifconfig
eth0 ? Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C ? ? ?
? ? ? inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
? ? ? inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link ? ?
? ? ? UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ? ? ?
? ? ? RX packets:172220 errors:0 dropped:0 overruns:0 frame:0 ? ? ?
? ? ? TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0
? ? ? collisions:0 txqueuelen:1000 ? ? ?
? ? ? RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB)
? ? ? Interrupt:185 Base address:0x2024 ?
lo ?? Link encap:Local Loopback ? ? ?
? ?? inet addr:127.0.0.1 Mask:255.0.0.0 ? ? ?
? ?? inet6 addr: ::1/128 Scope:Host ? ? ?
? ?? UP LOOPBACK RUNNING MTU:16436 Metric:1 ? ? ?
? ?? RX packets:2022 errors:0 dropped:0 overruns:0 frame:0 ? ? ?
? ?? TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0 ?
? ?? collisions:0 txqueuelen:0 ? ? ?
? ?? RX bytes:2459063 (2.3 MiB)
? ?? TX bytes:2459063 (2.3 MiB)
啟動關閉指定網卡:
# ifconfig eth0 down
# ifconfig eth0 up
為網卡配置和刪除IPv6地址:
# ifconfig eth0 add 33ffe:3240:800:1005::2/64
# ifconfig eth0 del 33ffe:3240:800:1005::2/64
用ifconfig修改MAC地址:
# ifconfig eth0 down
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
# ifconfig eth0 up
# ifconfig eth1 hw ether 00:1D:1C:1D:1E
# ifconfig eth1 up
配置IP地址:
# ifconfig eth0 192.168.1.56
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
ss命令 – 顯示活動套接字信息
ss是Socket Statistics的縮寫。ss命令用來顯示處于活動狀態的套接字信息。它可以顯示和netstat類似的內容。但ss的優勢在于它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。
語法格式:ss [參數]
常用參數:
-n不解析服務名稱,已數字方式顯示
-a顯示所有套接字
-l顯示處于監聽狀態的套接字
-o顯示計時器信息
-e顯示詳細的套接字信息
-m顯示套接字的內存使用情況
-p顯示使用套接字的進程
-i顯示內部的TCP信息
-s顯示套接字使用概況
-4僅顯示ipv4的套接字
-6僅顯示ipv6的套接字
-0顯示PACKET套接字
-t只顯示TCP套接字
-u只顯示UDP套接字
-d只顯示DCCP套接字
-w只顯示RAW套接字
-x只顯示 Unix套接字
-D 將原始TCP套接字信息轉儲到文件
參考實例
顯示TCP套接字:
# ss -t -a
State ? ? Recv-Q ? ? Send-Q ? ? Local Address:Port ? ? Peer Address:Port ?
LISTEN ?? 0 ? ? ? ?? 128 ? ? ?? 0.0.0.0:ssh ? ? ? ? ?? 0.0.0.0:* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
ESTAB ? ? 0 ? ? ? ?? 52 ? ? ? ? 192.168.60.19:ssh ? ?? 192.168.30.21:59321 ? ? ? ? ? ? ?
LISTEN ?? 0 ? ? ? ?? 128 ? ? ?? *:websm ? ? ? ? ? ? ?? *:* ? ? ? ? ? ? ?
LISTEN ?? 0 ? ? ? ?? 128 ? ? ?? [::]:ssh ? ? ? ? ? ? ? [::]:*
顯示UDP套接字:
# ss -u -a
State ? ? Recv-Q ? ? Send-Q ? ? Local Address:Port ? ? Peer Address:Port ? ? ? ? ? ? ?
UNCONN ?? 0 ? ? ? ?? 0 ? ? ? ?? 0.0.0.0:bootpc ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? ?
UNCONN ?? 0 ? ? ? ?? 0 ? ? ? ?? 127.0.0.1:323 ? ? ? ?? 0.0.0.0:* ? ? ? ? ? ? ? ?
UNCONN ?? 0 ? ? ? ?? 0 ? ? ? ?? [::1]:323 ? ? ? ? ? ?? [::]:* ?
顯示套接字使用概況:
# ss -s
Total: 185
TCP: ? 4 (estab 1, closed 0, orphaned 0, timewait 0)
Transport Total ? ? IP ? ? ?? IPv6
RAW ? ? ? 1 ? ? ? ? 0 ? ? ? ? 1 ? ? ? ?
UDP ? ? ? 3 ? ? ? ? 2 ? ? ? ? 1 ? ? ? ?
TCP ? ? ? 4 ? ? ? ? 2 ? ? ? ? 2 ? ? ? ?
INET ? ?? 8 ? ? ? ? 4 ? ? ? ? 4 ? ? ? ?
FRAG ? ?? 0 ? ? ? ? 0 ? ? ? ? 0 ? ? ? ?
ipcalc命令 – 簡單的IP地址計算器
ipcalc命令的全稱是:Calculate IP information for a host(計算主機的IP信息)
ipcalc命令是一個簡單的ip地址計算器,可以完成簡單的IP地址計算任務。
語法格式: ipcalc [參數] [IP地址]
常用參數:
-b由給定的IP地址和網絡掩碼計算出廣播地址
-h顯示給定IP地址所對應的主機名
-m由給定的IP地址計算器網絡掩碼
-p顯示給定的掩碼或IP地址的前綴
-n由給定的IP地址和網絡掩碼計算網絡地址
-s安靜模式,不顯示任何錯誤信息
–help顯示幫助信息
參考實例
計算給定掩碼的前綴 :
# ipcalc -p 192.168.88.56 255.255.255.0
PREFIX=24
給定IP和網絡掩碼計算網絡地址 :
# ipcalc -n 192.168.88.56 255.255.255.0
NETWORK=192.168.88.0
給定IP顯示對應的主機名:
# ipcalc -h 223.5.5.5
HOSTNAME=public1.alidns.com
使用多個參數計算給定IP的網絡掩碼,廣播地址,網絡地址:
# ipcalc -m -b -n 119.29.29.29/28
NETMASK=255.255.255.240
BROADCAST=119.29.29.31
NETWORK=119.29.29.16
7. 設備管理
mount命令 – 文件系統掛載
mount命令用于加載文件系統到指定的加載點。此命令的最常用于掛載cdrom,使我們可以訪問cdrom中的數據,因為你將光盤插入cdrom中,Linux并不會自動掛載,必須使用Linux mount命令來手動完成掛載。
語法格式:mount [參數]
常用參數:
-t指定掛載類型
-l顯示已加載的文件系統列表
-h顯示幫助信息并退出
-V顯示程序版本
-n加載沒有寫入文件“/etc/mtab”中的文件系統
-r將文件系統加載為只讀模式
-a加載文件“/etc/fstab”中描述的所有文件系統
參考實例
查看版本:
# mount -V
啟動所有掛載:
# mount -a
掛載 /dev/cdrom 到 /mnt:
# mount /dev/cdrom /mnt
掛載nfs格式文件系統:
# mount -t nfs /123 /mnt ?
掛載第一塊盤的第一個分區到/etc目錄 :
# mount -t ext4 -o loop,default /dev/sda1 /etc
setleds命令 – 設定鍵盤上方三個 LED 的狀態
setleds即是英文詞組“set leds”的合并,翻譯為中文就是設置LED燈。setleds命令用來設定鍵盤上方三個 LED 燈的狀態。在 Linux 中,每一個虛擬主控臺都有獨立的設定。
這是一個十分神奇的命令,竟然可以通過命令來控制鍵盤的燈的狀態。那么下面我一起來學習一下這個命令吧。
語法格式:setleds [參數]
常用參數:
-F設定虛擬主控臺的狀態
-D改變虛擬主控臺的狀態和預設的狀態
-L直接改變 LED 顯示的狀態
+num/-num將數字鍵打開或關閉
+caps/-caps把大小寫鍵打開或關閉
+scroll /-scroll把選項鍵打開或關閉
參考實例
控制鍵盤燈num燈亮和燈滅:
# setleds +num
# setleds -num
控制鍵盤的大小寫鍵打開或關閉,鍵盤指示燈亮與滅:
# setleds +caps
# setleds -caps
控制鍵盤的選項鍵打開或關閉,鍵盤指示燈亮與滅:
# setleds +scroll
對三燈的亮與滅的情況進行組合,分別設置為數字燈亮,大小寫燈滅,選項鍵scroll燈滅:
# setleds +num -caps -scroll
loadkeys命令 – 改變linux鍵盤驅動程序
loadkeys命令可以根據一個鍵盤定義表改變 linux 鍵盤驅動程序轉譯鍵盤輸入過程。
語法格式:loadkeys [參數] [文件]
常用參數:
-v印出詳細的資料,你可以重復以增加詳細度
-q不要顯示任何訊息
-c 清除所有 composite 定義
-s將定串定義表清除
參考實例
顯示功能鍵:
# loadkeys --funcs-only
將定串定義表清除:
# loadkeys -s
清除所有 composite 定義:
# loadkeys -c ?
印出詳細的資料,你可以重復以增加詳細度:
# loadkeys -v ?
不要顯示任何訊息:
# loadkeys -q
8. 備份壓縮
gzip命令 – 壓縮和解壓文件
gzip命令的英文是“GNUzip”,是常用來壓縮文件的工具,gzip是個使用廣泛的壓縮程序,文件經它壓縮過后,其名稱后面會多處“.gz”擴展名。
gzip是在Linux系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。gzip不僅可以用來壓縮大的、較少使用的文件以節省磁盤空間,還可以和tar命令一起構成Linux操作系統中比較流行的壓縮文件格式。據統計,gzip命令對文本文件有60%~70%的壓縮率。減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。
語法格式:gzip [參數]
常用參數:
-a使用ASCII文字模式
-d解開壓縮文件
-f強行壓縮文件
-l列出壓縮文件的相關信息
-c把壓縮后的文件輸出到標準輸出設備,不去更動原始文件
-r遞歸處理,將指定目錄下的所有文件及子目錄一并處理
-q不顯示警告信息
參考實例
把rancher-v2.2.0目錄下的每個文件壓縮成.gz文件:
# gzip *
把上例中每個壓縮的文件解壓,并列出詳細的信息:
# gzip -dv *
遞歸地解壓目錄:
# gzip -dr rancher.gz
unzip命令 – 解壓縮zip文件
unzip命令是用于.zip格式文件的解壓縮工具 ,unzip命令將列出、測試或從zip格式存檔中提取文件,這些文件通常位于MS-DOS系統上。
默認行為(就是沒有選項)是從指定的ZIP存檔中提取所有的文件到當前目錄(及其下面的子目錄)。一個配套程序zip(1L)創建ZIP存檔;這兩個程序都與PKWARE的PKZIP和PKUNZIP為MS-DOS創建的存檔文件兼容,但許多情況下,程序選項或默認行為是不同的。
語法格式:unzip [參數] [文件]
常用參數:
-l顯示壓縮文件內所包含的文件
-v執行時顯示詳細的信息
-c將解壓縮的結果顯示到屏幕上,并對字符做適當的轉換
-n解壓縮時不要覆蓋原有的文件
-j不處理壓縮文件中原有的目錄路徑
參考實例
把/home目錄下面的mydata.zip解壓到mydatabak目錄里面:
# unzip mydata.zip -d mydatabak
把/home目錄下面的wwwroot.zip直接解壓到/home目錄里面:
# unzip wwwroot.zip
把/home目錄下面的abc12.zip、abc23.zip、abc34.zip同時解壓到/home目錄里面:
# unzip abc\*.zip
查看把/home目錄下面的wwwroot.zip里面的內容:
# unzip -v wwwroot.zip
驗證/home目錄下面的wwwroot.zip是否完整:
# unzip -t wwwroot.zip ?
zip命令 – 壓縮文件
zip程序將一個或多個壓縮文件與有關文件的信息(名稱、路徑、日期、上次修改的時間、保護和檢查信息以驗證文件完整性)一起放入一個壓縮存檔中??梢允褂靡粋€命令將整個目錄結構打包到zip存檔中。
對于文本文件來說,壓縮比為2:1和3:1是常見的。zip只有一種壓縮方法(通縮),并且可以在不壓縮的情況下存儲文件。(如果添加了bzip 2支持,zip也可以使用bzip 2壓縮,但這些條目需要一個合理的現代解壓縮來解壓縮。當選擇bzip 2壓縮時,它將通貨緊縮替換為默認方法。)zip會自動為每個要壓縮的文件選擇更好的兩個文件(通縮或存儲,如果選擇bzip2,則選擇bzip2或Store)。
語法格式:zip [參數] [文件]
常用參數:
-q不顯示指令執行過程
-r遞歸處理,將指定目錄下的所有文件和子目錄一并處理
-z替壓縮文件加上注釋
-v顯示指令執行過程或顯示版本信息
-n<字尾字符串>不壓縮具有特定字尾字符串的文件
參考實例
將 /home/html/ 這個目錄下所有文件和文件夾打包為當前目錄下的 html.zip:
# zip -q -r html.zip /home/html
壓縮文件 cp.zip 中刪除文件 a.c:
# zip -dv cp.zip a.c
把/home目錄下面的mydata目錄壓縮為mydata.zip:
# zip -r mydata.zip mydata
把/home目錄下面的abc文件夾和123.txt壓縮成為abc123.zip:
# zip -r abc123.zip abc 123.txt
將 logs目錄打包成 log.zip:
# zip -r log.zip ./logs
bzip2命令 – bz2文件的壓縮程序
Linux系統中bzip2命令的英文是“bunzip2”,即.bz2文件格式的壓縮程序; bzip2命令系統默認是沒有安裝的,需要安裝bzip2庫才可以使用此命令。
bzip2命令采用新的壓縮演算法,壓縮效果比傳統的LZ77/LZ78壓縮演算法來得好。若沒有加上任何參數,bzip2壓縮完文件后會產生.bz2的壓縮文件,并刪除原始的文件。
語法格式:bzip2 [參數] 文件系統
常用參數:
-c將壓縮與解壓縮的結果送到標準輸出
-d執行解壓縮
-fbzip2在壓縮或解壓縮時,若輸出文件與現有文件同名,預設不會覆蓋現有文件。若要覆蓋,請使用此參數
-kbzip2在壓縮或解壓縮后,會刪除原始的文件。若要保留原始文件,請使用此參數
-s降低程序執行時內存的使用量
-t測試.bz2壓縮文件的完整性
-v壓縮或解壓縮文件時,顯示詳細的信息
-z強制執行壓縮
參考實例
壓縮文件:
# bzip2 a.txt
檢查文件完整性:
# bzip2 -t a.txt.bz2
zipinfo命令 – 查看壓縮文件信息
zipinfo命令的全稱為“zip information”,該命令用于列出壓縮文件信息。執行zipinfo指令可得知zip壓縮文件的詳細信息。
語法格式:zipinfo [參數]
常用參數:
-1只列出文件名稱
-2此參數的效果和指定”-1″參數類似,但可搭配”-h”,”-t”和”-z”參數使用
-h只列出壓縮文件的文件名稱
-l此參數的效果和指定”-m”參數類似,但會列出原始文件的大小而非每個文件的壓縮率
-m此參數的效果和指定”-s”參數類似,但多會列出每個文件的壓縮率
-M若信息內容超過一個畫面,則采用類似more指令的方式列出信息
-s用類似執行”ls -l”指令的效果列出壓縮文件內容
-t只列出壓縮文件內所包含的文件數目,壓縮前后的文件大小及壓縮率
-T將壓縮文件內每個文件的日期時間用年,月,日,時,分,秒的順序列出
-v詳細顯示壓縮文件內每一個文件的信息
-x<范本樣式>不列出符合條件的文件的信息
-z如果壓縮文件內含有注釋,就將注釋顯示出來
參考實例
顯示壓縮文件信息:
# zipinfo file.zip
Archive: file.zip? 486 bytes? 3 files
-rw-r--r-- 2.3 unx ?? 0 bx stor 24-May-10 18:54 a.c
-rw-r--r-- 2.3 unx ?? 0 bx stor 24-May-10 18:54 b.c
-rw-r--r-- 2.3 unx ?? 0 bx stor 24-May-10 18:54 c.c
3 files, 0 bytes uncompressed, 0 bytes compressed: 0.0%
顯示壓縮文件中每個文件的信息:
# zipinfo -v file.zip
只顯示壓縮包大小、文件數目:
# zipinfo -h file.zip ? ? ? ? ? ?
Archive:? file.zip
Zip file size: 907 bytes, number of entries: 3
生成一個基本的、長格式的列表(而不是冗長的),包括標題和總計行:
# zipinfo -l file
查看存檔中最近修改的文件:
# zipinfo -T file | sort –nr -k 7 | sed 15q
9. 其他命令
bc命令 – 浮點運算
bc的英文全拼為“ Binary Calculator ”,是一種支持任意精度的交互執行的計算器語言。bash內置了對整數四則運算的支持,但是并不支持浮點運算,而bc命令可以很方便的進行浮點運算,當然整數運算也不再話下。
語法格式:bc [選項]
常用參數:
-i強制進入交互式模式
-l定義使用的標準數學庫
-w定義使用的標準數學庫
-q打印正常的GNU bc環境信息
參考實例
算術操作高級運算bc命令它可以執行浮點運算和一些高級函數:
# echo "1.212*3" | bc
3.636
設定小數精度(數值范圍):
# echo "scale=2;3/8" | bc
.37
計算平方和平方根:
# echo "10^10" | bc
10000000000
[root@linuxcool ~]# echo "sqrt(100)" | bc
10
rmmod命令 – 刪除模塊
rmmod即“remove module”的簡稱,rmmod命令用于刪除模塊。 執行rmmod命令,可刪除不需要的模塊。Linux操作系統的核心具有模塊化的特性,因此在編譯核心時,不需要吧全部功能都放入核心,可以將這些功能編譯成一個個單獨的模塊,待有需要時再分別載入它們。
語法格式:rmmod [參數] [模塊名稱]
常用參數:
-a刪除所有目前不需要的模塊
-s把信息輸出至syslog常駐服務,而非終端機界面
-v顯示指令執行的詳細信息
-f強制移除模塊,使用此選項比較危險
-w等待著,知道模塊能夠被除時再移除模塊
參考實例
卸載模塊pppoe并顯示執行信息:
# rmmod -v pppoe
卸載bridge模塊:
# rmmod bridge
卸載bridge模塊并將錯誤信息寫入syslog:
# rmmod -s bridge
孤立正在使用的bridge模塊,知道不被使用:
# rmmod -w bridge
刪除正在使用的bridge模塊(-f可以刪除正在使用的模塊,非常危險,慎用):
# rmmod -f bridge
我在上面這個網站看到的常用Linux命令,所以拿出來方便自己學習和記憶。