Linux常用命令【轉】

 

一、基本命令

1、立即關機並重啓動,執行如下命令:

shutdown  -r  now 或者reboot

2、立即關機,執行如下命令:

shutdown  -h  now 或者poweroff

3、等待2分鐘關機並重啓動,執行如下命令:

shutdown  -r  2

4、等待2分鐘關機,執行如下命令:

shutdown  -h  2

5、使用當前用戶的歷史命令,執行如下操作:

history

將會顯示使用過的每條命令及其序號,可利用序號重複執行該命令。

例如輸入!1並回車,將會重複執行第1條歷史命令。

也可用上下光標鍵調出某條歷史命令,然後按回車鍵重複執行。

還可用上下光標鍵調出某條歷史命令,修改後按回車鍵執行。

6、清除當前用戶的歷史命令,執行如下命令:

history  -c

此時用向上光標鍵將會調不出任何歷史命令。 

7、顯示內核版本號,執行如下命令:

uname  -r

注:內核版本號不同於軟件發行版本號。

例如,RHEL 5.4的內核版本號是2.6.18-164.el5,軟件發行版本號是5.4。

8、清除屏幕,執行如下命令:

clear 

9、顯示操作系統時鐘,執行如下命令:

date

10、加載光盤到/media,執行如下命令:

mount  /dev/cdrom  /media

11、卸載光盤,執行如下命令:

umount  /dev/cdrom 或者 umount  /media

注意:不要在/media或其子目錄中執行此命令,否則將會出現“設備忙錯誤”。

12、查看存儲設備,執行如下命令:

fdisk –l

13、加載U盤到/media 

mount  /dev/sdb1  /media

14、卸載U盤,執行如下命令:

umount  /dev/sdb1 或者 umount  /media

注意:不要在/media或其子目錄中執行此命令,否則將會出現“設備忙錯誤”。

15、中斷shell命令

Ctrl+C

 

二、文件目錄操作命令

1、顯示當前的絕對路徑,執行如下命令:

pwd

2、改變當前目錄,例如執行如下命令:

cd  /etc/yum

將會把當前目錄改爲/etc/yum。 

3、回到當前目錄的父目錄,執行如下命令:

cd  ..

4、創建目錄,例如執行如下命令:

mkdir  /usr/tigger

5、刪除目錄,例如執行如下命令:

rmdir  /usr/tigger

注:使用rmdir命令時,待刪除的目錄必須爲空。

6、列出目錄中的內容,例如執行如下命令:

ls  /

7、列出目錄中的所有內容(包括隱藏文件或稱爲點文件) ,例如執行如下命令:

ls  /root  -a

將會看到以“.”開頭的文件名,它們稱爲點文件。若用命令“ls  /root”是看不到它們的。

8、用長格式列出目錄中的內容,執行如下命令:

ls  /boot  -l

注:在Linux中,若某命令有幾個開關,可將這幾個開關合並在一起。例如,命令ls  -a  -l與命令ls  -al或者ls  -la作用相同。

9、創建空文件,例如執行如下命令:

touch  /a.dat

10、複製文件,例如執行如下命令:

cp  /etc/host.conf  /root

將會把目錄/etc中的文件host.conf複製到目錄/root中,文件名不變。

11、複製整個子目錄(不改變目錄名),例如執行如下命令:

cp  -r  /usr/include  /root  將會把整個子目錄/usr/include(不改變目錄名)複製到目錄/root中。

12、複製整個子目錄(改變目錄名),例如執行如下命令:

cp  -r  /usr/include  /root/include2

將會把整個子目錄/usr/include複製到目錄/root中,並將目錄名從include改爲include2。 

13、移動文件或給文件改名,例如執行如下命令:

給文件改名:mv  /root/host.conf  /root/myfile

移動文件:mv  /root/myfile   / 

移動文件同時改名:mv  /myfile  /root/myfile2

14、刪除文件,例如執行如下命令:

按y鍵確認:rm  /root/myfile2

不需確認:rm  -f  /a.dat 

15、刪除非空目錄,例如執行如下命令:

系統提示目錄非空:rmdir  /root/mysub

系統無錯誤提示:rm  -rf  /root/mysub

ls  /root

將看到目錄/root中已經沒有mysub目錄。

16、分屏顯示文件內容,例如執行如下命令:

more  /etc/services

按空格鍵顯示下一屏,按q鍵返回命令行狀態。

注:more作爲管道命令時,可與其它一些命令結合,例如: ls  /etc   |more history  |more

17、顯示文件內容,例如執行如下命令:

more _FileName 一次一屏的顯示內容,空格或者回車顯示下一屏。

less _FileName 一次一屏的顯示內容,空格或者回車顯示下一屏。

cat _FileName 一次顯示全部內容

    cat _File1 _File2 > File3 將File1和File2的內容寫到File3,並覆蓋File3原有內容。

    cat _File >> _File2 將File1的內容追加到File2,File2原內容不變。

head _FileName 只顯示文件的前10行

    head -n _FileName 顯示文件的前n行。

 

tail _FileName 只顯示文件的後10行

    tail -n _FileName 顯示文件的後n行。

nl _FileName 以文件編號的形式一次全部顯示文件內容。忽略空格。

 

18、合併文件,例如執行如下命令:

cat  /etc/resolv.conf  /etc/yum.conf  >/b.dat

注:>和>>是重定向符號,若重定向的文件已經存在,

則使用>時將用新內容覆蓋原來的內容,

而使用>>時將用新內容添加到原來內容的後面。 

19、文件查找:find [路徑] [選項]

20、文件內容查找:grep 

 

三、ls命令詳細

ls命令是linux下最常用的命令之一,ls跟dos下的dir命令是一樣的都是用來列出目錄下的文件,下面我們就來一起看看ls的用法

英文全名:List即列表的意思,當我們學習某種東西的時候要做到知其所以然,當你知道了這個東西大概是個什麼了以後你的思維就會聯想到很多的東西學習的就會很快。

1. ls -a 列出文件下所有的文件,包括以“.“開頭的隱藏文件(linux下文件隱藏文件是以.開頭的,如果存在..代表存在着父目錄)。

2. ls -l 列出文件的詳細信息,如創建者,創建時間,文件的讀寫權限列表等等。

3. ls -F 在每一個文件的末尾加上一個字符說明該文件的類型。"@"表示符號鏈接、"|"表示FIFOS、"/"表示目錄、"="表示套接字。

