Linux 常用命令 學習筆記
1、建立目錄:
//建立目錄filetest
mkdir filetest
2、建立子目錄:
//建立子目錄filetestchild
mkdir -p filetest/filetestchild
3、切換工作目錄:
//切換到filetest 目錄
cd filetest
4、切換到使用者主目錄:
cd
5、列出某資料夾下面所有檔案包括子目錄得的檔案:
ls -la -r
6、建立空檔案:
//建立空檔案voidfile 可以先通過cd切換目錄 再建立檔案
touch voidfile
7、將字串寫入 檔案:
//將'aaa'寫入檔案voidfile
echo 'aaa' > voidfile
8、檢視檔案內容:
//讀取檔案voidfile中內容
cat voidfile
9、整個資料夾的檔案複製到另一個資料夾:
// A/B/目錄下所有的檔案複製到A1/B1/目錄下
cp -ri A/B/* A1/B1/
10、檔案重新命名:
//將檔案 aaa 更名為 bbb
mv aaa bbb
11、刪除檔案:
rm 檔名
12、在某目錄下查詢名包含“fi”的檔案:
find filetest/filetestchild -name '*fi*'
//語法
find [PATH] [option] [action]
引數:
- 與時間有關的引數:
-atime n :n 為數字,意義為在 n 天之前的『一天之內』被 access 過的檔案;
-ctime n :n 為數字,意義為在 n 天之前的『一天之內』被 change 過狀態的檔案;
-mtime n :n 為數字,意義為在 n 天之前的『一天之內』被 modification 過的檔案;
-newer file :file 為一個存在的檔案,意思是說,只要檔案比 file 還要新,就會被列出來~ - 與使用者或群組名稱有關的引數:
-uid n :n 為數字,這個數字是使用者的賬號 ID,亦即 UID ,這個 UID 是記錄在/etc/passwd 裡面與賬號名稱對應的數字。
-gid n :n 為數字,這個數字是群組名稱的 ID,亦即 GID,這個 GID 記錄在/etc/group
-user name :name 為使用者賬號名稱
-group name:name 為群組名稱
-nouser :尋找檔案的擁有者不存在 /etc/passwd 的人!
-nogroup :尋找檔案的擁有群組不存在於 /etc/group 的檔案!
當您自行安裝軟體時,很可能該軟體的屬性當中並沒有檔案擁有者,
這是可能的!在這個時候,就可以使用 -nouser 與 -nogroup 搜尋。 - 與檔案許可權及名稱有關的引數:
-name filename:搜尋檔名稱為 filename 的檔案;
-size [+-]SIZE:搜尋比 SIZE 還要大(+)或小(-)的檔案。這個 SIZE 的規格有:
c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB還要大的檔案,就是『 -size +50k 』
-type TYPE :搜尋檔案的型別為 TYPE 的,型別主要有:一般正規檔案 (f),裝置檔案 (b, c), 目錄 (d), 連結檔 (l), socket (s),及 FIFO (p) 等屬性。
-perm mode :搜尋檔案屬性『剛好等於』 mode 的檔案,這個 mode 為類似 chmod的屬性值,舉例來說, -rwsr-xr-x 的屬性為 4755 !
-perm -mode :搜尋檔案屬性『必須要全部囊括 mode 的屬性』的檔案,舉例來說,我們要搜尋 -rwxr–r– ,亦即 0744 的檔案,使用 -perm -0744,當一個檔案的屬性為 -rwsr-xr-x ,亦即 4755 時,也會被列出來,因為 -rwsr-xr-x 的屬性已經囊括了 -rwxr–r– 的屬性了。
-perm +mode :搜尋檔案屬性『包含任一 mode 的屬性』的檔案,舉例來說,我們搜尋-rwxr-xr-x ,亦即 -perm +755 時,但一個檔案屬性為 -rw——-也會被列出來,因為他有 -rw…. 的屬性存在! - 額外可進行的動作:
-exec command :command 為其它指令,-exec 後面可再接額外的指令來處理搜尋到的結果。
-print :將結果列印到螢幕上,這個動作是預設動作!
13、在某目錄下查詢名包含“fi”的檔案並顯示這些檔案的資訊:
find filetest/filetestchild -name '*fi*' -ls
14、統計指定檔案中的行數、單詞數、字元數:
//統計file1檔案中的行數、單詞數、字元數
wc filetest/filetestchild/file1
15、顯示當前工作目錄:
pwd
16、清屏:
clear
17、退出登入:
logout
18、切換使用者的命令
(su - 會重新讀取使用者環境相關配置檔案):
//切換到root使用者
su -
//切換到使用者jiankunking
su - jiankunking
19、立刻關機:
poweroff
//或者
shutdown -h now
20、新增組與使用者
(只有root使用者可以新增使用者):
//新增組
//600表示組ID,可以自己修改,不衝突即可
groupadd -g 600 groupname
//新增使用者
adduser 使用者名稱
//新建使用者並指定組
useradd -g groupname username
//改變檔案許可權number 是 1 2 4幾個數字的和 可以參考第30條
chmod number filename
//例如:給檔案授予任何人全部許可權
chmod 777 filename
21、新增使用者密碼:
passwd 使用者名稱
22、刪除使用者:
userdel 使用者名稱
23、檢視所有使用者:
cat /etc/passwd
24、init命令:
//關機
init 0
//重啟
init 6
25、刪除空目錄:
rmdir 目錄名
26、建立符號連結(類似於windows中的快捷方式):
//注意 是L不是i
ln 引數 原始檔或目錄 目標檔案或目錄
27、linux drwxr-xr-x :
第1位表示檔案型別。d是目錄檔案,l是連結檔案,-是普通檔案,p是管道
第2-4位表示這個檔案所有者擁有的許可權,r是讀(修改檔案許可權的時候用數字4表示),w是寫(修改檔案許可權的時候用數字2表示),x是執行(修改檔案許可權的時候用數字1表示)。
第5-7位表示和這個檔案所有者所在同一個組的使用者所具有的許可權。
第8-10位表示其他使用者所具有的許可權。
28、檢視檔案所有者:
ls -ahl 檔名或者資料夾名稱
29、shell的命令補全功能:
是指使用者輸入命令時,並不需要輸入完整的命令,而系統自動會找出最符合的名稱。這種功能可以節省經常輸入命令的時間。
直接輸入“mk”—-再按兩下“tab”鍵—–出現兩頭兩個字母為“mk”的所有命令。
cat f再按兩下“tab”鍵會出現開頭字母為“f”的所有檔案或目錄。
30、查閱歷史記錄 命令:
在linux下,我們有時可能希望知道或是使用最近執行的命令。history可能會幫上大忙。
1)history 5 此項說明會顯示最近使用的5個命令 。history 會顯示最近使用的所有命令都顯示出來。
2)!5 此項說明執行歷史編號為5的命令
3)!ls 此項說明執行最後一次以“ls”開頭的命令
31、顯示系統執行的程式
ps命令是Process Status的縮寫。ps命令能夠給出當前系統中程式的快照。它能捕獲系統在某一事件的程式狀態。可以不加任何引數。
//顯示當前終端的所有程式資訊
ps -a
//以使用者的格式顯示程式資訊
ps -u
//顯示後臺程式的執行引數
ps -x
//直接ps -aux就行這樣看的最全
ps -aux
欄位 | 說明 |
---|---|
PID | 程式識別號 |
TTY | 終端機號 |
TIME | 此程式消耗CPU時間 |
CMD | 正在執行的命令或者程式名 |
32、終止程式kill/killall
若是某個程式執行一半需要停止時,或是已消了很大的系統資源時,此時可以考慮停止該程式,使用kill命令來完成此項任務。
終止某個程式:
kill 程式號
//強制殺死
kill -9 程式號
killall:殺死同名的所有程式 (及該程式所開的子程式統統殺掉)
33、動態監控程式
top與ps命令相似.它們都用來顯示正在執行的程式,top與ps最大的不同之處,在於top在執行一段時間可以更新正在執行的程式
top
//指定系統狀態更新時間
//指定系統更新程式地時間是10秒
top -d 10
34、設定、檢視系統時間
顯示系統的時間:
date
檢視月曆:
//檢視2012年3月的月曆
cal 3 2012
檢視年曆:
//檢視2017的年曆
cal 2017
35、顯示網路統計資訊
netstat -[atunlp]
此命令用來顯示整個系統目前的網路情況,例如目前的連結,資料包傳遞資料,或是路由表內容,此命令直接輸入即可使用。
引數:
-a :將目前系統上所有的聯機、監聽、Socket 資料都列出來
-t :列出 tcp 網路封包的資料
-u :列出 udp 網路封包的資料
-n :不已程式的服務名稱,以埠號 (port number) 來顯示;
-l :列出目前正在網路監聽 (listen) 的服務;
-p :列出該網路服務的程式 PID
36、 檢測主機連線命令
ping 對方的ip地址
是一種網路檢測檢測工具,它主要用於簡稱遠端主機是否正常,或是兩部主機間的介質是否斷,網線是否脫落或網路卡故障。
37、顯示資料包經過歷程命令
traceroute [-nwig] IP
此命令可以直接輸入使用,用來檢測資料包在網路上傳輸的過程,從本機到遠端的主機完整路徑,幫助管理員解決問題。
引數:
-n :可以不必進行主機的名稱解析,單純用 IP ,速度較快!
-w :若對方主機在幾秒鐘內沒有回聲就宣告不治…預設是 5 秒
-i :用在比較複雜的環境,如果你的網路介面很多很複雜時,才會用到這個引數;
舉例來說,你有兩條 ADSL 可以連線到外部,那你的主機會有兩個 ppp,
你可以使用 -i 來選擇是 ppp0 還是 ppp1 啦!
-g :與 -i 的引數相仿,只是 -g 後面接的是 gateway 的 IP 就是了。
38、route
route
所謂路由是指將資料由來源網路送往目的地網路的操作,在大型網路中,路由是非常複雜的,因為資料包在抵達目的地時,可能經過的節點很多,路由表是儲存在路由器或一些其他連結設定上的窗體,其中記錄著了到指定目的地的網路路徑,以及這些路徑的相關數值
此命令可以直接輸入使用,來檢視本機路由情況
39、重啟
reboot
40、 管道符’|’(Enter鍵上方的那個豎線)
利用Linux所提供的管道符“|”將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。連續使用管道意味著第一個命令的輸出會作為第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推。
41、搜尋文字內容
grep '搜尋字串' filename
grep 指令用於查詢內容包含指定的範本樣式的檔案,如果發現某檔案的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。
42、linux幫助命令
//比如想知道grep命令的資訊
man grep
43、輸出重定向
grep '搜尋字串' filename > 要寫入的檔名
> 是定向輸出到檔案,如果檔案不存在,就建立檔案;如果檔案存在,就將其清空;一般我們備份清理日誌檔案的時候,就是這種方法:先備份日誌,再用>
,將日誌檔案清空(檔案大小變成0位元組);
> > 這個是將輸出內容追加到目標檔案中。如果檔案不存在,就建立檔案;如果檔案存在,則將新的內容追加到那個檔案的末尾,該檔案中的原有內容不受影響。
44、& 放在啟動引數後面表示設定此程式為後臺程式
命令格式:
command &
預設情況下,程式是前臺程式,這時就把Shell給佔據了,我們無法進行其他操作,對於那些沒有互動的程式,很多時候,我們希望將其在後臺啟動,可以在啟動引數的時候加一個’&’實現這個目的。
45、掛載與解除安裝
Liunx採用樹形的檔案管理系統,也就是在Linux系統中,可以說已經沒有分割槽的概念了。分割槽在Linux和其他裝置一樣都只是一個檔案。要使用一個分割槽必須把它載入到檔案系統中。
Linux中樹形的檔案結構,最頂層是/ 目錄。在安裝系統時,你必須選擇把一個主分割槽掛載在/ 目錄下,因為系統需要安裝在/掛載的主分割槽下。否則系統會提示你。這裡又一次提到了掛載。所以掛載就是把目錄和分割槽連線起來,和上面說的WINDOWS下的對映關係是一樣的。不同的是WINDOWS是把分割槽對映到一個碟符,而LINUX下是對映到一個目錄。 這是理解他們不同最重要的地方,而導致不同的是因為檔案系統結構不同。
上面說了Linux的檔案系統是樹形的,安裝的系統必須是在/ 目錄下,因為/目錄下掛載了一個主分割槽。/目錄是樹形的根,其他所有目錄都是他的子節點。 我們安裝系統的時候已經把分割槽1掛載到 / 目錄下了. 而這個時候沒有掛載其他任何分割槽,所以/ 目錄下的所有其他目錄都在這個分割槽下,也就是說,我在任何目錄下讀寫操作實際都是操作的這個1號分割槽。如果我們想使用其他分割槽,就必須把這個分割槽掛載到一個目錄下,這個目錄可以是已經存在的目錄,比如/home,也可以是我們自己建立的目錄,比如/oracle。當然有些目錄比如/lib, /dev, /etc, /usr這些都不能掛載其他分割槽,因為他們都存放著系統需要的檔案,一旦被掛載其他分割槽,那沒OS就無法找到所需的檔案,系統就會崩潰。比如我們把分割槽2掛載到/usr/X11目錄下時,系統就無法通過X11目錄找到分割槽1上的檔案,這個時候系統圖形介面就無法使用了. 雖然檔案還在硬碟上。前面說過,目錄 — 分割槽 是通過掛載吧他們聯絡起來。你更換了分割槽,也就破壞了聯絡,就無法在找到之前的檔案了。我們在看分割槽5和分割槽6,我們把它掛載到/home/ftp 和 /oracle目錄下,這個時候我們在操作這2個目錄是,就是操作對用的分割槽了.
以上掛載部分的理解摘自:Linux 掛載概念 理解
//掛載
mount -引數 裝置名 掛載點
//解除安裝
umount 裝置名
46、檢視磁碟空間使用情況
df -引數
例如:df -h
47、檢視某個目錄在哪個分割槽
df 目錄全路徑
48、檢視分割槽具體情況
fdisk -l
49、顯示所有的環境變數
//列出來所有的環境變數
env
- HOME : 代表使用者的家目錄。還記得我們可以使用 cd ~ 去到使用者的家目錄嗎?或者利用 cd就可以直接回到使用者家目錄了。那就是取用這個功能啦~ 有很多程式都可能會取用到這個變數的值喔!
- SHELL : 告知我們,目前這個環境使用的 SHELL 是哪支程式? 如果是 bash 的話,預設是/bin/bash 的啦!
- HISTSIZE : 這個與『歷史命令』有關,亦即是, 我們曾經下達過的指令可以被系統記錄下來,而記錄的『筆數』則是由這個值來設定的。
- ENV : 這個使用者所使用的個人化環境設定檔的讀取檔案。
- MAIL : 當我們使用 mail 這個指令在收信時,系統會去讀取的郵件信箱檔案 (mailbox)。
- PATH : 就是執行檔案搜尋的路徑啦~目錄與目錄中間以冒號(:)分隔, 由於檔案的搜尋是依序由 PATH 的變數內的目錄來查詢,所以,目錄的順序也是重要的喔。
- LANG : 這個重要!就是語系檔案囉~很多資料都會用到他, 舉例來說,當我們在啟動某些 perl的程式語言檔案時,他會主動的去分析語系資料檔案, 如果發現有他無法解析的編碼語系,可能會產生錯誤喔!一般來說,我們中文編碼通常是 zh_TW.Big5 或者是 zh_TW.UTF-8,這兩個編碼偏偏不容易被解譯出來,所以,有的時候,可能需要修訂一下語系資料。
- RANDOM : 這個玩意兒就是『隨機隨機數』的變數!目前大多數的 distributions 都會有隨機數產生器,那就是 /dev/random 這個檔案。
50、shell更改
//把我的shell改成chsh
chsh -s /bin/chsh
要讓修改的shell生效的話,需要使用者登出一下。
CentOS中的shell種類:
51、命令別名(alias)設定
//給命令ls -al起個別名:lm
alias lm='ls -al'
52、萬用字元:*
除了完整的字串之外, bash 還支援許多的萬用字元來幫助使用者查詢與指令下達。 舉例來說,想要知
道 /usr/X11R6/bin 底下有多少以 xt 為開頭的檔案嗎?使用:
ls -l /usr/X11R6/bin/xt*
就能夠知道囉
53、Bash shell 的內建命令: type
//[-tpa] 表示引數
type [-tpa] name
不加任何引數時,則 type 會顯示出那個 name 是外部指令還是 bash 內建的指令!
- -t :當加入 -t 引數時,type 會將 name 以底下這些字眼顯示出他的意義:
file :表示為外部指令;
alias :表示該指令為命令別名所設定的名稱;
builtin :表示該指令為 bash 內建的指令功能; - -p :如果後面接的 name 為指令時,會顯示完整檔名(外部指令)或顯示為內建指令;
- -a :會將由 PATH 變數定義的路徑中,將所有含有 name 的指令都列出來,包含 alias
54、shell 宣告、讀取變數
//宣告變數
myVar='jiankunking'
//讀取變數
echo $myVar
55、shell變數設定規則
- 變數與變數內容以等號『=』來連結;
- 等號兩邊不能直接接空格符;
- 變數名稱只能是英文字母與數字,但是數字不能是開頭字元;
- 若有空格符可以使用雙引號『 ” 』或單引號『 ’ 』來將變數內容結合起來,但須要特別留意, 雙
引號內的特殊字元可以保有變數特性,但是單引號內的特殊字元則僅為一般字元; - 必要時需要以跳脫字元『 \ 』來將特殊符號 ( 如 Enter, $, , 空格符, ’ 等 ) 變成一般符號;
- 在一串指令中,還需要藉由其它的指令提供的資訊,可以使用 quote 『
command
』;(特別
特別注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號!) - 若該變數為擴增變數內容時,則需以雙引號及
變量名稱如:『" 變數名稱 如:『 "PATH”:/home』繼續累加內容; - 若該變數需要在其它子程式執行,則需要以 export 來使變數變成環境變數, 如『export PATH』;
- 通常大寫字元為系統預設變數,自行設定變數可以使用小寫字元,方便判斷 ( 純粹依照使用者興
趣與嗜好 ) ; - 取消變數的方法為:『unset 變數名稱』。
56、在變數的設定當中,單引號與雙引號的用途有何不同?
單引號與雙引號的最大不同在於雙引號仍然可以保有變數的內容,但單引號內僅能是一般字元 ,而不會有特殊符號。
[root@linux ~]# name=VBird
[root@linux ~]# echo $name
VBird
//注意這裡
[root@linux ~]# myname="$name its me"
[root@linux ~]# echo $myname
VBird its me
//注意這裡
[root@linux ~]# myname='$name its me'
[root@linux ~]# echo $myname
$name its me
使用了單引號的時候,那麼 $name 將失去原有的變數內容, 僅為
一般字元的顯示型態而已!
57、顯示目前 shell 環境下的所有變數
set
set 這個指令除了會將環境變數列出來之外,其它我們的自訂變數,與所有的變數,都會被列出來。
一般來說,不論是否為環境變數,只要跟我們目前這個 shell 的操作介面有關的變數, 通常都會被設定為大寫字元,也就是說,『基本上,在 Linux 預設的情況中,使用{大寫的字母}來設定的變數一般為系統內定需要的變數』。
使用 set 除了會將系統的預設值秀出來之外,連帶的所有的你自己設定的變數也會被秀出來! 同時需要注意的是,若當時有相當多人同時在線上的話,那麼 你的變數只能給自己使用 ( 除非改的是系統的預設引數檔,如 /etc/profile ),而不會干擾到別人的!就如同前面所說的, 由於你登入 Linux 之後會取得
一個 PID ,而你的設定將只對這個 PID 與子程式有關!此外, 這次登入所進行的變數設定,如果沒有更動到設定檔, 那麼這次設定的變數在下次登入時將被取消掉 ( 因為程式 PID 不見囉! ) !所以囉, 如果你想要你的變數每次都能在你登入的時候自動就設定好了,那麼就必須將你的設定寫入登入時載入的設
定檔!
58、?:(關於上個執行指令的回傳碼)
echo $?
一般來說,如果成功的執行該指令,則會回傳一個 0 值,如果執行過程發生錯誤,就會回傳『錯誤程式碼』才對!一般就是以非為 0 的數值來取代。
59、export命令
export命令用於設定或顯示環境變數。
export可新增,修改或刪除環境變數,供後續執行的程式使用。export的效力僅及於該次登陸操作。
//-f 代表[變數名稱]中為函式名稱。
//-n 刪除指定的變數。變數實際上並未刪除,只是不會輸出到後續指令的執行環境中。
//-p 列出所有的shell賦予程式的環境變數。
export [-fnp][變數名稱]=[變數設定值]
60、read命令
read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數。
//引數:
//-p :後面可以接提示字元!
//-t :後面可以接等待的『秒數!』這個比較有趣~不會一直等待使用者啦!
//read 之後不加任何引數,直接加上變數名稱,那麼底下就會主動出現一個空白行,等待您輸入。
read [-pt] variable
61、declare / typeset
declare 或 typeset 是一樣的功能,就是在宣告變數的屬性。如果使用 declare 後面並沒有接任何引數,那麼 bash 就會主動的將所有的變數名稱與內容通通叫出來,就好像使用 set 一樣。
//引數:
//-a :將後面的 variable 定義成為陣列 (array)
//-i :將後面接的 variable 定義成為整數數字 (integer)
//-x :用法與 export 一樣,就是將後面的 variable 變成環境變數;
//-r :將一個 variable 的變數設定成為 readonly ,該變數不可被更改內容,也不能 unset
declare [-aixr] variable
62、陣列屬性 array
陣列的設定方式是:
var[index]=content
一般來說,建議直接以 ${陣列} 的方式來讀取
63、與檔案系統及程式的限制關係: ulimit(未測試)
ulimit [-SHacdflmnpstuv] [配額]
引數:
-H :hard limit ,嚴格的設定,必定不能超過設定的值;
-S :soft limit ,警告的設定,可以超過這個設定值,但是會有警告訊息,
並且,還是無法超過 hard limit 的喔!也就是說,假設我的 soft limit
為 80 , hard limit 為 100 ,那麼我的某個資源可以用到 90 ,
可以超過 80 ,還是無法超過 100 ,而且在 80~90 之間,會有警告訊息的意思。
-a :列出所有的限制額度;
-c :可建立的最大核心檔案容量 (core files)
-d :程式資料可使用的最大容量
-f :此 shell 可以建立的最大檔案容量 (一般可能設定為 2GB)單位為 Kbytes
-l :可用於鎖定 (lock) 的記憶體量
-p :可用以管線處理 (pipe) 的數量
-t :可使用的最大 CPU 時間 (單位為秒)
-u :單一使用者可以使用的最大程式(process)數量。
64、額外的變數設定功能
//方式一
echo $HOME
//方式二
echo ${HOME}
在那個 ${variable} 的使用方法中,其實,我們還可以將變數進行一些修訂的工作。 只要加上一些字元標誌,後面再接著使用比對字串,就能夠修改變數的內容了。
eg:從最前面開始比對,若開頭為 / ,則刪除兩個 /之間的所有資料,亦即 /*/
65、萬用字元與特殊符號
符號 | 內容 |
---|---|
* | 萬用字元,代表 0 個或多個字元(或數字) |
? | 萬用字元,代表『一定有』一個字母 |
# | 批註,這個最常被使用在 script 當中,視為說明! |
\ | 跳脫符號,將『特殊字元或萬用字元』還原成一般字元 |
; | 連續性命令的界定(注意!與管線命令並不相同) |
~ | 使用者的使用者目錄 |
$ | 亦即是變數之前需要加的變數取代值 |
& | 將指令變成背景下工作 |
! | 邏輯運算意義上的『非』 not 的意思! |
/ | 路徑分隔的符號 |
> | 輸出導向,『取代』 |
>> | 輸出導向,『累加』 |
‘ | 單引號,不具有變數置換的功能 |
“ | 具有變數置換的功能 |
` ` | 兩個『 ` 』中間為可以先執行的指令! |
( ) | 在中間為子 shell 的起始與結束 |
[ ] | 在中間為字元的組合 |
{ } | 在中間為命令區塊的組合 |
66、組合按鍵
組合按鍵 | 執行結果 |
---|---|
Ctrl + C | 終止目前的命令 |
Ctrl + D | 輸入結束(EOF),例如郵件結束的時候 |
Ctrl + M | 就是 Enter |
Ctrl + S | 暫停螢幕的輸出 |
Ctrl + Q | 恢復螢幕的輸出 |
Ctrl + U | 在提示字元下,將整列命令刪除 |
Ctrl + Z | 『暫停』目前的命令 |
67、擷取命令: cut、grep(未測試)
什麼是擷取命令啊?說穿了,就是將一段資料經過分析後,取出我們所想要的。 或者是,經由分析關鍵詞,取得我們所想要的那一行! 不過,要注意的是,一般來說,擷取訊息通常是針對『一行一行』來分析的,並不是整篇訊息分析的。
1、cut
這個指令可以將一段訊息的某一段給他『切』出來~ 處理的訊息是以『行』
為單位。
cut -d'分隔字元' -f fields
cut -c 字元區間
引數:
-d :後面接分隔字元。與 -f 一起使用;
-f :依據 -d 的分隔字元將一段訊息分割成為數段,用 -f 取出第幾段的意思;
-c :以字元 (characters) 的單位取出固定字元區間;
2、grep
剛剛的 cut 是將一行訊息當中,取出某部分我們想要的,而 grep 則是分析一行訊息, 若當中有我們所需要的資訊,就將該行拿出來。
grep [-acinv] '搜尋字串' filename
引數:
-a :將 binary 檔案以 text 檔案的方式搜尋資料
-c :計算找到 ‘搜尋字串’ 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 ‘搜尋字串’ 內容的那一行!
68、排序命令: sort, wc, uniq(未測試)
1、sort
sort 是很有趣的指令,他可以幫我們進行排序,而且可以依據不同的資料型態來排序。 例如數字與文字的排序就不一樣。此外,排序的字元與語系的編碼有關,因此, 如果您需要排序時,建議使用 LC_ALL=C來讓語系統一,資料排序比較好一些。
sort [-fbMnrtuk] [file or stdin]
引數:
-f :忽略大小寫的差異,例如 A 與 a 視為編碼相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法;
-n :使用『純數字』進行排序(預設是以文字型態來排序的);
-r :反向排序;
-u :就是 uniq ,相同的資料中,僅出現一行代表;
-t :分隔符,預設是 tab 鍵;
-k :以那個區間 (field) 來進行排序的意思。
2、uniq
uniq [-ic]
引數:
-i :忽略大小寫字元的不同;
-c :進行計數
3、wc
統計指定檔案中的位元組數、字數、行數,並將統計結果顯示輸出。
wc [-lwm]
引數:
-l :僅列出行;
-w :僅列出多少字(英文單字);
-m :多少字元;
69、查詢系統中安裝了哪些rpm軟體包
rpm -qa
70、查詢系統已安裝的軟體
rpm -q 軟體名
71、定時任務 crontab
crontab (選項) (引數)
選項
-e:編輯該使用者的計時器設定;
-l:列出該使用者的計時器設定;
-r:刪除該使用者的計時器設定;
-u<使用者名稱稱>:指定要設定計時器的使用者名稱稱。
引數
crontab檔案:指定包含待執行任務的crontab檔案(crontab檔案中一行行的指令或者一個shell指令碼檔案的全路徑)。
crontab檔案的含義:
使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個欄位代表一項設定,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下:
minute hour day month week command 順序:分 時 日 月 周
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的指令碼檔案。
在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”
中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。
72、shell指令碼
- shell指令碼是一個文字檔案,命令的集合,有執行許可權
執行方式(./檔名) - shell指令碼是以.sh文結尾的檔案
- 如果不能執行,可能是沒有執行的許可權,可以修改這個sh檔案的執行許可權
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- Linux常用命令cp學習筆記Linux筆記
- ZooKeeper 學習筆記一:常用命令筆記
- git常用命令-Git學習筆記Git筆記
- Linux學習筆記Linux筆記
- Linux 學習筆記Linux筆記
- Linux 學習筆記--程式Linux筆記
- linux學習筆記一Linux筆記
- linux學習筆記二Linux筆記
- Linux學習筆記--viLinux筆記
- linux c 學習筆記Linux筆記
- Linux學習筆記1Linux筆記
- Docker 入門學習筆記二:常用命令Docker筆記
- Linux基礎學習-Docker學習筆記LinuxDocker筆記
- Linux 學習筆記--程式管理Linux筆記
- 【Linux學習筆記】reboot命令Linux筆記boot
- Linux ACL學習筆記(zt)Linux筆記
- linux安全學習筆記(轉)Linux筆記
- linux學習筆記---一些命令學習Linux筆記
- Linux學習/TCP程式設計學習筆記LinuxTCP程式設計筆記
- Linux 常用命令學習Linux
- Linux | 常用命令學習Linux
- linux學習筆記-day5Linux筆記
- Linux與DNS的學習筆記LinuxDNS筆記
- Linux學習筆記 Day 4~5Linux筆記
- Linux 核心學習筆記-磁碟篇Linux筆記
- 基礎 IO (Linux學習筆記)Linux筆記
- 01_Linux學習筆記(一)Linux筆記
- Linux學習筆記(2)——ls指令Linux筆記
- numpy的學習筆記\pandas學習筆記筆記
- Linux的常用命令學習Linux
- Linux程式執行緒學習筆記Linux執行緒筆記
- opensuse linux操作維護學習筆記Linux筆記
- Linux學習筆記(一)--常用快捷鍵Linux筆記
- Linux Shell 程式設計學習筆記Linux程式設計筆記
- linux基礎知識學習筆記Linux筆記
- Linux 學習筆記 - 軟體安裝Linux筆記
- IT學習筆記筆記
- 學習筆記筆記