Linux下基礎命令(二)

這個總結時間花了挺長時間的,有很多實戰方面的知識點,大部分都是關於進程的查詢還有殺死的等,還有一個硬鏈接和軟鏈接的實戰等,希望這篇博文對大家有幫助,加油↖(^ω^)↗



Linux系統進程管理 



進程的屬性

進程ID(PID):是唯一的數值,用來區分進程

父進程的ID(PPID)

啓動進程的用戶ID(UID)和所歸屬的組(GID)

進程狀態:狀態分爲運行R、休眠S、殭屍Z

進程執行的優先級

進程所連接的終端名

進程資源佔用:比如佔用資源大小(內存、CPU佔用量)



靜態進程查看命令:ps

常用參數(選項)

? -a 顯示所有用戶的進程

? -u 顯示用戶名和啓動時間

? -x 顯示沒有控制終端的進程

? -e 顯示所有進程,包括沒有控制終端的進程

? -l 長格式顯示,詳細信息顯示

? -w  寬行顯示,可以使用多個w進行加寬顯示



我們常用的選項是組合是aux



[root@centos-6-1 ~]# ps -aux | head -10 

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.1  19360  1524 ?        Ss   10:58   0:00 /sbin/init

root         2  0.0  0.0      0     0 ?        S    10:58   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/0]

root         4  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/0]

root         5  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/0]

root         6  0.0  0.0      0     0 ?        S    10:58   0:00 [watchdog/0]

root         7  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/1]

root         8  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/1]

root         9  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/1]

[root@centos-6-1 ~]# 


1.查看指定選項,用戶 pid值  cpu佔用 mem內存  ppid父進程    command 命令字 顯示前10行


[root@centos-6-1 ~]# ps axo user,pid,%cpu,%mem,ppid,command | head -10 

USER       PID %CPU %MEM  PPID COMMAND

root         1  0.0  0.1     0 /sbin/init

root         2  0.0  0.0     0 [kthreadd]

root         3  0.0  0.0     2 [migration/0]

root         4  0.0  0.0     2 [ksoftirqd/0]

root         5  0.0  0.0     2 [stopper/0]

root         6  0.0  0.0     2 [watchdog/0]

root         7  0.0  0.0     2 [migration/1]

root         8  0.0  0.0     2 [stopper/1]

root         9  0.0  0.0     2 [ksoftirqd/1]

[root@centos-6-1 ~]# 


2.查看sshd服務的所有佔用信息


[root@centos-6-1 ~]# ps axo user,pid,%cpu,%mem,command | grep sshd 

root      1141  0.0  0.1 /usr/sbin/sshd

root      1367  0.0  0.4 sshd: root@pts/0 

root      1728  0.0  0.0 grep sshd

[root@centos-6-1 ~]# 



3.查看sshd服務所使用的pid號 


[root@centos-6-1 ~]# pidof sshd 

1367 1141

[root@centos-6-1 ~]# 


[root@centos-6-1 ~]# pgrep sshd 

1141

1367

[root@centos-6-1 ~]# 


[root@centos-6-2 ~]# 

[root@centos-6-2 ~]# pgrep -l  sshd //-l指的是查看服務名稱信息 ,查看當前服務的所有佔用的pid

1135 sshd

1349 sshd

[root@centos-6-2 ~]# 


4.ps命令按照cpu從小到大進行排序 顯示前10行



[root@centos-6-1 ~]# ps aux --sort %cpu | head -10 

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.1  19360  1524 ?        Ss   10:58   0:00 /sbin/init

root         2  0.0  0.0      0     0 ?        S    10:58   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/0]

root         4  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/0]

root         5  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/0]

root         6  0.0  0.0      0     0 ?        S    10:58   0:00 [watchdog/0]

root         7  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/1]

root         8  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/1]

root         9  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/1]






5.ps命令按照cpu從大到小進行排序  顯示前10行


[root@centos-6-1 ~]# ps aux --sort -%cpu | head -10 

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root      1812  0.3  0.4 102084  4136 ?        Ss   16:33   0:00 sshd: root@pts/1 

root      1816  0.1  0.1 108312  1876 pts/1    Ss   16:33   0:00 -bash

root         1  0.0  0.1  19360  1524 ?        Ss   10:58   0:00 /sbin/init

root         2  0.0  0.0      0     0 ?        S    10:58   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/0]

root         4  0.0  0.0      0     0 ?        S    10:58   0:00 [ksoftirqd/0]

root         5  0.0  0.0      0     0 ?        S    10:58   0:00 [stopper/0]

root         6  0.0  0.0      0     0 ?        S    10:58   0:00 [watchdog/0]

root         7  0.0  0.0      0     0 ?        S    10:58   0:00 [migration/1]

[root@centos-6-1 ~]# 





top


