歡迎您光臨本站 註冊首頁

linux基礎知識整理

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

Linux下常用命令
1.Linux進入與退出系統
進入Linux系統:
必須要輸入用戶的賬號,在系統安裝過程中可以創建以下兩種帳號:
  1.root--超級用戶帳號(系統管理員),使用這個帳號可以在系統中做任何事情.
  2.普通用戶--這個帳號供普通用戶使用,可以進行有限的操作.
  一般的Linux使用者均為普通用戶,而系統管理員一般使用超級用戶帳號完成一些系統管理的工作.如果只需要完成一些由普通帳號就能完成的任務,建議不要使用超級用戶帳號,以免無意中破壞系統.影響系統的正常運行.
  用戶登錄分兩步:第一步,輸入用戶的登錄名,系統根據該登錄名識別用戶;第二步,輸入用戶的口令,該口令是用戶自己設置的一個字元串,對其他用戶是保密的,是在登錄時系統用來辨別真假用戶的關鍵字.
  當用戶正確地輸入用戶名和口令后,就能合法地進入系統.屏幕顯示:
[root@loclhost /root] #
這時就可以對系統做各種操作了.注意超級用戶的提示符是“#”,其他用戶的提示符是“$”.
修改口令
  出於系統安全考慮,Linux系統中的每一個用戶除了有其用戶名外,還有其對應的用戶口令.因此使用useradd命令增加時,還需使用passwd命令為每一位新增加的用戶設置口令;用戶以後還可以隨時用passwd命令改變自己的口令,Linux允許用戶隨時修改自己的口令,修改口令的命令是passwd,它將提示用戶輸入舊口令和新口令,之後還要求用戶再次確認新口令,以避免用戶無意中按錯鍵.如果用戶忘記了口令,可以向系統管理員申請為自己重新設置一個.
root作為管理員用戶可以修改任意賬號的密碼.而普通的用戶只可以修改本身的密碼.


虛擬控制台
  Linux是一個真正的多用戶操作系統,它可以同時接受多個用戶登錄.Linux還允許一個用戶進行多次登錄,這是Linux和UNIX一樣,提供了虛擬控制台的訪問方式,允許用戶在同一時間從控制台進行多次登錄.虛擬控制台的選擇可以通過按下Alt鍵和一個功能鍵來實現,通常使用F1-F6例如,用戶登錄后,按一下Alt-F2鍵,用戶又可以看到"login:"提示符,說明用戶看到了第二個虛擬控制台.然後只需按Alt-F1鍵,就可以回到第一個虛擬控制台. 一個新安裝的Linux系統默認允許用戶使用Alt-F1到Alt-F6鍵來訪問前六個虛擬控制台.虛擬控制台可使用戶同時在多個控制台上工作,真正體現Linux系統多用戶的特性.用戶可以在某一虛擬控制台上進行的工作尚未結束時,切換到另一虛擬控制台開始另一項工作.

退出系統
  不論是超級用戶,還是普通用戶,需要退出系統時,在shell提示符下,鍵入exit命令即可.
2 .cp命令
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中
語法: cp [選項] 源文件或目錄 目標文件或目錄
說明:該命令把指定的源文件複製到目標文件或把多個源文件複製到目標目錄中.
該命令的各選項含義如下:
- a 該選項通常在拷貝目錄時使用.它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合.
- d 拷貝時保留鏈接.
- f 刪除已經存在的目標文件而不提示.
- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認.回答y時目標文件將被覆蓋,是互動式拷貝.
- p 此時cp除複製源文件的內容外,還將把其修改時間和訪問許可權也複製到新文件中.
- r 若給出的源文件是一目錄文件,此時cp將遞歸複製該目錄下所有的子目錄和文件.此時目標文件必須為一個目錄名.


- l 不作拷貝,只是鏈接文件.
  需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名已存在,用cp命令拷貝文件后,這個文件就會被新源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項.
3.mv命令
用戶可以使用mv命令來為文件或目錄改名或將文件由一個目錄移入另一個目錄中.
語法:mv [選項] 源文件或目錄 目標文件或目錄
說明:視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中.當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名.當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中.在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失.
命令中各選項的含義為:
- I 交互方式操作.如果mv操作將導致對已存在的目標文件的覆蓋,此時系統詢問是否重寫,要求用戶回答y或n,這樣可以避免誤覆蓋文件.
- f 禁止交互操作.在mv操作要覆蓋某已有的目標文件時不給任何指示,指定此選項后,i選項將不再起作用.
如果所給目標文件(不是目錄)已存在,此時該文件的內容將被新文件覆蓋.為防止用戶用mv命令破壞另一個文件,使用mv命令移動文件時,最好使用i選項.
4.rm命令
用戶可以用rm命令刪除不需要的文件.該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除.對於鏈接文件,只是斷開了鏈接,原文件保持不變.


rm命令的一般形式為:
rm [選項] 文件…
如果沒有使用- r選項,則rm不會刪除目錄.
該命令的各選項含義如下:
- f 忽略不存在的文件,從不給出提示.
- r 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除.
- i 進行互動式刪除.
使用rm命令要小心.一旦文件被刪除,它是不能被恢復的.為了防止這種情況的發生,可以使用i選項來逐個確認要刪除的文件.如果用戶輸入y,文件將被刪除.如果輸入任何其他東西,文件則不會刪除.
5.mkdir命令:功能:創建一個目錄
語法:mkdir [選項] dir-name
說明:該命令創建由dir-name命名的目錄.要求創建目錄的用戶在當前目錄中(dir-name的父目錄中)具有寫許可權,並且dirname不能是當前目錄中已有的目錄或文件名稱.
命令中各選項的含義為:
- m 對新建目錄設置存取許可權.也可以用chmod命令設置.
- p 可以是一個路徑名稱.此時若路徑中的某些目錄尚不存在, 加上此選項后, 系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄.
6.rmdir 命令
功能:刪除空目錄.
語法:rmdir [選項] dir-name
說明:dir-name表示目錄名.該命令從一個目錄中刪除一個或多個子目錄項.需要 特別注意的是,一個目錄被刪除之前必須是空的.rm - r dir命令可代替 rmdir,但是有危險性.刪除某目錄時也必須具有對父目錄的寫許可權.
命令中各選項的含義為:
- p 遞歸刪除目錄dirname,當子目錄刪除后其父目錄為空時,也一同被刪除.如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標準輸出上顯示相應的信息.
7.cd 命令
功能:改變工作目錄.


語法:cd [directory]
說明:該命令將當前目錄改變至directory所指定的目錄.若沒有指定directory, 則回到用戶的主目錄.為了改變到指定目錄,用戶必須擁有對指定目錄的執行和讀許可權.
8.pwd 命令
在Linux層次目錄結構中,用戶可以在被授權的任意目錄下利用mkdir命令創建新目錄,也可以利用cd命令從一個目錄轉換到另一個目錄.然而,沒有提示符來告知用 戶目前處於哪一個目錄中.要想知道當前所處的目錄,可以使用pwd命令,該命令顯示整個路徑名.
語法:pwd
說明:此命令顯示出當前工作目錄的絕對路徑.
9.ls 命令
ls是英文單詞list的簡寫,其功能為列出目錄的內容.這是用戶最常用的一個命令之一,用戶需要不時地查看某個目錄的內容.
語法:ls [選項] [目錄或是文件]
對於每個目錄,該命令將列出其中的所有子目錄與文件.對於每個文件,ls將輸出其文件名以及所要求的其他信息.默認情況下,輸出條目按字母順序排序.當未給出目錄名或是文件名時,就顯示當前目錄的信息.
命令中各選項的含義如下:
- a 顯示指定目錄下所有子目錄與文件,包括隱藏文件.
- A 顯示指定目錄下所有子目錄與文件,包括隱藏文件.但不列出“.”和 “..”.
- b 對文件名中的不可顯示字元用八進位逃逸字元顯示.
- c 按文件的修改時間排序.
- C 分成多列顯示各項.
- d 如果參數是目錄,只顯示其名稱而不顯示其下的各文件.往往與l選項一起使 用,以得到目錄的詳細信息.
- f 不排序.該選項將使lts選項失效,並使aU選項有效.
- F 在目錄名後面標記“/”,可執行文件後面標記“*”,符號鏈接後面標記 “@”,管道(或FIFO)後面標記“|”,socket文件後面標記“=”.


