linux優(yōu)先執(zhí)行的命令 linux程序運行優(yōu)先級

淺析Linux下進程的調(diào)度策略與優(yōu)先級

在 Linux 中,線程是由進程來實現(xiàn)的,可以認為線程就是一個輕量級的進程,因此,線程調(diào)度是按照進程調(diào)度的方式來進行的。這樣設(shè)計,線程調(diào)度流程可以直接復(fù)用進程調(diào)度流程,沒必要再設(shè)計一個進程內(nèi)的線程調(diào)度器了。

創(chuàng)新互聯(lián)主營羅江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機APP定制開發(fā),羅江h(huán)5微信小程序開發(fā)搭建,羅江網(wǎng)站營銷推廣歡迎羅江等地區(qū)企業(yè)咨詢

在 Linux 中,進程調(diào)度器是基于進程的調(diào)度策略與調(diào)度優(yōu)先級來決定調(diào)度哪個進程運行。

調(diào)度策略主要包括:

調(diào)度優(yōu)先級的范圍是 0~99,數(shù)值越大,表示優(yōu)先級越高。

其中,SCHED_OTHER、SCHED_IDLE、SCHED_BACH 為非實時調(diào)度策略,其調(diào)度優(yōu)先級為 0。而 SCHED_FIFO、SCHED_RR 是實時調(diào)度策略,其調(diào)度優(yōu)先級范圍為 1~99。

實時調(diào)度策略的進程總是比非實時調(diào)度策略的進程優(yōu)先級高。

在 Linux 內(nèi)部實現(xiàn)中,調(diào)度器會為每個可能的調(diào)度優(yōu)先級維護一個可運行的進程列表,以最高優(yōu)先級列表頭部的進程作為下一次調(diào)度的進程,所有的調(diào)度都是搶占式的,如果一個具有更高調(diào)度優(yōu)先級的進程轉(zhuǎn)換為可運行狀態(tài),那么當前運行的進程將被強制進入其等待的隊列中。

SCHED_OTHER

該調(diào)度策略是默認的 Linux 分時調(diào)度策略,該調(diào)度策略為非實時的,其調(diào)度優(yōu)先級總是為 0。

對于該調(diào)度策略類型的進程,調(diào)度器是基于動態(tài)優(yōu)先級來調(diào)度的。動態(tài)優(yōu)先級跟屬性 nice 有關(guān),nice 的值會隨著進程的運行時間而動態(tài)改變,以確保所有具有 SCHED_OTHER 策略的進程公平地得到調(diào)度。

在 Linux 中,nice 的值范圍為-20 ~ +19,默認值為 0。nice 值越大,則優(yōu)先級越低,因此相對較低 nice 值的進程可以獲得更多的處理器時間。

通過命令 ps -el 查看系統(tǒng)中的進程列表,其中 NI 列就是進程對應(yīng)的 nice 值。

使用 top 命令,看到的 NI 列也是進程的 nice 值。

調(diào)整 nice 值,可以通過 shell 命令 nice ,該命令可以按照指定的 nice 值運行 cmd ,命令的幫助信息為:

重新調(diào)整已運行進程的 nice 值,可通過 renice 命令實現(xiàn),命令的幫助信息為:

另外,可以執(zhí)行 top 命令,輸入 r ,根據(jù)提示輸入進程的 pid ,再輸入 nice 數(shù)值,也可以調(diào)整進程的 nice 值。

SCHED_FIFO

該調(diào)度策略為先入先出調(diào)度策略,簡單概括,就是一旦進程占用了 CPU,則一直運行,直到有更高優(yōu)先級的任務(wù)搶占,或者進程自己放棄占用 CPU。

SCHED_RR

該調(diào)度策略為時間片輪轉(zhuǎn)調(diào)度策略,該調(diào)度策略是基于 SCHED_FIFO 策略的演進,其在每個進程上增加一個時間片限制,當時間片使用完成后,調(diào)度器將該進程置于隊列的尾端,放在尾端保證了所有具有相同調(diào)度優(yōu)先級的進程的調(diào)度公平。

使用 top 命令,如果 PR 列的值為 RT ,則說明該進程采用的是實時調(diào)度策略,其調(diào)度策略為 SCHED_FIFO 或者 SCHED_RR,而對于非實時調(diào)度策略的進程,該列的值為 NI + 20 。

可以通過命令 ps -eo state,uid,pid,ppid,rtprio,time,comm 來查看進程對應(yīng)的實時優(yōu)先級,實時優(yōu)先級位于 RTPRIO 列下,如果進程對應(yīng)的列顯示為 - ,說明該進程不是實時進程。

chrt 命令可以用來很簡單地更改進程的調(diào)度策略與調(diào)度優(yōu)先級。在 Linux 下查看 chrt 命令的幫助信息:

比如,獲取某個進程的調(diào)度策略,使用如下命令:

在比如,設(shè)置某個進程的調(diào)度策略為 SCHED_FIFO,調(diào)度優(yōu)先級為 70,使用如下命令:

Linux命令

命令格式: 命令 [-選項] [參數(shù)]

如:ls -la /usr

**說明: **

大部分命令遵從該格式

多個選項時,可以一起寫 eg:ls –l –a à ls –la

簡化選項與完整選項(注:并非所有選項都可使用完整選項) eg:ls –all à ls –a

作用:切換用戶身份

語法:su [選項] 用戶名

-c 僅執(zhí)行一次命令,而不切換用戶身份

$ su – root

env

$ su – root –c “useradd longjing”

文件或目錄的CRUD

英文:change directory 命令路徑:內(nèi)部命令 執(zhí)行權(quán)限:所有用戶

作用: 切換目錄

語法:cd [目錄] / 切換到根目錄

.. 回到上一級目錄

. 當前目錄