動態查看進程信息 




top - 15:13:08 up  4:14,  2 users,  load average: 0.03, 0.06, 0.05

Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   194748k used,   825164k free,    29268k buffers

Swap:  2097148k total,        0k used,  2097148k free,    44980k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

    1 root      20   0 19360 1524 1228 S  0.0  0.1   0:00.73 init                                       

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                   

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.02 migration/0                                

    4 root      20   0     0    0    0 S  0.0  0.0   0:00.04 ksoftirqd/0               


第一行:時間  up 系統運行時間   2users 當前登錄用戶   load acerage 系統負載:0.00(1分鐘)   0.01(5分鐘)   0.05(15分鐘的系統負載)  如果這個值超過1的話就是系統負載過高,  用這個值除1 就是可以知道正不正常了。


第二行:進程信息  total: 進程數   4  running (運行進程):4個進程正在運行  321 sleeping(處於休眠狀態的進程)321處於休眠狀態的進程 0 stopped (停止狀態) 0個停止的進程  0 zombie (殭屍進程)0個殭屍進程 


第三行:cpu信息  0.0 us:系統用戶進程使用的百分比  0.1 sy:內核中進程佔用的百分比

0.0 ni :用戶的進程空間  99.9 id :空閒狀態     0.0wa:等待     0.0 hi:換入換出   0.0  si:  0.0 st:


第四行:內存信息 984728 total:總內存容量   96376 free:剩餘內存   506844 used:使用的內存值  381508 buff/cache :buff 緩存


第五行:交換分區信息 內存信息 984728 total:總內存容量   96376 free:剩餘內存   506844 used:使用的內存值  234344 avail  mem :可使用的內存空間



  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

    1 root      20   0 19360 1524 1228 S  0.0  0.1   0:00.73 init                                       

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                   

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.02 migration/0                                

    4 root      20   0     0    0    0 S  0.0  0.0   0:00.04 ksoftirqd/0               


單位是KB

Pid :進程id號 

User:進程屬於哪一個用戶

PR:優先級操作系統內核參數的動態調整的,由內核控制的,用戶無法控制的

NI:優先級,這個優先級是可以被用戶所控制的 

VIRT:相當於ps -aux 裏的參數 VSZ 都是虛擬內存 VIRT + RES =146276

RES:進程使用當前實際的物理內存

SHR:共享內存,看實際內存 RES – SHR = 實際內存 

%CPU:佔用cpu的百分比

%MEM:佔用內存的百分比

TIME+:運行多長時間

COMMAND:相應的命令,調用了什麼東西





top快捷鍵:

?默認3s刷新一次,按d / s修改刷新時間

?w:保存配置

?空格 :立即刷新。

?q退出

?M:按內存排序

?u/U:指定顯示的用戶

?P:按CPU排序

?h:幫助


1.進入top動態顯示進程下 每隔0.1刷新一次


首先按下鍵盤上的小寫d,在輸入0.1  即可

Change delay from 3.0 to: 0.1     

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

    1 root      20   0 19360 1528 1228 S  0.0  0.1   0:01.39 init                                       

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                   

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/0     


2.按照內存進行排序


按下鍵盤上大寫的M即可按照內存從大到小進行排序,小寫m是隱藏內存信息和swap(交換分區)


Cpu(s):  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   147628k used,   872284k free,     6708k buffers

Swap:  2097148k total,        0k used,  2097148k free,    43148k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

 1323 root      20   0 99.7m 4152 3136 S  0.0  0.4   0:00.80 sshd                                       

 1242 root      20   0 1012m 3644 2356 S  0.0  0.4   0:00.04 console-kit-dae                            

 1204 postfix   20   0 81144 3448 2564 S  0.0  0.3   0:00.01 qmgr                                       

 1191 root      20   0 80896 3436 2532 S  0.0  0.3   0:00.05 master                                     

 1203 postfix   20   0 80976 3388 2520 S  0.0  0.3   0:00.03 pickup                                     

 1237 root      18  -2 12316 2644  548 S  0.0  0.3   0:00.00 udevd                                      

 1236 root      18  -2 12316 2640  548 S  0.0  0.3   0:00.00 udevd  


3.按照cpu進行排序


按下鍵盤上小寫的c即可按照cpu從大到小進行排序,或者大寫的P也可以 


Mem:   1019912k total,   148272k used,   871640k free,     6764k buffers

Swap:  2097148k total,        0k used,  2097148k free,    43304k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

 1323 root      20   0 99.7m 4152 3136 S  2.5  0.4   0:00.92 sshd                                       

 1423 root      20   0 15024 1308 1008 R  2.5  0.1   0:00.46 top                                        

    1 root      20   0 19360 1528 1228 S  0.0  0.1   0:01.39 init                                       

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                   

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/0                                

    4 root      20   0     0    0    0 S  0.0  0.0   0:00.08 ksoftirqd/0  