- i 在輸出的第一列顯示文件的i節點號.
- l 以長格式來顯示文件的詳細信息.這個選項最常用.
每行列出的信息依次是: 文件類型與許可權 鏈接數 文件屬主 文件屬組 文件大小 建立或最近修改的時間 名字
對於符號鏈接文件,顯示的文件名之後有“—〉”和引用文件路徑名.
對於設備文件,其“文件大小”欄位顯示主、次設備號,而不是文件大小.
目錄中的總塊數顯示在長格式列表的開頭,其中包含間接塊.
- L 若指定的名稱為一個符號鏈接文件,則顯示鏈接所指向的文件.
- m 輸出按字元流格式,文件跨頁顯示,以逗號分開.
- n 輸出格式與l選項相同,只不過在輸出中文件屬主和屬組是用相應的UID號和 GID號來表示,而不是實際的名稱.
- o 與l選項相同,只是不顯示擁有者信息.
- p 在目錄後面加一個“/”.
- q 將文件名中的不可顯示字元用“?”代替.
- r 按字母逆序或最早優先的順序顯示輸出結果.
- R 遞歸式地顯示指定目錄的各個子目錄中的文件.
- s 給出每個目錄項所用的塊數,包括間接塊.
- t 顯示時按修改時間(最近優先)而不是按名字排序.若文件修改時間相同,則 按字典順序.修改時間取決於是否使用了c或u選頂.預設的時間標記是最後一次修改時間.
- u 顯示時按文件上次存取的時間(最近優先)而不是按名字排序.即將-t的時間標記修改為最後一次訪問的時間.
- x 按行顯示出各排序項的信息.
10.sort命令
sort命令的功能是對文件中的各行進行排序.sort命令有許多非常實用的選項,這些選項最初是用來對資料庫格式的文件內容進行各種排序操作的.實際上,sort命令可以被認為是一個非常強大的數據管理工具,用來管理內容類似資料庫記錄的文件.


Sort命令將逐行對文件中的內容進行排序,如果兩行的首字元相同,該命令將繼續比較這兩行的下一字元,如果還相同,將繼續進行比較.
語法:
sort [選項] 文件
說明:sort命令對指定文件中所有的行進行排序,並將結果顯示在標準輸出(屏幕)上.如不指定輸入文件或使用“- ”,則表示排序內容來自標準輸入.
sort排序是根據從輸入行抽取的一個或多個關鍵字進行比較來完成的.排序關鍵字定義了用來排序的最小的字元序列.預設情況下以整行為關鍵字按ASCII字元順序進行排序.
改變預設設置的選項主要有:
- m 若給定文件已排好序,合併文件.
- c 檢查給定文件是否已排好序,如果它們沒有都排好序,則列印一個出錯信息,並以狀態值1退出.
- u 對排序后認為相同的行只留其中一行.
- o 輸出文件 將排序輸出寫到輸出文件中而不是標準輸出,如果輸出文件是輸入文件之一,sort先將該文件的內容寫入一個臨時文件,然後再排序和寫輸出結果.
改變預設排序規則的選項主要有:
- d 按字典順序排序,比較時僅字母、數字、空格和製表符有意義.
- f 將小寫字母與大寫字母同等對待.
- I 忽略非列印字元.
- M 作為月份比較:“JAN”<“FEB”
- r 按逆序輸出排序結果.
- b 在每行中尋找排序關鍵字時忽略前導的空白(空格和製表符).
- t separator 指定字元separator作為欄位分隔符.
11.uniq命令
文件經過處理后在它的輸出文件中可能會出現重複的行.例如,使用cat命令將兩個文件合併后,再使用sort命令進行排序,就可能出現重複行.這時可以使用uniq命令將這些重複行從輸出文件中刪除,只留下每條記錄的唯一樣本.


語法:
uniq [選項] 文件
說明:這個命令讀取輸入文件,並比較相鄰的行.在正常情況下,第二個及以後更多個重複行將被刪去,行比較是根據所用字符集的排序序列進行的.該命令加工后的結果寫到輸出文件中.輸入文件和輸出文件必須不同.如果輸入文件用“- ”表示,則從標準輸入讀取.
該命令各選項含義如下:
- c 顯示輸出中,在每行行首加上本行在文件中出現的次數.它可取代- u和- d選項.
- d 只顯示重複行.
- u 只顯示文件中不重複的各行.
- n 前n個欄位與每個欄位前的空白一起被忽略.一個欄位是一個非空格、非製表符的字元串,彼此由製表符和空格隔開(欄位從0開始編號).
12.su命令
su - /su:切換到超級用戶
su username:切換到用戶名username的用戶
13.wall命令
這個命令的功能是對全部已登錄的用戶發送信息,用戶可以先把要發送的信息寫好存入一個文件中,然後輸入:
# wall < 文件名
這樣就能對所有的用戶發送信息了.
在上面的例子中符號“<”表示輸入重定向
# wall ‘Thank you!’
Broadcast message from root (tty1) Fri Nov 26 14:15:07 1999…
Thank you!
#執行以上命令后,用戶的屏幕上顯示出.Thank you!”信息后,並不出現系統提示符$(#),再次按回車鍵后,屏幕出現系統提示符.
14.write命令
write命令的功能是向系統中某一個用戶發送信息. 該命令的一般格式為:
write 用戶帳號 [終端名稱]
例如: $ write Guest hello
此時系統進入發送信息狀態,用戶可以輸入要發送的信息,輸入完畢,希望退出發送狀態時,按組合鍵< Ctrl c>即可.


15.mesg指令
mesg命令設定是否允許其他用戶用write命令給自己發送信息.如果允許別人給自己發送信息,輸入命令
# mesg y
否則,輸入:
# mesg n
對於超級用戶,系統的默認值為 n;而對於一般用戶系統的默認值為y. 如果mesg后不帶任何參數,則顯示當前的狀態是y還是n..
16 . sync命令
sync命令是在關閉Linux系統時使用的. 用戶需要注意的是,不能用簡單的關閉電源的方法關閉系統,Linux象其他Unix系統一樣,在內存中緩存了許多數據,在關閉系統時需要進行內存數據與硬碟數據的同步校驗,保證硬碟數據在關閉系統時是最新的,只有這樣才能確保數據不會丟失.一般正常的關閉系統的過程是自動進行這些工作的,在系統運行過程中也會定時做這些工作,不需要用戶干預. sync命令是強制把內存中的數據寫回硬碟,以免數據的丟失.用戶可以在需要的時候使用此命令.該命令的一般格式為:
  sync
17.shutdown命令
shutdown 命令可以安全地關閉或重啟Linux系統,它在系統關閉之前給系統上的所有登錄用戶提示一條警告信息.該命令還允許用戶指定一個時間參數,可以是一個精確的時間,也可以是從現在開始的一個時間段.精確時間的格式是hh:mm,表示小時和分鐘;時間段由“ ”和分鐘數表示.系統執行該命令后,會自動進行數據同步的工作.
該命令的一般格式為: shutdown [選項] [時間] [警告信息] 命令中各選項的含義為:
- k 並不真正關機,而只是發出警告信息給所有用戶.
- r 關機后立即重新啟動.
- h 關機后不重新啟動.
- f 快速關機,重啟動時跳過fsck.
- n 快速關機,不經過init程序.
- c 取消一個已經運行的shutdown.