4. ls -s 在每個文件的後面打印出文件的大小。 size(大小)

5. ls -t 按時間進行文件的排序。Time(時間)

6. ls -A 列出除了"."和".."以外的文件。

7. ls -R 將目錄下所有的子目錄的文件都列出來,相當於我們編程中的“遞歸”實現

8. ls -L 列出文件的鏈接名。Link(鏈接)

9. ls -S 以文件的大小進行排序

10. ls -tr -r 對目錄反向排序

以上是一些關於ls命令的一些用法,當然還有好多沒有列出來,大家可以man一下。有助於學習英文

 

ls可以結合管道符”|“來進行一下複雜的操作。比如: ls | less用於實現文件列表的分頁,ls

計算當前目錄下的文件數量

ls -|*|grep "^-"| wc -|

 

--linux下文件顏色的含義

綠色---->代表可執行文件,(綠色代表通行證的意思)呵呵

紅色---->代表壓縮文件

深藍色---->代表目錄

淺藍色----->代表鏈接文件

灰色---->代表其它的一些文件

 

四、vi編輯器

創建或修改某一文本文件,例如執行如下命令:vi  /b.dat

vi編輯器有2種模式:命令模式和編輯模式。

vi啓動後進入的是命令模式,在命令模式中按【i】鍵就可以進入編輯模式。

在編輯模式中按【Esc】鍵就可以返回到命令模式。

在命令模式輸入【:wq】後按回車鍵保存文件後退出;或者輸入【:q!】後按回車鍵不存盤退出。

 

下面是一些常用的vim編輯器快捷鍵:

「h」、「j」、「k」、「l」,分別控制光標左、下、上、右移一格。

按「ctrl」+「b」:屏幕往“後”移動一頁。

按「ctrl」+「f」:屏幕往“前”移動一頁。

按「ctrl」+「u」:屏幕往“後”移動半頁。

按「ctrl」+「d」:屏幕往“前”移動半頁。

按數字「0」:移到文章的開頭。

按「G」:移動到文章的最後。

按「$」:移動到光標所在行的“行尾”。

按「^」:移動到光標所在行的“行首”

按「w」:光標跳到下個字的開頭

按「e」:光標跳到下個字的字尾

按「b」:光標回到上個字的開頭

按「#l」:光標移到該行的第#個位置,如:5l,56l。

「x」:每按一次,刪除當前字符。

「#x」:例如,「6x」表示刪除光標所在位置的“後面”6個字符。

「X」:大寫的X,每按一次,刪除光標所在位置的“前面”一個字符。

「#X」:例如,「20X」表示刪除光標所在位置的“前面”20個字符。

「dd」:刪除光標所在行,並用下一行進行填充。

「#dd」:從光標所在行開始刪除#行。

「#G」:「15G」,表示移動光標至文章的第15行行首。

「w」:在冒號輸入字母「w」就可以將文件保存起來。

「q」:按「q」就是退出,如果無法離開vi,可以在「q」後跟一個「!」強制離開vim。

「wq」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件。

 ZZ 立即保存文件並退出。

p  粘貼

u  撤銷一次

ctrl+r 反撤銷一次

 

多窗口功能:在命令行模式下輸入:sp,這樣兩個文件就可以同時在一個屏幕上顯示,

然後先按下ctrl + w,然後放開所有按鍵後,再按下向下箭頭鍵或者向上箭頭鍵就可以進行窗口的選擇了,如果要關閉一個窗口,直接 : q 即可。

 

vi在編輯某一個文件時,會生成一個臨時文件,這個文件以“.”開頭並以“.swp”結尾。

正常退出該文件自動刪除,如果意外退出例如忽然斷電,該文件不會刪除。

此時只需手動刪除該文件即可。

:set nu  顯示行號

:setnonu 取消行號

 

另外,當你用vi打開一個文件後,因爲文件太長,如何才能找到你所要查找的關鍵字呢? 

你在命令模式下敲斜杆( / )這時在狀態欄(也就是屏幕左下腳)就出現了 “/”,然後輸入你要查找的關鍵字敲回車就可以了。 

如果你要繼續查找此關鍵字,敲字符 n 就可以繼續查找了。

 

 

 

五、軟件包安裝命令

1、查看所有已安裝的軟件包,執行如下命令:

rpm  -qa  |more

2、查看已安裝的名稱中包含某個字符串的所有軟件包,例如執行如下命令:

rpm  -qa  |grep  net

3、驗證所有已安裝的軟件包,執行如下命令:

rpm  -Va

 注:該命令會列出所有自從包安裝後系統和用戶做過修改的文件。

4、查看已安裝的某個軟件包的用途,例如執行如下命令:

rpm  -qi  net-tools-1.60-37.EL4.8

5、查看系統中某個文件屬於哪個軟件包,例如執行如下命令:

rpm  -qf  /sbin/ifconfig

結果應顯示該文件屬於net-tools-1.60-102.el6.i686

6、安裝某個軟件包,例如執行如下命令:

rpm  -ivh  ***********.rpm

注:-v爲顯示信息選項,-h爲顯示進程選項

 

六、防火牆關閉

(1)重啓後生效
開啓: chkconfig iptables on
關閉: chkconfig iptables off

(2)即時生效,重啓後失效
開啓: service iptables start
關閉: service iptables stop

 

如果是firewall作爲防火牆時,打開/關閉命令如下:

(1)打開防火牆

systemctl start iptables.service

(2)關閉防火牆

systemctl stop firewalld.service     #停止firewall

systemctl disable firewalld.service  #禁止firewall開機啓動

 

七、系統時間

Linux時鐘分爲系統時鐘(System Clock)和硬件(Real Time Clock,簡稱RTC)時鐘。
當Linux啓動時,硬件時鐘會去讀取系統時鐘的設置,然後系統時鐘就會獨立於硬件運作。
在Linux中,用於時鐘查看和設置的命令主要有date、hwclock和clock。
clock和hwclock用法相近,只不過clock命令除了支持x86硬件體系外,還支持Alpha硬件體系。

(1)查看系統時間

#date

 

(2)設置系統時間

#date --set "07/07/06 10:19" (月/日/年 時:分:秒)

 

(3)查看硬件時間

#hwclock --show

#clock --show

 

(4)設置硬件時間

#hwclock --set --date="07/07/06 10:19" (月/日/年 時:分:秒)

#clock --set --date="07/07/06 10:19" (月/日/年 時:分:秒)

 

