1. 程式人生 > >linux常用命令(2)

linux常用命令(2)

Linux基本命令(2)

1) 輸出重定向命令:>

Linux允許將命令執行結果重定向到一個檔案,本應顯示在終端上的內容儲存到指定檔案中。

如:ls > test.txt ( test.txt 如果不存在,則建立,存在則覆蓋其內容 )
如:echo 111 > test.txt ( test.txt 如果不存在,則建立,存在則覆蓋其內容 )
如:tree > test.txt ( test.txt 如果不存在,則建立,存在則覆蓋其內容 )

注意: >輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到檔案的尾部。

2) 檢視或者合併檔案內容:cat

cat haha.txt  (檢視當前路徑下檔案的內容)
cat /etc/samba/smb.conf  (檢視絕對路徑下的檔案內容)
cat test1.txt test2.txt > test3.txt  (把兩個檔案的內容重定向到test3.txt中)

3) 分屏顯示:more

檢視內容時,在資訊過長無法在一屏上顯示時,會出現快速滾屏,使得使用者無法看清檔案的內容,此時可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。

more feiji.py

4) 管道:|

管道:一個命令的輸出可以通過管道做為另一個命令的輸入。

ls -lh | more

管道我們可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這裡“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。

5) 建立連結檔案:ln

Linux連結檔案類似於Windows下的快捷方式。

連結檔案分為軟連結和硬連結。 軟連結

:軟連結不佔用磁碟空間,原始檔刪除則軟連結失效。 硬連結:硬連結只能連結普通檔案,不能連結目錄。

  • 使用格式: ln 原始檔 連結檔案 ln -s 原始檔 連結檔案

    ln haha.txt haha_hardlink.txt 硬連結
    ln -s haha.txt haha_softlink.txt 軟連線
    
  • 如果沒有-s選項代表建立一個硬連結檔案,兩個檔案佔用相同大小的硬碟空間,即使刪除了原始檔,連結檔案還是存在,所以-s選項是更常見的形式。

  • 注意:如果軟連結檔案和原始檔不在同一個目錄,原始檔要使用絕對路徑,不能使用相對路徑。

6) 文字搜尋:grep

Linux系統中grep命令是一種強大的文字搜尋工具,grep允許對文字檔案進行模式查詢。如果找到匹配模式, grep列印包含模式的所有行。

  • grep一般格式為: grep [-選項] ‘搜尋內容串’ 檔名 在grep命令中輸入字串引數時,最好用引號或雙引號括起來。

例如:

grep 'a' 1.txt
  • 常用選項說明: -v 顯示不包含匹配文字的所有行(相當於求反) -n 顯示匹配行及行號 -i 忽略大小寫 grep搜尋內容串可以是正則表示式。

    正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。

  • grep常用正則表示式:

^a		行首,搜尋以 a 開頭的行;grep -n '^a' 1.txt
ke$		行尾,搜尋以 ke 結束的行;grep -n 'ke$' 1.txt
[Ss]igna[Ll]	匹配 [] 裡中一系列字元中的一個;搜尋匹配單詞signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt
.		(點)匹配一個非換行符的字元;匹配 e 和 e 之間有任意一個字元,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt

7) 查詢檔案:find

find命令功能非常強大,通常用來在特定的目錄下搜尋符合條件的檔案,也可以用來搜尋特定使用者屬主的檔案。

  • 常用用法:
find ./ -name test.sh	查詢當前目錄下所有名為test.sh的檔案
find ./ -name '*.sh'	查詢當前目錄下所有後綴為.sh的檔案
find ./ -name "[A-Z]*"	查詢當前目錄下所有以大寫字母開頭的檔案
find /tmp -size 2M	查詢在/tmp 目錄下等於2M的檔案
find /tmp -size +2M	查詢在/tmp 目錄下大於2M的檔案
find /tmp -size -2M	查詢在/tmp 目錄下小於2M的檔案
find ./ -size +4k -size -5M	查詢當前目錄下大於4k,小於5M的檔案
find ./ -perm 777	查詢當前目錄下許可權為 777 的檔案或目錄

8) 歸檔管理:tar

計算機中的資料經常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列檔案歸檔到一個大檔案中,也可以把檔案檔案解開以恢復資料。

  • tar使用格式: tar [引數] 打包檔名 檔案
tar -cvf test.tar *  建立打包檔案
tar -xvf test.tar    解開檔案檔案

tar命令很特殊,其引數前面可以使用“-”,也可以不使用。

  • 常用引數: -c 生成檔案檔案,建立打包檔案 -v 列出歸檔解檔的詳細過程,顯示進度 -f 指定檔案檔名稱,f後面一定是.tar檔案,所以必須放選項最後 -t 列出檔案中包含的檔案 -x 解開檔案檔案 注意:除了f需要放在引數的最後,其它引數的順序任意。

9) 檔案壓縮解壓:gzip

tar與gzip命令結合使用實現檔案打包、壓縮。 tar只負責打包檔案,但不壓縮,用gzip壓縮tar打包後的檔案,其副檔名一般用xxxx.tar.gz。

  • gzip使用格式如下: gzip [選項] 被壓縮檔案
  • 常用選項: -d 解壓 -r 壓縮所有子目錄

tar這個命令並沒有壓縮的功能,它只是一個打包的命令,但是在tar命令中增加一個選項(-z)可以呼叫gzip實現了一個壓縮的功能,實行一個先打包後壓縮的過程。

  • 壓縮用法:
tar cvzf 壓縮包包名 檔案1 檔案2 ...
  • -z :指定壓縮包的格式為:file.tar.gz

  • 解壓用法:

tar zxvf 壓縮包包名
  • 解壓到指定目錄:-C (大寫字母“C”)
tar -zcvf test.tar.gz -C niu/

10) 檔案壓縮解壓:bzip2

tar與bzip2命令結合使用實現檔案打包、壓縮(用法和gzip一樣)。

tar只負責打包檔案,但不壓縮,用bzip2壓縮tar打包後的檔案,其副檔名一般用xxxx.tar.bz2。

在tar命令中增加一個選項(-j)可以呼叫bzip2實現了一個壓縮的功能,實行一個先打包後壓縮的過程。

壓縮用法: tar -**j**cvf 壓縮包包名 檔案...(tar jcvf bk.tar.bz2 *.c) 解壓用法: tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)

11) 檔案壓縮解壓:zip、unzip

通過zip壓縮檔案的目標檔案不需要指定副檔名,預設副檔名為zip。

壓縮檔案:zip [-r] 目標檔案(沒有副檔名) 原始檔 zip myzip * 壓縮所有檔案中myzip.zip檔案中 解壓檔案:unzip -d 解壓後目錄檔案 壓縮檔案 unzip -d ./test myzip.zip 解壓到test資料夾

12) 檢視命令位置:which

which ls   如果找到就顯示這個命令的路徑
which LSS  如果找到就顯示這個命令的路徑

13) 修改檔案許可權:chmod

chmod 修改檔案許可權有兩種使用格式:字母法與數字法。

13.1 字母法:chmod u/g/o/a +/-/= rwx 檔案

  • 常用選項 u user 表示該檔案的所有者 g group 表示與該檔案的所有者屬於同一組( group )者,即使用者組 o other 表示其他以外的人 a all 表示這三者皆是

  • [ ±= ] 含義 + 增加許可權 - 撤銷許可權 = 設定許可權

  • rwx 含義 r read 表示可讀取,對於一個目錄,如果沒有r許可權,那麼就意味著不能通過ls檢視這個目錄的內容。 w write 表示可寫入,對於一個目錄,如果沒有w許可權,那麼就意味著不能在目錄下建立新的檔案。 x excute 表示可執行,對於一個目錄,如果沒有x許可權,那麼就意味著不能通過cd進入這個目錄。

  • 使用示例: chmod u+x test.txt 給檔案擁有者新增執行許可權 chmod g-w test.txt 給同組者減去寫的許可權 chmod o+w test.txt 給其他人新增寫的許可權

  • 如果需要同時進行設定擁有者、同組者以及其他人的許可權,參考如下: chmod u=rw,g=x,o=r t1.txt

13.2 數字法:“rwx” 這些許可權也可以用數字來代替

  • 數字說明 r 讀取許可權,數字代號為 “4” w 寫入許可權,數字代號為 “2” x 執行許可權,數字代號為 “1”

  • 不具任何許可權,數字代號為 “0” 如執行:chmod u=rwx,g=rx,o=r filename 就等同於:chmod u=7(4+2+1),g=5(5+1),o=4 filename (不支援該語法) chmod 751 file(支援): 檔案所有者:讀、寫、執行許可權 同組使用者:讀、執行的許可權 其它使用者:執行的許可權

  • 注意:如果想遞迴所有目錄加上相同許可權,需要加上引數“ -R ”。 如: chmod 777 test/ -R 遞迴 test 目錄下所有檔案加 777 許可權

  • cp和find命令中都用到許可權!!!

14) 切換到管理員賬號

  • Ubuntu下切換到root的簡單命令:
:~$ whoami  # 檢視當前使用者 -> niubiqigai
:~$ sudo -s # 切換到root
:~# whoami  # 檢視當前使用者 -> root
  • $表示普通使用者。#表示root使用者

15) 設定使用者密碼:passwd

在Unix/Linux中,超級使用者可以使用passwd命令為普通使用者設定或修改使用者密碼。使用者也可以直接使用該命令來修改自己的密碼,而無需在命令後面使用使用者名稱。

:~$ cd /home  # 使用者在家目錄下
:/home$ ls
:/home$ sudo passwd z123  # 給使用者z123設定密碼,終端提示輸入新密碼並確認密碼

16) 退出登入賬戶: exit

  • 如果是圖形介面,退出當前終端;
  • 如果是使用ssh遠端登入,退出登陸賬戶;
  • 如果是切換後的登陸使用者,退出則返回上一個登陸賬號。

17) 檢視登入使用者:who(w-who-whoami)

who命令用於檢視當前所有登入系統的使用者資訊。

  • 常用選項: -q或–count 只顯示使用者的登入賬號和登入使用者的數量 -u或–heading 顯示列標題
  • 使用示例::~$ who -q

18) 關機重啟:reboot、shutdown、init

reboot			重新啟動作業系統
shutdown –r now		重新啟動作業系統,shutdown會給別的使用者提示
shutdown -h now		立刻關機,其中now相當於時間為0的狀態
shutdown -h 20:25	系統在今天的20:25 會關機
shutdown -h +10		系統再過十分鐘後自動關機
init number		0是關機 6是重啟