分類: 電腦/網絡 操作系統/系統故障
創新互聯服務項目包括洮北網站建設、洮北網站制作、洮北網頁制作以及洮北網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,洮北網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到洮北省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
問題描述:
歡迎大家的投稿!!!!!!!
解析:
LINUX常用命令
1 文件與目錄操作命令
1.1文件內容查詢命令
grep、fgrep、egrep
CODE:[Copy to clipboard]語法:grep[選項][查找模式][文件名1,文件名2,……]
選項:
QUOTE:
-E 每個模式作為一個擴展的正則源行表達式對待
-F 每個模式作為一組固定字符串對待,而不作為正則表達式
-i 比較時不區分大小寫
-l 顯示首次匹配匹枝裂腔配串所在的文件名并用換行符將其分開。當在文件中多次出現匹配串時,不重復顯示次文件名;
-x 只顯示整行嚴格匹配的行
1.2文件查找命令 find、locate
語法:
CODE:[Copy to clipboard]find 起始目錄 尋找條件 操作
以名稱和文件屬性查找
QUOTE:
-name‘字串‘ 查找文件名匹配所給字串的所有文件,字串內可用通配符*、?、[]。
-lname‘字串‘ 查找文件名匹配所給字串的所有符號鏈接文件,字串內可用通配符*、?、[]。
-gid n 查找屬于ID號為n的用戶組的所有文件。
-uid n 查找屬于ID號為n的用戶的所有文件。
-group‘字串‘ 查找屬于用戶組名為所給字串的所有的文件。
-user‘字串‘ 查找屬于用戶名為所給字串的所有的文件。
-path‘字串‘ 查找路徑名匹配所給字串的所有文件,字串內可用通配符*、?、[]。
-perm 權限 查找具有指定權限的文件和目錄,權限的表示可以如711、644。
-type x 查找類型為 x的文件,
語法:locate 相關字
1.3文件的復制、刪除和移動命令
文件復制命令
CODE:[Copy to clipboard]cp [選項] 源文件或目錄 目標文件或目錄
選項:
QUOTE:
- a 通常在拷貝目錄時使用
-d 拷貝時保留連接
-f 刪除已經存在的目標文件而不提示
-i 和f選項相反
-p 此時cp除復制源文件內容外,還將其修改的時間和訪問權限也復制到新文件中
-r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目猛衫錄下的所有的子目錄和文件,此時目標文件必須為一個目錄名;
-l 不作拷貝,只是鏈接文件
文件移動命令
CODE:[Copy to clipboard]mv[選項] 源文件或目錄 目標文件或目錄
QUOTE:
-i 交互式操作
-f 禁止交互式操作
文件刪除命令
CODE:[Copy to clipboard]rm[選項] 文件…
QUOTE:
-f 忽略不存在的文件,從不給出提示
-r 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除
-i 進行交互式刪除
1.4文件鏈接命令
CODE:[Copy to clipboard]ln [選項] 目標 [鏈接名] 或 ln [選項] 目標 目錄
QUOTE:
選項:
- s 建立符號鏈接
1.5目錄的創建和刪除命令
mkdir 創建一個目錄
語法:
CODE:[Copy to clipboard]mkdir [選項] dirname
選項:
- m 對新建目錄設置存取權限
-p 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。
rmdir 刪除空目錄
語法:
CODE:[Copy to clipboard]rmdir [選項] dirname
QUOTE:
選項:
- p 遞歸刪除目錄dirname,當子目錄刪除后其父目錄為空時,也一同被刪除。
1.6改變工作目錄,顯示目錄內容命令
1、改變工作目錄:
CODE:[Copy to clipboard]cd [directory]
2、顯示當前工作的目錄的絕對路徑:
CODE:[Copy to clipboard]pwd
3、顯示目錄內容:
CODE:[Copy to clipboard]ls [選項] [目錄或是文件]
QUOTE:
選項:
- a 顯示指定目錄下所有子目錄與文件,包括隱藏文件;
-c 按照文件的修改時間排序
-C 分成多列顯示各項
-d 如果參數是目錄,只顯示其名稱而不顯示其下的個文件
-F 在目錄名后面標記“/”,可執行文件后面標記“*”,符號鏈接后面標記“@”,管道(或FIFO)后面標記“|”,socket文件后面標記“=”。
-l 以長格式來顯示文件的詳細信息
-L 若指定的名稱為一個符號鏈接,則顯示鏈接所指向的文件
-t 顯示時按修改時間而不是名字排序
-u 顯示時按文件上次存取的時間而不是名字排序
4、改變文件或目錄的訪問權限命令
CODE:[Copy to clipboard]chmod [who] [+| - | = ] [mode] 文件名?
QUOTE:
Who選項:
- u表示用戶,即文件和目錄的所有者
-g表示同組用戶
-o(other)表示其他用戶
-a (all)表示所有用戶
QUOTE:
操作符號:
+ 添加某個權限 - 取消某個權限
= 賦予給定權限并取消其他所有的權限(如果有的話)
QUOTE:
mode 選項:
- r 可讀
-w 可寫
-x 可執行
CODE:[Copy to clipboard]chgrp [-R] group filename? 改變目錄或文件所屬的組
CODE:[Copy to clipboard]chown [-Rv] 用戶或組 文件
1.7備份與壓縮命令
1、tar命令 為文件和目錄創建檔案
語法:
CODE:[Copy to clipboard]tar [主選項+輔助選項] 文件或者目錄
QUOTE:
u 主選項
c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,則選此項
r 把要存檔的文件追加到檔案文件的末尾
t 列出檔案文件的內容,查看已經備份了哪些文件;
u 更新文件
x 從檔案文件中釋放文件;
u 輔助選項
b 該選項為磁帶機設定的,其后跟一位數字,用來說明區塊的大小,系統預設值為20
f 使用檔案文件或設備,這個選項通常是必選的
k 保存已經存在的文件。例如把某個文件還原,在還原的過程中,遇到相同的文件,不會進行覆蓋;
m 在還原文件時,把所有文件的修改時間設定為現在;
M 創建多卷的檔案文件,以便在幾個磁盤中存放;
v 詳細報告tar處理的文件信息
w 每一步都要求確認
z 用gzip來壓縮/解壓縮文件
2、gzip命令 壓縮/解壓縮命令
語法:
CODE:[Copy to clipboard]gzip [選項] 壓縮(解壓縮)的文件名
QUOTE:
選項:
-c 將輸出寫到標準輸出上,并保留原有文件
-d 將壓縮文件解壓
-l 顯示每個壓縮文件的詳細信息
-r 遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮
-t 測試、檢查壓縮文件是否完整
-v 對每一個壓縮和解壓的文件,顯示文件名和壓縮比
3、unzip 命令
用MS windows下的壓縮軟件winzip壓縮的文件在linux系統下展開
語法:
CODE:[Copy to clipboard]unzip [選項] 壓縮文件名.zip
QUOTE:
選項:
-x 文件列表 解壓縮文件,但不包括指定的file文件
-v 查看壓縮文件目錄,但不解壓
-t 測試文件有無損壞 ,但不解壓
-d 目錄 將壓縮文件解到指定目錄下
-z 只顯示壓縮文件的注解
-n 不覆蓋已經存在的文件
-o 覆蓋已經存在的文件且不要求用戶確認
-j 不重建文檔的目錄結構,把所有文件解壓到同一目錄下
1.8在LINUX環境下運行DOS命令
linux系統提供了一組稱為mtools的可移植工具,可以讓用戶輕松地從標準的DOS軟盤上讀寫文件和目錄。
QUOTE:
mcd 目錄名 改變MSDOS目錄
mcopy 源文件 目標文件 在MSDOS和UNIX之間復制文件;
mdel 目錄名 刪除MSDOS目錄
mdir 目錄名 顯示MSDOS目錄
mformat 驅動器號 在低級格式化的軟盤上創建MSDOS文件系統
rnlabel 驅動器號 產生MSDOS卷標
mmd 目錄名 刪除MSDOS目錄
mren 源文件 目標文件 重新命名已存在的MSDOS文件
mtype 文件名 顯示MSDOS文件的內容
2 設備管理命令
1)linux采用下面的形式定義一個IDE硬盤:
CODE:[Copy to clipboard]/dev/hd[drive][partition]
2)SCSI硬盤使用同樣的機制表示:
CODE:[Copy to clipboard]/dev/sd[drive][partition]
3)對于一般的LINUX分區,可以用mkfs將其格式化并生成文件系統,命令如下:
CODE:[Copy to clipboard]mk2fs –c partition; size;
4)裝載文件系統:
CODE:[Copy to clipboard]mount –t ext2 [-o optioms] partition mountpiont
其中,
QUOTE:
-t為指定裝載文件系統的類型;
-o指定一些選項,如只讀ro,可讀可寫rw等等;
partition定義分區名稱;
mountpiont定義文件系統被裝載的目錄名稱。
5)裝載CD-ROM文件系統:
CODE:[Copy to clipboard]mount –t iso9660 –r /dev/cdrom /mnt/cdrom
6)裝載軟驅文件系統:
CODE:[Copy to clipboard]mount –t msdos –rw /dev/fd0 /dev/mnt/floppy
7)卸載文件系統
CODE:[Copy to clipboard]umount /mnt/cdrom
磁帶設備的安裝要注意以下幾點:
QUOTE:
1、 首先要選擇一個唯一的SCSI ID號,然后再將設備鏈接到適當的位置
2、 選擇驅動程序。
3、 生成設備文件。SCSI磁帶設備的主要設備號是9,次要設備號是0。設備文件名通常是/dev/nrst0(不支持回繞的磁帶設備)或/dev/nst0(支持回繞的磁帶設備)
用 ls /dev/*rst*
檢查磁帶設備文件是否存在,如果不存在,用
mknod –m 666 /dev/nrst0 c 9 9
mknod –m 666 /dev/rst0 c 9 0 生成
4、 可以對塊長度、緩存、磁帶密度等參數進行一些設置,例如
mt setblk 20 將塊長度指定為20
mt setblk 0 指定塊程度沒有限制
5、 通過檢查系統的啟動信息可以確定系統是否識別了新的磁帶設備。用dmesg命令,查看是否有以下類似的信息:
aha274x:target 4now synchronous at 4.4Mb/s
Vendor:TANDBERG Model:TDC 3800 Rev: =05:
Type: Sequential-Access ANSI SCSI revision: 02
Detected scsi tape st0 at scsi0, id4, lun0
Scsi : detected 1 SCSI tape 1 SCSI crom 1 SCSI disk total
3 軟件包管理命令
3.1軟件安裝的步驟
在LINUX系統上安裝軟件的步驟有:
QUOTE:
1、 查找所要安裝軟件的源文件
2、 把源文件解開放到一個目錄中,命令如下:
tar zxvf 源文件名;
3、 針對本操作系統配置源文件。可以是編輯make文件或其他文件,也可能是運行該軟件自帶的自動配置工具,如./configure
4、 make源文件,通常是運行make命令,即執行 make
5、 安裝二進制文件和其他支撐文件,運行命令: make install
6、 最后,完成所有其他必須的配置
3.2軟件包管理命令
QUOTE:
rpm –ivh 軟件包;
安裝指定的軟件包,并在安裝過程中用#表示安裝的進度
rpm –Uvh 軟件包;
更新一個已經存在的或還沒安裝好的軟件包,并刪除所有該軟件包的舊版本。
rpm –e
卸載一個rpm軟件包
rpm –qa
查看系統中已經安裝的軟件包
rpm –q 軟件包;
查看系統中某個軟件包的版本號;
rpm –qlp 軟件包;
列出某個軟件包中的所有文件
rpm –qf 軟件包;
找出一個文件屬于哪個軟件包
4 LINUX系統常用命令
4.1 與系統管理有關的命令
Wall (Write All)
QUOTE:
對全部已 登錄的用戶發送信息,用戶可以先反要發送的信息寫好存入一個文件中,然后輸入:
# wall FileName
例:Wall ‘Thank you !’
Write
向某一用戶發送信息。
Write xxq
hello
輸入Ctrl+C組合即可終止
Shutdown命令
CODE:[Copy to clipboard]Shutdown [選項] [時間] [警告信息]
QUOTE:
-k 并不真正關機,而只是發出警告信息給所有的用戶。
-r 關機后立即重新啟動。
-h 關機后不重新啟動。
-f 快速關機,啟動時跳過fsck。
-n快速關機,不經過init程序。
-c 取消一個已經運行的shutdown
例:系統馬上關機:Shutdown –h now
Free命令
查看當前系統內存的使用情況,
CODE:[Copy to clipboard]Free [-b] [-k] [-m]
CODE:[Copy to clipboard]-b 以字節為單位顯示。
-k 以K字節為單位顯示。
-m 以M字節為單位顯示。
Uptime
QUOTE:
顯示系統已經運行了多長的時間:現在時間、系統已經運行的時間、目前有多少登錄用戶、系統在過去的1分鐘、5分鐘和15分鐘內的平均負載。
4.2與用戶有關的命令
Passwd命令
設置、更換用戶口令。
CODE:[Copy to clipboard]Passwd [用戶名]
Su
使一個普通的用戶具有超級用戶的權利,離開可用EXIT命令。
4.3其它命令
Echo命令
在顯示器上顯示一段文字,一般起到一個提示的作用。
CODE:[Copy to clipboard]echo [-n] 字符串
Cal命令
顯示某年某月的日歷。
CODE:[Copy to clipboard]cal [選項] [月[年]]
QUOTE:
選項的含義:
-j 顯示也給定月中的每一天是一年中的和幾天(從1月1日算起)。
-y 顯示也整年的日歷。
Date命令
date命令的功能是顯示和設置系統日期和時間。
4.4磁盤管理
磁盤空間管理
df命令
檢查文件系統的磁盤空間占用局部。
CODE:[Copy to clipboard]Df [選項]
QUOTE:
-a 顯示所有文件系統的磁盤使用情況,包括0塊(block)的文件系統,如/proc文件系統。
-k 以K字節為單位顯示。
-i 顯示i節點信息,而不是磁盤塊。
- t 顯示各指定類型的文件系統的磁盤空間使用情況。
-x 列出不是某一指定類型文件系統的磁盤窨使用情況(與t相反)。
-T 顯示文件系統類型。
du命令
du的英文原意為disk usage,含義為顯示磁盤空間的使用情況。功能是統計目錄(或文件)所占磁盤空間的大小。
CODE:[Copy to clipboard]du [選項] [Names…]
QUOTE:
-s 對每人Names 參數只給也占用的數據塊總數。
-a 遞歸地顯示指定目錄中各文件用子孫目錄中的各文件占用的數據塊總數。
-b 以字節為單位列也磁盤窨使用情部(缺省以K字節為單位)
-k 以1024字節為單位列也磁盤空間使用情況。
-c 最后再加上一個總計(系統缺省)
-l 計算所有的文件大小,對硬鏈接文件,則計算多次。
-x 跳過在不同文件系統上的目錄不予統計。
dd命令
把指定的輸入文件拷貝到指定的輸出文件中,并且在拷貝的過程中可以進行格式轉換。語法:
CODE:[Copy to clipboard]dd 〔選項〕
QUOTE:
if =輸入文件(或設備名稱)。
of =輸出文件(或設備名稱)。
ibs = bytes 一次讀取bytes字節,即讀入緩沖區的字節數。
skip = blocks 跳過讀入緩沖區開頭的ibs*blocks塊。
obs = bytes 一次寫入bytes字節,即寫 入緩沖區的字節數。
bs = bytes 同時設置讀/寫緩沖區的字節數(等于設置obs和obs)。
cbs = bytes 一次轉換bytes字節。
count = blocks 只拷貝輸入的blocks塊。
conv = ASCII 把EBCDIC碼轉換為ASCII碼。
conv = ebcdic 把ASCII碼轉換為EBCDIC碼。
conv = ibm 把ASCII碼轉換為alternate EBCDIC碼。
conv = blick 把變動位轉換成固定字符。
conv = ublock 把固定們轉換成變動位
conv = ucase 把字母由小寫變為大寫。
conv = lcase 把字母由大寫變為小寫。
conv = notrunc 不截短輸出文件。
conv = swab 交換每一對輸入字節。
conv = noerror 出錯時不停止處理。
conv = sync 把每個輸入記錄的大小都調到ibs的大小(用ibs填充)。
fdformat命令
低級格式化軟盤。
CODE:[Copy to clipboard]format [-n] device
QUOTE:
-n 格式化后不做檢驗
4.5常用的網絡命令
FTP命令
Tel命令。
Netstat命令
QUOTE:
-a 顯示所有的scoket,包括正在監聽和。
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網絡接口的信息,格式同”ifconfig –e”
-n 以網絡IP地址代替名稱,顯示也網絡連接情形。
-r 顯示核心路由表,格式同”route –e:。
-t 顯示TCP協議的連接情況。
-u 顯示UDP協議的連接情況。
-v 顯示正在進行的工作。
nslookup命令。
finger命令,功能是查詢用戶的信息。
ping命令。
(用戶和組的管理可以使用工具:TurboUserCfg或是XturboUserCfg。)
4.6有關進程的命令。
進程和啟動
CODE:[Copy to clipboard]at [-V] [-q] [-f文件名] [-mldbv]時間
at –c 作業 [作業….]
AT命令啟動的進程系統只執行一次。
batch [-V] [-q 隊列] [-f 文件名] [-mv] [時間]
在系統負載較小時,資源比較空閑時執行。
cron命令
按一定的時間間隔執行命令。
crontab命令
用于安裝、刪除或列出用于驅支cron后臺進程的表格。
進程查看
CODE:[Copy to clipboard]who命令。
w命令
是一個比who命令更強大的命令
w –[husfV] [user]
-h 不顯示標題。
-u 當列出當前進程和CPU時間時忽略用戶名。
-s 使用短模式。不顯示登錄時間JCPU和PCPU時間。
-f 切換顯示FROM項,也就是遠程主機名項。
-V 顯示版本信息。
user 只顯示指定用戶的情況。
ps命令。
-e 顯示所有進程。
-f 全格式
-h 不顯示標題。
-l 長格式。
-w 寬輸出。
a 顯示終端上所有進程,包括其他用戶的進程。
r 只顯示正在運行的進程。
x 顯示沒有控制終端的進程。
top 命令
動態顯示系統當前的進程和其他狀況。
5系統的啟動過程。
5.1初始啟動
在PC機啟動時,BIOS從指定的啟動設備中讀入“主引導記錄”(MBR)。MBR的格式是:
地址偏移量 內容 大小
+00 h 可執行的代碼(啟動模塊) 可能變化
+1BE h 第一分區表項 16字節
+1CE h 第二分區表項 16字節
+1DE h 第三分區表項 16字節
+1EE h 第四分區表項 16字節
+1FE h 可執行的標記(AA55 h) 2字節
啟動模塊包含足以裝入操作系統的代碼,或者是第二步的加載代碼的位置。啟動模塊需要使用BIOS調用來從磁盤裝入數據,而這些中斷調用,如INT 13h等,限制了最大磁盤柱面號為1023。這也就是說啟動模塊需要加載的一切內容,如初始內存磁盤、內核、啟動的時間信息等,必須存放在1024個柱面以內。
在MBR中只有四個分區表項,每個表項的格式如下:
地址偏移 內容 大小
+00h 分區狀態:00代表非啟動分區,80h代表啟動分區 1字節
+01h 分區的起始位置 磁頭 1字節
+02h 分區的起始位置 柱面和扇區 1字節
+04h 分區的類型 1字節
+05h 分區的結束位置 磁頭 1字節
+06h 分區的結束位置 柱面和扇區 1字節
+08h 在主引導區和本分區的第一個扇區間的扇區數目 4字節
+0Ch 分區內的扇區數目 4字節
5.2 Linux的啟動過程
1啟動的命令行參數
在Linux啟動時,它處理所有傳遞給它的命令行參數。這可以影響Linux的運行方式。命令行參數包括:
QUOTE:
mem=xxxM:定Linux可以使用的內存大小。這在用戶的計算機系統有超過64MB的內存時才需要。因為從前的主板只對第一個64MB內存進行緩存,使用超過64MB的內存會使整個計算機的性能下降,所有內存均按無緩存的速度運行。
single:使Linux按單用戶方式啟動,缺省方式是多用戶方式。
root=/dev/xxx:指定Linux要安裝為根文件系統的設備。
init=file;:指定作為初始化進程的文件。
initrd=dev;:指定作為初始內存磁盤的設備。
ro:指定根文件系統為只讀。
rw:指定根文件系統為可讀可寫。
2 Init進程
在內核初始化自身和找到的硬件設備后,在后臺啟動進程init(/ *** in/init),init進程號1運行。
在UNIX世界中有許多啟動過程的版本,一些是基于系統V,一些是基于BSD。大多數Linux版本使用系統V的實現方法,在這里描述的就是這樣。
init是由文件/etc/inittab內容和功能控制的,隨啟動模式是單用戶或多用戶而不同。
QUOTE:
單用戶模式:init進程忽略/etc/inittab文件,在執行少數幾個腳本程序后調用/dev/console shell。這樣,用戶就可以有了一個shell,而且可以執行一定限度的任務。
多用戶模式:init進程把系統帶入/etc/inittab文件指定的運行級別。Init通過標準的Linux方法進入一個指定的進行級別。
3.進行級別
Linux與其他UNIX操作系統一樣,可以任何時刻處于任何一個運行級別。這些運行級別提供的功能不同,為主要是由于其運行的服務方程序(后臺daemon)的不同造成的。Linux共有6種運行級別。
QUOTE:
0:關閉計算機或終止計算機運行,這個級別就是系統停止運行。
1:單用戶啟動級別,系統只有一個用戶,就是root,該用戶在控制臺登錄。
2:多用戶運行級別,但無網絡功能。在這個運行級別,網絡功能沒有啟動,但是系統允許多個用戶登錄,可以通過虛擬控制臺或串行線路。
3:多用戶模式,有網絡功能。在這個運行級別,所有標準網絡服務均被啟動。
4:目前沒有實現。
5:X11運行級別,在這個運行級別,X服務器軟件運行,提供圖形界面的登錄方式。
6:系統重新啟動。
查詢當前運行級別:runlevel;
4在啟動過程中運行的腳本
在init進程運行時,它負責查看缺省的運行級別,并進入該運行級別。這是通過運行在/etc/rc.d/rcX.d目錄下的腳本程序來實現的,其中X代表運行的級別,即一個運行級別對應一個目錄。不同的字母開頭的文件有不同的作用。其中:
以K開頭的腳本程序是系統離開某個運行級別時執行的,作用是停止某種服務。當系統從某個支持級別變為其他級別時,首先要進行原運行級別所對應的所有K程序。
以S開頭的腳本程序是系統進入某個運行級別時所執行的,作用是啟動某種服務。當系統改變為某個運行級別時,就要運行新運行級別所對應的所有S程序。
5增加啟動腳本程序
用戶可能有一些特定的硬件設備要初始化,或需要在系統啟動時初始化一些其他應用程序,用戶可以增加自己的初始化腳本程序來完成這些工作。通常步驟是:
復制一個已經存在的腳本,這樣可以得到一個通用的框架格式。
修改這個腳本,以完成自己的需求,要注意使程序可以處理啟動和關閉的參數,盡管可能關閉處理什么也不需要干。
把這個肢本拷貝到/etc/rc.d/init.d目錄下,命名為”serv”。
按下面的方法在相應的目錄下建立運行控制鏈接:
CODE:[Copy to clipboard]ln –s ../init.d/serv/etc/rc.d/rc3.d/s99 serv
進行測試。
6 LILO和其他的啟動模塊
要啟動Linux,啟動模塊是必須的。一般用于Linux的啟動模塊是LILO,LILO用自己的主引導區代替一般的主引導區。LILO可以通過修改/etc/lilo.conf文件內容來進行配置,對引導區內容的更新通過lilo命令來完成。
下面給也了一個裝有DOS,TurboLinux3.4.0和RedHat 5.2系統的計算機的lilo.conf文件。在例子中的數字標號是用戶加上去并要在文中詳細解釋的。
CODE:[Copy to clipboard]# more /etc/lilo.conf
boot=dev/had
map=/boot/map
instll/boot/boot.b
prompt
#表示啟動盤是/dev/had,這是主IDE硬盤。
timeout=50
#表示等待用戶輸入的時間是50秒。
default=TL3.4
other=dev/hda1
#表示如果在上述的時間內沒有輸入,缺省的啟動系統是TL3.4,即TurboLinux 3.4.0
label=dos
table=dev/had
#表示如果在LILO提示用戶輸入啟動系統時,用戶按了Tab;鍵,各個系統將以label的內容顯示出來,供用戶選擇。
image=/mnt/tl3.4/boot/vmlinuz
label=TL3.4
root=/dev/hda3
read-only
TurboLinux的啟動文件,/mnt/tl3.4/boot/vmlinuz被確定,根文件系統在/dev/hda3,根文件系統是只讀方式的。
CODE:[Copy to clipboard]image=/mnt/rh5.2/boot/vmlinuz-2.0.36-0.7
label=RH5.2
root=/dev/hda4
read-only
RedHat的啟動文件,/mnt/rh5.2/boot/vmlinuz-2.0,36-0.7被確定,根文件系統在/dev/hda4,根文件系統可讀寫。
命令格式: 命令 [-選項] [參數]
如:ls -la /usr
**說明: **
大部分命令遵從該格式
多個選項時,可以一起寫 eg:ls –l –a à ls –la
簡化選項與完整選項(注:饑游并非所有選項都可使用完整選項) eg:ls –all à ls –a
作用:切換用戶身份
語法:su [選項] 用戶名
-c 僅執行一次命令,而不切換用戶身份
$ su – root
env
$ su – root –c “useradd longjing”
文件或目錄的CRUD
英文:change directory 命令路徑:內部命令 執行權限:所有用戶
作用:爛團銷 切換目錄
語法:cd [目錄] / 切換到根目錄
.. 回到上一級目錄
. 當前目錄
~ 當前用戶的宿主目錄(eg:# cd ~用戶名 進入某個用戶的家目錄)
英文:list 命令路徑:/bin/ls 執行權限:所有用戶
作用:顯示目錄文件
語法:ls [-alrRd] [文件或目錄]
-a all 顯示所有文件,注意隱藏文件,特殊目錄.和..
-l(long) 顯示詳細信息
-R(recursive) 遞歸顯示當前目錄下所有目錄
-r (reverse) 逆序排序
-t(time) 按修改時間排序(降序)
英文:print working directory 命令路徑:/bin/pwd 執行權限:所有用戶
作用:顯示當前工作目錄
語法:pwd [-LP]
-L 顯示鏈接路徑,當前路徑,默認
-P 物理路徑
eg:# cd /etc/init.d
英文:make directories 命令路徑:/bin/mkdir 執行權限:所有用戶
作用:創建新目錄
語法:mkdir [-p] 目錄名
-p 父目錄不存在情況下先生成父目錄 (parents)
eg: mkdir linux/test 如果目錄linux不存在,則報錯,使用參數-p即可自動創建父目錄。
命令路徑:/bin/touch 執行權限:所有用戶
作用:創建空文件或更新已存在文件的時間
語法:touch 文件名
eg:touch a.txt b.txt touch {a.txt,b.txt} 同時創建多個文件
創建帶空格的文件 eg:touch "program files" 在查詢和刪除時也必須帶雙引號
注意:生產環境中,文件名,一定不要加空格
英文:copy 命令路徑:/bin/cp 執行權限:所有用戶
作用:復制文件或目錄
語法:cp [–rp] 源文件或目錄 目的目錄
-r -R recursive 遞歸處理,復制目錄
-p 保留文件屬性 (原文件的時間不變)
eg:
1,相對路徑 cp –R /etc/* . cp –R ../aaa ../../test/
2,,絕對路徑 cp –R / ect/service /root/test/aa/bb
英文:move 命令路徑:/bin/mv 執行權限:所有用戶
作用:移動文件或目錄、文件或目錄改名
語法:mv 源文件或目錄 目的目錄
英文:remove 命令路徑:/bin/rm 執行權限:所有用戶
作用:刪除文件
語法: rm [-rf] 文件或目錄
-r (recursive)刪除目錄,同時刪除該目錄下的所有文件
-f(force) 強制刪除文件或目錄 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認
注意:工作中,謹慎使用rm –rf 命令。
擴展點 :刪除亂碼文件
一些文件亂碼后使用rm -rf 依然無法刪除
此時,使用ll -i 查找到文件的inode節點
然后使用find . -inum 查找到的inode編號 -exec rm {} -rf ;
就能順利刪除了
英或謹文:concatenate 命令路徑:/bin/cat 執行權限:所有用戶
作用:顯示文件內容
語法:cat [-n] [文件名]
-n 顯示行號
eg:cat /etc/services
命令路徑:/bin/more 執行權限:所有用戶
作用:分頁顯示文件內容
語法:more [文件名]
空格或f 顯示下一頁
Enter鍵 顯示下一行
q或Q 退出
命令路徑:/usr/bin/head 執行權限:所有用戶
作用:查看文件前幾行(默認10行)
語法:head [文件名]
-n 指定行數
eg:head -20 /etc/services head –n 3 /etc/services
命令路徑:/usr/bin/tail 執行權限:所有用戶
作用:查看文件的后幾行
語法:tail [文件名]
-n 指定行數
-f (follow) 動態顯示文件內容
獲取一個大文件的部分文件,可使用head或tail命令
head -n 100 /etc/services config.log
英文: link 命令路徑:/bin/ln 執行權限:所有用戶
作用:產生鏈接文件
語法:
ln -s [源文件] [目標文件] 創建軟鏈接 源文件 使用 絕對路徑
ln [源文件] [目標文件] 創建硬鏈接
eg:ln -s /etc/service ./service.soft
創建文件/etc/service的軟鏈接service.soft
eg:/etc/service /service.hard
創建文件/etc/service的硬鏈接/service.hard
軟連接類似于windows下的快捷方式
軟連接文件格式:
lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service - /etc/services
1 硬鏈接數量,如果該文件沒有硬鏈接,就只有本身一個硬鏈接。
13鏈接文件的長度
格式解析(特征):
1, 軟連接的文件類型是 l(軟連接),軟連接文件的權限 都是 lrwxrwxrwx
2,- 箭頭指向到源文件
真正的權限取決于對源文件的權限
時間值為創建軟連接的時間
軟連接可以跨文件系統生成
硬鏈接特征
1,相當于 cp -p +同步更新
2,通過i節點識別,與源文件有相同的inode節點
3,硬鏈接不能跨分區,ln /home/test/issuels /boot/test (錯誤)
4,不能針對目錄使用 ln /tmp/ aa.hard (無法將目錄/tmp 生成硬鏈接)
刪除軟連接
rm -rf symbolic_name
英文:manual 命令路徑:/usr/bin/man 執行權限:所有用戶
作用:獲取命令或配置文件的幫助信息
語法:man [命令/配置文件]
eg:man ls man services
(查看配置文件時,不需要配置文件的絕對路徑,只需要文件名即可)
調用的是more命令來瀏覽幫助文檔,按空格翻下一頁,按回車翻下一行,按q退出。
使用/加上關鍵的參數可直接定位搜索, n 查找下一個,shift+n 查找上一個
eg: /-l 直接查看-l的介紹
擴展:man的級別 (幫助文檔的類型, 了解1 5即可)
man man-pages 查看每一種類型代表的含義 man文檔的類型(1~9)
1是命令,5是配置文件 man優先顯示命令,可指定幫助類型
eg:man 5 passwd (5代表配置文件級別)
[圖片上傳失敗...(image-6718d2-1624438708895)]
help 查看shell內置命令的幫助信息
eg:help cd
內置命令,使用whereis,which,man都不能查看
type 命令 查看內部命令還是外部命令
命令名 --help 列舉該命令的常用選項
eg: cp --help
命令路徑:/bin/find 執行權限:所有用戶
作用:查找文件或目錄
語法:find [搜索路徑] [匹配條件]
如果沒有指定搜索路徑,默認從當前目錄查找
find命令選項
-name 按名稱查找 精準查找
eg:find /etc -name “init” 在目錄/etc中查找文件init
-iname 按名稱查找
find查找中的字符匹配:
*:匹配所有
?:匹配單個字符
eg:find /etc -name “init???” 在目錄/etc中查找以init開頭的,且后面有三位的文件
模糊匹配的條件,建議使用單引號或雙引號括起來。如果*被轉義,可使用 單雙引號括住查詢條件,或者使用*。
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****查找的基本原則 :
占用最少的系統資源,即查詢范圍最小,查詢條件最精準
eg:
如果明確知道查找的文件在哪一個目錄,就直接對指定目錄查找,不查找根目錄/
命令路徑:/bin/grep 執行權限:所有用戶
作用:在文件中搜尋字串匹配的行并輸出
語法:grep [-cinv] '搜尋字符串' filename
選項與參數:
-c :輸出匹配行的次數(是以行為單位,不是以出現次數為單位)
-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 執行權限:所有用戶
作用: 顯示系統命令所在目錄(絕對路徑及別名)
which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,并且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令
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 執行權限:所有用戶
作用:**搜索命令所在目錄 配置文件所在目錄 及幫助文檔路徑 **
eg: which passwd 和 whereis passwd
eg:查看/etc/passwd配置文件的幫助,就用 man 5 passwd
英文:GNU zip 命令路徑:/bin/gzip 執行權限:所有用戶
作用:壓縮(解壓)文件,壓縮文件后綴為.gz
gzip只能壓縮文件,不能壓縮目錄;不保留原文件
語法:gzip 文件
-d將壓縮文件解壓(decompress)
解壓使用gzip –d或者 gunzip
命令路徑:/usr/bin/bzip2 執行權限:所有用戶
作用: 壓縮(解壓)文件,壓縮文件后綴為.bz2
語法:bzip2 [-k] [文件]
-k:產生壓縮文件后保留原文件(壓縮比高)
-d 解壓縮的參數(decompress)
解壓使用bzip2 –d或者 bunzip2
命令路徑:/usr/bin/zip 執行權限:所有用戶
作用: 壓縮(解壓)文件,壓縮文件后綴為.zip
語法:zip 選項[-r] [壓縮后文件名稱] [文件或目錄]
-r壓縮目錄
eg:zip services.zip /etc/services 壓縮文件;
zip -r test.zip /test 壓縮目錄
如果不加-r選項,壓縮后的文件沒有數據。
解壓使用unzip
命令路徑:/bin/tar 執行權限:所有用戶
作用:文件、目錄打(解)包
語法:tar [-zcf] 壓縮后文件名 文件或目錄
-c 建立一個壓縮文件的參數指令(create),后綴是.tar
-x 解開一個壓縮文件的參數指令(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: 取消前一個關機命令
-h:關機
-r:重啟
eg:
shutdown -h now 立即關機 shutdown -h 20:30 定時關機
其他關機命令 halt poweroff init 0
其他重啟命令
**reboot **重啟系統 reboot -h now立即重啟
init 6
注意:生產環境中,關機命令和重啟命令謹慎執行。
善于查看man help等幫助文檔
利用好Tab鍵 自動補全
掌握好一些快捷鍵
ctrl + c(停止當前進程)
ctrl + z 掛起當前進程,放后臺
ctrl + r(查看命令歷史) history
ctrl + l(清屏,與clear命令作用相同)
方向箭頭 上 下 可以查看執行過的命令
ctrl + a 行首 ctrl + e 行尾
ctrl + k 清除 ctrl+ w 清除單詞
vim/vi是Unix / Linux上最常用的文本編輯器而且功能非常強大。
只有命令,沒有菜單。
《大碗》編輯器版
周圍的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什么插件呀、語法高亮呀、拼寫檢查呀,能給它開的都給它開著,就是一個字:酷!你說這么牛X的一東西,怎么著學會也得小半年吧。半年!?入門都遠著呢!能學會移動光標就不錯了,你還別說耗不起,就這還是左右移動!!!
:
[圖片上傳失敗...(image-a08366-1624438708894)]
命令模式:又稱一般模式
編輯模式:又稱底行模式,命令行模式
|
命令
|
作用
|
|
a
|
在光標后附加文本
|
|
A(shift + a)
|
在本行行末附加文本 行尾
|
|
i
|
在光標前插入文本
|
|
I(shift+i)
|
在本行開始插入文本 行首
|
|
o
|
在光標下插入新行
|
|
O(shift+o)
|
在光標上插入新行
|
|
命令
|
作用
|
|
:set nu
|
設置行號
|
|
:set nonu
|
取消行號
|
|
gg
G
|
到第一行
到最后一行
|
|
nG
|
到第n行
|
|
:n
|
到第n行
|
|
命令
|
作用
|
|
:w
|
保存修改
|
|
:w new_filename
|
另存為指定文件
|
|
:w a.txt
|
內容追加到a.txt文件中 文件需存在
|
|
:wq
|
保存修改并退出
|
|
shift+zz(ZZ)
|
快捷鍵,保存修改并退出
|
|
:q!
|
不保存修改退出
|
|
:wq!
|
保存修改并退出(文件所有者可忽略文件的只讀屬性)
|
不保存并退出:
1, 有修改,但是修改后的內容是不保存的
2, 有突發情況,導致窗口退出。修改文件之后,直接刪除同名的.swp文件
|
命令
|
作用
|
|
x
|
刪除光標所在處字符 nx 刪除光標所在處后n個字符
|
|
dd
|
刪除光標所在行,ndd刪除n行
|
|
:n1,n2d
|
刪除指定范圍的行(eg :1,3d 刪除了123這三行)
|
|
dG
|
刪除光標所在行到末尾的內容
|
|
D
|
刪除從光標所在處到行尾
|
|
命令
|
作用
|
|
yy、Y
|
復制當前行
|
|
nyy、nY
|
復制當前行以下n行
|
|
dd
|
剪切當前行
|
|
ndd
|
剪切當前行以下n行
|
|
p、P
|
粘貼在當前光標所在行下 或行上
|
|
命令
|
作用
|
|
r
|
取代光標所在處字符
|
|
R(shift + r)
|
從光標所在處開始替換字符,按Esc結束
|
|
u
|
undo,取消上一步操作
|
|
ctrl+r
|
redo,返回到undo之前
|
|
命令
|
作用
|
|
/string
|
向后搜索指定字符串 搜索時忽略大小寫 :set ic
|
|
?string
|
向前搜索指定字符串
|
|
n
|
搜索字符串的下一個出現位置,與搜索順序相同
|
|
N(Shift + n)
|
搜索字符串的上一個出現位置,與搜索順序相反
|
|
:%s/old/new/g
|
全文替換指定字符串
|
|
:n1,n2s/old/new/g
|
在一定范圍內替換指定字符串
|
% 指全文,s 指開始,g 指全局替換
eg: :41,44/yang/lee/c 從41行到44行,把yang替換為lee,詢問是否替換
eg: :41,44/yang/lee/g 同上,不詢問,直接替換
使用替換命令來添加刪除注釋
:% s/^/#/g 來在全部內容的行首添加 # 號注釋
:1,10 s/^/#/g 在1~10 行首添加 # 號注釋
vi里面怎么查命令??
:!which cp
vi里面怎么導入命令的結果?
:r !which cp
v 可視字符模式
V****(shift+v) 可視行模式,選擇多行操作
**ctrl+v **可視塊模式(列模式),操作列
I或者O進入插入模式。
1,圖形化界面
2,setup 命令虛擬界面
3,修改配置文件(以網絡方式為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 #網段2任意,IP地址2固定,網段為vmnet8的設置的IP網段
DNS1=114.114.114.114
DNS2=8.8.8.8
重啟網絡生效:
service network restart
命令路徑:/bin/ping 執行權限:所有用戶
作用:測試網絡的連通性
語法:ping 選項 IP地址
-c 指定發送次數
ping 命令使用的是icmp協議,不占用端口
eg: # ping -c 3 127.0.0.1
英文:interface configure 命令路徑:/sbin/ifconfig 執行權限:root
作用:查看和設置網卡網絡配置
語法:ifconfig [-a] [網卡設備標識]
-a:顯示所有網卡信息
ifconfig [網卡設備標識] IP地址 修改ip地址
英文:network statistics 命令路徑:/bin/netstat 執行權限:所有用戶
作用:主要用于檢測主機的網絡配置和狀況
-a all顯示所有連接和監聽端口
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 使用數字方式顯示地址和端口號
-l (listening) 顯示監控中的服務器的socket
eg:# netstat -tlnu 查看本機監聽的端口
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
協議 待收數據包 待發送數據包 本地ip地址:端口 遠程IP地址:端口
netstat –antpl
臨時生效:
hostname 主機名
[圖片上傳失敗...(image-ceed36-1624438708893)]
永久生效:修改配置文件
vi /etc/sysconfig/network
[圖片上傳失敗...(image-2b9d9e-1624438708893)]
修改主機名和ip地址之間的映射關系
vi /etc/hosts
192.168.2.120 node-1.edu點吸煙 node-1
可配置別名
[圖片上傳失敗...(image-ec86cf-1624438708893)]
進程和程序的區別:
1、程序是靜態概念,本身作為一種軟件資源長期保存;而進程是程序的執行過程,它是動態概念,有一定的生命期,是動態產生和消亡的。
2、程序和進程無一一對應關系。一個程序可以由多個進程共用;另一方面,一個進程在活動中有可順序地執行若干個程序。
進程和線程的區別:
進程: 就是正在執行的程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,并占用一定的系統資源。
線程: 輕量級的進程;進程有獨立的地址空間,線程沒有;線程不能獨立存在,它由進程創建;相對講,線程耗費的cpu和內存要小于進程。
進程管理的作用?
判斷服務器的健康狀態
查看系統所有的進程
殺死進程
作用:查看系統中的進程信息
語法:ps [-auxle]
常用選項
查看系統中所有進程
ps應用實例 # ps -u or ps -l 查看隸屬于自己進程詳細信息
作用: 查看當前進程樹
語法:pstree [選項]
-p 顯示進程PID
-u 顯示進程的所屬用戶
作用:查看系統健康狀態
顯示當前系統中耗費資源最多的進程,以及系統的一些負載情況。
語法:top [選項]
-d 秒數,指定幾秒刷新一次,默認3秒(動態顯示)
作用:關閉進程
語法:kill [-選項] pId
kill -9 進程號(強行關閉) 常用
kill -1 進程號(重啟進程)
添加用戶
語法:useradd [選項] 用戶名
修改密碼命令
語法:passwd [選項] [用戶名]
用戶密碼:生產環境中,用戶密碼長度8位以上,設置大小寫加數字加特殊字符,要定期更換密碼。
ys^h_L9t
刪除用戶
-r 刪除賬號時同時刪除宿主目錄(remove)
作用:用于查看Linux文件系統的狀態信息,顯示各個分區的容量、已使用量、未使用量及掛載點等信息。看剩余空間
語法:df [-hkam] [掛載點]
-h(human-readable)根據磁盤空間和使用情況 以易讀的方式顯示 KB,MB,GB等 -k 以KB 為單位顯示各分區的信息,默認
-M 以MB為單位顯示信息 -a 顯示所有分區包括大小為0 的分區
作用:用于查看文件或目錄的大小(磁盤使用空間)
語法:du [-abhs] [文件名目錄]
-a 顯示子文件的大小
-h以易讀的方式顯示 KB,MB,GB等
-s summarize 統計總占有量
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命令的區別:
df命令是從文件系統考慮的,不僅考慮文件占用的空間,還要統計被命令或者程序占用的空間。
du命令面向文件,只計算文件或目錄占用的空間。
作用:查看內存及交換空間使用狀態
語法: free [-kmg]
選項:
-k: 以KB為單位顯示,默認就是以KB為單位顯示
-m: 以MB為單位顯示
-g: 以GB為單位顯示
清理緩存命令:
echo 1 /proc/sys/vm/drop_caches
之所以用到命令行參數,關鍵在于shell腳本需要與運行腳本的人員進行交互。
bash shell提供了命令行參數添加在命令后面的數據值)、命令行選項修改命令行為的單字符值)和直接讀取鍵盤輸入。
1、命令行參數
向shell腳本傳遞數據的最基本方式是使用命令行參數。
1)讀取參數
讀取輸入的參數的變量為位置參數,位置參數通過標準數字表示,
其中$0為程序名稱,$1為第一個參數,$2為第二個參數,依次類推,直到$9為第九個參數。
shell腳本自動將命令行參數賦值給各個位置變量。
同時輸入多個參數可以是數值也可以是字符串)時,必須使用空格分隔要想在參數值中包含空格,就必須使用單引號或雙引號)
當參數多于9個后,必須在shell腳本內使用大括號將變量括起來,如${10}。從而可以使用任意個參數。
2)讀取程序名稱
傳遞給變量$0的字符串實際上是程序的路徑根據調用方法決定是相對還是絕對路徑)。
使用basename命令可以去掉路徑前綴,只獲得程序名稱名字中不 可以有空格)。
3)測試腳本
當腳本認為應該包含參數,卻實際上沒有數據時,就會出錯。
好的方法是對參數進行檢查來保證使用參數前確實存在數據,可以使用-n參數來檢查。
例子:if [ –n “$1” ] then .. else .. fi
2、特殊的參數變量
用于跟蹤命令行參數
1)參數計數
使用特殊變量$#測試執行腳本時包含的命令行參數個數。腳本中任何位置都可以 使用$#
例子:if [ $# –ne 2 ] 即可測試參數個數
可以使用${!#}來返回最后一個命令行參數當無參數時,$#為0,而${!#}為程序名)
2)獲取所有數據
變量$*將命令行中提供的所有參數作為一個單詞處理,它將多個參數看成 一個參數。
變量$@將命令行中提供的所有參數作為同一個字符串中的多個單詞處理。 允許對其中的值進行迭代一般使用for),分隔開不同參數
3、移位
shift命令能夠改變命令行參數的相對位置。默 認將每個參數變量左移一個位置變量$0不變,把$1丟棄,注意不可以恢復了!)
在不清楚參數數目情況下,這是一個迭代參數的好辦法。
可以為shift提供一個參數,來實現多位移變化。
4、處理選項
選項是由破折號引導的單個字母,用于更改命令的行為。
1,找出選項
1)處理簡單選項
可以使用處理命令行參數相同的方法處理選項,抽取時使用case語句進行判斷是否符合選項格式。
2)從參數中分離選項
同時使用選項和參數時,可以使用--指示選項列表的結束。發現--后,shell就知道后面的是普通參數了,停止使用case處理選項。
3)處理帶值的選項
選項后緊跟參數值,一種方法是在case中對應選項后使用shift和讀后一位參數的方法處理。更好的方法如 下:
2,使用getopt命令
getopt命令在處理選項和參數時非常方便。它對參數進行重新組 織,以便于解析
1)命令格式
getopt可以接受任森余意形此察滾式的選項和參數列表,并自動將它們轉換為適當的格式。
命令格式為: getopt options optstring parameters
選項字符串(opstring)用于定義命令行中的有效選項字母,以及哪些選項字母需要參數值。
2)腳本中使用getopt
需要使用set命令將現有的命令行選項和參數替換為getopt命令生成的 格式化形式。
需要將原始腳本命令行參數送給getopt命令,然后將getopt命令輸出送給set命令,如下:set – `getopts –q ab:cd “$@”`
但是getopt命令不能沒猜很好的處理帶有空格的參數值,它將空格解析為參數分隔符,而不是將雙引號引起來的兩個 值合并成一個參數。解決辦法如下:
3)更高級的getopts命令
getopts命令順序的對現有的shell參數變量進行處理,每調用一次,只處理命令中檢測到的參數中的一個。處理完所有參數后,以大于0的退出 狀態退出。
非常適宜于在循環中解析所有命令行參數
格式為: getopts optstring variable
$optarg包含需要參數值的選項要使用的值,$optind包含getopts停止處理時在參數列表中的位置。
注意:當getopts處理時,會將選項前的-去掉,所以對應的case中不需要破折號。
好的特性:
1)可以在參數值中包含空格
2)選項字母和參數值中間可以沒有空格
3)將在命令行中找到的未定義的選項都綁定為單一的輸出——問號
5、標準化選項
有一些字母選項具有標準含義。最好按照標準含義定義選項意義
-a –c –d –e –f –h –i –l –n –o –q –r –s –v- x –y
6、獲取用戶輸入
當需要在執行過程中獲得執行腳本人員的輸入,使用read命令
1)基本讀取
read命令接受標準輸入或其他文件描述符輸入。讀入后將數據放入 一個標準變量中。
-p 允許在read命令行中直接指定一個提示。
可以指定多個變量,也可以不指定將放置在reply環境變量中)
2)計時
使用-t指定一個計時器,計時數滿還未輸入,read返回一個非0的退出狀態。
使用-n指定輸入的字符個數,輸入達到預定數目時,就自動結束輸入
3)默讀
使用-s使輸入不顯示在終端例如輸入密碼)
4)讀取文件
最常用的方法是使用cat命令,并通過管道傳給包含read的while語句。
各參數含義
一、top前5行統計信息
第1行:top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30
第1行是任務隊列信息,其參數如下:
內容 含義
05:43:27 表示當前時間
up 4:52 系統運行時間 格式為時:分
2 users 當前登錄用戶數
load average: 0.58, 0.41, 0.30 系統負載,即任務隊列的平均長度。 三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。
load average: 如果這個數除以邏輯CPU的數量,結果高于5的時候就表明系統在超負荷運轉了。
第2行:Tasks: 159 total, 1 running, 158 sleeping, 0 stopped, 0 zombie
第3行:%Cpu(s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
第2、3行為進程和CPU的信息
當有多個CPU時,這些內容可能會超過兩行,其參數如下:
內容 含義
159 total 進程總數
1 running 正在運行的進程數
158 sleeping 睡眠的進程數
0 stopped 停止的進程數
0 zombie 僵尸進程數
37.0 us 用戶空間占用CPU百分比
3.7 sy 內核空間占用CPU百分比
0.0 ni 用戶進程空間內改變過優先級的進程占用CPU百分比
59.3 id 空閑CPU百分比
0.0 wa 等待輸入輸出的CPU時間百分比
0.0 hi 硬中斷(Hardware IRQ)占用CPU的百分比
0.0 si 軟中斷(Software Interrupts)占用CPU的百分比
0.0 st
第4行:KiB Mem: 1530752 total, 1481968 used, 48784 free, 70988 buffers
第5行:KiB Swap: 3905532 total, 267544 used, 3637988 free. 617312 cached Mem
第4、5行為內存信息
其參數如下:
內容 含義
KiB Mem: 1530752 total 物理內存總量
1481968 used 使用的物理內存總量
48784 free 空閑內存總量
70988 buffers 用作內核緩存的內羨桐梁存量
KiB Swap: 3905532 total 交換區總量
267544 used 使用的交換區總量
3637988 free 空閑交換區總量
617312 cached Mem 緩沖的交換區總量。
上述最后提到的緩沖的交換區總量,這里解釋一下,所謂緩沖的交換區總量,即內存中的內容被換出到交換區,而后又被換入到內存,但使用過的交換區尚未被覆蓋,該數值即為這些內容已存在于內存中的交換區的大小。相應的內存再次被換出時可不必再對交換區寫入。
計算可用內存數有一個近似的公式:
第四行的free + 第四行的buffers + 第五行的cached
二、進程信息
列名 含義
PID 進程id
PPID 父進程id
RUSER Real user name
UID 進程所有者的用戶id
USER 進程所有者的用戶名
GROUP 進程所有者的組名
TTY 啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
PR 優先級
NI nice值。負值表示高優先級,正值表示低優先輪孝級
P 最后使用的CPU,僅在多CPU環境下有意義
%CPU 上次更新到現在的CPU時間占用百分比
TIME 進程使用的CPU時間總計,單位秒
TIME+ 進程使用的CPU時間總計,單位1/100秒
%MEM 進程使用的物理內存百分比
VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
SWAP 進程使用的虛擬內存中,被換出的大小,單位kb
RES 進程使用的、未被換出的物理內存大小,單位兄運kb。RES=CODE+DATA
CODE 可執行代碼占用的物理內存大小,單位kb
DATA 可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb
SHR 共享內存大小,單位kb
nFLT 頁面錯誤次數
nDRT 最后一次寫入到現在,被修改過的頁面數。
S 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進程
COMMAND 命令名/命令行
WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名
Flags 任務標志
三、
1.top命令默認值顯示前面一部分的進程,若是想要查看全部的進程信息,則需要使用命令:top -ab -n 1,在這個命令中,a表示按內存倒序排列,b表示將所有列輸出,n表示只執行一次。
2.在使用top -ab -n 1將所有進程信息輸出之后,可以使用AWK等類似工具統計信息,例如:統計出COMMAND為httpd的所有進程占用的內存。
3.也可以使用命令top -an -n 1 | grep httpd,查看所有httpd的進程信息,如下圖:
當前名稱:linux程序命令行參數 linux命令參數說明
瀏覽路徑:http://m.newbst.com/article26/ddpgscg.html
成都網站建設公司_創新互聯,為您提供網站改版、網頁設計公司、ChatGPT、網站策劃、靜態網站、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