(5)硬件時間和系統時間的同步

按照前面的說法,重新啓動系統,硬件時間會讀取系統時間,實現同步,
但是在不重新啓動的時候,需要用hwclock或clock命令實現同步。
①、將硬件時鐘同步至系統時鐘:

#hwclock --hctosys(hc代表硬件時間,sys代表系統時間)

#clock --hctosys

②、將系統時鐘同步至硬件時鐘:

#hwclock --systohc

# clock --systohc

 

(6)同步BIOS時鐘(強制把系統時間寫入CMOS)

#clock -w

 

(7)設置時區

找到相應的時區文件 /usr/share/zoneinfo/Asia/Shanghai,用這個文件替換當前的/etc/localtime文件。

mv /etc/localtime /etc/localtime.bak

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

八、tar命令:

摘錄自:http://blog.csdn.net/imyang2007/article/details/7634470

 

下面五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。

-c: 建立壓縮檔案

-x:解壓

-t:查看內容

-r:向壓縮歸檔文件末尾追加文件

-u:更新原壓縮包中的文件

下面的參數是根據需要在壓縮或解壓檔案時可選的。

-z:有gzip屬性的

-j:有bz2屬性的

-Z:有compress屬性的

-v:顯示所有過程

-O:將文件解開到標準輸出

下面的參數-f是必須的

-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。

--使用例

# tar -cf all.tar *.jpg

這條命令是將所有.jpg的文件打成一個名爲all.tar的包。-c是表示產生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif

這條命令是將所有.gif的文件增加到all.tar的包裏面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif

這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

 

# tar -tf all.tar

這條命令是列出all.tar包中所有文件,-t是列出文件的意思


# tar -xf all.tar

這條命令是解出all.tar包中所有文件,-x是解開的意思


--壓縮

tar –cvf jpg.tar *.jpg  將目錄裏所有jpg文件打包成tar.jpg

tar –czf jpg.tar.gz *.jpg   將目錄裏所有jpg文件打包成jpg.tar後,並且將其用gzip壓縮,生成一個gzip壓縮過的包,命名爲jpg.tar.gz

tar –cjf jpg.tar.bz2 *.jpg 將目錄裏所有jpg文件打包成jpg.tar後,並且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名爲jpg.tar.bz2

tar –cZf jpg.tar.Z *.jpg   將目錄裏所有jpg文件打包成jpg.tar後,並且將其用compress壓縮,生成一個umcompress壓縮過的包,命名爲jpg.tar.Z

rar a jpg.rar *.jpg rar格式的壓縮,需要先下載rar for linux

zip jpg.zip *.jpg   zip格式的壓縮,需要先下載zip for linux


--解壓

tar –xvf file.tar  解壓 tar包

tar -xzvf file.tar.gz 解壓tar.gz

tar -xjvf file.tar.bz2   解壓 tar.bz2

tar –xZvf file.tar.Z   解壓tar.Z

unrar e file.rar 解壓rar

unzip file.zip 解壓zip


--總結

*.tar 用 tar –xvf 解壓

*.gz 用 gzip -d或者gunzip 解壓

*.tar.gz和*.tgz 用 tar –xzf 解壓

*.bz2 用 bzip2 -d或者用bunzip2 解壓

*.tar.bz2用tar –xjf 解壓

*.Z 用 uncompress 解壓

*.tar.Z 用tar –xZf 解壓

*.rar 用 unrar e解壓

*.zip 用 unzip 解壓

 

九、Find命令

Find 的使用
文件查找
find .(當前目錄) -name 
find . -name "*.txt" -print
find . -name '[A-Z,a-z,1-100]*'.txt -print
find . -name "1.txt" -prune -o -name "*.txt" -print
目錄查找
find . -path"./aa " -prune -o -name "*.txt" -print
find . -path"./aa " -prune -o -path "./bb" -prune -o -name "*.txt" -print

權限查找
find . -prem 775 -print
不查找aaa下的文件   find . -path "./aa" -prune -0 -perm 775 -print
find . -path "./aa" -prune -0 -path "./bb" -prune -o -perm 775 -print
find . \( -path "./aaa" -o -path "./bbb" \) -prune -o -perm 775 -print

按類型查找