4.查看aaa用戶所有進程信息


按下鍵盤輸入大寫或小寫的u即可 


Mem:   1019912k total,   148132k used,   871780k free,     6772k buffers

Swap:  2097148k total,        0k used,  2097148k free,    43304k cached

Which user (blank for all): aaa 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

    1 root      20   0 19360 1528 1228 S  0.0  0.1   0:01.39 init                                       

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                   

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/0                                

    4 root      20   0     0    0    0 S  0.0  0.0   0:00.08 ksoftirqd/0  


Mem:   1019912k total,   148132k used,   871780k free,     6772k buffers

Swap:  2097148k total,        0k used,  2097148k free,    43304k cached

Which user (blank for all): aaa 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

    1 root      20   0 19360 1528 1228 S  0.0  0.1   0:01.39 init                                       

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                   

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/0                                

    4 root      20   0     0    0    0 S  0.0  0.0   0:00.08 ksoftirqd/0  



pstree工具使用

pstree命令以樹狀圖顯示進程間的關係(display a tree of processes)。

格式:pstree

以樹狀圖顯示進程,只顯示進程的名字,且相同進程合併顯示。

格式:pstree  -p

以樹狀圖顯示進程,還顯示進程PID。



[root@centos-6-1 ~]# pstree -p | more 

init(1)-+-auditd(993)---{auditd}(994)

        |-console-kit-dae(1242)-+-{console-kit-da}(1243)

        |                       |-{console-kit-da}(1244)

        |                       |-{console-kit-da}(1245)

        |                       |-{console-kit-da}(1246)

        |                       |-{console-kit-da}(1247)

        |                       |-{console-kit-da}(1248)


................................




以樹狀圖顯示sshd服務進程,只顯示進程的名字,且相同進程合併顯示。


[root@centos-6-1 ~]# pgrep -l  sshd 

1323 sshd

1593 sshd

[root@centos-6-1 ~]# pstree  -p 1323 

sshd(1323)───bash(1327)───pstree(1599)






使用netstat工具

netstat 命令用於顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 

命令參數:


?-a或–all 顯示所有連接中的接口

?-c或–continuous 持續列出網絡狀態

?-C或–cache 顯示路由器配置的快取信息

?-e或–extend 顯示網絡其他相關信息

?-F或–fib 顯示FIB

?-g或–groups 顯示多重廣播功能羣組組員名單

?-h或–help 在線幫助

?-i或–interfaces 顯示網絡界面信息表單

?-l或–listening 顯示監控中的服務器的接口

?-M或–masquerade 顯示僞裝的網絡連線

?-n或–numeric 直接使用IP地址,而不通過域名服務器

?-N或–netlink或–symbolic 顯示網絡硬件外圍設備的符號連接名稱

?-o或–timers 顯示計時器

?-p或–programs 顯示正在使用接口的程序識別碼和程序名稱

?-r或–route 顯示Routing Table

?-s或–statistice 顯示網絡工作信息統計表

?-t或–tcp 顯示TCP傳輸協議的連接狀況

?-u或–udp 顯示UDP傳輸協議的連接狀況

?-v或–verbose 顯示指令執行過程

?-V或–version 顯示版本信息

?-w或–raw 顯示RAW傳輸協議的連線狀況

?-x或–unix 此參數的效果和指定”-A unix”參數相同

?–ip或–inet 此參數的效果和指定”-A inet”參數相同



1.查看sshd服務所有端口以及pid值和詳細信息等


[root@centos-6-1 ~]# netstat -anpt | grep  sshd 

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1593/sshd           

tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      1323/sshd           

tcp        0     52 192.168.31.249:22           192.168.31.134:49686        ESTABLISHED 1323/sshd           

tcp        0      0 :::22                       :::*                        LISTEN      1593/sshd           

tcp        0      0 ::1:6010                    :::*                        LISTEN      1323/sshd           

[root@centos-6-1 ~]# 




2.查看所有UDP端口


[root@centos-6-1 ~]# netstat -anlpu

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

udp        0      0 0.0.0.0:68                  0.0.0.0:*                               936/dhclient        

[root@centos-6-1 ~]# 


3.顯示所有TCP端口 


[root@centos-6-1 ~]# netstat -anpt 

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1593/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1191/master         

tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      1323/sshd           

tcp        0      0 192.168.31.249:22           192.168.31.134:49686        ESTABLISHED 1323/sshd           

tcp        0      0 :::22                       :::*                        LISTEN      1593/sshd           

tcp        0      0 ::1:25                      :::*                        LISTEN      1191/master         

tcp        0      0 ::1:6010                    :::*                        LISTEN      1323/sshd           

[root@centos-6-1 ~]# 