需要特別說明的是,該命令只能由超級用戶使用.
18 . free命令
free命令的功能是查看當前系統內存的使用情況,它顯示系統中剩餘及已用的物理內存和交換內存,以及共享內存和被核心使用的緩衝區.
該命令的一般格式為: free [-b | -k | -m] 命令中各選項的含義如下:
-b 以位元組為單位顯示.
-k 以K位元組為單位顯示.
-m 以兆位元組為單位顯示.
19.uptime命令
uptime命令顯示系統已經運行了多長時間,它依次顯示下列信息:現在時間、系統已經運行了多長時間、目前有多少登錄用戶、系統在過去的1分鐘、5分鐘和15分鐘內的平均負載.
該命令的一般格式為: uptime
20.Linux磁碟管理
df命令
功能:檢查文件系統的磁碟空間佔用情況.可以利用該命令來獲取硬碟被佔用了多少空間,目前還剩下多少空間等信息.
語法:df [選項]
說明:df命令可顯示所有文件系統對i節點和磁碟塊的使用情況.
該命令各個選項的含義如下:
-a 顯示所有文件系統的磁碟使用情況,包括0塊(block)的文件系統,如/proc文件系統.
-k 以k位元組為單位顯示.
-i 顯示i節點信息,而不是磁碟塊.
-t 顯示各指定類型的文件系統的磁碟空間使用情況.
-x 列出不是某一指定類型文件系統的磁碟空間使用情況(與t選項相反).
-T 顯示文件系統類型.
21.du命令
du的英文原義為“disk usage”,含義為顯示磁碟空間的使用情況.
功能:統計目錄(或文件)所佔磁碟空間的大小.
語法:du [選項] [Names…]
說明:該命令逐級進入指定目錄的每一個子目錄並顯示該目錄佔用文件系統數據塊(1024位元組)的情況.若沒有給出Names,則對當前目錄進行統計.


該命令的各個選項含義如下:
-s 對每個Names參數只給出佔用的數據塊總數.
-a 遞歸地顯示指定目錄中各文件及子孫目錄中各文件佔用的數據塊數.若既不指定-s,也不指定-a,則只顯示Names中的每一個目錄及其中的各子目錄所佔的磁碟塊數.
-b 以位元組為單位列出磁碟空間使用情況(系統預設以k位元組為單位).
-k 以1024位元組為單位列出磁碟空間使用情況.
-c 最後再加上一個總計(系統預設設置).
-l 計算所有的文件大小,對硬鏈接文件,則計算多次.
-x 跳過在不同文件系統上的目錄不予統計.
22.dd命令
功能:把指定的輸入文件拷貝到指定的輸出文件中,並且在拷貝過程中可以進行格式轉換.先用dd命令把軟盤上的數據寫成硬碟的一個寄存文件,再把這個寄存文件寫入第二張軟盤上.需要注意的是,應該將硬碟上的寄存文件用rm命令刪除掉.系統默認使用標準輸入文件和標準輸出文件.
語法:dd [選項]
if =輸入文件(或設備名稱).
of =輸出文件(或設備名稱)
bs = bytes 同時設置讀/寫緩衝區的位元組數(等於設置ibs和obs).
count=blocks 只拷貝輸入的blocks塊.
23 . fdformat 命令
軟盤是用戶常用的存儲介質之一.軟盤在使用之前必須先作格式化操作,然後可以用tar、dd、cpio等命令存儲數據,也可以在軟盤上建立可安裝的文件系統.
功能:低級格式化軟盤
語法:format [-n] device
說明:該命令的作用是對軟盤進行格式化.
-n 軟盤格式化后不作檢驗.
device 指定要進行格式化的設備,通常是下述設備之一:
/dev/fd0d360 /dev/fd0h1200 /dev/fd0D360 /dev/fd0H360 /dev/fd0D720 /dev/fd0H720 /dev/fd0h360


/dev/fd0h720 /dev/fd0H1440
24 echo命令
echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用.
該命令的一般格式為: echo [ -n ] 字元串
其中選項n表示輸出文字后不換行;字元串可以加引號,也可以不加引號.用echo命令輸出加引號的字元串時,將字元串原樣輸出;用echo命令輸出不加引號的字元串時,將字元串中的各個單詞作為字元串輸出,各字元串之間用一個空格分割.
25. cal命令
cal命令的功能是顯示某年某月的日曆.
該命令的一般格式為: cal [選項] [月 [年]] 命令中各選項的含義為:
- j 顯示出給定月中的每一天是一年中的第幾天(從1月1日算起).
- y 顯示出整年的日曆.
26 . date命令
date命令的功能是顯示和設置系統日期和時間.
該命令的一般格式為: date [選項] 顯示時間格式(以 開頭,後面接格式)
date 設置時間格式
命令中各選項的含義分別為:
-d datestr, --date datestr 顯示由datestr描述的日期
-s datestr, --set datestr 設置datestr 描述的日期
-u, --universal 顯示或設置通用時間
時間域
% H 小時(00..23)
% p 顯示出AM或PM
% X 顯示時間的格式(%H:%M:%S)
% c 日期和時間( Mon Nov 8 14:12:46 CST 1999)
% D 日期(mm/dd/yy)
注意:只有超級用戶才有許可權使用date命令設置時間,一般用戶只能使用date命令顯示時間.
27.clear命令
clear命令的功能是清除屏幕上的信息,它類似於DOS中的 cls命令.清屏后,提示符移動到屏幕左上角.
27. cd directory 進入指定的目錄
cd .. 進入上一級目錄
cd /directory 進入目錄
cd ~ 進入用戶自己的目錄


28. ln [-s] source linkname 為一個文件建立連結
29 more/less filename 瀏覽/查看一個文本文件的內容
30 find . -name "file" 從當前目錄開始查找指定的文件
31 adduser 創建新用戶
32 alias 設置別名或替代名
33 bg fg 使掛起的進程繼續運行
34 ps ax 查詢當前進程
35 chown chgrp 改變文件的擁有者
36 chmod 改變文件屬性
37 halt 關閉系統
38 man 顯示手冊頁
39 grep 查找字元串
40 dd 複製磁碟或文件系統
41 kill 殺掉一個進程
42 killall 殺掉進程
43、文本數據轉到資料庫中
文本數據應符合的格式:欄位數據之間用tab鍵隔開,null值用來代替.例:
(1) name duty 2006-11-23
數據傳入命令 load data local infile "文件名" into table 表名;
(2)、導出資料庫和表
mysqldump --opt news > news.sql(將資料庫news中的所有表備份到news.sql文件,news.sql是一個文本文件,文件名任取.)
mysqldump --opt news author article > author.article.sql(將資料庫news中的author表和article表備份到author.article.sql文件, author.article.sql是一個文本文件,文件名任取.)
mysqldump --databases db1 db2 > news.sql(將資料庫dbl和db2備份到news.sql文件,news.sql是一個文本文件,文件名任取.)
mysqldump -h host -u user -p pass --databases dbname > file.dump
就是把host上的以名字user,口令pass的資料庫dbname導入到文件file.dump中
mysqldump --all-databases > all-databases.sql(將所有資料庫備份到all-databases.sql文件,all-databases.sql是一個文本文件,文件名任取.)
(3)、導入數據
mysql < all-databases.sql(導入資料庫)
mysql -u root -p fukai –force < dmc010003_db.myisam.sql(強行導入)


mysql>source news.sql;(在mysql命令下執行,可導入表)
44 看IP:ifconfig(root用戶); /sbin/ifconfig(普通用戶)
45 看進程:top
free命令可以查看內存使用率
top -n1命令中有CPU使用率信息
#ps -aux | grep smb
#ps -aux 顯示終端上的所有進程,包括其他用戶的進程.
#ps -x 顯示沒有控制終端的進程.
#ps -e 顯示所有進程.
#ps -r 只顯示正在運行的進程.
46 強制殺死進程:kill -9 進程id
47 查看網路共享文件: smbclient -L //192.168.0.254
48 Linux訪問windows共享文件:
mount -t cifs -o username=administrator,passwd='*******' //10.144.99.208/video /mnt/hgfs
(video為windows上共享的文件夾,/mnt/hgfs為Linux系統上的文件夾命令成功后在此訪問windows共享)
49 jar文件安裝 :java -jar server923_generic.jar
50 cpio文件的安裝:cpio -idmv<file_name.cpio
51 檢查安裝包:rpm -qa|grep name
52 SSH,telnet終端中文顯示亂碼解決辦法
vi /etc/sysconfig/i18n
將內容改為
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16
53 查看交換分區:lsps -a 查看交換分區大小
lsps -s 查看交換分區應用情況
54 #cat /etc/redhat-release 查看系統版本信息
55 #cat /proc/version 查看系統內核版本等信息
56 #uname -a 查看系統內核等信息
57 #cat /proc/cpuinfo 查看CPU信息
58 #cat /proc/meminfo 查看內存信息
59 #cat /proc/swaps 查看交換空間信息
60 #getconf LONG_BIT 查看CPU是32位還是64位
61 #dmidecode|more 如何查看BIOS信息等.
62 #grep MemTotal /proc/meminfo 查看物理內存信息


