轉(zhuǎn)自別人的博客,但原文地址找不到了。
---------------------------內(nèi)容較多,頁內(nèi)查找請按Ctrl+F-----------------------------------
查看系統(tǒng)和硬件相關(guān)信息的命令簡介
查看內(nèi)核/操作系統(tǒng)/CPU信息
# uname -a
# head -n 1 /etc/issue
# 查看操作系統(tǒng)版本
# cat /etc/redhat-release
# 查看操作系統(tǒng)版本(redhat,centos,fedora)
# cat /proc/cpuinfo
# 查看CPU信息
# hostname
# 查看計算機名
# lspci -tv
# 列出所有PCI設(shè)備
# lsusb -tv
# 列出所有USB設(shè)備
# lsmod
# 列出加載的內(nèi)核模塊
# env
# 查看環(huán)境變量資源
# free -m
# 查看內(nèi)存使用量和交換區(qū)使用量
# df -h
# 查看各分區(qū)使用情況
# du -sh <目錄名>
# 查看指定目錄的大小
# grep MemTotal /proc/meminfo
# 查看內(nèi)存總量
# grep MemFree /proc/meminfo
# 查看空閑內(nèi)存量
# uptime
# 查看系統(tǒng)運行時間、用戶數(shù)、負(fù)載
# cat /proc/loadavg
# 查看系統(tǒng)負(fù)載磁盤和分區(qū)
# mount | column -t
# 查看掛接的分區(qū)狀態(tài)
# fdisk -l
# 查看所有分區(qū)
# swapon -s
# 查看所有交換分區(qū)
# hdparm -i /dev/hda
# 查看磁盤參數(shù)(僅適用于IDE設(shè)備)
# dmesg | grep IDE
# 查看啟動時IDE設(shè)備檢測狀況網(wǎng)絡(luò)
# ifconfig
# 查看所有網(wǎng)絡(luò)接口的屬性
# iptables -L
# 查看防火墻設(shè)置
# route -n
# 查看路由表
# netstat -lntp
# 查看所有監(jiān)聽端口
# netstat -antp
# 查看所有已經(jīng)建立的連接
# netstat -s
# 查看網(wǎng)絡(luò)統(tǒng)計信息進程
# ps -ef
# 查看所有進程
# top
# 實時顯示進程狀態(tài)用戶
# w
# 查看活動用戶
# id <用戶名>
# 查看指定用戶信息
# last
# 查看用戶登錄日志
# cut -d: -f1 /etc/passwd
# 查看系統(tǒng)所有用戶
# cut -d: -f1 /etc/group
# 查看系統(tǒng)所有組
# crontab -l
# 查看當(dāng)前用戶的計劃任務(wù)服務(wù)
# chkconfig –list
# 列出所有系統(tǒng)服務(wù)
# chkconfig –list | grep on
# 列出所有啟動的系統(tǒng)服務(wù)程序
# rpm -qa
# 查看所有安裝的軟件包
VI模式切換和退出
進入vi編輯文件內(nèi)容:
vi 文件名
vi 目錄/文件名
vi進入編輯模式:
Shift+字母i
從編輯模式返回命令模式:
ESC
從命令模式vi退出:
:w 保存文件但不退出vi
:w file 將修改另外保存到file中,不退出vi
:w! 強制保存,不推出vi
:wq 保存文件并退出vi
:wq! 強制保存文件,并退出vi
:q 不保存文件,退出vi
:q! 不保存文件,強制退出vi
:e! 放棄所有修改,從上次保存文件開始再編輯
注意:千萬別將英文冒號”:”敲成中文冒號”:”。
VI前進后退操作
在vi中按u可以撤銷一次操作
u 撤銷上一步的操作
Ctrl+r 恢復(fù)上一步被撤銷的操作
注意:
如果你輸入“u”兩次,你的文本恢復(fù)原樣,那應(yīng)該是你的Vim被配置在Vi兼容模式了。
重做
如果你撤銷得太多,你可以輸入CTRL-R(redo)回退前一個命令。換句話說,它撤銷一個撤銷。要看執(zhí)行的例子,輸入CTRL-R兩次。字符A和它后面的空格就出現(xiàn)了:
young intelligent turtle
有一個特殊版本的撤銷命令:“U”(行撤銷)。行撤銷命令撤銷所有在前一個編輯行
上的操作。 輸入這些命令兩次取消前一個“U”:
A very intelligent turtle
xxxx 刪除very
A intelligent turtle
xxxxxx 刪除turtle
A intelligent
用“U”恢復(fù)行
A very intelligent turtle
用“u”撤銷“U”
A intelligent
“U”命令自己改變自己,“u”命令撤銷操作,CTRL-R命令重做操作。這有點亂,但不用
擔(dān)心,用“u”和CTRL-R命令你可以切換到任何狀態(tài)。
流行的文本編輯器通常都有前進和后退功能,可以在文件中曾經(jīng)瀏覽過的位置之間來回移動。在 vim 中使用 Ctrl-O 執(zhí)行后退,使用 Ctrl-I 執(zhí)行前進。
相關(guān)幫助: :help CTRL-O :help CTRL-I :help jump-motions
VI查找內(nèi)容
使用vi編輯器編輯長文件時,常常是頭昏眼花,也找不到需要更改的內(nèi)容。
這時,使用查找功能尤為重要。
方法如下:
1、命令模式下輸入“/字符串”,例如“/Section 3”。
2、如果查找下一個,按“n”即可。
要自當(dāng)前光標(biāo)位置向上搜索,請使用以下命令:
/pattern Enter
其中,pattern表示要搜索的特定字符序列。
要自當(dāng)前光標(biāo)位置向下搜索,請使用以下命令:
?pattern Enter
Linux文件權(quán)限介紹
r:read就是讀權(quán)限 –數(shù)字4表示
w:write就是寫權(quán)限 –數(shù)字2表示
x:excute就是執(zhí)行權(quán)限 –數(shù)字1表示
權(quán)限表示一共需要占9個字符的:— — —
前三個字符表示用戶權(quán)限,中間三個表示用戶所在的組權(quán)限,最后三個表示其他用戶權(quán)限
例子:rw-r–r–
rw-是說用戶有讀、寫權(quán),沒有運行權(quán),接著的r–表示用戶組只有讀權(quán)限,沒有寫入、運行權(quán),最后的r–指其他用戶只有讀權(quán)限,沒有寫入、運行權(quán)。
用數(shù)字表示就是644。
例子:777
777就是rwxrwxrwx,意思是用戶、用戶組和其他用戶都有最高權(quán)限。
Linux下scp的用法
scp命令
scp就是secure copy,一個在linux下用來進行遠(yuǎn)程拷貝文件的命令。
有時我們需要獲得遠(yuǎn)程服務(wù)器上的某個文件,該服務(wù)器既沒有配置ftp服務(wù)器,也沒有做共享,無法通過常規(guī)途徑獲得文件時,只需要通過簡單的scp命令便可達(dá)到目的。
將本機文件復(fù)制到遠(yuǎn)程服務(wù)器上
scp /home/administrator/news.txt root@192.168.6.129:/etc/squid
/home/administrator/ 本地文件的絕對路徑
news.txt 要復(fù)制到服務(wù)器上的本地文件
root 通過root用戶登錄到遠(yuǎn)程服務(wù)器(也可以使用其他擁有同等權(quán)限的用戶)
192.168.6.129 遠(yuǎn)程服務(wù)器的ip地址(也可以使用域名或機器名)
/etc/squid 將本地文件復(fù)制到位于遠(yuǎn)程服務(wù)器上的路徑
將遠(yuǎn)程服務(wù)器上的文件復(fù)制到本機
scp remote@www.abc.com:/usr/local/sin.sh /home/administrator
remote 通過remote用戶登錄到遠(yuǎn)程服務(wù)器(也可以使用其他擁有同等權(quán)限的用戶)
www.abc.com 遠(yuǎn)程服務(wù)器的域名(當(dāng)然也可以使用該服務(wù)器ip地址)
/usr/local/sin.sh 欲復(fù)制到本機的位于遠(yuǎn)程服務(wù)器上的文件
/home/administrator 將遠(yuǎn)程文件復(fù)制到本地的絕對路徑
注意兩點:
1.如果遠(yuǎn)程服務(wù)器防火墻有特殊限制,scp便要走特殊端口,具體用什么端口視情況而定,命令格式如下:
scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用戶是否具有可讀取遠(yuǎn)程服務(wù)器相應(yīng)文件的權(quán)限。
壓縮和解壓
zip命令
解壓1:unzip FileName.zip
解壓2:unzip FileName.zip -d TargetDir
壓縮1:zip -r TargetDir/FileName.zip DirName
壓縮2:zip -r TargetDir/FileName.zip DirName/*
壓縮3:zip -r TargetDir/FileName.zip File1 File2 File3
注意,zip解壓適用于解壓jar文件
tar命令
解包:tar zxvf FileName.tar
打包:tar czvf FileName.tar DirName
.tar.gz 和 .tgz
解壓:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName
.tar.bz
解壓:tar jxvf FileName.tar.bz
.tar.bz2
解壓:tar jxvf FileName.tar.bz2
壓縮:tar jcvf FileName.tar.bz2 DirName
.tar.Z
解壓:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName
gz命令
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓縮:gzip FileName
bz2命令
解壓1:bzip2 -d FileName.bz2
解壓2:bunzip2 FileName.bz2
壓縮: bzip2 -z FileName
bz命令
解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz
Z命令
解壓:uncompress FileName.Z
壓縮:compress FileName
7z命令(如果沒有7z命令請先執(zhí)行“yum install p7zip”)
解壓:7z x FileName.7z -o/home/zhichao
//注意,x參數(shù)解壓會自動生成與壓縮文件名相同的目錄,-o表示輸出目錄,其與目錄路徑之間沒有空格,上面命令會解壓FileName.7z到home/zhichao/FileName目錄中。
壓縮:7z a FileName.7z DirName
grep命令
grep命令使用正則表達(dá)式檢索符合條件的內(nèi)容,一般與其他命令組合使用。
格式:
grep 參數(shù) 條件
參數(shù):
-a --text #不要忽略二進制的數(shù)據(jù)。
-A<顯示行數(shù)> --after-context=<顯示行數(shù)> #除了顯示符合范本樣式的那一列之外,并顯示該行之后的內(nèi)容。
-b --byte-offset #在顯示符合樣式的那一行之前,標(biāo)示出該行第一個字符的編號。
-B<顯示行數(shù)> --before-context=<顯示行數(shù)> #除了顯示符合樣式的那一行之外,并顯示該行之前的內(nèi)容。
-c --count #計算符合樣式的列數(shù)。
-C<顯示行數(shù)> --context=<顯示行數(shù)>或-<顯示行數(shù)> #除了顯示符合樣式的那一行之外,并顯示該行之前后的內(nèi)容。
-d <動作> --directories=<動作> #當(dāng)指定要查找的是目錄而非文件時,必須使用這項參數(shù),否則grep指令將回報信息并停止動作。
-e<范本樣式> --regexp=<范本樣式> #指定字符串做為查找文件內(nèi)容的樣式。
-E --extended-regexp #將樣式為延伸的普通表示法來使用。
-f<規(guī)則文件> --file=<規(guī)則文件> #指定規(guī)則文件,其內(nèi)容含有一個或多個規(guī)則樣式,讓grep查找符合規(guī)則條件的文件內(nèi)容,格式為每行一個規(guī)則樣式。
-F --fixed-regexp #將樣式視為固定字符串的列表。
-G --basic-regexp #將樣式視為普通的表示法來使用。
-h --no-filename #在顯示符合樣式的那一行之前,不標(biāo)示該行所屬的文件名稱。
-H --with-filename #在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。
-i --ignore-case #忽略字符大小寫的差別。
-l --file-with-matches #列出文件內(nèi)容符合指定的樣式的文件名稱。
-L --files-without-match #列出文件內(nèi)容不符合指定的樣式的文件名稱。
-n --line-number #在顯示符合樣式的那一行之前,標(biāo)示出該行的列數(shù)編號。
-q --quiet或--silent #不顯示任何信息。
-r --recursive #此參數(shù)的效果和指定“-d recurse”參數(shù)相同。
-s --no-messages #不顯示錯誤信息。
-v --revert-match #顯示不包含匹配文本的所有行。
-V --version #顯示版本信息。
-w --word-regexp #只顯示全字符合的列。
-x --line-regexp #只顯示全列符合的列。
-y #此參數(shù)的效果和指定“-i”參數(shù)相同。
示例:
從文件info.txt中讀取關(guān)鍵詞system進行搜索
cat /home/usr/download/info.txt | grep -f system
從文件info.txt中讀取關(guān)鍵詞system進行搜索并顯示行號
cat /home/usr/download/info.txt | grep -nf system
cat命令
cat命令用來顯示文件內(nèi)容,或者將幾個文件連接起來顯示,或者從標(biāo)準(zhǔn)輸入讀取內(nèi)容并顯示,它常與重定向符號配合使用。
格式:
cat 參數(shù) 文件
參數(shù):
-A, --show-all 等價于 -vET
-b, --number-nonblank 對非空輸出行編號
-e 等價于 -vE
-E, --show-ends 在每行結(jié)束處顯示 $
-n, --number 對輸出的所有行編號,由1開始對所有輸出的行數(shù)編號
-s, --squeeze-blank 有連續(xù)兩行以上的空白行,就代換為一行的空白行
-t 與 -vT 等價
-T, --show-tabs 將跳格字符顯示為 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
示例:
把 log.php 的文件內(nèi)容加上行號后輸出到new_log.php這個文件中
cat -n /data/www/project/log.php /data/www/project/new_log.php
ps命令
ps命令是process status的縮寫,顧名思義就是查看系統(tǒng)中所有進程狀態(tài)狀態(tài)。
ps命令查看的程序狀態(tài)并不是動態(tài)連續(xù)的,如果想對進程實施監(jiān)控,請用top命令。
如果直接用ps命令,會顯示所有進程的狀態(tài),通常結(jié)合grep命令查看某進程的狀態(tài)。
格式:
ps 參數(shù)
參數(shù):
a 顯示所有進程
-a 顯示同一終端下的所有程序
-A 顯示所有進程
c 顯示進程的真實名稱
-N 反向選擇
-e 等于“-A”
e 顯示環(huán)境變量
f 顯示程序間的關(guān)系
-H 顯示樹狀結(jié)構(gòu)
r 顯示當(dāng)前終端的進程
T 顯示當(dāng)前終端的所有程序
u 指定用戶的所有進程
-au 顯示較詳細(xì)的資訊
-aux 顯示所有包含其他使用者的行程
示例:
顯示java相關(guān)程序
ps aux|grep java
顯示httpd相關(guān)程序
ps aux|grep httpd
查看正在使用8080端口的程序
ps -ef|grep 8080
fuser 命令
fuser用于查找正在使用指定的某個文件、掛載點、網(wǎng)絡(luò)端口的進程的詳細(xì)信息。
格式:
fuser 參數(shù) 文件或掛載點或網(wǎng)絡(luò)端口
參數(shù):
a 顯示所有命令行中指定的文件,默認(rèn)情況下被訪問的文件才會被顯示。
-c 和-m一樣,用于POSIX兼容。
-d 暗示使用了 -c 和 -x 標(biāo)志。關(guān)于任何與文件系統(tǒng)(自父目錄刪除的)無鏈接的打開文件的報告。當(dāng)與 -V 標(biāo)志一起使用時,它也會報告被刪除文件的節(jié)點號和大小。
-f 僅對文件的打開實例報告。
-i 殺掉進程之前詢問用戶,如果沒有-k這個選項會被忽略。
-k 殺掉訪問文件的進程。如果沒有指定-signal就會發(fā)送SIGKILL信號。
-l 列出所有已知的信號名稱。
-m name 指定一個掛載文件系統(tǒng)上的文件或者被掛載的塊設(shè)備(名稱name)。這樣所有訪問這個文件或者文件系統(tǒng)的進程都會被列出來。如果指定的是一個目錄會自動轉(zhuǎn)換成,并使用所有掛載在那個目錄下面的文件系統(tǒng)。
-n space 指定一個不同的命名空間(space).這里支持不同的空間文件(文件名,此處默認(rèn))、tcp(本地tcp端口)、udp(本地udp端口)。對于端口, 可以指定端口號或者名稱,如果不會引起歧義那么可以使用簡單表示的形式,例如:name/space (即形如:80/tcp之類的表示)。
-s 靜默模式,這時候-u,-v會被忽略。-a不能和-s一起使用。
-signal 使用指定的信號,而不是用SIGKILL來殺掉進程。可以通過名稱或者號碼來表示信號(例如-HUP,-1),這個選項要和-k一起使用,否則會被忽略。
-u 在每個PID后面添加進程擁有者的用戶名稱。
-v 詳細(xì)模式。輸出似ps命令的輸出,包含PID,USER,COMMAND等許多域,如果是內(nèi)核訪問的那么PID為kernel. -V 輸出版本號。
-x 與 -c 或 -f 連用,報告除標(biāo)準(zhǔn) fuser 輸出以外的可執(zhí)行的和可載入的對象。
-4 使用IPV4套接字,不能和-6一起應(yīng)用,只在-n的tcp和udp的命名存在時不被忽略。
-6 使用IPV6套接字,不能和-4一起應(yīng)用,只在-n的tcp和udp的命名存在時不被忽略。
示例:
查看和關(guān)閉正在使用readme.txt文件的程序
fuser -m -v readme.txt
fuser -m -k readme.txt
查看和關(guān)閉正在使用80端口的程序
fuser -n -v tcp 80
fuser -n -k tcp 80
chown命令
chown命令將指定文件或文件夾的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶ID,組可以是組名或者組ID,文件是以空格分開的要改變權(quán)限的文件列表,支持通配符。
格式:
chown 參數(shù) 用戶 文件
參數(shù):
-c 顯示更改的部分的信息
-f 忽略錯誤信息
-h 修復(fù)符號鏈接
-R 處理指定目錄以及其子目錄下的所有文件
-v 顯示詳細(xì)的處理信息
-deference 作用于符號鏈接的指向,而不是鏈接文件本身
示例:
將目錄/data/www/project/下的所有文件和目錄的擁有者都修改為apache賬戶。
chown -R apache.apache /data/www/project/
chmod命令
chmod命令用于改變linux系統(tǒng)文件或目錄的訪問權(quán)限,用它控制文件或目錄的訪問權(quán)限。
Linux系統(tǒng)中的每個文件和目錄都有訪問許可權(quán)限,用它來確定誰可以通過何種方式對文件和目錄進行訪問和操作。
格式:
chmod 參數(shù) 權(quán)限模式 文件
參數(shù)
-c 當(dāng)發(fā)生改變時,報告處理信息
-f 錯誤信息不輸出
-R 處理指定目錄以及其子目錄下的所有文件
-v 運行時顯示詳細(xì)處理信息
示例:
將目錄/data/www/project/下的所有文件和目錄的訪問權(quán)限修改為“當(dāng)前用戶、當(dāng)前用戶組和其他用戶都可讀可寫可執(zhí)行”的權(quán)限。
chown -R 777 /data/www/project/
kill命令
kill命令用于關(guān)閉指定進程。
格式:
kill 參數(shù) 信號 進程ID
參數(shù):
-s 指定發(fā)送信號
-l 根據(jù)信號名顯示信號編號,若果不加信號的編號參數(shù),則使用“-l”參數(shù)會列出全部的信號名稱
-a 當(dāng)處理當(dāng)前進程時,不限制命令名和進程號的對應(yīng)關(guān)系
-p 指定kill 命令只打印相關(guān)進程的進程號,而不發(fā)送任何信號
-u 指定用戶
信號:
信號名 信號編號 信號含義
HUP 1 終端斷線
INT 2 中斷
QUIT 3 退出
TERM 15 終止
KILL 9 強制終止
CONT 18 繼續(xù)(與STOP相反)
STOP 19 暫停(
示例:
顯示信號KILL的信號編號
kill -l KILL
關(guān)閉apache用戶下所有進程
kill -u apache.apache
強制關(guān)閉進程ID為1937的進程,參數(shù)s可以省略。
kill -s 9 1937
kill -9 1937
top命令
top命令查看系統(tǒng)中各個進程的資源占用狀況,默認(rèn)使用cpu占用來排序顯示,top命令顯示的結(jié)果是實時的。
格式:
top 參數(shù)
參數(shù):
-b 批處理
-c 顯示完整的治命令
-i<時間> 設(shè)置間隔時間
-I 忽略失效過程
-p<進程號> 指定進程
-n<次數(shù)> 循環(huán)顯示的次數(shù)
-s 保密模式
-S 累積模式
-u<用戶名> 指定用戶名
示例:
查看所有程序資源占用狀況
top
查看apache用戶所有程序資源占用狀況
top -u apache.apache
find命令
在指定目錄中查找指定條件的文件或文件夾。
格式:
find 目錄路徑 選項 查找條件
選項:
-name 按照文件名查找文件。
-perm 按照文件權(quán)限來查找文件。
-prune 使用這一選項可以使find命令不在當(dāng)前指定的目錄中查找,如果同時使用-depth選項,那么-prune將被find命令忽略。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件。
-mtime -n +n 按照文件的更改時間來查找文件, - n表示文件更改時間距現(xiàn)在n天以內(nèi),+ n表示文件更改時間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改時間比文件file1新但比文件file2舊的文件。
-type<類型參數(shù)> 查找某一類型的文件,諸如:
b - 塊設(shè)備文件。
d - 目錄。
c - 字符設(shè)備文件。
p - 管道文件。
l - 符號鏈接文件。
f - 普通文件。
-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節(jié)計。-depth:在查找文件時,首先查找當(dāng)前目錄中的文件,然后再在其子目錄中查找。
-fstype:查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。
-mount:在查找文件時不跨越文件系統(tǒng)mount點。
-follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設(shè)備中。
-amin n 查找系統(tǒng)中最后N分鐘訪問的文件
-atime n 查找系統(tǒng)中最后n*24小時訪問的文件
-cmin n 查找系統(tǒng)中最后N分鐘被改變文件狀態(tài)的文件
-ctime n 查找系統(tǒng)中最后n*24小時被改變文件狀態(tài)的文件
-mmin n 查找系統(tǒng)中最后N分鐘被改變文件數(shù)據(jù)的文件
-mtime n 查找系統(tǒng)中最后n*24小時被改變文件數(shù)據(jù)的文件
示例:
查找 “/”目錄(Linux系統(tǒng)根目錄)下名稱為httpd.conf的文件
find / -name httpd.conf
查找 “/data/www/project/”目錄下所有php文件
find /data/www/project -name *.php
查找 “.”目錄(當(dāng)前目錄)下權(quán)限為777的文件
find . -perm 777
查找 “/”目錄下48小時內(nèi)修改過的文件
find / -atime -2
查找 “/”目錄下所有文件夾
find / -type d
查找 “/”目錄下大于1kb的文件
find / -size +1000c
whereis命令
whereis命令只能用于程序名的搜索,而且只搜索二進制文件(參數(shù)-b)、說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s),如果省略參數(shù),則返回所有信息。
和find相比,whereis查找的速度非常快,這是因為linux系統(tǒng)會將 系統(tǒng)內(nèi)的所有文件都記錄在一個數(shù)據(jù)庫文件中,當(dāng)使用whereis和下面即將介紹的locate時,會從數(shù)據(jù)庫中查找數(shù)據(jù),而不是像find命令那樣,通 過遍歷硬盤來查找,效率自然會很高。
但是該數(shù)據(jù)庫文件并不是實時更新,默認(rèn)情況下時一星期更新一次,因此,我們在用whereis和locate 查找文件時,有時會找到已經(jīng)被刪除的數(shù)據(jù),或者剛剛建立文件,卻無法查找到,原因就是因為數(shù)據(jù)庫文件沒有被更新。
whereis常用于查找安裝程序的安裝目錄。
格式:
whereis 參數(shù) 程序名
參數(shù):
-b 定位可執(zhí)行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認(rèn)路徑下除可執(zhí)行文件、源代碼文件、幫助文件以外的其它文件。
-B 指定搜索可執(zhí)行文件的路徑。
-M 指定搜索幫助文件的路徑。
-S 指定搜索源代碼文件的路徑。
示例:
查找mysql安裝目錄
whereis mysql
ls命令
ls命令用來查看目標(biāo)目錄中所有的子目錄和文件信息。
格式:
ls 參數(shù) 目錄名
參數(shù):
-a, –all 列出目錄下的所有文件,包括以 . 開頭的隱含文件
-A 同-a,但不列出“.”(表示當(dāng)前目錄)和“..”(表示當(dāng)前目錄的父目錄)。
-c 配合 -lt:根據(jù) ctime 排序及顯示 ctime (文件狀態(tài)最后更改的時間)配合 -l:顯示 ctime 但根據(jù)名稱排序否則:根據(jù) ctime 排序
-C 每欄由上至下列出項目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一
-d, –directory 將目錄象文件一樣顯示,而不是顯示其下的文件。
-D, –dired 產(chǎn)生適合 Emacs 的 dired 模式使用的結(jié)果
-f 對輸出的文件不進行排序,-aU 選項生效,-lst 選項失效
-g 類似 -l,但不列出所有者
-G, –no-group 不列出任何有關(guān)組的信息
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 類似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符號鏈接指示的真正目的地
–indicator-style=方式 指定在每個項目名稱后加上指示符號<方式>:none (默認(rèn)),classify (-F),file-type (-p)
-i, –inode 印出每個文件的 inode 號
-I, –ignore=樣式 不印出任何符合 shell 萬用字符<樣式>的項目
-k 即 –block-size=1K,以 k 字節(jié)的形式表示文件的大小。
-l 除了文件名之外,還將文件的權(quán)限、所有者、文件大小等信息詳細(xì)列出來。
-L, –dereference 當(dāng)顯示符號鏈接的文件信息時,顯示符號鏈接所指示的對象而并非符號鏈接本身的信息
-m 所有項目以逗號分隔,并填滿整行行寬
-o 類似 -l,顯示文件的除組信息外的詳細(xì)信息。
-r, –reverse 依相反次序排列
-R, –recursive 同時列出所有子目錄層
-s, –size 以塊大小為單位列出所有文件的大小
-S 根據(jù)文件大小排序
–sort=WORD 以下是可選用的 WORD 和它們代表的相應(yīng)選項:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文件修改時間排序
-u 配合 -lt:顯示訪問時間而且依訪問時間排序
配合 -l:顯示訪問時間但根據(jù)名稱排序
否則:根據(jù)訪問時間排序
-U 不進行排序;依文件系統(tǒng)原有的次序列出項目
-v 根據(jù)版本進行排序
-w, –width=COLS 自行指定屏幕寬度而不使用目前的數(shù)值
-x 逐行列出項目而不是逐欄列出
-X 根據(jù)擴展名排序
-1 每行只列出一個文件
–help 顯示此幫助信息并離開
–version 顯示版本信息并離開
示例:
顯示當(dāng)前目錄下所有文件和子目錄(包括隱藏文件和隱藏目錄)的詳細(xì)信息
ls -a -l
顯示”/data/www/project”目錄下所有文件和子目錄(不包括隱藏文件和隱藏目錄)的詳細(xì)信息
ls -l /data/www/project
顯示”/data/www/project”目錄下所有文件和子目錄(包括隱藏文件和隱藏目錄)的名稱
ls -a /data/www/project
sudo命令
sudo命令是個管理員分配給一些linux用戶執(zhí)行一些沒有權(quán)限的命令。
如果發(fā)現(xiàn)執(zhí)行l(wèi)inux命令提示沒有權(quán)限什么balabala的,不管什么命令,前面先加上sudo試試。
格式:無需了解
參數(shù):無需了解
示例:
sudo yum install xxxx
sudo svn up xxxx
sudo rm -r xxxx
tail命令
tail命令用于顯示指定文件的末尾內(nèi)容,并且使用-f參數(shù)可以查看即時的文件內(nèi)容,常用查看日志文件。
格式:
tail 參數(shù) 文件
參數(shù):
-f 循環(huán)讀取
-q 不顯示處理信息
-v 顯示詳細(xì)的處理信息
-c<數(shù)目> 顯示的字節(jié)數(shù)
-n<行數(shù)> 顯示行數(shù)
--pid=PID 與-f合用,表示在進程ID,PID死掉之后結(jié)束.
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反復(fù)的間隔休眠S秒
示例:
及時顯示/data/www/project目錄下log.php文件的末尾內(nèi)容
tail -f /data/www/project/log.php
及時顯示/data/www/project目錄下log.php文件的500行末尾內(nèi)容
tail -f -n 500 /data/www/project/log.php
cp命令
cp命令用于復(fù)制文件或目錄。
格式:
cp 參數(shù) 原文件或原目錄 目標(biāo)文件或目錄
參數(shù):
-a或--archive 等于-dR或-dpR
--backup 為每個已存在的目標(biāo)文件創(chuàng)建備份
-b 類似--backup但不接受參數(shù)
--copy-contents 在遞歸處理是復(fù)制特殊文件內(nèi)容
-d或--no-dereference或--preserve=links 若源文件為連接文件屬性,則復(fù)制連接文件指向的文件而非復(fù)制文件本身
-s或--symbolic-link 對源文件建立符號鏈接,而非復(fù)制文件
-f或--force 強制操作,如果目標(biāo)文件無法打開則將其移除并重試(當(dāng)-n選項存在時則不需再選此項)
-i或--interactive 覆蓋前詢問(使前面的-n選項失效)
-H 跟隨源文件中的命令行符號鏈接
-l或--link 鏈接文件而不復(fù)制
-L或--dereference 總是跟隨符號鏈接
-n或--no-clobber 不要覆蓋已存在的文件(使前面的-i選項失效)
-P或----parents 保留源文件或目錄的路徑,此路徑可以是絕對路徑或相對路徑,且目的目錄必須已經(jīng)存在
-p等于--preserve 保留源文件或目錄的屬性,包括所有者、所屬組、權(quán)限與時間
--preserve[=屬性列表 保持指定的屬性(默認(rèn):模式,所有權(quán),時間戳),如果可能保持附加屬性:環(huán)境、鏈接等
-R或-r或--recursive 遞歸處理,復(fù)制目錄及目錄內(nèi)的所有項目
-u或--update 使用這項參數(shù)之后,只會在源文件的修改時間(Modification Time)較目的文件更新時,或是名稱相互對應(yīng)的目的文件并不存在,才復(fù)制文件
-v或--verbose 顯示執(zhí)行過程
-x或--one-file-system 復(fù)制的文件或目錄存放的文件系統(tǒng),必須與cp指令執(zhí)行時所處的文件系統(tǒng)相同,否則不復(fù)制,亦不處理位于其他分區(qū)的文件
示例:
強行復(fù)制文件index.html到目錄/data/www/project
cp -f -v /home/usr/download/index.html /data/www/project
同:cp -fv /home/usr/download/index.html /data/www/project
rm命令
rm命令和cp命令類似。
示例:
刪除download目錄
rm -rf /home/usr/download
刪除download目錄下的所有文件和子目錄,但保留download目錄
rm -rf /home/usr/download/*
mv命令
mv命令和cp命令類似。
示例:
移動download目錄中的所有子目錄和文件到/data/www/project 目錄,但保留download目錄
mv -rf /home/usr/download/* /data/www/project
rpm命令
rpm是RedHat Package Manager(RedHat軟件包管理工具)的簡稱。
.rpm執(zhí)行安裝包分為二進制包(Binary)以及源代碼包(Source)兩種,二進制包可以直接安裝在計算機中,而源代碼包將會由RPM自動編譯、安裝。源代碼包經(jīng)常以src.rpm作為后綴名。
常用參數(shù):
-ivh:安裝顯示安裝進度–install–verbose–hash
-Uvh:升級軟件包–Update;
-qpl:列出RPM軟件包內(nèi)的文件信息[Query Package list];
-qpi:列出RPM軟件包的描述信息[Query Package install package(s)];
-qf:查找指定文件屬于哪個RPM軟件包[Query File];
-Va:校驗所有的RPM軟件包,查找丟失的文件[View Lost];
-e:刪除包
-q samba :查詢程序是否安裝
常用命令:
install/upgrade/remove:安裝/更新/卸載
yum命令
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務(wù)器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
常用參數(shù):
-e 靜默執(zhí)行
-t 忽略錯誤
-R[分鐘] 設(shè)置等待時間
-y 自動應(yīng)答yes
–skip-broken 忽略依賴問題
–nogpgcheck 忽略GPG驗證
全部命令:
check-update 檢查可更新的包
clearn 清除全部
clean packages 清除臨時包文件(/var/cache/yum 下文件)
clearn headers 清除rpm頭文件
clean oldheaders 清除舊的rpm頭文件
deplist 列出包的依賴
list 可安裝和可更新的RPM包
list installed 已安裝的包
list extras 已安裝且不在資源庫的包
info 可安裝和可更新的RPM包 信息
info installed 已安裝包的信息(-qa 參數(shù)相似)
install[RPM包] 安裝包
localinstall 安裝本地的 RPM包
update[RPM包] 更新包
upgrade 升級系統(tǒng)
search[關(guān)鍵詞] 搜索包
provides[關(guān)鍵詞] 搜索特定包文件名
reinstall[RPM包] 重新安裝包
repolist 顯示資源庫的配置
resolvedep 指定依賴
remove[RPM包] 卸載包
如果要安裝指定版本或指定插件,則需要詳細(xì)文件名稱:
[zhichao@localhost ~]$ sudo yum list java*
java-1.8.0-openjdk.x86_64 1:1.8.0.45-36.b13.fc22 @System
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.45-36.b13.fc22 @System
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.45-36.b13.fc22 @System
sudo yum install java-1.8.0-openjdk-devel.x86_64
apt-get命令
apt-get(全稱Advanced Package Tool)的作用同于yum,不過使用該命令的操作系統(tǒng)為Ubuntu和Debian。
經(jīng)過修改后可以使用apt-rpm處理紅帽的Package Manager(RPM)文件。
常用命令:
apt-get install packagename
安裝一個新軟件包
apt-get remove packagename
卸載一個已安裝的軟件包(保留配置文檔)
apt-get remove –purge packagename
卸載一個已安裝的軟件包(刪除配置文檔)
apt-get autoremove packagename
刪除包及其依賴的軟件包
apt-get autoremove –purge packagname
刪除包及其依賴的軟件包+配置文件,比上面的要刪除的徹底一點
dpkg –force-all –purge packagename
有些軟件很難卸載,而且還阻止了別的軟件的應(yīng)用,就能夠用這個,但是有點冒險。
dnf命令
dnf是fedora22新的用于替換yum和rpm的命令。
在使用yum時,會提示過時,但仍然可用。
詳細(xì)了解請看一下這篇文章:http://www.linuxidc.com/Linux/2015-06/118751.htm
。
systemctl命令
在cenos7和fedora22中,systemctl替換了service命令。
寫法從以前的:service start mysqld
變成了:systemctl start mysqld.service
詳細(xì)了解請看一下這篇文章:http://www.linuxidc.com/Linux/2015-07/120833.htm
。
或者:
https://wiki.archlinux.org/index.php/Systemd_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
pwd命令
pwd命令可以獲取當(dāng)前目錄的全路徑。
示例:
$ pwd
/home/zhichao/下載
終端下的快捷鍵
Ctrl+a:光標(biāo)回到命令行首。 (a:ahead)
Ctrl+e:光標(biāo)回到命令行尾。 (e:end)
Ctrl+b:光標(biāo)向行首移動一個字符。 (b:backwards)
Ctrl+f:光標(biāo)向行尾移動一個字符。 (f:forwards)
Ctrl+w: 刪除光標(biāo)處到行首的字符。
Ctrl+k:刪除光標(biāo)處到行尾的字符。
Ctrl+u:刪除整個命令行文本字符。
Ctrl+h:向行首刪除一個字符。
Ctrl+d:向行尾刪除一個字符。
Ctrl+y::粘貼Ctrl+u,Ctrl+k,Ctrl+w刪除的文本。
Ctrl+p: 上一個使用的歷史命令。 (或者直接按向上方向鍵;p:previous)
Ctrl+n: 下一個使用的歷史命令。(或者直接按向下方向鍵;n:next)
Ctrl+r:快速檢索歷史命令。(r:retrieve)。
Ctrl+t: 交換光標(biāo)所在字符和其前的字符。
Ctrl+i:相當(dāng)于Tab鍵。
Ctrl+o:相當(dāng)于Ctrl+m.
Ctrl+m:相當(dāng)Enter鍵。
其他控制鍵:
Ctrl+s:使終端發(fā)呆,靜止,可以使快速輸出的終端屏幕停下來。
Ctrl+q:退出Ctrl+s引起的發(fā)呆。
Ctrl+z:使正在運行在終端的任務(wù),運行于后臺。 (可用fg恢復(fù))
Ctrl+c:中斷終端中正在執(zhí)行的任務(wù)。
Ctrl+d: 在空命令行的情況下可以退出終端。
Ctrl+[ :相當(dāng)于Esc鍵。
Esc鍵:連續(xù)按3次顯示所有的支持的終端命令。
Tab鍵:命令、文件名等自動補全命令或目錄、文件名。
alt+/:同Tab鍵