軟連接  可以理解爲快捷方式
ln -s ./aaa/* ./ddd
find .-type l -print

按屬主查找
find / -user www -type f -print
查找屬主被刪除
find / -nouser -type f -print

find / -group apache -type -f -print

按照時間查找
兩天之內被改過的
find .-mtime -2 -type f -print
兩天之前被改過的
find .-mtime +2 -type f -print
十分鐘之前被改過的
find . -cmin +10 -type f -print

按照文件新舊查找

查找比aa.txt新的文件
find . -newer "aa.txt" -type f -print
查找比aa.txt舊的文件
find . ! -newer "aa.txt" -type f -print
查找比aa.txt新的比bb.txt舊的文件
find . -newer “aa.txt”! -newer“bb.txt" -type f -print

按照文件大小查找
在根目錄小大於1M的
find / -size +1M -type -print
小於1M的文件
find / -size -1M -type -print
執行命令
find . -name "1.txt" -ok rm {} \;                   新建  touch 12a.txt
find . -name "12a.txt" -exec cp {}{}.bak \


====Linux後臺運行相關

1、&

加在一個命令的最後,可以把這個命令放到後臺執行,如:【watch -n 10 sh test.sh &】#每10s在後臺執行一次test.sh腳本

2、ctrl + z

可以將一個正在前臺執行的命令放到後臺,並且處於暫停狀態。

3、jobs

查看當前有多少在後臺運行的命令

jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated。

但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識。

4、fg

將後臺中的命令調至前臺繼續運行。如果後臺中有多個命令,可以用fg %jobnumber(是命令編號,不是進程號)將選中的命令調出。

5、bg

將一個在後臺暫停的命令,變成在後臺繼續執行。如果後臺中有多個命令,可以用bg %jobnumber將選中的命令調出。

6、kill

  • 法子1:通過jobs命令查看job號(假設爲num),然後執行kill %num
  • 法子2:通過ps命令查看job的進程號(PID,假設爲pid),然後執行kill pid

7、Ctrl+c

前臺進程的終止

8、nohup

如果讓程序始終在後臺執行,即使關閉當前的終端也執行(之前的&做不到),這時候需要nohup。

該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。

關閉中斷後,在另一個終端jobs已經無法看到後臺跑得程序了,此時利用ps(進程查看命令)

【ps -aux | grep "test.sh"】 #a:顯示所有程序 u:以用戶爲主的格式來顯示 x:顯示所有程序,不以終端機來區分

9、supervisor

http://www.codeweblog.com/%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7supervisor%E7%AE%80%E4%BB%8B%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/

 

====Linux查看系統配置常用命令

# uname -a # 查看內核/操作系統/CPU信息

# head -n 1 /etc/issue # 查看操作系統版本

# 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 -nap | grep pid #查看進程佔用端口

# 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 # 查看所有安裝的軟件包

 

====Kill命令

kill命令用於終止指定的進程(terminate a process),是Unix/Linux下進程管理的常用命令。

通常,我們在需要終止某個或某些進程時,先使用ps/pidof/pstree/top等工具獲取進程PID,然後使用kill命令來殺掉該進程。

kill命令的另外一個用途就是向指定的進程或進程組發送信號(The  command kill sends the specified signal to the specified process or process group),

或者確定進程號爲PID的進程是否還在。比如,有許多程序都把SIGHUP信號作爲重新讀取配置文件的觸發條件。

 
一 常用參數
格式:kill <pid>
格式:kill -TERM <pid>
發送SIGTERM信號到指定進程,如果進程沒有捕獲該信號,則進程終止(If no signal is specified, the TERM signal is sent.  The TERM signal will kill processes which do not catch this signal.)

  

格式:kill -l
列出所有信號名稱(Print a list of signal names.  These are found in /usr/include/linux/signal.h)。只有第9種信號(SIGKILL)纔可以無條件終止進程,其他信號進程都有權利忽略。下面是常用的信號:
HUP     1    終端斷線
INT       2    中斷(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM    15    終止
KILL      9    強制終止
CONT   18    繼續(與STOP相反, fg/bg命令)
STOP    19    暫停(同 Ctrl + Z)
 
 
格式:kill -l <signame>
顯示指定信號的數值。
 
格式:kill -9 <pid>
格式:kill -KILL <pid>
強制殺掉指定進程,無條件終止指定進程。
 
格式:kill %<jobid>
格式:kill -9 %<jobid>
殺掉指定的任務(使用jobs命令可以列出)

 

格式:kill -QUIT <pid>
格式:kill -3 <pid>
使得程序正常的退出。

  

killall命令 
killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。 
# killall httpd  

 

二 示例
1)先用ps查找進程,然後用kill殺掉。
[root@new55 ~]# ps -ef|grep vim 
root      3368  2884  0 16:21 pts/1    00:00:00 vim install.log
root      3370  2822  0 16:21 pts/0    00:00:00 grep vim
[root@new55 ~]# kill 3368 
[root@new55 ~]# kill 3368 
-bash: kill: (3368) - 沒有那個進程
 
 
2)init進程是不可殺的。
 
3)列出所有信號名稱
[root@new55 ~]# kill -l 
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
[root@new55 ~]#

 

/usr/include/linux/signal.h 寫道
#define SIGHUP 1
#define SIGINT 2
#define SIGQUIT 3
#define SIGILL 4
#define SIGTRAP 5
#define SIGABRT 6
#define SIGIOT 6
#define SIGBUS 7
#define SIGFPE 8
#define SIGKILL 9
#define SIGUSR1 10
#define SIGSEGV 11
#define SIGUSR2 12
#define SIGPIPE 13
#define SIGALRM 14
#define SIGTERM 15
#define SIGSTKFLT 16
#define SIGCHLD 17
#define SIGCONT 18
#define SIGSTOP 19
#define SIGTSTP 20
#define SIGTTIN 21
#define SIGTTOU 22
#define SIGURG 23
#define SIGXCPU 24
#define SIGXFSZ 25
#define SIGVTALRM 26
#define SIGPROF 27
#define SIGWINCH 28
#define SIGIO 29
#define SIGPOLL SIGIO
/*
#define SIGLOST 29
*/
#define SIGPWR 30
#define SIGSYS 31
#define SIGUNUSED 31
 
/* These should not be considered constants from userland. */
#define SIGRTMIN 32
#define SIGRTMAX _NSIG
 
 
====進程查看命令ps

ps 命令就是最基本同時也是非常強大的進程查看命令。

使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多 的資源等等。

總之大部分信息都是可以通過執行該命令得到的。

名稱:ps
使用權限:所有使用者
使用方式:ps [options] [--help]
說明:顯示瞬間行程 (process) 的動態
參數:ps的參數非常多, 在此僅列出幾個常用的參數並大略介紹含義
-A    列出所有的進程
-w    顯示加寬可以顯示較多的資訊
-au    顯示較詳細的資訊
-aux    顯示所有包含其他使用者的行程

--常用參數:
-A 顯示所有進程(等價於-e)(utility)
-a 顯示一個終端的所有進程,除了會話引線
-N 忽略選擇。
-d 顯示所有進程,但省略所有的會話引線(utility)
-x 顯示沒有控制終端的進程,同時顯示各個命令的具體路徑。dx不可合用。(utility)
-p pid 進程使用cpu的時間
-u uid or username 選擇有效的用戶id或者是用戶名
-g gid or groupname 顯示組的所有進程。
U username 顯示該用戶下的所有進程,且顯示各個命令的詳細路徑。如:ps U zhang;(utility)
-f 全部列出,通常和其他選項聯用。如:ps -fa or ps -fx and so on.
-l 長格式(有F,wchan,C 等字段)
-j 作業格式
-o 用戶自定義格式。
v 以虛擬存儲器格式顯示
s 以信號格式顯示
-m 顯示所有的線程
-H 顯示進程的層次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之後顯示環境(如:ps -d e; ps -a e)(utility)
h 不顯示第一行

--ps命令常用用法(方便查看系統進程)
1)ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
2)ps -A 顯示所有進程。
3)ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
4)ps -e 此參數的效果和指定"A"參數相同。
5)ps e 列出程序時,顯示每個程序所使用的環境變量。
6)ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關係。
7)ps -H 顯示樹狀結構,表示程序間的相互關係。
8)ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
9)ps s 採用程序信號的格式顯示程序狀況。
10)ps S 列出程序時,包括已中斷的子程序資料。
11)ps -t<終端機編號>  指定終端機編號,並列出屬於該終端機的程序的狀況。
12)ps u  以用戶爲主的格式來顯示程序狀況。
13)ps x  顯示所有程序,不以終端機來區分。
最常用的方法是ps -aux,然後再利用一個管道符號導向到grep去查找特定的進程,然後再對特定的進程進行操作。

