Java開發(fā)人員必須掌握的Linux命令(一)
目錄
1耐床、登錄服務(wù)器SSH命令
簡單說,SSH是一種網(wǎng)絡(luò)協(xié)議弦讽,用于計算機之間的加密登錄粟矿。如果一個用戶從本地計算機凰棉,使用SSH協(xié)議登錄另一臺遠程計算機,我們就可以認為陌粹,這種登錄是安全的撒犀,即使被中途截獲,密碼也不會泄露掏秩。
最基本的用法:
常用格式:ssh [-l login_name] [-p port] [user@]hostname
例子:
ssh 192.168.1.110
ssh -l root 192.168.0.11
# 比較常用
ssh root@192.168.0.11
圖解:
ssh示例
2或舞、傳輸文件scp命令
scp命令用于Linux服務(wù)器之間復(fù)制文件和目錄。scp是 secure copy的縮寫, scp是linux系統(tǒng)下基于ssh登陸進行安全的遠程文件拷貝命令蒙幻。
最基本的用法:
常用格式:scp [可選參數(shù)] file_source remote_username@remote_ip:remote_folder
例子:
scp /home/test.log root@192.168.1.110:/home/happy/
注意: 使用scp命令要確保使用的用戶具有可讀取遠程服務(wù)器相應(yīng)文件的權(quán)限映凳,否則scp命令是無法起作用的。
3邮破、查看系統(tǒng)狀態(tài) top诈豌、free、df
top命令用于實時顯示 process 的動態(tài)抒和〗糜妫可以配合用來查詢vm的一些問題!具體參數(shù)不做介紹摧莽。
# 表示更新兩次后終止更新顯示
top -n 2
#表示更新周期為3秒
top -d 3
# 顯示進程號為2586的進程信息蚌斩,CPU、內(nèi)存占用率等
top -p 2586
更新顯示二次的結(jié)果輸入到名稱為 top.log 的檔案里
top -n 2 -b < top.log
free命令用于顯示內(nèi)存狀態(tài)范嘱。
# 顯示內(nèi)存使用信息 , -h 選項為根據(jù)大小適當(dāng)顯示(人類可以讀懂的方式)
free -h
# 每10s 執(zhí)行一次命令
free -hs 10
df 以磁盤分區(qū)為單位查看文件系統(tǒng),可以獲取硬盤被占用了多少空間员魏,目前還剩下多少空間等信息丑蛤。
# 查看磁盤信息, -h 選項為根據(jù)大小適當(dāng)顯示
df -h
du會顯示指定的目錄或文件所占用的磁盤空間撕阎。用于查看當(dāng)前目錄的總大小受裹。
# 通過排序的方式顯示前十條
[root@localhost ~]# du -am? | sort -nr | head -n 10
183 ./jdk-8u191-linux-x64.tar.gz
183 .
1? ./.viminfo
....
4、壓縮/解壓tar命令
tar是用來建立,還原備份文件的工具程序棉饶,它可以加入厦章,解開備份文件內(nèi)的文件。
壓縮文件
命令 : tar -zcvf 備份文件.tar.gz 備份文件/目錄
后綴也可以是.tgz照藻。
# 創(chuàng)建一個文件
[root@localhost ~]# touch text.log? ?
# 壓縮 text.tar.gz
[root@localhost ~]# tar -zcvf text.tar.gz text.log
[root@localhost ~]# tar -zcvf text.tgz text.log
text.log
[root@localhost ~]# ll
-rw-r--r--. 1 root root? ? ? 114 3月? 12 22:45 text.tgz
列出壓縮文件內(nèi)容
命令: tar -ztvf 備份文件.tar.gz 或 tar -ztvf 備份文件.tgz
[root@localhost ~]# tar -ztvf text.tar.gz
-rw-r--r-- root/root? ? ? ? 0 2019-03-12 22:41 text.log
[root@localhost ~]# tar -ztvf text.tgz
-rw-r--r-- root/root? ? ? ? 0 2019-03-12 22:41 text.log
解壓文件
命令: tar -zxvf 備份文件.tar.gz 或 tar -zxvf 備份文件.tgz
[root@localhost ~]# tar -zxvf text.tar.gz
-rw-r--r-- root/root? ? ? ? 0 2019-03-12 22:41 text.log
[root@localhost ~]# tar -zxvf text.tgz
-rw-r--r-- root/root? ? ? ? 0 2019-03-12 22:41 text.log
tar -z 壓縮(c)袜啃、查看(t)、解壓(x)vf
-z或--gzip或--ungzip 通過gzip指令處理備份文件
-c或--create 建立新的備份文件
-t或--list 列出備份文件的內(nèi)容
-x或--extract或--get 從備份文件中還原文件
-v或--verbose 顯示指令執(zhí)行過程
-f<備份文件>或--file=<備份文件> 指定備份文件
5幸缕、修改文件屬性chmod命令
Linux/Unix 的文件調(diào)用權(quán)限分為三級 : 文件擁有者群发、群組、其他发乔。利用 chmod 可以藉以控制文件如何被他人所調(diào)用熟妓。
讀,寫栏尚,執(zhí)行的權(quán)限起愈。r=4,w=2译仗,x=1
若要rwx屬性則4+2+1=7抬虽;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5古劲。
一般情況斥赋,賦值 命令
chmod 755 file
此外chmod也可以用字母來表示權(quán)限,這里就不進行說明产艾。
6疤剑、查找文件find命令
find命令用來在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名闷堡。如果使用該命令時隘膘,不設(shè)置任何參數(shù),則find命令將在當(dāng)前目錄下查找子目錄與文件杠览。并且將查找到的子目錄和文件全部進行顯示弯菊。
find . -iname \*.txt(大小寫都匹配)
find . -type d(當(dāng)前目錄下的所有子目錄)
find /usr -type l(當(dāng)前目錄下所有的符號鏈接)
find /usr -type l -name "z*" -ls(符號鏈接的詳細信息 eg:inode,目錄)
find /home/test -size +250000k(超過250000k的文件,當(dāng)然+改成-就是小于了)
find /home/test f -perm 777 -exec ls -l {} \; (按照權(quán)限查詢文件)
find /home/test -atime -1? 1天內(nèi)訪問過的文件
find /home/test -ctime -1? 1天內(nèi)狀態(tài)改變過的文件? ?
find /home/test -mtime -1? 1天內(nèi)修改過的文件
find /home/test -amin -1? 1分鐘內(nèi)訪問過的文件
find /home/test -cmin -1? 1分鐘內(nèi)狀態(tài)改變過的文件? ?
find /home/test -mmin -1? 1分鐘內(nèi)修改過的文件
#----------
#查找/var/log目錄中更改時間在7日以前的普通文件踱阿,并在刪除之前詢問它們
find /var/log -type f -mtime +7 -ok rm {} \;
#查找系統(tǒng)中所有文件長度為0的普通文件管钳,并列出它們的完整路徑
find / -type f -size 0 -exec ls -l {} \;
7、查詢字符 grep命令
grep命令用于查找文件里符合條件的字符串软舌。
grep指令用于查找內(nèi)容包含指定的范本樣式的文件才漆,如果發(fā)現(xiàn)某文件的內(nèi)容符合所指定的范本樣式,預(yù)設(shè)grep指令會把含有范本樣式的那一列顯示出來佛点。
# 顯示所有以d開頭的文件中包含test的行醇滥。
grep 'test' d*
# 顯示在text1黎比,text2,text3文件中匹配test的行鸳玩。
grep 'test' text1 text2 text3
# text文件中顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行阅虫。
grep '[a-z]\{5\}' text
# 查找文件名中包含 test 的文件中不包含test 的行
grep -v test *test*
8、查看端口占用netstat命令
netstat命令用于顯示網(wǎng)絡(luò)狀態(tài)不跟。
利用netstat指令可讓你得知整個Linux系統(tǒng)的網(wǎng)絡(luò)情況颓帝。
# 查看端口1212的使用情況
netstat -tln | grep 1212
查看端口屬于哪個程序
lsof -i :1212
9、查看文件內(nèi)容 tail命令
tail 命令可用于查看文件的內(nèi)容躬拢,有一個常用的參數(shù) -f 常用于查閱正在改變的日志文件躲履。
tail -f filename 會把 filename 文件里的最尾部的內(nèi)容顯示在屏幕上,并且不斷刷新聊闯,只要 filename 更新就可以看到最新的文件內(nèi)容工猜。
真實使用:
# 查看日志
tail -f? xxxx.out
# 查看 100行日志
tail? -n100 xxxx.out
# 查看帶有'test'的日志
tail -f | grep 'test' 這樣可以只顯示
10、停止應(yīng)用kill命令
kill命令用于刪除執(zhí)行中的程序或工作菱蔬。
查找tomcat服務(wù)篷帅,并徹底殺死進程。
# 查找tomcat服務(wù)器
ps aux | grep tomcat
root? 25689
# 殺掉進程 -9 強制殺
kill -9 25689
1.查找文件 find / -name filename.txt 根據(jù)名稱查找/目錄下的filename.txt文件拴泌。
find . -name "*.xml" 遞歸查找所有的xml文件
find . -name "*.xml" |xargs grep "hello world" 遞歸查找所有文件內(nèi)容中包含hello world的xml文件
grep -H 'spring' *.xml 查找所以有的包含spring的xml文件
find ./ -size 0 | xargs rm -f & 刪除文件大小為零的文件
ls -l | grep '.jar' 查找當(dāng)前目錄中的所有jar文件
grep 'test' d* 顯示所有以d開頭的文件中包含test的行魏身。
grep 'test' aa bb cc 顯示在aa,bb蚪腐,cc文件中匹配test的行箭昵。
grep '[a-z]\{5\}' aa 顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行。
2.查看一個程序是否運行 ps –ef|grep tomcat 查看所有有關(guān)tomcat的進程
3.終止線程 kill -9 19979 終止線程號位19979的進程
4.查看文件回季,包含隱藏文件 ls -al
5.當(dāng)前工作目錄 pwd
6.復(fù)制文件 cp source dest 復(fù)制文件 cp -r sourceFolder targetFolder 遞歸復(fù)制整個文件夾 scp sourecFile romoteUserName@remoteIp:remoteAddr 遠程拷貝
7.創(chuàng)建目錄 mkdir newfolder
8.刪除目錄 rmdir deleteEmptyFolder刪除空目錄 rm -rf deleteFile 遞歸刪除目錄中所有內(nèi)容
9.移動文件 mv /temp/movefile /targetFolder
10.重命令 mv oldNameFile newNameFile
11.切換用戶 su -username
12.修改文件權(quán)限 chmod 777 file.java //file.java的權(quán)限-rwxrwxrwx家制,r表示讀、w表示寫泡一、x表示可執(zhí)行
13.壓縮文件 tar -czf test.tar.gz /test1 /test2
14.列出壓縮文件列表 tar -tzf test.tar.gz
15.解壓文件 tar -xvzf test.tar.gz
16.查看文件頭10行 head -n 10 example.txt
17.查看文件尾10行 tail -n 10 example.txt
18.查看日志類型文件 tail -f exmaple.log//這個命令會自動顯示新增內(nèi)容颤殴,屏幕只顯示10行內(nèi)容的(可設(shè)置)。
19.使用超級管理員身份執(zhí)行命令 sudo rm a.txt 使用管理員身份刪除文件
20.查看端口占用情況 netstat -tln | grep 8080 查看端口8080的使用情況
21.查看端口屬于哪個程序 lsof -i :8080
22.查看進程 ps aux|grep java 查看java進程 ps aux查看所有進程
23.以樹狀圖列出目錄的內(nèi)容 tree a ps:Mac下使用tree命令
24.文件下載 wget http://file.tgz mac下安裝wget命令 curl http://file.tgz
25.網(wǎng)絡(luò)檢測 ping www.just-ping.com
26.遠程登錄 ssh userName@ip
27.打印信息 echo $JAVA_HOME 打印java home環(huán)境變量的值
28.java 常用命令 java javac jps ,jstat ,jmap, jstack
29.其他命令 svn git maven
文件查找和比較
1鼻忠、locate/slocate命令
locate命令其實是find -name的另一種寫法涵但,但是要比后者快得多,原因在于它不搜索具體目錄帖蔓,而是搜索一個數(shù)據(jù)庫/var/lib/locatedb矮瘟,這個數(shù)據(jù)庫中含有本地所有文件信息。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫塑娇,并且每天自動更新一次芥永,所以使用locate命令查不到最新變動過的文件。為了避免這種情況钝吮,可以在使用locate之前,先使用updatedb命令,手動更新數(shù)據(jù)庫奇瘦。
選項:
-d<目錄>或--database=<目錄>:指定數(shù)據(jù)庫所在的目錄棘催;
-u:更新slocate數(shù)據(jù)庫;
--help:顯示幫助耳标;
--version:顯示版本信息醇坝。
例子:
搜索etc目錄下所有以sh開頭的文件:
locate /etc/sh
搜索用戶主目錄下,所有以m開頭的文件:
locate ~/m
搜索用戶主目錄下次坡,所有以m開頭的文件呼猪,并且忽略大小寫:
locate -i ~/m
ps:centos7 默認沒有l(wèi)ocate命令,需要輸入“yum install mlocate”命令安裝砸琅,安裝完成后宋距,輸入“updatedb”更新數(shù)據(jù)庫
2、diff命令
diff命令在最簡單的情況下症脂,比較給定的兩個文件的不同谚赎。如果使用“-”代替“文件”參數(shù),則要比較的內(nèi)容將來自標準輸入诱篷。diff命令是以逐行的方式壶唤,比較文本文件的異同處尤泽。如果該命令指定進行目錄的比較厘唾,則將會比較該目錄中具有相同文件名的文件,而不會對其子目錄文件進行任何比較操作
選項參考網(wǎng)站:http://man.linuxde.net/diff
例子:
將目錄/usr/liangxj_pratice/logFile/下的文件"application.properties"與當(dāng)前目錄下的文件"application.properties"進行比較
diff /usr/liangxj_pratice/logFile/? application.properties
ps:還有個可以對比三個文件的命令:http://man.linuxde.net/diff3
3遗锣、find命令
find命令用來在指定目錄下查找文件琳省。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名迎吵。如果使用該命令時,不設(shè)置任何參數(shù)岛啸,則find命令將在當(dāng)前目錄下查找子目錄與文件钓觉。并且將查找到的子目錄和文件全部進行顯示
選項參考網(wǎng)站:http://man.linuxde.net/find
例子:
根據(jù)文件或者正則表達式進行匹配
列出當(dāng)前目錄及子目錄下所有文件和文件夾
find .
在/home目錄下查找以.txt結(jié)尾的文件名
find /home -name "*.txt"
同上,但忽略大小寫
find /home -iname "*.txt"
當(dāng)前目錄及子目錄下查找所有以.txt和.pdf結(jié)尾的文件
find . ?name"?.txt"?o?name"?.pdf"?name"?.txt"?o?name"?.pdf" 或 find . -name "*.txt" -o -name "*.pdf"
匹配文件路徑或者文件
find /usr/ -path "*local*"
基于正則表達式匹配文件路徑
find . -regex ".*\.txt∥\.pdf\.txt‖\.pdf$"
同上坚踩,但忽略大小寫
find . -iregex ".*\.txt∥\.pdf\.txt‖\.pdf$"
否定參數(shù)
找出/home下不是以.txt結(jié)尾的文件
find /home ! -name "*.txt"
根據(jù)文件類型進行搜索
find . -type 類型參數(shù)
類型參數(shù)列表:
f 普通文件
l 符號連接
d 目錄
c 字符設(shè)備
b 塊設(shè)備
s 套接字
p Fifo
基于目錄深度搜索
向下最大深度限制為3
find . -maxdepth 3 -type f
搜索出深度距離當(dāng)前目錄至少2個子目錄的所有文件
find . -mindepth 2 -type f
根據(jù)文件時間戳進行搜索
find . -type f 時間戳
UNIX/Linux文件系統(tǒng)每個文件都有三種時間戳:
訪問時間(-atime/天荡灾,-amin/分鐘):用戶最近一次訪問時間。
修改時間(-mtime/天瞬铸,-mmin/分鐘):文件最后一次修改時間批幌。
變化時間(-ctime/天,-cmin/分鐘):文件數(shù)據(jù)元(例如權(quán)限等)最后一次修改時間嗓节。
搜索最近七天內(nèi)被訪問過的所有文件
find . -type f -atime -7
搜索恰好在七天前被訪問過的所有文件
find . -type f -atime 7
搜索超過七天內(nèi)被訪問過的所有文件
find . -type f -atime +7
搜索訪問時間超過10分鐘的所有文件
find . -type f -amin +10
找出比file.log修改時間更長的所有文件
find . -type f -newer file.log
根據(jù)文件大小進行匹配
find . -type f -size 文件大小單元
文件大小單元:
b —— 塊(512字節(jié))
c —— 字節(jié)
w —— 字(2字節(jié))
k —— 千字節(jié)
M —— 兆字節(jié)
G —— 吉字節(jié)
搜索大于10KB的文件
find . -type f -size +10k
搜索小于10KB的文件
find . -type f -size -10k
搜索等于10KB的文件
find . -type f -size 10k
刪除匹配文件
刪除當(dāng)前目錄下所有.txt文件
find . -type f -name "*.txt" -delete
根據(jù)文件權(quán)限/所有權(quán)進行匹配
當(dāng)前目錄下搜索出權(quán)限為777的文件
find . -type f -perm 777
找出當(dāng)前目錄下權(quán)限不是644的php文件
find . -type f -name "*.php" ! -perm 644
找出當(dāng)前目錄用戶tom擁有的所有文件
find . -type f -user tom
找出當(dāng)前目錄用戶組sunk擁有的所有文件
find . -type f -group sunk
借助-exec選項與其他命令結(jié)合使用
找出當(dāng)前目錄下所有root的文件荧缘,并把所有權(quán)更改為用戶tom
find .-type f -user root -exec chown tom {} \;
上例中,{} 用于與-exec選項結(jié)合使用來匹配所有文件拦宣,然后會被替換為相應(yīng)的文件名截粗。
找出自己家目錄下所有的.txt文件并刪除
find $HOME/. -name "*.txt" -ok rm {} \;
上例中信姓,-ok和-exec行為一樣,不過它會給出提示绸罗,是否執(zhí)行相應(yīng)的操作意推。
查找當(dāng)前目錄下所有.txt文件并把他們拼接起來寫入到all.txt文件中
find . -type f -name "*.txt" -exec cat {} \;> all.txt
將30天前的.log文件移動到old目錄中
find . -type f -mtime +30 -name "*.log" -exec cp {} old \;
找出當(dāng)前目錄下所有.txt文件并以“File:文件名”的形式打印出來
find . -type f -name "*.txt" -exec printf "File: %s\n" {} \;
因為單行命令中-exec參數(shù)中無法使用多個命令,以下方法可以實現(xiàn)在-exec之后接受多條命令
-exec ./text.sh {} \;
搜索但跳出指定的目錄
查找當(dāng)前目錄或者子目錄下所有.txt文件珊蟀,但是跳過子目錄sk
find . -path "./sk" -prune -o -name "*.txt" -print
find其他技巧收集
要列出所有長度為零的文件
find . -empty
4菊值、which命令
which命令用于查找并顯示給定命令的絕對路徑,環(huán)境變量PATH中保存了查找命令時需要遍歷的目錄育灸。which指令會在環(huán)境變量$PATH設(shè)置的目錄里查找符合條件的文件腻窒。也就是說,使用which命令磅崭,就可以看到某個系統(tǒng)命令是否存在儿子,以及執(zhí)行的到底是哪一個位置的命令
選項:
-n<文件名長度>:制定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名绽诚;
-p<文件名長度>:與-n參數(shù)相同典徊,但此處的<文件名長度>包含了文件的路徑;
-w:指定輸出時欄位的寬度恩够;
-V:顯示版本信息卒落。
例子:
查找文件、顯示命令路徑:
[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]#? which adduser
/usr/sbin/adduser
文件內(nèi)容查看
1蜂桶、tail命令
tail命令用于輸入文件中的尾部內(nèi)容儡毕。tail命令默認在屏幕上顯示指定文件的末尾10行。如果給定的文件不止一個扑媚,則在顯示的每個文件前面加一個文件名標題腰湾。如果沒有指定文件或者文件名為“-”,則讀取標準輸入
選項:
--retry:即是在tail命令啟動時疆股,文件不可訪問或者文件稍后變得不可訪問费坊,都始終嘗試打開文件。使用此選項時需要與選項“——follow=name”連用旬痹;
-c<N>或——bytes=<N>:輸出文件尾部的N(N為整數(shù))個字節(jié)內(nèi)容附井;
-f<name/descriptor>或;--follow<nameldescript>:顯示文件最新追加的內(nèi)容两残∮酪悖“name”表示以文件名的方式監(jiān)視文件的變化∪斯“-f”與“-fdescriptor”等效沼死;
-F:與選項“-follow=name”和“--retry"連用時功能相同;
-n<N>或——line=<N>:輸出文件的尾部N(N位數(shù)字)行內(nèi)容崔赌。
--pid=<進程號>:與“-f”選項連用意蛀,當(dāng)指定的進程號的進程終止后耸别,自動退出tail命令;
-q或——quiet或——silent:當(dāng)有多個文件參數(shù)時浸间,不輸出各個文件名太雨;
-s<秒數(shù)>或——sleep-interal=<秒數(shù)>:與“-f”選項連用,指定監(jiān)視文件變化時間隔的秒數(shù)魁蒜;
-v或——verbose:當(dāng)有多個文件參數(shù)時,總是輸出各個文件名吩翻;
--help:顯示指令的幫助信息兜看;
--version:顯示指令的版本信息。
例子:
tail file (顯示文件file的最后10行)
tail +20 file (顯示文件file的內(nèi)容狭瞎,從第20行至文件末尾)
tail -c 10 file (顯示文件file的最后10個字符)
2细移、more命令
more命令是一個基于vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內(nèi)容熊锭,支持vi中的關(guān)鍵字定位操作弧轧。more名單中內(nèi)置了若干快捷鍵,常用的有H(獲得幫助信息)碗殷,Enter(向下翻滾一行)精绎,空格(向下滾動一屏),Q(退出命令)锌妻。
該命令一次顯示一屏文本代乃,滿屏后停下來,并且在屏幕的底部出現(xiàn)一個提示信息仿粹,給出至今己顯示的該文件的百分比:--More--(XX%)可以用下列不同的方法對提示做出回答:
按Space鍵:顯示文本的下一屏內(nèi)容搁吓。
按Enier鍵:只顯示文本的下一行內(nèi)容。
按斜線符|:接著輸入一個模式吭历,可以在文本中尋找下一個相匹配的模式堕仔。
按H鍵:顯示幫助屏,該屏上有相關(guān)的幫助信息晌区。
按B鍵:顯示上一屏內(nèi)容摩骨。
按Q鍵:退出rnore命令。
選項:
-<數(shù)字>:指定每屏顯示的行數(shù)契讲;
-d:顯示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”仿吞;
-c:不進行滾屏操作。每次刷新這個屏幕捡偏;
-s:將多個空行壓縮成一行顯示唤冈;
-u:禁止下劃線;
+<數(shù)字>:從指定數(shù)字的行開始顯示银伟。
例子:
顯示文件file的內(nèi)容你虹,但在顯示之前先清屏绘搞,并且在屏幕的最下方顯示完核的百分比。
more -dc file
顯示文件file的內(nèi)容傅物,每10行顯示一次夯辖,而且在顯示之前先清屏。
more -c -10 file
3董饰、less命令
less命令的作用與more十分相似蒿褂,都可以用來瀏覽文字檔案的內(nèi)容,不同的是less命令允許用戶向前或向后瀏覽文件卒暂,而more命令只能向前瀏覽啄栓。用less命令顯示文件時,用PageUp鍵向上翻頁也祠,用PageDown鍵向下翻頁昙楚。要退出less程序,應(yīng)按Q鍵
選項:
-e:文件內(nèi)容顯示完畢后诈嘿,自動退出堪旧;
-f:強制顯示文件;
-g:不加亮顯示搜索到的所有關(guān)鍵詞奖亚,僅顯示當(dāng)前顯示的關(guān)鍵字淳梦,以提高顯示速度;
-l:搜索時忽略大小寫的差異遂蛀;
-N:每一行行首顯示行號谭跨;
-s:將連續(xù)多個空行壓縮成一行顯示;
-S:在單行顯示較長的內(nèi)容李滴,而不換行顯示螃宙;
-x<數(shù)字>:將TAB字符顯示為指定個數(shù)的空格字符。
文件處理
1所坯、cat命令
cat命令連接文件并打印到標準輸出設(shè)備上谆扎,cat經(jīng)常用來顯示文件的內(nèi)容
注意:當(dāng)文件較大時,文本在屏幕上迅速閃過(滾屏)芹助,用戶往往看不清所顯示的內(nèi)容堂湖。因此,一般用more等命令分屏顯示状土。為了控制滾屏无蜂,可以按Ctrl+S鍵,停止?jié)L屏蒙谓;按Ctrl+Q鍵可以恢復(fù)滾屏斥季。按Ctrl+C(中斷)鍵可以終止該命令的執(zhí)行,并且返回Shell提示符狀態(tài)
選項:
-n或-number:有1開始對所有輸出的行數(shù)編號;
-b或--number-nonblank:和-n相似酣倾,只不過對于空白行不編號舵揭;
-s或--squeeze-blank:當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行躁锡;
-A:顯示不可打印字符午绳,行尾顯示“$”;
-e:等價于"-vE"選項映之;
-t:等價于"-vT"選項拦焚;
例子:
設(shè)ml和m2是當(dāng)前目錄下的兩個文件
cat m1 (在屏幕上顯示文件ml的內(nèi)容)
cat m1 m2 (同時顯示文件ml和m2的內(nèi)容)
cat m1 m2 > file (將文件ml和m2合并后放入文件file中)
目錄基本操作
1、install命令
install命令的作用是安裝或升級軟件或備份數(shù)據(jù)杠输,它的使用權(quán)限是所有用戶耕漱。install命令和cp命令類似,都可以將文件/目錄拷貝到指定的地點抬伺。但是,install允許你控制目標文件的屬性灾梦。install通常用于程序的makefile峡钓,使用它來將程序拷貝到目標(安裝)目錄。
選項:http://man.linuxde.net/install
例子:
install -d [option] DIRECTORY [DIRECTORY...]
支持多個若河,類似mkdir -p支持遞歸能岩。例如:install -d a/b/c e/f結(jié)果和mkdir -p a/b/c e/f一樣。
install [option] SOURCE DEST
復(fù)制SOURCE文件(測試不能是目錄)到DEST file(文件):
install a/e c
結(jié)果類似:
cp a/e c? ? #注意c必須是文件萧福。
有用選項-D:
install -D x a/b/c
效果類似:
mkdir -p a/b && cp x a/b/c
install [option] SOURCE [SOURCE...] DIRECTORY
復(fù)制多個SOURCE文件到目的目錄:
install a/* d
2拉鹃、tree命令: http://man.linuxde.net/tree
3、rmdir命令
rmdir命令用來刪除空目錄鲫忍。當(dāng)目錄不再被使用時膏燕,或者磁盤空間已到達使用限定值,就需要刪除失去使用價值的目錄悟民。利用rmdir命令可以從一個目錄中刪除一個或多個空的子目錄坝辫。該命令從一個目錄中刪除一個或多個子目錄,其中dirname佬表示目錄名射亏。如果dirname中沒有指定路徑近忙,則刪除當(dāng)前目錄下由dirname指定的目錄;如dirname中包含路徑智润,則刪除指定位置的目錄及舍。刪除目錄時,必須具有對其父目錄的寫權(quán)限窟绷。
注意:子目錄被刪除之前應(yīng)該是空目錄锯玛。就是說,該目錄中的所有文件必須用rm命令全部钾麸,另外更振,當(dāng)前工作目錄必須在被刪除目錄之上炕桨,不能是被刪除目錄本身,也不能是被刪除目錄的子目錄肯腕。
選項:
-p或--parents:刪除指定目錄后献宫,若該目錄的上層目錄已變成空目錄,則將其一并刪除实撒;
--ignore-fail-on-non-empty:此選項使rmdir命令忽略由于刪除非空目錄時導(dǎo)致的錯誤信息姊途;
-v或-verboes:顯示命令的詳細執(zhí)行過程;
--help:顯示命令的幫助信息知态;
--version:顯示命令的版本信息捷兰。
例子:
刪除子目錄os_1和其父目錄bin
cd /usr/meng/test
rmdir -p bin/os_1
4、mkdir命令
mkdir命令用來創(chuàng)建目錄负敏。該命令創(chuàng)建由dirname命名的目錄贡茅。如果在目錄名的前面沒有加任何路徑名,則在當(dāng)前目錄下創(chuàng)建由dirname指定的目錄其做;如果給出了一個已經(jīng)存在的路徑顶考,將會在該目錄下創(chuàng)建一個指定的目錄。在創(chuàng)建目錄時妖泄,應(yīng)保證新建的目錄與它所在目錄下的文件沒有重名驹沿。
注意:在創(chuàng)建文件時,不要把所有的文件都存放在主目錄中蹈胡,可以創(chuàng)建子目錄渊季,通過它們來更有效地組織文件。最好采用前后一致的命名方式來區(qū)分文件和目錄罚渐。例如却汉,目錄名可以以大寫字母開頭,這樣搅轿,在目錄列表中目錄名就出現(xiàn)在前面病涨。
在一個子目錄中應(yīng)包含類型相似或用途相近的文件。例如璧坟,應(yīng)建立一個子目錄既穆,它包含所有的數(shù)據(jù)庫文件,另有一個子目錄應(yīng)包含電子表格文件雀鹃,還有一個子目錄應(yīng)包含文字處理文檔幻工,等等。目錄也是文件黎茎,它們和普通文件一樣遵循相同的命名規(guī)則囊颅,并且利用全路徑可以唯一地指定一個目錄。
選項:
-Z:設(shè)置安全上下文,當(dāng)使用SELinux時有效踢代;
-m<目標屬性>或--mode<目標屬性>建立目錄的同時設(shè)置目錄的權(quán)限盲憎;
-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一并建立上層目錄胳挎;
--version 顯示版本信息饼疙。
例子:
在目錄/usr/meng下建立子目錄test,并且只有文件主有讀慕爬、寫和執(zhí)行權(quán)限窑眯,其他人無權(quán)訪問
mkdir -m 700 /usr/meng/test
在當(dāng)前目錄中建立bin和bin下的os_1目錄,權(quán)限設(shè)置為文件主可讀医窿、寫磅甩、執(zhí)行,同組用戶可讀和執(zhí)行姥卢,其他用戶無權(quán)訪問
mkdir -p-m 750 bin/os_1
5卷要、rm命令
rm命令可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉独榴。對于鏈接文件却妨,只是刪除整個鏈接文件,而原有文件保持不變括眠。
注意:使用rm命令要格外小心。因為一旦刪除了一個文件倍权,就無法再恢復(fù)它掷豺。所以,在刪除文件之前薄声,最好再看一下文件的內(nèi)容当船,確定是否真要刪除。rm命令可以用-i選項默辨,這個選項在使用文件擴展名字符刪除多個文件時特別有用德频。使用這個選項,系統(tǒng)會要求你逐一確定是否要刪除缩幸。這時壹置,必須輸入y并按Enter鍵,才能刪除文件表谊。如果僅按Enter鍵或其他字符钞护,文件不會被刪除。
選項:
-d:直接把欲刪除的目錄的硬連接數(shù)據(jù)刪除成0爆办,刪除該目錄难咕;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理余佃,將指定目錄下的所有文件與子目錄一并處理暮刃;
--preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執(zhí)行過程爆土。
例子:
交互式刪除當(dāng)前目錄下的文件test和example
rm -i test example
刪除當(dāng)前目錄下除隱含文件外的所有文件和子目錄
# rm -r *
6椭懊、pwd命令
7、ls命令
8雾消、mv命令
9灾搏、cp命令
10、cd命令
文件權(quán)限屬性設(shè)置
1立润、chmod命令
chmod命令用來變更文件或目錄的權(quán)限狂窑。在UNIX系統(tǒng)家族里,文件或目錄權(quán)限的控制分別以讀取桑腮、寫入泉哈、執(zhí)行3種一般權(quán)限來區(qū)分,另有3種特殊權(quán)限可供運用破讨。用戶可以使用chmod指令去變更文件與目錄的權(quán)限丛晦,設(shè)置方式采用文字或數(shù)字代號皆可。符號連接的權(quán)限無法變更提陶,如果用戶對符號連接修改權(quán)限烫沙,其改變會作用在被連接的原始文件。
權(quán)限范圍的表示法如下:
u User隙笆,即文件或目錄的擁有者锌蓄;
g Group,即文件或目錄的所屬群組撑柔;
o Other瘸爽,除了文件或目錄擁有者或所屬群組之外,其他用戶皆屬于這個范圍铅忿;
a All剪决,即全部的用戶,包含擁有者檀训,所屬群組以及其他用戶柑潦;
r 讀取權(quán)限,數(shù)字代號為“4”;
w 寫入權(quán)限峻凫,數(shù)字代號為“2”妒茬;
x 執(zhí)行或切換權(quán)限,數(shù)字代號為“1”蔚晨;
- 不具任何權(quán)限乍钻,數(shù)字代號為“0”肛循;
s 特殊功能說明:變更文件或目錄的權(quán)限。
選項:
-c或——changes:效果類似“-v”參數(shù)银择,但僅回報更改的部分多糠;
-f或--quiet或——silent:不顯示錯誤信息;
-R或——recursive:遞歸處理浩考,將指令目錄下的所有文件及子目錄一并處理夹孔;
-v或——verbose:顯示指令執(zhí)行過程;
--reference=<參考文件或目錄>:把指定文件或目錄的所屬群組全部設(shè)成和參考文件或目錄的所屬群組相同析孽;
<權(quán)限范圍>+<權(quán)限設(shè)置>:開啟權(quán)限范圍的文件或目錄的該選項權(quán)限設(shè)置搭伤;
<權(quán)限范圍>-<權(quán)限設(shè)置>:關(guān)閉權(quán)限范圍的文件或目錄的該選項權(quán)限設(shè)置;
<權(quán)限范圍>=<權(quán)限設(shè)置>:指定權(quán)限范圍的文件或目錄的該選項權(quán)限設(shè)置袜瞬;
例子:
rwx rw- r--
r=讀取屬性 //值=4
w=寫入屬性 //值=2
x=執(zhí)行屬性 //值=1
chmod u+x,g+w f01 //為文件f01設(shè)置自己可以執(zhí)行怜俐,組員可以寫入的權(quán)限
chmod u=rwx,g=rw,o=r f01
chmod 764 f01
chmod a+x f01 //對文件f01的u,g,o都設(shè)置可執(zhí)行屬性
2、chown命令
chown命令改變某個文件或目錄的所有者和所屬的組邓尤,該命令可以向某個用戶授權(quán)拍鲤,使該用戶變成指定文件的所有者或者改變文件所屬的組。用戶可以是用戶或者是用戶D汞扎,用戶組可以是組名或組id季稳。文件名可以使由空格分開的文件列表,在文件名中可以包含通配符澈魄。
只有文件主和超級用戶才可以便用該命令
選項:
-c或——changes:效果類似“-v”參數(shù)景鼠,但僅回報更改的部分;
-f或--quite或——silent:不顯示錯誤信息痹扇;
-h或--no-dereference:只對符號連接的文件作修改莲蜘,而不更改其他任何相關(guān)文件;
-R或——recursive:遞歸處理帘营,將指定目錄下的所有文件及子目錄一并處理;
-v或——version:顯示指令執(zhí)行過程逐哈;
--dereference:效果和“-h”參數(shù)相同芬迄;
--help:在線幫助;
--reference=<參考文件或目錄>:把指定文件或目錄的擁有者與所屬群組全部設(shè)成和參考文件或目錄的擁有者與所屬群組相同昂秃;
--version:顯示版本信息禀梳。
例子:
將目錄/usr/meng及其下面的所有文件、子目錄的文件主改成 liu:
chown -R liu /usr/meng
3肠骆、file命令
file命令用來探測給定文件的類型算途。file命令對文件的檢查分為文件系統(tǒng)、魔法幻數(shù)檢查和語言檢查3個過程蚀腿。
選項:
-b:列出辨識結(jié)果時嘴瓤,不顯示文件名稱扫外;
-c:詳細顯示指令執(zhí)行過程,便于排錯或分析程序執(zhí)行的情形廓脆;
-f<名稱文件>:指定名稱文件筛谚,其內(nèi)容有一個或多個文件名稱時,讓file依序辨識這些文件停忿,格式為每列一個文件名稱驾讲;
-L:直接顯示符號連接所指向的文件類別;
-m<魔法數(shù)字文件>:指定魔法數(shù)字文件席赂;
-v:顯示版本信息吮铭;
-z:嘗試去解讀壓縮文件的內(nèi)容。
例子:
file install.log
4颅停、egrep命令
egrep命令用于在文件內(nèi)查找指定的字符串谓晌。egrep執(zhí)行效果與grep -E相似,使用的語法及參數(shù)可參照grep指令便监,與grep的不同點在于解讀字符串的方法扎谎。egrep是用extended regular expression語法來解讀的,而grep則用basic regular expression 語法解讀烧董,extended regular expression比basic regular expression的表達更規(guī)范毁靶。
例子:
egrep "system" application.properties
5、grep命令
它能使用正則表達式搜索文本逊移,并把匹配的行打印出來
選項/例子:http://man.linuxde.net/grep
6预吆、fgrep命令:http://man.linuxde.net/fgrep
7、comm命令
comm命令可以用于兩個文件之間的比較胳泉,它有一些選項可以用來調(diào)整輸出拐叉,以便執(zhí)行交集、求差扇商、以及差集操作凤瘦。
交集:打印出兩個文件所共有的行。
求差:打印出指定文件所包含的且不相同的行案铺。
差集:打印出包含在一個文件中蔬芥,但不包含在其他指定文件中的行。
選項:
-1:不顯示在第一個文件出現(xiàn)的內(nèi)容控汉;
-2:不顯示在第二個文件中出現(xiàn)的內(nèi)容笔诵;
-3:不顯示同時在兩個文件中都出現(xiàn)的內(nèi)容
文件壓縮與解壓
1、zip命令
zip命令可以用來解壓縮文件姑子,或者對文件進行打包操作乎婿。zip是個使用廣泛的壓縮程序,文件經(jīng)它壓縮后會另外產(chǎn)生具有“.zip”擴展名的壓縮文件街佑。
選項:http://man.linuxde.net/zip
例子:
現(xiàn)在我的html目錄下谢翎,我操作的zip壓縮命令是:
zip -q -r html.zip *
ps:centos沒有zip命令捍靠。輸入“yum install zip unzip ”可以安裝
2、gzip命令
gzip命令用來壓縮文件岳服。gzip是個使用廣泛的壓縮程序剂公,文件經(jīng)它壓縮過后,其名稱后面會多處“.gz”擴展名吊宋。
gzip是在Linux系統(tǒng)中經(jīng)常使用的一個對文件進行壓縮和解壓縮的命令纲辽,既方便又好用。gzip不僅可以用來壓縮大的璃搜、較少使用的文件以節(jié)省磁盤空間拖吼,還可以和tar命令一起構(gòu)成Linux操作系統(tǒng)中比較流行的壓縮文件格式。據(jù)統(tǒng)計这吻,gzip命令對文本文件有60%~70%的壓縮率吊档。減少文件大小有兩個明顯的好處,一是可以減少存儲空間唾糯,二是通過網(wǎng)絡(luò)傳輸文件時怠硼,可以減少傳輸?shù)臅r間
選項:
-a或——ascii:使用ASCII文字模式;
-d或--decompress或----uncompress:解開壓縮文件移怯;
-f或——force:強行壓縮文件香璃。不理會文件名稱或硬連接是否存在以及該文件是否為符號連接;
-h或——help:在線幫助舟误;
-l或——list:列出壓縮文件的相關(guān)信息葡秒;
-L或——license:顯示版本與版權(quán)信息;
-n或--no-name:壓縮文件時嵌溢,不保存原來的文件名稱及時間戳記眯牧;
-N或——name:壓縮文件時,保存原來的文件名稱及時間戳記赖草;
-q或——quiet:不顯示警告信息学少;
-r或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一并處理秧骑;
-S或<壓縮字尾字符串>或----suffix<壓縮字尾字符串>:更改壓縮字尾字符串版确;
-t或——test:測試壓縮文件是否正確無誤;
-v或——verbose:顯示指令執(zhí)行過程腿堤;
-V或——version:顯示版本信息;
-<壓縮效率>:壓縮效率是一個介于1~9的數(shù)值如暖,預(yù)設(shè)值為“6”,指定愈大的數(shù)值,壓縮效率就會愈高颂暇;
--best:此參數(shù)的效果和指定“-9”參數(shù)相同;
--fast:此參數(shù)的效果和指定“-1”參數(shù)相同士修。
例子:
把test6目錄下的每個文件壓縮成.gz文件
gzip *
把上例中每個壓縮的文件解壓,并列出詳細的信息
gzip -dv *
詳細顯示例1中每個壓縮的文件的信息樱衷,并不解壓
gzip -l *
壓縮一個tar備份文件棋嘲,此時壓縮文件的擴展名為.tar.gz
gzip -r log.tar
遞歸的壓縮目錄
gzip -rv test6
這樣,所有test下面的文件都變成了*.gz矩桂,目錄依然存在只是目錄里面的文件相應(yīng)變成了*.gz.這就是壓縮沸移,和打包不同。因為是對目錄操作侄榴,所以需要加上-r選項雹锣,這樣也可以對子目錄進行遞歸了。
遞歸地解壓目錄
gzip -dr test6
3癞蚕、tar命令
tar命令可以為linux的文件和目錄創(chuàng)建檔案蕊爵。利用tar,可以為某一特定文件創(chuàng)建檔案(備份文件)桦山,也可以在檔案中改變文件攒射,或者向檔案中加入新的文件。tar最初被用來在磁帶上創(chuàng)建檔案恒水,現(xiàn)在会放,用戶可以在任何設(shè)備上創(chuàng)建檔案。利用tar命令寇窑,可以把一大堆的文件和目錄全部打包成一個文件鸦概,這對于備份文件或?qū)讉€文件組合成為一個文件以便于網(wǎng)絡(luò)傳輸是非常有用的。
首先要弄清兩個概念:打包和壓縮甩骏。打包是指將一大堆文件或目錄變成一個總的文件窗市;壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。
選項:
-A或--catenate:新增文件到以存在的備份文件饮笛;
-B:設(shè)置區(qū)塊大凶刹臁;
-c或--create:建立新的備份文件福青;
-C <目錄>:這個選項用在解壓縮摄狱,若要在特定目錄解壓縮,可以使用這個選項无午。
-d:記錄文件的差別媒役;
-x或--extract或--get:從備份文件中還原文件;
-t或--list:列出備份文件的內(nèi)容宪迟;
-z或--gzip或--ungzip:通過gzip指令處理備份文件酣衷;
-Z或--compress或--uncompress:通過compress指令處理備份文件;
-f<備份文件>或--file=<備份文件>:指定備份文件次泽;
-v或--verbose:顯示指令執(zhí)行過程穿仪;
-r:添加文件到已經(jīng)壓縮的文件席爽;
-u:添加改變了和現(xiàn)有的文件到已經(jīng)存在的壓縮文件;
-j:支持bzip2解壓文件啊片;
-v:顯示操作過程只锻;
-l:文件系統(tǒng)邊界設(shè)置;
-k:保留原有文件不覆蓋紫谷;
-m:保留文件不被覆蓋齐饮;
-w:確認壓縮文件的正確性;
-p或--same-permissions:用原來的文件權(quán)限還原文件碴里;
-P或--absolute-names:文件名使用絕對名稱沈矿,不移除文件名稱前的“/”號;
-N <日期格式> 或 --newer=<日期時間>:只將較指定日期更新的文件保存到備份文件里咬腋;
--exclude=<范本樣式>:排除符合范本樣式的文件羹膳。
例子:
將文件全部打包成tar包:
tar -cvf log.tar log2012.log? ? 僅打包,不壓縮根竿!
tar -zcvf log.tar.gz log2012.log? 打包后陵像,以 gzip 壓縮
tar -jcvf log.tar.bz2 log2012.log? 打包后,以 bzip2 壓縮
將tar包解壓縮:
tar -zxvf /opt/soft/test/log.tar.gz
文件備份和恢復(fù)
1寇壳、cpio命令
cpio命令主要是用來建立或者還原備份檔的工具程序醒颖,cpio命令可以復(fù)制文件到歸檔包中,或者從歸檔包中復(fù)制文件
選項:http://man.linuxde.net/cpio
例子:
將/etc下的所有普通文件都備份到/opt/etc.cpio壳炎,使用以下命令:
find /etc –type f | cpio –ocvB >/opt/etc.cpio
將系統(tǒng)上所有資料備份到磁帶機內(nèi)泞歉,使用以下命令:
find / -print | cpio -covB > /dev/st0
這里的/dev/st0是磁帶的設(shè)備名,代表SCSI磁帶機匿辩。
查看上例磁帶機上備份的文件腰耙,使用以下命令:
cpio? -icdvt < /dev/st0 > /tmp/st_content
有時可能因為備份的文件過多,一個屏幕無法顯示完畢铲球,此時我們利用下面命令挺庞,讓磁帶機的文件信息輸出到文件。
將示例1中的備份包還原到相應(yīng)的位置稼病,如果有相同文件進行覆蓋选侨,使用以下命令:
cpio –icduv < /opt/etc.cpio
注意,cpio恢復(fù)的路徑然走,如果cpio在打包備份的時候用的是絕對路徑援制,那么在恢復(fù)的時候會自動恢復(fù)到這些絕對路徑下,本例就會將備份文件全部還原到/etc路徑下對應(yīng)的目錄中芍瑞。同理晨仑,如果在打包備份用的是相對路徑,還原時也將恢復(fù)到相對路徑下。
通過上面的示例寻歧,可以看出,cpio無法直接讀取文件秩仆,它需要每個文件或者目錄的完整路徑名才能識別讀取码泛,而find命令的輸出剛好做到了這點,因此澄耍,cpio命令一般和find命令配合使用噪珊。其實,上面的示例我們已經(jīng)看到了它們的組合用法齐莲。
2痢站、dump命令
dump命令用于備份ext2或者ext3文件系統(tǒng)⊙⌒铮可將目錄或整個文件系統(tǒng)備份至指定的設(shè)備阵难,或備份成一個大文件
選項:
-0123456789:備份的層級;
-b<區(qū)塊大小>:指定區(qū)塊的大小芒填,單位為KB呜叫;
-B<區(qū)塊數(shù)目>:指定備份卷冊的區(qū)塊數(shù)目;
-c:修改備份磁帶預(yù)設(shè)的密度與容量殿衰;
-d<密度>:設(shè)置磁帶的密度朱庆。單位為BPI;
-f<設(shè)備名稱>:指定備份設(shè)備闷祥;
-h<層級>:當(dāng)備份層級等于或大于指定的層級時娱颊,將不備份用戶標示為“nodump”的文件;
-n:當(dāng)備份工作需要管理員介入時凯砍,向所有“operator”群組中的使用者發(fā)出通知箱硕;
-s<磁帶長度>:備份磁帶的長度,單位為英尺果覆;
-T<日期>:指定備份的時間與日期颅痊;
-u:備份完畢后,在/etc/dumpdates中記錄備份的文件系統(tǒng)局待、層級斑响、日期與時間等;
-w:與-W類似钳榨,但僅顯示需要備份的文件舰罚;
-W:顯示需要備份的文件及其最后一次備份的層級、時間與日期薛耻。
例子:
將/home目錄所有內(nèi)容備份到/tmp/homeback.bak文件中营罢,備份層級為0并在/etc/dumpdates中記錄相關(guān)信息:
dump -0u -f /tmp/homeback.bak /home
將/home目錄所有內(nèi)容備份到/tmp/homeback.bak文件中,備份層級為1(只備份上次使用層次0備份后發(fā)生過改變的數(shù)據(jù))并在/etc/dumpdates中記錄相關(guān)信息:
dump -1u -f /tmp/homeback.bak /home
通過dump命令的備份層級,可實現(xiàn)完整+增量備份饲漾、完整+差異備份蝙搔,在配合crontab可以實現(xiàn)無人值守備份。
3考传、restore命令
restore命令是dump命令的逆過程吃型,用于還原dump命令生成的備份文件。傾倒操作可用來備份文件僚楞,而還原操作則是寫回這些已備份的文件勤晚。
選項:
-b<區(qū)塊大小>:設(shè)置區(qū)塊大小,單位為Byte泉褐;
-c:不檢查傾倒操作的備份格式赐写,僅準許讀取使用舊格式的備份文件;
-C:使用對比模式膜赃,將備份的文件與現(xiàn)行的文件相互對比挺邀;
-D<文件系統(tǒng)>:允許用戶指定文件系統(tǒng)的名稱;
-f<備份文件>:從指定的文件中讀取備份數(shù)據(jù)跳座,進行還原操作悠夯;
-h:僅解除目錄而不包括與該目錄相關(guān)的所有文件;
-i:使用互動模式躺坟,在進行還原操作時沦补,restore指令將依序詢問用戶;
-m:解開符合指定的inode編號的文件或目錄而非用文件名稱指定咪橙;
-r:進行還原操作夕膀;
-R:全面還原文件系統(tǒng)時,檢查應(yīng)從何處開始進行美侦;
-s<文件編號>:當(dāng)備份數(shù)據(jù)超過一卷磁帶時产舞,用戶可以指定備份文件的編號;
-t:指定文件名稱菠剩,若該文件已存在備份文件中易猫,則列出它們的名稱;
-v:顯示指令執(zhí)行過程具壮;
-x:設(shè)置文件名稱准颓,且從指定的存儲媒體里讀入它們,若該文件已存在在備份文件中棺妓,則將其還原到文件系統(tǒng)內(nèi)攘已;
-y:不詢問任何問題,一律以同意回答并繼續(xù)執(zhí)行指令怜跑。
例子:
dump -9 -u -f /dev/hda3 /home/frank/
用restore命令來恢復(fù)備份:
restore rf /dev/hda3 /home/frank
用restore命令來查看備份文件里的文件列表:
restore ft /dev/hda3
Shell內(nèi)建命令
1样勃、history命令
history命令用于顯示指定數(shù)目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區(qū)和將歷史命令緩沖區(qū)中的目錄寫入命令文件。
該命令單獨使用時峡眶,僅顯示歷史命令剧防,在命令行中,可以使用符號!執(zhí)行指定序號的歷史命令辫樱。例如诵姜,要執(zhí)行第2個歷史命令,則輸入!2搏熄。
歷史命令是被保存在內(nèi)存中的,當(dāng)退出或者登錄shell時暇赤,會自動保存或讀取心例。在內(nèi)存中,歷史命令僅能夠存儲1000條歷史命令鞋囊,該數(shù)量是由環(huán)境變量HISTSIZE進行控制止后。
選項:
-c:清空當(dāng)前歷史命令;
-a:將歷史命令緩沖區(qū)中命令寫入歷史命令文件中溜腐;
-r:將歷史命令文件中的命令讀入當(dāng)前歷史命令緩沖區(qū)译株;
-w:將當(dāng)前歷史命令緩沖區(qū)命令寫入歷史命令文件中。
例子:
使用history命令顯示最近使用的10條歷史命令挺益,輸入如下命令:
[root@localhost ~]# history 10
2歉糜、kill命令
kill命令用來刪除執(zhí)行中的程序或工作。kill可將指定的信息送至程序望众。預(yù)設(shè)的信息為SIGTERM(15),可將指定程序終止匪补。若仍無法終止該程序,可使用SIGKILL(9)信息嘗試強制刪除程序烂翰。程序或工作的編號可利用ps指令或job指令查看夯缺。
選項:
-a:當(dāng)處理當(dāng)前進程時,不限制命令名和進程號的對應(yīng)關(guān)系甘耿;
-l <信息編號>:若不加<信息編號>選項踊兜,則-l參數(shù)會列出全部的信息名稱;
-p:指定kill 命令只打印相關(guān)進程的進程號佳恬,而不發(fā)送任何信號捏境;
-s <信息名稱或編號>:指定要送出的信息;
-u:指定用戶毁葱。
3典蝌、export命令
export命令用于將shell變量輸出為環(huán)境變量,或者將shell函數(shù)輸出為環(huán)境變量头谜。
一個變量創(chuàng)建時骏掀,它不會自動地為在它之后創(chuàng)建的shell進程所知。而命令export可以向后面的shell傳遞變量的值。當(dāng)一個shell腳本調(diào)用并執(zhí) 行時截驮,它不會自動得到原為腳本(調(diào)用者)里定義的變量的訪問權(quán)笑陈,除非這些變量已經(jīng)被顯式地設(shè)置為可用。export命令可以用于傳遞一個或多個變量的值到任何后繼腳本葵袭。
選項:
-f:代表[變量名稱]中為函數(shù)名稱涵妥;
-n:刪除指定的變量。變量實際上并未刪除坡锡,只是不會輸出到后續(xù)指令的執(zhí)行環(huán)境中蓬网;
-p:列出所有的shell賦予程序的環(huán)境變量。
例子:
一般來說鹉勒,配置交叉編譯工具鏈的時候需要指定編譯工具的路徑帆锋,此時就需要設(shè)置環(huán)境變量。查看已經(jīng)存在的環(huán)境變量:
[root@localhost ~]# export
性能監(jiān)測與優(yōu)化
1禽额、netHogs命令
NetHogs是一個開源的命令行工具(類似于Linux的top命令)锯厢,用來按進程或程序?qū)崟r統(tǒng)計網(wǎng)絡(luò)帶寬使用率
設(shè)置5秒鐘的刷新頻率
nethogs -d 5
如果只用來監(jiān)視設(shè)備(eth0)的網(wǎng)絡(luò)帶寬可以使用如下命令:
# nethogs eth0
2、top命令
top命令可以實時動態(tài)地查看系統(tǒng)的整體運行情況脯倒,是一個綜合了多方信息監(jiān)測系統(tǒng)性能和運行信息的實用工具
選項:
-b:以批處理模式操作实辑;
-c:顯示完整的治命令;
-d:屏幕刷新間隔時間藻丢;
-I:忽略失效過程剪撬;
-s:保密模式;
-S:累積模式悠反;
-i<時間>:設(shè)置間隔時間婿奔;
-u<用戶名>:指定用戶名;
-p<進程號>:指定進程问慎;
-n<次數(shù)>:循環(huán)顯示的次數(shù)萍摊。
3、free命令
free命令可以顯示當(dāng)前系統(tǒng)未使用的和已使用的內(nèi)存數(shù)目如叼,還可以顯示被內(nèi)核使用的內(nèi)存緩沖區(qū)
選項:
-b:以Byte為單位顯示內(nèi)存使用情況冰木;
-k:以KB為單位顯示內(nèi)存使用情況;
-m:以MB為單位顯示內(nèi)存使用情況笼恰;
-o:不顯示緩沖區(qū)調(diào)節(jié)列踊沸;
-s<間隔秒數(shù)>:持續(xù)觀察內(nèi)存使用狀況;
-t:顯示內(nèi)存總和列社证;
-V:顯示版本信息逼龟。
例子:
free -m
網(wǎng)絡(luò)應(yīng)用
1、wget命令
wget命令用來從指定的URL下載文件追葡。wget非常穩(wěn)定腺律,它在帶寬很窄的情況下和不穩(wěn)定網(wǎng)絡(luò)中有很強的適應(yīng)性奕短,如果是由于網(wǎng)絡(luò)的原因下載失敗,wget會不斷的嘗試匀钧,直到整個文件下載完畢翎碑。如果是服務(wù)器打斷下載過程,它會再次聯(lián)到服務(wù)器上從停止的地方繼續(xù)下載之斯。這對從那些限定了鏈接時間的服務(wù)器上下載大文件非常有用
選項:
-a<日志文件>:在指定的日志文件中記錄資料的執(zhí)行過程日杈;
-A<后綴名>:指定要下載文件的后綴名,多個后綴名之間使用逗號進行分隔佑刷;
-b:進行后臺的方式運行wget莉擒;
-B<連接地址>:設(shè)置參考的連接地址的基地地址;
-c:繼續(xù)執(zhí)行上次終端的任務(wù)瘫絮;
-C<標志>:設(shè)置服務(wù)器數(shù)據(jù)塊功能標志on為激活涨冀,off為關(guān)閉,默認值為on檀何;
-d:調(diào)試模式運行指令;
-D<域名列表>:設(shè)置順著的域名列表廷支,域名之間用“频鉴,”分隔;
-e<指令>:作為文件“.wgetrc”中的一部分執(zhí)行指定的指令恋拍;
-h:顯示指令幫助信息垛孔;
-i<文件>:從指定文件獲取要下載的URL地址;
-l<目錄列表>:設(shè)置順著的目錄列表施敢,多個目錄用“周荐,”分隔;
-L:僅順著關(guān)聯(lián)的連接僵娃;
-r:遞歸下載方式概作;
-nc:文件存在時,下載文件不覆蓋原有文件默怨;
-nv:下載時只顯示更新和出錯信息讯榕,不顯示指令的詳細執(zhí)行過程;
-q:不顯示指令執(zhí)行過程匙睹;
-nh:不查詢主機名稱愚屁;
-v:顯示詳細執(zhí)行過程;
-V:顯示版本信息痕檬;
--passive-ftp:使用被動模式PASV連接FTP服務(wù)器霎槐;
--follow-ftp:從HTML文件中下載FTP連接文件。
例子:
使用wget下載單個文件
wget http://www.linuxde.net/testfile.zip
其余例子:http://man.linuxde.net/wget
常用工具命令
1梦谜、date命令
date命令是顯示或設(shè)置系統(tǒng)時間與日期丘跌。袭景。
選項:
-d<字符串>:顯示字符串所指的日期與時間。字符串前后必須加上雙引號碍岔;
-s<字符串>:根據(jù)字符串來設(shè)置日期與時間浴讯。字符串前后必須加上雙引號;
-u:顯示GMT蔼啦;
--help:在線幫助榆纽;
--version:顯示版本信息。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
例子:
格式化輸出:
date +"%Y-%m-%d"
2009-12-07
設(shè)定時間:
date -s? ? ? ? ? ? ? ? ? ? ? ? //設(shè)置當(dāng)前時間捏肢,只有root權(quán)限才能設(shè)置奈籽,其他只能查看
date -s 20120523? ? ? ? ? ? ? //設(shè)置成20120523,這樣會把具體時間設(shè)置成空00:00:00
date -s 01:01:01? ? ? ? ? ? ? //設(shè)置具體時間鸵赫,不會對日期做更改
date -s "01:01:01 2012-05-23"? //這樣可以設(shè)置全部時間
date -s "01:01:01 20120523"? ? //這樣可以設(shè)置全部時間
date -s "2012-05-23 01:01:01"? //這樣可以設(shè)置全部時間
date -s "20120523 01:01:01"? ? //這樣可以設(shè)置全部時間