成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

linux讀取命令行參數(shù),linux 讀寫命令

linux 內(nèi)核模塊如何獲取命令行參數(shù)

內(nèi)核不直接獲取shell變量,shell是一個(gè)應(yīng)用程序,用來執(zhí)行mkdir ,并將sss傳遞給mkdir,mkdir用arg數(shù)組來接收這個(gè)參數(shù)后,使用文件操作接口來對(duì)文件節(jié)點(diǎn)進(jìn)行操作,創(chuàng)建一個(gè)文件夾

創(chuàng)新互聯(lián)是專業(yè)的貴州網(wǎng)站建設(shè)公司,貴州接單;提供成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行貴州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

Linux命令

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

如:ls -la /usr

**說明: **

大部分命令遵從該格式

多個(gè)選項(xiàng)時(shí),可以一起寫 eg:ls –l –a à ls –la

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

作用:切換用戶身份

語法:su [選項(xiàng)] 用戶名

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

$ su – root

env

$ su – root –c “useradd longjing”

文件或目錄的CRUD

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

作用: 切換目錄

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

.. 回到上一級(jí)目錄

. 當(dāng)前目錄

~ 當(dāng)前用戶的宿主目錄(eg:# cd ~用戶名 進(jìn)入某個(gè)用戶的家目錄)

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

作用:顯示目錄文件

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

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

-l(long) 顯示詳細(xì)信息

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

-r (reverse) 逆序排序

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

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

作用:顯示當(dāng)前工作目錄

語法:pwd [-LP]

-L 顯示鏈接路徑,當(dāng)前路徑,默認(rèn)

-P 物理路徑

eg:# cd /etc/init.d

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

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

語法:mkdir [-p] 目錄名

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

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

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

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

語法:touch 文件名

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

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

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

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

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

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

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

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

eg:

1,相對(duì)路徑 cp –R /etc/* . cp –R ../aaa ../../test/

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

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

作用:移動(dòng)文件或目錄、文件或目錄改名

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

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

作用:刪除文件

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

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

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

注意:工作中,謹(jǐn)慎使用rm –rf 命令。

擴(kuò)展點(diǎn) :刪除亂碼文件

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

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

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

就能順利刪除了

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

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

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

-n 顯示行號(hào)

eg:cat /etc/services

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

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

語法:more [文件名]

空格或f 顯示下一頁

Enter鍵 顯示下一行

q或Q 退出

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

作用:查看文件前幾行(默認(rè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) 動(dòng)態(tài)顯示文件內(nèi)容

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

head -n 100 /etc/services config.log

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

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

語法:

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

ln [源文件] [目標(biāo)文件] 創(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ù)量,如果該文件沒有硬鏈接,就只有本身一個(gè)硬鏈接。

13鏈接文件的長(zhǎng)度

格式解析(特征):

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

2,- 箭頭指向到源文件

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

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

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

硬鏈接特征

1,相當(dāng)于 cp -p +同步更新

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

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

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

刪除軟連接

rm -rf symbolic_name

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

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

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

eg:man ls man services

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

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

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

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

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

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

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

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

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

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

eg:help cd

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

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

命令名 --help 列舉該命令的常用選項(xiàng)

eg: cp --help

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

作用:查找文件或目錄

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

如果沒有指定搜索路徑,默認(rèn)從當(dāng)前目錄查找

find命令選項(xiàng)

-name 按名稱查找 精準(zhǔn)查找

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

-iname 按名稱查找

find查找中的字符匹配:

*:匹配所有

?:匹配單個(gè)字符

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

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

eg: # find . –name *g

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

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

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

100MB=102400KB=204800block

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

f 二進(jìn)制文件l 軟連接文件 d 目錄 c 字符文件

eg: find /dev -type c

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

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

eg:

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

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

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

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

選項(xiàng)與參數(shù):

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

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

-n :顯示匹配行及行號(hào)

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

eg:grep ftp /etc/services

eg:#grep -v ^# /etc/inittab 去掉文件行首的#號(hào)

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

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

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

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

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

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 選項(xiàng)[-r] [壓縮后文件名稱] [文件或目錄]

-r壓縮目錄

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

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

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

解壓使用unzip

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

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

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

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

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

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

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

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

-f file 指定文件名,必選項(xiàng)

1, 單獨(dú)的打包 ,解包 tar –cf tar –xf

2, 打包之后,進(jìn)行壓縮 gzip bzip2

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

tar -cf -xf 單獨(dú) 壓縮 解壓縮

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

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

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

eg: tar -cvf bak.tar . 將當(dāng)前目錄的文件打包為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 解壓

補(bǔ)充:

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

2,源文件是保留的,不會(huì)被刪除

**shutdown **[選項(xiàng)] 時(shí)間

選項(xiàng): -c: 取消前一個(gè)關(guān)機(jī)命令

-h:關(guān)機(jī)

-r:重啟

eg:

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

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

其他重啟命令

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

init 6

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

善于查看man help等幫助文檔

利用好Tab鍵 自動(dòng)補(bǔ)全

掌握好一些快捷鍵

ctrl + c(停止當(dāng)前進(jìn)程)

ctrl + z 掛起當(dāng)前進(jìn)程,放后臺(tái)

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

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

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

ctrl + a 行首 ctrl + e 行尾

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

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

只有命令,沒有菜單。

《大碗》編輯器版

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

:

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

命令模式:又稱一般模式

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

|

命令

|

作用

|

|

a

|

在光標(biāo)后附加文本

|

|

A(shift + a)

|

在本行行末附加文本 行尾

|

|

i

|

在光標(biāo)前插入文本

|

|

I(shift+i)

|

在本行開始插入文本 行首

|

|

o

|

在光標(biāo)下插入新行

|

|

O(shift+o)

|

在光標(biāo)上插入新行

|

|

命令

|

作用

|

|

:set nu

|

設(shè)置行號(hào)

|

|

:set nonu

|

取消行號(hào)

|

|

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

|

刪除光標(biāo)所在處字符 nx 刪除光標(biāo)所在處后n個(gè)字符

|

|

dd

|

刪除光標(biāo)所在行,ndd刪除n行

|

|

:n1,n2d

|

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

|

|

dG

|

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

|

|

D

|

刪除從光標(biāo)所在處到行尾

|

|

命令

|

作用

|

|

yy、Y

|

復(fù)制當(dāng)前行

|

|

nyy、nY

|

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

|

|

dd

|

剪切當(dāng)前行

|

|

ndd

|

剪切當(dāng)前行以下n行

|

|

p、P

|

粘貼在當(dāng)前光標(biāo)所在行下 或行上

|

|

命令

|

作用

|

|

r

|

取代光標(biāo)所在處字符

|

|

R(shift + r)

|

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

|

|

u

|

undo,取消上一步操作

|

|

ctrl+r

|

redo,返回到undo之前

|

|

命令

|

作用

|

|

/string

|

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

|

|

?string

|

向前搜索指定字符串

|

|

n

|

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

|

|

N(Shift + n)

|

搜索字符串的上一個(gè)出現(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 來在全部?jī)?nèi)容的行首添加 # 號(hào)注釋

:1,10 s/^/#/g 在1~10 行首添加 # 號(hào)注釋

vi里面怎么查命令??

:!which cp

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

:r !which cp

v 可視字符模式

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

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

I或者O進(jìn)入插入模式。

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)限:所有用戶

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

語法:ping 選項(xiàng) 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è)備標(biāo)識(shí)]

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

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

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

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

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

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

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

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

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

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

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN

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

netstat –antpl

臨時(shí)生效:

hostname 主機(jī)名

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

永久生效:修改配置文件

vi /etc/sysconfig/network

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

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

vi /etc/hosts

192.168.2.120 node-1.edu.cn node-1

可配置別名

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

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

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

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

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

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

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

進(jìn)程管理的作用?

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

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

殺死進(jìn)程

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

語法:ps [-auxle]

常用選項(xiàng)

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

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

作用: 查看當(dāng)前進(jìn)程樹

語法:pstree [選項(xiàng)]

-p 顯示進(jìn)程PID

-u 顯示進(jìn)程的所屬用戶

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

顯示當(dāng)前系統(tǒng)中耗費(fèi)資源最多的進(jìn)程,以及系統(tǒng)的一些負(fù)載情況。

語法:top [選項(xiàng)]

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

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

語法:kill [-選項(xiàng)] pId

kill -9 進(jìn)程號(hào)(強(qiáng)行關(guān)閉) 常用

kill -1 進(jìn)程號(hào)(重啟進(jìn)程)

添加用戶

語法:useradd [選項(xiàng)] 用戶名

修改密碼命令

語法:passwd [選項(xiàng)] [用戶名]

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

ys^h_L9t

刪除用戶

-r 刪除賬號(hào)時(shí)同時(shí)刪除宿主目錄(remove)

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

語法:df [-hkam] [掛載點(diǎn)]

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

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

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

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

-a 顯示子文件的大小

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

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

eg:

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

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

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

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

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

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

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

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

語法: free [-kmg]

選項(xiàng):

-k: 以KB為單位顯示,默認(rèn)就是以KB為單位顯示

-m: 以MB為單位顯示

-g: 以GB為單位顯示

清理緩存命令:

echo 1 /proc/sys/vm/drop_caches

linux中設(shè)計(jì)一個(gè)shell腳本程序可以接受命令行輸入的參數(shù)執(zhí)行相應(yīng)的菜單命令

之所以用到命令行參數(shù),關(guān)鍵在于shell腳本需要與運(yùn)行腳本的人員進(jìn)行交互。

bash shell提供了命令行參數(shù)添加在命令后面的數(shù)據(jù)值)、命令行選項(xiàng)修改命令行為的單字符值)和直接讀取鍵盤輸入。

1、命令行參數(shù)

向shell腳本傳遞數(shù)據(jù)的最基本方式是使用命令行參數(shù)。

1)讀取參數(shù)

讀取輸入的參數(shù)的變量為位置參數(shù),位置參數(shù)通過標(biāo)準(zhǔn)數(shù)字表示,

其中$0為程序名稱,$1為第一個(gè)參數(shù),$2為第二個(gè)參數(shù),依次類推,直到$9為第九個(gè)參數(shù)。

shell腳本自動(dòng)將命令行參數(shù)賦值給各個(gè)位置變量。

同時(shí)輸入多個(gè)參數(shù)可以是數(shù)值也可以是字符串)時(shí),必須使用空格分隔要想在參數(shù)值中包含空格,就必須使用單引號(hào)或雙引號(hào))

當(dāng)參數(shù)多于9個(gè)后,必須在shell腳本內(nèi)使用大括號(hào)將變量括起來,如${10}。從而可以使用任意個(gè)參數(shù)。

2)讀取程序名稱

傳遞給變量$0的字符串實(shí)際上是程序的路徑根據(jù)調(diào)用方法決定是相對(duì)還是絕對(duì)路徑)。

使用basename命令可以去掉路徑前綴,只獲得程序名稱名字中不 可以有空格)。

3)測(cè)試腳本

當(dāng)腳本認(rèn)為應(yīng)該包含參數(shù),卻實(shí)際上沒有數(shù)據(jù)時(shí),就會(huì)出錯(cuò)。

好的方法是對(duì)參數(shù)進(jìn)行檢查來保證使用參數(shù)前確實(shí)存在數(shù)據(jù),可以使用-n參數(shù)來檢查。

例子:if [ –n “$1” ] then .. else .. fi

2、特殊的參數(shù)變量

用于跟蹤命令行參數(shù)

1)參數(shù)計(jì)數(shù)

使用特殊變量$#測(cè)試執(zhí)行腳本時(shí)包含的命令行參數(shù)個(gè)數(shù)。腳本中任何位置都可以 使用$#

例子:if [ $# –ne 2 ] 即可測(cè)試參數(shù)個(gè)數(shù)

可以使用${!#}來返回最后一個(gè)命令行參數(shù)當(dāng)無參數(shù)時(shí),$#為0,而${!#}為程序名)

2)獲取所有數(shù)據(jù)

變量$*將命令行中提供的所有參數(shù)作為一個(gè)單詞處理,它將多個(gè)參數(shù)看成 一個(gè)參數(shù)。

變量$@將命令行中提供的所有參數(shù)作為同一個(gè)字符串中的多個(gè)單詞處理。 允許對(duì)其中的值進(jìn)行迭代一般使用for),分隔開不同參數(shù)

3、移位

shift命令能夠改變命令行參數(shù)的相對(duì)位置。默 認(rèn)將每個(gè)參數(shù)變量左移一個(gè)位置變量$0不變,把$1丟棄,注意不可以恢復(fù)了?。?/p>

在不清楚參數(shù)數(shù)目情況下,這是一個(gè)迭代參數(shù)的好辦法。

可以為shift提供一個(gè)參數(shù),來實(shí)現(xiàn)多位移變化。

4、處理選項(xiàng)

選項(xiàng)是由破折號(hào)引導(dǎo)的單個(gè)字母,用于更改命令的行為。

1,找出選項(xiàng)

1)處理簡(jiǎn)單選項(xiàng)

可以使用處理命令行參數(shù)相同的方法處理選項(xiàng),抽取時(shí)使用case語句進(jìn)行判斷是否符合選項(xiàng)格式。

2)從參數(shù)中分離選項(xiàng)

同時(shí)使用選項(xiàng)和參數(shù)時(shí),可以使用--指示選項(xiàng)列表的結(jié)束。發(fā)現(xiàn)--后,shell就知道后面的是普通參數(shù)了,停止使用case處理選項(xiàng)。

3)處理帶值的選項(xiàng)

選項(xiàng)后緊跟參數(shù)值,一種方法是在case中對(duì)應(yīng)選項(xiàng)后使用shift和讀后一位參數(shù)的方法處理。更好的方法如 下:

2,使用getopt命令

getopt命令在處理選項(xiàng)和參數(shù)時(shí)非常方便。它對(duì)參數(shù)進(jìn)行重新組 織,以便于解析

1)命令格式

getopt可以接受任意形式的選項(xiàng)和參數(shù)列表,并自動(dòng)將它們轉(zhuǎn)換為適當(dāng)?shù)母袷健?/p>

命令格式為: getopt options optstring parameters

選項(xiàng)字符串(opstring)用于定義命令行中的有效選項(xiàng)字母,以及哪些選項(xiàng)字母需要參數(shù)值。

2)腳本中使用getopt

需要使用set命令將現(xiàn)有的命令行選項(xiàng)和參數(shù)替換為getopt命令生成的 格式化形式。

需要將原始腳本命令行參數(shù)送給getopt命令,然后將getopt命令輸出送給set命令,如下:set – `getopts –q ab:cd “$@”`

但是getopt命令不能很好的處理帶有空格的參數(shù)值,它將空格解析為參數(shù)分隔符,而不是將雙引號(hào)引起來的兩個(gè) 值合并成一個(gè)參數(shù)。解決辦法如下:

3)更高級(jí)的getopts命令

getopts命令順序的對(duì)現(xiàn)有的shell參數(shù)變量進(jìn)行處理,每調(diào)用一次,只處理命令中檢測(cè)到的參數(shù)中的一個(gè)。處理完所有參數(shù)后,以大于0的退出 狀態(tài)退出。

非常適宜于在循環(huán)中解析所有命令行參數(shù)

格式為: getopts optstring variable

$optarg包含需要參數(shù)值的選項(xiàng)要使用的值,$optind包含getopts停止處理時(shí)在參數(shù)列表中的位置。

注意:當(dāng)getopts處理時(shí),會(huì)將選項(xiàng)前的-去掉,所以對(duì)應(yīng)的case中不需要破折號(hào)。

好的特性:

1)可以在參數(shù)值中包含空格

2)選項(xiàng)字母和參數(shù)值中間可以沒有空格

3)將在命令行中找到的未定義的選項(xiàng)都綁定為單一的輸出——問號(hào)

5、標(biāo)準(zhǔn)化選項(xiàng)

有一些字母選項(xiàng)具有標(biāo)準(zhǔn)含義。最好按照標(biāo)準(zhǔn)含義定義選項(xiàng)意義

-a –c –d –e –f –h –i –l –n –o –q –r –s –v- x –y

6、獲取用戶輸入

當(dāng)需要在執(zhí)行過程中獲得執(zhí)行腳本人員的輸入,使用read命令

1)基本讀取

read命令接受標(biāo)準(zhǔn)輸入或其他文件描述符輸入。讀入后將數(shù)據(jù)放入 一個(gè)標(biāo)準(zhǔn)變量中。

-p 允許在read命令行中直接指定一個(gè)提示。

可以指定多個(gè)變量,也可以不指定將放置在reply環(huán)境變量中)

2)計(jì)時(shí)

使用-t指定一個(gè)計(jì)時(shí)器,計(jì)時(shí)數(shù)滿還未輸入,read返回一個(gè)非0的退出狀態(tài)。

使用-n指定輸入的字符個(gè)數(shù),輸入達(dá)到預(yù)定數(shù)目時(shí),就自動(dòng)結(jié)束輸入

3)默讀

使用-s使輸入不顯示在終端例如輸入密碼)

4)讀取文件

最常用的方法是使用cat命令,并通過管道傳給包含read的while語句。

解析命令行參數(shù)的函數(shù)

1.全局變量解釋:

optarg: 如果選項(xiàng)帶參數(shù),參數(shù)保存在optarg中。如果選項(xiàng)帶可選參數(shù),而實(shí)際無參數(shù)時(shí),optarg為NULL。

optind:argv數(shù)組中下一次需要處理的元素的下標(biāo),系統(tǒng)默認(rèn)初始化此值為1. 0是沒有意義的,argv[0]為程序名,在解析命令行參數(shù)中是沒有意義的。getopt正常解析完畢后,optind設(shè)置為argv數(shù)組中第一個(gè)不是選項(xiàng)的元素的下標(biāo)(一般為0)。

opterr:存儲(chǔ)錯(cuò)誤選項(xiàng)字符.

2. GNU/Linux的命令行選項(xiàng)有兩種類型: 短選項(xiàng)和長(zhǎng)選項(xiàng) ,前者以 '-' 作為前導(dǎo)符,后者以 '--' 作為前導(dǎo)符。 -n 表示是一個(gè)不帶參數(shù)的短選項(xiàng)。 --n 表示是一個(gè)不帶參數(shù)的長(zhǎng)選項(xiàng)。現(xiàn)在有一個(gè)帶有參數(shù)的短選項(xiàng)比如說 -w foo ,那么它和長(zhǎng)選項(xiàng) --foo 是等價(jià)的。

函數(shù)聲明:

函數(shù)參數(shù):

1.argc:主函數(shù)傳遞過來的實(shí)參

2.argv:主函數(shù)傳遞過來的實(shí)參

3.optstring:一個(gè)包含選項(xiàng)字符的字符串。 一組短選項(xiàng)組成的字符串

函數(shù)調(diào)用結(jié)果

1.該函數(shù)每解析完一個(gè)選項(xiàng),就返回該選項(xiàng)字符。選項(xiàng)字符解析完畢后,調(diào)用getopt函數(shù)將會(huì)返回-1,然后optind設(shè)置為argv數(shù)組中第一個(gè)不是選項(xiàng)的元素的下標(biāo)。

2. 當(dāng)調(diào)用getopt函數(shù)檢測(cè)到錯(cuò)誤時(shí)(比如說檢測(cè)到的選項(xiàng)字符不在optstring實(shí)參中),默認(rèn)情況下函數(shù)返回'?'。 為什么說是默認(rèn)呢?因?yàn)槿绻ㄟ^optstring實(shí)參指明選項(xiàng)帶參數(shù),而實(shí)際命令行沒有參數(shù)時(shí),getopt返回 ':' 而不是 '?'

關(guān)于optstring,還有幾點(diǎn)說明:

1.如果選項(xiàng)帶參數(shù),該選項(xiàng)后接冒號(hào),比如optstring這個(gè)實(shí)參值為"a:b",指示a帶參數(shù),b沒有參數(shù);

2.如果選項(xiàng)帶可選參數(shù),該選項(xiàng)后接兩個(gè)冒號(hào),比如"a::b",表明a可能有參數(shù),也可能沒有;

3.如果optstring的開頭字符為':',表明如果指明選項(xiàng)帶參數(shù),而實(shí)際命令行沒有參數(shù)時(shí),getopt返回':'而不是'?'(默認(rèn)情況下返回 '?' ,和無法識(shí)別的參數(shù)返回一樣);

4.如果optstring的開頭字符為'+',表明一但遇到一個(gè)非選項(xiàng)參數(shù),馬上停止掃描,隨后的部分當(dāng)作參數(shù)來解釋;

5.如果optstring的開頭字符為'-',表明如果遇到無選項(xiàng)參數(shù),則把它當(dāng)作選項(xiàng)1(不是字符'1')的參數(shù)

示例:(來源于man文檔)

運(yùn)行示例:

函數(shù)聲明:

函數(shù)參數(shù):

longops:指向一個(gè)option結(jié)構(gòu)體數(shù)組的第一個(gè)元素。

longindex:getopt_long的最后一個(gè)參數(shù)longindex在函數(shù)返回時(shí)指向被搜索到的選項(xiàng)在longopts數(shù)組中的下標(biāo)。

關(guān)于option struct如下:

注意在初始化option struct時(shí): The last element of the array has to be filled with zeros.

函數(shù)返回值:

1.如果flag這個(gè)實(shí)參為null,那么這個(gè)函數(shù)返回val的值。 這樣短選項(xiàng)字符解析和長(zhǎng)選項(xiàng)解析搭建了橋梁。

2.如果flag這個(gè)實(shí)參不為null,那么這個(gè)函數(shù)返回0

3.選項(xiàng)字符解析完畢后,調(diào)用getopt_long函數(shù)將會(huì)返回-1

4.當(dāng)調(diào)用getopt_long函數(shù)檢測(cè)到錯(cuò)誤時(shí)(比如說檢測(cè)到的選項(xiàng)字符不在longops實(shí)參中),默認(rèn)情況下函數(shù)返回'?'

示例:(來源于man 文檔)

運(yùn)行示例如下:

getopt_long_only類似于getopt_long,但是它把 '-' 開頭的選項(xiàng)當(dāng)作長(zhǎng)選項(xiàng)來處理。如果該選項(xiàng)與長(zhǎng)選項(xiàng)不匹配,而與短選項(xiàng)匹配,則可以作為短選項(xiàng)解析。

當(dāng)前標(biāo)題:linux讀取命令行參數(shù),linux 讀寫命令
分享URL:http://jinyejixie.com/article8/hsidop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作定制網(wǎng)站、做網(wǎng)站網(wǎng)站導(dǎo)航、服務(wù)器托管網(wǎng)站策劃

廣告

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

手機(jī)網(wǎng)站建設(shè)
青岛市| 红原县| 南平市| 富川| 通辽市| 渭南市| 扎兰屯市| 宁海县| 漳州市| 新野县| 怀柔区| 望江县| 木里| 囊谦县| 崇仁县| 景谷| 叶城县| 长汀县| 西吉县| 张家口市| 崇州市| 巴林左旗| 繁峙县| 东乡县| 安阳县| 平乐县| 鄂托克旗| 隆安县| 永宁县| 南木林县| 荃湾区| 鹤庆县| 昭觉县| 简阳市| 商南县| 宁晋县| 永靖县| 新津县| 三门县| 邯郸县| 隆昌县|