--運行 ps aux 的到如下信息:
root:# ps aux
USER      PID       %CPU    %MEM    VSZ    RSS    TTY    STAT    START    TIME    COMMAND
smmsp    3521    0.0    0.7    6556    1616    ?    Ss    20:40    0:00    sendmail: Queue runner@01:00:00 f
root    3532    0.0    0.2    2428    452    ?    Ss    20:40    0:00    gpm -m /dev/input/mice -t imps2
htt    3563    0.0    0.0    2956    196    ?    Ss    20:41    0:00    /usr/sbin/htt -retryonerror 0
htt    3564    0.0    1.7    29460    3704    ?    Sl    20:41    0:00    htt_server -nodaemon
root    3574    0.0    0.4    5236    992    ?    Ss    20:41    0:00    crond
xfs    3617    0.0    1.3    13572    2804    ?    Ss    20:41    0:00    xfs -droppriv -daemon
root    3627    0.0    0.2    3448    552    ?    SNs    20:41    0:00    anacron -s
root    3636    0.0    0.1    2304    420    ?    Ss    20:41    0:00    /usr/sbin/atd
dbus    3655    0.0    0.5    13840    1084    ?    Ssl    20:41    0:00    dbus-daemon-1 --system

--Head標頭:
USER    用戶名
UID    用戶ID(User ID)
PID    進程ID(Process ID)
PPID    父進程的進程ID(Parent Process id)
SID    會話ID(Session id)
%CPU    進程的cpu佔用率
%MEM    進程的內存佔用率
VSZ    進程所使用的虛存的大小(Virtual Size)
RSS    進程使用的駐留集大小或者是實際內存的大小,Kbytes字節。
TTY    與進程關聯的終端(tty)
STAT    進程的狀態:進程狀態使用字符表示的(STAT的狀態碼)
R 運行    Runnable (on run queue)            正在運行或在運行隊列中等待。
S 睡眠    Sleeping                休眠中, 受阻, 在等待某個條件的形成或接受到信號。
I 空閒    Idle
Z 僵死    Zombie(a defunct process)        進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放。
D 不可中斷    Uninterruptible sleep (ususally IO)    收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生。
T 終止    Terminate                進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行。
P 等待交換頁
W 無駐留頁    has no resident pages        沒有足夠的記憶體分頁可分配。
X 死掉的進程
< 高優先級進程                    高優先序的進程
N 低優先    級進程                    低優先序的進程
L 內存鎖頁    Lock                有記憶體分頁分配並縮在記憶體內
s 進程的領導者(在它之下有子進程);
l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads)
+ 位於後臺的進程組 
START    進程啓動時間和日期
TIME    進程使用的總cpu時間
COMMAND    正在執行的命令行命令
NI    優先級(Nice)
PRI    進程優先級編號(Priority)
WCHAN    進程正在睡眠的內核函數名稱;該函數的名稱是從/root/system.map文件中獲得的。
FLAGS    與進程相關的數字標識

--例子:
查看當前系統進程的uid,pid,stat,pri, 以uid號排序.
ps -eo pid,stat,pri,uid –sort uid

查看當前系統進程的user,pid,stat,rss,args, 以rss排序.
ps -eo user,pid,stat,rss,args –sort rss

ps 爲我們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;如果想對進程時間監控,應該用 top 工具。

1、ps 的參數說明:
ps 提供了很多的選項參數,常用的有以下幾個:
l 長格式輸出;
u 按用戶名和啓動時間的順序來顯示進程;
j 用任務格式來顯示進程;
f 用樹形格式來顯示進程;

a 顯示所有用戶的所有進程(包括其它用戶);
x 顯示無控制終端的進程;
r 顯示運行中的進程;
ww 避免詳細參數被截斷;

我們常用的選項是組合是 aux 或 lax,還有參數 f 的應用。

2、ps aux 或 lax 輸出的解釋:
USER 進程的屬主;
PID 進程的ID;
PPID 父進程;
%CPU 進程佔用的CPU百分比;
%MEM 佔用內存的百分比;
NI 進程的NICE值,數值大,表示較少佔用CPU時間;
VSZ 進程虛擬大小;
RSS 駐留中頁的數量;
TTY 終端ID
STAT 進程狀態(有以下幾種)
D 無法中斷的休眠狀態(通常 IO 的進程);
R 正在運行可中在隊列中可過行的;
S 處於休眠狀態;
T 停止或被追蹤;
W 進入內存交換(從內核2.6開始無效);
X 死掉的進程(從來沒見過);
Z 殭屍進程;

< 優先級高的進程
N 優先級較低的進程
L 有些頁被鎖進內存;
s 進程的領導者(在它之下有子進程);
l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads);
+ 位於後臺的進程組;
WCHAN 正在等待的進程資源;
START 啓動進程的時間;
TIME 進程消耗CPU的時間;
COMMAND 命令的名稱和參數;

3、應用舉例:
[root@localhost ~]# ps -aux |more
可以用 | 管道和 more 連接起來分頁查看。
[root@localhost ~]# ps -aux > ps001.txt
把結果輸出到ps001.txt文本中並保存。
[root@localhost ~]# more ps001.txt
這裏是把所有進程顯示出來,並輸出到ps001.txt文件,然後再通過more 來分頁查看。

4、kill 終止(殺死)進程,有十幾種控制進程的方法,下面是一些常用的方法:
[root@localhost ~]#kill -STOP [pid]
發送SIGSTOP (17,19,23)停止一個進程,而並不消滅這個進程。
[root@localhost ~]#kill -CONT [pid]
發送SIGCONT (19,18,25)重新開始一個停止的進程。
[root@localhost ~]#kill -KILL [pid]
發送SIGKILL (9)強迫進程立即停止,並且不實施清理操作。
[root@localhost ~]#kill -9 -1
終止你擁有的全部進程。
SIGKILL 和 SIGSTOP 信號不能被捕捉、封鎖或者忽略,但是,其它的信號可以。所以這是你的終極武器

 

====netstat命令

轉自博客:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

如:統計60020端口連接數:netstat -nat|grep -i "60020"|wc -l

 

-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態

-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。

提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到

 

服務端端口狀態解釋