63 #grep SwapTotal /proc/meminfo 查看交換空間的大小
64 #cat /etc/passwd 查看賬戶信息
65 #cat /etc/shadow 查看密碼信息
66 #cat /etc/group 查看都有哪些組,每個組包含哪些用戶,或#vigr
67 #groups username 查看用戶屬於哪一個組
68 修改啟動界面為文本模式(命令模式)
3為文本模式,5為圖形模式.
#vi /etc/inittab
修改id:5:initdefault:為id:3:initdefault:
69 配置網卡相關信息
#cd /etc/sysconfig/network-scripts
#vi ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:17:31:7F:6B:A7
IPADDR=192.168.0.68
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet
:wq退出.
#service network restart 重新啟動網路
70 更改主機名
#vi /etc/sysconfig/network
將hostname改名,然後重啟即可.
71 考慮到安全問題,只允許普通賬戶直接遠程登錄,不允許root直接遠程登錄
配置sshd
啟動sshd服務:/etc/init.d/sshd start
編輯/etc/ssh/sshd_config文件,找到語句PermitRootLogin yes,將yes修改為no.
重新啟動sshd服務:/etc/init.d/sshd restart(此時將yes改為no之後不允許root用戶遠程登錄)
72 關閉不需要的系統服務
為了安裝的系統執行效能更佳,建議關閉一些沒有必要的系統服務,例如iptables
#chkconfig iptables off
73 修改DNS
標準格式:nameserver DNS地址
#vi /etc/resolv.conf
nameserver 192.168.0.36
nameserver 202.106.0.20
:wq #保存退出.
#service network restart #重新啟動網路
74 查看系統磁碟的分區情況以及文件系統被掛載的位置
#df –h
Filesystem Size Used Avail Use% Mounted on


/dev/hda3 36G 4.1G 30G 12% /
/dev/hda1 190M 8.4M 172M 5% /boot
none 248M 0 248M 0% /dev/shm
#df -h /home 查看home所在分區的磁碟使用情況
75 查看目錄及該目錄下文件的大小,或查看單個文件的大小
#du -sh 目錄或文件
[root@eric68 /]# du -sh /tmp
12K /tmp/.font-unix
8.0K /tmp/.ICE-unix
76 查看系統里有多少個賬戶?
# wc /etc/passwd -l
77 .啟動和停止apache服務
#/etc/init.d/httpd start //啟動httpd服務
#/etc/init.d/httpd stop //關閉httpd服務
#/etc/init.d/httpd restart //重啟httpd服務
Apache的主配置文件是httpd.conf默認路徑:/etc/httpd/conf/httpd.conf
78、啟動和停止Tomcat服務
# /etc/rc.d/init.d/tomcat5 start 啟動Tomcat服務 ...stop 停止Tomcat服務 ...restart 重啟Tomcat服務
79、Iptables防火牆
若開啟了防火牆,如何開放TCP協議的80埠:iptables -I INPUT -p tcp --dport 80 -j ACCEPT
80 關掉SELINUX:
SELINUX=Disabled #這樣就把SELINUX伺服器關掉了,請重新啟動系統;
81、禁止、響應ping
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 禁止ping,忽略ICMP包.
# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all 響應ping
以上兩個設置在重啟后失效,若添加到/etc/rc.local里,重啟后仍然有效.
82、history
查看歷史記錄命令:#history
註釋:查看以前使用過的命令,默認最大歷史記錄條數為1000(red hat 中),可以在 "/etc/profile"裡面修改"HISTSIZE" 參數來修改默認值
清除歷史記錄命令:#history –c
立即更新history文件命令:#history -w
History記錄原理:當一個用戶用bash登錄系統,他所輸入的命令會放到一個內存catch中,在他登出時會存入~/.bash_history中,用histroy -c 命令可以清空這一命令緩存,也就是說,這一用戶不想讓人知道他做了些什麼的話,只要在退出前執行history -c就行了.


查看某個用戶的history記錄:
#history –w
#history或#more .bash_history

如何自動備份某個用戶的history記錄?
1.建立ericyi用戶的history每日備份腳本
#cd tmp
#mkdir ericyi_history_backup
#chown root ericyi_history_backup/
#vi ericyihistorybackupdaily.sh
-----------------------------------------------------------------
#!/bin/bash
day=`date %Y-%m-%d`
basedir="/tmp/ericyi_history_backup "
cd /home/ericyi
history -w
cp .bash_history "$basedir"/history."$day" > /dev/null
83、linux下定期備份數據
# vi /etc/crontab //任務計劃
#加入下面內容
10 1 * * * root /etc/root/backupdaily.sh
註釋:每天1點10分運行腳本
:wq保存退出.
84(1)顯示用戶命令:whoami
(2)查看當前操作系統內核版本的命令:uname –r
(3)顯示登錄的主機的名字命令:hostname
(4)查看日曆的命令:cal
(5)查看系統時間命令:date
(6)創建文件命令:touch
(7)查看Linux 默認shell命令:echo $SHELL 觀察並記錄屏幕顯示信息
(8)查看當前Linux操作系統都有哪些shell:cat /etc/shells
(9)添加新用戶的命令:useradd username或adduser username其中的username是你所添加新用戶的名稱
(10)幫助命令:man 命令(可以是上面用過的命令) 如:man ls
(11)logout 一看就知道了,這是退出系統的命令,我就不多說了.要強調的一點是,linux是多用戶多進程的操作系統,因此如果你不用了,退出系統就可以了,關閉系統你就不用操心了,那是系統管理員的事情.但有一點切記,即便你是單機使用linux,logout以後也不能直接關機,這不是關機的命令.
85 chgrp命令


   功能:改變文件或目錄所屬的組.
   語法:chgrp [選項] group filename?
   該命令改變指定指定文件所屬的用戶組.其中group可以是用戶組ID,也可以是/etc/group文件中用戶組的組名.文件名是以空格分開的要改變屬組的文件列表,支持通配符.如果用戶不是該文件的屬主或超級用戶,則不能改變該文件的組.
   該命令的各選項含義為:
   - R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組.
   例1:$ chgrp - R book /opt/local /book
   改變/opt/local /book/及其子目錄下的所有文件的屬組為book.
