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 表示該檔案的所有者
ggroup 表示與該檔案的所有者屬於同一組( group )者,即使用者組
oother 表示其他以外的人
aall 表示這三者皆是
-
[ ±= ] 含義 +
增加許可權
-撤銷許可權
=設定許可權
-
rwx 含義 r
read 表示可讀取,對於一個目錄,如果沒有r許可權,那麼就意味著不能通過ls檢視這個目錄的內容。
wwrite 表示可寫入,對於一個目錄,如果沒有w許可權,那麼就意味著不能在目錄下建立新的檔案。
xexcute 表示可執行,對於一個目錄,如果沒有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是重啟