~ 當前用戶的宿主目錄(eg:# cd ~用戶名 進入某個用戶的家目錄)

英文:list 命令路徑:/bin/ls 執(zhí)行權(quán)限:所有用戶

作用:顯示目錄文件

語法:ls [-alrRd] [文件或目錄]

-a all 顯示所有文件,注意隱藏文件,特殊目錄.和..

-l(long) 顯示詳細信息

-R(recursive) 遞歸顯示當前目錄下所有目錄

-r (reverse) 逆序排序

-t(time) 按修改時間排序(降序)

英文:print working directory 命令路徑:/bin/pwd 執(zhí)行權(quán)限:所有用戶

作用:顯示當前工作目錄

語法:pwd [-LP]

-L 顯示鏈接路徑,當前路徑,默認

-P 物理路徑

eg:# cd /etc/init.d

英文:make directories 命令路徑:/bin/mkdir 執(zhí)行權(quán)限:所有用戶

作用:創(chuàng)建新目錄

語法:mkdir [-p] 目錄名

-p 父目錄不存在情況下先生成父目錄 (parents)

eg: mkdir linux/test 如果目錄linux不存在,則報錯,使用參數(shù)-p即可自動創(chuàng)建父目錄。

命令路徑:/bin/touch 執(zhí)行權(quán)限:所有用戶

作用:創(chuàng)建空文件或更新已存在文件的時間

語法:touch 文件名

eg:touch a.txt b.txt touch {a.txt,b.txt} 同時創(chuàng)建多個文件

創(chuàng)建帶空格的文件 eg:touch "program files" 在查詢和刪除時也必須帶雙引號

注意:生產(chǎn)環(huán)境中,文件名,一定不要加空格

英文:copy 命令路徑:/bin/cp 執(zhí)行權(quán)限:所有用戶

作用:復(fù)制文件或目錄

語法:cp [–rp] 源文件或目錄 目的目錄

-r -R recursive 遞歸處理,復(fù)制目錄

-p 保留文件屬性 (原文件的時間不變)

eg:

1,相對路徑 cp –R /etc/* . cp –R ../aaa ../../test/

2,,絕對路徑 cp –R / ect/service /root/test/aa/bb

英文:move 命令路徑:/bin/mv 執(zhí)行權(quán)限:所有用戶

作用:移動文件或目錄、文件或目錄改名

語法:mv 源文件或目錄 目的目錄

英文:remove 命令路徑:/bin/rm 執(zhí)行權(quán)限:所有用戶

作用:刪除文件

語法: rm [-rf] 文件或目錄

-r (recursive)刪除目錄,同時刪除該目錄下的所有文件

-f(force) 強制刪除文件或目錄 即使原檔案屬性設(shè)為唯讀,亦直接刪除,無需逐一確認

注意:工作中,謹慎使用rm –rf 命令。

擴展點 :刪除亂碼文件

一些文件亂碼后使用rm -rf 依然無法刪除

此時,使用ll -i 查找到文件的inode節(jié)點

然后使用find . -inum 查找到的inode編號 -exec rm {} -rf ;

就能順利刪除了

英文:concatenate 命令路徑:/bin/cat 執(zhí)行權(quán)限:所有用戶

作用:顯示文件內(nèi)容

語法:cat [-n] [文件名]

-n 顯示行號

eg:cat /etc/services

命令路徑:/bin/more 執(zhí)行權(quán)限:所有用戶

作用:分頁顯示文件內(nèi)容

語法:more [文件名]

空格或f 顯示下一頁

Enter鍵 顯示下一行

q或Q 退出

命令路徑:/usr/bin/head 執(zhí)行權(quán)限:所有用戶

作用:查看文件前幾行(默認10行)

語法:head [文件名]

-n 指定行數(shù)

eg:head -20 /etc/services head –n 3 /etc/services

命令路徑:/usr/bin/tail 執(zhí)行權(quán)限:所有用戶

作用:查看文件的后幾行

語法:tail [文件名]

-n 指定行數(shù)

-f (follow) 動態(tài)顯示文件內(nèi)容

獲取一個大文件的部分文件,可使用head或tail命令

head -n 100 /etc/services config.log

英文: link 命令路徑:/bin/ln 執(zhí)行權(quán)限:所有用戶

作用:產(chǎn)生鏈接文件

語法:

ln -s [源文件] [目標文件] 創(chuàng)建軟鏈接 源文件 使用 絕對路徑

ln [源文件] [目標文件] 創(chuàng)建硬鏈接

eg:ln -s /etc/service ./service.soft

創(chuàng)建文件/etc/service的軟鏈接service.soft

eg:/etc/service /service.hard

創(chuàng)建文件/etc/service的硬鏈接/service.hard

軟連接類似于windows下的快捷方式

軟連接文件格式:

lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service - /etc/services

1 硬鏈接數(shù)量,如果該文件沒有硬鏈接,就只有本身一個硬鏈接。

13鏈接文件的長度

格式解析(特征):

1, 軟連接的文件類型是 l(軟連接),軟連接文件的權(quán)限 都是 lrwxrwxrwx

2,- 箭頭指向到源文件

真正的權(quán)限取決于對源文件的權(quán)限

時間值為創(chuàng)建軟連接的時間

軟連接可以跨文件系統(tǒng)生成

硬鏈接特征

1,相當于 cp -p +同步更新

2,通過i節(jié)點識別,與源文件有相同的inode節(jié)點

3,硬鏈接不能跨分區(qū),ln /home/test/issuels /boot/test (錯誤)

4,不能針對目錄使用 ln /tmp/ aa.hard (無法將目錄/tmp 生成硬鏈接)

刪除軟連接

rm -rf symbolic_name

英文:manual 命令路徑:/usr/bin/man 執(zhí)行權(quán)限:所有用戶

作用:獲取命令或配置文件的幫助信息

語法:man [命令/配置文件]

eg:man ls man services

(查看配置文件時,不需要配置文件的絕對路徑,只需要文件名即可)

調(diào)用的是more命令來瀏覽幫助文檔,按空格翻下一頁,按回車翻下一行,按q退出。

使用/加上關(guān)鍵的參數(shù)可直接定位搜索, n 查找下一個,shift+n 查找上一個

eg: /-l 直接查看-l的介紹

擴展:man的級別 (幫助文檔的類型, 了解1 5即可)

man man-pages 查看每一種類型代表的含義 man文檔的類型(1~9)

1是命令,5是配置文件 man優(yōu)先顯示命令,可指定幫助類型

eg:man 5 passwd (5代表配置文件級別)

[圖片上傳失敗...(image-6718d2-1624438708895)]

help 查看shell內(nèi)置命令的幫助信息

eg:help cd

內(nèi)置命令,使用whereis,which,man都不能查看

type 命令 查看內(nèi)部命令還是外部命令

命令名 --help 列舉該命令的常用選項

eg: cp --help

命令路徑:/bin/find 執(zhí)行權(quán)限:所有用戶

作用:查找文件或目錄

語法:find [搜索路徑] [匹配條件]

如果沒有指定搜索路徑,默認從當前目錄查找

find命令選項

-name 按名稱查找 精準查找

eg:find /etc -name “init” 在目錄/etc中查找文件init

-iname 按名稱查找

find查找中的字符匹配:

*:匹配所有

?:匹配單個字符

eg:find /etc -name “init???” 在目錄/etc中查找以init開頭的,且后面有三位的文件

模糊匹配的條件,建議使用單引號或雙引號括起來。如果*被轉(zhuǎn)義,可使用 單雙引號括住查詢條件,或者使用*。

eg: # find . –name *g

-size ****按文件大小查找

以block為單位,一個block是512B, 1K=2block +大于 -小于 不寫是等于

eg:find /etc -size -204800 在etc目錄下找出大于100MB的文件

100MB=102400KB=204800block

**-type ** 按文件類型查找

f 二進制文件l 軟連接文件 d 目錄 c 字符文件

eg: find /dev -type c

find****查找的基本原則 :

占用最少的系統(tǒng)資源,即查詢范圍最小,查詢條件最精準

eg:

如果明確知道查找的文件在哪一個目錄,就直接對指定目錄查找,不查找根目錄/

命令路徑:/bin/grep 執(zhí)行權(quán)限:所有用戶

作用:在文件中搜尋字串匹配的行并輸出

語法:grep [-cinv] '搜尋字符串' filename

選項與參數(shù):

-c :輸出匹配行的次數(shù)(是以行為單位,不是以出現(xiàn)次數(shù)為單位)

-i :忽略大小寫,所以大小寫視為相同

-n :顯示匹配行及行號

-v :反向選擇,顯示不包含匹配文本的所有行。

eg:grep ftp /etc/services

eg:#grep -v ^# /etc/inittab 去掉文件行首的#號

eg:# grep -n “init”/etc/inittab 顯示在inittab文件中,init匹配行及行號

eg:# grep -c“init”/etc/inittab 顯示在inittab文件中,init匹配了多少次

命令路徑:/usr/bin/which 執(zhí)行權(quán)限:所有用戶

作用: 顯示系統(tǒng)命令所在目錄(絕對路徑及別名)

which命令的作用是,在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結(jié)果。也就是說,使用which命令,就可以看到某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個位置的命令

alias ls='ls --color=auto'

/bin/ls

/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)

命令路徑:/usr/bin/whereis 執(zhí)行權(quán)限:所有用戶

作用:**搜索命令所在目錄 配置文件所在目錄 及幫助文檔路徑 **

eg: which passwd 和 whereis passwd

eg:查看/etc/passwd配置文件的幫助,就用 man 5 passwd

英文:GNU zip 命令路徑:/bin/gzip 執(zhí)行權(quán)限:所有用戶

作用:壓縮(解壓)文件,壓縮文件后綴為.gz

gzip只能壓縮文件,不能壓縮目錄;不保留原文件

語法:gzip 文件

-d將壓縮文件解壓(decompress)

解壓使用gzip –d或者 gunzip

命令路徑:/usr/bin/bzip2 執(zhí)行權(quán)限:所有用戶

作用: 壓縮(解壓)文件,壓縮文件后綴為.bz2

語法:bzip2 [-k] [文件]

-k:產(chǎn)生壓縮文件后保留原文件(壓縮比高)

-d 解壓縮的參數(shù)(decompress)

解壓使用bzip2 –d或者 bunzip2

命令路徑:/usr/bin/zip 執(zhí)行權(quán)限:所有用戶

作用: 壓縮(解壓)文件,壓縮文件后綴為.zip

語法:zip 選項[-r] [壓縮后文件名稱] [文件或目錄]

-r壓縮目錄

eg:zip services.zip /etc/services 壓縮文件;

zip -r test.zip /test 壓縮目錄

如果不加-r選項,壓縮后的文件沒有數(shù)據(jù)。

解壓使用unzip

命令路徑:/bin/tar 執(zhí)行權(quán)限:所有用戶

作用:文件、目錄打(解)包

語法:tar [-zcf] 壓縮后文件名 文件或目錄

-c 建立一個壓縮文件的參數(shù)指令(create),后綴是.tar

-x 解開一個壓縮文件的參數(shù)指令(extract)

-z 以gzip命令壓縮/解壓縮

-j 以bzip2命令壓縮/解壓縮

-v 壓縮的過程中顯示文件(verbose)

-f file 指定文件名,必選項

1, 單獨的打包 ,解包 tar –cf tar –xf

2, 打包之后,進行壓縮 gzip bzip2

3, 一步到位 tar –zcvf tar -zxvf

tar -cf -xf 單獨 壓縮 解壓縮

tar -z 以gzip打包目錄并壓縮 文件格式.tar.gz(.tgz)

tar -j 以bzip2打包目錄并壓縮 文件格式.tar.bz2

eg:tar -zcvf dir1.tar.gzdir1 使用gzip將目錄dir1壓縮成一個打包并壓縮文件dir1.tar.gz

eg: tar -cvf bak.tar . 將當前目錄的文件打包為bak.tar

eg: tar -xvf bak.tar 解壓

eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar使用gzip將打包文件bak.tar壓縮為bak.tar.gz

eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2將打包文件bak.tar壓縮為bak.tar.bz2

eg: tar -rvf bak.tar /etc/password 將/etc/password追加文件到bak.tar中(r)

eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的壓縮文件

eg:tar -xjf test.tar.bz2 解壓

最常用: tar + gzip

tar –zcvf 壓縮

tar –zxvf 解壓

補充:

1,文件路徑, 壓縮包帶文件路徑

2,源文件是保留的,不會被刪除

**shutdown **[選項] 時間

選項: -c: 取消前一個關(guān)機命令

-h:關(guān)機

-r:重啟

eg:

shutdown -h now 立即關(guān)機 shutdown -h 20:30 定時關(guān)機

其他關(guān)機命令 halt poweroff init 0

其他重啟命令

**reboot **重啟系統(tǒng) reboot -h now立即重啟

init 6

注意:生產(chǎn)環(huán)境中,關(guān)機命令和重啟命令謹慎執(zhí)行。

善于查看man help等幫助文檔

利用好Tab鍵 自動補全

掌握好一些快捷鍵

ctrl + c(停止當前進程)

ctrl + z 掛起當前進程,放后臺

ctrl + r(查看命令歷史) history

ctrl + l(清屏,與clear命令作用相同)

方向箭頭 上 下 可以查看執(zhí)行過的命令

ctrl + a 行首 ctrl + e 行尾

ctrl + k 清除 ctrl+ w 清除單詞

vim/vi是Unix / Linux上最常用的文本編輯器而且功能非常強大。

只有命令,沒有菜單。

《大碗》編輯器版

周圍的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什么插件呀、語法高亮呀、拼寫檢查呀,能給它開的都給它開著,就是一個字:酷!你說這么牛X的一東西,怎么著學(xué)會也得小半年吧。半年!?入門都遠著呢!能學(xué)會移動光標就不錯了,你還別說耗不起,就這還是左右移動?。?!

:

[圖片上傳失敗...(image-a08366-1624438708894)]

命令模式:又稱一般模式

編輯模式:又稱底行模式,命令行模式

|

命令

|

作用

|

|

a

|

在光標后附加文本

|

|

A(shift + a)

|

在本行行末附加文本 行尾

|

|

i

|

在光標前插入文本

|

|

I(shift+i)

|

在本行開始插入文本 行首

|

|

o

|

在光標下插入新行

|

|

O(shift+o)

|

在光標上插入新行

|

|

命令

|

作用

|

|

:set nu

|

設(shè)置行號

|

|

:set nonu

|

取消行號

|

|

gg

G

|

到第一行

到最后一行

|

|

nG

|

到第n行

|

|

:n

|

到第n行

|

|

命令

|

作用

|

|

:w

|

保存修改

|

|

:w new_filename

|

另存為指定文件

|

|

:w a.txt

|

內(nèi)容追加到a.txt文件中 文件需存在

|

|

:wq

|

保存修改并退出

|

|

shift+zz(ZZ)

|

快捷鍵,保存修改并退出

|

|

:q!

|

不保存修改退出

|

|

:wq!

|

保存修改并退出(文件所有者可忽略文件的只讀屬性)

|

不保存并退出:

1, 有修改,但是修改后的內(nèi)容是不保存的

2, 有突發(fā)情況,導(dǎo)致窗口退出。修改文件之后,直接刪除同名的.swp文件

|

命令

|

作用

|

|

x

|

刪除光標所在處字符 nx 刪除光標所在處后n個字符

|

|

dd

|

刪除光標所在行,ndd刪除n行

|

|

:n1,n2d

|

刪除指定范圍的行(eg :1,3d 刪除了123這三行)

|

|

dG

|

刪除光標所在行到末尾的內(nèi)容

|

|

D

|

刪除從光標所在處到行尾

|

|

命令

|

作用

|

|

yy、Y

|

復(fù)制當前行

|

|

nyy、nY

|

復(fù)制當前行以下n行

|

|

dd

|

剪切當前行

|

|

ndd

|

剪切當前行以下n行

|

|

p、P

|

粘貼在當前光標所在行下 或行上

|

|

命令

|

作用

|

|

r

|

取代光標所在處字符

|

|

R(shift + r)

|

從光標所在處開始替換字符,按Esc結(jié)束

|

|

u

|

undo,取消上一步操作

|

|

ctrl+r

|

redo,返回到undo之前

|

|

命令

|

作用

|

|

/string

|

向后搜索指定字符串 搜索時忽略大小寫 :set ic

|

|

?string

|

向前搜索指定字符串

|

|

n

|

搜索字符串的下一個出現(xiàn)位置,與搜索順序相同

|

|

N(Shift + n)

|

搜索字符串的上一個出現(xiàn)位置,與搜索順序相反

|

|

:%s/old/new/g

|

全文替換指定字符串

|

|

:n1,n2s/old/new/g

|

在一定范圍內(nèi)替換指定字符串

|

% 指全文,s 指開始,g 指全局替換

eg: :41,44/yang/lee/c 從41行到44行,把yang替換為lee,詢問是否替換

eg: :41,44/yang/lee/g 同上,不詢問,直接替換

使用替換命令來添加刪除注釋

:% s/^/#/g 來在全部內(nèi)容的行首添加 # 號注釋

:1,10 s/^/#/g 在1~10 行首添加 # 號注釋

vi里面怎么查命令??

:!which cp

vi里面怎么導(dǎo)入命令的結(jié)果?

:r !which cp

v 可視字符模式

V****(shift+v) 可視行模式,選擇多行操作

**ctrl+v **可視塊模式(列模式),操作列

I或者O進入插入模式。

1,圖形化界面

2,setup 命令虛擬界面

3,修改配置文件(以網(wǎng)絡(luò)方式為NAT示例)

vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.2.129

NETMASK=255.255.255.0

GATEWAY=192.168.2. 2 #網(wǎng)段2任意,IP地址2固定,網(wǎng)段為vmnet8的設(shè)置的IP網(wǎng)段

DNS1=114.114.114.114

DNS2=8.8.8.8

重啟網(wǎng)絡(luò)生效:

service network restart

命令路徑:/bin/ping 執(zhí)行權(quán)限:所有用戶

作用:測試網(wǎng)絡(luò)的連通性

語法:ping 選項 IP地址

-c 指定發(fā)送次數(shù)

ping 命令使用的是icmp協(xié)議,不占用端口

eg: # ping -c 3 127.0.0.1

英文:interface configure 命令路徑:/sbin/ifconfig 執(zhí)行權(quán)限:root

作用:查看和設(shè)置網(wǎng)卡網(wǎng)絡(luò)配置

語法:ifconfig [-a] [網(wǎng)卡設(shè)備標識]

-a:顯示所有網(wǎng)卡信息

ifconfig [網(wǎng)卡設(shè)備標識] IP地址 修改ip地址

英文:network statistics 命令路徑:/bin/netstat 執(zhí)行權(quán)限:所有用戶

作用:主要用于檢測主機的網(wǎng)絡(luò)配置和狀況

-a all顯示所有連接和監(jiān)聽端口

-t (tcp)僅顯示tcp相關(guān)選項

-u (udp)僅顯示udp相關(guān)選項

-n 使用數(shù)字方式顯示地址和端口號

-l (listening) 顯示監(jiān)控中的服務(wù)器的socket

eg:# netstat -tlnu 查看本機監(jiān)聽的端口

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN

協(xié)議 待收數(shù)據(jù)包 待發(fā)送數(shù)據(jù)包 本地ip地址:端口 遠程IP地址:端口

netstat –antpl

臨時生效:

hostname 主機名

[圖片上傳失敗...(image-ceed36-1624438708893)]

永久生效:修改配置文件

vi /etc/sysconfig/network

[圖片上傳失敗...(image-2b9d9e-1624438708893)]

修改主機名和ip地址之間的映射關(guān)系

vi /etc/hosts

192.168.2.120 node-1.edu點吸煙 node-1

可配置別名

[圖片上傳失敗...(image-ec86cf-1624438708893)]

進程和程序的區(qū)別:

1、程序是靜態(tài)概念,本身作為一種軟件資源長期保存;而進程是程序的執(zhí)行過程,它是動態(tài)概念,有一定的生命期,是動態(tài)產(chǎn)生和消亡的。

2、程序和進程無一一對應(yīng)關(guān)系。一個程序可以由多個進程共用;另一方面,一個進程在活動中有可順序地執(zhí)行若干個程序。

進程和線程的區(qū)別:

進程: 就是正在執(zhí)行的程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,并占用一定的系統(tǒng)資源。

線程: 輕量級的進程;進程有獨立的地址空間,線程沒有;線程不能獨立存在,它由進程創(chuàng)建;相對講,線程耗費的cpu和內(nèi)存要小于進程。

進程管理的作用?

判斷服務(wù)器的健康狀態(tài)

查看系統(tǒng)所有的進程

殺死進程

作用:查看系統(tǒng)中的進程信息

語法:ps [-auxle]

常用選項

查看系統(tǒng)中所有進程

ps應(yīng)用實例 # ps -u or ps -l 查看隸屬于自己進程詳細信息

作用: 查看當前進程樹

語法:pstree [選項]

-p 顯示進程PID

-u 顯示進程的所屬用戶

作用:查看系統(tǒng)健康狀態(tài)

顯示當前系統(tǒng)中耗費資源最多的進程,以及系統(tǒng)的一些負載情況。

語法:top [選項]

-d 秒數(shù),指定幾秒刷新一次,默認3秒(動態(tài)顯示)

作用:關(guān)閉進程

語法:kill [-選項] pId

kill -9 進程號(強行關(guān)閉) 常用

kill -1 進程號(重啟進程)

添加用戶

語法:useradd [選項] 用戶名

修改密碼命令

語法:passwd [選項] [用戶名]

用戶密碼:生產(chǎn)環(huán)境中,用戶密碼長度8位以上,設(shè)置大小寫加數(shù)字加特殊字符,要定期更換密碼。

ys^h_L9t

刪除用戶

-r 刪除賬號時同時刪除宿主目錄(remove)

作用:用于查看Linux文件系統(tǒng)的狀態(tài)信息,顯示各個分區(qū)的容量、已使用量、未使用量及掛載點等信息??词S嗫臻g

語法:df [-hkam] [掛載點]

-h(human-readable)根據(jù)磁盤空間和使用情況 以易讀的方式顯示 KB,MB,GB等 -k  以KB 為單位顯示各分區(qū)的信息,默認

-M 以MB為單位顯示信息 -a  顯示所有分區(qū)包括大小為0 的分區(qū)

作用:用于查看文件或目錄的大?。ù疟P使用空間)

語法:du [-abhs] [文件名目錄]

-a 顯示子文件的大小

-h以易讀的方式顯示 KB,MB,GB等

-s summarize 統(tǒng)計總占有量

eg:

du -a(all) /home  顯示/home 目錄下每個子文件的大小,默認單位為kb

du -b /home  以bytes為單位顯示/home 目錄下各個子目錄的大小

du -h /home 以K,M,G為單位顯示/home 文件夾下各個子目錄的大小

du -sh /home  以常用單位(K,M,G)為單位顯示/home 目錄的總大小 -s summarize

df命令和du命令的區(qū)別:

df命令是從文件系統(tǒng)考慮的,不僅考慮文件占用的空間,還要統(tǒng)計被命令或者程序占用的空間。

du命令面向文件,只計算文件或目錄占用的空間。

作用:查看內(nèi)存及交換空間使用狀態(tài)

語法: free [-kmg]

選項:

-k: 以KB為單位顯示,默認就是以KB為單位顯示

-m: 以MB為單位顯示

-g: 以GB為單位顯示

清理緩存命令:

echo 1 /proc/sys/vm/drop_caches

Linux系統(tǒng)的進程調(diào)度

Linux進程調(diào)度

1.調(diào)度方式

Linux系統(tǒng)的調(diào)度方式基本上采用“ 搶占式優(yōu)先級 ”方式,當進程在用戶模式下運行時,不管它是否自愿,核心在一定條件下(如該進程的時間片用完或等待I/O)可以暫時中止其運行,而調(diào)度其他進程運行。一旦進程切換到內(nèi)核模式下運行時,就不受以上限制,而一直運行下去,僅在重新回到用戶模式之前才會發(fā)生進程調(diào)度。

Linux系統(tǒng)中的調(diào)度基本上繼承了UNIX系統(tǒng)的 以優(yōu)先級為基礎(chǔ) 的調(diào)度。也就是說,核心為系統(tǒng)中每個進程計算出一個優(yōu)先級,該優(yōu)先級反映了一個進程獲得CPU使用權(quán)的資格,即高優(yōu)先級的進程優(yōu)先得到運行。核心從進程就緒隊列中挑選一個優(yōu)先級最高的進程,為其分配一個CPU時間片,令其投入運行。在運行過程中,當前進程的優(yōu)先級隨時間遞減,這樣就實現(xiàn)了“負反饋”作用,即經(jīng)過一段時間之后,原來級別較低的進程就相對“提升”了級別,從而有機會得到運行。當所有進程的優(yōu)先級都變?yōu)?(最低)時,就重新計算一次所有進程的優(yōu)先級。

2.調(diào)度策略

Linux系統(tǒng)針對不同類別的進程提供了3種不同的調(diào)度策略,即SCHED_FIFO、SCHED_RR及SCHED_OTHER。其中,SCHED_FIFO適合于 短實時進程 ,它們對時間性要求比較強,而每次運行所需的時間比較短。一旦這種進程被調(diào)度且開始運行,就一直運行到自愿讓出CPU或被優(yōu)先級更高的進程搶占其執(zhí)行權(quán)為止。

SCHED_RR對應(yīng)“時間片輪轉(zhuǎn)法”,適合于每次運行需要 較長時間的實時進程 。一個運行進程分配一個時間片(200 ms),當時間片用完后,CPU被另外進程搶占,而該進程被送回相同優(yōu)先級隊列的末尾,核心動態(tài)調(diào)整用戶態(tài)進程的優(yōu)先級。這樣,一個進程從創(chuàng)建到完成任務(wù)后終止,需要經(jīng)歷多次反饋循環(huán)。當進程再次被調(diào)度運行時,它就從上次斷點處開始繼續(xù)執(zhí)行。

SCHED_OTHER是傳統(tǒng)的UNIX調(diào)度策略,適合于交互式的 分時進程 。這類進程的優(yōu)先級取決于兩個因素:一個是進程剩余時間配額,如果進程用完了配給的時間,則相應(yīng)優(yōu)先級降到0;另一個是進程的優(yōu)先數(shù)nice,這是從UNIX系統(tǒng)沿襲下來的方法,優(yōu)先數(shù)越小,其優(yōu)先級越高。nice的取值范圍是-20 19。用戶可以利用nice命令設(shè)定進程的nice值。但一般用戶只能設(shè)定正值,從而主動降低其優(yōu)先級;只有特權(quán)用戶才能把nice的值設(shè)置為負數(shù)。進程的優(yōu)先級就是以上二者之和。

后臺命令對應(yīng)后臺進程(又稱后臺作業(yè))。后臺進程的優(yōu)先級低于任何交互(前臺)進程的優(yōu)先級。所以,只有當系統(tǒng)中當前不存在可運行的交互進程時,才調(diào)度后臺進程運行。后臺進程往往按批處理方式調(diào)度運行。

3.調(diào)度時機

核心進行進程調(diào)度的時機有以下5種情況:

(1)當前進程調(diào)用系統(tǒng)調(diào)用nanosleep( )或者pause( ),使自己進入睡眠狀態(tài),主動讓出一段時間的CPU的使用權(quán)。

(2)進程終止,永久地放棄對CPU的使用。

(3)在時鐘中斷處理程序執(zhí)行過程中,發(fā)現(xiàn)當前進程連續(xù)運行的時間過長。

(4)當喚醒一個睡眠進程時,發(fā)現(xiàn)被喚醒的進程比當前進程更有資格運行。

(5)一個進程通過執(zhí)行系統(tǒng)調(diào)用來改變調(diào)度策略或者降低自身的優(yōu)先級(如nice命令),從而引起立即調(diào)度。

4.調(diào)度算法

進程調(diào)度的算法應(yīng)該比較簡單,以便減少頻繁調(diào)度時的系統(tǒng)開銷。Linux執(zhí)行進程調(diào)度時,首先查找所有在就緒隊列中的進程,從中選出優(yōu)先級最高且在內(nèi)存的一個進程。如果隊列中有實時進程,那么實時進程將優(yōu)先運行。如果最需要運行的進程不是當前進程,那么當前進程就被掛起,并且保存它的現(xiàn)場—— 所涉及的一切機器狀態(tài),包括程序計數(shù)器和CPU寄存器等,然后為選中的進程恢復(fù)運行現(xiàn)場。

(二)Linux常用調(diào)度命令

· nohup命令

nohup命令的功能是以忽略掛起和退出的方式執(zhí)行指定的命令。其命令格式是:

nohup command [arguments]

其中,command是所要執(zhí)行的命令,arguments是指定命令的參數(shù)。

nohup命令告訴系統(tǒng),command所代表的命令在執(zhí)行過程中不受任何結(jié)束運行的信號(hangup和quit)的影響。例如,

$ nohup find / -name exam.txt -printf1

find命令在后臺運行。在用戶注銷后,它會繼續(xù)運行:從根目錄開始,查找名字是exam.txt的文件,結(jié)果被定向到文件f1中。

如果用戶沒有對輸出進行重定向,則輸出被附加到當前目錄的nohup.out文件中。如果用戶在當前目錄中不具備寫權(quán)限,則輸出被定向到$HOME/nohup.out 中。

· at命令

at命令允許指定命令執(zhí)行的時間。at命令的常用形式是:

at time command

其中,time是指定命令command在將來執(zhí)行時的時間和日期。時間的指定方法有多種,用戶可以使用絕對時間,也可以用相對時間。該指定命令將以作業(yè)形式在后臺運行。例如:

$ at 15:00 Oct 20

回車后進入接收方式,接著鍵入以下命令:

mail -s "Happy Birthday!" liuzheny

按下D鍵,屏幕顯示:

job 862960800.a at Wed Oct 20 15:00:00 CST 1999

$

表明建立了一個作業(yè),其作業(yè)ID號是862960800.a,運行作業(yè)的時間是1999年10月20日下午3:00,給liuzheny發(fā)一條標題為“Happy Birthday!”(生日快樂)的空白郵件。

利用 at -l 可以列出當前at隊列中所有的作業(yè)。

利用 at -r 可以刪除指定的作業(yè)。這些作業(yè)以前由at或batch命令調(diào)度。例如,

at -r 862960797.a

將刪除作業(yè)ID號是862960797.a的作業(yè)。其一般使用形式是:

at -r job_id

注意,結(jié)尾是.a的作業(yè)ID號,表示這個作業(yè)是由at命令提交的;結(jié)尾是.b的作業(yè)ID號,表示這個作業(yè)是由batch命令提交的。

· batch命令

batch命令不帶任何參數(shù),它提交的作業(yè)的優(yōu)先級比at命令提交的作業(yè)的優(yōu)先級低。batch無法指定作業(yè)運行的時間。實際運行時間要看系統(tǒng)中已經(jīng)提交的作業(yè)數(shù)量。如果系統(tǒng)中優(yōu)先級較高的作業(yè)比較多,那么,batch提交的作業(yè)則需要等待;如果系統(tǒng)空閑,則運行batch提交的作業(yè)。例如,

$ batch

回車后進入接收方式,接著鍵入命令:

find / -name exam.txt -print

按下D。退出接收方式,屏幕顯示:

job 862961540.b at Thu Nov 18 14:30:00 CST 1999

表示find命令被batch作為一個作業(yè)提交給系統(tǒng),作業(yè)ID號是862961540.b。如果系統(tǒng)當前空閑,這個作業(yè)被立即執(zhí)行,其結(jié)果同樣作為郵件發(fā)送給用戶。

· jobs命令

jobs命令用來顯示當前shell下正在運行哪些作業(yè)(即后臺作業(yè))。例如:

$ jobs

[2] + Running tar tv3 *

[1] - Running find / -name README -print logfile

$

其中,第一列方括號中的數(shù)字表示作業(yè)序號,它是由當前運行的shell分配的,而不是由操作系統(tǒng)統(tǒng)一分配的。在當前shell環(huán)境下,第一個后臺作業(yè)的作業(yè)號為1,第二個作業(yè)的作業(yè)號為2,等等。

第二列中的“ ”號表示相應(yīng)作業(yè)的優(yōu)先級比“-”號對應(yīng)作業(yè)的優(yōu)先級高。

第三列表明作業(yè)狀態(tài),是否為運行、中斷、等待輸入或停止等。

最后列出的是創(chuàng)建當前這個作業(yè)所對應(yīng)的命令行。

利用 jobs -l 形式,可以在作業(yè)號后顯示出相應(yīng)進程的PID。如果想只顯示相應(yīng)進程的PID,不顯示其它信息,則使用 jobs -p 形式。

· fg命令

fg命令把指定的后臺作業(yè)移到前臺。其使用格式是:

fg [job…]

其中,參數(shù)job是一個或多個進程的PID,或者是命令名稱或者作業(yè)號(前面要帶有一個“%”號)。例如:

$ jobs

[2] + Running tar tv3 *

[1] - Running find / -name README -print logfile

$ fg %find

find / -name README -print logfile

注意,顯示的命令行末尾沒有“”符號。下面命令能產(chǎn)生同樣的效果:

$ fg %1

這樣,find命令對應(yīng)的進程就在前臺執(zhí)行。當后臺只有一個作業(yè)時,鍵入不帶參數(shù)的fg命令,就能使相應(yīng)進程移到前臺。當有兩個或更多的后臺作業(yè)時,鍵入不帶參數(shù)的fg,就把最后進入后臺的進程首先移到前臺。

· bg命令

bg命令可以把前臺進程換到后臺執(zhí)行。其使用格式是:

bg [job…]

其中,job是一個或多個進程的PID、命令名稱或者作業(yè)號,在參數(shù)前要帶“%”號。例如,在cc(C編譯命令)命令執(zhí)行過程中,按下Z鍵,使這個作業(yè)掛起。然后鍵入以下命令:

$ bg %cc

該掛起的作業(yè)在后臺重新開始執(zhí)行。

Linux常用命令總結(jié)

ps 命令的作用是顯示進程信息的;

| 符號,是個管道符號,表示ps 和 grep 命令同時執(zhí)行;

grep 命令是查找(Global Regular Expression Print),能使用正則表達式搜索文本,然后把匹配的行顯示出來;

ps命令有一些參數(shù):

-e : 顯示所有進程

-f : 全格式

-h : 不顯示標題

-l : 長格式

-w : 寬輸出

a :顯示終端上的所有進程,包括其他用戶的進程。

r :只顯示正在運行的進程。

u :以用戶為主的格式來顯示程序狀況。

x :顯示所有程序,不以終端機來區(qū)分。

結(jié)果信息從前到后依次是:

UID PID PPID C STIME TTY TIME CMD

zzw 14124 13991 0 00:38 pts/0 00:00:00 grep –color=auto dae

Linux中的top命令顯示系統(tǒng)上正在運行的進程。它是系統(tǒng)管理員最重要的工具之一。被廣泛用于監(jiān)視服務(wù)器的負載。top命令是一個交互命令。在運行top的時候還可以運行很多命令。

N – 以 PID 的大小的順序排列表示進程列表

P – 以 CPU 占用率大小的順序排列進程列表

M – 以內(nèi)存占用率大小的順序排列進程列表

q – 退出 top

h – 幫助

1 系統(tǒng)運行時間和平均負載

這些字段顯示:當前時間、系統(tǒng)已運行的時間、當前登錄用戶的數(shù)量、相應(yīng)最近5、10和15分鐘內(nèi)的平均負載。

2 任務(wù)

第二行顯示的是任務(wù)或者進程的總結(jié)。進程可以處于不同的狀態(tài)。這里顯示了全部進程的數(shù)量。除此之外,還有正在運行、睡眠、停止、僵尸進程的數(shù)量(僵尸是一種進程的狀態(tài))。這些進程概括信息可以用’t’切換顯示。

3 CPU 狀態(tài)

下一行顯示的是CPU狀態(tài)。 這里顯示了不同模式下的所占CPU時間的百分比。這些不同的CPU時間表示:

us, user: 運行(未調(diào)整優(yōu)先級的) 用戶進程的CPU時間

sy,system: 運行內(nèi)核進程的CPU時間

ni,niced:運行已調(diào)整優(yōu)先級的用戶進程的CPU時間

wa,IO wait: 用于等待IO完成的CPU時間

hi:處理硬件中斷的CPU時間

si: 處理軟件中斷的CPU時間

st:這個虛擬機被hypervisor偷去的CPU時間(譯注:如果當前處于一個hypervisor下的vm,實際上hypervisor也是要消耗一部分CPU處理時間的)。

4 內(nèi)存使用

接下來兩行顯示內(nèi)存使用率,有點像’free’命令。第一行是物理內(nèi)存使用,第二行是虛擬內(nèi)存使用(交換空間)。

物理內(nèi)存顯示如下:全部可用內(nèi)存、已使用內(nèi)存、空閑內(nèi)存、緩沖內(nèi)存。相似地:交換部分顯示的是:全部、已使用、空閑和緩沖交換空間。

5 各列的意思

PID 進程ID,進程的唯一標識符

USER 進程所有者的實際用戶名。

PR 進程的調(diào)度優(yōu)先級。這個字段的一些值是’rt’。這意味這這些進程運行在實時態(tài)。

NI 進程的nice值(優(yōu)先級)。越小的值意味著越高的優(yōu)先級。

VIRT 進程使用的虛擬內(nèi)存。

RES 駐留內(nèi)存大小。駐留內(nèi)存是任務(wù)使用的非交換物理內(nèi)存大小。

SHR SHR是進程使用的共享內(nèi)存。

S 這個是進程的狀態(tài)。它有以下不同的值:

D – 不可中斷的睡眠態(tài)。

R – 運行態(tài)

S – 睡眠態(tài)

T – 被跟蹤或已停止

Z – 僵尸態(tài)

%CPU 自從上一次更新時到現(xiàn)在任務(wù)所使用的CPU時間百分比。

%MEM 進程使用的可用物理內(nèi)存百分比。

TIME+ 任務(wù)啟動后到現(xiàn)在所使用的全部CPU時間,精確到百分之一秒。

COMMAND 運行進程所使用的命令。

注意 :不同發(fā)行版的top命令在各種細節(jié)有不同,如果發(fā)現(xiàn)不同時,請讀你的幫助手冊和命令內(nèi)的幫助。)

kill、kill-15、kill-9區(qū)別:

執(zhí)行kill(默認kill -15)命令,系統(tǒng)會發(fā)送一個SIGTERM信號給對應(yīng)的程序,大部分程序接收到SIGTERM信號后,會先釋放自己的資源,然后再停止。用法kill pid。

kill -15 pid。

kill -9命令,系統(tǒng)給對應(yīng)程序發(fā)送的信號是SIGKILL,即exit。exit信號不會被系統(tǒng)阻塞,所以kill -9能順利殺掉進程。用法kill -9 pid。

tail -n 1000:顯示最后1000行

tail -n +1000:從1000行開始顯示,顯示1000行以后的

head -n 1000:顯示前面1000行

cat a.txt 顯示文件

vim xx.conf 編輯文件

打開文件后,按insert鍵進入編輯模式;編輯完后,按esc建退出編輯模式;按shift+冒號后,輸入wq保存退出,wq!保存強制退出,q不保存退出

在根目錄模糊查找名字含java的文件

服務(wù)器端常有很多壓縮過的日志文件,當需要查找日志中某些特定信息的時候,為了避免解壓文件,可以使用zgrep,zcat等命令查找、查看壓縮文件中的信息

zgrep ' 輸入你要查找的東東' /目錄 /文件 .gz 或者.log (當日)

grep ' 輸入你要查找的東東' /目錄 /文件 .gz 或者.log (非當日的壓縮文件)

例如: zgrep 'callMktCamLoad' app.log.2019-12-03-*.gz

rpm包安裝的,可以用 rpm -qa 看到,如果要查找某軟件包是否安裝,用 rpm -qa | grep "軟件或者包的名字"

以deb包安裝的,可以用 dpkg -l 看到。如果是查找指定軟件包,用 dpkg -l | grep "軟件或者包的名字"

yum方法安裝的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "軟件名或者包名"

網(wǎng)站名稱:linux優(yōu)先執(zhí)行的命令 linux程序運行優(yōu)先級
本文鏈接:http://www.muchs.cn/article0/ddehpio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營銷推廣Google、網(wǎng)站建設(shè)App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)