虛擬文件系統 /proc 、/sys


Linux一切皆文件,設備(文件)可以通過讀寫來操作

/proc是內存中有關係統進程的信息

/sys是有關係統內核以及驅動的信息


/sys目錄下各個子目錄的具體說明

 

/sys下的子目錄

詳細描述內容

 

/sys/devices


官方描述:該目錄下是全局設備結構體系,包含所有被發現的註冊在各種總線上的各種物理設備。一般來說,所有的物理設備都按其在總線上的拓撲結構來顯示,但有兩個例外,即platform devices和system devices。platform devices一般是掛在芯片內部的高速或者低速總線上的各種控制器和外設,它們能被CPU直接尋址;system devices不是外設,而是芯片內部的核心結構,比如CPU,timer等,它們一般沒有相關的驅動,但是會有一些體系結構相關的代碼來配置它們。

(sys/devices是內核對系統中所有設備的分層次表達模型,也是/sys文件系統管理設備的最重要的目錄結構)

 

 

sys/dev


官方描述:該目錄下維護一個按照字符設備和塊設備的主次號碼(major:minor)鏈接到真是設備(/sys/devices)的符號鏈接文件。

 

/sys/class

該目錄下包含所有註冊在kernel裏面的設備類型,這是按照設備功能分類的設備模型,每個設備類型表達具有一種功能的設備。每個設備類型子目錄下都是這種哦哦那個設備類型的各種具體設備的符號鏈接,這些鏈接指向/sys/devices/name下的具體設備。設備類型和設備並沒有一一對應的關係,一個物理設備可能具備多種設備類型;一個設備類型只表達具有一種功能的設備,比如:系統所有輸入設備都會出現在/sys/class/input之下,而不論它們是以何種總線連接到系統的。(/sys/class也是構成linux統一設備模型的一部分)

 

/sys/block


該目錄下的所有子目錄代表着系統中當前被發現的所有塊設備。按照功能來說防止在/sys/class下會更合適,但由於歷史遺留因素而一直存在於/sys/block,但從linux2.6.22內核開始這部分就已經標記爲過去時,只有打開了CONFIG_SYSFS_DEPRECATED配置編譯纔會有這個目錄存在,並且其中的內容在從linux2.6.26版本開始已經正式移到了/sys/class/block,舊的接口/sys/block爲了向後兼容而保留存在,但其中的內容已經變爲了指向它們在/sys/devices/中真實設備的符號鏈接文件。

 

/sys/bus


該目錄下的每個子目錄都是kernel支持並且已經註冊了的總線類型。這是內核設備按照總線類型分層放置的目錄結構,/sys/devices中的所有設備都是連接於某種總線之下的,bus子目錄下的每種具體總線之下可以找到每個具體設備的符號鏈接,

一般來說每個子目錄(總線類型)下包含兩個子目錄,一個是devices,另一個是drivers;其中devices下是這個總線類型下的所有設備,這些設備都是符號鏈接,它們分別指向真正的設備(/sys/devices/name/下);而drivers下是所有註冊在這個總線上的驅動,每個driver子目錄下 是一些可以觀察和修改的driver參數。

(它也是構成linux統一設備模型的一部分)


/sys/fs


按照設計,該目錄使用來描述系統中所有的文件系統,包括文件系統本身和按照文件系統分類存放的已掛載點。

/sys/kernel


這個目錄下存放的是內核中所有可調整的參數


/sys/firmware


該目錄下包含對固件對象(firmware object)和屬性進行操作和觀察的接口,即這裏是系統加載固件機制的對用戶空間的接口.(關於固件有專用於固件加載的一套API)



/sys/hypervisor


該目錄是與虛擬化Xen相關的裝置。(Xen是一個開放源代碼的虛擬機監視器)

 

/sys/module


該目錄下有系統中所有的模塊信息,不論這些模塊是以內聯(inlined)方式編譯到內核映像文件中還是編譯爲外模塊(.ko文件),都可能出現在/sys/module中。即module目錄下包含了所有的被載入kernel的模塊。

 

/sys/power


該目錄是系統中的電源選項,對正在使用的power子系統的描述。這個目錄下有幾個屬性文件可以用於控制整個機器的電源狀態,如可以向其中寫入控制命令讓機器關機/重啓等等。

 

1.查看/proc 目錄下的所有文件信息 



[root@centos-6-1 ~]# 

[root@centos-6-1 ~]# ll /proc/

總用量 0

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 1      #1代表的是pid值,這個進程的文件

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 10

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1018

dr-xr-xr-x.  8 dbus    dbus       0 6月  23 10:25 1040

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 11

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 1115

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1194

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 12

dr-xr-xr-x.  8 postfix postfix    0 6月  23 14:22 1203

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 1208