服務端,端口的狀態變化
1、LISTENING狀態
  FTP服務啓動後首先處於偵聽(LISTENING)狀態。
  State顯示是LISTENING時表示處於偵聽狀態,就是說該端口是開放的,等待連接,但還沒有被連接。就像你房子的門已經敞開的,但還沒有人進來。
  從TCPView可以看出本機開放FTP的情況。它的意思是:程序inetinfo.exe開放了21端口,FTP默認的端口爲21,可見在本機開放了FTP服務。目前正處於偵聽狀態。
  inetinfo.exe:1260 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
2、ESTABLISHED狀態
  ESTABLISHED的意思是建立連接。表示兩臺機器正在通信。
  下面顯示的是本機的FTP服務正在被192.168.1.1這臺計算機訪問。
  inetinfo.exe:1260 TCP 192.168.1.10:21 192.168.1.1:3009 ESTABLISHED
3、 TIME_WAIT狀態
  現在從192.168.1.1這臺計算機結束訪問192.168.1.10的FTP服務。在本機的TCPView可以看出端口狀態變爲TIME_WAIT。
  TIME_WAIT的意思是結束了這次連接。說明21端口曾經有過訪問,但訪問結束了。
  [System Process]:0 TCP 192.168.1.10:21 192.168.1.1:3009 TIME_WAIT
4、小技巧
  a、可以telnet一個開放的端口,來觀察該端口的變化。比如看1025端口是開放的,在命令狀態(如圖1運行cmd)運行:
  telnet 192.168.1.10 1025
  b、從本機也可以測試,只不過顯示的是本機連本機
  c、在Tcpview中雙擊連接可看出程序的位置,右鍵點擊該連接,選擇End Process即可結束該連接。

 

 

====df磁盤命令

轉自博客:http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html

-------------------

linux中df命令的功能是用來檢查linux服務器的文件系統的磁盤空間佔用情況。可以利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。

1.命令格式:

df [選項] [文件]

2.命令功能:

顯示指定磁盤文件的可用空間。如果沒有文件名被指定,則所有當前被掛載的文件系統的可用空間將被顯示。默認情況下,磁盤空間將以 1KB 爲單位進行顯示,除非環境變量 POSIXLY_CORRECT 被指定,那樣將以512字節爲單位進行顯示

3.命令參數:

必要參數:

-a 全部文件系統列表

-h 方便閱讀方式顯示

-H 等於“-h”,但是計算式,1K=1000,而不是1K=1024

-i 顯示inode信息

-k 區塊爲1024字節

-l 只顯示本地文件系統

-m 區塊爲1048576字節

--no-sync 忽略 sync 命令

-P 輸出格式爲POSIX

--sync 在取得磁盤信息前,先執行sync命令

-T 文件系統類型

 

選擇參數:

--block-size=<區塊大小> 指定區塊大小

-t<文件系統類型> 只顯示選定文件系統的磁盤信息

-x<文件系統類型> 不顯示選定文件系統的磁盤信息

--help 顯示幫助信息

--version 顯示版本信息

 

4.使用實例:

實例1:顯示磁盤使用情況

命令:

df

輸出:

[root@CT1190 log]# df

文件系統               1K-塊        已用     可用 已用% 掛載點

/dev/sda7             19840892    890896  17925856   5% /

/dev/sda9            203727156 112797500  80413912  59% /opt

/dev/sda8              4956284    570080   4130372  13% /var

/dev/sda6             19840892   1977568  16839184  11% /usr

/dev/sda3               988116     23880    913232   3% /boot

tmpfs                 16473212         0  16473212   0% /dev/shm

說明:

linux中df命令的輸出清單的第1列是代表文件系統對應的設備文件的路徑名(一般是硬盤上的分區);第2列給出分區包含的數據塊(1024字節)的數目;第3,4列分別表示已用的和可用的數據塊數目。用戶也許會感到奇怪的是,第3,4列塊數之和不等於第2列中的塊數。這是因爲缺省的每個分區都留了少量空間供系統管理員使用。即使遇到普通用戶空間已滿的情況,管理員仍能登錄和留有解決問題所需的工作空間。清單中Use% 列表示普通用戶空間使用的百分比,即使這一數字達到100%,分區仍然留有系統管理員使用的空間。最後,Mounted on列表示文件系統的掛載點。

 

實例2:以inode模式來顯示磁盤使用情況

命令:

df -i

輸出:

[root@CT1190 log]# df -i

文件系統               Inode (I)已用 (I)可用 (I)已用% 掛載點

/dev/sda7            5124480    5560 5118920    1% /

/dev/sda9            52592640   50519 52542121    1% /opt

/dev/sda8            1280000    8799 1271201    1% /var

/dev/sda6            5124480   80163 5044317    2% /usr

/dev/sda3             255232      34  255198    1% /boot

tmpfs                4118303       1 4118302    1% /dev/shm

說明:

 

實例3:顯示指定類型磁盤

命令:

df -t ext3

輸出:

[root@CT1190 log]# df -t ext3

文件系統               1K-塊        已用     可用 已用% 掛載點

/dev/sda7             19840892    890896  17925856   5% /

/dev/sda9            203727156  93089700 100121712  49% /opt

/dev/sda8              4956284    570104   4130348  13% /var

/dev/sda6             19840892   1977568  16839184  11% /usr

/dev/sda3               988116     23880    913232   3% /boot

說明:

 

實例4:列出各文件系統的i節點使用情況

命令:

df -ia

輸出:

[root@CT1190 log]# df -ia

文件系統               Inode (I)已用 (I)可用 (I)已用% 掛載點

/dev/sda7            5124480    5560 5118920    1% 

/proc                       0       0       0    -  /proc

sysfs                      0       0       0    -  /sys

devpts                     0       0       0    -  /dev/pts

/dev/sda9            52592640   50519 52542121    1% /opt

/dev/sda8            1280000    8799 1271201    1% /var

/dev/sda6            5124480   80163 5044317    2% /usr

/dev/sda3             255232      34  255198    1% /boot

tmpfs                4118303       1 4118302    1% /dev/shm

none                       0       0       0    -  /proc/sys/fs/binfmt_misc

 

說明:

實例5:列出文件系統的類型

命令:

df -T

輸出:

root@CT1190 log]# df -T

文件系統      類型     1K-塊        已用     可用 已用% 掛載點

/dev/sda7     ext3    19840892    890896  17925856   5% /

