目錄 linux
概述正則表達式
經常使用系統工做命令shell
系統狀態檢測命令apache
工做目錄切換命令緩存
文本文件編輯命令bash
文件目錄管理命令網絡
打包壓縮與收縮命令架構
參考資料less
概述 ssh
1.shell
Shell(也稱爲終端或殼)充當的是人與內核(硬件)之間的翻譯官,用戶把一些命令「告訴」終端,它就會調用相應的程序服務去完成某些工做。
圖3-1 用戶與Linux系統的交互
如今主流Linux系統默認使用的終端是Bash(Bourne-Again SHell)解釋器。主流Linux系統選擇Bash解釋器做爲命令行終端主要有如下4項優點:
1.經過上下方向鍵來調取過往執行過的Linux命令;
2.命令或參數僅需輸入前幾位就能夠用Tab鍵補全;
3.具備強大的批處理腳本;
4.具備實用的環境變量功能。
用途:用於實現某一類功能的指令或程序;命令的執行依賴於解釋器程序(例如:/bin/bash)
分類
內部命令:屬於Shell 解釋器的一部分
外部命令:獨立於Shell 解釋器以外的程序文件
2.Linux命令的格式
語法:命令字[選項] [參數]
選項:用於調節命令的具體功能
以「-」引導短格式選項(單個字符),例如「-l」
以「--」引導長格式選項(多個字符),例如「--color」
多個短格式選項能夠寫在一塊兒,只用一個「-」引導,例如「-al」
參數:命令操做的對象,如文件、目錄名等
注意:選項和參數無關緊要,應該根據實際狀況去調整。
3.命令幫助
Help命令用於查看linux內置命令的幫助
Man命令,命令字典
按鍵 |
用途 |
空格鍵 |
向下翻一頁 |
PaGe down |
向下翻一頁 |
PaGe up |
向上翻一頁 |
home |
直接前往首頁 |
end |
直接前往尾頁 |
/ |
從上至下搜索某個關鍵詞,如「/linux」 |
? |
從下至上搜索某個關鍵詞,如「?linux」 |
n |
定位到下一個搜索到的關鍵詞 |
N |
定位到上一個搜索到的關鍵詞 |
q |
退出幫助文檔 |
表2-1 man命令中經常使用按鍵以及用途
結構名稱 |
表明意義 |
NAME |
命令的名稱 |
SYNOPSIS |
參數的大體使用方法 |
DESCRIPTION |
介紹說明 |
EXAMPLES |
演示(附帶簡單說明) |
OVERVIEW |
概述 |
DEFAULTS |
默認的功能 |
OPTIONS |
具體的可用選項(帶介紹) |
ENVIRONMENT |
環境變量 |
FILES |
用到的文件 |
SEE ALSO |
相關的資料 |
HISTORY |
維護歷史與聯繫方式 |
表2-2 man命令幫助信息的結構以及意義
經常使用系統工做命令
1.echo命令
功能:顯示指定的字符串或變量的內容,不指定任何參數時將顯下一個空行。
格式:echo [字符串或$變量名]...
示例:
[admin@redhat7 桌面]$ echo 'I Love linux'
I Love linux
[admin@redhat7 桌面]$ echo $HOSTNAME
redhat7.0
2.date命令
功能:顯示及設置系統的時間或日期
格式:date [選項] [+指定的格式]
選項:%t 跳格[Tab鍵]
%H 小時(00~23)
%I 小時(00~12)
%M 分鐘(00~59)
%S 秒(00~59)
%j 今年中的第幾天
示例:
[admin@redhat7 桌面]$ date <==查看當前系統時間
2019年 03月 23日 星期六 14:55:32 CST
[admin@redhat7 桌面]$ date "+%Y-%m-%d %H:%M:%S" <==按照「年-月-日 小時:分鐘:秒」的格式查看當前系統時間
2019-03-23 14:57:16
[admin@redhat7 桌面]$ date -s "20170323 14:59:00" <==將系統的當前時間設置爲XXX (發現普通用戶無權限)
date: 沒法設置日期: 不容許的操做
2017年 03月 23日 星期四 14:59:00 CST
[admin@redhat7 桌面]$ su root
密碼:
[root@redhat7 桌面]# date -s "20170323 15:00:00"
2017年 03月 23日 星期四 15:00:00 CST
[root@redhat7 桌面]# date
2017年 03月 23日 星期四 15:00:17 CST
[root@redhat7 桌面]# date "+%j" <==查看今天是當年中的第幾天
082
3.reboot/poweroff 默認只能使用root纔有權限(後面會設置權限控制)
4.wget命令
功能:在終端中下載網絡文件
格式:wget [選項] 下載地址
選項:-b 後臺下載模式
-P 下載到指定目錄
-t 最大嘗試次數
-c 斷點續傳
-p 下載頁面內全部資源,包括圖片、視頻等
-r 遞歸下載
示例:
[root@linuxprobe ~]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf
--2017-08-24 19:30:12 -- http://www.linuxprobe.com/docs/LinuxProbe.pdf
Resolving www.linuxprobe.com (www.linuxprobe.com)... 220.181.105.185
Connecting to www.linuxprobe.com (www.linuxprobe.com)|220.181.105.185|:80...
connected.
…
5.ps命令
功能:查看系統中的進程狀態
格式:ps [選項]
選項:-a 顯示全部進程(包括其餘用戶的進程)
-u 用戶以及其餘詳細信息
-x 顯示沒有控制終端的進程
應用: 1.ps aux 最經常使用,能夠用 | 管道和 more 鏈接起來分頁查看;ps -aux |more
2.和grep 結合,提取指定程序的進程;ps aux |grep httpd
3.父進和子進程的關係友好判斷,運用到f參數,父與子關係一目瞭然;ps auxf |grep httpd
5.1.進程狀態
Linux系統中時刻運行着許多進程,若是可以合理地管理它們,則能夠優化系統的性能。在Linux系統中,有5種常見的進程狀態,分別爲運行、中斷、不可中斷、僵死與中止,其各自含義以下所示。
R(運行):進程正在運行或在運行隊列中等待。
S(中斷):進程處於休眠中,當某個條件造成後或者接收到信號時,則脫離該狀態。
D(不可中斷):進程不響應系統異步信號,即使用kill命令也不能將其中斷。
Z(僵死):進程已經終止,但進程描述符依然存在, 直到父進程調用wait4()系統函數後將進程釋放
T(中止):進程收到中止信號後中止運行。
示例:[admin@redhat7 桌面]$ ps aux
USER |
PID |
%CPU |
%MEM |
VSZ |
RES |
TTY |
S |
START |
TIME |
COMMAND |
進程的全部者 |
進程ID號 |
運算器佔用率 |
內存佔用率 |
虛擬內存使用量(單位是KB) |
佔用的固定內存量(單位是KB) |
所在終端 |
進程 狀態 |
被啓動 的時間 |
實際使用 |
命令名稱與參數 |
root |
1 |
0.0 |
0.4 |
53684 |
7628 |
? |
Ss |
07 :22 |
0:02 |
/usr/lib/systemd/systemd |
root |
2 |
0.0 |
0.0 |
0 |
0 |
? |
S |
07:22 |
0:00 |
[kthreadd] |
root |
3 |
0.0 |
0.0 |
0 |
0 |
? |
S |
07:22 |
0:00 |
[ksoftirqd/0] |
root |
5 |
0.0 |
0.0 |
0 |
0 |
? |
S< |
07:22 |
0:00 |
[kworker/0:0H] |
root |
7 |
0.0 |
0.0 |
0 |
0 |
? |
S |
07:22 |
0:00 |
[migration/0] |
………………省略部分輸出信息……………… |
表2-3 進程狀態
6.top命令
功能:動態地監視進程活動與系統負載等信息(相似於Windows任務管理器)
格式:top
示例:top
圖3-2 top命令的運行界面
參數含義:
第1行:系統時間、運行時間、登陸終端數、(CPU)系統負載(三個數值分別爲1分鐘、5分鐘、15分鐘內的平均值,數值越小意味着負載越低,最好不要超過5;判斷負載狀況—從右往左看)。
第2行:進程總數、運行中的進程數、睡眠中的進程數、中止的進程數、僵死的進程數。
第3行:用戶佔用資源百分比、系統內核佔用資源百分比、改變過優先級的進程資源百分比、空閒的資源百分比等。 (注:例如「96.1 id」意味着有96.1%的CPU處理器資源處於空閒。)
第4行:物理內存總量(kb)、內存使用量、內存空閒量、做爲內核緩存的內存量。
第5行:虛擬內存總量、虛擬內存使用量、虛擬內存空閒量、已被提早加載的內存量。
7.pidof命令
功能:查詢某個指定服務進程的PID值
格式:pidof [選項] [服務名稱]
示例:
[root@linuxprobe ~]# pidof sshd
2156
8.kill命令
功能:終止某個指定PID的服務進程
格式:kill [選項] [進程PID]
示例:
[root@linuxprobe ~]# kill 2156
9.killall命令
功能:終止某個指定名稱的服務所對應的所有進程
格式:kill all[選項] [服務名稱]
示例:
[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd
[root@linuxprobe ~]#
注:中止命令執行快捷鍵 Ctrl + C
系統狀態檢測命令
1. ifconfig命令
功能:獲取網卡配置與網絡狀態等信息
格式:ifconfig [網絡設備] [選項]
示例:
[root@linuxprobe ~]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 <==網卡名稱
inet 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255 <==IP地址,掩碼
inet6 fe80::20c:29ff:fec4:a409 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c4:a4:09 txqueuelen 1000 (Ethernet) <==網卡物理地址(MAC地址)
RX packets 36 bytes 3176 (3.1 KiB) <==接收數據包個數及累計流量
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 38 bytes 4757 (4.6 KiB) <==發送數據包的個數及累計流量
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2. uname命令
功能:查看系統內核與系統版本等信息
格式:uname [-a]
示例:
[admin@redhat7 桌面]$ uname -a
Linux redhat7.0 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 <==系統、主機名稱、內核版本、系統打包時間、系統位數、協議
3. uptime用於查看系統的負載信息(顯示當前系統時間、系統已運行時間、啓用終端數量以及平均負載值等信息,(平均負載值指的是系統在最近1分鐘、5分鐘、15分鐘內的壓力狀況負載值越低越好,儘可能不要長期超過1,在生產環境中不要超過5。))
示例:
[admin@redhat7 桌面]$ uptime
16:38:05 up 1:29, 2 users, load average: 0.00, 0.01, 0.05
4.free用於顯示當前系統中內存的使用量信息
|
內存總量 |
已用量 |
可用量 |
進程共享的內存量 |
磁盤緩存的內存量 |
緩存的 |
|
total |
used |
free |
shared |
buffers |
cached |
Mem |
1.8GB |
1.3GB |
542MB |
9.8MB |
1.6MB |
413MB |
-/+ buffers/cache |
|
869MB |
957MB |
|
|
|
Swap |
2.0GB |
0 |
2.0GB |
|
|
|
表2-4 執行free -h命令後的輸出信息
5.who用於查看當前登入主機的用戶終端信息
6.last命令用於查看系統歷史的登陸記錄(因爲信息以日誌保存,容易遭到篡改,只能用於參考,不能判斷系統是否被黑)
7. history命令
功能:顯示歷史執行過的命令
示例:
[admin@redhat7 桌面]$ history
1 ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
2 ln -sf /lib/systemd/system/multi-user.target /etc/systemd/
3 su do ln -sf /lib/systemd/system/multi-user.target /etc/systemd/
4 su root
5 reboot
…
[admin@redhat7 桌面]$ !4 <== 「!編碼數字」的方式來重複執行某一次的命令
su root
密碼:
su: 鑑定故障
[admin@redhat7 桌面]$ cat ~/.bash_history <==查看歷史文件目錄 (Linux系統中以點(.)開頭的文件均表明隱藏文件,這些文件大多數爲系統服務文件,能夠用cat命令查看其文件內容。)
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/
su do ln -sf /lib/systemd/system/multi-user.target /etc/systemd/
su root
reboot
[admin@redhat7 桌面]$ history -c <==清空歷史命令記錄
[admin@redhat7 桌面]$ history
1 history
8.sosreport命令用於收集系統配置及架構信息並輸出診斷文檔(廠商遠程售後分析診斷)
示例:(將壓縮包和校驗碼發送便可)
[root@linuxprobe ~]# sosreport
sosreport (version 3.0)
...
No changes will be made to system configuration.
Press ENTER to continue, or CTRL-C to quit. <==此處敲擊回車來確認收集信息
Please enter your first initial and last name [linuxprobe.com]: <==此處敲擊回車來確認主機編號
Please enter the case number that you are generating this report for: <==此處敲擊回車來確認主機編號
...
/var/tmp/sosreport-linuxprobe.com-20170905230631.tar.xz <==收集好的資料壓縮文件
The checksum is: 79436cdf791327040efde48c452c6322 <==校驗碼
...
工做目錄切換命令
1.pwd命令用於顯示當前用戶所在的工做目錄
2.ls 命令
功能:列表(List)查看目錄及文件的屬性信息。不帶任何選項或參數時,默認顯示當前目錄的內容。
格式:ls [選項] [文件或目錄] · · ·
選項: -a 列出全部(All)文件和子目錄,包括以點」.「開頭的隱藏文件或目錄。
-A 列出全部文件和子目錄(包括隱藏文件或目錄),特殊目錄」.「和」..「除外 。
-l 以長格式(Long)顯示文件或目錄的詳細信息。
-d 只顯示目錄自己(Directory)的屬性信息,而不顯示其中的文件或子目錄。
示例:
[admin@redhat7 桌面]$ ls -al
總用量 4
drwxr-xr-x. 2 admin admin 6 3月 22 16:13 .
drwx------. 14 admin admin 4096 3月 23 15:26 ..
[admin@redhat7 桌面]$ ls -ld /etc
drwxr-xr-x. 133 root root 8192 3月 23 23:08 /etc
3.cd命令用於切換工做路徑
示例:
[admin@redhat7 桌面]$ cd /etc <==切換到/etc目錄
[admin@redhat7 etc]$ cd - <==返回到上一次的目錄
/home/admin/桌面
[admin@redhat7 桌面]$ cd ~ <==切換到用戶的家目錄
[admin@redhat7 ~]$
[admin@redhat7 ~]$ cd .. <==切換到上一級目錄
[admin@redhat7 home]$ cd . <==切換到當前目錄(注:.和..能夠理解爲相對路徑)
[admin@redhat7 home]$
文本文件編輯命令
1.cat命令
功能:一般用於查看純文本文件(內容較少)
格式:cat [參數] [文件]...
參數:-n 顯示文件內容時在每一行行首添加行號(Number) 。
2.more命令用於查看純文本文件(內容較多,more大小都能看);分頁顯示文件內容。按Enter鍵能夠逐行下翻,按空格鍵下翻一頁,按b鍵向上翻一頁;和管道符號」|「結合使用時通常只能向下翻頁,按q鍵退出。
3.head命令用於查看純文本文檔的前N行,格式:head [選項(-n)] [文件]
4.tail命令
功能:查看文件末尾指定行數(默認爲10行)的內容。
格式:tail [選項] [文件] · · ·
選項: -N 這裏的N爲用戶指定的行數(若不指定,默認顯示10行)。
-f 跟蹤文件中新增長(Follow)的內容,多用於觀察日誌文件變化等,按Ctrl+C鍵退出。
示例:
[root@sky ~]# tail -2 /etc/passwd
sky:x:500:500:sky:/home/sky:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
[root@sky ~]# tail -lf /var/log/messages
May 26 13:58:34 sky tpvmlpd2[2621]: device type not supported
5.less 命令用於分頁顯示文件內容,與more命令的相似,但使用更加靈活。按上下箭頭鍵先後逐行滾動查看,空格鍵或PageDown鍵向下翻頁,按b鍵或Pageup鍵向上翻頁,按q鍵退出。
6. wc命令
功能:統計文件的行數、單詞數和字節數等信息(Word Count)。默認選項爲」-lwc」。
格式:wc [選項] [文件] · · ·
選項:-c 統計文件內容中的字節數。
-l 統計文仲內容中的行數。
-w 統計文件內容中的單詞個數。
示例:
[root@sky ~]# ls -lh /etc/*.conf | wc -l
45
[root@sky ~]# wc /etc/fstab /etc/passwd
16 84 851 /etc/fstab
35 54 1653 /etc/passwd
51 138 2504 總用量
7.tr命令用於替換文本文件中的字符,格式爲「tr [原始字符] [目標字符]」
示例:
[root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
#VERSION=RHEL7
# SYSTEM AUTHORIZATION INFORMATION
AUTH --ENABLESHADOW --PASSALGO=SHA512
…
8.stat命令用於查看文件的具體存儲信息和時間等信息,格式爲「stat 文件名稱」。
stat命令能夠用於查看文件的存儲信息和時間等信息,命令stat anaconda-ks.cfg會顯示出文件的三種時間狀態:Access、Modify、Change。
示例:
[root@linuxprobe ~]# stat anaconda-ks.cfg
File: ‘anaconda-ks.cfg’
...
Access: 2017-07-14 01:46:18.721255659 -0400 <==查看時間,最後一次查看文件內容的時間
Modify: 2017-05-04 15:44:36.916027026 -0400 <==修改時間,最後一次修改文件內容的時間
Change: 2017-05-04 15:44:36.916027026 -0400 <==更改時間,最後一次變動文件屬性的時間(文件的全部者和權限信息)
Birth: -
9.cut命令用於按「列」提取文本字符,格式爲「cut [選項] 文本」。
10.diff命令用於比較多個文本文件的差別,格式爲「diff [選項] 文件」。
在使用diff命令時,不只可使用--brief參數來確認兩個文件是否不一樣,還可使用-c參數來詳細比較出多個文件的差別之處
示例:
[root@linuxprobe ~]# cat diff_A.txt <==使用cat命令分別查看diff_A.txt和diff_B.txt文件的內容,而後進行比較
Welcome to linuxprobe.com
Red Hat certified
Free Linux Lessons
…
[root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt <==diff --brief命令顯示比較後的結果,判斷文件是否相同
Files diff_A.txt and diff_B.txt differ
[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt <==最後使用帶有-c參數的diff命令來描述文件內容具體的不一樣
*** diff_A.txt 2017-08-30 18:07:45.230864626 +0800
--- diff_B.txt 2017-08-30 18:08:52.203860389 +0800
***************
*** 1,5 ****
…
文件目錄管理命令
1.file命令用於查看文件的類型,格式爲「file 文件名」。
2.mkdir命令
功能:建立新目錄(Make Directories)
格式:mkdir [選項] <目錄> · · ·
選項:-p 必要時連父目錄(Parent)一塊兒建立,若是目標目錄存在也不報錯。
3.cp 命令
功能:複製(Copy)文件或目錄,複製源是目錄或多個文件時,目標必須是目錄。
格式:cp [選項] <源文件或源目錄> · · · <目標文件或目錄>
選項:-f 覆蓋目標同名文件或目錄時不進行提醒,而直接強制(Force)複製。
-i 覆蓋目標同名文件或目錄時提醒用戶確認(lnteractive,交互式)。
-p 複製時保持(Preserve)源文件的權限,屬主及時間截等屬性不變。
-r 複製目錄時使用遞歸(Recursive)複製全部文件及子目錄。
示例:
[root@sky ~]# cp -rf /boot/grub/ ./
[root@sky ~]# cp /etc/init.d/httpd ./myhttpd
在Linux系統中,複製操做具體分爲3種狀況:
若是目標文件是目錄,則會把源文件複製到該目錄中;
若是目標文件也是普通文件,則會詢問是否要覆蓋它;
若是目標文件不存在,則執行正常的複製操做。
4.mv 命令
功能:移動(Move)文件或目錄,能夠在移動時更名(至關於剪切)。移動多個文件或目錄時目標必須是目錄。
格式:mv [選項] <源文件或源目錄> · · · <目標文件或目錄>
選項:-f 覆蓋目標同名文件或目錄時不進行提醒,而直接強制(Force)移動。
-i 覆蓋目標同名文件或目錄時提醒用戶確認(interactive交互式)。
5.rm 命令
功能:刪除指定的文件或目錄。
格式:rm [選項] <文件或目錄> · · ·
選項:-f 在刪除文件或目錄時不進行提醒,而直接強制(Force)刪除。
-i 在刪除文件或目錄時提醒用戶確認(lnteractive,交互式)。
-r 刪除目錄時使用,遞歸(Recursive)刪除全部文件及子目錄。
6.ln 命令
功能:爲文件或目錄創建連接(Link) ,硬連接不能用於目錄也不能跨硬盤分區。
格式:ln [參數] <源文件或源目錄>...< 連接文件位置>
參數:-s 創建軟連接即符號連接(Symbolic)文件,默認爲硬連接。
-f 若連接文件已存在,則直接強制(Force)覆蓋。
-I 在覆蓋目標連接文件時提醒用戶確認。
示例:
[root@sky ~]# ln -s /usr/local/httpd/bin/apachectl /usr/sbin/
[root@sky ~]# ln /etc/shadow /etc/shadow.bak
7.dd命令用於按照指定大小和個數的數據塊來複制文件或轉換文件,格式爲「dd [選項]」。
Linux系統中有一個名爲/dev/zero的設備文件,這個文件不會佔用系統存儲空間,但卻能夠提供無窮無盡的數據,所以可使用它做爲dd命令的輸入文件,來生成一個指定大小的文件。
選項:-if(input file) 輸入的文件名稱
-of(output file) 輸出的文件名稱
-bs 設置每一個「塊」的大小
-count 設置要複製「塊」的個數
示例:
[root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M <==用dd命令從/dev/zero設備文件中取出一個大小爲560MB的數據塊,而後保存成名爲560_file的文件。(默認單位爲字節)
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s
[root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso <==使用dd命令來壓制出光盤鏡像文件,將它變成一個可當即使用的iso鏡像
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s
8.touch命令
功能:用用於建立空白文件或設置文件的時間
格式:touch [選項] [文件]
對touch命令來說,有難度的操做主要是體如今設置文件內容的修改時間(mtime)、文件權限或屬性的更改時間(ctime)與文件的讀取時間(atime)上面。(接上面stat命令)
選項:-a 僅修改「讀取時間」(atime)
-m 僅修改「修改時間」(mtime)
-d 同時修改atime與mtime
示例:
先使用ls命令查看一個文件的修改時間,而後修改這個文件,最後再經過touch命令把修改後的文件時間設置成修改以前的時間(不少黑客就是這樣作的呢)
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1213 May 4 15:44 anaconda-ks.cfg
[root@linuxprobe ~]# echo "Visit the LinuxProbe.com to learn linux skills" >>
anaconda-ks.cfg
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 Aug 2 01:26 anaconda-ks.cfg
[root@linuxprobe ~]# touch -d "2017-05-04 15:44" anaconda-ks.cfg
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 May 4 15:44 anaconda-ks.cfg
注意:atime和mtime時間能夠修改,ctime不能修改
打包壓縮與收縮命令
1.tar命令
功能:將文件或目錄備份打包,並可經過選項調用gzip或bzip2程序將包文件進行壓縮,解壓。
格式:tar [選項] <包文件名> [文件或目錄]...
選項:-c 建立(Create).tar格式的包文件
-C 指定到解壓的目錄
-f 目標文件名
-j 調用bzip2程序進行壓縮或解壓
-p 打包時保存文件及目錄的權限
-P 打包時保存文件及目錄的絕對路徑
-t 查看壓縮包內的文件
-v 輸出詳細信息。
-x 解開.tar格式的包文件
-z 調用gzip程序進行壓縮或解壓
Tar czvf 壓縮包名稱.tar.gz 源文件
Tar xzvf 壓縮包名稱.tar.gz 源文件
示例:
[root@sky ~]# tar -cf ab.tar a.file b.file <==建立包文件ab.tar
[root@sky ~]# tar -tf ab.tar <==查看包文件中的內容
a.file b.file
[root@sky ~]# tar -zcf ab.tar.gz a.file b.file <==建立壓縮包文件ab.tar.gz
[root@sky ~]# tar -jcf ab.tar.bz2 a.file b.file <==建立壓縮包文件ab.tar.bz2
[root@sky ~]# tar -jxf ab.tar.bz2 -C /to/som/where <==解壓釋放文件至指定目錄
2.gzip /bzip2 / zip 命令
功能:建立.gz格式的壓縮文件,使用-d選項能夠進行解壓縮(或使月gunzip/ bunzip2命令)。
格式:gzip /bzip2 / zip [選項] <文件或目錄> · · ·
選項:-1 以最快速度優先的模式建立壓縮文件。
-9 以最大壓縮比優先的模式建立壓縮文件。
-d 解壓縮gz格式的壓縮文件。
3.unzip 命令
功能:解壓縮.zip格式的壓縮文件。
格式:unzip [ 選項] <壓縮文件名>
選項:-d 解壓到指定的文件夾。
4.grep 命令
功能:Linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是全部用戶。
格式:grep [選項] <查找字串> [文件]
選項:-i 查找內容時忽略大小寫(Ignore Case) 。
-v 反轉查找(Invert) 即輸出與查找條件不相符的行。
5.find命令
在Linux系統中,搜索工做通常都是經過find命令來完成的,它可使用不一樣的文件特性做爲尋找條件(如文件名、大小、修改時間、權限等信息),一旦匹配成功則默認將信息顯示到屏幕上
功能:按照指定條件來查找文件
格式:find <查找路徑> <查找條件> · · ·
選項:-name 按文件名稱查找,可使用通配符。
-size 匹配文件的大小(+50KB爲查找超過50KB的文件,而-50KB爲查找小於50KB的文件)
-prune 忽略某個目錄
-perm 匹配權限(mode爲徹底匹配,-mode爲包含便可)
-user 匹配全部者
-group 匹配全部組
-mtime -n +n 匹配修改內容的時間(-n指n天之內,+n指n天之前)
-atime -n +n 匹配訪問文件的時間(-n指n天之內,+n指n天之前)
-ctime -n +n 匹配修改文件權限的時間(-n指n天之內,+n指n天之前)
-type 按文件類型查找,類型f,d,l,b、c分別表示普通文件,目錄,連接文件,塊設備文件、字符設備文件。
示例:
[root@sky ~]# find /etc -name "passwd"
/etc/pam.d/passwd
/etc/passwd
[root@sky ~]# find /boot/ -size +1024k <==查找大於1M的文件
/boot/vmlinuz-2.6.32-358.el6.x86_64
/boot/System.map-2.6.32-358.el6.x86_64
參考資料
劉瑞 Linux就該怎麼學