dr-xr-xr-x.  8 root    root       0 6月  23 10:26 1221

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1223

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1225

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1227

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1229

dr-xr-xr-x.  8 root    root       0 6月  23 14:22 1231

dr-xr-xr-x.  8 root    root       0 6月  23 10:25 1239

......................


2.查看/sys 目錄下的所有文件信息


[root@centos-6-1 ~]# ll /sys/

總用量 0

drwxr-xr-x  2 root root 0 6月  23 10:25 block  #設備

drwxr-xr-x 17 root root 0 6月  23 10:25 bus

drwxr-xr-x 42 root root 0 6月  23 10:25 class

drwxr-xr-x  4 root root 0 6月  23 10:25 dev

drwxr-xr-x 10 root root 0 6月  23 10:25 devices

drwxr-xr-x  4 root root 0 6月  23 10:25 firmware

drwxr-xr-x  3 root root 0 6月  23 10:25 fs

drwxr-xr-x  2 root root 0 6月  23 10:25 hypervisor

drwxr-xr-x  5 root root 0 6月  23 10:25 kernel

drwxr-xr-x 84 root root 0 6月  23 10:25 module

drwxr-xr-x  2 root root 0 6月  23 14:27 power

[root@centos-6-1 ~]# 



3.查看cpu信息


[root@centos-6-1 block]# cat /proc/cpuinfo 

processor: 0

vendor_id: GenuineIntel

cpu family: 6

model: 58

model name: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz

stepping: 9

microcode: 25

cpu MHz: 2556.506

cache size: 3072 KB

physical id: 0

siblings: 2

core id: 0

cpu cores: 2

apicid: 0

initial apicid: 0

fpu: yes

fpu_exception: yes

cpuid level: 13

wp: yes

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good xtopology nonstop_tsc unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx rdrand hypervisor lahf_lm

........................................



4.查看內存信息


[root@centos-6-1 block]# cat /proc/meminfo 

MemTotal:        1019912 kB

MemFree:          861004 kB

Buffers:            9540 kB

Cached:            46828 kB

SwapCached:            0 kB

Active:            33008 kB

Inactive:          41864 kB

Active(anon):      18528 kB

Inactive(anon):      192 kB

Active(file):      14480 kB

Inactive(file):    41672 kB

Unevictable:           0 kB

Mlocked:               0 kB

SwapTotal:       2097148 kB

SwapFree:        2097148 kB

Dirty:                 0 kB

Writeback:             0 kB

AnonPages:         18676 kB

Mapped:             8308 kB

Shmem:               212 kB

Slab:              64172 kB

SReclaimable:       9480 kB

SUnreclaim:        54692 kB

KernelStack:        2528 kB

PageTables:         1952 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:     2607104 kB

..........................................



5.查看是否支持虛擬化


[root@centos-6-1 block]# grep 'ls\|vmx\|svm' /proc/cpuinfo

[root@centos-6-1 block]# 


VMX 支持虛擬化 INTEL

SVM -----------------  AMD

LM (64位)





Linux後臺進程與前臺進程



Linux後臺進程與前臺進程的區別:


個人描述:

前臺進程相當於你正在安裝一個數據庫文件,相當於編譯安裝這個界面需要一直等着,如果突然斷電此進程就終止了。

後臺進程相當於你一直後臺執行不影響前臺別的進程使用,斷電開機後此進程還可以運行。



官方描述:

Linux後臺進程:

也叫守護進程(Daemon),是運行在後臺的一種特殊進程。

守護的意思就是不受終端控制;Linux的大多數服務器就是用守護進程實現的。

比如,Web服務器httpd等。

後臺進程沒有控制終端,它不需要終端的交互

Linux前臺進程:

是在終端中運行的命令,那麼該終端就爲進程的控制終端,一旦這個終端關閉,這這個進程也隨着消失


 進程的前臺與後臺運行

跟系統任務相關的幾個命令:fg、bg、jobs、(nohup)&、ctrl+z


&用在一個命令的最後,可以把這個命令放到後臺執行.

ctrl + z 將一個正在前臺執行的命令放到後臺,並且暫停.

jobs查看當前有多少在後臺運行的進程.它是一個作業控制命令

fg(foreground process) 將後臺中的命令調至前臺繼續運行, 如果後臺中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後臺正在執行的命令的序號(不是pid)  

bg(background process)將一個在後臺暫停的命令,變成繼續執行; 如果後臺中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後臺正在執行的命令的序號(不是pid)



1.將當前編輯的a.txt文本放到後臺暫停,然後再調到前臺執行


~                                                                                                       

~                                                                                                       

~                                                                                                       

~                                                                                                       

~                                                                                                       

"a.txt" [New File]                    #按下鍵盤上的ctrl+z 就會把此進程調入後臺


[1]+  Stopped                 vi a.txt