86 chmod 命令
chmod命令是非常重要的,用於改變文件或目錄的訪問許可權.用戶用它控制文件或目錄的訪問許可權.
該命令有兩種用法.一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法.
1. 文字設定法
chmod [who] [ | - | =] [mode] 文件名?
   命令中各選項的含義為:
   操作對象who可是下述字母中的任一個或者它們的組合:
   u 表示“用戶(user)”,即文件或目錄的所有者.
   g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶.
   o 表示“其他(others)用戶”.
   a 表示“所有(all)用戶”.它是系統默認值.
   操作符號可以是:
   添加某個許可權.
   - 取消某個許可權.
   = 賦予給定許可權並取消其他所有許可權(如果有的話).
   設置mode所表示的許可權可用下述字母的任意組合:
   r 可讀.
   w 可寫.
   x 可執行.
   X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性.


   s 在文件執行時把進程的屬主或組ID置為該文件的文件屬主.方式“u+s”設置文件的用戶ID位,“g+s”設置組ID位.
   t 保存程序的文本到交換設備上.
   u 與文件屬主擁有一樣的許可權.
   g 與和文件屬主同組的用戶擁有一樣的許可權.
   o 與其他用戶擁有一樣的許可權.
   文件名:以空格分開的要改變許可權的文件列表,支持通配符.
   在一個命令行中可給出多個許可權方式,其間用逗號隔開.例如:chmod g r,o r example
   使同組和其他用戶對文件example 有讀許可權.
   2. 數字設定法
   我們必須了解用數字錶示的屬性的含義:0表示沒有許可權,1表示可執行許可權,2表示可寫許可權,4表示可讀許可權,然後將其相加.所以數字屬性的格式應為3個從0到7的八進位數,其順序是(u)(g)(o).
   例如,如果想讓某個文件的屬主有“讀/寫”二種許可權,需要把4(可讀) 2(可寫)=6(讀/寫).
   數字設定法的一般形式為:
   chmod [mode] 文件名?
   例子:
   (1)文字設定法:
   例1:$ chmod a x sort
   即設定文件sort的屬性為:
   文件屬主(u) 增加執行許可權
   與文件屬主同組用戶(g) 增加執行許可權
   其他用戶(o) 增加執行許可權
   例2:$ chmod ug w,o-x text
   即設定文件text的屬性為:
   文件屬主(u) 增加寫許可權
   與文件屬主同組用戶(g) 增加寫許可權
   其他用戶(o) 刪除執行許可權
   例3:$ chmod u s a.out
   假設執行chmod后a.out的許可權為(可以用ls – l a.out命令來看):


   –rws--x--x 1 inin users 7192 Nov 4 14:22 a.out
   並且這個執行文件要用到一個文本文件shiyan1.c,其文件存取許可權為“–rw-------”,即該文件只有其屬主具有讀寫許可權.
   當其他用戶執行a.out這個程序時,他的身份因這個程序暫時變成inin(由於chmod命令中使用了s選項),所以他就能夠讀取shiyan1.c這個文件(雖然這個文件被設定為其他人不具備任何許可權),這就是s的功能.
   因此,在整個系統中特別是root本身,最好不要過多的設置這種類型的文件(除非必要)這樣可以保障系統的安全,避免某些程序的bug而使系統遭到入侵.
   例4:$ chmod a–x mm.txt
   $ chmod –x mm.txt
   $ chmod ugo–x mm.txt
   以上這三個命令都是將文件mm.txt的執行許可權刪除,它設定的對象為所有使用者.
   (2)數字設定法:
   例1: $ chmod 644 mm.txt
   $ ls –l
   即設定文件mm.txt的屬性為:
   -rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt
   文件屬主(u)inin 擁有讀、寫許可權
   與文件屬主同組人用戶(g) 擁有讀許可權
   其他人(o) 擁有讀許可權
   例2: $ chmod 750 wch.txt
   $ ls –l
   -rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt
   即設定wchtxt這個文件的屬性為:
   文件主本人(u)inin 可讀/可寫/可執行權
   與文件主同組人(g) 可讀/可執行權
   其他人(o) 沒有任何許可權
用chmod設置uid
$chmod 4766 file1
-rwsrw-rw-1 inin users 44137 Nov 12 9:22 wchtxt
文件主加上S位
用chmod設置gid
$chmod 2766 file1
rwxrwsrw-1 inin users 44137 Nov 12 9:22 wchtxt


用chmod設置粘滯位(stick bit)
$chmod 1766 file1
rwxrw-rwT1 inin users 44137 Nov 12 9:22 wchtxt

87 chown 命令
   功能:更改某個文件或目錄的屬主和屬組.這個命令也很常用.例如root用戶把自己的一個文件拷貝給用戶xu,為了讓用戶xu能夠存取這個文件,root用戶應該把這個文件的屬主設為xu,否則,用戶xu無法存取這個文件.
   語法:chown [選項] 用戶或組 文件
   說明:chown將指定文件的擁有者改為指定的用戶或組.用戶可以是用戶名或用戶ID.組可以是組名或組ID.文件是以空格分開的要改變許可權的文件列表,支持通配符.
   該命令的各選項含義如下:
   - R 遞歸式地改變指定目錄及其下的所有子目錄和文件的擁有者.
   - v 顯示chown命令所做的工作.
   例1:把文件shiyan.c的所有者改為wang.
   $ chown wang shiyan.c
   例2:把目錄/his及其下的所有文件和子目錄的屬主改成wang,屬組改成users.
   $ chown - R wang.users /his
88 cut命令
cut一般格式為:
cut [options] file1 file2
下面介紹其可用選項:
-c list 指定剪切字元數.
-f field 指定剪切域數.
-d 指定與空格和tab鍵不同的域分隔符.
- c用來指定剪切範圍,如下所示:
- c 1,5-7 剪切第1個字元,然後是第5到第7個字元.
-c1-50 剪切前5 0個字元.
-f 格式與- c相同.
-f 1,10-12 剪切第1域,第10域到第12域.
使用域分隔符
文件中使用冒號“:”為域分隔符,故可用- d選項指定冒號,如- d:.如果有意觀察第3域,
可以使用- f 3.要抽取ID域.可使用命令如下:cut –d: -f3 pers
剪切指定域


cut命令中剪切各域需用逗號分隔,如剪切域1和3,即名字和ID號,可以使用:cut –d:f1,3 pers
要從文件/etc/passwd中剪切註冊名及預設根目錄,需抽取域1和域6:
cut –d:f1,6 /etc/passwd
88 Diff命令
該命令的功能為逐行比較兩個文本文件,列出其不同之處.它比comm命令完成更複雜的檢查.它對給出的文件進行系統的檢查,並顯示出兩個文件中所有不同的行,不要求事先對文件進行排序.
  語法:diff [選項] file1 file2
  說明:該命令告訴用戶,為了使兩個文件file1和file2一致,需要修改它們的哪些行.如果用“- ”表示file1或fiie2,則表示標準輸入.如果file1或file2是目錄,那麼diff將使用該目錄中的同名文件進行比較.例如:把目錄/usr/xu 中名為mine的文件與當前目錄中的mine文件進行比較: diff /usr/xu mine
以“<”打頭的行屬於第一個文件,以“>”打頭的行屬於第二個文件.diff能區別塊和字元設備文件以及FIFO(管道文件),不會把它們與普通文件進行比較.
   如果file1和file2都是目錄,則diff會產生很多信息.如果一個目錄中只有一個文件,則產生一條信息,指出該目錄路徑名和其中的文件名.
  diff各選項的含義如下:
   - b 忽略行尾的空格,而字元串中的一個或多個空格符都視為相等.
   - c 採用上下文輸出格式(提供三行上下文).
   - C n 採用上下文輸出格式(提供n行上下文).
   - e 產生一個合法的ed腳本作為輸出.
- r 當file1和file2是目錄時,遞歸作用到各文件和目錄上.
  文件m1.c和m2.c的比較:
  $ diff m1.c m2.c
89 find命令
功能:在目錄結構中搜索文件,並執行指定的操作.此命令提供了相當多的查找條件,功能很強大.


語法:find 起始目錄 尋找條件 操作
說明:find命令從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件並對之採取相關的操作.
該命令提供的尋找條件可以是一個用邏輯運算符not、and、or組成的複合條件.邏輯運算符and、or、not的含義為:
(1)and:邏輯與,在命令中用“-a”表示,是系統預設的選項,表示只有當所給的條件都滿足時,尋找條件才算滿足.例如:
$ find –name ’tmp’ –xtype c -user ’inin’
該命令尋找三個給定條件都滿足的所有文件.
(2)or:邏輯或,在命令中用“-o”表示.該運算符表示只要所給的條件中有一個滿足時,尋找條件就算滿足.例如:
$ find –name ’tmp’ –o –name ’mina*’
該命令查詢文件名為’tmp’或是匹配’mina*’的所有文件.
(3)not:邏輯非,在命令中用“!”表示.該運算符表示查找不滿足所給條件的文件.例如:
$ find ! –name ’tmp’
該命令查詢文件名不是’tmp’的所有文件.
需要說明的是:當使用很多的邏輯選項時,可以用括弧把這些選項括起來.為了避免Shell本身對括弧引起誤解,在話號前需要加轉義字元“\”來去除括弧的意義.
例:$ find \(–name ’tmp’ –xtype c -user ’inin’ \)
 