/dev/sda9     ext3   203727156  93175692 100035720  49% /opt

/dev/sda8     ext3     4956284    570104   4130348  13% /var

/dev/sda6     ext3    19840892   1977568  16839184  11% /usr

/dev/sda3     ext3      988116     23880    913232   3% /boot

tmpfs        tmpfs    16473212         0  16473212   0% /dev/shm

說明:

 

實例6:以更易讀的方式顯示目前磁盤空間和使用情況 

命令:

輸出:

[root@CT1190 log]# df -h

文件系統              容量  已用 可用 已用% 掛載點

/dev/sda7              19G  871M   18G   5% /

/dev/sda9             195G   89G   96G  49% /opt

/dev/sda8             4.8G  557M  4.0G  13% /var

/dev/sda6              19G  1.9G   17G  11% /usr

/dev/sda3             965M   24M  892M   3% /boot

tmpfs                  16G     0   16G   0% /dev/shm

[root@CT1190 log]# df -H

文件系統               容量   已用  可用 已用% 掛載點

/dev/sda7               21G   913M    19G   5% /

/dev/sda9              209G    96G   103G  49% /opt

/dev/sda8              5.1G   584M   4.3G  13% /var

/dev/sda6               21G   2.1G    18G  11% /usr

/dev/sda3              1.1G    25M   936M   3% /boot

tmpfs                   17G      0    17G   0% /dev/shm

[root@CT1190 log]# df -lh

文件系統              容量  已用 可用 已用% 掛載點

/dev/sda7              19G  871M   18G   5% /

/dev/sda9             195G   89G   96G  49% /opt

/dev/sda8             4.8G  557M  4.0G  13% /var

/dev/sda6              19G  1.9G   17G  11% /usr

/dev/sda3             965M   24M  892M   3% /boot

tmpfs                  16G     0   16G   0% /dev/shm

[root@CT1190 log]# df -k

文件系統               1K-塊        已用     可用 已用% 掛載點

/dev/sda7             19840892    890896  17925856   5% /

/dev/sda9            203727156  93292572  99918840  49% /opt

/dev/sda8              4956284    570188   4130264  13% /var

/dev/sda6             19840892   1977568  16839184  11% /usr

/dev/sda3               988116     23880    913232   3% /boot

tmpfs                 16473212         0  16473212   0% /dev/shm

 

說明:

-h更具目前磁盤空間和使用情況 以更易讀的方式顯示

-H根上面的-h參數相同,不過在根式化的時候,採用1000而不是1024進行容量轉換

-k以單位顯示磁盤的使用情況

-l顯示本地的分區的磁盤空間使用率,如果服務器nfs了遠程服務器的磁盤,那麼在df上加上-l後系統顯示的是過濾nsf驅動器後的結果

-i顯示inode的使用情況。linux採用了類似指針的方式管理磁盤空間影射.這也是一個比較關鍵應用

 

====磁盤I/O狀態

參考博客:http://blog.chinaunix.net/uid-24993824-id-160073.html

 

命令:iostat [-c|-d] [-m] [-t] [時間間隔] [檢測次數]
參數:
-c :僅顯示cpu的狀態
-d :僅顯示存儲設備的狀態,不可以和-c一起使用
-t :顯示日期
-m:默認顯示的是讀入讀出的block信息,用-m可以改成MB大小來顯示

 

顯示分爲上下兩個部分,上半部分顯示CPU的信息,下面的數據,顯示存儲設備的相關數據,

它的數據意義如下:avg-cpu: 總體cpu使用情況統計信息,對於多核cpu,這裏爲所有cpu的平均值

Device:設備/硬盤名稱
tps:平均每秒鐘的傳送次數,與數據傳輸“次數”相關,非容量
MB_read/s:啓動到現在的平均讀取單位
MB_wrtn/s:啓動到現在的平均寫入單位
MB_read:啓動到現在總共讀出來的文件 單位
MB_wrtn:啓動到現在總共寫入的文件單位

 

加“-x”參數,更詳細統計io設備信息

-----------------

iostat -x -d -k
Device:    rrqm/s   wrqm/s    r/s    w/s     rkB/s   wkB/s       avgrq-sz   avgqu-sz   await      svctm  %util
sda          0.00      9915.00   1.00 90.00  4.00    34360.00  755.25     11.79       120.57   6.33     57.60

-----------------

rrqm/s:每秒對該設備的讀請求被合併次數,文件系統會對讀取同塊(block)的請求進行合併
wrqm/s:每秒對該設備的寫請求被合併次數
r/s: 每秒完成的讀次數
w/s: 每秒完成的寫次數
rkB/s: 每秒讀數據量(kB爲單位)
wkB/s: 每秒寫數據量(kB爲單位)
avgrq-sz:平均每次IO操作的數據量(扇區數爲單位)
avgqu-sz::平均等待處理的IO請求隊列長度
await:平均每次IO請求等待時間(包括等待時間和處理時間,毫秒爲單位)
svctm:平均每次IO請求的處理時間(毫秒爲單位)
%util:採用週期內用於IO操作的時間比率,即IO隊列非空的時間比率

對於以上示例輸出示例說明:
每秒向磁盤上寫30M左右數據(wkB/s值)
每秒有91次IO操作(r/s+w/s),其中以寫操作爲主體
平均每次IO請求等待處理的時間爲120.57毫秒,處理耗時爲6.33毫秒
等待處理的IO請求隊列中,平均有11.79個請求駐留

 

====chown更改用戶組

chown 修改文件和文件夾的用戶和用戶組屬性 

1。要修改文件hh.c的所有者.修改爲sakia的這個用戶所有 

chown sakia hh.c 

這樣就把hh.c的用戶訪問權限應用到sakia作爲所有者 

2。將目錄 /tmp/sco 這個目錄的所有者和組改爲sakia和組net 

chown -R sakia:net /tmp/sco 

 

===chown修改文件權限

chmod ABC File

其中 ABC分別表示User、Group、及Other的權限。

1)讀權限(r) 

權限二進制100, 轉爲十進制4;

2)寫權限(w) 

權限二進制010, 轉爲十進制2;

3)執行權限(x) 

權限二進制001, 轉爲十進制1;

 

例如:

1)可度、可寫、可運行 

二進制表示爲:111,轉換爲十進制:7

2)可度、可寫、不可運行 

二進制表示爲:110,轉換成二進制:6

3)可度、不可寫、可運行 

