ubuntu常用命令及部分快捷鍵

轉(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鍵

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容