尋找條件有以下選項:
,下列各個選項中的n值可以有三種輸入方式,假設n為20,則:
20 表示20以後(21,22,23等)
-20 表示20以前(19,18,17等)
20 表示正好是20
1. 以名稱和文件屬性查找.
- name ’字串’ 查找文件名匹配所給字串的所有文件,字串內可用通配符*、?、[ ].


- lname ’字串’ 查找文件名匹配所給字串的所有符號鏈接文件,字串內可用通配符*、?、[ ].
-gid n 查找屬於ID號為n的用戶組的所有文件.
-uid n 查找屬於ID號為n的用戶的所有文件.
-group ’字串’ 查找屬於用戶組名為所給字串的所有的文件.
-user ’字串’ 查找屬於用戶名為所給字串的所有的文件.
-empty 查找大小為0的目錄或文件.
-path ’字串’ 查找路徑名匹配所給字串的所有文件,字串內可用通配符*、?、[ ].
-perm 許可權 查找具有指定許可權的文件和目錄,許可權的表示可以如711,644.
-size n[bckw] 查找指定文件大小的文件,n後面的字元表示單位,預設為b,代表512位元組的塊.
-type x 查找類型為x的文件,x為下列字元之一:
b 塊設備文件 c 字元設備文件
d 目錄文件 p 命名管道(FIFO)
f 普通文件 l 符號鏈接文件(symbolic links)
s socket文件 -xtype x 與-type基本相同,但只查找符號鏈接文件.
2. 以時間為條件查找
- amin n 查找n分鐘以前被訪問過的所有文件.
- atime n 查找n天以前被訪問過的所有文件.
- cmin n 查找n分鐘以前文件狀態被修改過的所有文件.
- ctime n 查找n天以前文件狀態被修改過的所有文件.
- mmin n 查找n分鐘以前文件內容被修改過的所有文件.
- mtime n 查找n天以前文件內容被修改過的所有文件.
3. 可執行的操作
- exec 命令名稱 {} 對符合條件的文件執行所給的Linux 命令,而不詢問用戶是否需要執行該命令.{}表示命令的參數即為所找到的文件;命令的末尾必須以“ \;”結束.
- ok 命令名稱 { } 對符合條件的文件執行所給的Linux 命令,與exec不同的是,它會詢問用戶是否需要執行該命令.


- ls 詳細列出所找到的所有文件.
- fprintf 文件名 將找到的文件名寫入指定文件.
- print 在標準輸出設備上顯示查找出的文件名.
- printf 格式 格式的寫法請參考有關C語言的書.
例1:查找當前目錄中所有以main開頭的文件,並顯示這些文件的內容.$ find . - name ‘main*’ - exec more {} \;
例2:刪除當前目錄下所有一周之內沒有被訪問過的a .out或*.o文件.
$ find . \(- name a.out - o - name ‘*.o’\)\
> - atime 7 - exec rm {} \; 
說明如下:
命令中的“.”表示當前目錄,此時find將從當前目錄開始,逐個在其子目錄中查找滿足後面指定條件的文件.\(和\)表示括弧(),其中的“\”稱為轉義符.之所以這樣寫是由於對Shell而言,(和)另有不同的含義,而不是這裡的用於組合條件的用途.“- name a.out”是指要查找名為a.out的文件;“- name ‘*.o’”是指要查找所有名字以 .o結尾的文件.這兩個- name之間的- o表示邏輯或(or),即查找名字為a.out或名字以 .o結尾的文件,find在當前目錄及其子目錄下找到這佯的文件之後,再進行判斷,看其最後訪問時間是否在7天以前(條件-atime 7),若是,則對該文件執行命令rm(- exec rm{ }\;).其中{ }代表當前查到的符合條件的文件名,\;則是語法所要求的.上述命令中第一行的最後一個\是續行符.當命令太長而在一行寫不下時,可輸入一個\,之後系統將顯示一個>,指示用戶繼續輸入命令.

90 groupadd命令
對用戶分組進行操作的命令類似於對用戶進行操作的命令;但是,它們並不作用於單個的用戶,而是作用於/ e t c / g r o u p文件中列出的用戶分組.請注意改變用戶分組的屬性並不會自動改變用戶的屬性.舉例來說,如果你刪除了一個U I D為1 0 0的用戶分組,而某個用戶預設的分組正好是1 0 0,那麼這個預設的用戶分組數據項不會改變,反映不出這個用戶分組已經被刪除的事實.


g r o u p a d d命令把用戶分組添加到/ e t c / g r o u p文件中.它的命令行操作格式如下所示:
groupadd [ -g gid ] [ -r ] [ -f ] group
-r 在預設的情況下,redhat會自動搜索一個大於499的gid值,-r參數告訴groupadd命令正在添加的用戶組是一個系統分組,需要使用第一個小於499的可用數值.
[ root@ford /root ] # groupadd -g 800 research
91 groupdel命令
比u s e r d e l命令還直接, g r o u p d e l命令刪除在/ e t c / g r o u p文件中定義的用戶分組.這個命令唯一的使用方法是:
groupdel group
其中的group是準備刪除的用戶分組的名稱.舉例來說,如果打算刪除r e s e a r c h分組,需要發出下面的命令:
[ root@ford /root ] # groupdel research


92 groupmod命令
g r o u p m o d命令修改某個現有用戶分組的屬性.這個命令的參數如下所示:
groupmod -g gid -n group-name group
其中的- g參數允許改變用戶分組的G I D值,- n參數允許你給用戶分組起一個新名字,當然還需要把現有用戶分組的名稱作為最後一個參數.
舉例來說,如果用戶分組s u p e r m a n打算把它的名稱修改為b a t m a n,需要使用下面的命令
來進行設置:
[ root@ford /root ] # groupmod -n batman superman
93 ln命令
   該命令在文件之間創建鏈接.這種操作實際上是給系統中已有的某個文件指定另外一個可用於訪問它的名稱.對於這個新的文件名,我們可以為之指定不同的訪問許可權,以控制對信息的共享和安全性的問題.
   如果鏈接指向目錄,用戶就可以利用該鏈接直接進入被鏈接的目錄而不用打一大堆的路徑名.,即使我們刪除這個鏈接,也不會破壞原來的目錄.
   語法:ln [選項] 目標 [鏈接名]


   ln [選項] 目標 目錄
   鏈接有兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link).建立硬鏈接時,鏈接文件和被鏈接文件必須位於同一個文件系統中,並且不能建立指向目錄的硬鏈接.而對符號鏈接,則不存在這個問題.默認情況下,ln產生硬鏈接.
   在硬鏈接的情況下,參數中的“目標”被鏈接至[鏈接名].如果[鏈接名]是一個目錄名,系統將在該目錄之下建立一個或多個與“目標”同名的鏈接文件,鏈接文件和被鏈接文件的內容完全相同.如果[鏈接名]為一個文件,用戶將被告知該文件已存在且不進行鏈接.如果指定了多個“目標”參數,那麼最後一個參數必須為目錄.
   如果給ln命令加上- s選項,則建立符號鏈接.如果[鏈接名]已經存在但不是目錄,將不做鏈接.[鏈接名]可以是任何一個文件名(可包含路徑),也可以是一個目錄,並且允許它與“目標”不在同一個文件系統中.如果[鏈接名]是一個已經存在的目錄,系統將在該目錄下建立一個或多個與“目標”同名的文件,此新建的文件實際上是指向原“目標”的符號鏈接文件.
-f : 鏈結時先將與 dist 同檔名的檔案刪除
-d : 允許系統管理者硬鏈結自己的目錄
-i : 在刪除與 dist 同檔名的檔案時先進行詢問
-n : 在進行軟連結時,將 dist 視為一般的檔案
-s : 進行軟鏈(symboliclink)
-v : 在連結之前顯示其檔名
-b : 將在鏈結時會被覆寫或刪除的檔案進行備份

94 runlevel命令
查看當前的運行級別該命令不能直接使用必需在/sbin下使用
#/sbin/runlevel或 # cd /sbin #runlevel
95 touch命令
參數:
a 改變檔案的讀取時間記錄.


