1、ls
- 檔案屬性:
- -:普通檔案
- d:目錄檔案
- b:塊裝置
- c:字元裝置檔案
- l:符号連接配接檔案
- p:指令管道
- s:套接字檔案
- 檔案權限:
- 9位數字,每3位一組
- 檔案硬連結次數
- 檔案所屬主(owner)
- 檔案的屬組(group)
- 檔案大小(size),機關預設是位元組
- ls常用選項:
- -l:顯示檔案屬性,ls -l=ll
- -h:做相應的機關轉換顯示
- -a:顯示所有檔案
- -A:顯示.和..以為的所有檔案
- -d:顯示目錄自身屬性
- -i:顯示檔案的縮影接點号碼(index node ,inode)
- -r:逆序顯示檔案清單
- -R:遞歸顯示檔案
2、cd
- cd:change directory
- cd:回到使用者的家目錄
- cd ~username:進入指定使用者的家目錄
- cd - :在目前目錄和前一次所在的目錄來回切換
- cd ..:切換至其父目錄
3、printenv:顯示目前環境變量資訊
4、時間管理
- date:顯示系統時間
- clock:顯示硬體時間
- hwclock -W:把系統時間同步到硬體時間
- hwclock -s:把硬體時間同步到系統時間
- cal:顯示月曆
5、指令幫助
- 内部指令幫助:help COMMAND
- 外部指令幫助:man COMMAND
- 指令手冊:manual
- whatis COMMAND:顯示此指令在man幫助的哪個章節内。
- ============================================================
- man的操作指令:
- 空格:向後翻一屏
- b:向前翻一屏
- ENTER:向後翻一行
- k:向前翻一行
- ============================================================
- 關鍵字查找
- /KEYWORD:向後查找關鍵字
- ?KEYWORK:向前查找關鍵字
- n:下一個關鍵字位置
- N:前一個關鍵字
- q:退出man幫助
6、file
file:用于檢視普通檔案和系統檔案的類型
7、mkdir
- mkdir:建立目錄
- rmdir:删除目錄
- -p:遞歸建立
- -V:顯示建立資訊
8、rm
- rm:删除檔案
- -i:互動式删除
- -f:暴力删除
- -r:遞歸删除
- 指令可以組合利用
9、touch
- touch:建立檔案
- -c:檔案存在的時候不在建立
- -a:隻改變檔案的通路時間
- -m:隻改變檔案的修改時間
- -t:自己設定檔案的時間戳(年月日時分.秒),與a、m配合使用
10、cp
- cp:檔案複制,規則:隻有最後一個為目标。複制一個檔案到一個檔案 或者 多個檔案
- 到一個目錄!
- cp /etc/passwd /tmp/ 複制到目錄下并儲存原檔案名
- cp /etc/passwd /tmp/test 看test是檔案還是目錄,目錄:負責到目錄内,
- 檔案則替換!
- ==============================================================
- -r:遞歸複制目錄
- -i:互動式顯示複制
- -f:強制複制,覆寫
- -p:保留源檔案的屬性,時間戳
- -a:保留源檔案的所有屬性
- -P:複制連結檔案時儲存為連結(預設是複制連結所指向的檔案)
- -d:複制時保持連結
- -a:歸檔複制,常用與備份
11、mv
- mv:移動或重命名檔案
- mv SRC(源) DEST(目标)
- 在統一目錄下可以利用mv進行重命名: mv abc bcd 或者 mv -t 目标 源
12、cat
- cat:連接配接并顯示檔案的資訊,是全部顯示檔案内的資訊
- -n:在顯示的時候可以顯示行号,這個行号隻是顯示出來,跟檔案内容沒有 關系
- -E:顯示每一行的行結束符,是以linux中文本檔案的行結束符是$符
- -T:可以顯示制表符
- -v:顯示其他的非列印字元
- -A:顯示所有的符号
13、more
- more:more的作用同cat是相同的,隻不過這時我們可以通過手動來翻屏,更加友善
- ,more:隻支援向後翻,翻到最後
- 就直接退出了
- less:顯示檔案資訊,預設不退出顯示,q即可退出
- 空格:向後翻一屏
- b:向前翻一屏
- ENTER:向後翻一行
- k:向前翻一行
- 關鍵字查找
- /KEYWORD:查找關鍵字
14、head、tail
- head:顯示檔案的前幾行,預設是10行
- -NUM:顯示前多少行
- tail
- tail:顯示檔案的後幾行,預設是10行
- -NUM:顯示後多少行
- -f:檢視檔案尾部,而且不退出,等待顯示後續追加的新内容;
15、cut
- cut:用于剪切資料的内容
- -d:指定字段分隔符,預設的是空格 cut -d: -f7 空格符 cut -d''
- -f:指定要剪切顯示的字段
- -f 1 表示顯示第一個字段 cut -f1
- -f 1,3表示顯示第一個和第3個字段
- -f 1-3表示顯示從1到3的字段
16、sort 、uniq、wc
- sort:文本排序,僅僅是對顯示檔案的排序,而不影響源檔案的順序,是根據ASSII碼
- 的字元升序來排列的。
- -n:安裝數值大小從小到大排列
- -r:降序排列
- -t:指定字段分隔符
- -k:從哪個字元開始,就是指定關鍵字排列
- -u:相同的行隻顯示一次
- -f:忽略字元大小寫
- ================================================================
- uniq:報告或者忽悠重複行
- -d:隻顯示重複行
- -c:顯示某一行的重複次數
- ================================================================
- wc:文本統計,可以統計檔案中一共有多少行數,多少個單詞數,多少個位元組數 -l:隻顯示行數 -w:隻顯示單詞數 -c:隻顯示位元組數 -L:顯示最長的一行包含多少個字元
17、tr
- tr:轉換或删除字元
- tr [OPTION]...SET1 [SET2]
- 例如# tr ab AB 把小寫ab都換位大寫AB
- -d:可以實作删除出現在字元集中的所有字元
- 18、aliase
- aliase:定義shell指令的别名
- CMDALIAS=COMMAND
- unalias CMDALIAS是撤銷指令别名
- ===========================================================================================
- 19、權限
- 權限: r 、w 、x
- 檔案:
- r:可讀,可利用類似 cat等指令檢視檔案内容
- w:可寫,可以編輯或删除此檔案
- x:可執行,可以再指令提示符下當做指令送出給核心運作。
- 目錄:
- r:可以對此目錄執行LS以列出内部的所有檔案
- w:可以在此目錄中建立檔案
- x:可以使用cd切換進此目錄,也可以使用ls -l檢視内部檔案的的詳細資訊。
- ===========================================================================================
- 20、useradd
- useradd NAME:增加使用者
- -u UID:指定使用者所屬主ID
- -g GID:指定基本組ID或者組名(此組必須首先存在才能用)
- -G GID:定額外組(附加組),可以指定多個,彼此之間用逗号隔開即可(此附加
- 組必須首先存在才能用)
- -c "COMMENT"指定注釋資訊
- -d /path/to/somedirectory指定使用者的家目錄,不用的時候預設在home下面
- 建立一個和使用者同名的目錄。
- -s 指定shell,路徑最後是etc/shells檔案内規定的shell路徑。
- -M 不給使用者建立家目錄
- -r 建立一個系統使用者,共系統調用,并不建立家目錄
- userdel USERNAME:删除使用者
- (不加參數時,預設不删除使用者的家目錄)
- -r :删除使用者的同時也删除家目錄
- ===========================================================================================
- 21、id
- id指令:檢視目前使用者的id資訊
- -g USERNAME:檢視使用者的gid
- -u USERNAME:檢視使用者的uid
- -G USERNAME:檢視使用者的所有組
- -un:顯示目前使用者的使用者名
- -gn:顯示目前使用者的組名
- ===========================================================================================
- 22、finger
- finger指令:檢視使用者賬戶資訊
- finger USERNAME
- ===========================================================================================
- 24、使用者賬戶屬性管理
- usermod:修改賬戶的屬性
- usermod [option] USERNAME
- -u:修改UID
- -g:修改GID
- -G:修改附加組
- -a -G:增加附加組,不覆寫之前的附加組
- -c:修改使用者的注釋資訊
- -d:為使用者知道新的家目錄
- -d -m :指定信家目錄并移動此前家目錄的檔案至新的家目錄内
- -s:修改使用者的預設shell
- -l:修改使用者名
- -L:鎖定使用者賬戶
- -U:解鎖賬戶
- ==========================================================================================
- 25、使用者密碼管理
- passwd USERNAME
- -l:鎖定賬戶
- -U:解鎖賬戶
- -d:删除使用者密碼
- -n:使用者密碼最短時間
- -x:使用者密碼最長使用時間
- pwck:檢查使用者賬戶完整性
- ==========================================================================================
- 26、組管理
- groupadd:建立組
- groupadd [option] GROUPNAME
- -g :GID指定GID
- -r :添加為系統組
- groupmod:組屬性
- groupmod [option] GROUPNAME
- -g GID:修改gid
- -n NAME:修改組名
- gpasswd:修改組密碼
- gpasswd GROUPNAME
- ===========================================================================================
- 27、chage
- chage:更改使用者賬戶資訊
- -d:最後一次修改時間
- -E:過期時間
- -I:非活動時間
- -m:最短期限
- -M:最長期限
- -W:警告時間
- ===========================================================================================
- 28、chown
- chown:改變檔案屬主、屬組,隻有管理者是也此指令
- chown USERNAME file....(隻改變目錄本身)
- -R 遞歸修改(修改目錄及其内部檔案的屬主)
- --reference=/path/to/somefile file... 把file的屬主設定為與
- somefile的屬主一樣(不需要指定屬主)
- chown USERNAME:GRPNAME fiel... 同時改變屬主和屬組
- chown USERNAME,GRPNAME fiel... 同時改變屬主和屬組
- chown :GROUPNAME fiel.... 修改屬組
- ===========================================================================================
- 29、chgrp
- chgrp:修改檔案屬組
- chgrp GROUPNAME file....(隻改變目錄本身)
- -R 遞歸修改(修改 目錄及其内部檔案的屬組)
- --reference=/path/to/somefile file... 把file的屬主設定為與
- somefile的屬組一樣(不需要指定屬組)
- ===========================================================================================
- 30、chmod
- chmod:修改檔案的使用者權限
- chmod MODE file...
- -R:遞歸修改
- --reference=/path/to/somefile file...
- chmod 755 file...
- 修改某類使用者的某些權限
- u:屬主
- g:屬組
- o:其他
- a:所有
- chmod 使用者類别=MODE fiel..
- u=wr,g=w
- uo=wr
- 修改某類的使用者某位或某些位權限
- chmod 使用者類别[-/+]MODE fiel..
- 31、echo
- echo:輸出資訊
- echo "abc"
- echo "字元串" | passwd --stdin USERNAME:利用管道修改使用者密碼
- 32、輸入、輸出重定向
- 輸出重定向:>
- >>
- set -C :禁止對已經存在檔案使用覆寫重定向
- set +c :關閉上述功能
- >:重定向錯誤輸出,不能輸出正确資訊
- >>:追加方式實作錯誤輸出
- >:重定向标準輸出或錯誤輸出至同一個檔案。 時覆寫方式
- <
- <<:此處生成文檔
- << END
- >> /tmp/myfile.txt << END
- ===========================================================================================
- 33、grep
- grep:根據模式,搜尋文本,并将符合模式的文本行顯示出來
- -i 忽略大小寫
- --colour(color)顔色顯示
- -v 反向查找,顯示沒有被模式比對的行
- -O 隻顯示被模式比對的字元串
- ===========================================================================================
- 34、sed
- sed:流編輯器,把文本中的某一行讀取到記憶體中進行處理,此記憶體空間稱為模式空間。
- 預設不編輯原檔案,隻對模式空間内的資料進行處理,處理結束後,将沒模式空間列印至
- 螢幕
- sed 'AddressCommand' file...
- -n :靜默模式,不在顯示模式空間中的内容
- -i :直接修改原檔案
- -e :(-e SCRIPT -e SCRIPT) 可以同時執行多個腳本
- -f /PATH/TO/SED_SCRIPT: sed -f /path/to/sed_script file
- :執行腳本檔案
- -r :使用擴充的正規表達式
- d:删除符合條件的行
- fg:/etc/inittab 删除1-2行
- sed '/root/d' /etc/fastab 删除包含root的行
- p:顯示符合條件的行。
- fg:sed '/^\//d' /etc/fastb 删除以/開頭的行
- sed '/^\//p' /etc/fastb 顯示以/開通的行
- a \string:在指定的行後追加新的行,内容為string
- i \string:在指定的行前面添加新行,内容為string
- r FILE :将指定的檔案的内容添加至符合條件的行處
- w FILE :将位址指定範圍内的内容另存至指定的檔案中
- s/pattern/string/ :查找并替換(預設隻替換每行中第一次被pattern比對
- 到的字元串) 把pattern比對的字元換為string
- 修飾符:g 全局替換 s/pattern/string/g
- i 忽略字元大小寫 s/pattern/string/i
- s///=s###=s@@@ 在找/時就不用轉意了。
- &:後向引用,引用模式比對的整個串
- ===========================================================================================
- fg:sed練習:
- 1、删除/etc/grub.conf檔案中行首的空白符;
- sed -r 's/^[[:space:]]+//g' /etc/grub.conf
- 2、替換/etc/inittab檔案中"id:3:initdefault:"一行中的數字為5;
- sed 's/id:3:initdefault/id:5:initdefault/g' /etc/inittab
- sed 's@\(id:\)[0-9]\(:initedefault)@\15\2@g' /etc/inittab
- 3、删除/etc/inittab檔案中的空白行;
- sed '/^$/d' /etc/inittab
- 4、删除/etc/inittab檔案中開頭的#号;
- sed 's/^#//g' /etc/inittab
- 5、删除某檔案中開頭的#号及後面的空白字元,但要求#号後面必須有空白字元;
- sed 's/^#[[:space:]]\{1,\}//g' /etc/inittab 或者
- sed -r 's/^#[[:space:]]+//g' /etc/inittab
- 6、删除某檔案中以空白字元後面跟#類的行中的開頭的空白字元及#
- sed -r 's/^[[:space:]]+#//' 1
- 7、取出一個檔案路徑的父目錄名稱;
- echo "/etc/rc.d" | sed -r 's@^(/.*/)[^/]+/?@\1@g'
- 以/.*/開頭,[^\]指非斜杠,\1引用左邊第一個括号内的内容一次。
-
echo "/etc/rc.d" | sed -r 's@^/.*/([^/]+)/?@\1@g'
提取本檔案
- ===========================================================================================
- 35、vim
- vim:文本編輯器,全屏、模式化的編輯器
- vim模式:
- 編輯模式(指令模式):預設
- 輸入模式
- 末行模式
- ------------------------------------------------------------------------------------------
- vim模式轉換:
- >輸入模式
- i:在目前光标所在字元的前面,轉為輸入模式
- a:在目前光标所在字元的後面,轉為輸入模式
- o:在目前光标所在行的下方建立一行,并轉為輸入模式
- I:在目前光标所在行的行首,轉為輸入模式
- A:在目前光标所在行的行尾,轉為輸入模式
- O:在目前光标所在行的上方建立一行,并轉為輸入模式
- ---------------------------------------------------------------------------------------
- >編輯模式
- 鍵入esc鍵。
- 3、末行模式:必須從編輯模式進入末行模式
- 鍵入:即可。
- >編輯模式
- 敲esc鍵,一次或者多次。
- -------------------------------------------------------------
- vim退出檔案:
- 1、末行模式下關閉檔案
- w:儲存檔案
- q:退出
- wq:儲存并退出
- q!:不儲存并退出
- w!:強制儲存
- wq=x
- 2、編輯模式下退出
- 大寫ZZ:儲存退出
- ------------------------------------------------------------------------------------------
- vim下移動光标(編輯模式):
- 1、逐字元移動:
- h:向左
- l:向右
- j:向下
- K:向上
- #h:移動#(數字)個字元
- 2、以單詞為機關移動
- w:移動下一個單詞的詞首
- e:移動到目前單詞的詞尾或者下一個單詞的詞尾
- b:移動到目前單詞的詞首或者上一個單詞的詞首
- #w:一次跳#個單詞。
- 3、行内跳轉
- 0:跳到行首(絕對行首)
- ^:跳到第一個非空白字元的行首
- $:絕對行尾
- 4、行間跳轉
- #G:直接跳轉至第#行上。
- G:直接跳轉至最後一行
- 末行模式下跳轉:直接給出行号,回車即可。
- -------------------------------------------------------------------------------------------
- vim翻屏:
- ctrl+f:向下翻一屏
- ctrl+b:向上翻一屏
- ctrl+d:向下翻半屏
- ctrl+u:向上翻半屏
- -------------------------------------------------------------------------------------------
- vim删除字元:
- x:删除光标所在處的單個字元
- #x:删除光标所在處及向後的共#個字元
- vim删除指令:d
- d指令與跳轉指令結合使用
- d$:删除到行尾。
- #d跳轉符:删除跳轉符指定的#個字元
- dd:删除目前光标所在行
- #dd:删除包括光标所在行之内的#行
- 末行模式下可以使用:
- startADD,ednADDd
- 1,10d:删除第一行到第十行
- .,100:删除目前行到100行。
- .表示目前行
- $:最後一行
- +#:向下的#行
- $-10:倒數第10行
- vim删除的内容為儲存在緩沖中,最後一次删除的内容可以粘貼。
- -------------------------------------------------------------------------------------------
- vim粘貼指令:p
- p(小寫):如果删除的或複制的為正行内容,則粘貼至光标所在含行的下方,如果
- 複制或删除的内容為非整行,則粘貼至光标所在字元的後面
- P(大寫):如果删除的或複制的為正行内容,則粘貼至光标所在含行的上方,如果
- 複制或删除的内容為非整行,則粘貼至光标所在字元的前面
- vim複制指令:y
- y的用法同d
- yy:複制一行
- vim先删除内容,再轉換為輸入模式:c
- c的用法同d指令
- cc:删除一行,并進入輸入模式。
- c$:删除到行尾,并進入輸入模式
- -------------------------------------------------------------------------------------------
- vim下撤銷編輯操作指令:u
- u:撤銷上一次操作,連續u指令可以撤銷此前的n次操作
- #u:直接撤銷最近#次編輯操作
- -------------------------------------------------------------------------------------------
- vim超找替換
- /PATTERN:從行首向下查找PATTERN比對的選項
- ?PATTERN:從行尾向上查找PATTERN比對的選項
- vim查找并替換:s
- 在末行模式下使用s指令
- 用法與sed一樣
- ADDR1,ADDR2s@PATTERN@string@gi
- g:全局 i:忽略大小寫
- .,$-1 :目前行到倒數第一行
- 1,$表示全文
- vim下shell互動
- :!COMMAND 回車檢視,檢視完以後再回車,進入vim編輯模式。
- -------------------------------------------------------------------------------------------
- vim進階話題
- 1、顯示或取消顯示行号
- :set nu
- :set nonu
- 2、設定忽略或區分大小寫
- :set ignorecase
- :set ic 忽略
- :set noic
- 3、設定自動縮進
- :set autoindent
- :set ai 縮進
- :set noai
- 4、查找到的文本高亮顯示或取消高亮顯示
- :set hlsearch 高亮顯示
- :set nohlserch 取消
- 5、文法高亮
- :syntax on 開啟
- :syntax off 關閉
- 36、let
- let:相當于一個小的電腦
- let SUM+=$I ;sum等于sum+I
- let I+=1:讓I等于I加1
- let I++:讓I等于I加1
- I-=相當于let I--:I等于I減1
- 37、locate
- locate:查找檔案,非實時的、模糊比對,全系統檔案資料庫的查找指令
- updatedb:手動生成檔案資料庫,新安裝的系統沒有資料庫的,速度快
- 38、find
- find:實時查找、精确、周遊指定目錄中的所有檔案完成查找,速度慢、支援衆多
- 查找标準
- 格式:find 查找路徑 查找标準 查找到以後的處理運作
- 查找路徑:預設為目前目錄
- 查找标準:預設為指定路徑下的所有檔案
- 處理運作:預設為顯示到螢幕
- -------------------------------------------------------------------------------------------
- 比對标準
- -name 'FILENAME':對檔案名進行精确比對
- 還支援檔案名通配符:*:任意長度的任意字元
- -iname 'FILENAME':檔案名比對不區分大小寫
- -regex PATTERN:基于正規表達式進行檔案名比對
- -user USERNAME:基于檔案所屬主進行比對查找
- -group GROUPNAME:基于檔案的屬組進行查找
- -uid UID:基于檔案的uid,使用者被删了以後id号會儲存下來
- -gid GID:檔案組
- -nouser:查找沒有屬主的檔案
- -nogroup:查找沒有屬組的檔案
- -type :根據檔案的類型來查找
- f:普通檔案
- d:目錄
- p:管道
- s:套接字
- l:連結
- -size:指定檔案的大小
- [+|-]#K:大于或者小于#k的檔案
- -------------------------------------------------------------------------------------------
- 時間戳查找
- 機關為天
- -mtime :修改時間
- -atime :通路時間
- -ctime:改變時間
- 支援[+|-]#:
- 5:五天那一天通路
- -5:五天之内
- +5:至少五 天之外
- 機關為分鐘
- -amin:通路時間
- -cmin:修改時間
- -tmin:改變時間
- 檔案的權限查找
- -perm mode(755):精确查找
- fg:find 路徑 -pern 755
- -perm /mode : 三位比對一位就可以
- -perm -mode:檔案權限能完全包含此mode才可以顯示
- 執行動作:
- -print:預設的,顯示
- -ls:類似ls -l的形式顯示比對到的每個檔案的詳細資訊
- -ok COMMAND {} \;每個操作需要使用者确認 執行指令,必須以\;結尾。
- {}代表比對到的檔案。
- -exec COMMAND {} \;不需要确認,執行指令,必須以\;結尾。{}代表
- 比對到的檔案。
- =========================================================================================
- 39、SUID
- suid:運作某程式時,相應程序的屬主是程式檔案自身的屬主,而不是啟動者所屬主
- 添加檔案的SUID:chmod u+s FILE
- chmod u-s FILE
- 如果FILE本來原來就有執行權限,則SUID顯示為s,否則為大S。
- SGID:運作某程式時,相應程序的屬組是程式檔案自身的屬組,而不是啟動者所屬
- 的基本組
- chmod g+s FILE
- chmod g-s FILE
- fg:一個團隊,三個使用者:hadoop、hbase、hive,一個開發目錄
- /tmp/project,要求這三個使用者可以同時修改同一個檔案。檢視、編輯、等權限
- 三個使用者同屬一個基本組,并要求基本組具有檢視、編輯權限。。
- groupadd devdeop
- chown -R :develop /tmp/projest
- usermod -a -G develop hadoop
- chmod g+s /tmp/project
- 然後就可以進行建立、修改、删除同一個檔案了。
- ===========================================================================================
- 40、sticky
- sticky:規定在一個公共目錄,每個人都可以建立檔案、删除自己的檔案,但不
- 能删除别人的檔案。
- chmod o+t DIR:對目錄增加sticky權限
- chmod o-t DIR:去掉目錄的sticky權限
- chmod 1755 /backup/test 表示檔案具有sticky權限
- 41、facl
- facl:利用檔案擴充保持額外的通路權限
- setfacl:設定某檔案的控制權限
- -m:增加facl
- u:設定使用者的時候,後面加上u:UID:perm
- fg:setfact -m u:UID:rw file
- g:設定組
- -x:取消facl
- getfacl:檢視檔案的facl權限
- 42、whoami
- whoami:顯示目前使用者是誰,su半切換的時候顯示的是切換之前的那個使用者
- 43、who
- who:檢視目前登入系統的使用者以及他所登入的終端
- -r:顯示目前運作級别
- -H:第一回清單顯示各列名稱
- w:顯示比who更詳細的資訊
- 44、last
- last:顯示目前系統上的登入日志(/var/log/wtmp檔案),包括系統使用者和
- 重新開機資訊
- last -n 數字:隻顯示最近幾次的登入資訊
- 45、lastb
- lastb:顯示使用者錯誤的登入常識
- lastb -n 數字:隻顯示最近幾次錯誤的登入資訊。
- 46、lastlog
- lastlog:顯示每個使用者最近一次成功登入的資訊
- lastlog -u USERNAME:顯示指定使用者最近一次的登入資訊
- 47、basename
- basename:顯示一個目錄的基名
- basename /etc/abc/me 直接顯示me
- $0:指令名稱或者腳本本身的路徑。
- basename $0:直接調用腳本本身路徑
- ==========================================================================================
- 48、mail
- mail:郵件檢視,可以檢視郵件,檢視以後就會放到使用者的家目錄内mbox檔案夾内。
- -s主題
- mail -s "How are you " root
- cat /etc/fast | mail -s "How are you " root
- 49、hostname
- hostname:顯示目前主機的名稱
- hostname 主機名:更改主機名
- fg:如目前主機的名字為空,或者(none)或者為(localhost),就将其
- 改為www
- [ -z` hostname` -o `hostname` == "(null)" -o `hostname`
- == "localhost" ] && host www.
- -z:表示是否為空
- 50、RANDOM
- RANDOM:0-32768直接的随機數
- echo $RANDOM:生成随機數
- -------------------------------------------------------------------------
- LVM縮減:先縮減邏輯邊界resize2fs /PV 3G,再縮減實體卷邊界、
- 1、不能線上縮減,得先解除安裝
- 2、確定縮減後的空間大小能儲存原來所有檔案
- 3、在縮減之前應該強行檢查檔案,以確定檔案系統處于一緻性狀态
- e2fsck -f:強行檢查檔案
- df -lh:檢查使用率
- umount
- e2fsck -f:強行檢查檔案
- resize2fs /PATH/TO/lV 5G:縮減邏輯卷到5G
- lvreduce -L [-]#G /PATH/TO/LV:縮減實體卷邊界
- ================================================================
- 78、lvcreate
- lvcreate:建立快照卷
- -s :指定類型為塊照
- -p r|w:表示指定權限
- -n:名字
- -L #:指定大小
- 79、ping
- ping IP
- -c:次數
- -w:逾時時長,機關為秒
- 80、awk
- awk:從檔案中篩選符合條件的内容
- 格式:awk 'PATTERN{ACTION}' file
- -F:指定分隔符
- print $1:顯示第一段
- print $0:顯示一行中的所有字段
- print $NF:顯示最後一行
- awk '空格{print $1,$3}' 第一和第三字段
- awk -F: '{print $1,$2}'
- fdisk -l 2>/dev/null :把錯誤資訊輸入到null内不顯示
- ===========================================================================================
- 81、ifconfig
- ifconfig:檢視和配置系統的網絡資訊
- [ethX]:顯示某個網卡資訊
- -a:顯示所有的網卡資訊
- ifconfig ethx IP/MASK :配置網卡位址(子網路遮罩必須指定)
- ifconfig ethx [up|down]:開啟或者禁用網卡
- 配置Ip位址是立即生效,但重新開機網絡服務或重新開機主機,都失效
- ------------------------------------------------------------------------------------------
- 82、route
- route:檢視本機的路由資訊
- -n:以數字的方式顯示主機資訊
- route add:添加路由
- -host:主機路由
- -net:網絡路由
- 格式:route add -net|host DEST gw NEXTHOP
- route add default gw NEXTHOP
- route del:删除路由
- -host
- -net
- route del -net 10.0.0.0/8
- route del -net 0.0.0.0
- route del default
- 以上所做的改動重新開機網絡服務或重新開機主機,都失效。
- -------------------------------------------------------------------------------------------
- 83、ip
- ip:功能比較強大的網絡指令
- ip link:配置網絡接口屬性
- show:顯示所有網絡接口資訊
- ip -s link show:檢視所有統計資訊
- ip link set ethx {up|down|arp {on|off}}:設定網絡接口的工作屬性
- ip addr:協定位址
- show:網絡資訊
- ip addr add IP dev eth1 添加ip,在ifconfig下看不到的,利用
- ip addr show
- ip addr add 192.168.0.1/24 dev eth1
- ip addr add IP dev eth1 label ethx:x 添加ip以後增加别名,
- 在ifconfig下可以檢視到
- ip addr add IP dev eth1
- ip addr show dev ethx to 字首:檢視ethx 上的以字首開頭的資訊
- ip addr flush eth1 to 10/8 :删除eth1上所有的以10開頭的ip位址。
- ip route:路由
- ip route change|replace :修改路由資訊
- ip route add to 目的網段 dev ethx via IP(下一跳IP)
- =========================================================================================
- 84、shutdown
- shutdown [-akrhHPfnc] [-t secs] time [warning message]
- shutdown:關機的指令
- -r now:立即重新開機
- -t sec:幾秒之後
- -h now:立即關機
- 85、uname
- uname -r:檢視系統核心版本
- uname -a:系統版本資訊
- 86、lftp
- lftp IP:進入ftp伺服器
- get 下載下傳單個檔案到本地
- mget 下載下傳多個檔案到本地
- bye 退出ftp
- ===========================================================================================
- 87、rpm
- rpm:安裝rpm包的工具
- rpm安裝指令
- -i rpm:安裝軟體
- -h:以#顯示安裝進度
- -v:顯示安裝資訊
- -vv:顯示更詳細的安裝資訊
- -ivh:組合使用,常用指令安裝軟體
- --nodeps:忽略依賴關系
- --replacepkgs:重新安裝、替換原來安裝。
- -ivh --oldpackage:降級安裝
- -ivh --force:強制安裝,可以實作重裝或降級
- --test:測試有沒有依賴關系
- -------------------------------------------------------------------------------------------
- rpm查詢指令
- -q rpm:查詢指定包是否安裝
- -qa:經安裝的所有包
- -qi:查詢指定包的說明資訊
- -ql:查詢指定包安裝後生成的目錄清單
- -qc:查詢指定包的配置檔案
- -qd:查詢指定包的幫助檔案
- -q --scripts:查詢指定包内包含的腳本
- -qf:查詢指定的檔案是有哪個rpm包安裝
- -------------------------------------------------------------------------------------------
- rpm軟體更新指令
- -Uvh:如果裝有老版本的,則更新;否則,則安裝
- -Fvh:如果裝有老版本的,則更新;否則,則退出
- -Uvh --oldpackage:降級
- -------------------------------------------------------------------------------------------
- rpm解除安裝指令
- -e:解除安裝
- -e --nodeps:忽略依賴關系解除安裝
- -----------------------------------------------------------------------------------------
- rpm校驗指令:
- -V:無輸出資訊就是正常
- rpm資料庫重建
- rpm --rebuilddb:重建資料庫,一定會重建立立。
- rpm --initdb:初始化資料庫,沒有才建立,有就不用建立。
- ==========================================================================================
- 88、yum
- yum:安裝軟體指令,可以自動解決軟體包直接的依賴關系。
- list:顯示yum倉庫内的軟體
- list available:倉庫中有但尚未安裝的包
- list installed:顯示已經安裝的
- list updates :可以的更新
- ------------------------------------------------------------------------------------------
- yum clean:清楚緩存
- yum clean {packages | headers | metadata | dbcache | all}
- yum repolist:顯示repo清單及簡要資訊
- yum repolist {all|enabled|disabled}
- ---------------------------------------------------------------
- yum安裝軟體指令
- install:安裝軟體包
- -y install:自動安裝
- install --nogpgcheck:不做校驗
- ------------------------------------------------------------------------------------------
- yum更新軟體指令
- yum update :更新
- yum update_to:更新到指定版本、
- -----------------------------------------------------------------------------------------
- yum解除安裝軟體指令
- yum remove|erase PACKAGE_NAME
- yum info PACEAGE_NAME:檢視軟體包資訊
- ------------------------------------------------------------------------------------------
- yum 開發組安裝指令
- groupinstall 組名:安裝組中包含的包
- groupinfo 組名:顯示組包含包資訊(如果組名中間有空格,使用”“
- grouplist 列出組
- groupupdate
- -------------------------------------------------------------------------------------------
- yum 安裝本地RPM包指令
- yum localinstall rpmfile1 :安裝本地包并從yum庫内解決依賴關系
- yum --nogpgcheck localinstall rpmfile1:不校驗安裝
- ===================================================
- 89、源碼程式安裝指令
- tar xf ....:解壓源碼包
- ./configure;配置
- make:編譯
- make install:安裝
90、netstat
netstat:檢視系統資訊
-r:顯示路由資訊
-rn:以數字的方式顯示
-t:顯示tcp連結
-u:顯示udp連結
-l:顯示端口監聽狀态
-p:顯示監聽指定套接字的進行的程序号及程序名
-tunlp:常用組合,數字顯示tcp、udp的連結情況
91、ps
ps:檢視程序資訊
BSD風格常用選項:
a:顯示所有與終端有關的程序 ?:表示與終端無關
x:顯示所有與終端無關的程序
u:顯示進行資訊
aux:組合使用
SysV風格常用選項:
-elF:檢視所有進行資訊(e:所有程序)
-elf:沒F詳細
-o PROPERTY:指定屬性顯示
--------------------------------------------------------------------------------------------
92、pstree
pstree:以樹的形式顯示ps資訊。
93、pgrep:以grep的風格檢視符合某種特性的程序
94、top
top:動态顯示程序資訊
支援互動,互動指令
M: 根據駐留記憶體大小進行排序
P:根據CPU使用百分比進行排序
T: 根據累計時間進行排序
l: 是否顯示平均負載和啟動時間
t: 是否顯示進行和CPU狀态相關資訊
m: 是否顯示記憶體相關資訊
c: 是否顯示完整的指令行資訊
q: 退出top
k: 終止某個程序
常用選項:
-d 1 :幾秒重新整理一次
-b: 批模式顯示
-n #:在批模式下,共顯示多少批
95、前台和背景作業
前台作業:占據了指令提示符
背景作業:啟動之後,釋放了指令提示符,後續的操作在背景完成
>背景:
ctrl+z鍵:正在前台的作業送到背景
bg:讓背景停止的作業繼續運作
bg [%JOBID]:%可以省
fg:将前台的作業送到背景
fg [%JOBID]:%可以省
96、jobs
jobs:檢視後天的所有作業
97、chkconfig
chkconfig:檢視服務啟動項
--list:檢視所有獨立服務的啟動設定
--list SERVICE_NAME:某個服務的啟動設定
chkconfig --add SERVICE_NAME(腳本名稱):增加S連結和K連結
chkconfig --del SERVICE_NAME(腳本名稱):删除S連結和K連結
chkconfig --level 24 服務名 off|on:指定在級别24内為on或off。
98、mktemp
mktemp:建立臨時檔案
mktemp /tmp/file.XX(XX代表系統自動生成的檔案)生成臨時檔案
mktemp -d /tmp/file.xx :生成臨時目錄
99、kill
kill -SIGNAL PID
常用SIGNAL:1:hup 2:INT 9:KILL 15:TERM ctrl+c:是信号2,結束
100、trap指令:可以實作捕捉信号
trap ‘COMMAND’ 信号清單
fg:trap 'echo "you cannot kill me"' INT
101、at
at:指定在未來的某個時間點執行一次某任務
時間格式
絕對時間:HH:MM DD::MM:YY MM/DD/YY
相對時間:now+#(minutes,hours,days,weeks)
模糊時間:noon,midnight,teatime
at -l:顯示自己的作業清單
at -d 作業号:删除作業
102、batch
batch:和at用法相似,隻是執行是在系統空閑的時候執行計劃任務。
103、cron
cron:不間斷允許的服務
系統cron定義格式:
分鐘 小時 天 月 周 使用者 任務
使用者cron任務定義格式
定義檔案/var/spool/cron/USERNAME
格式:分鐘 小時 天 月 周 任務
104、ssh
ssh:遠端連接配接指令
ssh 172.....:直接以目前用戶端上登陸的使用者登陸遠端主機
ssh USERNAME@172....:以某個使用者登陸
ssh -l USERNAME 172....:以某個使用者登陸
ssh USERNAME@HOST`COMMAND`:以某個使用者不登陸遠端主機執行COMMAND指令
105、scp
scp:遠端複制檔案的指令
scp SRC DEST:複制檔案(與cp指令用法相似)
-r
-a
fg: scp USERNAME@HOST:/PATH/TO/SOMEFILE /path/to/local
scp /path/to/local USERNAME@HOST:/PATH/TO/SOMEFILE
106、dig
dig:測試域解析的指令
-t NS . :擷取DNS根域資訊
-t NS chris.com @IP:直接去某個IP查找DNS伺服器。
-t A chris.com:檢視域的A記錄
-t CNAME:檢視别名記錄
-X IP:根據IP查找主機名,反向解析資訊
107、nslookup
nslookup:互動式的檢視主機域名資訊,使用與linux和windows上。
108、screen
screen:模拟多個視窗,視窗關閉後還可以調出來,常用于需要執行很長時間的時候,
如核心編譯
screen -ls:顯示已經建立的螢幕
screen:打開一個新的螢幕
exit:退出目前螢幕
- ln:建立連結檔案
- ln SRC DEST:建立硬連結
- -s:建立軟連接配接
- -i:顯示檔案的inode号
- -v:顯示執行結果
- 硬體連接配接:
- 1、隻能對檔案建立,不能應用于目錄,檔案的硬連結次數為2
- 2、不能誇檔案系統
- 3、建立硬連結會增加檔案被連接配接的次數
- 符号連接配接:
- 1、可應用于目錄
- 2、可以跨檔案系統
- 3、不會增加被連接配接檔案的連接配接次數
- 4、其大小為指定的路徑所包含的字元個數
- ===========================================================================================
- 52、du
- du:顯示目錄下的所有檔案的大小
- -s:顯示目錄大小
- -sh:機關換算後顯示
- ================================================================
- 53、df
- df:顯示整個磁盤分區的使用情況
- -h:顯示空間大小
- ===========================================================================================
- 54、fdisk
- fdisk:磁盤分區
- fdisk /dev/sda
- p:顯示目前磁盤上的分區
- n:建立一個新的分區
- e:擴充分區
- p:主分區
- d:删除一個分區
- w:儲存退出
- q:不儲存退出
- t:修改分區類型
- l:顯示所有支出的分區類型
- ===========================================================================================
- 55、partprobe:把新的分區同步到核心上去。
- 56、mkfs
- mmkfs:建立檔案系統
- mkfs -t FSTYPE 指定分區
- -t可以實作多種系統的格式化 如mkfs -t ext2 /dev/sda5
- 57、mke2fs
- mke2fs:專門管理ext系列的檔案的指令,不跟任何參數,指的是建立ext2
- -j:指的是建立ext3類型檔案系統
- -b BLOCK_SIZE:指定塊大小,預設為4096;可用取值為1024,2048或
- 4096
- -L LABEL: 指定分區卷标;例如 mke2fs -L MYYY /etc/sda5
- -m #:明确指定預留給超級管理者用的快熟百分比 mke2fs -m 3
- /dev/sda5
- -i #:指定為多少個位元組的空間建立一個inode , 預設為8192;這裡給出的
- 數值應該為塊大小的2^n被 mke2fs -i 4096 表示4096個位元組建立一個inode
- -F:強行建立檔案系統;
- -E:用于指定額外的檔案系統屬性;
- -N#:指定inode個數;
- 58、blkid
- blikd:查詢或檢視塊裝置的屬性,其中有包含檔案系統的資訊
- 59、e2lable
- e2lable:專門用于檢視或定義卷标
- 檢視卷标 e2label /dev/sda5
- 設定卷标 e2label 裝置檔案 卷标 :即實作設定卷标 e2label
- /dev/sad6 YYY
- (這裡的裝置檔案即/dev/sda5)
- 60、tune2fs
- tune2fs:調整檔案系統的相關屬性
- -j:不損壞原有資料,将ext2更新為ext3,但是不能降級
- -L LABLE:設定或修改卷标
- -m #:調整預留百分比
- -r #:預留塊數
- -o:設定預設挂載選項,其中有一個是acl,acl是一個功能,但需要挂載才能
- 使用,否則是不能用的
- -c #:指定挂在次數達到#次之後進行自檢,指定0或-1表示關閉此功能,不自
- 檢;
- -i #:可以指定每挂載使用多少天後進行自檢:0或-1表示關閉此功能;
- -l:顯示超級塊内容
- ===========================================================================================
- 61、dumpe2fs
- dumpe2fs:以顯示檔案系統中超級塊資訊或檔案的屬性資訊,同上面的tun2fs -l
- 選項類似,都是很重要的指令,其中也顯示超級塊的資訊,FREE是空閑的意思
- -h:表示隻顯示超級塊中的資訊
- 62、fsck
- fsck:檢查并修複Linux檔案系統
- -t TYPE:指定檔案系統類型
- -a:自動修複
- 63、e2fsck
- e2fsck:專門用來檢查修複ext2或ext3的指令
- -a或-p:自動修複;
- -f :強行修複;
- 64、mount
- mount:挂載檔案系統
- mount 裝置 挂載點
- 裝置
- 裝置檔案:/dev/**
- 卷标:LABLE=""
- UUID:UUID=""
- 挂載點:挂載點就是個目錄
- 1,此目錄沒有被其他程序使用;
- 2,目錄的首先存在;
- 3,目錄中原有的檔案将會暫時隐藏;
- ----------------------------------------------------------------
- mount相關參數
- -a:表示挂載/etc/fstab檔案中指定的所有的檔案系統
- -n:預設情況下,mount每挂載一個裝置,都會把挂載的裝置資訊儲存至
- /etc/mtab檔案;使用-n選項意味着挂載裝置時,不把資訊寫入此檔案;
- -t FSTYPE:指定正在挂載裝置上的檔案系統的類型;不使用此選項時,
- mount會調用blkid指令擷取對應檔案系統的類型;
- -r:隻讀挂載,挂載CD光牒時常用此選項
- -w:讀寫挂載
- -o:指定而外的檔案系統挂載選項,即指定檔案系統啟用的屬性
- async:表示異步寫入
- atime:表示更新時間戳
- noatime:關閉更新時間
- auto:表示這個磁盤裝置能被使用-a選項自動挂載
- remount:重新挂載目前系統
- dev:允許其他磁盤裝置
- ro:挂載為隻讀
- rw:讀寫挂載
- ower:允許普通使用者挂載
- sync:同步啟用
- loop:挂載本地回環裝置
- ==========================================================================================
- 65、umount
- umount:解除安裝
- umount 裝置
- umount 挂載點
- 上面兩個都可以,解除安裝時隻要指定一個就可以了
- 66、free
- free:檢視系統上的實體記憶體和交換記憶體的使用情況,預設位元組
- -m:以M為機關顯示
- buffers是緩沖 cached是緩存:的目的是重複使用,避免過慢的裝置遭
- 67、mkswap
- mkswap:建立交換分區
- swapon /dev/sd*:啟用交換分區
- -a:表示啟用/etc/fstab内的所有交換裝置
- swapoff /edv/** :關閉交換分區
- ===========================================================================================
- 68、dd
- dd:轉換和複制檔案,複制的是最底層的資料流
- if=資料來源 of=資料存儲目标 bs=#多大為一個機關 count=# 複制
- 這樣的資料幾次
- if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1
- 可以用來備份MBR
- 建立回環檔案
- if=/dev/zero of=/var/swapfile bs=1M count=1024這個指令就能
- 創造出一個大小為1G的鏡像檔案,而這個鏡像檔案能夠直接mkswap并且啟動起來都是
- 可以的
- /dev/zero是泡泡裝置,能一直向外吐零
- ===========================================================================================
- 69、fuser
- fuser:驗證進行正在使用的檔案或套接字
- -v:檢視某檔案上正在使用的程序
- -k:把正在通路的程序給kill了
- -km:把挂載點上的程序都關閉掉
- ===========================================================================================
- 70、gzip
- gzip:壓縮,壓縮完成後會删除源檔案
- -d:解壓
- -#:1-9個壓縮級别,預設為6
- gunzip:解壓
- zcat:不解壓的情況,檢視文本GZ檔案的内容
- 71、bzip2
- bzip2 /path/to/somefile
- -d:解壓
- -K:壓縮後不删除原檔案
- bzcat:不解壓的情況,檢視文本bz2檔案的内容
- 72、zip
- zip:壓縮目錄,即歸檔又壓縮的工具
- 壓縮後不删除原檔案
- unzip:解壓
- 73、tar
- tar:能夠實作歸檔的工具,隻歸檔,不壓縮。
- -c:建立歸檔檔案
- -f file.tar:操作的歸檔檔案,是以-f後面必須跟參數,後跟.tar
- -x:展開歸檔檔案,原歸檔檔案不删除
- --xattrs:表示在歸檔的同時,保留檔案的擴充屬性資訊
- -t:不展開歸檔,檢視歸檔了哪些檔案
- -zcf:歸檔并調用gzip壓縮
- -zxf:調用gzip解壓縮并展開歸檔,-z選項可以省略
- -jcf:調用bzip2并歸檔
- -jxf:調用bzip2并展開歸檔
- -Jcf:調用xz
- -JXF:調用xz
- -------------------------------------------------------------------------------------------
- 74、cpio:制作歸檔或展開歸檔檔案
- 75、read
- read:shell腳本内可以實作互動式的操作
- read -p “提示”
- -t:時間限制
- 76、mdadm
- mdadm:制作RAID卷的指令
- -C:建立RAID
- -l:級别
- -n:裝置數
- -a:自動為其建立裝置檔案,後跟yes|no
- -c:指定chunk大小,預設64k
- -x:指定空閑盤格式,提供備援
- -F:監控RAID
- -G:增加RAID
- -A:裝配RAID
- -D:顯示RAID資訊
- -S:停止RAID
- mdadm -D --scan > /etc/mdadm.conf,将目前RAID資訊儲存至配置
- 檔案,一便以後進行裝配
- 77、wathc
- watch:周期性的執行指定指令,并以全屏方式顯示結果
- 格式: watch -n # 'COMMAND'
- -n #:指定周期,機關為妙,預設2秒
- 78、邏輯卷 LV
- pvcreate:建立
- pvmove:挪動資料
- pvremove:擦除pv卷
- pvdisplay:顯示實體卷
- pvscan:掃描系統上有幾個pv
- pvs:檢視pv資訊
- ------------------------------------------------------------------
- 卷組
- vgcreate:建立
- -s #:指定pe大小,預設為4m
- vgreduce:删除vg
- vgmove:移除
- vgextend:把一個實體卷加入此卷組
- vgs:檢視系統上的組卷資訊
- ------------------------------------------------------------------
- 邏輯卷:
- lvcreate:建立
- -L #:指定大小
- -n NAME:指定名字
- lvreduce:模拟損壞
- lvremove:移除lv,後加路徑
- lvextend:擴充
- lvdisplay:檢視lv相關資訊
- lvs:檢視lv資訊
- fg:lvcreate -L 50M -n testlv myvg
- -----------------------------------------------------------------------
- LVM擴充:先擴充實體卷邊界,再擴充邏輯卷
- lvextend -L [+]# /PATH/TO/LV :擴充實體邊界
- resize2fs:擴充邏輯邊界
- resize2fs /PATH/TO/LV 5G:擴充邏輯邊界到5G
- resize2fs -p /PATH/TO/LV:有多大擴充到多大
- mount -a:挂載/etc/fstab檔案内的所有裝置