二進制表示爲:101,轉換爲十進制:5

 

命令樣例:

修改文件權限:chmod  777 /home/hadmin/qchtest/test.sh

修改文件夾權限:chmod -R 777 /home/hadmin/qchtest

 

====Jar包命令

【打包】
jar cf JAR文件名稱 程序文件名稱或者程序所在的文件夾
舉例:jar cf MyApp.jar D:JavaProjectMyApp

【查看一個jar文件的內容】
jar tvf JAR文件名稱
舉例:jar tvf MyApp.jar

【將一個jar文件解壓縮】
jar xf JAR文件名稱
舉例:jar xf MyApp.jar

【往壓縮包裏面增加文件】
jar xf JAR文件名稱 添加的文件或者其他的jar文件
舉例:jar xf MyApp.jar Test.class

【更新一個jar文件】
jar uf JAR文件名稱 更新的文件或者其他的jar文件
舉例:jar uf MyApp.jar Test.class

【運行一個jar程序】
java -jar JAR文件名稱
舉例:java -jar MyApp.jar

【創建一個可以運行的jar文件】
①、首先我們必須有一個主類(Main Class)
②、創建一個叫做MANIFEST.MF的文本,然後把一下內容拷貝進去
Manifest-Version: 1.0
Main-Class: YourMainClass
這個YourMainClass就是你程序中包含main方法的那個class

③、下面的語句用來創建可執行的jar文件。
jar cvfm MyApp.jar MANIFEST.MF 文件或文件夾路徑

 

====lsblk命令

sblk命令用於列出所有可用塊設備的信息,而且還能顯示他們之間的依賴關係,但是它不會列出RAM盤的信息
lsblk命令包含在util-linux-ng包中,現在該包改名爲util-linux。

-a, --all 顯示所有設備。

-b, --bytes 以bytes方式顯示設備大小。

-d, --nodeps 不顯示 slaves 或 holders。

-D, --discard print discard capabilities。

-e, --exclude 排除設備 (default: RAM disks)。

-f, --fs 顯示文件系統信息。

-h, --help 顯示幫助信息。

-i, --ascii use ascii characters only。

-m, --perms 顯示權限信息。

-l, --list 使用列表格式顯示。

-n, --noheadings 不顯示標題。

-o, --output 輸出列。

-P, --pairs 使用key="value"格式顯示。

-r, --raw 使用原始格式顯示。

-t, --topology 顯示拓撲結構信息。


NAME:是塊設備名。

MAJ:MIN:顯示主要和次要設備號。

RM:本欄顯示設備是否可移動設備。注意,RM值等於1,說明他們是可移動設備。

SIZE:本欄列出設備的容量大小信息。例如298.1G表明該設備大小爲298.1GB,而1K表明該設備大小爲1KB。

RO:該項表明設備是否爲只讀。RO值爲0,表明他們不是隻讀的。

TYPE:本欄顯示塊設備是否是磁盤或磁盤上的一個分區。

MOUNTPOINT:本欄指出設備掛載的掛載點。

====du

du命令用來查看目錄或文件所佔用磁盤空間的大小。常用選項組合爲:du -sh

很明顯,與df不同,它用來查看文件或目錄所佔用的磁盤空間的大小。

du常用的選項:

-h:以人類可讀的方式顯示

-a:顯示目錄佔用的磁盤空間大小,還要顯示其下目錄和文件佔用磁盤空間的大小

-s:顯示目錄佔用的磁盤空間大小,不要顯示其下子目錄和文件佔用的磁盤空間大小

-c:顯示幾個目錄或文件佔用的磁盤空間大小,還要統計它們的總和

--apparent-size:顯示目錄或文件自身的大小

-l :統計硬鏈接佔用磁盤空間的大小

-L:統計符號鏈接所指向的文件佔用的磁盤空間大小

 

du -sh : 查看當前目錄總共佔的容量。而不單獨列出各子項佔用的容量 

du -lh --max-depth=1 : 查看當前目錄下一級子文件和子目錄佔用的磁盤容量。

 

====lsof

1.列出所有打開的文件:

lsof

備註: 如果不加任何參數,就會打開所有被打開的文件,建議加上一下參數來具體定位

 

2. 查看誰正在使用某個文件

lsof   /filepath/file

 

3.遞歸查看某個目錄的文件信息

lsof +D /filepath/filepath2/

備註: 使用了+D,對應目錄下的所有子目錄和文件都會被列出

 

4. 比使用+D選項,遍歷查看某個目錄的所有文件信息 的方法

lsof | grep ‘/filepath/filepath2/’

 

5. 列出某個用戶打開的文件信息

lsof  -u username

備註: -u 選項,u其實是user的縮寫

 

6. 列出某個程序所打開的文件信息

lsof -c mysql

備註: -c 選項將會列出所有以mysql開頭的程序的文件,其實你也可以寫成lsof | grep mysql,但是第一種方法明顯比第二種方法要少打幾個字符了

 

7. 列出多個程序多打開的文件信息

lsof -c mysql -c apache

 

8. 列出某個用戶以及某個程序所打開的文件信息

lsof -u test -c mysql

 

9. 列出除了某個用戶外的被打開的文件信息

lsof   -u ^root

備註:^這個符號在用戶名之前,將會把是root用戶打開的進程不讓顯示

 

10. 通過某個進程號顯示該進程打開的文件

lsof -p 1

 

11. 列出多個進程號對應的文件信息

lsof -p 123,456,789

 

12. 列出除了某個進程號,其他進程號所打開的文件信息

lsof -p ^1

 

13 . 列出所有的網絡連接

lsof -i

 

14. 列出所有tcp 網絡連接信息

lsof  -i tcp

 

15. 列出所有udp網絡連接信息

lsof  -i udp

 

16. 列出誰在使用某個端口

lsof -i :3306

 

17. 列出誰在使用某個特定的udp端口

lsof -i udp:55

特定的tcp端口

lsof -i tcp:80

 

18. 列出某個用戶的所有活躍的網絡端口

lsof  -a -u test -i

 

19. 列出所有網絡文件系統

lsof -N

 

20.域名socket文件

lsof -u

 

21.某個用戶組所打開的文件信息

lsof -g 5555

 

22. 根據文件描述列出對應的文件信息

lsof -d description(like 2)

 

23. 根據文件描述範圍列出文件信息

lsof -d 2-3

 

原文:https://www.cnblogs.com/quchunhui/p/5286899.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章