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