m 改變檔案的修改時間記錄.
c 假如目的檔案不存在,不會建立新的檔案.與 --no-create 的效果一樣.
f 不使用,是為了與其他 unix 系統的相容性而保留.
r 使用參考檔的時間記錄,與 --file 的效果一樣.
d 設定時間與日期,可以使用各種不同的格式.
t 設定檔案的時間記錄,格式與 date 指令相同.
--no-create 不會建立新檔案.
--help 列出指令格式.
--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
95 umask命令
umask設置用戶文件和目錄的文件創建預設屏蔽值,若將此命令放入. profile文件,就可控制該用戶後續所建文件的存取許可.umask命令與chmod命令的作用正好相反,它告訴系統在創建文件時不給予什麼存取許可.umask命令允許你設定文件創建時的預設模式,對應每一類用戶(文件屬主、同組用戶、其他用戶)存在一個相應的umask值中的數字.對於文件來說,這一數字的最大值分別是6.系統不允許你在創建一個文本文件時就賦予它執行許可權,必須在創建後用chmod命令增加這一許可權.目錄則允許設置執行許可權,這樣針對目錄來說, umask中各個數字最大可以到7.


該命令的一般形式為:
umask nnn
其中n n n為umask置000-777.
讓我們來看一些例子.
計算出你的umask值:
可以有幾種計算umask值的方法,通過設置umask值,可以為新創建的文件和目錄設置預設許可權.表列出了與許可權位相對應的umask值.
在計算umask值時,可以針對各類用戶分別在這張表中按照所需要的文件/目錄創建預設
許可權查找對應的umask值.
例如,umask值002 所對應的文件和目錄創建預設許可權分別為6 6 4和7 7 5.
如果想要改變umask值,只要使用umask命令設置一個新的值即可:
umask 002
確認一下系統是否已經接受了新的umask值:umask
96 userdel命令
u s e r d e l命令實現的操作正好與u s e r a d d命令相反—它刪除現有的用戶.這個命令只有一個可選參數和一個必要參數:
userdel [ -r ] username
在執行這個命令的時候,如果只指定了用戶的登錄名—比如說userdel sshah,那麼在
/etc/passwd文件和/etc/shadow文件中的有關數據項以及/etc/group文件中的關聯數據項都將被自動刪除.如果使用了可選參數—比如說userdel -r sshah,那麼在其登錄子目錄中歸這個用戶所有的全部文件也將被刪除.
97 useradd命令
正如其名稱的含義, useradd命令允許你一次把一個用戶添加到系統中去.全部參數都必須在命令行上定義好.下面是這個工具程序的使用方法:
如下所示的一個最簡單的命令
[ root@ford /root ] # useradd sshah
來添加一個登錄名為s s h a h的用戶.任何沒有定義的參數都使用了預設值(要想查看這些參數的預設值,請執行useradd -D命令;馬上我們就將討論到如何改變這些預設值).表5 - 1列出了這個命令的參數和對它們的說明.


舉例來說,如果打算建立這樣一個用戶:他的姓名是H. D. Core ,同時屬於a d m i n和support用戶分組(預設的用戶分組是a d m i n)、喜歡使用Turbo C Shell並希望使用登錄名“hdc”,
請使用下面這樣的命令:
[ root@fordd /root ] # useradd -c " H. D. core " -g admin -G sopport -s
用戶設置值 參數 數據格式
GROUP -g 來自/etc/group文件的分組編碼
HOME -d 該賬戶上一級用戶目錄的完整路徑
INACTIVE -f 天數
EXPIRE -e 天數
SHELL -s 到shell的完整路徑
SKEL -k 到框架文件的完整路徑
舉例來說,如果想實現下面幾個設置:
• 設置口令字失效期為9 0天.
• 如果失效口令字在3 0天內沒有修改,就凍結該帳戶.
• 把預設的s h e l l改為/ b i n / k s h.
就需要使用“adduser -e90 -f30 -s/bin/ksh”命令.
98 usermod命令
usermod命令允許你修改系統中現有的某個用戶,它的工作原理與useradd命令差不多.完整的命令行使用方法如下所示:



使用這個命令的時候指定的每一個參數都將改變這個用戶的某個屬性.這個命令的參數
除了- l之外,其餘的都與useradd命令中對應的參數作用相同.
- l參數允許你改變用戶的登錄名,它和- u參數在使用中必須引起足夠的重視.在修改用戶的登錄名或者U I D的時候,必須確認該用戶當時沒有登錄上機或者運行任何進程.如果在用戶已經登錄上機或者正在運行進程的時候修改這些信息會引起不可預見的結果.
下面是一個使用u s e r m o d命令對用戶h d c進行修改的例子,我們打算把她的姓名域由“ H.D.H”修改為“ H.D.Core”.
[ root@ford/root ] # usermod -c " H. D. Core " hdc


99 wc命令
wc命令的功能為統計指定文件中的位元組數、字數、行數, 並將統計結果顯示輸出.
語法:wc [選項] 文件…
說明:該命令統計給定文件中的位元組數、字數、行數.如果沒有給出文件名,則從標準輸入讀取.wc同時也給出所有指定文件的總統計數.字是由空格字元區分開的最大字元串.
  該命令各選項含義如下:
  - c 統計位元組數.
   - l 統計行數.
   - w 統計字數.
這些選項可以組合使用.輸出列的順序和數目不受選項的順序和數目的影響.總是按下述順序顯示並且每項最多一列.
  行數、字數、位元組數、文件名
  如果命令行中沒有文件名,則輸出中不出現文件名.
  例如:
  $ wc - lcw file1 file2
  4 33 file1
  7 52 file2
  11 11 85 total
  省略任選項-lcw,wc命令的執行結果與上面一樣.
100 Who命令
使用方式 : who - [husfV] [user]
說明 : 顯示系統中有那些使用者正在上面,顯示的資料包含了使用者 ID,使用的終端機,從那邊連上來的,上線時間,獃滯時間,CPU 使用量,動作等等.
-h : 不要顯示標題列
-u : 不要顯示使用者的動作/工作
-s : 使用簡短的格式來顯示
-f : 不要顯示使用者的上線位置
-V : 顯示程式版本
101 Tail和head命令
假定您想只處理文件的一部分,譬如頭幾行或後幾行,那您該怎麼做呢?請使用 head(它將頭 10 行發送至標準輸出)或 tail(它將后 10 行發送至標準輸出).
您可以通過使用 -n 選項改變這些命令發送至其標準輸出的行數(當然,輸出結果將隨 XF86Config 文件的內容而不同):


清單 1. 將 XF86Config 中選定行數的內容發送至標準輸出
$ head -n 4 /etc/X11/XF86Config 輸出前四行.默認的情況下輸出的是前十行
$ tail -n 4 /etc/X11/XF86Config 輸出后四行.默認的情況下輸出的是后十行
如果您想讓 head 或 tail 以位元組而不是以行為單位,那該怎麼辦呢?您可以用 -c 選項代替 -n 選項.因此,要顯示前 200 個字元,請使用 head -c 200 file,或者使用 tail -c 200 file 來顯示后 200 個字元.如果數字後面跟有 b(表示塊(block)),那麼這個數字將被乘以 512.類似地,跟有 k(表示千位元組(kilobyte))表示用 1024 去乘給定的數字,而跟有 m(表示兆位元組(megabyte))表示用 1048576 位元組去乘給定的數字.
請記住,head file1 file2 file3 和 cat file1 file2 file3 | head 之間有重大差別.前者將列印每個文件指定行數的內容,不同文件的內容之間用頭信息隔開,頭信息以 ==> 後跟文件名開頭.後者將列印由 cat 命令后所列文件組成的輸入流中指定行數的內容,但將把輸入流作為單個文件對待.可以使用 -q(表示靜默(quiet))選項關閉文件名頭信息.與 -q 相反的是 -v(表示詳列(verbose)).
假如您要處理的文件在處理期間一直在發生變化(比如,當您讓 head 或 tail 讀取來自正在被另一個命令寫入的文件的數據時,就是這種情況),請使用 -f 選項讓 tail 持續讀取來自指定文件的數據並將這些數據發送至 tail 自己的標準輸出中.通過管道發送數據時該選項會被忽略.因此,cat file | tail -f 將不會得到所期望的結果,但 tail -f file 則可以.
(如果 tail 正在讀取的文件不止一個,那麼各行內容之間將用標準頭信息隔開,以指明它們來自哪個文件,標準頭信息以 ==> 開頭.)
這個選項用於監視系統日誌再合適不過,譬如,在單獨的終端窗口(或單獨的控制台)中執行的 tail -f /var/log/access.log 將持續列印每次點擊后新添加的 Apache 訪問日誌條目,一直到您用 Ctrl-C 停止它為止.