[root@centos-6-1 ~]# jobs 

[1]+  Stopped                 vi a.txt

[root@centos-6-1 ~]# 


[root@centos-6-1 ~]# jobs 

[1]+  Stopped                 vi a.txt

[root@centos-6-1 ~]# fg 1            #fg代表把後臺的暫停的進程放到前臺繼續執行,1是任務號

vi a.txt




2.將第二個 後臺進程調入前臺執行


[root@centos-6-1 ~]# jobs 

[1]-  Stopped                 top

[2]+  Stopped                 top

[root@centos-6-1 ~]# 


[root@centos-6-1 ~]# fg    #默認將最後的進程調入前臺執行 

top

top - 15:34:18 up  5:09,  2 users,  load average: 0.00, 0.01, 0.05

Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   159544k used,   860368k free,     9820k buffers

Swap:  2097148k total,        0k used,  2097148k free,    46856k cached

 Unknown command - try 'h' for help 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

    1 root      20   0 17128 1284 1056 S  0.0  0.1   0:02.10 init                                       

    2 root      20   0     0    0    0 S  0.0  0.0   0:00.07 kthreadd      


[root@centos-6-1 ~]# jobs 

[1]+  Stopped                 top

[root@centos-6-1 ~]# 

[root@centos-6-1 ~]# 



3.將當前命令調入後臺執行 


[root@centos-6-1 ~]# cat /aaa/qwer &             #&代表將此進程調入後臺進行執行

[3] 1548

[root@centos-6-1 ~]# dsafjqwjeoifadsf

sdfadsfd

adsf

adsfqw

erqwef

adsgwretwretwertqwerqwsadfdsafhdsaoufasdfnpsadfhdsakfjqwepofjsadfodsaifjpafl;asdjfpaoiwfj


[3]   Done                    cat /aaa/qwer

[root@centos-6-1 ~]# jobs 

[1]-  Stopped                 ps -le | more

[2]+  Stopped                 ps -le | more

[root@centos-6-1 ~]# 



kill進程

控制(關閉)進程

kill killall pkill 

kill用法

關閉進程:kill  [進程號]

通過信號的方式來控制進程


常用的信息編號


信號編號  信號名

1)SIGHUP   重新加載配置

2) SIGINT      鍵盤中斷  crtl+c

3)    SIGQUIT     退出

9)     SIGKILL   強制終止

15)    SIGTERM  終止(正常結束),缺省信號

18)SIGCONT   繼續

19)   SIGSTOP  停止

20)SIGTSTP   暫停 crtl+z



1.列出所有支持的信號


[root@centos-6-1 ~]# kill -l

 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL10) SIGUSR1

11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM

16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP

21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU25) SIGXFSZ

26) SIGVTALRM27) SIGPROF28) SIGWINCH29) SIGIO30) SIGPWR

31) SIGSYS34) SIGRTMIN35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+3

38) SIGRTMIN+439) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8

43) SIGRTMIN+944) SIGRTMIN+1045) SIGRTMIN+1146) SIGRTMIN+1247) SIGRTMIN+13

48) SIGRTMIN+1449) SIGRTMIN+1550) SIGRTMAX-1451) SIGRTMAX-1352) SIGRTMAX-12

53) SIGRTMAX-1154) SIGRTMAX-1055) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-7

58) SIGRTMAX-659) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2

63) SIGRTMAX-164) SIGRTMAX

[root@centos-6-1 ~]# 




1.暫停top進程,然後在繼續運行 


[root@centos-6-1 ~]# ps aux | grep top 

root         5  0.0  0.0      0     0 ?        S    10:25   0:00 [stopper/0]

root         8  0.0  0.0      0     0 ?        S    10:25   0:00 [stopper/1]

root      1593  0.4  0.1  15024  1300 pts/0    S+   16:26   0:00 top

root      1613  0.0  0.0 103328   888 pts/1    S+   16:27   0:00 grep top

[root@centos-6-1 ~]# kill -20 1593  

[root@centos-6-1 ~]# ps aux | grep top 

root         5  0.0  0.0      0     0 ?        S    10:25   0:00 [stopper/0]

root         8  0.0  0.0      0     0 ?        S    10:25   0:00 [stopper/1]

root      1593  0.2  0.1  15024  1300 pts/0    T    16:26   0:00 top

root      1615  0.0  0.0 103328   888 pts/1    S+   16:28   0:00 grep top

[root@centos-6-1 ~]# kill -18 1593 

[root@centos-6-1 ~]# kill -18 1593 

[root@centos-6-1 ~]# 


2.殺死aaa用戶下的所有進程  


[root@centos-6-1 ~]# 

[root@centos-6-1 ~]# pkill   -u aaa 

[root@centos-6-1 ~]# 



3.殺死所有sshd 服務的所有進程 


