原創做品,容許轉載,轉載時請務必以超連接形式標明文章原始出處 、做者信息和本聲明。不然將追究法律責正則表達式
有一種說法,現代計算機不是靠電力驅動,而是靠「鼠標」。多少應用程序的界面須要移動和點擊鼠標來執行的。計算機原本的用意是把人類從反覆單調的工做中解放出來,但拔苗助長,擺在咱們身邊的殘酷現實是咱們每一個人天天不得不移動和點擊鼠標,確保養家餬口的工做可以順利正確地完成。算法
別嘆氣,存在另外一個世界,那就是命令行,讓你暫時遠離鼠標。對那些苦哈哈的程序猿來說,這也許是另外一種情調的工做方式。咱們忽然之間擁有了另外一種意想不到的收穫,例如我想看看用戶目錄下的的文件大小,而後按升序排列產生個報表。若是用C/C++完成這項工做,至少得用好幾十行代碼,可是用一句命令行就能完成上面的功能。shell
du -s * | sort -nr > $HOME/space_report.txt編程
命令行有它的存在價值吧。還有把 Linux 桌面操做錄製成一段視頻。想起來就是一件複雜的任務,在Linux上用一句命令就能輕鬆搞定。vim
ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg瀏覽器
賣個關子,這個命令會在《多媒體篇》有詳細解釋。緩存
估計你可能會火燒眉毛的想要實驗一下剛纔所提到的命令,可是苦於如今都流行的圖形界面,咱們推薦的Cent OS默認也進入了圖形界面,看來作點實驗仍是有點難度的。不過不用着急,Linux的老手們必定是要命令行的,因此想經過鍵盤輸入命令,一個合格的Linux發行版必定會作得十分方便,只是要先搞清楚一些概念。安全
用戶和系統不是直接打交道,他們中間有個名字叫Shell的聯繫人。咱們從鍵盤中輸入命令給Shell,Shell再把它們交給操做系統去執行。bash
從哪裏開始輸入命令呢?固然你能夠在字符界面輸入命令(暫時先放放,稍後再看)。Linux系統還提供一個叫終端模擬器的程序。這個程序打開一個窗口,讓咱們與Shell交流。Linux系統上的各類軟件向來是百花齊放,模擬器終端也不例外,例如gnome-terminal、konsole、xterm、rxvt、kvt、nxterm和eterm等,而大多數Linux發行版會同時支持幾種。網絡
使用過Windows操做系統的你,在登陸Linux桌面系統後,應該也能輕鬆地從菜單中選擇啓動終端的圖標點擊就能夠進入終端模擬器。固然你也能夠在文件瀏覽器中找到叫「konsole」(KDE桌面)或「gnome-terminal」(Gnome桌面)的程序雙擊執行打開終端窗口。更有意思的是你能夠打開任意多個窗口,每一個窗口給你一個shell會話。你從中選擇了一個窗口開始鍵盤輸入magic。在終端上會顯示你剛纔敲入的字符magic。接下來還有magic的事情呢,當你按向上箭頭時能夠看到前一個命令,再按向上箭頭又能夠看到前一個的前一個命令,按向下箭頭命令又能夠往回輸入顯示,最後咱們又回到了magic輸入,你還可使用左右箭頭移動光標進行字符輸入。
哦,我記得有個cp命令,那就試試吧:
$ cp /etc/resolv.conf /etc/resolv.conf.bak
cp: cannot create regular file `/etc/resolv.conf.bak': Permissiondenied
太欺負人了吧,怎麼簡單的命令都不讓偶用。你注意到沒有,Shell命令提示符是$,這意味着什麼?這意味着你是普通用戶,不是超級用戶,你沒有管理員權限。若是你是擁有管理員權限的超級用戶,提示符就變成#,你就能夠在系統上作增長,刪除和修改文件的操做。
方纔咱們介紹的方法是目前最經常使用的在桌面環境下執行命令方法,可是也有不少有「潔癖」的人喜歡使用純粹的文本終端,這就須要進行圖形和文本切換了,或者乾脆就關閉圖形界面。咱們先搞定前者,後者會在後面的章節作十分詳細的介紹。
要在文本和圖形界面之間來回切換是很是簡單的,只須要使用快捷鍵<Ctrl><Alt><F1>~<F6>來回切換就行,具體什麼效果你們能夠本身實驗,這個地方不一樣的Linux發行版會有不一樣的設定,因此本書就很差作定論。通常<Crtl><Alt><F1>表明圖形界面,而剩下的5組快捷鍵對應5個不一樣的文本終端,咱們推薦的Cent OS就是這種設定。還有的設定是<Ctrl><Alt><F7>是圖形界面,其它6組快捷鍵是6個不一樣的文本終端。
通常不建議使用本小節介紹的方法來操做Linux,除非你有強烈的「潔癖」或遇到有「潔癖」的系統管理員。由於這種方法你可以使用到的獨立文本終端最多隻有6個。而使用上一小結介紹的在圖形界面中使用終端模擬器的方法,則沒有文本終端數量的限制,對於一個Linux老手來說,文本終端永遠都是多多益善的。很快大家就會有這種感受了。
說起Linux基本命令,先給你講述一個浪漫的故事:
曾經有個男孩很喜歡一個女孩,但是不敢表白。他想了一個辦法。在Linux終端上輸入echo「這週六下午2:30,能在如嘉咖啡館一塊兒喝咖啡嗎?」>love.txt,而後回車。
接着他找來那張他喜歡的鼓浪嶼圖片(pic.png),使用 cat pic.png love.txt >pic1.png從新作了一個圖片文件。
他鼓起勇氣給那個女孩寫了封郵件,郵件內容只是:請查閱附件。
女孩收到郵件,用圖片瀏覽器打開後,看到的只是一張美麗的風景圖片,有點納悶。可是聰明的她,馬上猜到了那個男孩的用意。她用tail pic1.png,很快發現了祕密。
$ tail pic1.png
PNG
IHDRmtEXtSoftwareAdobe ImageReadyq<IDATxA0
[圖片編碼內容,通常人沒法直接讀懂…….]
)'EDDDqq^cDDD/GDDDDmyw/}!"""「這週六下午2:30,能在如嘉咖啡館一塊兒喝咖啡嗎?」
太妙了,原來學好Linux經過Linux基礎命令還能夠交女友。加大馬力,咱們來認識更多的命令。不過咱們會遇到一個問題,Linux命令太多了,數量至少有200多個,怎麼記呀。其實誰也記不住這麼多命令,剝絲抽繭抓重點,把重要的和常用的搞定了就行。按照它們在系統中所起的做用,我作一下簡單地分類說明。
表1-1
命令 |
說明 |
目錄和文件處理: 在講解以前,咱們先認識一下幾個好玩的符號 . :小點活在當下,即當前目錄。例如:./jie_work執行當前目錄下的jie_work文件 ..:兩點跑上去,既到當前的上一級目錄。舉個例子,命令cd..修改當前工做目錄到上一級目錄 ~ :水波帶我回家,即/home/個人登陸名。例如個人登陸名爲zhangjie,cd ~命令就是cd /home/zhangjie。固然你直接輸入cd,也有一樣功效 |
mkdir |
創建目錄 用法:mkdir [OPTION] DIRECTORY… 例:mkdir fangru |
ls |
列出目錄下的內容 用法:ls [OPTION]…[FILE]… 例:ls -al fangru |
cd |
更換工做目錄 用法:cd [DIRECTORY] 例:cd fangru |
pwd |
顯示當前工做目錄 用法:pwd |
vim |
加強版文本編輯器 用法:vim [OPTION] [file] 例:vim helloworld.c |
cp |
拷貝文件及其目錄 用法:cp [OPTION]... SOURCE DEST 例:cp jie.txt jie.bak |
mv |
移動(重命名)文件 用法:mv [OPTION]…SOURCE DEST 例:mv jieold jienew |
rm |
刪除文件或目錄 用法:rm [OPTION]…FILE… 例:rm -rf jie_dir |
find |
在目錄及其子目錄查找文件 用法:find [OPTION] [path] [pattern] 例:find -name jie*.txt |
history |
顯示最近使用過的命令 用法:history |
文本處理: 在講解以前,有必要說明一下模式的定義。 模式是一種表達式,不列出全部元素,而是給出一系列字符串的一種精確描述 例如:ab*cd匹配了以ab開始和cd結束的一系列字符串 |
cat |
連結文件打印到標準輸出 用法:cat [OPTION] [FILE]… 例:cat pic.png love.txt > pic1.png 還記得那個命令行的故事吧? |
echo |
顯示一行文本 用法:echo [OPTION] [string] 例:echo $HOME |
grep |
搜索特定的內容並將含有這些內容的行標準輸出 用法:grep [OPTION] PATTERN [FILE] 例:grep -i Jagen magicLinux.txt |
wc |
統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出 用法:wc [OPTION]…[FILE] 例:wc -L magicLinux.txt |
sort |
對文件中的各行進行排序 用法:sort [OPTION]…[FILE] 例:sort -r magicLinux.txt |
系統管理: 在講解這類命令以前,先談談文件權限的定義。Linux系統上文件有三種權限-讀、寫和執行。敲入ls -l命令後,咱們會發現有10個字母表示文件類型和權限信息:第一個字母是文件類型,d表明目錄,-表明普通文件;接下了的每三個字母爲一組,分別表明擁有者(owner)羣組成員(groups)其餘人(others)的讀、寫和執行權限。 例:drwxrw-r--意味着這是一個目錄,擁有者擁有讀、寫和執行三種權限,羣組成員擁有讀寫權限,其餘人只擁有可讀權限。 權限位還能夠用相應的數值來表明,讀-4、寫-2、執行-1,這些數字或它們的和就表明一個角色的權限。 例:rwxrw-r-- = 764 673 = rw-rwx-wx |
chmod |
控制用戶對文件的權限 用法:chmod [OPTION] [MODE] [FILE] 例:chmod 764 count.sh |
chown |
改變檔案的擁有者 用法:chown [OPTION]…OWNER[:[GROUP]] FILE 例:chown jie magicLinux.txt |
su |
su是切換到其餘用戶,可是不切換環境變量 su - 是完整的切換到一個用戶環境 要知二者的區別,用export命令一查便知。 用法:su [OPTION] [LOGIN] 例:su zhangjie |
passwd |
更改使用者的密碼參數 /etc/passwd 存儲的是操做系統用戶信息,該文件爲全部用戶可見 /etc/shadow 被稱爲/etc/passwd的影子文件。它們之間的內容是互補的。shadow內容包括用戶及被加密的密碼以及其它/etc/passwd不能包括的信息,好比用戶的有效期限等 用法:passwd [OPTION] 例:passwd zhangjie |
who |
顯示目前登入系統的用戶信息 用法:who [OPTION] 例:who -b |
進程管理 |
ps |
強悍的進程查看命令 用法:ps [OPTION] 例:ps -aef |
kill |
刪除執行中的程序或工做 用法:kill [OPTION] 例:kill -9 3154 |
jobs |
經過jobs命令查到後臺正在執行的命令的序號(非進程號pid) 用法:jobs |
bg |
指定號碼(非進程號)的命令進程放到後臺運行 用法:輸入'ctrl+z' 而後輸入 'bg<job id>' 例:bg <job id> |
fg |
指定號碼(非進程號)的命令進程放到前臺運行 用法:fg <jobid> |
檔案 |
tar |
壓縮和解壓 用法:tar [OPTION] DEST SOURCE 例:tar -cvf /home/archive.tar(壓縮) tar -xvf /home/archive.tar(解壓) |
zip |
打包壓縮 用法:zip [OPTION] DEST SOURSE 例:zip original.zip original |
unzip |
解壓縮zip文件 用法:unzip filename 例:unzip original.zip |
網絡 |
ssh |
遠程登陸的客戶端 用法:ssh [options] [user]@hostname 例:ssh zhangjie@10.105.11.20 |
scp |
基於ssh登錄進行安全的遠程文件拷貝命令 用法:scp [options] [[user]@host1:file1] [[user]@host2:file2] 例:scp file1.txt zhangjie@10.105.11.20:~/work/ |
文件系統 |
fdisk |
觀察硬盤之實體使用情形與分割硬盤用 用法:fdisk [options] 例:sudo fdisk -l |
mount |
若是你要使用儲存設備(Mo、硬盤、光驅等),就得先將它掛上(Mount),而當儲存設備掛上了以後,就能夠把它當成一個目錄來進行訪問。掛上一個設備使用mount命令 在使用mount這個指令時,至少要先知道下列三種信息: 1. 要Mount對象的文件系統類型? 2. 要Mount對象的設備名稱? 3. 要將設備Mount到哪一個目錄去? 用法:mount -t type device dir 例:mount /dev/sda5 /media/target |
umount |
卸除文件系統 用法:umount [OPTIONS] dir | device 例:umount /media/target |
du |
查看目錄或文件所佔用磁盤空間的大小 用法:du [OPTION]……[FILE]…… 例:du |
df |
檢查文件系統的磁盤空間佔用狀況。 用法:df [OPTION]……[FILE]…… 例:df |
quota |
顯示磁盤使用狀況和限制狀況 用法:quota [OPTION] 例:quota -v |
擴展 |
reboot |
重啓系統 用法:reboot [OPTION] 例:reboot |
poweroff |
關閉系統 用法:poweroff [OPTION] 例:poweroff |
sed |
一種在線編輯器,它一次處理一行內容 用法:sed [OPTION] [input-file] 例:sed 's/love/hate/g' loveletter.txt |
awk |
一種文本處理工具,Linux及Unix環境中功能最強大的數據處理引擎之一。 用法:awk [-F fs] [-v var=value] [-f progfile | 'prog'] [file ……] 例:awk '/^[ns]/{print $1}' test |
有位老哥在Linux系統上開發一箇中文類似度匹配的項目,工做至關努力,已經達到了廢寢忘食的地步,可是使用的TF-IDF算法的計算速度仍是不盡人意。這時候,他決定先停一停,換換思路,玩玩俄羅斯方塊放鬆一下。忽然老闆走過來,他下意識地使用<Ctrl><Alt><d>快速隱藏桌面。還好有驚無險,沒有被老闆發覺在玩遊戲,不然又須要一大堆的解釋。老闆拍了拍他的肩膀走了過去,隨後他用<Ctrl><Alt><d>又恢復了原有功能的顯示。
舉這個好玩的例子可不是讓你照着作,而是爲了告訴你Linux系統提供了不少快捷鍵提升命令行使用的工做效率,減小鍵盤的敲打以及拼寫錯誤。說幾個比較實用的快捷鍵,其餘的你本身去挖掘。
表1-2
經常使用快捷鍵 |
說明 |
<Tab> |
在文本終端下,使用TAB自動完成命令的輸入,或者顯示全部的可選項。超好用! |
<Shift><PgUp> |
滾動文本終端輸出。終端屏幕上一屏又一屏的提示信息,就能夠用它向上翻滾查看這些信息 |
<Shift><PgDown> |
回滾文本終端輸出 |
<Ctrl><Alt><Delete> |
文本終端下關機和從新啓動 |
<Ctrl><Alt><Backspace> |
關閉或重啓X Window |
<Ctrl>a |
到正在輸入的命令行的首部 |
<Ctrl>e |
到正在輸入的命令行的尾部 |
<Ctrl>c |
終止當前進程 |
<Ctrl>s |
中止終端傳輸 |
<Ctrl>p |
上一條執行的命令 |
<Ctrl>n |
下一條執行的命令,前提是執行過<Ctrl>p |
<Ctrl>f |
在當前命令輸入中右移光標一個字符 |
<Ctrl>b |
在當前命令輸入中左移光標一個字符 |
<Alt>f |
在當前命令輸入中右移光標一個詞 |
<Alt>b |
在當前命令輸入中左移光標一個詞 |
<Ctrl>k |
刪除光標後的全部字符 |
<Ctrl>d |
刪除光標當前的字符 |
<Alt><Tab> |
切換不一樣的程序窗口 |
<Alt><F1> |
訪問「開始」菜單 |
<Alt><鼠標左鍵> |
拖曳並移動一個窗口 |
<Alt><PrintScreen> |
把當前屏幕的快照存到剪貼板 |
<Ctrl><Alt><d> |
哈哈,老闆鍵。切換隱藏/顯示桌面運行程序 |
<Alt><SysRq><key> |
組合鍵主要是針對開發人員的程序調試目的或者在緊急場合下才使用。能夠經過設置相對應的內核參數來激活或者取消。 例如:echo "1" > /proc/sys/kernel/sysrq 激活這個組合命令 |
<Alt><SysRq><s> |
防止數據丟失,掛載的文件系統緊急同步把緩存寫入硬盤 |
…… |
…… |
<Alt><SysRq><o> |
關機。下班了! |
使用快捷鍵太爽了!默認狀況下,按TAB在bash中是能夠自動補齊,但僅能自動補齊命令名和文件名。但是咱們追求的目標是「更快、更高、更強」,那就安裝bash-completion作個加強版的自動補齊吧。使用 TAB 鍵自動補齊幾乎任何內容,包括參數、文件、目錄甚至包名稱等。安裝方法很簡單,下載到的包中包含一個bash-completion 文件,將其放在/etc下。在/etc/bash.bashrc文件里加入可執行命令。
# Run bash completion code
if [ -r /etc/bash_completion ]; then
# Source completioncode.
. /etc/bash_completion
fi
1.更快……
舉個例子。淘寶的預發環境中的Linux機器不容許直接登錄。須要申請跳板機,經過跳板機才能登錄預發機。在跳板機上,咱們常用ssh 10.232.15.201操做命令,好麻煩呀。在/etc/hosts中咱們加入一行「10.232.15.201 prerelease」。
而後咱們使用complete -F _known_hosts ssh告訴ssh須要的主機名。一旦設置好了,我就能夠經過敲[TAB]鍵完成主機名的輸入:sshp[TAB]
就完成了prerelease主機名的輸入。另外你還能夠定製私有命令的補齊功能,不過你須要本身編寫Shell腳本實現,而後把這個腳本放在/etc/bash_completion.d/下。在隨後的章節,咱們會學習Shell腳本的編程。在學完以後,但願你會經過編寫腳本產生本身的補齊功能。
2.更高……
有的命令太長,那就把命令縮短。命令別名(alias)就啓到這個做用。例如在SuSE版本中有個命令別名的文件(/etc/profile.d/alias.bash)。它裏面定義了許多命令別名,例如alias ..='cd ..', 那麼在終端上輸入..就至關於輸入了cd..直接回到上級目錄,方便不?
3.更強……
在Shell終端上還能夠一會兒運行多個命令,用「;」就把各個命令串起來,例如:
[命令1];[命令2];[命令3]
無論執行的命令結果如何,就是一往無前地衝呀殺呀,把這些命令最終執行掉。可是有時候,這些命令之間是有關聯的,就須要改改這種傻愣愣地工做方式。若是前一個命令執行成功才執行下一個命令,咱們能夠用「&&」把命令鏈接起來。例如:
[命令1]&&[命令2]&&[命令3]
若是前一個命令執行失敗才執行下一個命令,咱們能夠用「||」把命令鏈接起來。例如:
[命令1]||[命令2]||[命令3]
使用命令行的技巧還真很多,咱們能夠考慮出版一本專門講述Linux命令行的參考書了。
%boast
bash: fg: %boast: No such job.
儘管當命令執行成功的時候終端屏幕上不顯示任何信息,可是當發生錯誤的時候它常常會以必定的形式彙報錯誤。上面我開了一個關於Linux錯誤信息提示的玩笑。boast是吹牛的意思。我在終端上敲入boast後,終端返回錯誤提示No such job,意思是沒有這樣的工做。不一樣的命令返回的錯誤信息格式有所不一樣,可是常常有以下格式:命令名:執行內容:錯誤信息。例如rm jie給出的錯誤返回是rm:cannot remove ‘jie’:No such file or directory.那究竟發生了什麼狀況?當rm命令要刪除jie這個文件,jie這個文件不存在,產生了代號爲2的錯誤。這個錯誤代號的意思就是找不到相應的文件或目錄。錯誤代碼就被自動翻譯成No such file or directory。因爲錯誤代碼有限(大約有一百多種),有可能許多不一樣問題對應於同一個錯誤代碼,因此理解要執行的命令和錯誤信息的關係很重要。當獲得錯誤信息的時候,讓我歡喜讓我憂,喜的是知道發生什麼樣的錯誤,憂的是對錯誤信息有可能百思不得其解不知道如何去解決,這時候就得憑經驗了。
errno.h包含一個完整的基本錯誤代碼列表。除此以外,其餘一些頭文件(.h)也定義了本身的一些錯誤代碼。
下面的例子列出了全部系統定義的錯誤代碼及錯誤描述,源代碼是:
#include<string.h>
#include <errno.h>
#include <stdio.h>
int main(intargc, char ** argv) {
int i = 0;
for(i = 0; i< 256; i++)
printf("errno.%02dis: %s\n", i, strerror(i));
return 0;
}
編譯此程序用命令:
gcc -Wall strerror.c
執行程序:
./a.out
這個程序的輸出有點長,因此就不去浪費紙張了,你本身在電腦上看吧。
遇到問題尋找幫助能加快解決問題的速度。在Linux系統上,有如下幾個途徑使用幫助:
l遇到問題,男人(man)的幫助很靠譜。須要某個命令或者配置文件的幫助,就在終端輸入:
man 命令名或man +配置文件。
屏幕就會顯示對應命令系統的幫助手冊。輸入「q」退出幫助瀏覽器。
linfo 和 man功能類似,可是包含更多的最新信息。
l使用「命令名 –help」獲得一個簡略容易消化的命令幫助。
l程序自帶README文件或者其餘幫助信息文件,例如在/usr/share/doc下的一些手冊。
如何在man頁中查找信息呢?瀏覽man頁默認的工具是less。less的使用方法很簡單。翻頁用space,翻半頁用u,查找用/緊跟着正則表達式,用n查找下一個匹配項,用shift+ N查找前一個匹配項。若是這頁裏沒有你感興趣的,按space翻到下頁。更多的操做仍是man一下less文檔吧。
不少命令的man幫助頁中涉及到腳本命令、系統調用和編程接口等多方面。例如「man3printf」就是瀏覽printf的編程手冊。用「man -a 【命令名】」查看關於這個【命令名】全部幫助的文檔。「man -kscanf」會給你一個全部與scanf有關的man頁列表。還有,SEE ALSO常常是被遺忘的角落,可是我常常會在這裏發現其餘有用的命令或函數,千萬不要放過它。
條條大路通羅馬,你是Linux系統的主人,若是喜歡用vim閱讀man頁的話,改一下配置和裝個man.vim插件就行,另外使用most工具瀏覽man頁也是一個好主意。
我這可不是開玩笑,有些Linux命令輕則形成數據丟失,重則致使系統癱瘓。您看這位同窗漫不經心,敲入了rm -rf/,強制刪除 / 目錄下的全部文件,這代價但是很慘痛的。
還有一個很好玩的例子,我用旺旺聊天的形式給你講述:
小雪2012-08-25 15:28:10:在你Linux系統上輸入這串東西:(){ :|:& };
灰貓2012-08-25 15:28:34:長得這麼怪?
小雪2012-08-25 15:28:41:試試看看是什麼結果。謝了。
灰貓2012-08-25 15:28:44:很差了。終端一直出現下面的提示:
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
很慘啊。
小雪2012-08-25 15:29:02:哈哈,真的很慘。
灰貓2012-08-25 15:29:21:Ctrl+C都是無論用的。
小雪2012-08-25 15:29:21:即使退出這個終端也是沒有用的。
灰貓2012-08-25 15:29:31:最後全都是這個。-bash:pipe error:Cannot allocate memory-bash:pipe error:Cannot allocate memory
root用戶搞不定,由於killall的速度受到了影響,只能重啓機器了。
小雪2012-08-25 15:30:15:這就是著名fork炸彈。看來危害不小。
灰貓2012-08-25 15:30:34:別幸災樂禍了。能告訴我什麼原理嗎?
小雪2012-08-25 15:31:43:把:(){ :|:& };寫成下面格式你就看懂了
:()
{
:|:&
};
灰貓2012-08-25 15:32:13:明白了。「:」函數裏面定義操做是後臺執行「:」函數重定向到「:」函數,「:」函數的遞歸調用。
小雪2012-08-25 15:32:15:是滴。系統執行海量的進程直到死亡。
灰貓2012-08-25 15:32:43:這樣的代碼很差分析,主要是由於不清楚「:」是能夠作爲函數名的。
小雪2012-08-25 15:33:12:Quite right。另外爲了防止這個問題的出現,要限制賦予root權限的用戶數量以及單用戶的進程數。
灰貓2012-08-25 15:34:12:哈哈。是的,擁有root權限的用戶操做不慎很容易給系統形成破壞。
故事尚未結束。如何限制用戶的進程數呢?咱們能夠在/etc/security/limits.conf文件末尾加入一行:
* hard nproc 200
限制用戶的進程數爲200,但root用戶不會受這個限制。
這個命令行還涉及到Shell腳本編程,咱們將在後面的章節來學習。
咱們的第一次親密接觸到此該告一段落了。若是Linux長什麼樣你依然不知道,那真的實在是抱歉,你太懶了。若是你要問我學習Linux的捷徑是什麼,個人答案就是兩個字:勤勞。必定要勤動手,才能學好Linux。
Linux與Windows是徹底不一樣的操做系統,擁有着獨特的風采和特性。雖然咱們對Linux遠不如像Windows那樣熟悉和親切,可是經過本章的親密接觸,或許可以讓你體會到一下Linux所特有的那種「笨拙」的溫柔。只要那麼一點點就足夠了,我想那已經足夠提起你的慾望了。
接下來,咱們將會從多個方面、多個角度以及多個層次,與你們共同去探索,Linux究竟是什麼樣?