通過組合使用 head 和 tail,可以從文件的中間部分讀取給定長度的一塊數據!下面說明如何做到:假定您想從文件開頭算起第 1000 位元組處開始讀取一塊 789 位元組的數據.可以使用 cat file | head -c 1788 | tail -c 789 來解決這一問題.
使用 tac 命令逆序排序文件
如果您想對文件中的各行進行逆序排序,該怎麼做呢?這就要用到 tac 命令.(請注tac 由 cat 逆序拼寫而成.)該命令對所列出的文件中的各行或各段進行逆序排序.
該命令不能逆序排序各文件的順序 — 這個任務您得自己做,以逆向順序在 tac 命令后列出各文件即可.作為說明 tac 的工作原理的示例,請在您的主目錄中對一些文件使用 ls -l | tail 和 ls -l | tail | tac,比較其結果.
附錄:
FSCK工具
使用fsck程序
fsck工具程序的名字是File System ChecK(文件系統檢查)的縮寫,它被用來診斷和修復在日常操作中可能已經損壞的文件系統.系統發生崩潰的時候,一般都來不及把內部緩衝區中的全部數據轉存到磁碟上,所以類似的修復通常是十分必要的(雖然這個工具程序的名字
與系統發生崩潰后經常聽到的一個說法驚人地相似,但是這個工具程序成為系統恢復過程的一個部分純屬巧合).
通常,系統在引導過程中如果發現有某個分區沒有正常地卸載,就會自動運行fsck工具程序(和Windows運行scandisk程序的意思幾乎一樣).Linux操作系統盡了極大的努力來自動修復它所遇到的問題,在大多數情況下都能把自己照顧得很好.而ext2文件系統強壯的本質對這些情況也有幫助.不管怎麼說,你可能會看到下面這樣的提示:
*** An error occurred during the file system check .
*** Dropping you to a shell ; the system will reboot


*** when you leave the shell .
在這個時候,就需要你手動運行fsck並自己回答程序的提問.
如果確實發現某個文件系統的操作行為與其正常情況不一樣( log日誌是這類情況的最佳提示),你可能會在一個運轉著的系統上運行fsck程序.唯一的不足之處是:為了執行這個程序,需要診斷的文件系統必須先卸載下來.如果你選擇了這個方法,完成操作后別忘記把文件系統再掛裝上去.(注意fsck並不是ext2文件系統修復工具合適的名字;它實際上只是一個打包器.fsck打包器嘗試確定哪一個文件系統需要修復,然後再調用適當的修復工具程序,把我們傳遞給fsck的參數都傳遞過去.對ext2文件系統來說,真正的工具叫做e2fsck.當發生系統崩潰的時候,與其依靠其他應用程序替你調用e2fsck,還不如自己直接來調用它.
1. e2fsck的可用參數
表8 - 4中列出的參數都可以供e2fsck使用.比如說,如果想在/ d e v / h d a 3文件系統上運行e2fsck,需要輸入下面的命令:
[ root@ford /root ] # e2fsck /dev/hda3
強制進行文件系統檢查並對出現的全部提示都回答“Yes”,需要輸入下面的命令:
[ root@ford ] # e2fsck -f -y /dev/hda3
2. 出現錯誤信息怎麼辦?
,要放鬆.fsck檢查出來的問題很少是它自己不能糾正的.即使它要求人的干預,告訴fsck按照它預設的操作建議通常也就足夠了.很少出現使用e2fsck檢查一遍之後還有問題沒有解決的情況.
在很少出現需要第二遍檢查的情況下,絕對不應該再出現更多的問題了.如果還是有許多問題,那就有可能遇到了硬體故障.記住先從明顯的地方開始:檢查電源是否正常、線纜是否接好.運轉S C S I系統的人們需要檢查自己是否使用了正確的終端頭,接線是否過長、S C S I設備的I D編號有沒有衝突、電線的質量是否合格等等( S C S I特別挑剔接線的質量).


利用fsck檢查文件系統的完整性
文件系統是個非常複雜的東西,容易出錯.一個文件系統的正確性和有效性是可以檢查出來的,具體做法是利用fsck命令.對於它找到的任何一個小錯誤,它都可以對其進行修復,並提醒用戶文件系統是否存在不可修復的錯誤.所幸的是,對實施文件系統所用代碼進行的調試是相當有效的,所有文件系統本身幾乎不存在錯誤,如果有的話,通常都是由於電源故障、硬體故障或操作錯誤引起的;比方說沒有正確關閉系統.許多系統都被設置為啟動時自動運行fsck,所以在使用系統之前,需要偵測錯誤(希望一切正常).使用損壞了的文件系統將引發惡果:如果數據結構一團糟,使用這個文件系統將使其結構更為惡化,導致更多數據的丟失.自動檢查只適合啟動時自動裝入的文件系統.利用fsck手動檢查其他文件系統,比如軟盤.如果fsck發現了不能修復的錯誤,你就需要深入了解文件系統的工作原理,以及特殊情況下文件系統損傷的類型或如何備份.fsck只可運行於未裝入的文件系統上,絕不能運行於已裝入的文件系統上(啟動期間只讀裝入的r o o t除外).這是它訪問的是原磁碟,因而可以在操作系統不注意的情況下,修改文件系統.如果操作系統注意到了它,情況就難辦了.
磁碟管理部分的命令
mkfs命令
mkfs -t 文件系統類型 /dev/設備名
如要把/dev/sda1格式為ext2格式,使用以下命令:
mkfs -t ext2 /dev/sda1
MOUNT命令
-a 是把/etc/fstab 文件中列出的文件系統都掛載上.這個命令的格式如下所示:
mount [ options ] device directory
下面的mount命令把/dev/hda3分區以只讀屬性掛裝到/usr子目錄上:
[ root@ford /root ] # mount -o ro /dev/hda3 /usr


2. 卸載文件系統
如果想卸載一個文件系統,請使用umount命令.下面是這個命令的格式:
umount [ -f ] directory
其中的directory是準備卸載的子目錄名.如下所示:
[ root@ford /root ] # umount /usr
把掛裝在/usr子目錄位置上的分區卸載下來.
當文件系統在使用中umount命令有一個不足之處:如果文件系統正在使用中(也就是說有人在那個分區上打開了文件),就無法把這個文件系統卸載下來.有三種方法可以用來解決這個問題:
• 使用lsof程序(可以從站點ftp://vic.cc.purdue.edu/pub/tools/unix/lsof下載)或者f u s e r程序檢查有哪些進程打開了文件,終止那些進程的運行或者讓進程的所有者停止操作.如果選擇終止那些進程的運行,一定要明白自己在做些什麼(我的意思是別為這個給自己招來麻煩).
• 使用umount命令和- f參數強制執行卸載操作.任何在這個分區上打開的進程都將被掛起來,可能會造成數據丟失.
• 最安全和適當的辦法是把系統調整為單用戶模式,然後再卸載這個文件系統.在現實生活里,你可能不會總有這個奢侈之舉.
特殊字元及其含義
$0: 當前 shell 名
$?: 上一條命令執行后返回的值
$$: 當前 shell 的進程號
$!: 上一個子進程的進程號
$n: 位置參數值, n 表示位置
$@, $* : 所有參數值

本文出自 「資料小結」 博客,謝絕轉載!


[火星人 ] linux基礎知識整理已經有673次圍觀

http://coctec.com/docs/linux/show-post-47026.html