[root@centos-6-1 ~]# ps -aux | grep sshd 

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root      1655  0.0  0.1  66236  1196 ?        Ss   16:31   0:00 /usr/sbin/sshd

root      1657  0.1  0.4 102084  4152 ?        Ss   16:31   0:00 sshd: root@pts/0 

root      1680  0.1  0.4 102084  4148 ?        Ss   16:32   0:00 sshd: root@pts/1 

root      1871  0.0  0.0 103324   884 pts/0    S+   16:37   0:00 grep sshd

[root@centos-6-1 ~]# killall   sshd 

Connection closed by foreign host.


Disconnected from remote host(centos-6-1) at 16:32:00.


Type `help' to learn how to use Xshell prompt.



進程的優先級管理


進程的優先級的定義 

一個進程正好有40種不同級別的NICE值,值越高,優先級越低

優先級取值範圍爲(-20,19),越小優先級越高, 默認優先級是0

系統允許ROOT用戶設置負nice級別以及降低現有進程的nice級別;對普通非特權用戶僅允許設置正的nice級別,此外,他們只能對現有進程提升nice級別。而不能降低nice級別

注意:在linux中除了nice級別以外,有很多方法可以影響到進程優先級和資源使用情況,比如備用的調度程序策略和設置、控制組等,但是nice級別是裏面最易於使用的一種方法,而且它不僅系統管理員可以使用,普通用戶也可以使用




命令1:nice

作用:指定程序的運行優先級

格式:nice -n command

命令2:renice

作用:改變程序的運行優先級

格式:renice -n pid


1.給qweradsf.txt文件添加 5的優先級,然後在更改-20的優先級


[root@centos-6-1 ~]# nice -n 5  vim qweradsf.txt


[1]+  Stopped                 nice -n 5 vim qweradsf.txt

[root@centos-6-1 ~]# ps aux | grep vim 

root      1936  0.4  0.5 139264  5160 pts/0    TN   16:55   0:00 vim qweradsf.txt

root      1938  0.0  0.0 103324   884 pts/0    S+   16:55   0:00 grep vim

[root@centos-6-1 ~]# top -p 1936

top - 16:55:27 up  6:30,  2 users,  load average: 0.05, 0.07, 0.06

Tasks:   1 total,   0 running,   0 sleeping,   1 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.6%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   412284k used,   607628k free,    34384k buffers

Swap:  2097148k total,        0k used,  2097148k free,   241192k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

 1936 root      25   5  136m 5160 2708 T  0.0  0.5   0:00.06 vim                                        




[root@centos-6-1 ~]# renice -n -10 -p 1936 

1936: old priority -10, new priority -10

[root@centos-6-1 ~]# echo $?

0

[root@centos-6-1 ~]# top -p 1936

top - 17:19:10 up  6:54,  2 users,  load average: 0.00, 0.01, 0.05

Tasks:   1 total,   0 running,   0 sleeping,   1 stopped,   0 zombie

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.6%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1019912k total,   412160k used,   607752k free,    34632k buffers

Swap:  2097148k total,        0k used,  2097148k free,   241192k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

 1936 root      10 -10  136m 5160 2708 T  0.0  0.5   0:00.06 vim                                        





硬鏈接與軟連接的作用及區別實戰


個人描述:

軟連接和硬鏈接的相同之處:


不管更改的是原始文件還是鏈接文件,文件都會實時同步,不管是增刪改查,都是一樣

都會創建出相應的文件


軟連接和硬鏈接的區別:

硬鏈接創建的文件相當於備份,他會實時增加鏈接文件的大小,同理原始文件也會增加文件大小。

軟連接相當於做了一個快捷方式,不會增加鏈接文件的大小,同理原始文件纔會增加大小。


軟連接可以跨越分區,而硬連接則不可以。



官方描述:


Linux 文件系統最重要的特點之一是它的文件鏈接。鏈接是對文件的引用,這樣您可以讓文件在文件系統中多處被看到。不過,在 Linux 中,鏈接可以如同原始文件一樣來對待。鏈接可以與普通的文件一樣被執行、編輯和訪問。對系統中的其他應用程序而言,鏈接就是它所對應的原始文件。當您通過鏈接對文件進行編輯時,您編輯的實際上是原始文件。鏈接不是副本。有兩種類型的鏈接:硬鏈接和符號鏈接。

硬鏈接 只能引用同一文件系統中的文件。它引用的是文件在文件系統中的物理索引(也稱爲 inode)。當您移動或刪除原始文件時,硬鏈接不會被破壞,因爲它所引用的是文件的物理數據而不是文件在文件結構中的位置。硬鏈接的文件不需要用戶有訪問原始文件的權限,也不會顯示原始文件的位置,這樣有助於文件的安全。如果您刪除的文件有相應的硬鏈接,那麼這個文件依然會保留,直到所有對它的引用都被刪除。

符號鏈接 是一個指針,指向文件在文件系統中的位置。符號鏈接可以跨文件系統,甚至可以指向遠程文件系統中的文件。符號鏈接只是指明瞭原始文件的位置,用戶需要對原始文件的位置有訪問權限纔可以使用鏈接。如果原始文件被刪除,所有指向它的符號鏈接也就都被破壞了。它們會指向文件系統中並不存在的一個位置。兩種鏈接都可以通過命令 ln 來創建。ln 默認創建的是硬鏈接。使用 -s 開關可以創建符號鏈接。


符號鏈接與硬鏈接有什麼區別?

簡單的說:硬連接記錄的是目標的 inode,符號連接記錄的是目標的 path。

軟連接就像是快捷方式,而硬連接就像是備份!符號連接可以做跨分區的 link;而 硬連接由於 inode 的緣故,只能在本分區中做 link.所以,符號連接的使用頻率要高的多。



軟連接實戰


1.做一個軟連接,把/home/aaa/aaa文件的軟連接到/aaa/qwer文件

[root@centos-6-1 aaa]# ln -s  /home/aaa/aaa   ~

~aaa/      ~daemon/   ~games/    ~lp/       ~operator/ ~saslauth  ~sync/     

~adm       ~dbus/     ~gopher    ~mail/     ~postfix/  ~shutdown/ ~uucp      

~bin/      ~ftp       ~halt/     ~nobody/   ~root/     ~sshd/     ~vcsa/     

[root@centos-6-1 aaa]# ln -s  /home/aaa/aaa   /

aaa/        bin/        etc/        lib64/      mnt/        root/       srv/        usr/

abc/        boot/       home/       lost+found/ opt/        sbin/       sys/        var/

.autofsck   dev/        lib/        media/      proc/       selinux/    tmp/        

[root@centos-6-1 aaa]# ln -s  /home/aaa/aaa   /aaa/qwer    #創建一個軟連接把/home/aaa/aaa 文件 相當於做一個快捷方式

放到/aaa/qwer 也相當於做映射


[root@centos-6-1 aaa]# echo $? #驗證上一個命令是否執行成功0爲真,除0以外都爲假

0

[root@centos-6-1 aaa]# cd /aaa/

[root@centos-6-1 aaa]# ls

CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo

CentOS-Debuginfo.repo  CentOS-Media.repo      qwer

[root@centos-6-1 aaa]# vi qwer 

[root@centos-6-1 aaa]# cat !$

cat /aaa/qwer

abc

asdfwqerqwe

[root@centos-6-1 aaa]# cat /home/aaa/aaa #原始文件發生了變化

abc

asdfwqerqwe

[root@centos-6-1 aaa]# 



[root@centos-6-1 aaa]# ll /aaa/qwer 

lrwxrwxrwx. 1 root root 13 6月  23 14:43 /aaa/qwer -> /home/aaa/aaa #查看軟連接的詳細信息

[root@centos-6-1 aaa]# 


硬鏈接實戰


1.將/home/aaa/aaa文件的硬鏈接到/aaa/qwer文件


[root@centos-6-1 ~]# 

[root@centos-6-1 ~]# ln /home/aaa/  

aaa            .bash_history  .bash_logout   .bash_profile  .bashrc        .gnome2/

[root@centos-6-1 ~]# ln /home/aaa/aaa   /aaa/qwer    #創建硬鏈接,將/home/aaa/aaa 文件,相當於備份到 /aaa/qwer 文件名中帶有a字符的文件或目錄

[root@centos-6-1 ~]# echo $?             #驗證上一個命令是否執行成功0爲真,除0以外都爲假

0

[root@centos-6-1 ~]# cat /aaa/qwer #查看原始文件變化

abc

asdfwqerqwe

[root@centos-6-1 ~]# cat /home/aaa/aaa 

abc

asdfwqerqwe

[root@centos-6-1 ~]# vi /aaa/qwer


[root@centos-6-1 ~]# cat /aaa/qwer 

abc

asdfwqerqwe

asdfawerqwer

dsafqwefdsafwef

qewfdsaflkjdsaf


dsfsadjifoqewr


dsafjqwjeoifadsf


[root@centos-6-1 ~]# 

[root@centos-6-1 ~]# cat /home/aaa/aaa 

abc

asdfwqerqwe

asdfawerqwer

dsafqwefdsafwef

qewfdsaflkjdsaf


dsfsadjifoqewr


dsafjqwjeoifadsf


[root@centos-6-1 ~]# 


[root@centos-6-1 ~]# ll /aaa/qwer 

-rw-r--r--. 2 root root 135 6月  23 14:59 /aaa/qwer

[root@centos-6-1 ~]# 


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