『壹』 linux常用的shell有哪些
Linux系統的shell作為操作系統的外殼,為用戶提供使用操作系統的介面。它是命令語言、命令解釋程序及程序設計語言。
shell是用戶和Linux內核之間的介面程序,如果把Linux內核想像成一個球體的中心,shell就是圍繞內核的外層。當從shell或其他程序向Linux傳遞命令時,內核會做出相應的反應。
shell是一個命令語言解釋器,它擁有自己內建的shell命令集,shell也能被系統中的其他應用程序所調用。用戶在提示符下輸入的命令都由shell先解釋然後傳給Linux核心。
Linux常用的shell有哪些?
1、Bourne shell
Bourne shell是一個交換式的命令解釋器和命令編程語言。
Bourne shell是標準的UNIX shell,以前常被用來做為管理系統之用。大部分的系統管理命令文件,例如rcstart、stop與shutdown都是Bourne shell的命令檔,且在單一使用者模式下以root簽入時它常被系統管理者使用。Bourneshell是由AT$T發展的,以簡潔、快速著名,Bourne shell提示符號的默認值是$。
2、C shell
C shell是一種比Bourneshell更適合的變種shell,使用的是類C語言,csh是具有C語言風格的一種shell,其內部命令有52個,比較龐大。
C shell是柏克萊大學所開發的,且加入了一些新特性,如命令列歷程、別名、內建算術、檔名完成和工作控制。對於常在交談模式下執行shell的使用者而言,他們較喜歡用C
shell;但對於系統管理者而言,則較偏好以Bourne shell來做命令檔,因為Bourne shell命令檔比C shell命令檔來的簡單及快速。C shell提示符號的默認值是%。
3、korn shell
korn shell是一個Unix shell,它由貝爾實驗室的David Korn在二十世紀八十年代早期編寫。它完全向上兼容Bourne shell並包含了c shell的很多特性,例如貝爾實驗室用戶需要的命令編輯。
Korn shell是Bourne shell的超集,由AT&T的David korn所開發。它增加了一些特色,比C shell更為先進。Korn shell的特色包括了可編輯的歷程、別名、函式、正則表達式萬用字元、內建算術、工作控制、共作處理和特殊的除錯功能。Korn shell提示符號的默認值也是$。
『貳』 linux shell 重啟命令
linux shell 重啟命令有五個,分別如下:
1、shutdown。
2、poweroff。
3、init。
4、reboot。
5、halt。
Linux,全稱GNU/Linux,是一種免費使用和自由傳播的類UNIX操作系統,其內核由林納斯·本納第克特·托瓦茲於1991年10月5日首次發布,它主要受到Minix和Unix思想的啟發,是一個基於POSIX的多用戶、多任務、支持多線程和多CPU的操作系統。
相關簡介
Linux不僅系統性能穩定,而且是開源軟體。其核心防火牆組件性能高效、配置簡單,保證了系統的安全。在很多企業網路中,為了追求速度和安全,Linux不僅僅是被網路運維人員當作伺服器使用,甚至當作網路防火牆,這是Linux的一大亮點。
Linux具有開放源碼、沒有版權、技術社區用戶多等特點,開放源碼使得用戶可以自由裁剪,靈活性高,功能強大,成本低。尤其系統中內嵌網路協議棧,經過適當的配置就可實現路由器的功能。這些特點使得Linux成為開發路由交換設備的理想開發平台。
『叄』 shell命令和linux命令一樣么
Linux命令就是shell命令。不同的shell有不同的命令。Linux命令包括所有的shell
『肆』 LINUX快速入門第八章:Shell基礎
我們平時所說的 Shell 可以理解為 Linux 系統提供給用戶的使用界面。Shell 為用戶提供了輸入命令和參數並可得到命令執行結果的環境。當一個用戶登錄 Linux 之後,系統初始化程序 init 就根據 /etc/passwd 文件中的設定,為每個用戶運行一個被稱為 Shell(外殼)的程序。
確切地說,Shell 是一個命令行解釋器,它為用戶提供了一個向 Linux 內核發送請求以便運行程序的界面系統級程序,用戶可以用 Shell 來啟動、掛起、停止甚至編寫一些程序。
Shell 處在內核與外層應用程序之間,起著協調用戶與系統的一致性、在用戶與系統之間進行交互的作用。圖 1 是 Linux 系統層次結構圖,Shell 接收用戶輸入的命令,並把用戶的命令從類似 abed 的 ASCII 碼解釋為類似 0101 的機器語言,然後把命令提交到系統內核處理;當內核處理完畢之後,把處理結果再通過 Shell 返回給用戶。
換句話說:
Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程序設計語言。
Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。
Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形界面 Shell。
Shell 與其他 Linux 命令一樣,都是實用程序,但它們之間還是有區別的。一旦用戶注冊到系統後,Shell 就被系統裝入內存並一直運行到用戶退出系統為止;而一般命令僅當被調用時,才由系統裝入內存執行。
與一般命令相比,Shell 除了是一個命令行解釋器,同時還是一門功能強大的編程語言,易編寫,易調試,靈活性較強。作為一種命令級語言,Shell 是解釋性的,組合功能很強,與操作系統有密切的關系,可以在 Shell 腳本中直接使用系統命令。大多數 Linux 系統的啟動相關文件(一般在 /etc/rc.d 目錄下)都是使用 Shell 腳本編寫的。
同傳統的編程語言一樣,Shell 提供了很多特性,這些特性可以使 Shell 腳本編程更為有用,如數據變數、參數傳遞、判斷、流程式控制制、數據輸入和輸出、子程序及中斷處理等。
說了這么多,其實我們在 Linux 中操作的命令行界面就是 Linux 的 Shell,也就是 Bash,但是我們的圖形界面是 Shell 嗎?其實從廣義講,圖形界面當然也是 Shell,因為它同樣用來接收用戶的操作,並傳遞到內核進行處理。不過,這里的 Shell 主要指的是 Bash。
Shell 腳本
Shell 腳本(shell script),是一種為 shell 編寫的腳本程序。
業界所說的 shell 通常都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。
由於習慣的原因,簡潔起見,本文出現的 "shell編程" 都是指 shell 腳本編程,不是指開發 shell 自身。
Shell的分類
目前 Shell 的版本有很多種,如 Bourne Shell、C Shell、Bash、ksh、tcsh 等,它們各有特點,下面簡要介紹一下。
最重要的 Shell 是 Bourne Shell,這個命名是為了紀念此 Shell 的發明者 Steven Bourne。從 1979 年起,UNIX 就開始使用 Boume Shell。Bourne Shell 的主文件名為 sh,開發人員便以 sh 作為 Bourne Shell 的主要識別名稱。
雖然 Linux 與 UNIX 一樣,可以支持多種 Shell,但 Boume Shell 的重要地位至今仍然沒有改變,許多 UNIX 系統中仍然使用 sh 作為重要的管理工具。它的工作從開機到關機,幾乎無所不包。在 Linux 中,用戶 Shell 主要是 Bash,但在啟動腳本、編輯等很多工作中仍然使用 Bourne Shell。
C Shell 是廣為流行的 Shell 變種。C Shell 主要在 BSD 版的 UNIX 系統中使用,發明者是柏克萊大學的 Bill Joy。C Shell 因為其語法和 C 語言類似而得名,這也使得 UNIX 的系統工程師在學習 C Shell 時感到相當方便。
Bourne Shell 和 C Shell 形成了 Shell 的兩大主流派別,後來的變種大都吸取這兩種 Shell 的特點,如 Korn、 tcsh 及 Bash。
Bash Shell 是 GNU 計劃的重要工具之一,也是 GNU 系統中標準的 Shell。Bash 與 sh 兼容,所以許多早期開發出來的 Bourne Shell 程序都可以繼續在 Bash 中運行。現在使用的 Linux 就使用 Bash 作為用戶的基本 Shell。
Bash 於 1988 年發布,並在 1995-1996年推出Bash 2.0。在這之前,廣為使用的版本是1.14,Bash 2.0增加了許多新的功能,以及具備更好的兼容性。表 2 中詳細列出了各版本的具體情況。
注意,Shell 的兩種主要語法類型有 Bourne 和 C,這兩種語法彼此不兼容。Boume 家族主要包括 sh、ksh、Bash、psh、zsh;C 家族主要包括 csh、tcsh(Bash 和 zsh 在不同程序上支持 csh 的語法)。
本章講述的腳本編程就是在 Bash 環境中進行的。不過,在 Linux 中除了可以支持 Bash,還可以支持很多其他的 Shell。我們可以通過 /etc/shells 文件來査詢 Linux 支持的 Shell。命令如下:
在 Linux 中,這些 Shell 是可以任意切換的,命令如下:
用戶信息文件 /etc/passwd 的最後一列就是這個用戶的登錄 Shell。命令如下:
大家可以看到,root 用戶和其他可以登錄系統的普通用戶的登錄 Shell 都是 /bin/bash,也就是 Linux 的標准 Shell,所以這些用戶登錄之後可以執行許可權允許范圍內的所有命令。不過,所有的系統用戶(偽用戶)因為登錄 Shell 是 /sbin/ndogin,所以不能登錄系統。
筆記:
sh/bash/csh/Tcsh/ksh/pdksh等shell的區別
『伍』 linux常用shell命令
linux常用shell命令匯總:
lscpu:查看cpu的統計信息
cat /proc/cpuinfo:查看cpu詳細信息
free –m:查看內存情況
cat /etc/meminfo:查看內存詳細信息
lsblk:查看硬碟分區分布
df –lh:查看各分區的情況
cat /proc/partitions:查看硬碟和分區
uname –a:查看版本,當前操作系統內核信息
cat /proc/version:查看當前操作系統版本信息
cat /etc/redhat-release:查看系統發行版信息
ifconfig:查看所有網寬升絡介面
netstat tnlp:查看所有監聽埠
netstat –at:查看所有tcp埠
netstat –au:查看所有udp埠
top:查看系統所有進程的詳細信息:比如cpu、內存等信息
hostname:查看計算機名
w:查看活動用戶
id:查看指定用戶信息
last:查看用戶登錄日誌
rpm –qa:顯示所有可安裝的程序包
uptime:查看系統運行時間,用戶數,負載
ps –ef:查看所有進程
kill -9 進程名:殺死指定進程
scp 本地文件夾 目慎大老標機器用戶名@目標機仿羨器IP:目標目錄:拷貝本地文件夾到遠程機器上
scp -r本地目錄 目標機器用戶名@目標機器IP:目標目錄:拷貝本地目錄到遠程機器上
rpm –qa | grep 軟體名稱:查看本機是否安裝了該軟體
rpm –ivh xxx.rpm:安裝xxx
yum install xxx:在線安裝xxx
rpm –e xxx:刪除已經安裝的xxx
yum repolist all:列出所有倉庫
『陸』 Linux中的sh命令的詳細解釋
linxu下的sh命令相當於是shell命令語言的解釋器。下面由我為大家整理了linux的sh命令的詳細解釋的相關知識,希望對大家有幫助!
一、Linux中的sh命令的詳細解釋
sh命令是shell命令語言解釋器,執行命令從標准輸入讀取或從一個文件中讀取。通過用戶輸入命令,和內核進行溝通!Bourne Again Shell (即bash)是自由軟體基金會(GNU)開發的一個Shell,它是Linux系統中一個默認的Shell。Bash不但與Bourne Shell兼容,還繼承了C Shell、Korn Shell等優點。
語法
bash [options] [file]
選項
-c string:命令從-c後的字元串讀取。
-i:實現腳本交互。
-n:進行shell腳本的語法檢查。
-x:實現shell腳本逐條語句的跟蹤。
二、Linux中的sh命令的具體例子
使用-x選項跟蹤腳本調試shell腳本,能列印出所執行的每一行命令以及當前狀態:
[root@AY1307311912260196fcZ satools]# sh -x check_ssh_login.sh
+ DEFINE=30
+ cat /var/log/secure
+ awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}'
++ cat /root/satools/black.txt
+ for i in '`cat /root/satools/black.txt`'
++ echo 121.42.0.16=1427
++ awk -F= '{print $1}' + IP=121.42.0.16
++ echo 121.42.0.16=1427
++ awk -F= '{print $2}'
+ NUM=1427
+ '[' 1427 -gt 30 ']'
+ grep 121.42.0.16 /etc/hosts.deny
+ '[' 1 -gt 0 ']'
+ echo sshd:121.42.0.16
+ echo vsftpd:121.42.0.16
+ for i in '`cat /root/satools/black.txt`'
++ echo 121.42.0.72=276
++ awk -F= '{print $1}'
+ IP=121.42.0.72
++ awk -F= '{print $2}'
++ echo 121.42.0.72=276
+ NUM=276 + '[' 276 -gt 30 ']'
+ grep 121.42.0.72 /etc/hosts.deny
+ '[' 1 -gt 0 ']'
+ echo sshd:121.42.0.72
+ echo vsftpd:121.42.0.72
三、Linux中對.sh文件的操作命令
1、創建test.sh文件
touch test.sh
2、編輯sh文件
vi test.sh
3、保存退出
敲擊esc, 然後輸入 :wq ,回車退出
4、添加可執行許可權,當然默認就是可執行的。
chmod +x test.sh
5、運行文件
(1)./test.sh
(2)sh test.sh
6、刪除文件
rm test.sh
『柒』 Linux Shell 教程——想玩轉linux就請一直看下去
Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程序設計語言。
Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。
Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形界面 Shell。
Shell 在線工具
Shell 腳本(shell script),是一種為 shell 編寫的腳本程序。
業界所說的 shell 通常都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。
由於習慣的原因,簡潔起見,本文出現的 "shell編程" 都是指 shell 腳本編程,不是指開發 shell 自身。
Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。
Linux 的 Shell 種類眾多,常見的有:
在一般情況下,人們並不區分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh ,它同樣也可以改為 #!/bin/bash 。
#! 告訴系統其後路徑所指定的程序即是解釋此腳本文件的 Shell 程序。
打開文本編輯器(可以使用 vi/vim 命令來創建文件),新建一個文件 test.sh,擴展名為 sh(sh代表shell),擴展名並不影響腳本執行,見名知意就好,如果你用 php 寫 shell 腳本,擴展名就用 php 好了。
輸入一些代碼,第一行一般是這樣:
#!/bin/bash
echo "Hello World !"
運行實例 »
#! 是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種 Shell。
echo 命令用於向窗口輸出文本。
1、作為可執行程序
將上面的代碼保存為 test.sh,並 cd 到相應目錄:
注意,一定要寫成 ./test.sh ,而不是 test.sh ,運行其它二進制的程序也一樣,直接寫 test.sh,linux 系統會去 PATH 里尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的當前目錄通常不在 PATH 里,所以寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統說,就在當前目錄找。
2、作為解釋器參數
這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:
這種方式運行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。
『捌』 Linux最常用的Shell命令
有些人仍然會有這種愚蠢的想法,他們認為使用Linux就必須使用Linux
shell命令。胡說!你可以不懂得任何Linux命令,比如說ps,grep,ls等,但是你仍然可以使用很多現代的Linux桌面發行版。
Linux的系統管理員與桌面用戶不一樣,他們不像桌面用戶一樣使用Cinnamon,GNOME,Unity,或者KDE,他們所有的時間都是用Linux命令。
對於桌面用戶來講,若是了解一部分Linux命令,你可以更好的使用Linux,體驗它的魅力,下面列舉出了一些:
Shell基礎:
你可以通過打開Linux的terminal(終端)來執行Shell命令。Shell的種類有很多種,例如CSH,Bourne
Shell,Korn
Shell。在現在的大多數Linux發行版中,默認的Shell一般都是Bourne
again
shell(bash)。
想看看你的Shell是哪一種,執行下面的命令
echo
$SHELL
在Linux中,$符號代表一個shell變數。所有的shell都用這種方式使用變數。有一些shell變數在你的系統啟動的時候就有了默認值。例如,$SHELL;$LOGNAME是你的登錄名,而$PATH變數指明了你的shell命令的搜索范圍。
echo命令的作用就是列印出你的輸入。如果你的輸入具有shell的特殊意義,例如shell變數,他就輸出變數的值。
一個重要的地方是,你要注意文本的大小寫。例如,ls,是DOS的dir命令的Linux版本。這個命令列出當前工作目錄下的文件列表。如果你輸入的是LS,你得到的只能是「找不到命令」的錯誤信息。
另外在Linux
shell命令中一個重要的地方是,你可以將命令串起來。這是Unix/Linux從第一天開始就有的巧妙的特點。最簡單的將命令連起來的辦法就是使用「|」,我們稱之為「pipe」。第一個命令的輸出就是下一個命令的輸入。
Linux命令有自己的語法規則:
基本的語法就像這樣:
command
-option
file
例如:
ls
-la
這行命令的意義是輸出當前目錄的所有文件的文件名,l代表「long」,a代表「all」,有了l選項,你會發現,輸出的內容比較豐富,不只包括文件
名,還有文件的訪問許可權,所有者,所屬組等。你會發現這個命令會在屏幕上輸出大量的信息,如果當前目錄的文件比較多的話。
現在就是「pipe」出場的時候了。
ls
-la
|
more
你會在屏幕上看到如下信息:
你也可以在大多數Linux命令中使用通配符。通配符就是可以代表文件名中任何未知的字元或字元串。例如,*就代表任意字元串,?代表單個字元。例如:
『玖』 linux操作系統的shell命令有哪些
1 文件與目錄操作命令
1.1文件內容查詢命令 grep、fgrep、egrep
語法:grep[選項][查找模式][文件名1,文件名2,……]
選項:
-E 每個模式作為一個擴展的正則表達式對待
-F 每個模式作為一組固定字元串對待,而不作為正則表達式
-i 比較時不區分大小寫
-l 顯示首次匹配匹配串所在的文件名並用換行符將其分開。當在文件中多次出現匹配串時,不重復顯示次文件名;
-x 只顯示整行嚴格匹配的行
1.2文件查找命令 find、locate
語法:
find 起始目錄 尋找條件 操作以名稱和文件屬性查找
選項: -name『字串『 查找文件名匹配所給字串的所有文件,字串內可用通配符*、?、[]。
-lname『字串『 查找文件名匹配所給字串的所有符號鏈接文件,字串內可用通配符*、?、[]。
-gid n 查找屬於ID號為n的用戶組的所有文件。
-uid n 查找屬於ID號為n的用戶的所有文件。
-group『字串『 查找屬於用戶組名為所給字串的所有的文件。
-user『字串『 查找屬於用戶名為所給字串的所有的文件。
-path『字串『 查找路徑名匹配所給字串的所有文件,字串內可用通配符*、?、[]。
-perm 許可權 查找具有指定許可權的文件和目錄,許可權的表示可以如711、644。
-type x 查找類型為 x的文件,
語法:locate 相關字
1.3文件的復制、刪除和移動命令 文件復制命令
[選項] 源文件或目錄 目標文件或目錄
選項:
- a 通常在拷貝目錄時使用
-d 拷貝時保留連接
-f 刪除已經存在的目標文件而不提示
-i 和f選項相反
-p 此時cp除復制源文件內容外,還將其修改的時間和訪問許可權也復制到新文件中
-r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下的所有的子目錄和文件,此時目標文件必須為一個目錄名;
-l 不作拷貝,只是鏈接文件文件移動命令
mv[選項] 源文件或目錄 目標文件或目錄
-i 互動式操作
-f 禁止互動式操作文件刪除命令
[選項] 文件…
-f 忽略不存在的文件,從不給出提示
-r 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除
-i 進行互動式刪除 1.4文件鏈接命令
ln [選項] 目標 [鏈接名] 或 ln [選項] 目標 目錄
選項:
- s 建立符號鏈接
1.5目錄的創建和刪除命令 mkdir 創建一個目錄
語法: [選項] dirname
選項: - m 對新建目錄設置存取許可權
-p 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。
rmdir 刪除空目錄
語法: rmdir [選項] dirname
選項:
- p 遞歸刪除目錄dirname,當子目錄刪除後其父目錄為空時,也一同被刪除。
1.6改變工作目錄,顯示目錄內容命令
1、改變工作目錄: cd [directory]
2、顯示當前工作的目錄的絕對路徑: pwd
3、顯示目錄內容: ls [選項] [目錄或是文件]
選項:
- a 顯示指定目錄下所有子目錄與文件,包括隱藏文件;
-c 按照文件的修改時間排序
-C 分成多列顯示各項
-d 如果參數是目錄,只顯示其名稱而不顯示其下的個文件
-F 在目錄名後面標記「/」,可執行文件後面標記「*」,符號鏈接後面標記「@」,管道(或FIFO)後面標記「|」,socket文件後面標記「=」。
-l 以長格式來顯示文件的詳細信息
-L 若指定的名稱為一個符號鏈接,則顯示鏈接所指向的文件
-t 顯示時按修改時間而不是名字排序
-u 顯示時按文件上次存取的時間而不是名字排序
4、改變文件或目錄的訪問許可權命令chmod [who] [+| - | = ] [mode] 文件名?
Who選項:
- u表示用戶,即文件和目錄的所有者
-g表示同組用戶
-o(other)表示其他用戶
-a (all)表示所有用戶
操作符號: + 添加某個許可權 - 取消某個許可權 = 賦予給定許可權並取消其他所有的許可權(如果有的話)
mode 選項:
- r 可讀
-w 可寫
-x 可執行 chgrp [-R] group filename? 改變目錄或文件所屬的組
chown [-Rv] 用戶或組 文件
1.7備份與壓縮命令
1、tar命令 為文件和目錄創建檔案語法:
tar [主選項+輔助選項] 文件或者目錄 : u 主選項
-c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,則選此項
-r 把要存檔的文件追加到檔案文件的末尾
-t 列出檔案文件的內容,查看已經備份了哪些文件;
-u 更新文件
-x 從檔案文件中釋放文件;
-u 輔助選項
-b 該選項為磁帶機設定的,其後跟一位數字,用來說明區塊的大小,系統預設值為20
-f 使用檔案文件或設備,這個選項通常是必選的
-k 保存已經存在的文件。例如把某個文件還原,在還原的過程中,遇到相同的文件,不會進行覆蓋;
-m 在還原文件時,把所有文件的修改時間設定為現在;
-M 創建多卷的檔案文件,以便在幾個磁碟中存放;
-v 詳細報告tar處理的文件信息
-w 每一步都要求確認
-z 用gzip來壓縮/解壓縮文件
2、gzip命令 壓縮/解壓縮命令
語法:gzip [選項] 壓縮(解壓縮)的文件名
選項:
-c 將輸出寫到標准輸出上,並保留原有文件
-d 將壓縮文件解壓
-l 顯示每個壓縮文件的詳細信息
-r 遞歸式地查找指定目錄並壓縮其中的所有文件或者是解壓縮
-t 測試、檢查壓縮文件是否完整
-v 對每一個壓縮和解壓的文件,顯示文件名和壓縮比
3、unzip 命令 用MS windows下的壓縮軟體winzip壓縮的文件在linux系統下展開
語法:unzip [選項] 壓縮文件名.zip
選項: -x 文件列表 解壓縮文件,但不包括指定的file文件
-v 查看壓縮文件目錄,但不解壓
-t 測試文件有無損壞 ,但不解壓
-d 目錄 將壓縮文件解到指定目錄下
-z 只顯示壓縮文件的註解
-n 不覆蓋已經存在的文件
-o 覆蓋已經存在的文件且不要求用戶確認
-j 不重建文檔的目錄結構,把所有文件解壓到同一目錄下
1.8在LINUX環境下運行DOS命令 linux系統提供了一組稱為mtools的可移植工具,可以讓用戶輕松地從標準的DOS軟盤上讀寫文件和目錄。
mcd 目錄名 改變MSDOS目錄 m 源文件 目標文件 在MSDOS和UNIX之間復制文件;
mdel 目錄名 刪除MSDOS目錄 mdir 目錄名 顯示MSDOS目錄 mformat 驅動器號 在低級格式化的軟盤上創建MSDOS文件系統 rnlabel 驅動器號 產生MSDOS卷標 mmd 目錄名 刪除MSDOS目錄 mren 源文件 目標文件 重新命名已存在的MSDOS文件 mtype 文件名 顯示MSDOS文件的內容
2 設備管理命令
1)linux採用下面的形式定義一個IDE硬碟:/dev/hd[drive][partition]
2)SCSI硬碟使用同樣的機製表示: /dev/sd[drive][partition]
3)對於一般的LINUX分區,可以用mkfs將其格式化並生成文件系統,命令如下: mk2fs –c ;
4)裝載文件系統:
mount –t ext2 [-o optioms] partition mountpiont 其中,
-t為指定裝載文件系統的類型;
-o指定一些選項,如只讀ro,可讀可寫rw等等; partition定義分區名稱; mountpiont定義文件系統被裝載的目錄名稱。
5)裝載CD-ROM文件系統: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 磁帶設備的安裝要注意以下幾點:
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系統上安裝軟體的步驟有:
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) 對全部已 登錄的用戶發送信息,用戶可以先反要發送的信息寫好存入一個文件中,然後輸入: # wall < FileName 例:Wall 『Thank you !』 Write 向某一用戶發送信息。 Write xxq hello 輸入Ctrl+C組合即可終止 Shutdown命令 Shutdown [選項] [時間] [警告信息]
-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命令設置、更換用戶口令。
Passwd [用戶名] Su 使一個普通的用戶具有超級用戶的權利,離開可用EXIT命令。 4.3其它命令 Echo命令在顯示器上顯示一段文字,一般起到一個提示的作用。
echo [-n] 字元串 Cal命令顯示某年某月的日歷。
cal [選項] [月[年]]
選項的含義:
-j 顯示也給定月中的每一天是一年中的和幾天(從1月1日算起)。
-y 顯示也整年的日歷。 Date命令 date命令的功能是顯示和設置系統日期和時間。 4.4磁碟管理 磁碟空間管理 df命令檢查文件系統的磁碟空間佔用局部。
Df [選項]
-a 顯示所有文件系統的磁碟使用情況,包括0塊(block)的文件系統,如/proc文件系統。
-k 以K位元組為單位顯示。
-i 顯示i節點信息,而不是磁碟塊。
- t 顯示各指定類型的文件系統的磁碟空間使用情況。
-x 列出不是某一指定類型文件系統的磁碟窨使用情況(與t相反)。
-T 顯示文件系統類型。 命令 的英文原意為disk usage,含義為顯示磁碟空間的使用情況。功能是統計目錄(或文件)所佔磁碟空間的大小。
[選項] [Names…]
-s 對每人Names 參數只給也佔用的數據塊總數。
-a 遞歸地顯示指定目錄中各文件用子孫目錄中的各文件佔用的數據塊總數。
-b 以位元組為單位列也磁碟窨使用情部(預設以K位元組為單位)
-k 以1024位元組為單位列也磁碟空間使用情況。
-c 最後再加上一個總計(系統預設)
-l 計算所有的文件大小,對硬鏈接文件,則計算多次。
-x 跳過在不同文件系統上的目錄不予統計。 dd命令把指定的輸入文件拷貝到指定的輸出文件中,並且在拷貝的過程中可以進行格式轉換。
語法: dd 〔選項〕 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命令低級格式化軟盤。
format [-n] device QUOTE: -n 格式化後不做檢驗
4.5常用的網路命令 FTP命令 Telnet命令。
Netstat命令
-a 顯示所有的scoket,包括正在監聽和。
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網路介面的信息,格式同」ifconfig –e」
-n 以網路IP地址代替名稱,顯示也網路連接情形。
-r 顯示核心路由表,格式同」route –e:。
-t 顯示TCP協議的連接情況。
-u 顯示UDP協議的連接情況。
-v 顯示正在進行的工作。 nslookup命令。 finger命令,功能是查詢用戶的信息。 ping命令。(用戶和組的管理可以使用工具:TurboUserCfg或是XturboUserCfg。)
4.6有關進程的命令。 進程和啟動 at [-V] [-q] [-f文件名] [-mldbv]時間 at –c 作業 [作業….] AT命令啟動的進程系統只執行一次。 batch [-V] [-q 隊列] [-f 文件名] [-mv] [時間] 在系統負載較小時,資源比較空閑時執行。 cron命令按一定的時間間隔執行命令。 crontab命令用於安裝、刪除或列出用於驅支cron後台進程的表格。進程查看
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系統的啟動過程。
『拾』 linux下shell腳本命令
Shell腳本基本知識
概述:shell其實是內核與用戶之間的一個介面,
shell腳本
如果有一系列經常使用的linux命令,你可以把它們存儲在一個文件腫。shenll可以讀取這個文件,並執行其中的命令。這樣的文件成為腳本文件。
執行shell腳本
要創建一個shell腳本,你要使用任何編輯器比如vi在文本文件中編寫他。
為了使用bash shell賴執行腳本magic,其命令是:bash magic或者./magic
echo命令:
echo 「this is an example of the echo command!」
屏幕上就會回顯「this is an example of the echo command!」
#符號
用於在shell腳本腫可以包含註解入口
echo 「hello」
#this is a comment line. this would not proce any output!
echo 「world!」
第二行是一個註解的例子。它將被shell忽略,而且不產生任何消息
變數:
可以在任何時間通過簡單的賦值來創建。
語法:
<variable name>-<value>
Linux 中的所有變數都被當作字元串
引用變數:
$符號用於引用一個變數的內容
variable1 = ${variable2}
讀入值給變數
在執行shell腳本時,shell還允許用戶直接從鍵盤讀入一個值給變數,還可以使用read命令來作。
$read fname
本地和全局shell變數
局部變數
當引用shell時,只有創建它的shell能夠知道變數的存在
全局變數
稱為子shell
shell中創建的變數局部於創建它的shell,除非使用export命令特別指出是全局的。
環境變數:
通過改變這些變數的值,用戶能夠定製此環境
一些環境變數的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME變數
Linux系統中的每個用戶都有一個相關的稱作HOME的目錄
當一個用戶登錄後,進入相應的HOME的目錄
$ echo $HOME
PATH變數
包含一列用冒號定界的目錄的路徑名字,便於可執行程序的搜索。
PS1變數
PS1(Prompt String 1)變數包含了shell提示符,$符號
$ PS1 = 「HELLO>」
HELLO>
PS2變數
是為第二個提示符設置值的環境變數
LOGNAME變數
包含用戶的注冊名字
$echo 「${LOGNAME}」
SHLVL 變數
該變數包含當前工作的shell level
SHELL變數
環境變數存儲了用戶預設的shell
env命令
可用來查看所有的已移出的環境變數表和它們各自的值!
命令替換
在單個命令行中使用多個命令的另外一種方法(非Pipes)是通過命令替換
echo 「the data is `date`」
expr命令
用於求之算術表達式。該命令的輸出被送到標准輸出
$ expr 4 + 5
將在屏幕上顯示9
算術展開:
你可以在$((…)) 中括一個表達式,用下面的命令來計算它的值;
$((expression))
example1
編寫一個shell腳本用於計算呼叫中心未應答的詢問的數量。該腳本應該接受一天那所報告的詢問的總數和應答的詢問的數量,以便計算未應答的詢問的數量。
所有未應答的詢問總數=所有詢問的總數-應答的詢問的數量
<!--[if !supportLists]-->※ <!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※
條件執行
test和[]
求值表達式,並返回true(0)或false()
數值測試:
-eq 等於則為真
-ne 不等於則為真
-gt 大於則為真
-ge 大於等於則為真
-lt 小於則為真
-le 小於等於則為真
if構造
Linux shell提供了循環和判定的構造,可以在shell腳本中使用
算術測試
結合if構造,它可以用於測試變數的數字值
串測試
test命令也可以用於字元串
= 等於則為真
!= 不相等則為真
-z 字元串 長度為零則為真
-n 字元串 長度不為零則為真
文件測試
test命令也可以用於檢查文件的狀態
-e 文件存在則為真
-r 文件存在並且可讀則為真
-w 文件存在並且可寫則為真
-x 文件存在並且可執行則為真
-s 文件存在並且至少有一個字元則為真
-d 文件存在並且為目錄則為真
-f 文件存在並且為普通文件則為真
-c 文件存在並且為字元型文件則為真
-b 文件存在並且為塊特殊文件則為真
-a並且 -o或者 !非
exit命令
用於終止shell腳本的執行並返回到$提示符下
case 。。。esac
shell腳本中使用的這個構造依據變數的值而執行一組特定指令
當變數的值和其中的一個值匹配的時候,就執行寫在該值下的一組命令。
example3
迭代
while構造
while <條件>
do
<命令(s)>
done
只有條件為真的時候,才能執行do與done之間的命令
until構造
until循環構造的求值模式於while循環相反
until循環將繼續執行直到求值的條件為真的時候
for構造
for variable_name in <list_of_values>
do
…
done
for循環取一列值作為輸入並對循環中每個值執行循環
break和contineu命令
同其他語言中的用法
example4
控制進程的執行
請求後台處理
用於請求後台進程的符號是 (&)
$ wc tempfile &
[1] 2082
$ vi newfile
檢查後台進程
ps(進程狀態)命令為每個當前的活動的每個進程產生一行入口。
終止後台進程
可用kill,如下所示
kill 278
查看完成一個命令所花的時間
你可以使用time命令來查看一個命令從開始到結束所花的時間
time fine /etc –name 「passwd」 2> /dev/null /dev/null表明忽略錯誤信息。
管道的介紹
垂直條(|)是管道字元
它只是shell:「|」前面命令的輸出作為「|」之後命令的輸入發送
ls –l | more
用管道組合命令,功能強大