『壹』 闡述shell程序的執行和跟蹤方法
Shell是什麼?任何發明都具有供用戶使用的界面。UNIX供用戶使用的界面就是Shell(DOS的command熟悉吧,但UNIX的要強大的多)。Shell為用戶提供了輸入命令和參數並可得到命令執行結果的環境。為了不同的需要,UNIX提供了不同的Shell。現在的UNIX大部分都支持BourneShell,以下教程就以BourneShell(Bsh)為例,一步步的領略UNIX Shell的強大功能,佔先其強大魅力,達到更方便靈活的管理、應用UNIX的目的。1.UNIX內核和Shell的交互方法啟動UNIX時,程序UNIX(內核)將被調入計算機內存,並一直保留在內存中直到機器關閉。在引導過程中,程序init將進入後台運行一直到機器關閉。該程序查詢文件/etc/inittab,該文件列出了連接終端的各個埠及其特徵。當發現一個活動的終端時,init程序調用getty程序在終端上顯示login等登陸信息。(username和passwd),在輸入密碼後,getty調用login進程,該進程根據文件/etc/passwd的內容來驗證用戶的身份。若用戶通過身份驗證,login進程把用戶的home目錄設置成當前目錄並把控制交給一系列setup程序。setup程序可以是指定的應用程序,通常setup程序為一個Shell程序,如:/bin/sh 即Bourne Shell(command出來了,呵呵)。得到控制後,Shell程序讀取並執行文件/etc/.profile以及.profile。這兩個文件分別建立了系統范圍內的和該用戶自己的工作環境。最後Shell顯示命令提示符,如$。(這是以bsh為例,若是csh,為.cshrc,ksh為.kshrc,bash為.bashrc等等) 注不妨把/etc/.profile和.profile看成DOS的autoexec.bat 或config.sys文件)當shell退出時,內核把控制交給init程序,該程序重新啟動自動登陸過程。有兩種方法使shell退出,一是用戶執行exit命令,二是內核(例如root用kill命令)發出一個kill命令結束shell進程。shell退出後,內核回收用戶及程序使用的資源。用戶登陸後,用戶命令同計算機交互的關系為:命令進程--->Shell程序--->UNIX內核--->計算機硬體。當用戶輸入一個命令,如$ls,Shell將定位其可執行文件/bin/ls並把其傳遞給內核執行。內核產生一個新的子進程調用並執行/bin/ls。當程序執行完畢後,內核取消該子進程並把控制交給其父進程,即Shell程序。例如執行:$ps該命令將會列出用戶正在執行的進程,即Shell程序(下來詳細說說,別急現在)和ps程序。若執行:$sleep 10 & $ps其中第一條命令將產生一個在後台執行的sleep子進程。ps命令執行時會顯示出該子進程。每當用戶執行一條命令時,就會產生一個子進程。該子進程的執行與其父進程或Shell完全無關,這樣可以使Shell去做其他工作。(Shell只是把用戶的意圖告訴內核,然後該幹嘛幹嘛) 現在windows有個計劃任務(在固定的時間,日期自動執行某任務),其實UNIX很早就有這個功能了,也就是所謂的Shell的自動執行。一些UNIX資源,如cron可以自動執行Shell程序而無需用戶的參與,(這個功能好象在/var/spool/crotab目錄里)。Crontab 程序對於系統管理員來說是非常有用的。Cron服務用於計劃程序在特定時間(月、日、周、時、分)運行。我們以root的crontab 為例。根用戶的crontab 文件放在 /var/spool/crontab/root 中,其格式如下:(1) (2) (3) (4) (5) (6)0 0 * * 3 /usr/bin/updatedb1. 分鍾 (0-60)2. 小時 (0-23)3. 日 (1-31)4. 月 (1-12)5. 星期 (1-7)6. 所要運行的程序2.Shell的功能和特點1>命令行解釋2>使用保留字3>使用Shell元字元(通配符)4>可處理程序命令5>使用輸入輸出重定向和管道6>維護一些變數7>運行環境控制8>支持Shell編程對於"命令行解釋"就不多說了,就是在shell提示符(例如:"$","%","#"等)後輸入一行unix命令,Shell將接收用戶的輸入。"使用保留字":Shell有一些具有特殊意義的字,例如在Shell腳本中,do,done,for等字用來控制循環操作,if,then等控制條件操作。保留字隨Shell環境的不同而不同。"通配符":* 匹配任何位置? 匹配單個字元[] 匹配的字元范圍或列表 例如:$ls [a-c]*將列出以a-c范圍內字元開頭的所有文件$ls [a,m,t]*將列出以e,m或t開頭的所有文件"程序命令" :當用戶輸入命令後,Shell讀取環境變數$path(一般在用戶自己的.profile中設置),該變數包含了命令可執行文件可能存在的目錄列表。shell從這些目錄中尋找命令所對應的可執行文件,然後將該文件送給內核執行。"輸入輸出重定向及管道" :重定向的功能同DOS的重定向功能:">" 重定向輸出"<" 重定向輸入而管道符號,是unix功能強大的一個地方,符號是一條豎線:"|",用法:command 1 | command 2 他的功能是把第一個命令command 1執行的結果作為command 2的輸入傳給command 2,例如:$ls -s|sort -nr|pg該命令列出當前目錄中的所有文件,並把輸出送給sort命令作為輸入,sort命令按數字遞減的順序把ls的輸出排序。然後把排序後的內容傳送給pg命令,pg命令在顯示器上顯示sort命令排序後的內容。"維護變數" :Shell可以維護一些變數。變數中存放一些數據供以後使用。用戶可以用"="給變數賦值,如: $lookup=/usr/mydir該命令建立一個名為lookup的變數並給其賦值/usr/mydir,以後用戶可以在命令行中使用lookup來代替/usr/mydir,例如:$echo $lookup結果顯示:/usr/mydir為了使變數能被子進程使用,可用exprot命令,例如:$lookup=/usr/mydir$export lookup"運行環境控制" :當用戶登陸啟動shell後,shell要為用戶創建一個工作的環境,如下:1>當login程序激活用戶shell後,將為用戶建立環境變數。從/etc/profile和.profile文件中讀出,在這些文件中一般都用$TERM變數設置終端類型,用$PATH變數設置Shell尋找可執行文件的路徑。2>從/etc/passwd文件或命令行啟動shell時,用戶可以給shell程序指定一些參數,例如"-x",可以在命令執行前顯示該命令及其參數。後面詳細介紹這些參數。"shell編程" :本文主要介紹的內容。shell本身也是一種語言(*可以先理解為unix命令的組合,加上類C的條件,循環等程序控制語句,類似dos批處理,但要強大的多),用戶可以通過shell編程(腳本,文本文件),完成特定的工作。SHELL變數下面我們詳細的介紹Bourne Shell的編程:自從貝爾實驗室設計了BourneShell。從那時起許多廠商根據不同的硬體平台設計了許多版本得unix。但在眾多版本的unix中,Bourne Shell一直保持一致。1>Bsh的啟動:用戶在登陸後,系統根據文件/etc/passwd中有關該用戶的信息項啟動Shell。例如某用戶在passwd中的信息項為:ice_walk:!:411:103:Imsnow ,ice_walk:/home/ice_walk:/bin/bsh則表明,用戶名是ice_walk等信息,在最後一項"/bin/bsh"表明用戶的sh環境類型是bsh,於是系統啟動之。在啟動或執行(包括下面我們要講的shell程序--腳本)過程中可以使用以下一些參數,我們一一說明:-a 將所有變數輸出-c "string"從string中讀取命令-e 使用非互動式模式-f 禁止shell文件名產生-h 定義-i 互動式模式-k 為命令的執行設置選項-n 讀取命令但不執行-r 受限模式-s 命令從標准輸入讀取-t 執行一命令,然後退出shell-u 在替換時,使用未設置的變數將會出錯-v 顯示shell的輸入行-x 跟蹤模式,顯示執行的命令許多模式可以組合起來用,您可以試試了,但-ei好象不行,你說why呢?使用set可以設置或取消shell的選項來改變shell環境。打開選項用"-",關閉選項用"+",多數unix允許打開或關閉a、f、e、h、k、n、uv和x選項。若顯示Shell中已經設置的選項,執行:$echo $-Bsh中每個用戶的home目錄下都有一個.profile文件,可以修改該文件來修改shell環境。為了增加一個可執行文件的路徑(例如/ice_walk/bin),可以把下面代碼加入.profile中PATH=$PATH:/ice_walk/bin;exprot PATH.profile中shell的環境變數意思如下:CDPATH 執行cd命令時使用的搜索路徑HOME 用戶的home目錄IFS 內部的域分割符,一般為空格符、製表符、或換行符MAIL 指定特定文件(信箱)的路徑,有UNIX郵件系統使用PATH 尋找命令的搜索路徑(同dos的config.sys的 path)PS1 主命令提示符,默認是"$"PS2 從命令提示符,默認是">"TERM 使用終端類型2>Bsh里特殊字元及其含義在Bsh中有一組非字母字元。這些字元的用途分為四類:作為特殊變數名、產生文件名、數據或程序控制以及引用和逃逸字元控制。他們可以讓用戶在Shell中使用最少的代碼完成復雜的任務。*> Shell變數名使用的特殊字元$# 傳送給命令Shell的參數序號$- 在Shell啟動或使用set命令時提供選項$? 上一條命令執行後返回的值$$ 當前shell的進程號$! 上一個子進程的進程號$@ 所有的參數,每個都用雙括弧括起$* 所有參數,用雙括弧括起$n 位置參數值,n表示位置$0 當前shell名*>產生文件名的特殊字元包括"*","?","[]",上面講過,不再多說。*>數據或程序控制使用的特殊字元>(file) 輸出重定向到文件中(沒有文件則創建,有則覆蓋)>>(file) 輸出重定向到文件中(沒有則創建,有則追加到文件尾部)<(file) 輸入重定向到文件 ; 命令分割符| 管道符 & 後台運行(例如:sleep 10 &) ` ` 命令替換,重定向一條命令的輸出作為另一命令的參數。*>對於引用或逃逸的特殊字元Bsh用單引號' '和雙引號" "將特殊字元或由空白分隔的字引用起來組成一個?
『貳』 shell命令和linux命令一樣么
Linux命令就是shell命令。不同的shell有不同的命令。Linux命令包括所有的shell
『叄』 求助:LINUX常用SHELL命令
分類: 電腦/網路 >> 操作系統/系統故障
問題描述:
歡迎大家的投稿!!!!!!!
解析:
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目錄
m 源文件 目標文件 在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 顯示文件系統類型。
命令
的英文原意為disk usage,含義為顯示磁碟空間的使用情況。功能是統計目錄(或文件)所佔磁碟空間的大小。
CODE:[Copy to clipboard] [選項] [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,根文件系統可讀寫。
『肆』 linux中設計一個shell腳本程序可以接受命令行輸入的參數執行相應的菜單命令
echo "------------------------"
echo "1、命令1"
echo "2、命令2"
echo "3、命令3"
echo "------------------------"
echo "請輸入要執行的菜單命令(1/2/3):"
read com
case $com in
1)
命令1
;;
2)
命令2
;;
3)
命令3
;;
*)
echo "輸入命令錯誤"
;;
『伍』 Shell -X命令
shell "-x"選項可用來跟蹤腳本的執行,是調試shell腳本的強有力工具。「-x」選項使shell在執行腳本的過程中把它實際執行的每一個命令行顯示出來,並且在行首顯示一個"+"號。 "+"號後面顯示的是經過了變數替換之後的命令行的內容,有助於分析實際執行的是什麼命令。 「-x」選項使用起來簡單方便,可芹型以輕松對付大多數的shell調試任務,應把其當作首選的調試手段。
shell的執行選項除了可以在啟動shell時指定外,亦可在腳本中用set命令來指定。 "set -參數"表示啟用某選項,"set +參數"表示關閉某選項。有時候我們並不需嫌納猜要在啟動時用"-x"選項來跟蹤所有的命令行,這時我們可以在腳本中使用set命令,如以下腳本片段所示:
set -x #啟動"-x"選項
要跟蹤的程序段
set +x #關閉"-x"茄塵選項
『陸』 如何執行shell腳本其中一條命令
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
復制代碼代碼如下:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
方法二:以絕對路徑的方式去執行bash shell腳本:
復制代碼代碼如下:
/data/shell/hello.sh
方法三:直接使用bash 或sh 來執行bash shell腳本:
復制代碼代碼如下:
cd /data/shell
bash hello.sh
或
復制代碼代碼如下:
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。
方法四:在當前的shell環境中執行bash shell腳本:
復制代碼代碼如下:
cd /data/shell
. hello.sh
或
復制代碼代碼如下:
cd /data/shell
source hello.sh
前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。
『柒』 linux 怎麼進入shell編程模式
1、連接上相應的linux主機,進入到等待輸入shell指令的linux命令行狀態下穗數。
『捌』 在mysql下怎樣進入shell 命令行
1、首先打開軟體清單面板中選擇相應主機,在右邊的選項卡里單擊配置選項卡。
『玖』 linux下的shell命令,命令行,終端運行概念的解釋
傳統的 Linux 是不帶圖形用戶界面的,也就是沒有滑鼠只能一個個字母敲命令來管理的。現在你安裝的 Linux 桌面版是帶有圖形用戶界面的,你可以用滑鼠點一點來告知計算機你的用途來讓計算機做相應的操作。因為圖形用戶界面非常多版本,不知道你是用哪種版本,書上描述某種操作(或者別人告訴你該怎麼操作)的時候,往往是告訴你用什麼命令。你要使用那中命令就要在你的圖形用戶界面上找到並打開一個小窗口來敲入那些命令。這個被打開窗口就叫「命令行窗口」;你在命令行窗口上敲入去的命令就叫「shell命令」;「終端運行」就是指你在那樣的窗口內運行。