linux資料總章

linux資料總章2.1

  • 1.0寫的不好抱歉
  • 但是2.0已經(jīng)改了很多
  • 但是錯誤還是無法避免
  • 以后資料會慢慢更新
  • 大家期待吧

命令區(qū)

系統(tǒng)管理與維護命令

date

  • date(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-d, --date=STRING|顯示由 STRING 指定的時間, 而不是當前時間
    |-f, --file=DATEFILE| 顯示 DATEFILE 中每一行指定的時間, 如同將 DATEFILE 中的每行作為 --date 的參數(shù)一樣
    |-r, --reference=FILE| 顯示 FILE 的最后修改時間
    |-R, --rfc-822|根據(jù) RFC-822 指定格式輸出日期
    |-s, --set=STRING|根據(jù) STRING 設置時間
    |-u, --utc, --universal|顯示或設置全球時間(格林威治時間)

clear

  • clear命令用于清除當前屏幕終端上的任何信息肖抱。

alias

  • alias(選項)(參數(shù))
選項 說明
-p 打印已經(jīng)設置的命令別名

blkid

  • blkid -L | -U
  • blkid [-c ] [-ghlLv] [-o] [-s ][-t ] [-w ] [ ...]
  • blkid -p [-s ] [-O ] [-S ][-o] ...
  • blkid -i [-s ] [-o] ...
    | 選項 | 說明 |
    | :-------- | --------:|
    | -c | 指定cache文件(default: /etc/blkid.tab, /dev/null = none)
    | -d| don't encode non-printing characters
    | -h| 顯示幫助信息
    | -g| garbage collect the blkid cache
    | -o | 指定輸出格式
    | -k | list all known filesystems/RAIDs and exit
    | -s | 顯示指定信息侈贷,默認顯示所有信息
    | -t | find device with a specific token (NAME=value pair)
    | -l | look up only first device with token specified by -t
    | -L | convert LABEL to device name
    | -U | convert UUID to device name
    | -v | 顯示版本信息
    | -w | write cache to different file (/dev/null = no write) specify device(s) to probe (default: all devices) Low-level probing options:
    | -p | low-level superblocks probing (bypass cache)
    | -i| gather information about I/O limits
    | -S| overwrite device size
    | -O | probe at the given offset
    | -u | filter by "usage" (e.g. -u filesystem,raid)
    | -n| filter by filesystem type (e.g. -n vfat,ext3)

clock

選項 說明
--adjust 自動調(diào)整硬件時鐘時間
--debug 運行時告希,輸出詳細的處理過程
--directisa 不通過設備文件/etc/rtc驹马,直接對硬件時鐘進行存取
--getepoch 輸出硬件時鐘的數(shù)值到標準輸出
--hctosys 時鐘同步介蛉,使系統(tǒng)時鐘和硬件時鐘同步
--se--date 設置硬件時間
--show 顯示硬件時鐘到標準輸出
--systohc 系統(tǒng)時間寫入硬件時鐘
--test 進行測試
--utc 將硬件時鐘的時間設置為UTC

echo

  • echo(選項)(參數(shù))
選項 說明
\a 發(fā)出警告聲搔课;
\b 刪除前一個字符;
\c 最后不加上換行符號
\f 換行但光標仍舊停留在原來的位置咖祭;
\n 換行且光標移至行首;
\r 光標移至行首蔫骂,但不換行么翰;
\t 插入tab伦仍;
\v 與\f相同塔拳;
\ 插入\字符臀防;
\nnn 插入nnn(八進制) 所代表的ASCII字符唧躲;

exit

  • exit命令同于退出shell古胆,并返回給定值壹哺。在shell腳本中可以終止當前腳本執(zhí)行巍举。執(zhí)行exit可使shell以指定的狀態(tài)值退出檀夹。若不設置狀態(tài)值參數(shù)溶其,則shell以預設值退出骚腥。狀態(tài)值0代表執(zhí)行成功,其他值代表執(zhí)行失敗

logout

  • logout命令用于退出當前登錄的Shell瓶逃,logout指令讓用戶退出系統(tǒng)束铭,其功能和login指令相互對應。

findfs

  • findfs 通過卷標或者uuid查找文件系統(tǒng)厢绝,找到的設備將輸出到標準輸出

hwclock

  • hwclock命令是一個硬件時鐘訪問工具契沫,它可以顯示當前時間、設置硬件時鐘的時間和設置硬件時鐘為系統(tǒng)時間昔汉,也可設置系統(tǒng)時間為硬件時鐘的時間
  • hwclock(選項)
選項 說明
--adjust hwclock每次更改硬件時鐘時懈万,都會記錄在/etc/adjtime文件中。使用--adjust參數(shù),可使hwclock根據(jù)先前的記錄來估算硬件時鐘的偏差会通,并用來校正目前的硬件時鐘
--debug 顯示hwclock執(zhí)行時詳細的信息
--directisa hwclock預設從/dev/rtc設備來存取硬件時鐘口予。若無法存取時,可用此參數(shù)直接以I/O指令來存取硬件時鐘
--hctosys 將系統(tǒng)時鐘調(diào)整為與目前的硬件時鐘一致
--set --date=<日期與時間> 設定硬件時鐘
--show 顯示硬件時鐘的時間與日期
--systohc 將硬件時鐘調(diào)整為與目前的系統(tǒng)時鐘一致
--test 僅測試程序涕侈,而不會實際更改硬件時鐘
--utc 若要使用格林威治時間苹威,請加入此參數(shù),hwclock會執(zhí)行轉換的工作
--version 顯示版本信息

init

  • init命令是Linux下的進程初始化工具驾凶,init進程是所有Linux進程的父進程牙甫,它的進程號為1。init命令是Linux操作系統(tǒng)中不可缺少的程序之一调违,init進程是Linux內(nèi)核引導運行的窟哺,是系統(tǒng)中的第一個進程
  • init(選項)(參數(shù))
選項 說明
0 停機(千萬不能把initdefault 設置為0 )
1 單用戶模式
2 多用戶,沒有 NFS
3 完全多用戶模式(標準的運行級)
4 沒有用到
5 X11 (xwindow) 桌面
6 重新啟動 (千萬不要把initdefault 設置為6 )

iostat

  • iostat命令被用于監(jiān)視系統(tǒng)輸入輸出設備和CPU的使用情況技肩。它的特點是匯報磁盤活動統(tǒng)計情況且轨,同時也會匯報出CPU使用情況
  • 同vmstat一樣,iostat也有一個弱點虚婿,就是它不能對某個進程進行深入分析旋奢,僅對系統(tǒng)的整體情況進行分析
  • iostat(選項)(參數(shù))
選項 說明
-c 僅顯示CPU使用情況;
-d 僅顯示設備利用率然痊;
-k 顯示狀態(tài)以千字節(jié)每秒為單位至朗,而不使用塊每秒;
-m 顯示狀態(tài)以兆字節(jié)每秒為單位剧浸;
-p 僅顯示塊設備和所有被使用的其他分區(qū)的狀態(tài)锹引;
-t 顯示每個報告產(chǎn)生時的時間;
-V 顯示版號并退出唆香;
-x 顯示擴展狀態(tài)

hostname

  • 用來顯示或者設置當前系統(tǒng)的主機名嫌变,主機名被許多網(wǎng)絡程序使用,來標識主機
  • hostname(選項)(參數(shù))
選項 說明
-v 詳細信息模式
-a 顯示主機別名
-d 顯示DNS域名
-f 顯示FQDN名稱
-i 顯示主機的ip地址
-s 顯示短主機名稱躬它,在第一個點處截斷
-y 顯示NIS域名

history

  • history 命令可以用來顯示曾執(zhí)行過的命令腾啥,也可以根據(jù)顯示的治療來重新執(zhí)行需要的命令
  • history(選項)(參數(shù))
選項 說明
-c 清空當前歷史命令
-a 將歷史命令緩沖區(qū)中命令寫入歷史命令文件中
-r 將歷史命令文件中的命令讀入當前歷史命令緩沖區(qū)
-w 將當前歷史命令緩沖區(qū)命令寫入歷史命令文件中

lscpu

  • lscpu,查看 CPU 信息
    | 選項 | 說明 |
    | :-------- | --------:|
    |-h --help | 顯示幫助信息
    |-p --parse |<list> 打印出可讀的格式,而不是一個可解析格式
    |-s --sysroot |<dir> 指定系統(tǒng)根目錄
    |-x --hex| 打印十六進制數(shù)

lsblk

  • lsblk 列出所有的塊設備冯吓,而且還能顯示他們之間的依賴關系
選項 說明
-a, --all 顯示所有設備
-b, --bytes 以bytes方式顯示設備大小
-d, --nodeps 不顯示 slaves 或 holders
-D, --discard print discard capabilities
-e, --exclude 排除設備 (default: RAM disks)
-f, --fs 顯示文件系統(tǒng)信息
-h, --help 顯示幫助信息
-i, --ascii use ascii characters only
-m, --perms 顯示權限信息
-l, --list 使用列表格式顯示
-n, --noheadings 不顯示標題
-o, --output 輸出列
-P, --pairs 使用key="value"格式顯示
-r, --raw 使用原始格式顯示
-t, --topology 顯示拓撲結構信息

lsof

  • lsof(list open files)是一個列出當前系統(tǒng)打開文件的工具
  • lsof(選項)
選項 說明
-a 列出打開文件存在的進程
-c<進程名> 列出指定進程所打開的文件
-g 列出GID號進程詳情
-d<文件號> 列出占用該文件號的進程
+d<目錄> 列出目錄下被打開的文件
+D<目錄> 遞歸列出目錄下被打開的文件
-n<目錄> 列出使用NFS的文件
-i<條件> 列出符合條件的進程倘待。(4、6桑谍、協(xié)議延柠、:端口、 @ip )
-p<進程號> 列出指定進程號所打開的文件
-u 列出UID號進程詳情
-h 顯示幫助信息
-v 顯示版本信息

jobs

  • jobs 顯示后臺運行的程序
  • jobs(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    | -l| 顯示進程號
    | -p| 僅任務對應的顯示進程號
    | -n| 顯示任務狀態(tài)的變化
    | -r| 僅輸出運行狀態(tài)(running)的任務
    | -s| 僅輸出停止狀態(tài)(stoped)的任務

hexdump

  • hexdump命令一般用來查看“二進制”文件的十六進制編碼
  • 但實際上它能查看任何文件锣披,而不只限于二進制文件
  • hexdump [選項] [文件]...
選項 說明
-n length 只格式化輸入文件的前l(fā)ength個字節(jié)。
-C 輸出規(guī)范的十六進制和ASCII碼。
-b 單字節(jié)八進制顯示雹仿。
-c 單字節(jié)字符顯示增热。
-d 雙字節(jié)十進制顯示。
-o 雙字節(jié)八進制顯示胧辽。
-x 雙字節(jié)十六進制顯示峻仇。
-s 從偏移量開始輸出。
-e 指定格式字符串邑商,格式字符串包含在一對單引號中摄咆,格式字符串形如:'a/b "format1" "format2"'

htop

  • htop是一款運行于Linux系統(tǒng)監(jiān)控與進程管理軟件,用于取代Unix下傳統(tǒng)的top人断。與top只提供最消耗資源的進程列表不同吭从,htop提供所有進程的列表,并且使用彩色標識出處理器恶迈、swap和內(nèi)存狀態(tài)

| Shortcut Key | Function Key | Description | 中文說明
| :-------- | --------:|
| h, ?| F1| Invoke htop Help | 查看htop使用說明
| S | F2 | Htop Setup Menu | htop| 設定
| / | F3| Search for a Process | 搜索進程
| \ | F4 | Incremental process filtering | 增量進程過濾器
| t | F5 | Tree View | 顯示樹形結構
| <, >| F6 | Sort by a column | 選擇排序方式
| [ | F7 | Nice - (change priority) | 可減少nice值涩金,這樣就可以提高對應進程的優(yōu)先級
| ]| F8| Nice + (change priority) | 可增加nice值,這樣就可以降低對應進程的優(yōu)先級
| k | F9 | Kill a Process | 可對進程傳遞信號
| q | F10 | Quit htop| 結束htop

fuser

  • fuser命令用于報告進程使用的文件和網(wǎng)絡套接字暇仲。fuser命令列出了本地進程的進程號步做,那些本地進程使用file,參數(shù)指定的本地或遠程文件奈附。對于阻塞特別設備全度,此命令列出了使用該設備上任何文件的進程
  • fuser(選項)(參數(shù))
選項 說明
-l 顯示信號
-4 IPv4
-6 IPv6
-a 與程序相關的所有文件
-k 刪除程序相關的所有文件
-I 互交模式
-s 不顯示處理信息
-u PID顯示用戶名
-v 運行時,顯示相信處理信息
- 清零
-m 掛載文件系統(tǒng)
-signal 發(fā)送信號
-n 指定關鍵字進行搜索,如 文件斥滤、UDP讼载、TCP
-V 顯示版本顯示
【文件類型說明】
c 當前目錄
e 擴展
f 打開的文件
r 跟目錄
m 共享庫

finger

  • finger命令用于查找并顯示用戶信息。包括本地與遠端主機的用戶皆可中跌,帳號名稱沒有大小寫的差別咨堤。單獨執(zhí)行finger指令,它會顯示本地主機現(xiàn)在所有的用戶的登陸信息漩符,包括帳號名稱洲愤,真實姓名,登入終端機渊鞋,閑置時間孵淘,登入時間以及地址和電話
選項 說明
-l 列出該用戶的帳號名稱,真實姓名闷沥,用戶專屬目錄萎战,登入所用的Shell,登入時間舆逃,轉信地址蚂维,電子郵件狀態(tài)戳粒,還有計劃文件和方案文件內(nèi)容;
-m 排除查找用戶的真實姓名虫啥;
-s 列出該用戶的帳號名稱蔚约,真實姓名,登入終端機涂籽,閑置時間苹祟,登入時間以及地址和電話;
-p 列出該用戶的帳號名稱评雌,真實姓名树枫,用戶專屬目錄,登入所用的Shell景东,登入時間砂轻,轉信地址,電子郵件狀態(tài)耐薯,但不顯示該用戶的計劃文件和方案文件內(nèi)容舔清。

e2fsck

  • e2fsck(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    | -a| 不詢問使用者意見,便自動修復文件系統(tǒng)
    | -b| 指定superblock曲初,而不使用預設的superblock
    | -B<區(qū)塊大小>| :指定區(qū)塊的大小体谒,單位為字節(jié)
    | -c| 一并執(zhí)行badblocks,以標示損壞的區(qū)塊
    | -C| 將檢查過程的信息完整記錄在file descriptor中臼婆,使得整個檢查過程都能完整監(jiān)控
    | -d|顯示排錯信息
    | -f|即使文件系統(tǒng)沒有錯誤跡象抒痒,仍強制地檢查正確性
    | -F|執(zhí)行前先清除設備的緩沖區(qū)
    | -l<文件>|將文件中指定的區(qū)塊加到損壞區(qū)塊列表
    | -L<文件>|先清除損壞區(qū)塊列表,再將文件中指定的區(qū)塊加到損壞區(qū)塊列表颁褂。因此損壞區(qū)塊列表的區(qū)塊跟文件中指定的區(qū)塊是一樣的
    | -n|以只讀模式開啟文件系統(tǒng)故响,并采取非互動方式執(zhí)行,所有的問題對話均設置以"no"回答
    | -p|不詢問使用者意見颁独,便自動修復文件系統(tǒng)
    | -r|此參數(shù)只為了兼容性而存在彩届,并無實際作用
    | -s|如果文件系統(tǒng)的字節(jié)順序不適當,就交換字節(jié)順序誓酒,否則不做任何動作
    | -S|不管文件系統(tǒng)的字節(jié)順序樟蠕,一律交換字節(jié)順序
    | -t|顯示時間信息
    | -v|執(zhí)行時顯示詳細的信息
    | -V|顯示版本信息
    | -y|采取非互動方式執(zhí)行,所有的問題均設置以"yes"回答

chage

  • chage [選項] 用戶名
選項 說明
-m 密碼可更改的最小天數(shù)靠柑。為零時代表任何時候都可以更改密碼
-M 密碼保持有效的最大天數(shù)
-w 用戶密碼到期前寨辩,提前收到警告信息的天數(shù)
-E 帳號到期的日期。過了這天歼冰,此帳號將不可用
-d 上一次更改的日期
-i 停滯時期靡狞。如果一個密碼已過期這些天,那么此帳號將不可用
-l 例出當前的設置隔嫡。由非特權用戶來確定他們的密碼或帳號何時過期

chfn

  • chfn(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-f<真實姓名>或--full-name<真實姓名>|設置真實姓名
    | -h<家中電話>或--home-phone<家中電話>|設置家中的電話號碼
    | -o<辦公地址>或--office<辦公地址>|設置辦公室的地址
    | -p<辦公電話>或--office-phone<辦公電話>|設置辦公室的電話號碼
    | -u或--help|在線幫助
    | -v或-version|顯示版本信息

chsh

  • chsh(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-s或--shell|更改系統(tǒng)預設的shell環(huán)境
    | -l或--list-shells|列出目前系統(tǒng)可用的shell清單
    |-u或--help|在線幫助
    | -v或-version|顯示版本信息

crontab

  • crontab(選項)(參數(shù))
選項 說明
-e 編輯該用戶的計時器設置
-l 列出該用戶的計時器設置
-r 刪除該用戶的計時器設置
-u<用戶名稱> 指定要設定計時器的用戶名稱

compress

  • compress(選項)(參數(shù))
選項 說明
-f 不提示用戶甸怕,強制覆蓋掉目標文件
-c 將結果送到標準輸出甘穿,無文件被改變
-r 遞歸的操作方式
-b<壓縮效率> 壓縮效率是一個介于9~16的數(shù)值,預設值為"16"蕾各,指定愈大的數(shù)值扒磁,壓縮效率就愈高
-d 對文件進行解壓縮而非壓縮
-v 顯示指令執(zhí)行過程
-V 顯示指令版本及程序預設值庆揪。

chown

  • chown(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    | -c或——changes|效果類似“-v”參數(shù)式曲,但僅回報更改的部分
    | -f或--quite或——silent|不顯示錯誤信息
    | -h或--no-dereference|只對符號連接的文件作修改,而不更改其他任何相關文件
    | -R或——recursive|遞歸處理缸榛,將指定目錄下的所有文件及子目錄一并處理
    | -v或——version|顯示指令執(zhí)行過程

dumpe2fs

  • dumpe2fs(選項)(參數(shù))
選項 說明
-b 打印文件系統(tǒng)中預留的塊信息
-ob<超級塊> 指定檢查文件系統(tǒng)時使用的超級塊
-OB<塊大小> 檢查文件系統(tǒng)時使用的指定的塊大小
-h 僅顯示超級塊信息
-i 從指定的文件系統(tǒng)映像文件中讀取文件系統(tǒng)信息
-x 以16進制格式打印信息塊成員

declare

  • declare(選項)(參數(shù))
選項 說明
-a 聲明數(shù)組變量
-f 顯示函數(shù)
-i 聲明整數(shù)型變量
-x 設置變量為環(huán)境變量,同export命令功能相同
-r 設置變量為只讀
+/- 改變屬性 “-” 設置吝羞,+“+”取消

resize2fs

  • resize2fs(選項)(參數(shù))
選項 說明
-d :打開調(diào)試特性
-p :打印已完成的百分比進度條
-f :強制執(zhí)行調(diào)整大小操作,覆蓋掉安全檢查操作
-F :開始執(zhí)行調(diào)整大小前内颗,刷新文件系統(tǒng)設備的緩沖區(qū)

at

  • at(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    | -f | 指定包含具體指令的任務文件|
    | -q | 指定新任務的隊列名稱|
    | -l | 顯示待執(zhí)行任務的列表 |
    | -d | 刪除指定的待執(zhí)行任務 |
    | -m | 任務執(zhí)行完成后向用戶發(fā)送E-mail |

atrm

  • atrm(選項)(參數(shù))
選項 說明
-v 顯示版本號

bc

  • bc(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-i|強制進入交互式模式|
    | -l|定義使用的標準數(shù)學庫|
    | -w|對POSIX bc的擴展給出警告信息|
    | -q|不打印正常的GNU bc環(huán)境信息|
    | -v|顯示指令版本信息|
    | -h|顯示指令的幫助信息|
  • ifcfg命令是一個Bash腳本程序钧排,用來設置Linux中的網(wǎng)絡接口參數(shù)
  • ifcfg(參數(shù))
選項 說明
-e 文件存在
-f 文件是一個 普通文件(不是一個目錄或設備文件)
-s 文件大小不為零
-d 文件是一個 目錄
-b 文件是一個 塊設備(軟盤 、光驅(qū)均澳、 等)
-c 文件是一個 字符設備(鍵盤恨溜、調(diào)制解調(diào)器、聲卡找前、等)
-p 文件是一個 管道
-h 文件是一個 符號鏈接
-n 判斷變量是否有值
-r 文件是否可讀
-w 文件是否可寫
-x 文件是否可執(zhí)行
-z 代表的是該變量是否有值
-S 文件是一個 socket

查看文件及內(nèi)容處理命令

cat

  • cd (選項) (參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-n或-number|有1開始對所有輸出的行數(shù)編號
    |-b或--number-nonblank|和-n相似糟袁,只不過對于空白行不編號
    | -s或--squeeze-blank|當遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
    | -A|顯示不可打印字符躺盛,行尾顯示“$”
    | -e|等價于"-vE"選項
    | -t|等價于"-vT"選項

ln

  • lsblk命令用于列出所有可用塊設備的信息项戴,而且還能顯示他們之間的依賴關系,但是它不會列出RAM盤的信息
    | 選項 | 說明 |
    | :-------- | --------:|
    | -a| --all 顯示所有設備
    | -b| --bytes 以bytes方式顯示設備大小
    | -d| --nodeps 不顯示 slaves 或 holders
    | -D| --discard print discard capabilities
    | -e| --exclude 排除設備 (default: RAM disks)
    | -f| --fs 顯示文件系統(tǒng)信息
    | -h| --help 顯示幫助信息
    | -i| --ascii use ascii characters only
    | -m| --perms 顯示權限信息
    | -l| --list 使用列表格式顯示
    | -n| --noheadings 不顯示標題
    | -o| --output 輸出列
    | -P| --pairs 使用key="value"格式顯示
    | -r| --raw 使用原始格式顯示
    | -t| --topology 顯示拓撲結構信息
選項 說明
-name 按照文件名查找文件槽惫。
-perm 按照文件權限來查找文件周叮。
-prune 使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用了- depth選項界斜,那么-prune選項將被find命令忽略仿耽。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件各薇。
-mtime -n +n 按照文件的更改時間來查找文件项贺, -n表示文件更改時間距現(xiàn)在n天以內(nèi),+n表示文件更改時間距現(xiàn)在n天以前得糜。
find 命令還有-atime和-ctime選項敬扛,但它們都和-mtime選項相似,所以我們在這里只介紹-mtime選項朝抖。
-nogroup 查找無有效所屬組的文件啥箭,即該文件所屬的組在/etc/groups中不存在。
-nouser 查找無有效屬主的文件治宣,即該文件的屬主在/etc/passwd中不存在急侥。
-newer file1 ! file2 查找更改時間比文件file1新但比文件file2舊的文件砌滞。
-type 查找某一類型的文件斗躏,諸如:
b - 塊設備文件派草。
d - 目錄。
c - 字符設備文件掂墓。
p - 管道文件铝宵。
l - 符號鏈接文件打掘。
f - 普通文件。
s - socket文件
-size n[c] 查找文件長度為n塊的文件鹏秋,帶有c時表示文件長度以字節(jié)計尊蚁。
-depth 在查找文件時,首先查找當前目錄中的文件侣夷,然后再在其子目錄中查找横朋。
-maxdepth 查找最大目錄層數(shù) 如 1,即只查找一層目錄
-fstype 查找位于某一類型文件系統(tǒng)中的文件百拓,這些文件系統(tǒng)類型通城俣В可以在配置文件
/etc/fstab 中找到,該配置文件中包含了本系統(tǒng)中有關文件系統(tǒng)的信息衙传。
-mount 在查找文件時不跨越文件系統(tǒng)mount點决帖。
-follow 如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件粪牲。
-cpio 對匹配的文件使用cpio命令古瓤,將這些文件備份到磁帶設備中。

cal

  • cal(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-1 | 查看一個月內(nèi)的日歷
    |-3 | 查看三個月內(nèi)的日歷
    |-h | 關閉高亮顯示
    |-j |查看羅馬日歷
    |-m |已星期一開頭腺阳,顯示日歷
    |-s | 已星期日開頭落君,顯示日歷
    |-y | 查看12個月的日歷

cut

  • cut(選項)(參數(shù))
選項 說明
-b 僅顯示行中指定直接范圍的內(nèi)容
-c 僅顯示行中指定范圍的字符
-d 指定字段的分隔符,默認的字段分隔符為“TAB”
-f 顯示指定字段的內(nèi)容
-n 與“-b”選項連用亭引,不分割多字節(jié)字符

hash

  • hash 命令:用來顯示和清除哈希表绎速,執(zhí)行命令的時候,系統(tǒng)將先查詢哈希表
  • hash (選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-l |顯示哈希表
    |-r| 清除哈希表
    |-d<名稱> |清除哈希表
    |-p<路徑>| 向哈希表中增加內(nèi)容
    |-t<命令> |顯示命令的完整路徑

file

  • file命令用來探測給定文件的類型焙蚓。file命令對文件的檢查分為文件系統(tǒng)纹冤、魔法幻數(shù)檢查和語言檢查3個過程
  • file(選項)(參數(shù))
選項 說明
-b 列出辨識結果時,不顯示文件名稱
-c 詳細顯示指令執(zhí)行過程购公,便于排錯或分析程序執(zhí)行的情形
-f<名稱文件> 指定名稱文件萌京,其內(nèi)容有一個或多個文件名稱時,讓file依序辨識這些文件宏浩,格式為每列一個文件名稱
-L 直接顯示符號連接所指向的文件類別
-m<魔法數(shù)字文件> 指定魔法數(shù)字文件
-v 顯示版本信息
-z 嘗試去解讀壓縮文件的內(nèi)容

head

  • head命令用于顯示文件的開頭的內(nèi)容知残。在默認情況下,head命令顯示文件的頭10行內(nèi)容
  • head(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    | -c| 顯示每個文件的前K 字節(jié)內(nèi)容比庄;
    | -n| 顯示每個文件的前K 行內(nèi)容求妹;
    | -q| 不顯示包含給定文件名的文件頭
    | -v| 總是顯示包含給定文件名的文件頭

nano

  • nano是一個字符終端的文本編輯器乏盐,有點像DOS下的editor程序。它比vi/vim要簡單得多制恍,比較適合Linux初學者使用父能。某些Linux發(fā)行版的默認編輯器就是nano
  • nano [選項] [[+行,列] 文件名]...
  • 由于用的過少不過多介紹

chattr

  • chattr(選項)
    | 選項 | 說明 |
    | :-------- | --------:|
    |-R|:遞歸處理,將指令目錄下的所有文件及子目錄一并處理
    | -v<版本編號>|設置文件或目錄版本
    | -V|顯示指令執(zhí)行過程
    | +<屬性>|開啟文件或目錄的該項屬性
    | -<屬性>|關閉文件或目錄的該項屬性
    | =<屬性>|指定文件或目錄的該項屬性

locate

  • locate命令和slocate命令都用來查找文件或目錄
  • locate/slocate(選項)(參數(shù))
選項 說明
-b, --basename 匹配唯一的路徑名稱的基本文件名
-c, --count 只顯示找到條目的號碼
-d, --database DBPATH 用 DBPATH 替代默認的數(shù)據(jù)庫(/var/lib/mlocate/mlocate.db)
-e, --existing 只顯示當前存在的文件條目
-L, --follow 當文件存在時跟隨蔓延的符號鏈接 (默認)
-h, --help 顯示本幫助
-i, --ignore-case 匹配模式時忽略大小寫區(qū)別
-l, --limit, -n LIMIT 限制為 LIMIT項目的輸出 (或 計數(shù))
-m, --mmap 忽略向后兼容性
-P, --nofollow, -H 當檢查文件時不跟隨蔓延的符號鏈接
-0, --null 輸出時以 NUL 分隔項目
-S, --statistics 不搜索項目,顯示有關每個已用數(shù)據(jù)庫的統(tǒng)計信息
-q, --quiet 不報告關于讀取數(shù)據(jù)庫的錯誤消息
-r, --regexp REGEXP 搜索基本正則表達式 REGEXP 來代替模式
--regex 模式是擴展正則表達式
-s, --stdio 忽略向后兼容性
-V, --version 顯示版本信息
-w, --wholename 匹配完整路徑名 (默認)

more

  • more命令是一個基于vi編輯器文本過濾器净神,它以全屏幕的方式按頁顯示文本文件的內(nèi)容何吝,支持vi中的關鍵字定位操作。
  • more名單中內(nèi)置了若干快捷鍵强挫,常用的有H(獲得幫助信息)岔霸,Enter(向下翻滾一行)薛躬,空格(向下滾動一屏)俯渤,Q(退出命令)

less

  • less命令的作用與more十分相似,都可以用來瀏覽文字檔案的內(nèi)容型宝,不同的是less命令允許用戶向前或向后瀏覽文件八匠,而more命令只能向前瀏覽。用less命令顯示文件時趴酣,用PageUp鍵向上翻頁梨树,用PageDown鍵向下翻頁。要退出less程序岖寞,應按Q鍵
  • less(選項)(參數(shù))
選項 說明
-b<緩沖區(qū)大小> 設置緩沖區(qū)的大小
-e 當文件顯示結束后抡四,自動離開
-f 強迫打開特殊文件,例如外圍設備代號仗谆、目錄和二進制文件
-g 只標志最后搜索的關鍵詞
- i 忽略搜索時的大小寫
-m 顯示類似more命令的百分比
-N 顯示每行的行號
-o<文件名> 將less 輸出的內(nèi)容在指定文件中保存起來
-Q 不使用警告音
-s 顯示連續(xù)空行為一行
-S 行過長時間將超出部分舍棄
-x<數(shù)字> 將“tab”鍵顯示為規(guī)定的數(shù)字空格

tail

  • tail命令用于輸入文件中的尾部內(nèi)容指巡。tail命令默認在屏幕上顯示指定文件的末尾10行。如果給定的文件不止一個隶垮,則在顯示的每個文件前面加一個文件名標題藻雪。如果沒有指定文件或者文件名為“-”,則讀取標準輸入
選項 說明
-c --bytes=N輸出最后N個字節(jié)
-f --follow[={name descriptor}]當文件增長時,輸出后續(xù)添加的數(shù)據(jù); -f, --follow以及 --follow=descriptor 都是相同的意思
-n --lines=N輸出最后N行,而非默認的最后10行
-q --quiet, --silent從不輸出給出文件名的首部
-s --sleep-interval=S 與-f合用,表示在每次反復的間隔休眠S秒
-v, --verbose 總是輸出給出文件名的首部

split

  • 分割文件為不同的小片段

paste

  • 按行合并文件內(nèi)容

sort

  • sort命令是在Linux里非常有用狸吞,它將文件進行排序勉耀,并將排序結果標準輸出。sort命令既可以從特定的文件蹋偏,也可以從stdin中獲取輸入
選項 說明
-b 忽略每行前面開始出的空格字符
-c 檢查文件是否已經(jīng)按照順序排序
-d 排序時便斥,處理英文字母、數(shù)字及空格字符外威始,忽略其他的字符
-f 排序時枢纠,將小寫字母視為大寫字母
-i 排序時,除了040至176之間的ASCII字符外字逗,忽略其他的字符
-m 將幾個排序號的文件進行合并
-M 將前面3個字母依照月份的縮寫進行排序
-n 依照數(shù)值的大小排序
-o<輸出文件> 將排序后的結果存入制定的文件
-r 以相反的順序來排序
-t<分隔字符> 指定排序時所用的欄位分隔字符
+<起始欄位>-<結束欄位> 以指定的欄位來排序京郑,范圍由起始欄位到結束欄位的前一欄位

uniq

  • 去除重復行

wc

  • wc命令用來計算數(shù)字
  • 選項 說明
    -c或--bytes或——chars 只顯示Bytes數(shù)宅广;
    -l或——lines 只顯示列數(shù);
    -w或——words 只顯示字數(shù)些举。
    利用wc指令我們可以計算文件的Byte數(shù)跟狱、字數(shù)或是列數(shù),若不指定文件名稱户魏,或是所給予的文件名為“-”驶臊,則wc指令會從標準輸入設備讀取數(shù)據(jù)
    選項 說明
    -c或--bytes或——chars 只顯示Bytes數(shù);
    -l或——lines 只顯示列數(shù)叼丑;
    -w或——words 只顯示字數(shù)关翎。

iconv

  • 轉換文件的編碼格式

dos2unix

  • 將DOS格式文件轉換UNIX格式

diff

  • 全拼difference,比較文件的差異,常用于文本文件

vimdiff

  • 命令行可視化文件比較工具鸠信,常用于文本文件

rev

  • rev 顯示最后一個字符顯示到第一個字符
  • 反向輸出文件內(nèi)容

grep/egrep

  • 過濾字符串纵寝,三劍客老三

join

  • 按兩個文件的相同字段進行合并

tr

  • 替換或刪除字符串

vi/vim

  • 命令行文本編輯器

文件壓縮及解壓縮命令

bzip2

  • bzip2(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    | -c或—stdout| 將壓縮與解壓縮的結果送到標準輸出
    | -d或—decompress| 執(zhí)行解壓縮
    | -f或-force| bzip2在壓縮或解壓縮時,若輸出文件與現(xiàn)有文件同名,預設不會覆蓋現(xiàn)有文件若要覆蓋。請使用此參數(shù)
    | -h或—help| 在線幫助
    | -k或—keep| bzip2在壓縮或解壓縮后咆霜,會刪除原始文件娱局。若要保留原始文件,請使用此參數(shù)
    | -s或—small| 降低程序執(zhí)行時內(nèi)存的使用量;
    | -t或—test| 測試.bz2壓縮文件的完整性
    | -v或—verbose|壓縮或解壓縮文件時,顯示詳細的信息
    | -z或—compress|強制執(zhí)行壓縮
    | -V或—version|顯示版本信息
    | --repetitive-best|若文件中有重復出現(xiàn)的資料時,可利用此參數(shù)提高壓縮效果
    | --repetitive-fast|若文件中有重復出現(xiàn)的資料時胧沫,可利用此參數(shù)加快執(zhí)行效果

gzip

  • gzip命令用來壓縮文件。gzip是個使用廣泛的壓縮程序占业,文件經(jīng)它壓縮過后绒怨,其名稱后面會多處“.gz”擴展名
選項 說明
-a或--ascii 使用ASCII文字模式。
-c或--stdout或--to-stdout 把解壓后的文件輸出到標準輸出設備纺酸。
-f或-force 強行解開壓縮文件窖逗,不理會文件名稱或硬連接是否存在以及該文件是否為符號連接。
-h或--help 在線幫助餐蔬。
-l或--list 列出壓縮文件的相關信息碎紊。
-L或--license 顯示版本與版權信息。
-n或--no-name 解壓縮時樊诺,若壓縮文件內(nèi)含有遠來的文件名稱及時間戳記仗考,則將其忽略不予處理。
-N或--name 解壓縮時词爬,若壓縮文件內(nèi)含有原來的文件名稱及時間戳記秃嗜,則將其回存到解開的文件上。
-q或--quiet 不顯示警告信息。
-r或--recursive 遞歸處理锅锨,將指定目錄下的所有文件及子目錄一并處理叽赊。
-S<壓縮字尾字符串>或--suffix<壓縮字尾字符串> 更改壓縮字尾字符串。
-t或--test 測試壓縮文件是否正確無誤必搞。
-v或--verbose 顯示指令執(zhí)行過程必指。
-V或--version 顯示版本信息

bunzip2

  • bunzip2(選項)(參數(shù))
選項 說明
-f或-force 解壓縮時,若輸出的文件與現(xiàn)有文件同名時恕洲,預設不會覆蓋現(xiàn)有的文件
-k或—keep 在解壓縮后塔橡,預設會刪除原來的壓縮文件。若要保留壓縮文件霜第,請使用此參數(shù)
-s或—small 降低程序執(zhí)行時葛家,內(nèi)存的使用量
-v或—verbose 解壓縮文件時,顯示詳細的信息
-l泌类,-license 顯示版本信息
-V或—version 顯示版本信息

dd

  • dd(選項)
選項 說明
bs=<字節(jié)數(shù)> 將ibs(輸入)與歐巴桑(輸出)設成指定的字節(jié)數(shù)
cbs=<字節(jié)數(shù)> 轉換時癞谒,每次只轉換指定的字節(jié)數(shù)
conv=<關鍵字> 指定文件轉換的方式
count=<區(qū)塊數(shù)> 僅讀取指定的區(qū)塊數(shù)
ibs=<字節(jié)數(shù)> 每次讀取的字節(jié)數(shù)
obs=<字節(jié)數(shù)> 每次輸出的字節(jié)數(shù)
of=<文件> 輸出到文件
seek=<區(qū)塊數(shù)> 一開始輸出時,跳過指定的區(qū)塊數(shù)
skip=<區(qū)塊數(shù)> 一開始讀取時末誓,跳過指定的區(qū)塊數(shù)

cpio

  • cpio(選項)
    | 選項 | 說明 |
    | :-------- | --------:|
    |-0或--null |接受新增列控制字符扯俱,通常配合find指令的“-print0”參數(shù)使用
    |-a或--rest-access-time |重新設置文件的存取時間
    | -A或--append |附加到已存在的備份文檔中,且這個備份文檔必須存放在磁盤上喇澡,而不能放置于磁帶機里
    | -b或--awap |此參數(shù)的效果和同時指定“-ss”參數(shù)相同;
    | -B |將輸入/輸出的區(qū)塊大小改成5210Bytes
    | -c |使用舊ASCII備份格式
    | -C<區(qū)塊大小>或--io-size=<區(qū)塊大小> |設置輸入/輸出的區(qū)塊大小殊校,單位是Byte
    | -d或--make-directories |如有需要cpio會自行建立目錄
    | -E<范本文件>或--pattern-file=<范本文件> |指定范本文件晴玖,其內(nèi)含有一個或多個范本樣式,讓cpio解開符合范本條件的文件为流,格式為每列一個范本樣式
    | -f或--nonmatching |讓cpio解開所有不符合范本條件的文件
    | -F<備份檔>或--file=<備份檔> |指定備份檔的名稱呕屎,用來取代標準輸入或輸出,也能借此通過網(wǎng)絡使用另一臺主機的保存設備存取備份檔
    | -H<備份格式> |指定備份時欲使用的文件格式
    | -i或--extract |執(zhí)行copy-in模式敬察,還原備份檔
    | -l<備份檔> |指定備份檔的名稱秀睛,用來取代標準輸入,也能借此通過網(wǎng)絡使用另一臺主機的保存設備讀取備份檔
    | -k |此參數(shù)將忽略不予處理莲祸,僅負責解決cpio不同版本間的兼容性問題
    | -l或--link |以硬連接的方式取代復制文件蹂安,可在copy-pass模式下運用
    | -L或--dereference |不建立符號連接,直接復制該連接所指向的原始文件
    | -m或preserve-modification-time |不去更改文件的更改時間
    | -M<回傳信息>或--message=<回傳信息> |設置更換保存媒體的信息
    | -n或--numeric-uid-gid |使用“-tv”參數(shù)列出備份檔的內(nèi)容時锐帜,若再加上參數(shù)“-n”田盈,則會以用戶識別和群組識別碼替代擁有者和群組名稱列出文件清單
    | -o或--create |執(zhí)行copy-out模式,建立備份檔
    | -O<備份檔> |指定備份檔的名稱缴阎,用來取代標準輸出允瞧,也能借此通過網(wǎng)絡使用另一臺主機的保存設備存放備份檔
    | -p或--pass-through |執(zhí)行copy-pass模式,略過備份步驟,直接將文件復制到目的目錄述暂; -r或--rename:當有文件名稱需要更改時痹升,采用互動模式
    |-s或--swap-bytes |交換每隊字節(jié)的內(nèi)容
    | -S或--swap-halfwords |交換每半個字節(jié)的內(nèi)容
    | -t或--list |將輸入的內(nèi)容呈現(xiàn)出來
    | -u或--unconditional |置換所有文件,不論日期時間的新舊與否畦韭,皆不予詢問而直接覆蓋
    |-v或--verbose |詳細顯示指令的執(zhí)行過程
    | -V或--dot |執(zhí)行指令時视卢。在每個文件的執(zhí)行程序前面加上“.”號
    | --block-size=<區(qū)塊大小> |設置輸入/輸出的區(qū)塊大小,假如設置數(shù)值為5廊驼,則區(qū)塊大小為2500据过,若設置成10,則區(qū)塊大小為5120妒挎,以此類推
    | --force-local |強制將備份檔存放在本地主機
    |--no-absolute-filenames |使用相對路徑建立文件名稱绳锅;
    | --quiet |不顯示復制了多少區(qū)塊
    | --sparse |倘若一個文件內(nèi)含有大量的連續(xù)0字節(jié),則將此文件存在稀疏文件酝掩; --version:顯示版本信息

gunzip

  • gunzip命令用來解壓縮文件鳞芙。gunzip是個使用廣泛的解壓縮程序,它用于解開被gzip壓縮過的文件期虾,這些壓縮文件預設最后的擴展名為.gz原朝。事實上gunzip就是gzip的硬連接,因此不論是壓縮或解壓縮镶苞,都可通過gzip指令單獨完成
    -gunzip是gzip的硬鏈接喳坠,請參考gzip

bzcat

  • bzcat(參數(shù))
  • bz2壓縮文件:指定要顯示內(nèi)容的.bz2壓縮文件

xz

  • xz命令是壓縮,解壓縮.xz后綴的文件
選項 說明
-z, --compress 強制壓縮
-d, --decompress 強制解壓縮
-t, --test 測試壓縮文件的完整性
-l, --list 列出壓縮文件中的相關信息
-k, --keep 壓縮但不刪除茂蚓,輸入文件
-f, --force 解壓強制覆蓋文件
-c, --stdout 標準輸入壕鹉,但不刪除文件
-0 .. -9 壓縮等級;0-2快速壓縮,3-5辦好壓縮聋涨,6-9優(yōu)異的壓縮晾浴,默認為6

uname

  • uname命令用于打印當前系統(tǒng)相關信息(內(nèi)核版本號、硬件架構牍白、主機名稱和操作系統(tǒng)類型等)脊凰。
選項 說明
-a或--all 顯示全部的信息;
-m或--machine 顯示電腦類型茂腥;
-n或-nodename 顯示在網(wǎng)絡上的主機名稱狸涌;
-r或--release 顯示操作系統(tǒng)的發(fā)行編號;
-s或--sysname 顯示操作系統(tǒng)名稱础芍;
-v 顯示操作系統(tǒng)的版本
-p或--processor 輸出處理器類型或"unknown"毫痕;
-i或--hardware-platform 輸出硬件平臺或"unknown"蜡塌;
-o或--operating-system 輸出操作系統(tǒng)名稱榨汤;

unset

  • unset命令用于刪除已定義的shell變量(包括環(huán)境變量)和shell函數(shù)
  • unset命令不能夠刪除具有只讀屬性的shell變量和環(huán)境變量
    | 選項 | 說明 |
    | :-------- | --------:|
    | -f| 僅刪除函數(shù)
    | -v| 僅刪除變量

uncompress

  • uncompress命令用來解壓縮由compress命令壓縮后產(chǎn)生的“.Z”壓縮包
選項 說明
-f 不提示用戶屁魏,強制覆蓋掉目標文件
-c 將結果送到標準輸出,無文件被改變
-r 遞歸的操作方式

zcat

  • zcat命令用于不真正解壓縮文件,就能顯示壓縮包中文件的內(nèi)容的場合
選項 說明
-S 指定gzip格式的壓縮包的后綴歼捐。
-c 將文件內(nèi)容寫到標注輸出何陆;
-d 執(zhí)行解壓縮操作;
-l 顯示壓縮包中文件的列表
-L 顯示軟件許可信息豹储;
-q 禁用警告信息贷盲;
-r 在目錄上執(zhí)行遞歸操作;
-t 測試壓縮文件的完整性剥扣;
-V 顯示指令的版本信息巩剖;
-l 更快的壓縮速度;
-9 更高的壓縮比钠怯。

有關磁盤與文件系統(tǒng)的命令

df

  • df(選項)(參數(shù))
選項 說明
-a, --all 列出包括BLOCK為0的文件系統(tǒng)
--block-size=SIZE use SIZE-byte blocks 指定塊的大小
-h,--huma-readable 用常見的格式顯示出大小(例如:1K 234M 2G)
-H,--si 同上,但是這里的1k等于1000字節(jié)而不是1024字節(jié)
-i, --inodes 用信息索引點代替塊表示使用狀況
-k, --kilobytes 指定塊大小等于1024字節(jié)來顯示使用狀況
-l, --local 只顯示本地文件系統(tǒng)使用狀況
-m, --megabytes 以指定塊大小等于1048576字節(jié)(1M)來顯示使用狀況
--no-sync 在取得使用信息前禁止調(diào)用同步 (default)
-P, --portability 使用POSIX格式輸出
--sync 在取得使用信息前調(diào)用同步
-t, --type=TYPE 只顯示指定類型(TYPE)的文件系統(tǒng)
-T, --print-type 輸出每個文件系統(tǒng)的類型
-x, --exclude-type=TYPE 只顯示指定類型(TYPE)之外的文件系統(tǒng).
-v (忽略)

fsck

  • fsck(選項)(參數(shù))
  • fsck命令被用于檢查并且試圖修復文件系統(tǒng)中的錯誤佳魔。當文件系統(tǒng)發(fā)生錯誤四化晦炊,可用fsck指令嘗試加以修復
    | 選項 | 說明 |
    | :-------- | --------:|
    | -a| 自動修復文件系統(tǒng)鞠鲜,不詢問任何問題
    | -A| 依照/etc/fstab配置文件的內(nèi)容,檢查文件內(nèi)所列的全部文件系統(tǒng)
    | -N| 不執(zhí)行指令断国,僅列出實際執(zhí)行會進行的動作
    | -P| 當搭配"-A"參數(shù)使用時贤姆,則會同時檢查所有的文件系統(tǒng)
    | -r| 采用互動模式,在執(zhí)行修復時詢問問題稳衬,讓用戶得以確認并決定處理方式
    | -R| 當搭配"-A"參數(shù)使用時霞捡,則會略過/目錄的文件系統(tǒng)不予檢查
    | -s| 依序執(zhí)行檢查作業(yè),而非同時執(zhí)行
    | -t<文件系統(tǒng)類型>|指定要檢查的文件系統(tǒng)類型
    | -T| 執(zhí)行fsck指令時宋彼,不顯示標題信息
    | -V| 顯示指令執(zhí)行過程

fdisk

  • fdisk命令用于觀察硬盤實體使用情況弄砍,也可對硬盤分區(qū)。它采用傳統(tǒng)的問答式界面输涕,而非類似DOS fdisk的cfdisk互動式操作界面,因此在使用上較為不便慨畸,但功能卻絲毫不打折扣

  • fdisk(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-b<分區(qū)大小>|指定每個分區(qū)的大小
    | -l|列出指定的外圍設備的分區(qū)表狀況
    | -s<分區(qū)編號>|將指定的分區(qū)大小輸出到標準輸出上莱坎,單位為區(qū)塊
    | -u|搭配"-l"參數(shù)列表,會用分區(qū)數(shù)目取代柱面數(shù)目寸士,來表示每個分區(qū)的起始地址
    | -v|顯示版本信息

enable

  • enable(選項)(參數(shù))
選項 說明
-n 關閉指定的內(nèi)部命令
-a 顯示所有激活的內(nèi)部命令
-f 從指定文件中讀取內(nèi)部命令

export

  • export(選項)(參數(shù))
選項 說明
-f 帶邊環(huán)境變量為函數(shù)名稱
-n 刪除指定的環(huán)境變量
-p 列出所有的環(huán)境變量

edquota

  • edquota(選項)(參數(shù))
選項 說明
-u 設置用戶的quota檐什,這是預設的參數(shù)
-g 設置群組的quota
-p<源用戶名稱> 將源用戶的quota設置套用至其他用戶或群組
-t 設置寬限期限

e2label

  • e2label命令用來設置第二擴展文件系統(tǒng)的卷標
  • 文件系統(tǒng):指定文件系統(tǒng)所對應的設備文件名
  • 新卷標:為文件系統(tǒng)指定新卷標

mount

  • 掛載文件系統(tǒng)

umount

  • 卸載文件系統(tǒng)

fsck

  • 檢查并修復Linux文件系統(tǒng)

dd

  • 轉換或復雜文件

dumpe2fs

  • 導出 ext2,ext3,ext4文件系統(tǒng)信息

dump

  • ext2,ext3,ext4文件系統(tǒng)備份工具

fdisk

  • 磁盤分區(qū)命令,適用于2TB以下的磁盤分區(qū)

parted

  • 磁盤分區(qū)命令弱卡,沒有磁盤大小的限制乃正,常用于2TB以上的磁盤分區(qū)

mkfs

  • 格式化創(chuàng)建Linux文件系統(tǒng)

partprobe

  • 更新內(nèi)核的硬盤分區(qū)表的信息

e2fsck

  • 檢查 ext2,ext3,ext4類型文件系統(tǒng)

mkswap

  • 創(chuàng)建Linux交換分區(qū)

swapon

  • 啟用交換分區(qū)

swapoff

  • 關閉交換分區(qū)

sync

  • 將內(nèi)存緩沖區(qū)的數(shù)據(jù)寫入磁盤

resize2fs

  • 調(diào)整ext2,ext3,ext4文件系統(tǒng)的大小

網(wǎng)絡設置與維護

ifconfig

  • ifconfig命令被用于配置和顯示Linux內(nèi)核中網(wǎng)絡接口的網(wǎng)絡參數(shù)。用ifconfig命令配置的網(wǎng)卡信息婶博,在網(wǎng)卡重啟后機器重啟后瓮具,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網(wǎng)卡的配置文件了
  • ifconfig(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    | up| 啟動指定網(wǎng)絡設備/網(wǎng)卡
    | down | 關閉指定網(wǎng)絡設備/網(wǎng)卡
    | -arp | 設置指定網(wǎng)卡是否支持ARP協(xié)議
    | -promisc| 設置是否支持網(wǎng)卡的promiscuous模式名党,如果選擇此參數(shù)叹阔,網(wǎng)卡將接收網(wǎng)絡中發(fā)給它所有的數(shù)據(jù)包
    | -allmulti | 設置是否支持多播模式,如果選擇此參數(shù)传睹,網(wǎng)卡將接收網(wǎng)絡中所有的多播數(shù)據(jù)包
    | -a | 顯示全部接口信息
    | -s | 顯示摘要信息(類似于 netstat -i)
    | add | 給指定網(wǎng)卡配置IPv6地址
    | del | 刪除指定網(wǎng)卡的IPv6地址
    | <硬件地址>| 配置網(wǎng)卡最大的傳輸單元
    | mtu<字節(jié)數(shù)> | 設置網(wǎng)卡的最大傳輸單元 (bytes)
    | netmask<子網(wǎng)掩碼>| 設置網(wǎng)卡的子網(wǎng)掩碼
    | tunel | 建立隧道
    | dstaddr | 設定一個遠端地址耳幢,建立點對點通信
    | -broadcast<地址>| 為指定網(wǎng)卡設置廣播協(xié)議
    | -pointtopoint<地址> | 為網(wǎng)卡設置點對點通訊協(xié)議
    | multicast | 為網(wǎng)卡設置組播標志
    | txqueuelen<長度>| 為網(wǎng)卡設置傳輸列隊的長度

ip

  • ip命令用來顯示或操縱Linux主機的路由、網(wǎng)絡設備欧啤、策略路由和隧道睛藻,是Linux下較新的功能強大的網(wǎng)絡配置工具
  • ip(選項)(參數(shù))
選項 說明
-V 顯示指令版本信息;
-s 輸出更詳細的信息邢隧;
-f 強制使用指定的協(xié)議族店印;
-4 指定使用的網(wǎng)絡層協(xié)議是IPv4協(xié)議;
-6 指定使用的網(wǎng)絡層協(xié)議是IPv6協(xié)議府框;
-0 輸出信息每條記錄輸出一行吱窝,即使內(nèi)容較多也不換行顯示;
-r 顯示主機時迫靖,不使用IP地址院峡,而使用主機的域名

ifdown

  • ifdown命令用于禁用指定的網(wǎng)絡接口

ifup

  • ifup命令用于激活指定的網(wǎng)絡接口

ethtool

  • ethtool命令用于獲取以太網(wǎng)卡的配置信息,或者修改這些配置系宜。這個命令比較復雜照激,功能特別多
選項 說明
-a 查看網(wǎng)卡中 接收模塊RX、發(fā)送模塊TX和Autonegotiate模塊的狀態(tài):啟動on 或 停用off盹牧。
-A 修改網(wǎng)卡中 接收模塊RX俩垃、發(fā)送模塊TX和Autonegotiate模塊的狀態(tài):啟動on 或 停用off。
-c display the Coalesce information of the specified ethernet card汰寓。
-C Change the Coalesce setting of the specified ethernet card口柳。
-g Display the rx/tx ring parameter information of the specified ethernet card。
-G change the rx/tx ring setting of the specified ethernet card有滑。
-i 顯示網(wǎng)卡驅(qū)動的信息跃闹,如驅(qū)動的名稱、版本等毛好。
-d 顯示register dump信息, 部分網(wǎng)卡驅(qū)動不支持該選項望艺。
-e 顯示EEPROM dump信息,部分網(wǎng)卡驅(qū)動不支持該選項肌访。
-E 修改網(wǎng)卡EEPROM byte找默。
-k 顯示網(wǎng)卡Offload參數(shù)的狀態(tài):on 或 off,包括rx-checksumming吼驶、tx-checksumming等惩激。
-K 修改網(wǎng)卡Offload參數(shù)的狀態(tài)店煞。
-p 用于區(qū)別不同ethX對應網(wǎng)卡的物理位置,常用的方法是使網(wǎng)卡port上的led不斷的閃咧欣;N指示了網(wǎng)卡閃的持續(xù)時間浅缸,以秒為單位。
-r 如果auto-negotiation模塊的狀態(tài)為on魄咕,則restarts auto-negotiation衩椒。
-S 顯示NIC- and driver-specific 的統(tǒng)計參數(shù),如網(wǎng)卡接收/發(fā)送的字節(jié)數(shù)哮兰、接收/發(fā)送的廣播包個數(shù)等毛萌。
-t 讓網(wǎng)卡執(zhí)行自我檢測,有兩種模式:offline or online喝滞。
-s 修改網(wǎng)卡的部分配置阁将,包括網(wǎng)卡速度、單工/全雙工模式右遭、mac地址等沮峡。

文件和目錄操作命令

ls

  • ls命令用來顯示目標列表广凸,在Linux中是使用率較高的命令猖闪。ls命令的輸出信息可以進行彩色加亮顯示胧洒,以分區(qū)不同類型的文件
  • ls(選項)(參數(shù))
選項 說明
-a 顯示指定目錄下的所有文件以及子目錄,包含隱藏文件(Linux 下將“.” 開頭的文件或者目錄視為隱藏文檔)
-d 只顯示目錄列表滚婉,不顯示文件
-l 除文件名稱外图筹,同時將文件或者子目錄的權限.使用者和大小等詳細列出
-s 在每個文件后輸出該文件的大小
-k 以k字節(jié)的形式表示文件的大小
-u 以文件上次被訪問的時間排序
-t 以時間排序
-o 顯示除組信息外的詳細信息
-x 按列輸出.橫向排序
-r 對目錄反向排序
-q 用“?” 代替不可輸出的字符
-m 橫向輸出文件名让腹,并以“,” 作為分割符
-S 以文件大小排序
-R 列出所有子目錄下的文件
-pf 在每個文件名后附上一個字符以說明該文件的類型
-C 按列輸出远剩,縱向排序
-R 列出所有子目錄下的文件
-Q 把輸出的文件名用雙引號括起來

cp

  • cp(選項)(參數(shù))
    | 選項 | 說明 |
    | :-------- | --------:|
    |-a|此參數(shù)的效果和同時指定"-dpR"參數(shù)相同
    |-d|當復制符號連接時,把目標文件或目錄也建立為符號連接骇窍,并指向與源文件或目錄連接的原始文件或目錄
    |-f|強行復制文件或目錄瓜晤,不論目標文件或目錄是否已存在
    | -i|覆蓋既有文件之前先詢問用戶
    | -l|對源文件建立硬連接,而非復制文件
    | -p|保留源文件或目錄的屬性
    | -R/r|遞歸處理腹纳,將指定目錄下的所有文件與子目錄一并處理活鹰;
    | -s|對源文件建立符號連接,而非復制文件
    | -u|使用這項參數(shù)后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件并不存在時只估,才復制文件
    | -S|在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴
    | -b|覆蓋已存在的文件目標前將目標文件備份
    | -v|詳細顯示命令執(zhí)行的操作

cd

  • cd (選項) (參數(shù))
選項 說明
-p 如果要切換到的目標目錄是一個符號連接着绷,直接切換到符號連接指向的目標目錄
-L 如果要切換的目標目錄是一個符號的連接蛔钙,直接切換到字符連接名代表的目錄,而非符號連接所指向的目標目錄
- 當僅實用"-"一個選項時于样,當前工作目錄將被切換到環(huán)境變量"OLDPWD"所表示的目錄
cd 進入用戶主目錄;
cd ~ 進入用戶主目錄糊余;
cd - 返回進入此目錄之前所在的目錄秀又;
cd .. 返回上級目錄(若當前目錄為“/“单寂,則執(zhí)行完后還在“/";".."為上級目錄的意思)吐辙;
cd../.. 返回上兩級目錄宣决;
cd !$ 把上個命令的參數(shù)作為cd參數(shù)使用。

mkdir

  • mkdir命令用來創(chuàng)建目錄昏苏。
  • 該命令創(chuàng)建由dirname命名的目錄
  • 如果在目錄名的前面沒有加任何路徑名尊沸,則在當前目錄下創(chuàng)建由dirname指定的目錄
  • 如果給出了一個已經(jīng)存在的路徑,將會在該目錄下創(chuàng)建一個指定的目錄
  • 在創(chuàng)建目錄時捷雕,應保證新建的目錄與它所在目錄下的文件沒有重名

find

  • find命令用來在指定目錄下查找文件椒丧。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時救巷,不設置任何參數(shù)壶熏,則find命令將在當前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進行顯示
  • find(選項)(參數(shù))

mv

  • mv命令用來對文件或目錄重新命名浦译,或者將文件從一個目錄移到另一個目錄中棒假。source表示源文件或目錄,target表示目標文件或目錄精盅。
  • 如果將一個文件移到一個已經(jīng)存在的目標文件中帽哑,則目標文件的內(nèi)容將被覆蓋

pwd

  • pwd命令以絕對路徑的方式顯示用戶當前工作目錄
  • 命令將當前目錄的全路徑名稱(從根目錄)寫入標準輸出
  • 全部目錄使用/分隔。第一個/表示根目錄叹俏,最后一個目錄是當前目錄
  • 執(zhí)行pwd命令可立刻得知您目前所在的工作目錄的絕對路徑名稱

rename

  • rename命令用字符串替換的方式批量改變文件名
  • -L, --logical
    顯示當前目錄
    -P, --physical
    顯示當前目錄的實際物理地址

rm

  • rm命令可以刪除一個目錄中的一個或多個文件或目錄妻枕,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件粘驰,只是刪除整個鏈接文件屡谐,而原有文件保持不變

    | 選項 | 說明 |
    | :-------- | --------:|
    | -d | 直接把欲刪除的目錄的硬連接數(shù)據(jù)刪除成0,刪除該目錄
    | -f | 強制刪除文件或目錄
    | -i | 刪除已有文件或目錄之前先詢問用戶蝌数;
    | -r或-R | 遞歸處理愕掏,將指定目錄下的所有文件與子目錄一并處理
    | --preserve-root | 不對根目錄進行遞歸操作
    | -v | 顯示指令的詳細執(zhí)行過程

rmdir

  • 刪除指定的空目錄

touch

  • touch命令有兩個功能:一是用于把已存在文件的時間標簽更新為系統(tǒng)當前的時間(默認方式),它們的數(shù)據(jù)將原封不動地保留下來
  • 二是用來創(chuàng)建新的空文件

tree

  • tree命令以樹狀圖列出目錄的內(nèi)容
選項 說明
-a 顯示所有文件和目錄顶伞。
-A 使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合饵撑。
-C 在文件和目錄清單加上色彩,便于區(qū)分各種類型唆貌。
-d 顯示目錄名稱而非內(nèi)容滑潘。
-D 列出文件或目錄的更改時間。
-f 在每個文件或目錄之前锨咙,顯示完整的相對路徑名稱众羡。
-F 在執(zhí)行文件,目錄蓖租,Socket粱侣,符號連接,管道名稱名稱蓖宦,各自加上"*","/","=","@"," "號齐婴。
-g 列出文件或目錄的所屬群組名稱,沒有對應的名稱時稠茂,則顯示群組識別碼柠偶。
-i 不以階梯狀列出文件或目錄名稱。
-I 不顯示符合范本樣式的文件或目錄名稱睬关。
-l 如遇到性質(zhì)為符號連接的目錄诱担,直接列出該連接所指向的原始目錄。
-L 層級顯示
-n 不在文件和目錄清單加上色彩电爹。
-N 直接列出文件和目錄名稱蔫仙,包括控制字符。
-p 列出權限標示丐箩。
-P 只顯示符合范本樣式的文件或目錄名稱摇邦。
-q 用"?"號取代控制字符,列出文件和目錄名稱屎勘。
-s 列出文件或目錄大小施籍。
-t 用文件和目錄的更改時間排序。
-u 列出文件或目錄的擁有者名稱概漱,沒有對應的名稱時丑慎,則顯示用戶識別碼。
-x 將范圍局限在現(xiàn)行的文件系統(tǒng)中瓤摧,若指定目錄下的某些子目錄竿裂,其存放于另一個文件系統(tǒng)上,則將該子目錄予以排除在尋找范圍外

basename

  • basename(選項)(參數(shù))
選項 說明
--help 顯示幫助
--version 顯示版本號

dirname

  • dirname(選項)(參數(shù))
    --version:顯示版本號

chattr

  • 改變文件的擴展屬性

lsattr

  • 查看文件擴展屬性

file

  • 顯示文件類型

md5sum

  • 計算和校驗文件的MD5值

搜索文件命令

which

  • 查找二進制命令姻灶,按環(huán)境變量ATTH路徑查找

find

  • 從磁盤遍歷查找文件或目錄

whereis

  • 查找二進制命令铛绰,按環(huán)境遍歷PATH路徑查找

locate

  • 從數(shù)據(jù)庫(/var/lib/mlocate/mlocate.db)

信息顯示命令

uname

  • 顯示操作系統(tǒng)相關信息的命令

hostname

  • 顯示或設置當前系統(tǒng)的主機名

dmesg

  • 顯示開機信息,用于診斷系統(tǒng)故障

uptime

  • 顯示系統(tǒng)運行時間以及負載

stat

  • 顯示文件或文件系統(tǒng)的狀態(tài)

du

  • 計算磁盤空間的使用情況

df

  • 報告文件系統(tǒng)磁盤空間的使用情況

top

  • 實時顯示系統(tǒng)資源的使用情況

free

  • 查看系統(tǒng)內(nèi)存

date

  • 顯示與設置系統(tǒng)時間

cal

  • 查看日歷等時間信息

線上查詢及幫助命令

mandb

  • 更新man數(shù)據(jù)庫列表

help

  • help命令用于顯示shell內(nèi)部命令的幫助信息
  • help命令只能顯示shell內(nèi)部的命令幫助信息
  • 而對于外部命令的幫助信息只能使用man或者info命令查看

man

  • man命令是Linux下的幫助指令产喉,通過man指令可以查看Linux中的指令幫助捂掰、配置文件幫助和編程幫助等信息

    | 選項 | 說明 |

    | :-------- | --------:|

    | -a | 在所有的man幫助手冊中搜索
    | -f | 等價于whatis指令,顯示給定關鍵字的簡短描述信息
    | -P | 指定內(nèi)容時使用分頁程序
    | -M | 指定man手冊搜索的路徑

進程管理相關命令

bg

  • 將一個在后臺暫停的命令變成繼續(xù)執(zhí)行(在后臺執(zhí)行)

fg

  • 將后臺中的命令調(diào)至前臺繼續(xù)運行

jobs

  • 查看當前有多少命令在后臺運行

kill

  • 終止進程

killall

-通過進程名終止進程

pkill

  • 通過進程名終止進程

crontab

  • 定時任務命令

ps

-顯示進程的快照

pstree

  • 樹形顯示進程

nice

  • 調(diào)整程序運行的優(yōu)先級

nohup

  • 忽略掛起信號運行指定的命令

pgrep

-查找匹配條件的進程

runlevel

  • 查看系統(tǒng)當前的運行級別

init

  • 切換運行級別

service

  • 啟動曾沈、停止这嚣、重新啟動和關閉系統(tǒng)服務碟婆,還可以顯示所有系統(tǒng)服務的當前狀態(tài)

關機现使、重啟镰矿、注銷和查看系統(tǒng)信息的命令

shutdown

  • 關機

halt

  • 關機

poweroff

  • 關閉電源

logout

  • 退出當前登錄的Shell

exit

  • 退出當前登錄的shell

Ctrl+D快捷鍵

  • 退出當前登錄的shell的快捷鍵

系統(tǒng)管理與性能監(jiān)視命令

chkconfig

  • 管理Linux系統(tǒng)開機啟動項

vmstat

  • 虛擬內(nèi)存統(tǒng)計

mpstat

  • 顯示各個可以CPU的狀態(tài)統(tǒng)計

iostat

  • 統(tǒng)計系統(tǒng)IO

sar

  • 全面獲取系統(tǒng)的CPU率挣、運行隊列黄鳍、磁盤I/O、分頁(交換區(qū))柿顶、內(nèi)存位迂、CPU中斷和網(wǎng)絡等性能數(shù)據(jù)

ipcrm

  • 用來刪除一個或更多的消息隊列哮洽、信號量集或共享內(nèi)存標識

strace

  • 用于診斷弦聂、調(diào)試Linxu用戶空間的跟蹤器鸟辅,也可用于監(jiān)控用戶空間進程和內(nèi)核的交互,比如系統(tǒng)調(diào)用莺葫、信號傳遞匪凉、進程狀態(tài)變更等

ltrace

  • 命令會跟蹤進程的庫函數(shù)調(diào)用,并顯現(xiàn)出哪個庫函數(shù)被調(diào)用

內(nèi)置命令及其他

echo

  • 打印變量捺檬,或者直接輸出指定的字符串

printf

  • 將結果格式輸出到標準輸出

rpm

  • 管理rpm 包的命令

yum

  • 自動化再层、簡單化的管理rpm包的命令

watch

  • 周期性執(zhí)行給定的命令,并將命令的輸出以全拼的方式顯示

alias

  • 設置系統(tǒng)別名

unalias

  • 取消系統(tǒng)別名

date

  • 查看或設置系統(tǒng)時間

clear

  • 清除屏幕、簡稱清屏

history

-查看命令執(zhí)行的歷史記錄

eject

  • 彈出光驅(qū)

time

  • 計算命令的執(zhí)行時間

nc

  • 功能強大的網(wǎng)絡工具

xargs

  • 將標準輸入轉換成命令行參數(shù)

exec

  • 調(diào)用并執(zhí)行指令的命令

export

  • 設置或顯示環(huán)境變量

unset

  • 刪除變量或函數(shù)

type

  • 用于判斷另外一個命令是否為內(nèi)置命令

bc

  • 命令行科學計算器

查看系統(tǒng)用戶登錄信息的命令

whoami

  • 顯示當前有效的用戶名稱聂受,相當于執(zhí)行id -un 命令

who

  • 顯示目錄登錄系統(tǒng)的用戶信息

w

  • 顯示已經(jīng)登錄系統(tǒng)的用戶列表蒿秦,并顯示用戶正在執(zhí)行的指令

last

  • 顯示登入系統(tǒng)的用戶

lastlog

  • 顯示系統(tǒng)中所有用戶最近一次登錄的信息

users

  • 顯示當前登錄系統(tǒng)的所有用戶的用戶列表、

finger

  • 查找并顯示用戶信息

系統(tǒng)及用戶權限相關命令

useradd

  • useradd命令用于Linux中創(chuàng)建的新的系統(tǒng)用戶饺饭。useradd可用來建立用戶帳號渤早。帳號建好之后,再用passwd設定帳號的密碼.而可用userdel刪除帳號瘫俊。使用useradd指令所建立的帳號,實際上是保存在/etc/passwd文本文件中
選項 說明
-d<登入目錄>:指定用戶登入時的啟始目錄悴灵;
-D 變更預設值扛芽; -e<有效期限>:指定帳號的有效期限;
-f<緩沖天數(shù)> 指定在密碼過期后多少天即關閉該帳號积瞒;
-g<群組> 指定用戶所屬的群組川尖;
-G<群組> 指定用戶所屬的附加群組;
-m 自動建立用戶的登入目錄茫孔;
-M 不要自動建立用戶的登入目錄叮喳;
-n 取消建立以用戶名稱為名的群組;
-r 建立系統(tǒng)帳號缰贝;
-s 指定用戶登入后所使用的shell馍悟;
-u 指定用戶id。

usermod

  • usermod - 修 改 使 用 者 帳 號

userdel

  • 刪除用戶
選項 說明
-f 強制刪除用戶剩晴,即使用戶當前已登錄锣咒;
-r 刪除用戶的同時,刪除與用戶相關的所有文件赞弥。

chmod

  • 改變文件或目錄權限毅整、

chown

  • 改變文件或目錄的屬主和屬組

chgrp

  • 更改文件用戶組

umask

  • 顯示或設置權限掩碼

深入網(wǎng)絡操作命令

nmap

  • 網(wǎng)絡掃描命令

lsof

  • 全名為list open files,即列舉系統(tǒng)中已經(jīng)被打開的文件

mail

  • 發(fā)送和接收郵件

mutt

  • 郵件管理命令

nslookup

  • 交互式查詢互聯(lián)網(wǎng)DNS服務器的命令

dig

  • 查找DNS解析過程

host

  • 查詢DNS的命令

traceroute

  • 追蹤數(shù)據(jù)傳輸路由的狀況

tcpdump

  • 命令行的抓包工具

基礎網(wǎng)絡操作命令

telnet

  • 使用TELNET協(xié)議遠程登錄

ssh

  • 使用SSH加密協(xié)議遠程登錄

scp

  • 全拼為secure copy, 用于在不同主機之間復雜文件

wget

  • 命令行下載文件

ping

  • 測試和主機之間的連通性

route

  • 顯示和設置Linux 系統(tǒng)的路由表

ifconfig

  • 查看、配置绽左、啟用或禁用網(wǎng)絡接口的命令

ifup

  • 啟動網(wǎng)卡

ifdown

  • 關閉網(wǎng)卡

netstat

  • 查看網(wǎng)絡狀態(tài)

ss

  • 查看網(wǎng)絡狀態(tài)

用戶管理命令

glances

  • getent 用來察看系統(tǒng)的數(shù)據(jù)庫中的相關記錄
  • 用法: getent [選項...] 數(shù)據(jù)庫 [鍵 ...]
選項 說明
-s, --service=CONFIG 要使用的服務配置
-?, --help 給出該系統(tǒng)求助列表
--usage 給出簡要的用法信息
-V, --version 打印程序版本號

getfacl

  • 獲取文件訪問控制列表
  • 使用方法: getfacl [-aceEsRLPtpndvh] 文件 ...
    | 選項 | 說明 |
    | :-------- | --------:|
    | -a, --access | 僅顯示文件訪問控制列表
    | -d, --default | 僅顯示默認的訪問控制列表
    | -c, --omit-header | 不顯示注釋表頭
    | -e, --all-effective | 顯示所有的有效權限
    | -E, --no-effective | 顯示無效權限
    | -s, --skip-base | 跳過只有基條目(base entries)的文件
    | -R, --recursive | 遞歸顯示子目錄
    | -L, --logical | 邏輯遍歷(跟隨符號鏈接)
    | -P, --physical | 物理遍歷(不跟隨符號鏈接)
    | -t, --tabular | 使用制表符分隔的輸出格式
    | -n, --numeric | 顯示數(shù)字的用戶/組標識
    | -p, --absolute-names | 不去除路徑前的 '/' 符號
    | -v, --version | 顯示版本并退出
    | -h, --help | 顯示本幫助信息

groups

  • 顯示用戶所在的組

grpck

  • grpck命令用于驗證組文件的完整性悼嫉,在驗證之前,需要先鎖定(lock)組文件/etc/group和/etc/shadow拼窥。
  • grpck命令檢查數(shù)據(jù)是否正確存放戏蔑,每條記錄是否都包含足夠的信息,是否有一個唯一的組名闯团,是否包含正確的用戶辛臊,是否正確設置了組的管理員等。
  • grpck檢查發(fā)現(xiàn)錯誤以后房交,在命令行提示用戶是否刪除錯誤的記錄彻舰。如果用戶沒有明確回答刪除記錄,grpck終止運行
  • grpck(選項)
    | 選項 | 說明 |
    | :-------- | --------:|
    |-r|只讀模式
    | -s|排序組id

groupadd

  • groupadd命令用于創(chuàng)建一個新的工作組,新工作組的信息將被添加到系統(tǒng)文件中
  • groupadd(選項)(參數(shù))
選項 說明
-g 指定新建工作組的id
-r 創(chuàng)建系統(tǒng)工作組刃唤,系統(tǒng)工作組的組ID小于500
-K 覆蓋配置文件“/ect/login.defs”
-o 允許添加組ID號不唯一的工作組

groupmod

  • groupmod命令更改群組識別碼或名稱隔心。需要更改群組的識別碼或名稱時,可用groupmod指令來完成這項工作
  • groupmod(選項)(參數(shù))
選項 說明
-g<群組識別碼> 設置欲使用的群組識別碼
-o:重復使用群組識別碼
-n<新群組名稱> 設置欲使用的群組名稱

groupdel

  • groupdel命令用于刪除指定的工作組尚胞,本命令要修改的系統(tǒng)文件包括/ect/group和/ect/gshadow硬霍。若該群組中仍包括某些用戶,則必須先刪除這些用戶后笼裳,方能刪除群組
  • groupdel(參數(shù))
  • 組:要刪除的工作組名

gpasswd

  • gpasswd命令是Linux下工作組文件/etc/group和/etc/gshadow管理工具
  • gpasswd(選項)(參數(shù))
選項 說明
-a 添加用戶到組
-d 從組刪除用戶
-A 指定管理員
-M 指定組成員和-A的用途差不多
-r 刪除密碼
-R 限制用戶登入組唯卖,只有組中的成員才可以用newgrp加入該組

id

  • id命令可以顯示真實有效的用戶ID(UID)和組ID(GID)。UID 是對一個用戶的單一身份標識躬柬。組ID(GID)則對應多個UID拜轨。id命令已經(jīng)默認預裝在大多數(shù)Linux系統(tǒng)中。要使用它允青,只需要在你的控制臺輸入id橄碾。不帶選項輸入id會顯示如下。結果會使用活躍用戶
選項 說明
-g或--group 顯示用戶所屬群組的ID颠锉。
-G或--groups 顯示用戶所屬附加群組的ID法牲。
-n或--name 顯示用戶,所屬群組或附加群組的名稱琼掠。
-r或--real 顯示實際ID拒垃。
-u或--user 顯示用戶ID。 -help   顯示幫助眉枕。
-version 顯示版本信息恶复。

useradd

  • 添加用戶

userdel

  • 刪除用戶

usermod

  • 修改系統(tǒng)已經(jīng)存在的用戶屬性

groupadd

  • 添加用戶組

passwd

  • 修改用戶密碼

chage

  • 修改用戶密碼有效期

su

  • 切換用戶身份

visudo

  • 編輯/etc/sudoers

sudo

  • 以另外一個用戶身份(默認root用戶)執(zhí)行事先在sudoers文件中運行的命令、

其他命令

let

  • let命令是bash中用于計算的工具速挑,提供常用運算符還提供了方冪**運算符谤牡。在變量的房屋計算中不需要加上$來表示變量,如果表達式的值是非0姥宝,那么返回的狀態(tài)值是0翅萤;否則,返回的狀態(tài)值是1
  • let arg [arg ...] #arg代表運算式
    -自加操作let no++ 自減操作let no-- 簡寫形式let no+=10腊满,let no-=20套么,分別等同于let no=no+10,let no=no-20

lsusb

  • lsusb命令用于顯示本機的USB設備列表碳蛋,以及USB設備的詳細信息
  • lsusb(選項)
    | 選項 | 說明 |
    | :-------- | --------:|
    | -D | 設備路徑 不掃描/proc/bus/usb胚泌,而以指定的設備路徑取代
    | -p | 內(nèi)核路徑 使用其他USB設備在內(nèi)核的路徑,默認為/proc/bus/usb
    | -t | 將USB設備以樹狀架構輸出
    | -v | 列出較詳細的運行過程
    | -vv | 列出完整的運行過程
    | -V| 顯示版本信息

lvscan

  • lvscan命令用于掃描當前系統(tǒng)中存在的所有的LVM邏輯卷肃弟。使用lvscan指令可以發(fā)現(xiàn)系統(tǒng)中的所有邏輯卷玷室,及其對應的設備文件

  • -b:顯示邏輯卷的主設備和次設備號

lvcreate

  • lvcreate命令用于創(chuàng)建LVM的邏輯卷零蓉。邏輯卷是創(chuàng)建在卷組之上的。邏輯卷對應的設備文件保存在卷組目錄下穷缤,例如:在卷組"vg1000"上創(chuàng)建一個邏輯卷"lvol0"敌蜂,則此邏輯卷對應的設備文件為"/dev/vg1000/lvol0"
  • lvcreate(選項)(參數(shù))
選項 說明
-L 指定邏輯卷的大小,單位為“kKmMgGtT”字節(jié)
-l 指定邏輯卷的大小(LE數(shù))
-n 后面跟邏輯卷名
-s 創(chuàng)建快照

lvremove

  • lvremove命令用于刪除指定LVM邏輯卷。如果邏輯卷已經(jīng)使用mount命令加載缭乘,則不能使用lvremove命令刪除。必須使用umount命令卸載后秸脱,邏輯卷方可被刪除
  • lvremove(選項)(參數(shù))
  • -f:強制刪除

lsmod

  • lsmod命令用于顯示已經(jīng)加載到內(nèi)核中的模塊的狀態(tài)信息。執(zhí)行l(wèi)smod命令后會列出所有已載入系統(tǒng)的模塊部蛇。Linux操作系統(tǒng)的核心具有模塊化的特性撞反,應此在編譯核心時,務須把全部的功能都放入核心搪花。您可以將這些功能編譯成一個個單獨的模塊,待需要時再分別載入

OpenSSL

  • OpenSSL 是一個強大的安全套接字層密碼庫嘹害,囊括主要的密碼算法撮竿、常用的密鑰和證書封裝管理功能及SSL協(xié)議,并提供豐富的應用程序供測試或其它目的使用
  • 在OpenSSL被曝出現(xiàn)嚴重安全漏洞后笔呀,發(fā)現(xiàn)多數(shù)通過SSL協(xié)議加密的網(wǎng)站使用名為OpenSSL的開源軟件包幢踏。由于這是互聯(lián)網(wǎng)應用最廣泛的安全傳輸方法,被網(wǎng)銀许师、在線支付房蝉、電商網(wǎng)站、門戶網(wǎng)站微渠、電子郵件等重要網(wǎng)站廣泛使用搭幻,所以該漏洞影響范圍廣大

pidof

  • pidof命令用于查找指定名稱的進程的進程號id號
  • pidof(選項)(參數(shù))
選項 說明
-s 僅返回一個進程號;
-c 僅顯示具有相同“root”目錄的進程逞盆;
-x 顯示由腳本開啟的進程檀蹋;
-o 指定不顯示的進程ID。

pstree

  • pstree命令以樹狀圖的方式展現(xiàn)進程之間的派生關系云芦,顯示效果比較直觀
  • pstree(選項)
選項 說明
-a 顯示每個程序的完整指令俯逾,包含路徑,參數(shù)或是常駐服務的標示舅逸;
-c 不使用精簡標示法桌肴;
-G 使用VT100終端機的列繪圖字符;
-h 列出樹狀圖時琉历,特別標明現(xiàn)在執(zhí)行的程序坠七;
-H<程序識別碼> 此參數(shù)的效果和指定"-h"參數(shù)類似水醋,但特別標明指定的程序;
-l 采用長列格式顯示樹狀圖灼捂;
-n 用程序識別碼排序离例。預設是以程序名稱來排序;
-p 顯示程序識別碼悉稠;
-u 顯示用戶名稱宫蛆;
-U 使用UTF-8列繪圖字符;
-V 顯示版本信息的猛。

pmap

  • pmap命令用于報告進程的內(nèi)存映射關系耀盗,是Linux調(diào)試及運維一個很好的工具
  • pmap(選項)(參數(shù))
選項 說明
-x 顯示擴展格式;
-d 顯示設備格式卦尊;
-q 不顯示頭尾行叛拷;
-V 顯示指定版本。

ps

  • ps命令用于報告當前系統(tǒng)的進程狀態(tài)岂却》揶保可以搭配kill指令隨時中斷、刪除不必要的程序躏哩。ps命令是最基本同時也是非常強大的進程查看命令署浩,使用該命令可以確定有哪些進程正在運行和運行的狀態(tài)、進程是否結束扫尺、進程有沒有僵死筋栋、哪些進程占用了過多的資源等等,總之大部分信息都是可以通過執(zhí)行該命令得到的
  • ps(選項)
選項 說明
-a 顯示所有終端機下執(zhí)行的進程正驻,除了階段作業(yè)領導者之外弊攘。
a 顯示現(xiàn)行終端機下的所有進程,包括其他用戶的進程姑曙。
-A 顯示所有進程襟交。
-c 顯示CLS和PRI欄位。
c 列出進程時渣磷,顯示每個進程真正的指令名稱婿着,而不包含路徑,參數(shù)或常駐服務的標示醋界。
-C<指令名稱> 指定執(zhí)行指令的名稱竟宋,并列出該指令的進程的狀況。
-d 顯示所有進程形纺,但不包括階段作業(yè)領導者的進程丘侠。
-e 此參數(shù)的效果和指定"A"參數(shù)相同。
e 列出進程時逐样,顯示每個進程所使用的環(huán)境變量蜗字。
-f 顯示UID,PPIP,C與STIME欄位打肝。
f 用ASCII字符顯示樹狀結構,表達進程間的相互關系挪捕。
-g<群組名稱> 此參數(shù)的效果和指定"-G"參數(shù)相同粗梭,當亦能使用階段作業(yè)領導者的名稱來指定。
g 顯示現(xiàn)行終端機下的所有進程级零,包括群組領導者的進程断医。
-G<群組識別碼> 列出屬于該群組的進程的狀況,也可使用群組名稱來指定奏纪。
h 不顯示標題列鉴嗤。
-H 顯示樹狀結構,表示進程間的相互關系序调。
-j或j 采用工作控制的格式顯示進程狀況醉锅。
-l或l 采用詳細的格式來顯示進程狀況。
L 列出欄位的相關信息发绢。
-m或m 顯示所有的執(zhí)行緒硬耍。
n 以數(shù)字來表示USER和WCHAN欄位。
-N 顯示所有的進程边酒,除了執(zhí)行ps指令終端機下的進程之外默垄。
-p<進程識別碼> 指定進程識別碼,并列出該進程的狀況甚纲。
p<進程識別碼> 此參數(shù)的效果和指定"-p"參數(shù)相同,只在列表格式方面稍有差異朦前。
r 只列出現(xiàn)行終端機正在執(zhí)行中的進程介杆。
-s<階段作業(yè)> 指定階段作業(yè)的進程識別碼,并列出隸屬該階段作業(yè)的進程的狀況韭寸。
s 采用進程信號的格式顯示進程狀況春哨。
S 列出進程時,包括已中斷的子進程資料恩伺。
-t<終端機編號> 指定終端機編號赴背,并列出屬于該終端機的進程的狀況。
t<終端機編號> 此參數(shù)的效果和指定"-t"參數(shù)相同晶渠,只在列表格式方面稍有差異砰苍。
-T 顯示現(xiàn)行終端機下的所有進程哈雏。
-u<用戶識別碼> 此參數(shù)的效果和指定"-U"參數(shù)相同。
u 以用戶為主的格式來顯示進程狀況。
-U<用戶識別碼> 列出屬于該用戶的進程的狀況掂为,也可使用用戶名稱來指定。
U<用戶名稱> 列出屬于該用戶的進程的狀況闹炉。
v 采用虛擬內(nèi)存的格式顯示進程狀況。
-V或V 顯示版本信息脊框。
-w或w 采用寬闊的格式來顯示進程狀況。
x 顯示所有進程践啄,不以終端機來區(qū)分浇雹。
X 采用舊式的Linux i386登陸格式顯示進程狀況

pvcreate

  • pvcreate命令用于將物理硬盤分區(qū)初始化為物理卷,以便LVM使用
  • pvcreate(選項)(參數(shù))
選項 說明
-f 強制創(chuàng)建物理卷屿讽,不需要用戶確認
-u 指定設備的UUID
-y 所有的問題都回答“yes”
-Z 是否利用前4個扇區(qū)

pvs

  • pvs命令用于輸出格式化的物理卷信息報表昭灵。使用pvs命令僅能得到物理卷的概要信息,如果要得到更加詳細的信息可以使用pvdisplay命令
  • pvs(選項)(參數(shù))
  • --noheadings:不輸出標題頭
  • --nosuffix:不輸出空間大小的單位

pvdisplay

  • pvdisplay命令用于顯示物理卷的屬性聂儒。
  • pvdisplay命令顯示的物理卷信息包括:物理卷名稱虎锚、所屬的卷組、物理卷大小衩婚、PE大小窜护、總PE數(shù)、可用PE數(shù)非春、已分配的PE數(shù)和UUID
  • pvdisplay(選項)(參數(shù))
  • -s:以短格式輸出
  • -m:顯示PE到LE的映射

pvremove

  • pvremove命令用于刪除一個存在的物理卷柱徙。使用pvremove指令刪除物理卷時,它將LVM分區(qū)上的物理卷信息刪除奇昙,使其不再被視為一個物理卷
  • pvremove(選項)(參數(shù))
選項 說明
-d 調(diào)試模式
-f 強制刪除
-y 對提問回答“yes”

pvmove

  • pvmove 搬移PV中的資料(只限于同一VG中)

  • 用法:pvmove [-n ] []

paste

  • paste命令用于將多個文件按照列隊列進行合并
  • paste(選項)(參數(shù))
  • -d<間隔字符>或--delimiters=<間隔字符>:用指定的間隔字符取代跳格字符护侮;
  • -s或——serial串列進行而非平行處理

partx

  • partx命令告用來訴內(nèi)核當前磁盤的分區(qū)情況,對一個磁盤或者分區(qū)表類型储耐,嘗試解析分區(qū)表羊初。可以增加或刪除分區(qū)什湘。但不是fdisk长赞,增加,刪除分區(qū)對磁盤造成改變闽撤,只是告訴內(nèi)核當前磁盤的分區(qū)情況
  • partx [-a|-d|-l] [--type TYPE] [--nr M-N] [partition] disk
選項 說明
-a 增加制定的分區(qū)或讀磁盤新增的分區(qū)
-d 刪除制定或所有的分區(qū)
-l 列出分區(qū)
--type 指定分區(qū)類型得哆。dos,bsd哟旗,solaris贩据,unix,或者gpt
--nr M-N 指定分區(qū)范圍

partprobe

  • partprobe命令用于重讀分區(qū)表闸餐,當出現(xiàn)刪除文件后饱亮,出現(xiàn)仍然占用空間∩嵘常可以partprobe在不重啟的情況下重讀分區(qū)
  • partprobe(選項)(參數(shù))
選項 說明
-d 不更新內(nèi)核
-s 顯示摘要和分區(qū)
-h 顯示幫助信息
-v 顯示版本信息

parted

  • parted命令是由GNU組織開發(fā)的一款功能強大的磁盤分區(qū)和分區(qū)大小調(diào)整工具
  • 與fdisk不同近尚,它支持調(diào)整分區(qū)的大小
  • 作為一種設計用于Linux的工具,它沒有構建成處理與fdisk關聯(lián)的多種分區(qū)類型
  • 但是场勤,它可以處理最常見的分區(qū)格式
  • 包括:ext2戈锻、ext3歼跟、fat16、fat32格遭、NTFS哈街、ReiserFS、JFS拒迅、XFS骚秦、UFS、HFS以及Linux交換分區(qū)
  • parted(選項)(參數(shù))
選項 說明
-h 顯示幫助信息璧微;
-i 交互式模式作箍;
-s 腳本模式,不提示用戶前硫;
-v 顯示版本號胞得。

pwconv

  • pwconv命令用來開啟用戶的投影密碼
  • Linux系統(tǒng)里的用戶和群組密碼,分別存放在名稱為passwd和group的文件中屹电, 這兩個文件位于/etc目錄下阶剑。因系統(tǒng)運作所需,任何人都得以讀取它們危号,造成安全上的破綻
  • 投影密碼將文件內(nèi)的密碼改存在/etc目錄下的shadow和gshadow文件內(nèi)牧愁,只允許系統(tǒng)管理者讀取,同時把原密碼置換為"x"字符外莲,有效的強化了系統(tǒng)的安全性

pwunconv

  • pwunconv命令與pwconv功能相反猪半,用來關閉用戶的投影密碼。它會把密碼從shadow文件內(nèi)偷线,重回存到passwd文件里

pwd

  • pwd命令以絕對路徑的方式顯示用戶當前工作目錄办龄。命令將當前目錄的全路徑名稱(從根目錄)寫入標準輸出。全部目錄使用/分隔
  • 第一個/表示根目錄淋昭,最后一個目錄是當前目錄。執(zhí)行pwd命令可立刻得知您目前所在的工作目錄的絕對路徑名稱
    | 選項 | 說明 |
    | :-------- | --------:|
    | -L | 顯示當前目錄
    | -P | 顯示當前目錄的實際物理地址

passwd

  • passwd命令用于設置用戶的認證信息安接,包括用戶密碼翔忽、密碼過期時間等。系統(tǒng)管理者則能用它管理系統(tǒng)用戶的密碼
  • 只有管理者可以指定用戶名稱盏檐,一般用戶只能變更自己的密碼
  • passwd(選項)(參數(shù))
選項 說明
-d 刪除密碼歇式,僅有系統(tǒng)管理者才能使用;
-f 強制執(zhí)行胡野;
-k 設置只有在密碼過期失效后材失,方能更新;
-l 鎖住密碼硫豆;
-s 列出密碼的相關信息龙巨,僅有系統(tǒng)管理者才能使用笼呆;
-u 解開已上鎖的帳號。

pgrep

  • pgrep 是通過程序的名字來查詢進程的工具旨别,一般是用來判斷程序是否正在運行

  • pgrep(選項)(參數(shù))

    | 選項 | 說明 |
    | :-------- | --------:|
    | -f 顯示完整程序
    | -l 顯示源代碼
    | -n 顯示新程序
    | -o 顯示舊程序
    | -v 與條件不符合的程序
    | -x 與條件符合的程序
    | -p<進程號> | 列出父進程為用戶指定進程的進程信息
    | -t<終端> | 指定終端下的所有程序
    | -u<用戶> | 指定用戶的程序

pkill

  • pkill命令可以按照進程名殺死進程诗赌。pkill和killall應用方法差不多,也是直接殺死運行中的程序秸弛;如果您想殺掉單個進程铭若,請用kill來殺掉

  • pkill(選項)(參數(shù))

    | 選項 | 說明 |
    | :-------- | --------:|
    |-f | 顯示完整程序
    |-l |顯示源代碼
    |-n | 顯示新程序
    |-o |顯示舊程序
    |-v |與條件不符合的程序
    |-x |與條件符合的程序
    |-p<進程號> |列出父進程為用戶指定進程的進程信息
    |-t<終端> |指定終端下的所有程序
    |-u<用戶> | 指定用戶的程序

quotacheck

  • quotacheck 命令:用于掃描掛載的文件系統(tǒng)并設置磁盤的空間與限制\

  • quotacheck(選項)(參數(shù))

    | 選項 | 說明 |
    | :-------- | --------:|
    | -a | 掃描所有分區(qū)
    | -b | 備份
    | -d | 調(diào)試模式
    | -c | 重新創(chuàng)建文件
    | -f | 強迫檢查
    | -i | 交互模式
    | -v | 運行時顯示詳細的處理信息
    | -g | 顯示群組所占的目錄文件數(shù)
    | -u | 顯示每個用戶所占的目錄數(shù)
    | -M | 『強制』進行quotacheck的掃描。

quotaon

  • quotaon 命令:用來開啟用戶的磁盤空間的限制
  • quotaon(選項)(參數(shù))
選項 說明
-a 開啟在/ect/fstab文件里递览,有加入quota設置的分區(qū)的空間限制叼屠;
-g 開啟群組的磁盤空間限制;
-u 開啟用戶的磁盤空間限制绞铃;
-v 顯示指令指令執(zhí)行過程镜雨。

quotaoff

  • quotaoff 命令:用來關閉用戶的磁盤空間的限制

  • quotaoff(選項)(參數(shù))

    | 選項 | 說明 |
    | :-------- | --------:|
    | -a | 關閉所有的磁盤配額限制
    | -g | 組磁盤配額限制
    | -p | 列出狀態(tài)
    | -u | 用戶配額限制
    | -v | 運行時顯示詳細的處理信息

quota

  • 顯示磁盤已使用的空間與限制

  • 語  法:quota [-quvV][用戶名稱...] 或 quota [-gqvV][群組名稱...]

    | 選項 | 說明 |
    | :-------- | --------:|
    | -g | 列出群組的磁盤空間限制。
    | -q | 簡明列表憎兽,只列出超過限制的部分冷离。
    | -u | 列出用戶的磁盤空間限制。
    | -v | 顯示該用戶或群組纯命,在所有掛入系統(tǒng)的存儲設備的空間限制西剥。
    | -V | 顯示版本信息荠藤。

kill

  • kill 命令:發(fā)送指定的信號到相應進程料滥。不指定信號將發(fā)送SIGTERM(15)終止指定進程。若仍無法終止該程序可用“-KILL” 參數(shù)雁仲,其發(fā)送的信號為SIGKILL(9) 疗我,將強制結束進程咆畏,使用ps命令或者jobs 命令可以查看進程號。root用戶將影響用戶的進程吴裤,非root用戶只能影響自己的進程
選項 說明
-l <信號變化>旧找,若不加信號的編號參數(shù),則使用“-l”參數(shù)會列出全部的信號名稱
-a 當處理當前進程時麦牺,不限制命令名和進程號的對應關系
-p 指定kill 命令只打印相關進程的進程號钮蛛,而不發(fā)送任何信號
-s 指定發(fā)送信號
-u 指定用戶

killall

  • killall命令使用進程的名稱來殺死進程,使用此指令可以殺死一組同名進程剖膳。我們可以使用kill命令殺死指定進程PID的進程

  • 如果要找到我們需要殺死的進程

  • 我們還需要在之前使用ps等命令再配合grep來查找進程魏颓,而killall把這兩個過程合二為一,是一個很好用的命令

  • killall(選項)(參數(shù))

    | 選項 | 說明 |
    | :-------- | --------:|
    | -e | 對長名稱進行精確匹配吱晒;
    | -l | 忽略大小寫的不同甸饱;
    | -p | 殺死進程所屬的進程組;
    | -i | 交互式殺死進程,殺死進程前需要進行確認叹话;
    | -l | 打印所有已知信號列表偷遗;
    | -q | 如果沒有進程被殺死。則不輸出任何信息渣刷;
    | -r | 使用正規(guī)表達式匹配要殺死的進程名稱鹦肿;
    | -s | 用指定的進程號代替默認信號“SIGTERM”;
    | -u | 殺死指定用戶的進程辅柴。

mdadm

  • mdadm 用于建設箩溃,管理和監(jiān)控RAID陣列
  • 用法:

mdadm --create device options...
用未使用的設備,創(chuàng)建raid選項碌嘀,
mdadm --assemble device options...
合并先前創(chuàng)建的raid陣列涣旨。
mdadm --build device options...
創(chuàng)建或合并沒有元數(shù)據(jù)的一個raid。
mdadm --manage device options...
對現(xiàn)有陣列進行更改
mdadm --misc options... devices
報告或修改各種MD相關設備的股冗。
mdadm --grow options device
調(diào)整以激活的raid陣列
mdadm --incremental device
從一個raid中霹陡,添加/刪除設備
mdadm --monitor options...
監(jiān)視一個或多個raid陣列的變化
mdadm device options...
--manage的簡寫

mkfs

  • mkfs命令用于在設備上(通常為硬盤)創(chuàng)建Linux文件系統(tǒng)。mkfs本身并不執(zhí)行建立文件系統(tǒng)的工作止状,而是去調(diào)用相關的程序來執(zhí)行
  • 使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable]
選項 說明
fs 指定建立文件系統(tǒng)時的參數(shù)烹棉;
-t<文件系統(tǒng)類型> 指定要建立何種文件系統(tǒng);
-v 顯示版本信息與詳細的使用方法怯疤;
-V 顯示簡要的使用方法浆洗;
-c 在制做檔案系統(tǒng)前,檢查該partition是否有壞軌集峦。

mtr

  • Mtr是 Linux中有一個非常棒的網(wǎng)絡連通性判斷工具伏社,它結合了ping, traceroute,nslookup 的相關特性

mke2fs

  • mke2fs命令被用于創(chuàng)建磁盤分區(qū)上的“etc2/etc3”文件系統(tǒng)9
選項 說明
-E <擴展參數(shù)> 為要創(chuàng)建的文件系統(tǒng)指定一些參數(shù)
-f <不連續(xù)區(qū)段大小> 不知道連續(xù)區(qū)段的大小
-F 強制執(zhí)行,即使指定設備沒有被掛載或者不是塊設備
-l <文件> 從指定文件中讀取壞的塊列表
-i <字節(jié)> 指定每個inode的字節(jié)數(shù)
-j 創(chuàng)建使用ext3卷號的文件系統(tǒng)
-J <擴展參數(shù)> 為使用ext3卷號的文件系統(tǒng)指定一些參數(shù)
-L 設置創(chuàng)建的文件系統(tǒng)的標簽
-N 指定iniode的數(shù)量
-q 執(zhí)行時不顯示任何信息
-E <擴展選項> 為要創(chuàng)建的文件系統(tǒng)指定一些可選項
-f <不連續(xù)區(qū)段大小> 指定不連接區(qū)段的大小
-F 強制執(zhí)行塔淤,即使指定設備沒有被掛載或者不是塊設備
-l <文件> 從指定的文件中讀取壞的塊列表
-i <字節(jié)> 指定每個inode的字節(jié)數(shù)
-j 創(chuàng)建使用ext3卷號的文件系統(tǒng)
-J <擴展選項> 為使用ext3卷號文件系統(tǒng)指定一些選項
-L 設置創(chuàng)建的文件系統(tǒng)的標簽
-m <百分比值> 指定給管理員保留區(qū)塊的比例摘昌,預設為5%。
-N 指定inode的數(shù)量
-q 執(zhí)行時不顯示任何信息
-V 顯示版本信息

mount

  • mount命令用于加載文件系統(tǒng)到指定的加載點高蜂。此命令的最常用于掛載cdrom聪黎,使我們可以訪問cdrom中的數(shù)據(jù)
  • 因為你將光盤插入cdrom中,Linux并不會自動掛載备恤,必須使用Linux mount命令來手動完成掛載
選項 說明
-a 加載文件/etc/fstab中設置的所有設備
-f 不實際加載設備稿饰。可與-v等參數(shù)同時使用以查看mount的執(zhí)行過程
-F 需與-a參數(shù)同時使用烘跺。所有在/etc/fstab中設置的設備會被同時加載,可加快執(zhí)行速度
-h 顯示在線幫助信息
-L <標簽> 加載文件系統(tǒng)標簽為<標簽>的設備
-l 顯示已加載的文件系統(tǒng)列表(同直接執(zhí)行mount)
-n 不將加載信息記錄在/etc/mtab文件中

modprobe

  • modprobe命令用于智能地向內(nèi)核中加載模塊或者從內(nèi)核中移除模塊

    | 選項 | 說明 |
    | :-------- | --------:|
    | -a或--all | 載入全部的模塊脂崔;
    | -c或--show-conf | 顯示所有模塊的設置信息滤淳;
    | -d或--debug | 使用排錯模式;
    | -l或--list | 顯示可用的模塊砌左;
    | -r或--remove | 模塊閑置不用時脖咐,即自動卸載模塊铺敌;
    | -t或--type | 指定模塊類型;
    | -v或--verbose | 執(zhí)行時顯示詳細的信息屁擅;
    | -V或--version | 顯示版本信息偿凭;

選項 說明
-m, --mode=模式 設置權限模式(類似chmod),而不是rwxrwxrwx 減umask
-p, --parents 需要時創(chuàng)建目標目錄的上層目錄派歌,但即使這些目錄已存在也不當作錯誤處理
-v, --verbose 每次創(chuàng)建新目錄都顯示信息
-Z, --context=CTX 將每個創(chuàng)建的目錄的SELinux 安全環(huán)境設置為CTX

mknod

  • mknod命令用于創(chuàng)建Linux中的字符設備文件和塊設備文件
  • 用法:mknod [選項]... 名稱 類型 [主設備號 次設備號]
    | 選項 | 說明 |
    | :-------- | --------:|
    | -m, --mode=模式 | 設置權限模式(類似chmod)弯囊,而不是rwxrwxrwx 減umask
    |-Z, --context=CTX |將對應名稱文件的SELinux 安全環(huán)境設置為CTX

mesg

  • mesg命令用于設置當前終端的寫權限,即是否讓其他用戶向本終端發(fā)信息胶果。將mesg設置y時匾嘱,其他用戶可利用write命令將信息直接顯示在您的屏幕上

mkswap

  • 設置交換區(qū)(swap area)

  • mkswap [-cf][-v0][-v1][設備名稱或文件][交換區(qū)大小]

    | 選項 | 說明 |
    | :-------- | --------:|
    | -c | 建立交換區(qū)前,先檢查是否有損壞的區(qū)塊早抠;
    | -f | 在SPARC電腦上建立交換區(qū)時霎烙,要加上此參數(shù)
    | -v0 | 建立舊式交換區(qū),此為預設值蕊连;
    | -v1 | 建立新式交換區(qū)悬垃。

mkisofs

  • mkisofs命令用來將指定的目錄與文件做成ISO 9660格式的映像文件,以供刻錄光盤
  • mkisofs(選項)(參數(shù))
  • 由于選項過多請去網(wǎng)上查

nl

  • nl命令在linux系統(tǒng)中用來計算文件中行號甘苍。nl 可以將輸出的文件內(nèi)容自動的加上行號尝蠕!其默認的結果與 cat -n 有點不太一樣, nl 可以將行號做比較多的顯示設計羊赵,包括位數(shù)與是否自動補齊 0 等等的功能

  • 1.命令格式:
    nl [選項]... [文件]..

  • 2.命令參數(shù):

  • -b :指定行號指定的方式趟佃,主要有兩種:

    • -b a :表示不論是否為空行,也同樣列出行號(類似 cat -n)昧捷;
    • -b t :如果有空行闲昭,空的那一行不要列出行號(默認值);
  • -n :列出行號表示的方法靡挥,主要有三種:

    • -n ln :行號在螢幕的最左方顯示序矩;
    • -n rn :行號在自己欄位的最右方顯示,且不加 0 跋破;
  • -n rz :行號在自己欄位的最右方顯示簸淀,且加 0 ;

  • -w :行號欄位的占用的位數(shù)毒返。

  • -p 在邏輯定界符處不重新開始計算租幕。

netstat

  • netstat命令用來打印Linux中網(wǎng)絡系統(tǒng)的狀態(tài)信息,可讓你得知整個Linux系統(tǒng)的網(wǎng)絡情況

    | 選項 | 說明 |
    | :-------- | --------:|
    | -a或--all:顯示所有連線中的Socket拧簸;
    | -A<網(wǎng)絡類型>或--<網(wǎng)絡類型> | 列出該網(wǎng)絡類型連線中的相關地址劲绪;
    | -c或--continuous | 持續(xù)列出網(wǎng)絡狀態(tài);
    | -C或--cache | 顯示路由器配置的快取信息;
    | -e或--extend | 顯示網(wǎng)絡其他相關信息贾富;
    | -F或--fib | 顯示FIB歉眷;
    | -g或--groups | 顯示多重廣播功能群組組員名單;
    | -h或--help | 在線幫助颤枪;
    | -i或--interfaces | 顯示網(wǎng)絡界面信息表單汗捡;
    | -l或--listening | 顯示監(jiān)控中的服務器的Socket;
    | -M或--masquerade | 顯示偽裝的網(wǎng)絡連線畏纲;
    | -n或--numeric | 直接使用ip地址扇住,而不通過域名服務器;
    | -N或--netlink或--symbolic | 顯示網(wǎng)絡硬件外圍設備的符號連接名稱霍骄;
    | -o或--timers | 顯示計時器案狠;
    | -p或--programs | 顯示正在使用Socket的程序識別碼和程序名稱梭伐;
    | -r或--route | 顯示Routing Table勃蜘;
    | -s或--statistice | 顯示網(wǎng)絡工作信息統(tǒng)計表罐氨;
    | -t或--tcp | 顯示TCP傳輸協(xié)議的連線狀況;
    | -u或--udp | 顯示UDP傳輸協(xié)議的連線狀況米间;
    | -v或--verbose | 顯示指令執(zhí)行過程强品;
    | -V或--version | 顯示版本信息;
    | -w或--raw | 顯示RAW傳輸協(xié)議的連線狀況屈糊;
    | -x或--unix | 此參數(shù)的效果和指定"-A unix"參數(shù)相同的榛;
    | --ip或--inet | 此參數(shù)的效果和指定"-A inet"參數(shù)相同

newgrp

  • 登入另一個群組
  • 補充說明:newgrp指令類似login指令,當它是以相同的帳號逻锐,另一個群組名稱夫晌,再次登入系統(tǒng)。欲使用newgrp指令切換群組昧诱,您必須是該群組的用戶晓淀,否則將無法登入指定的群組。單一用戶要同時隸屬多個群組盏档,需利用交替用戶的設置凶掰。若不指定群組名稱,則newgrp指令會登入該用戶名稱的預設群組

ntpdate

  • ntpdate 使用網(wǎng)絡計時協(xié)議(NTP)設置日期和時間

nc

  • 功能強大的網(wǎng)絡工具

  • nc命令是netcat命令的簡稱蜈亩,都是用來設置路由器

    | 選項 | 說明 |
    | :-------- | --------:|
    | -g<網(wǎng)關> | 設置路由器躍程通信網(wǎng)關懦窘,最多可設置8個
    | -G<指向器數(shù)目> | 設置來源路由指向器,其數(shù)值為4的倍數(shù)
    | -h | 在線幫助
    | -i<延遲秒數(shù)> | 設置時間間隔稚配,以便傳送信息及掃描通信端口
    | -l | 使用監(jiān)聽模式畅涂,管控傳入的資料
    | -n | 直接使用IP地址,而不通過域名服務器
    | -o<輸出文件> | 指定文件名稱道川,把往來傳輸?shù)臄?shù)據(jù)以16進制字碼傾倒成該文件保存
    | -p<通信端口> | 設置本地主機使用的通信端口
    | -r | 亂數(shù)指定本地與遠端主機的通信端口
    | -s<來源位址> | 設置本地主機送出數(shù)據(jù)包的IP地址
    | -u | 使用UDP傳輸協(xié)議
    | -v | 顯示指令執(zhí)行過程
    | -w<超時秒數(shù)> | 設置等待連線的時間
    | -z | 使用0輸入/輸出模式午衰,只在掃描通信端口時使用

repquota

  • repquota 可以顯示磁盤空間的限制以及磁盤的使用情況

    | 選項 | 說明 |
    | :-------- | --------:|
    | -a | 列出所有文件系統(tǒng)的情況
    | -g | 顯示群組的使用情況苹丸。
    | -n | 以數(shù)字的形式顯示
    | -s | 顯示詳細情況
    | -u | 顯示用戶的磁盤使用情況
    | -v | 顯示所有文件系統(tǒng)的磁盤使用情況

rmmod

  • rmmod命令用于從當前運行的內(nèi)核中移除指定的內(nèi)核模塊。執(zhí)行rmmod指令苇经,可刪除不需要的模塊。Linux操作系統(tǒng)的核心具有模塊化的特性宦言,應此在編譯核心時扇单,務須把全部的功能都放如核心
  • 你可以將這些功能編譯成一個個單獨的模塊,待有需要時再分別載入它們

reboot

  • 電腦重啟

    | 選項 | 說明 |
    | :-------- | --------:|
    | -d | 重新開機時不把數(shù)據(jù)寫入記錄文件/var/tmp/wtmp奠旺。本參數(shù)具有“-n”參數(shù)效果
    | -f | 強制重新開機蜘澜,不調(diào)用shutdown指令的功能
    | -i | 在重開機之前,先關閉所有網(wǎng)絡界面
    | -n | 重開機之前不檢查是否有未結束的程序
    | -w | 僅做測試响疚,并不真正將系統(tǒng)重新開機鄙信,只會把重開機的數(shù)據(jù)寫入/var/log目錄下的wtmp記錄文件

rz

  • 上傳工具

route

  • route程序?qū)?nèi)核的IP選路表進行操作。它主要用于通過已用ifconfig(8)程序配置好的接口來指定的主機或網(wǎng)絡設置靜態(tài)路由

    | 選項 | 說明 |
    | :-------- | --------:|
    | -A | 設置地址類型忿晕;
    | -C | 打印將Linux核心的路由緩存
    | -v | 詳細信息模式
    | -n | 不執(zhí)行DNS反向查找装诡,直接顯示數(shù)字形式的IP地址
    | -e | netstat格式顯示路由表
    | -net | 到一個網(wǎng)絡的路由表
    | -host | 到一個主機的路由表

read

  • read 命令從標準輸入中讀取一行,并把輸入行的每個字段的值指定給 shell 變量
    | 選項 | 說明 |
    | :-------- | --------:|
    |-a | 后跟一個變量践盼,該變量會被認為是個數(shù)組鸦采,然后給其賦值,默認是以空格為分割符
    |-d | 后面跟一個標志符咕幻,其實只有其后的第一個字符有用渔伯,作為結束的標志,會舉例說明
    |-p | 后面跟提示信息肄程,即在輸入前打印提示信息
    |-e |在輸入的時候可以時候命令補全功能
    |-n |后跟一個數(shù)字锣吼,定義輸入文本的長度,很實用
    |-r |屏蔽蓝厌,如果沒有該選項玄叠,則作為一個轉義字符,有的話 就是個正常的字符了
    |-s |安靜模式褂始,在輸入字符時不再屏幕上顯示诸典,例如login時輸入密碼
    |-t |后面跟秒數(shù),定義輸入字符的等待時間
    |-u |后面跟fd崎苗,從文件描述符中讀入狐粱,該文件描述符可以是exec新開啟的

sed

  • sed是一種流編輯器,它是文本處理中非常中的工具胆数,能夠完美的配合正則表達式使用肌蜻,功能不同凡響
  • 處理時,把當前處理的行存儲在臨時緩沖區(qū)中必尼,稱為“模式空間”(pattern space)蒋搜,接著用sed命令處理緩沖區(qū)中的內(nèi)容篡撵,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕
  • 接著處理下一行豆挽,這樣不斷重復育谬,直到文件末尾。文件內(nèi)容并沒有 改變帮哈,除非你使用重定向存儲輸出
  • Sed主要用來自動編輯一個或多個文件膛檀;簡化對文件的反復操作;編寫轉換程序等

ss

  • 是類似netstat的工具娘侍。能顯示查看網(wǎng)絡狀態(tài)信息咖刃,包括TCP、UDP連接憾筏,端口

    | 選項 | 說明 |
    | :-------- | --------:|
    | -a | 顯示所有網(wǎng)絡連接
    | -l | 顯示LISTEN狀態(tài)的連接(連接打開)
    | -m | 顯示內(nèi)存信息(用于tcp_diag)
    | -o | 顯示Tcp 定時器x
    | -p | 顯示進程信息
    | -s | 連接統(tǒng)計
    | -d | 只顯示 DCCP信息 (等同于 -A dccp)
    | -u | 只顯示udp信息 (等同于 -A udp)
    | -w | 只顯示 RAW信息 (等同于 -A raw)
    | -t | 只顯示tcp信息 (等同于 -A tcp)
    | -x | 只顯示Unix通訊信息 (等同于 -A unix)
    | -4 | 只顯示 IPV4信息
    | -6 | 只顯示 IPV6信息

sleep

  • sleep命令暫停指定的時間
  • 時間長度嚎杨,后面可接 s、m氧腰、h 或 d枫浙,其中 s 為秒,m 為 分鐘古拴,h 為小時自脯,d 為日數(shù)

swapon

  • swapon命令用于激活Linux系統(tǒng)中交換空間,Linux系統(tǒng)的內(nèi)存管理必須使用交換區(qū)來建立虛擬內(nèi)存

swapoff

  • swapoff :關閉系統(tǒng)交換分區(qū)
  • -a 關閉所有交換設備
  • -h 幫助信息
  • -V 版本信息

setfacl

  • setfacl命令是用來在命令行里設置ACL(訪問控制列表)斤富。在命令行里膏潮,一系列的命令跟隨以一系列的文件名

| -b,--remove-all | 刪除所有擴展的acl規(guī)則,基本的acl規(guī)則(所有者满力,群組焕参,其他)將被保留
| -k,--remove-default | 刪除缺省的acl規(guī)則。如果沒有缺省規(guī)則油额,將不提示
| -n叠纷,--no-mask | 不要重新計算有效權限。setfacl默認會重新計算ACL mask潦嘶,除非mask被明確的制定
| --mask | 重新計算有效權限涩嚣,即使ACL mask被明確指定。 -d掂僵,--default:設定默認的acl規(guī)則
| -R航厚,--recursive | 遞歸的對所有文件及目錄進行操作
| -L,--logical | 跟蹤符號鏈接锰蓬,默認情況下只跟蹤符號鏈接文件幔睬,跳過符號鏈接目錄
| -P |--physical | 跳過所有符號鏈接,包括符號鏈接文件

ssh

  • ssh命令是openssh套件中的客戶端連接工具芹扭,可以給予ssh加密協(xié)議實現(xiàn)安全的遠程登錄服務器

    | 選項 | 說明 |
    | :-------- | --------:|
    |-1 |強制使用ssh協(xié)議版本1
    |-2 |強制使用ssh協(xié)議版本2
    |-4 |強制使用IPv4地址
    |-6 |強制使用IPv6地址
    |-A |開啟認證代理連接轉發(fā)功能
    |-a |關閉認證代理連接轉發(fā)功能
    |-b |使用本機指定地址作為對應連接的源ip地址
    |-C |請求壓縮所有數(shù)據(jù)
    |-F |指定ssh指令的配置文件
    |-f |后臺執(zhí)行ssh指令
    | -g |允許遠程主機連接主機的轉發(fā)端口
    | -i |指定身份文件
    | -l |指定連接遠程服務器登錄用戶名
    |-N |不執(zhí)行遠程指令
    |-o |指定配置選項
    |-p |指定遠程服務器上的端口
    |-q |靜默模式
    |-X |開啟X11轉發(fā)功能
    |-x |關閉X11轉發(fā)功能
    |-y |開啟信任X11轉發(fā)功能

source

  • source 命令:常用于重新執(zhí)行剛修改的初始化文件麻顶。如/etc/profile 赦抖, bash_profile, bashrc?通過 source命令 在不重啟的情況下生效
  • source 又稱:“點命令”是一個點符號辅肾。如: abc env?來執(zhí)行腳本

scp

  • scp命令用于在Linux下進行遠程拷貝文件的命令哈踱,和它類似的命令有cp判没,不過cp只是在本機進行拷貝不能跨服務器序仙,而且scp傳輸是加密的
  • 可能會稍微影響一下速度
  • 當你服務器硬盤變?yōu)橹蛔xread only system時邦鲫,用scp可以幫你把文件移出來
  • 另外左冬,scp還非常不占資源中鼠,不會提高多少系統(tǒng)負荷芯丧,在這一點上精拟,rsync就遠遠不及它了
  • 雖然 rsync比scp會快一點蝴簇,但當小文件眾多的情況下杯活,rsync會導致硬盤I/O非常高,而scp基本不影響系統(tǒng)正常使用

shred

  • 多次覆蓋文件熬词,使得即使是昂貴的硬件探測儀器也難以將數(shù)據(jù)復原

    | 選項 | 說明 |
    | :-------- | --------:|
    | -f | --force 必要時修改權限以使目標可寫
    | -n, | --iterations=N 覆蓋N 次旁钧,而非使用默認的3 次
    | --random-source=文件 | 從指定文件中取出隨機字節(jié)
    | -s, | --size=N 粉碎數(shù)據(jù)為指定字節(jié)的碎片(可使用K、M 和G 作為單位)
    | -u, | --remove 覆蓋后截斷并刪除文件
    | -v, | --verbose 顯示詳細信息
    | -x, | --exact 不將文件大小增加至最接近的塊大小
    | -z, | --zero 最后一次使用0 進行覆蓋以隱藏覆蓋動作

stat

  • stat命令用于顯示文件的狀態(tài)信息互拾。stat命令的輸出信息比ls命令的輸出信息要更詳細

-L, --dereference 跟隨鏈接
-f, --file-system 顯示文件系統(tǒng)狀態(tài)而非文件狀態(tài)
-c --format=格式 使用指定輸出格式代替默認值歪今,每用一次指定格式換一新行
--printf=格式 類似 --format,但是會解釋反斜杠轉義符颜矿,不使用換行作
輸出結尾寄猩。如果您仍希望使用換行,可以在格式中
加入"\n"
-t, --terse 使用簡潔格式輸出
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出

startx

  • 啟動圖形界面

screen

  • Screen是一款由GNU計劃開發(fā)的用于命令行終端切換的自由軟件骑疆。用戶可以通過該軟件同時連接多個本地或遠程的命令行會話田篇,并在其間自由切換。GNU Screen可以看作是窗口管理器的命令行界面版本箍铭。它提供了統(tǒng)一的管理多個會話的界面和相應的功能

  • 下面會單個解說

shutdown

  • shutdown命令用來系統(tǒng)關機命令泊柬。shutdown指令可以關閉所有程序,并依用戶的需要诈火,進行重新開機或關機的動作
選項 說明
-c 當執(zhí)行“shutdown -h 11:50”指令時兽赁,只要按+鍵就可以中斷關機的指令
-f 重新啟動時不執(zhí)行fsck;
-F 重新啟動時執(zhí)行fsck
-h 將系統(tǒng)關機冷守;
-k 只是送出信息給所有用戶刀崖,但不會實際關機;
-n 不調(diào)用init程序進行關機拍摇,而由shutdown自己進行蒲跨;
-r shutdown之后重新啟動; -t<秒數(shù)>:送出警告信息和刪除信息之間要延遲多少秒授翻。

su

  • su - 運行替換用戶和組標識的shell
選項 說明
-, -l --login 使得shell為可登錄的shell
-c --commmand=COMMAND 傳遞單個COMMAND給-c的shell.
-f --fast 傳遞-f給shell(針對csh或tcsh)
-m --preserve-environment 不重置環(huán)境變量
-p 與-m同
-s, --shell=SHELL 如果/etc/shells允許,運行SHELL.

set

  • set命令作用主要是顯示系統(tǒng)中已經(jīng)存在的shell變量或悲,以及設置shell變量的新變量值

  • 使用set更改shell特性時孙咪,符號"+"和"-"的作用分別是打開和關閉指定的模式

  • set命令不能夠定義新的shell變量

  • 如果要定義新的變量,可以使用declare命令以變量名=值的格式進行定義即可

    | 選項 | 說明 |
    | :-------- | --------:|
    | -a | 標示已修改的變量巡语,以供輸出至環(huán)境變量
    | -b | 使被中止的后臺程序立刻回報執(zhí)行狀態(tài)
    | -C | 轉向所產(chǎn)生的文件無法覆蓋已存在的文件
    | -d | Shell預設會用雜湊表記憶使用過的指令翎蹈,以加速指令的執(zhí)行,使用-d參數(shù)可取消
    | -e | 若指令傳回值不等于0,則立即退出shell
    | -f | 取消使用通配符
    | -h | 自動記錄函數(shù)的所在位置
    | -H Shell | 可利用"!"加<指令編號>的方式來執(zhí)行history中記錄的指令
    | -k | 指令所給的參數(shù)都會被視為此指令的環(huán)境變量
    | -l | 記錄for循環(huán)的變量名稱
    | -m | 使用監(jiān)視模式
    | -n | 只讀取指令男公,而不實際執(zhí)行
    | -p | 啟動優(yōu)先順序模式
    | -P | 啟動-P參數(shù)后荤堪,執(zhí)行指令時,會以實際的文件或目錄來取代符號連
    | -t| 執(zhí)行完隨后的指令枢赔,即退出shell
    | -u | 當執(zhí)行時使用到未定義過的變量澄阳,則顯示錯誤信息
    | -v | 顯示shell所讀取的輸入值
    | -x | 執(zhí)行指令后,會先顯示該指令及所下的參數(shù)

top

  • top命令可以實時動態(tài)地查看系統(tǒng)的整體運行情況踏拜,是一個綜合了多方信息監(jiān)測系統(tǒng)性能和運行信息的實用工具碎赢。通過top命令所提供的互動式界面,用熱鍵可以管理

    | 選項 | 說明 |
    | :-------- | --------:|
    |-b |以批處理模式操作
    |-c |顯示完整的治命令
    |-d |屏幕刷新間隔時間
    |-I |忽略失效過程
    | -s |保密模式
    | -S |累積模式
    | -i<時間> |設置間隔時間
    |-u<用戶名> |指定用戶名
    | -p<進程號> |指定進程
    | -n<次數(shù)> |循環(huán)顯示的次數(shù)

traceroute

  • traceroute指令讓你追蹤網(wǎng)絡數(shù)據(jù)包的路由途徑速梗,預設數(shù)據(jù)包大小是40Bytes
選項 說明
-d 使用Socket層級的排錯功能
-f<存活數(shù)值> 設置第一個檢測數(shù)據(jù)包的存活數(shù)值TTL的大小
-F 設置勿離斷位
-g<網(wǎng)關> 設置來源路由網(wǎng)關肮塞,最多可設置8個
-i<網(wǎng)絡界面> 使用指定的網(wǎng)絡界面送出數(shù)據(jù)包
-I 使用ICMP回應取代UDP資料信息
-m<存活數(shù)值> 設置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小
-n 直接使用IP地址而非主機名稱
-p<通信端口> 設置UDP傳輸協(xié)議的通信端口
-q 設置每一跳的探測包數(shù)量。默認是3
-r 忽略普通的Routing Table姻锁,直接將數(shù)據(jù)包送到遠端主機上
-s<來源地址> 設置本地主機送出數(shù)據(jù)包的IP地址
-t<服務類型> 設置檢測數(shù)據(jù)包的TOS數(shù)值
-v 詳細顯示指令的執(zhí)行過程
-w<超時秒數(shù)> 設置等待遠端主機回報的時間
-x 開啟或關閉數(shù)據(jù)包的正確性檢驗

tracepath

  • tracepath 用來追蹤連接到目標地址的所經(jīng)過的路由

tune2fs

  • tune2fs命令允許系統(tǒng)管理員調(diào)整“ext2/ext3”文件系統(tǒng)中的可該參數(shù)枕赵。Windows下面如果出現(xiàn)意外斷電死機情況,下次開機一般都會出現(xiàn)系統(tǒng)自檢位隶。Linux系統(tǒng)下面也有文件系統(tǒng)自檢拷窜,而且是可以通過tune2fs命令,自行定義自檢周期及方式

    | 選項 | 說明 |
    | :-------- | --------:|
    | -c| 調(diào)整最大加載次數(shù)
    | -C| 設置文件系統(tǒng)已經(jīng)被加載的次數(shù)
    | -e| 設置內(nèi)核代碼檢測到錯誤時的行為
    | -f| 強制執(zhí)行修改涧黄,即使發(fā)生錯誤
    | -i| 設置相鄰兩次文件系統(tǒng)檢查的相隔時間
    | -j| 為“ext2”文件系統(tǒng)添加日志功能装黑,將其轉換為“ext3”文件系統(tǒng)
    | -l| 顯示文件超級塊內(nèi)容
    | -L| 設置文件系統(tǒng)卷標
    | -m| 顯示文件保留塊的百分比
    | -M| 設置文件系統(tǒng)最后被加載到的目錄
    | -o| 設置或清除文件系統(tǒng)加載的特性或選項
    | -O| 設置或清除文件系統(tǒng)的特性或選項
    | -r| 設置文件系統(tǒng)保留塊的大小
    | -T| 設置文件系統(tǒng)上次被檢查的時間
    | -u| 設置可以使用文件系統(tǒng)保留塊的用戶
    | -U| 設置文件系統(tǒng)的UUID

test

  • test命令是shell環(huán)境中測試條件表達式的實用工具
選項 說明
-b<文件>v如果文件為一個塊特殊文件,則為真
-c<文件> 如果文件為一個字符特殊文件弓熏,則為真
-d<文件> 如果文件為一個目錄恋谭,則為真
-e<文件> 如果文件存在,則為真
-f<文件> 如果文件為一個普通文件挽鞠,則為真
-g<文件> 如果設置了文件的SGID位疚颊,則為真
-G<文件> 如果文件存在且歸該組所有,則為真
-k<文件> 如果設置了文件的粘著位信认,則為真
-O<文件> 如果文件存在并且歸該用戶所有材义,則為真
-p<文件> 如果文件為一個命名管道,則為真
-r<文件> 如果文件可讀嫁赏,則為真
-s<文件> 如果文件的長度不為零其掂,則為真
-S<文件> 如果文件為一個套接字特殊文件,則為真
-u<文件> 如果設置了文件的SUID位潦蝇,則為真
-w<文件> 如果文件可寫款熬,則為真
-x<文件> 如果文件可執(zhí)行深寥,則為真

tac

  • tac命令用于將文件已行為單位的反序輸出,即第一行最后顯示贤牛,最后一行先顯示

    選項 說明
    -b, --before 在行前而非行尾添加分隔標志
    -r, --regex 將分隔標志視作正則表達式來解析
    -s, --separator=字符串 使用指定字符串代替換行作為分隔標志

tty

  • 顯示當前終端

time

  • time命令用于統(tǒng)計給定命令所花費的總時間

type

  • type 命令被用于判斷另外一個命令是否是內(nèi)置命令

    選項 說明
    -a 顯示一個名字的所有可能
    -t 判斷一個名字當前是否是alias惋鹅、keyword、function殉簸、builtin闰集、file
    -p 查看一個外部命令的執(zhí)行路徑
    -P 查看內(nèi)部命令路徑

tar

  • tar 命令:用來壓縮和解壓文件。tar本身不具有壓縮功能般卑。他是調(diào)用壓縮功能實現(xiàn)的

    選項 說明
    -A 追加 tar 文件至歸檔
    -c 創(chuàng)建一個新歸檔
    -d 找出歸檔和文件系統(tǒng)的差異
    -r -追加文件至歸檔結尾
    -t 列出歸檔內(nèi)容
    -u -僅追加比歸檔中副本更新的文件
    -x 從歸檔中解出文件

xargs

  • xargs 又稱管道命令武鲁,構造參數(shù)等。是給命令傳遞參數(shù)的一個過濾器,也是組合多個命令的一個工具
  • 它把一個數(shù)據(jù)流分割為一些足夠小的塊,以方便過濾器和命令進行處理
  • 簡單的說 就是把 其他命令的給它的數(shù)據(jù) 傳遞給它后面的命令作為參數(shù)
選項 說明
-i 用 {} 代替 傳遞的數(shù)據(jù)
-I string 用string來代替?zhèn)鬟f的數(shù)據(jù)-n[數(shù)字] 設置每次傳遞幾行數(shù)據(jù)
-n 選項限制單個命令行的參數(shù)個數(shù)
-t 顯示執(zhí)行詳情
-p 交互模式
-P n 允許的最大線程數(shù)量為n
-s[大小] 設置傳遞參數(shù)的最大字節(jié)數(shù)(小于131072字節(jié))
-x 大于 -s 設置的最大長度結束 xargs命令執(zhí)行

uptime

  • uptime命令能夠打印系統(tǒng)總共運行了多長時間和系統(tǒng)的平均負載蝠检。uptime命令可以顯示的信息顯示依次為:現(xiàn)在時間沐鼠、系統(tǒng)已經(jīng)運行了多長時間、目前有多少登陸用戶蝇率、系統(tǒng)在過去的1分鐘、5分鐘和15分鐘內(nèi)的平均負載

umask

  • umask命令用來設置限制新建文件權限的掩碼
  • 當新文件被創(chuàng)建時刽沾,其最初的權限由文件創(chuàng)建掩碼決定
  • 用戶每次注冊進入系統(tǒng)時本慕,umask命令都被執(zhí)行, 并自動設置掩碼mode來限制新文件的權限
  • 用戶可以通過再次執(zhí)行umask命令來改變默認值侧漓,新的權限將會把舊的覆蓋掉
選項 說明
-p 輸出的權限掩碼可直接作為指令來執(zhí)行
-S 以符號方式輸出權限掩碼

umount

  • umount命令用于卸載已經(jīng)加載的文件系統(tǒng)锅尘。利用設備名或掛載點都能umount文件系統(tǒng),不過最好還是通過掛載點卸載布蔗,以免使用綁定掛載(一個設備藤违,多個掛載點)時產(chǎn)生混亂

    選項 說明

| -a | 卸除/etc/mtab中記錄的所有文件系統(tǒng);
| -h | 顯示幫助纵揍;
| -n | 卸除時不要將信息存入/etc/mtab文件中
| -r | 若無法成功卸除顿乒,則嘗試以只讀的方式重新掛入文件系統(tǒng);
| -t<文件系統(tǒng)類型> | 僅卸除選項中所指定的文件系統(tǒng)泽谨;
| -v | 執(zhí)行時顯示詳細的信息璧榄;
| -V | 顯示版本信息

vmstat

  • vmstat命令的含義為顯示虛擬內(nèi)存狀態(tài)(“Viryual Memor Statics”)

  • 但是它可以報告關于進程、內(nèi)存吧雹、I/O等系統(tǒng)整體運行狀態(tài)

    選項 說明
    -a 顯示活動內(nèi)頁骨杂;
    -f 顯示啟動后創(chuàng)建的進程總數(shù)尿赚;
    -m 顯示slab信息罐栈;
    -n 頭信息僅顯示一次;
    -s 以表格方式顯示事件計數(shù)器和內(nèi)存狀態(tài)疼邀;
    -d 報告磁盤狀態(tài)
    -p 顯示指定的硬盤分區(qū)狀態(tài)丁鹉;
    -S 輸出信息的單位妒潭。

vipw

  • vipw:這個命令最主要就是會給文件加鎖!以免在編輯文件時悴能!其他用戶也在同時使用文件!而造成其他用戶修改的不成功杜耙!

    選項 說明
    -g, --group 編輯 group 數(shù)據(jù)庫
    -h, --help 顯示此幫助信息并推出
    -p, --passwd 編輯 passwd 數(shù)據(jù)庫
    -q, --quiet 安靜模式
    -R, --root CHROOT_DIR chroot 到的目錄

| -s, --shadow | 編輯 shadow 或 gshadow 數(shù)據(jù)庫

write

  • write命令用于向指定登錄用戶終端上發(fā)送信息
  • 搜骡。通過write命令可傳遞信息給另一位登入系統(tǒng)的用戶,當輸入完畢后佑女,鍵入EOF表示信息結束记靡,write命令就會將信息傳給對方
  • 如果接收信息的用戶不只登入本地主機一次,你可以指定接收信息的終端機編號

wall

  • wall命令用于向系統(tǒng)當前所有打開的終端上輸出信息团驱。
  • 通過wall命令可將信息發(fā)送給每位同意接收公眾信息的終端機用戶摸吠,
  • 若不給予其信息內(nèi)容,則wall命令會從標準輸入設備讀取數(shù)據(jù)嚎花,然后再把所得到的數(shù)據(jù)傳送給所有終端機用戶

watch

  • watch命令以周期性的方式執(zhí)行給定的指令寸痢,指令輸出以全屏方式顯示。
  • watch是一個非常實用的命令紊选,基本所有的Linux發(fā)行版都帶有這個小工具啼止,如同名字一樣,watch可以幫你監(jiān)測一個命令的運行結果兵罢,省得你一遍遍的手動運行

w

  • w命令用于顯示已經(jīng)登陸系統(tǒng)的用戶列表献烦,并顯示用戶正在執(zhí)行的指令。
  • 執(zhí)行這個命令可得知目前登入系統(tǒng)的用戶有那些人卖词,以及他們正在執(zhí)行的程序巩那。
  • 選項 說明
    -h 不打印頭信息;
    -u 當顯示當前進程和cpu時間時忽略用戶名此蜈;
    -s 使用短輸出格式即横;
    -f 顯示用戶從哪登錄;
    -V 顯示版本信息
    單獨執(zhí)行w命令會顯示所有的用戶裆赵,您也可指定用戶名稱东囚,僅顯示某位用戶的相關信息
    選項 說明
    -h 不打印頭信息;
    -u 當顯示當前進程和cpu時間時忽略用戶名战授;
    -s 使用短輸出格式舔庶;
    -f 顯示用戶從哪登錄;
    -V 顯示版本信息

who

  • who命令是顯示目前登錄系統(tǒng)的用戶信息陈醒。執(zhí)行who命令可得知目前有那些用戶登入系統(tǒng)惕橙,單獨執(zhí)行who命令會列出登入帳號,使用的終端機钉跷,登入時間以及從何處登入或正在使用哪個X顯示器

whoami

  • whoami命令用于打印當前有效的用戶名稱弥鹦,相當于執(zhí)行id -un命令

which

  • which命令用于查找并顯示給定命令的絕對路徑,環(huán)境變量PATH中保存了查找命令時需要遍歷的目錄。
  • which指令會在環(huán)境變量$PATH設置的目錄里查找符合條件的文件
  • 也就是說彬坏,使用which命令朦促,就可以看到某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個位置的命令

whereis

  • whereis命令用來定位指令的二進制程序栓始、源代碼文件和man手冊頁等相關文件的路徑

    選項 說明
    -b 定位可執(zhí)行文件
    -m 定位幫助文件
    -s 定位源代碼文件
    -u 搜索默認路徑下除可執(zhí)行文件务冕、源代碼文件、幫助文件以外的其它文件
    -B 指定搜索可執(zhí)行文件的路徑
    -M 指定搜索幫助文件的路徑
    -S 指定搜索源代碼文件的路徑

whatis

  • whatis命令是用于查詢一個命令執(zhí)行什么功能幻赚,并將查詢結果打印到終端上

  • whatis命令在用catman -w命令創(chuàng)建的數(shù)據(jù)庫中查找command參數(shù)指定的命令禀忆、系統(tǒng)調(diào)用、庫函數(shù)或特殊文件名落恼。whatis命令顯示手冊部分的頁眉行

  • 然后可以發(fā)出man命令以獲取附加的信息箩退。whatis命令等同于使用man -f命令

grup install

  • 修復硬盤啟動第一階段或1.5階段和二階段的功能

seek

- 跳過扇區(qū)

sync

  • 寫入緩存數(shù)據(jù)

vgs

  • vgscan命令查找系統(tǒng)中存在的LVM卷組,并顯示找到的卷組列表佳谦。vgscan命令僅顯示找到的卷組的名稱和LVM元數(shù)據(jù)類型戴涝,要得到卷組的詳細信息需要使用vgdisplay命令
  • -d:調(diào)試模式; --ignorerlockingfailure:忽略鎖定失敗的錯誤钻蔑。

vgdisplay

  • vgdisplay命令用于顯示LVM卷組的信息啥刻。如果不指定"卷組"參數(shù),則分別顯示所有卷組的屬性
  • -A:僅顯示活動卷組的屬性咪笑;
  • -s:使用短格式輸出的信息可帽。

vgcreate

  • vgcreate命令用于創(chuàng)建LVM卷組。卷組(Volume Group)將多個物理卷組織成一個整體蒲肋,屏蔽了底層物理卷細節(jié)蘑拯。在卷組上創(chuàng)建邏輯卷時不用考慮具體的物理卷信息
    -l:卷組上允許創(chuàng)建的最大邏輯卷數(shù)钝满; -p:卷組中允許添加的最大物理卷數(shù)兜粘; -s:卷組上的物理卷的PE大小。

vgextend

  • vgextend命令用于動態(tài)擴展LVM卷組弯蚜,它通過向卷組中添加物理卷來增加卷組的容量
  • LVM卷組中的物理卷可以在使用vgcreate命令創(chuàng)建卷組時添加孔轴,也可以使用vgextend命令動態(tài)的添加
  • -d:調(diào)試模式;
  • -t:僅測試碎捺。

vgreduce

  • vgreduce命令通過刪除LVM卷組中的物理卷來減少卷組容量路鹰。不能刪除LVM卷組中剩余的最后一個物理卷
  • -a:如果命令行中沒有指定要刪除的物理卷,則刪除所有的空物理卷
  • --removemissing:刪除卷組中丟失的物理卷收厨,使卷組恢復正常狀態(tài)

vgremove

  • vgremove命令用于用戶刪除LVM卷組晋柱。
  • 當要刪除的卷組上已經(jīng)創(chuàng)建了邏輯卷時,vgremove命令需要進行確認刪除诵叁,防止誤刪除數(shù)據(jù)
  • -f:強制刪除雁竞。

vgchange

  • vgchange命令用于修改卷組的屬性,經(jīng)常被用來設置卷組是處于活動狀態(tài)或非活動狀態(tài)。
  • 處于活動狀態(tài)的卷組無法被刪除碑诉,必須使用vgchange命令將卷組設置為非活動狀態(tài)后才能刪除
  • -a:設置卷組的活動狀態(tài)彪腔。

文件系統(tǒng)區(qū)

Linux的文件系統(tǒng)

  • 文件系統(tǒng)類型就是分區(qū)的格式,對于不同的外設进栽,Linxu也提供了不同的文件類型
  • 常用文件系統(tǒng)類型
    | 文件系統(tǒng)格式 | 備注 |
    | :-------- | --------:|
    | msdos | DOS文件系統(tǒng)類型 |
    | vfat | 支持長文件的DOS分區(qū)文件系統(tǒng)類型德挣,也可以理解為Windows文件系統(tǒng)類型 |
    | iso9660 | 光盤格式文件 |
    | ext2/ext3/ext4 | Linux 下的助理文件系統(tǒng)類型 |
    | xfs | Linxu下一種高性能的日志文件系統(tǒng),在Centso7.x版本中成為默認文件系統(tǒng) |

Linux文件系統(tǒng)結構

  • 目錄功能介紹
  • 很多Linux的發(fā)行版目錄結構布局都遵循FSSTNMD標準快毛,這一標準的特點是根目錄非常簡潔格嗅,只包括含系統(tǒng)最基本的文件
  • 遵循這一標準,有利于程序的編寫和移植祸泪,也便于系統(tǒng)管理和維護

/etc目錄

  • 這個目錄主要存放于系統(tǒng)管理相關的配置文件已經(jīng)子目錄
  • 其中筆記重要的有系統(tǒng)初始化文件/etc/rc吗浩、用戶信息文件/etc/passwd等
  • 相關網(wǎng)絡配置文件和服務啟動文件也在這個目錄下
文件名和目錄 主要作用
passwd 用戶庫文件、每個用戶的用戶名没隘、UID懂扼、GID和工作目錄等都存放在此文件中
shadow 存放用戶密碼的文件,每個用戶的密碼加密后都放入此文件
group 主要存儲用戶組信息
fstab 系統(tǒng)開機啟動自動掛載分區(qū)列表右蒲,需要設置開機自動掛載的分區(qū)阀湿,都可以在此文件加入
systemd systemd的配置文件目錄是CaentOS7.x版本之后新增目錄,此目錄是Linux啟動的重要部分瑰妄,用來完成對整個系統(tǒng)的基本初始化配置
hosts 設定用戶自己的IP與名字的對應表陷嘴,類似于Windiws下的hosts文件
resolv.conf 客戶端DNS配置文件
systemd/system/*.wants 此目錄包含所有服務啟動腳本,開機時系統(tǒng)將自動啟動這些服務间坐,是CentOS7.x版本之后新增目錄
sysconfig/network-scripts/ufcfg-eth0... IP地址配置文件灾挨,CentOS7.x版本之后網(wǎng)卡名從類似、eth0/eth1的標識變?yōu)閑np0s3/enp0s4等標識
X11 X-windwos的配置文件
rsyslog.conf 系統(tǒng)日志輸出配置文件竹宋,在CentOS5.x版本以及之前版本中對應的文件是syslog,CentOS6.x版本以及以后版本中是rsyslog.conf
crontab 系統(tǒng)級別的守護進程配置文件
sysctl.conf 系統(tǒng)內(nèi)核參數(shù)配置文件劳澄,在CenOS7.x版本之后,內(nèi)核參數(shù)配置文件轉移到了/usr/lib/sysctl.d目錄下蜈七,但sysctl.conf文件仍是有效秒拔,并且可覆蓋/usr/lib/sysctl.d中的配置文件
services 定義系統(tǒng)服務與端口的對應關系
profile 系統(tǒng)全家環(huán)境變量配置文件

/usr目錄

  • 此目錄主要用于存放應用程序和文件
  • 如果在系統(tǒng)安裝的時候選擇了很多軟件包,那么這些軟件包默認會安裝到此目錄下
  • 平時安裝的一些軟件默認情況下也會安裝到此 目錄下
  • 因此這個目錄一般比較大
文件或目錄 主要作用
lib64以及l(fā)ocal/lib64 64位操作系統(tǒng)中的函數(shù)庫目錄
src 該目錄包含所有程序的源代碼飒硅,其中主要是Linux核心程序源代碼
bin以及cocal/bin 該目錄存放本地安裝的軟件和其他文件砂缩,與Linux系統(tǒng)無關
lib以及cocal/lib 32位操作系統(tǒng)使用的函數(shù)看目錄
sbin以及l(fā)ocal/sbin 該目錄存放系統(tǒng)管理員才能執(zhí)行的指令
include 此目錄包含C語言的頭文件浑玛,文件擴展名大多是.h
share 該目錄存放共享的文件和數(shù)據(jù)庫

/var目錄

  • 此目錄主要用于存放系統(tǒng)運行以及軟件運行的日志信息
    | 文件或目錄 | 主要作用|
    | :-------- | --------:|
    | log | 該目錄存放各種應用的日志文件挟冠,這里的文件是經(jīng)常變動的,因此需要定期清理|
    | lib | 該目錄存放系統(tǒng)正常運行時需要改變的庫文件|
    | spool | 該目錄mail涯曲、new雀监、打印機隊列和其他隊列輸入双吆、輸出的緩存目錄|
    | tmp | 該目錄運行比/tmp 存放更大的文件|
    | lock | 該目錄存放被鎖定的文件,很多程序都會在/var/lock下產(chǎn)生一個鎖文件,以保證其他程序不能同時使用這個設備或文件|
    | local | 該目錄存放/usr/local中所安裝程序的可變數(shù)據(jù)|
    | accout | 該目錄存放已經(jīng)格式化的man頁|
    | run | 該目錄包含到下次系統(tǒng)啟動的系統(tǒng)信息|

/dev目錄

  • /dev/目錄包含系統(tǒng)所有的設備文件
文件或目錄 主要作用
fd* 代表軟盤設備伊诵,fd0代表變化的第一個軟盤設備单绑,fd1代表第二個軟盤設備
audio* 代表聲卡設備
hd* 代表IDE硬盤設備,hda代表第一塊IDE硬盤,hdb代表第二塊IDE設備曹宴,以此類推
sd* 代表SCSI設備 搂橙,sda代表第一塊SCSI設備,adb代表第二塊SCSI硬盤笛坦,以此類推
lp* 代表并行串口
pty* 代表網(wǎng)絡中登錄的遠程終端設備
ram* 代表系統(tǒng)內(nèi)存
tty* 代表Linux上的虛擬控制臺区转,也叫字符控制臺。tty1代表第一個虛擬控制版扩,tty2代表第二個虛擬控制臺废离,以此類推,Linux上一共有6個虛擬控制臺
ttyS* 代表串行端口礁芦。tty0代表串行端口1蜻韭,tty1代表串行端口2,類似于Windows下的COM1柿扣,COM2
console* 代表系統(tǒng)控制臺肖方,也就是桌面控制臺,可以直接鏈接到顯示器
null 輸出空設備

/proc

  • 此目錄是一個虛擬目錄未状,目錄中所有信息都是內(nèi)存的映射俯画,通過這個虛擬的內(nèi)存映射目錄,可以和內(nèi)核內(nèi)部數(shù)據(jù)結構進行交互司草,獲取有關進程的有用信息
  • 同時也可以在系統(tǒng)運行中修改內(nèi)核參數(shù)
  • 與其他目錄不同艰垂,/proc存在于內(nèi)存中,而不是硬盤上
文件或目錄 主要作用
cpuinfo 關于系統(tǒng)CPU的詳細信息埋虹,包括CPU名稱猜憎、型號和類型等
meninfo 內(nèi)存信息、包括物理內(nèi)存和虛擬內(nèi)存
fiesystems 當前系統(tǒng)支持的文件系統(tǒng)類型
devices 內(nèi)核中的設備驅(qū)動程序列表
net 網(wǎng)絡使用協(xié)議以及狀態(tài)信息
dma 當前使用的dma通道
iopots 當前使用的I/O
modules 當前系統(tǒng)加載的內(nèi)核模塊信息
stat 系統(tǒng)的各種狀態(tài)信息
uptime 系統(tǒng)總的時間和空閑時間吨岭,以秒為單位
version 內(nèi)核版本信息
loadavg 系統(tǒng)平均負載
kcore 系統(tǒng)物理內(nèi)存的映射拉宗,與物理內(nèi)存大小完全一樣峦树,但實際不占用這么大的空間
kmsg 內(nèi)核輸出信息辣辫,同時被輸出到rsyslog

其他目錄

  • /boot目錄:該目錄存放的是啟動Linux時的一些核心文件,具體包含一些鏡像文件和鏈接文件魁巩,因此這個目錄非常重要急灭,如果遭到破壞,系統(tǒng)將無法啟動
  • /bin和/sbin目錄:這兩個目錄存放的都是可執(zhí)行的二進制谷遂。bin其實就是binary的縮寫葬馋,/bin目錄下的就是我們經(jīng)常使用的Linux命令。例如,文件操作命令ls,cd,cp;文本編輯命令dd,df,mount,等等畴嘶。
  • /sbin目錄:/sbin中的s是Super 蛋逾、User的意思,也就是說窗悯,只有超級用戶才能執(zhí)行這些命令区匣。常見的如磁盤檢查修復命令fcsk、磁盤分區(qū)命令fdisk蒋院、創(chuàng)建文件系統(tǒng)命令mkfs亏钩、關機命令shutdwn和初始化系統(tǒng)命令命令而等。
  • /home目錄:該目錄是系統(tǒng)中每個用戶的工作目錄欺旧。在Linux系統(tǒng)中姑丑,每個用戶都有一個自己的目錄,而該目錄一般是由用戶的賬號命名的辞友。例如栅哀,如果有一個用戶ixdba,那么它的默認目錄就是/home/ixdba。
  • /lib目錄:該目錄中存放的是共享程序庫和映像文件称龙,可供很多程序使用昌屉。通過這些共享映射文件,每個程序就不必分別保存自己的庫文件(這會增加占用的磁盤空間)茵瀑,Linux提供了一組可供所有程序使用的文件间驮。在該目錄中,還包含了引導進程所需要的靜態(tài)文件
  • /root目錄:該目錄是Linux超級用戶root默認主目錄马昨。如果通過root登錄系統(tǒng)竞帽,就會自動進入此目錄,一般用戶沒有進入此目錄的權限鸿捧。
  • /run目錄:該目錄是外在設備的自動掛載點目錄屹篓,出現(xiàn)在CentOS7.x版本中,用來自動掛載光驅(qū)和U盤匙奴。另外堆巧,還有一個/media目錄,與/run目錄作用基本類似泼菌,在CentOS7.x之前版本中使用谍肤。最后,還有一個目錄/mnt主要用來手動掛載一些移動設備哗伯,比如可以移動的磁盤等荒揣。
  • /lost-found目錄:該目錄用于保存丟失的文件。不恰當?shù)年P機操作和磁盤錯誤均會導致文件丟失焊刹,這些丟失的文件會臨時放在/lost+found下系任,系統(tǒng)重啟后恳蹲,引導進程會運行fdck程序,該程序就能發(fā)現(xiàn)這些文件俩滥。除了"/"分區(qū)上的這個目錄外嘉蕾,在每個分區(qū)上均有一個lost-found目錄。
  • /tmp目錄:該目錄為臨時文件目錄霜旧,主要用于存放臨時文件荆针,這些臨時文件可能會隨時被刪除,也可以隨時刪除

CentOS5和6開啟啟動流程區(qū)

  • CentoS5和6開機啟動基本相似的颁糟,到了CentOS7才有了大的改變
  • 當CentOS和Windwos開機也是有很多相似的地方的航背,請看下圖

ROM

  • ROM-Read Only Memory只讀存儲器,如我們主板的BIOS芯片
    -BOIS(Basic Input and Output System),保存著有關計算機系統(tǒng)最重要的基本輸入輸出程序
  • 斷電后信息不丟失棱貌,如計算機啟動用的BIOS芯片玖媚。存取速度很低,(較RAM而言)且不能改寫
  • 由于不能改寫信息婚脱,不能升級今魔,現(xiàn)已很少使用
  • 還有系統(tǒng)信息設置、開機加電自檢程序和系統(tǒng)啟動自句舉程序等

RAM

  • RAM-RamdomAccessMemory易揮發(fā)性隨機存取存儲器障贸,高速存取错森,讀寫時間相等
  • 且與地址無關,如計算機內(nèi)存等
  • 但是他一斷電數(shù)據(jù)就丟了篮洁,所以和他配合的有一塊CMOS電池涩维,來保存里面的數(shù)據(jù)如時間等


啟動流程介紹

POST加電自檢

  • POST(Power-On-Self-Test),翻譯出來就是加電自檢
  • POST加電自檢也就是在我們主板上有一個ROM袁波,也就是BIOS瓦阐,他只是只讀的
  • 他是固化在我們主板的ROM里面的,他的作用就是開機的時候幫我們來檢查各種硬件
  • BOIS還有一個功能就是選擇第一啟動引導和等等修改硬件參數(shù)
  • BOIS是不支持現(xiàn)在最新的GPT分區(qū)篷牌,GPT分區(qū)只有UEFI引導才支持

MBR引導

  • BIOS是配合的MBR引導睡蟋,裝系統(tǒng)的時候千萬要注意哦,童鞋們
  • MBR是比較傳統(tǒng)的引導了枷颊,一般適用與家庭電腦用戶
  • MBR存放在我們硬盤的446字節(jié)的第一個扇區(qū)戳杀,他對應的MBR里面存放了,三部分內(nèi)容夭苗,446字節(jié)信卡,64字節(jié)的分區(qū)表限寞,無為的標志位

bootloader:引導加載器,引導程序

  • BootLoader是在操作系統(tǒng)內(nèi)核運行之前運行
  • 可以初始化硬件設備业簿、建立內(nèi)存空間映射圖殿雪,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境
  • 早起的系統(tǒng)用的是LILO(Linux LOader)不過已經(jīng)淘汰
  • 最新的都用的是GRUB()GRand Unified Bootloader)現(xiàn)在已經(jīng)有很多版本歹苦,他還可以敲命令和加密等等咨堤,如我們現(xiàn)在的Linux系統(tǒng)

GRUB

  • GNU GRUB 和GRUB是GRand Unified Bootloader的縮寫
  • 它是一個多重操作系統(tǒng)啟動管理器埂伦。用來引導不同系統(tǒng)仔蝌,如windows泛领,linux
  • 上面所說的446字節(jié)里面就放這GRUB的一小部分

加載內(nèi)核

  • GRUB 運行成功以后就開始加載內(nèi)核了
  • 內(nèi)核加載完畢以后就開始運行我們第一個進程,init進程
  • init進程運行的話敛惊,他有一些初始化腳本如/etc/inittab等等渊鞋,最終你就會看到一個登錄界面出來了,中間的腳本一定要會

啟動流程進階

MBR:第一階段

  • 446: bootloader, 64: 分區(qū)表, 2: 55AA
  • 446字節(jié)不屬于任何分區(qū)瞧挤,他表現(xiàn)是二進制

1.5階段

  • primary boot loader : 1st stage锡宋,1.5 stage
  • 1.5階段,就在MBR后續(xù)的分區(qū)里面特恬,也就是后續(xù)的扇區(qū)里面
  • 因為一階段存放不了驅(qū)動执俩,就沒法加載二階段
  • 1.5階段就是為了支持二階段而存在
  • 因為二階段,對應的是/boot分區(qū)癌刽,沒有1.5階段就進不去二階段役首,二階段的驅(qū)動你加載不了,進而就讀取不了二階段的相關文件显拜,所以他的驅(qū)動就放在MBR后續(xù)的扇區(qū)里面

GRUB:第二階段

  • 二階段是放在/boot/grub目錄下的文件 衡奥,他是依賴于1.5階段
  • secondary boot loader :2nd stage,分區(qū)文件

kernel:

  • 自身初始化:
  • vmlinz文件功能他主要探測可識別到的所有硬件設備远荠,當然ext4的文件驅(qū)動也不可能會放在里面矮固,因為他有一個單獨的文件來放那就是initramfs文件來放ext4驅(qū)動
  • 內(nèi)核的文件驅(qū)動和FRUB的加載文件驅(qū)動是兩碼事
  • 我們驅(qū)動一共是分三部分來存放:核心的是放在/boot/vmlinuz最重要的 、其二是在/boot/initramfs這里放的是額外的一些驅(qū)動譬淳、其三是放在/lib/modules剩下的大部分驅(qū)動是放在這個目錄下
  • 硬件驅(qū)動程序借助于initramfs(虛擬文件系統(tǒng))加載必要的驅(qū)動他才能去掛載操作系統(tǒng)的根
  • initramfs這個文件是安裝系統(tǒng)的時候生成的乏屯,不是從光盤里面拷出來的,所以他的時間是你剛安裝時候的時間瘦赫,但是在CentOS5上名字不一樣叫initrd
  • 他們的區(qū)別是CentOS5直接模擬文件系統(tǒng)辰晕,CentOS6模擬磁盤通過文件系統(tǒng)讀取數(shù)據(jù)
  • 然而vmlinuz(內(nèi)核文件)文件是出廠的時候就自帶的,所以他的時間是出廠時候的時間
  • 以只讀方式掛載根文件系統(tǒng)
  • 運行用戶空間的第一個應用程序:/sbin/init

ramdisk命令

  • 內(nèi)核中的特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問确虱,并加載相應的硬件驅(qū)動
    - ramdisk --> ramfs 提高速度
    - CentOS 5: initrd
    - 工具程序:mkinitrd
    - CentOS 6含友,7: initramfs
    - 工具程序:mkinitrd, dracut

  • ramdisk文件的制作:

    • (1) mkinitrd命令
    • 為當前正在使用的內(nèi)核重新制作ramdisk文件
    • mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
    • (2) dracut命令
    • 為當前正在使用的內(nèi)核重新制作ramdisk文件
    • dracut /boot/initramfs-$(uname -r).img $(uname -r)
  • 詳情情況請看:錯誤方案解決區(qū)

/sbin/init CentOS6之前

  • 運行級別:為系統(tǒng)運行或維護等目的而設定;0-6:7個級別
    • 0:關機
    • 1:單用戶模式(root自動登錄), single, 維護模式校辩,破解root口令
    • 2: 多用戶模式窘问,啟動網(wǎng)絡功能,但不會啟動NFS宜咒;維護模式
    • 3:多用戶模式惠赫,正常模式;文本界面
    • 4:預留級別故黑;可同3級別
    • 5:多用戶模式儿咱,正常模式庭砍;圖形界面
    • 6:重啟
  • 默認級別: 3, 5
  • 切換級別:init #
  • 查看級別:runlevel ; who -r
  • 在sbin/init程序加載完了 以后首先會先讀取第一個文件那就是inittab文件

系統(tǒng)初始化:

- POST-->BootSequence(BIOS)-->Bootloader(MBR)--> kernel(ramdisk)-->rootfs(只讀)--> init(systemd

init程序的類型

  • 系統(tǒng)的第一個進程
  • SysV: init, CentOS 5之前
    • 配置文件:/etc/inittab
  • Upstart: init,CentOS 6
    • 配置文件:/etc/inittab, /etc/init
  • Systemd:systemd, CentOS 7
    • 配置文件:/usr/lib/systemd/system
    • /etc/systemd/system
  • 可以通過/etc/inittab文件下修改開機啟動的默認模式
  • CentOS6 破解root口令,那就是啟動的時候進菜單界面按a在輸入1回車就可以進入root界面了混埠,到時候自己區(qū)用passwd改密碼就可以了

CentOS 5的inittab文件

  • 配置文件:/etc/inittab
  • 每一行定義一種action以及與之對應的process
    • id:runlevel:action:process
    • action:
    • wait: 切換至此級別運行一次
    • respawn:此process終止
    • initdefault:設定默認運行級別
    • sysinit:設定系統(tǒng)初始化方式
  • /etc/rc.d/rc
  • ca::ctrlaltdel:/sbin/
  • id:3:initdefault:
  • si::sysinit:/etc/rc.d/rc.sysinit
  • l0:0:wait:/etc/rc.d/rc 0
  • l1:1:wait:/etc/rc.d/rc 1...
  • l6:6:wait:/etc/rc.d/rc 6

init初始化

  • nit讀取其初始化文件
  • 初始運行級別(RUN LEVEL
  • 系統(tǒng)初始化腳本
  • 對應運行級別的腳本目錄
  • 捕獲某個關鍵字順序
  • 定義UPS電源終端/恢復腳本
  • 在虛擬控制臺生成getty
  • 在運行級別5初始化X

/etc/rc.d/rc.sysinit: 系統(tǒng)初始化腳本

  • (1) 設置主機名
  • (2) 設置歡迎信息
  • (3) 激活udev和selinux
  • (4) 掛載/etc/fstab文件中定義的文件系統(tǒng)
  • (5) 檢測根文件系統(tǒng)怠缸,并以讀寫方式重新掛載根文件系統(tǒng)
  • (6) 設置系統(tǒng)時鐘
  • (7) 激活swap設備
  • (8) 根據(jù)/etc/sysctl.conf文件設置內(nèi)核參數(shù)
  • (9) 激活lvm及software raid設備
  • (10) 加載額外設備的驅(qū)動程序
  • (11) 清理操作

錯誤解決方案區(qū)

CentOS5和6啟動解決方案

CentOS5和6第一階段修復

  • CentOS5和6啟動以后假如第一階段就是引導界面,說簡單就是啟動條界面钳宪,沒有就是第一階段壞 ,也就是說MBR引導出了問題揭北,需要修復,
  • 修復方案
  • 1吏颖、進救援模式搔体,切根、用命令grub install 后面接引導硬盤路徑

CentOS5和6(1.5)階段修復

  • CentOS5和6(1.5)所表示的問題引導了但是沒有引導完畢半醉,會停止在啟動界面嫉柴,系統(tǒng)會自動自檢,如果不行奉呛、系統(tǒng)會嘗試重啟
  • 1计螺、進救援模式,切根瞧壮、用命令grub-install 后面接引導硬盤路徑

CentOS5和6第二階段修復

  • CentOS5和6第二階段所表示的問題登馒,會引導,但是等會會報錯
  • 1咆槽、進救援模式陈轿,切根、用命令grub-install 后面接引導硬盤路徑

grub文件損壞修復

  • 出現(xiàn)這種問題需要自己寫
  • 如下


  • 最后輸入boot啟動

給單用戶模式加密

  • 首先需要需要進入/boot/grub/grub

/sbin/init 文本破壞修復

  • 表示的問題是19


內(nèi)核編譯區(qū)

Linux基礎之內(nèi)核編譯

內(nèi)核介紹

  • 在我們的Linux世界雖然版本眾多秦忿,但是內(nèi)核卻不變
  • 內(nèi)核就像我們?nèi)祟惖拇竽X負責麦射,負責整個系統(tǒng)的運行
  • 這次告訴大家怎么編譯Linux內(nèi)核
  • 我們普通光盤里面的內(nèi)核是已經(jīng)編譯好的,如CentOS ,烏班圖灯谣,Debian潜秋,等等
  • 他們雖然版本各異,但是他們內(nèi)核都一樣
  • 在出廠的時候編譯好的內(nèi)核胎许,已最穩(wěn)定的方式來編譯峻呛,所以關閉了很多功能
  • 有些功能我們需要用如今天給大家演示W(wǎng)indows的NTFS文件系統(tǒng)Linux有但是只是出廠的時候沒打開
  • 當然編譯系統(tǒng)很浪費時間,他還得看計算機的性能辜窑,時間的長短也就決定了你的計算機的速度
  • 那我們開始吧

內(nèi)核編譯

  • 編譯內(nèi)核我們首先得要內(nèi)核包吧
  • 我們可以去www.kernel.org去下載
  • 可以自己選擇自己喜歡的內(nèi)核來編譯
  • 我今天這里編譯的是最新版linux-4.12.tar.xz版本

環(huán)境檢查

  • 想要編譯得需要編譯環(huán)境
  • 怎么創(chuàng)建環(huán)境
  • 那就是你的yum源和開發(fā)組工具包

檢查yum源

  • 關于yum的詳細配置就不過多介紹
  • 但是我會說說如何檢查
  • 命令行輸入yum clean all 清除緩存
[root@localhost ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base epel
Cleaning up everything
Cleaning up list of fastest mirrors
  • 命令行輸入yum makecache載入緩存
[root@localhost ~]# yum makecache
Loaded plugins: fastestmirror
base                                                 | 3.6 kB     00:00     
epel                                                 | 4.3 kB     00:00     
(1/9): base/group_gz                                   | 155 kB   00:00     
(2/9): base/filelists_db                               | 6.6 MB   00:00     
(3/9): base/other_db                                   | 2.4 MB   00:00     
(4/9): epel/group_gz                                   | 170 kB   00:00     
(5/9): base/primary_db                                 | 5.6 MB   00:00     
(6/9): epel/updateinfo                                 | 757 kB   00:00     
(7/9): epel/filelists_db                               | 7.6 MB   00:00     
(8/9): epel/other_db                                   | 2.1 MB   00:00     
(9/9): epel/primary_db                                 | 4.6 MB   00:00     
Determining fastest mirrors
Metadata Cache Created
  • 如果中間出現(xiàn)錯誤要好好檢查自己的源是否配置完成
  • 還是你用的源有問題等等

開發(fā)組包安裝或檢查

  • 開發(fā)組包很重要有GCC等等出名的開發(fā)包軟件
  • 首先檢查你的電腦是否已安裝開發(fā)包組钩述,Development Tools 這個包組
  • 命令行輸入yum grouplist
  • 下面顯示我電腦已經(jīng)安裝開發(fā)包組
  • Installed Groups 已安裝的組 的意思
  • 其他包組不過多介紹
  • 那怎么看電腦有沒有安裝包組,那就是看Development Tools 就可以了
[root@localhost ~]# yum grouplist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   MATE Desktop
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Installed Groups: <<<<<<<<<<已安裝的包組
   Development Tools
Available Groups:
   CIFS file server
   Compatibility Libraries
   Console Internet Tools
   Desktop
   Desktop Platform
   Desktop Platform Development
   Eclipse
   Educational Software
   Electronic Lab
   FCoE Storage Client
   Fedora Packager
   General Purpose Desktop
   Graphical Administration Tools
   Haskell
   Legacy UNIX Compatibility
   Messaging Client Support
   Messaging Server Support
   Milkymist
   MySQL Database client
   MySQL Database server
   NFS file server
   Network Storage Server
   SNMP Support
   Scientific Support
   Security Tools
   Server Platform
   Server Platform Development
   Smart Card Support
   Storage Availability Tools
   System Administration Tools
   System Management
   TeX support
   TurboGears application framework
   Virtualization
   Web-Based Enterprise Management
   Xfce
   iSCSI Storage Client
Done

開始編譯

  • 由于我是用虛擬機演示
  • 需要上傳內(nèi)核穆碎,上次命令rz 這個命令是自己用包安裝才有
  • 編譯的時候千萬要注意下自己的硬盤的容量用df 查看下
  • 因為編譯的時候會出現(xiàn)很大量的數(shù)據(jù)流動會到達10G以上
  • 當然你功能越多內(nèi)核就越大牙勘,看個人習慣

編譯事項

  • 內(nèi)核編譯很多東西是和硬件相關的如、網(wǎng)卡所禀、聲卡方面、硬盤放钦,文件系統(tǒng)驅(qū)動,大部分是很多和硬件打交道的功能和模塊
  • 這里我們是用菜單選項來編譯葡幸,我們在他的基礎之上來編譯
  • 在出廠的時候沒有NTFS最筒,我們就在他的基礎上加個NTFS就可以了
  • 那怎么加贺氓,我們可以參考當前操作系統(tǒng)
  • 那怎么參考蔚叨,在/boot下面有個vmlinuz-3.10.0-327.el7.x86_64,我們可以參考他來編譯辙培,在他現(xiàn)有的模板之上加個NTFS蔑水,或等等功能
- [root@localhost ~]# ll /boot/vmlinuz-3.10.0-327.el7.x86_64 
-rwxr-xr-x. 1 root root 5156528 Nov 19  2015 /boot/vmlinuz-3.10.0-327.el7.x86_64
- 那為什么要用他,因為這個模板對應的有個配置文件在/boot/config 里面扬蕊,里面給我們說了當前那些模塊打到里面去了搀别,那些沒有打進去
[root@localhost ~]# ll /boot/config-3.10.0-327.el7.x86_64 
-rw-r--r--. 1 root root 126426 Nov 19  2015 /boot/config-3.10.0-327.el7.x86_64
  • 注意他的功能啟用方式有兩種,一種是打到/boot/vmlinu文件里面去尾抑,還有些不是常用的我們可以放到/lib/modules里面歇父,這里目錄里面也放了一些驅(qū)動模塊
  • 編譯內(nèi)核你可以放到核心文件里也可以放在模塊里面,還有一個選擇就是不要這個功能

編譯開始

  • 那我們開始
  • 我的內(nèi)核包已經(jīng)上傳到我虛擬機里面的家目錄里面
[root@localhost ~]# ls
anaconda-ks.cfg  linux-4.12.tar.xz
  • 我們來看下他的大小用ll -h命令
[root@localhost ~]# ll
total 96868
-rw-------. 1 root root     1147 Jul  5 17:13 anaconda-ks.cfg
-rw-r--r--. 1 root root 99186576 Jul 11 08:47 linux-4.12.tar.xz
4.12.tar.xz
  • 我們先解壓內(nèi)核包用tar xfv命令再愈,由于界面過長截圖最后一張
[root@localhost ~]# tar xfv linux-4.12.tar.xz 
linux-4.12/virt/kvm/arm/vgic/vgic-v3.c
linux-4.12/virt/kvm/arm/vgic/vgic.c
linux-4.12/virt/kvm/arm/vgic/vgic.h
linux-4.12/virt/kvm/async_pf.c
linux-4.12/virt/kvm/async_pf.h
linux-4.12/virt/kvm/coalesced_mmio.c
linux-4.12/virt/kvm/coalesced_mmio.h
linux-4.12/virt/kvm/eventfd.c
linux-4.12/virt/kvm/irqchip.c
linux-4.12/virt/kvm/kvm_main.c
linux-4.12/virt/kvm/vfio.c
linux-4.12/virt/kvm/vfio.h
linux-4.12/virt/lib/
linux-4.12/virt/lib/Kconfig
linux-4.12/virt/lib/Makefile
linux-4.12/virt/lib/irqbypass.c
 
  • 解壓完畢以后可以用ls命令查看
[root@localhost ~]# ls
anaconda-ks.cfg  linux-4.12  linux-4.12.tar.xz
  • 還可以用du -sh命令查看下解壓的文件有多大
[root@localhost ~]# du -sh linux-4.12
842M    linux-4.12

編譯功能模塊

  • 在/boot/config下 這是我們生成功能模塊的配置文件榜苫,在里面已經(jīng)啟動了一些功能,或沒有啟用的
 [root@localhost boot]# ls /boot/config-3.10.0-327.el7.x86_64 
/boot/config-3.10.0-327.el7.x86_64
  • 用vim命令打開,我們進里面去看下
[root@localhost boot]# vim  /boot/config-3.10.0-327.el7.x86_64 
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 3.10.0-327.el7.x86_64 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
  • y的意思是打到核心文件里面翎冲,那就是打到vmlinuz里面去了
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
  • 號開頭的就是功能沒啟動

CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_TCP_CONG_DCTCP=m
  • m 的就是打到模塊里
  • 我們這篇是要添加NTSF垂睬,我們看看NTFS是什么狀態(tài)
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_NTFS_FS is not set    《《《沒有啟用狀態(tài)

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
CONFIG_PROC_SYSCTL=y
  • 那接下來我們來如何利于這個模板,編譯安裝
  • 說簡單來就是直接把他抗悍,復制到我們剛才解壓縮的路徑
  • 用cp命令驹饺,注意復制的時候一定要改名
[root@localhost boot]# cp  /boot/config-3.10.0-327.el7.x86_64  /root/linux-4.12/.config
  • 復制和改名成功以后接下來我們用比較直觀的菜單來定制內(nèi)核選項

  • 首先切入我們解壓的那個文件夾下面,然后執(zhí)行命令make menuconfig

  • 執(zhí)行這個命令需要安裝ncurses-devel 才能打開菜單 缴渊,因為他是個圖形界面

  • 安裝玩以后在執(zhí)行mek menuconfig 命令赏壹,但是你用的是CRT或者是Xshell必須全屏不然打不開,這個軟件


  • 帶箭頭的就表示他地下有子菜單

  • 在菜單里面*就是打到核心里面嗎衔沼,M開頭就是模塊里面卡儒,什么都沒有表示沒有啟用

  • 接下來我們來改文件系統(tǒng),選擇File systems項


  • 進入以后我們選擇DOS/FAT/NT選項以后在回車


  • 回車以后在里面選擇NTFS選項俐巴,用空格來切換來選擇打到核心還是模塊里面
  • 我們已模塊的方式來進行
  • 選擇完畢以后用EXC退出骨望,如果你改動了他會提示你保存按yes就可以了


  • 這時候配置文件已經(jīng)存到新的.config文件里面去了

  • 如果有興趣可以比較下,這里不過多操作

  • 接下來正在進入編譯過程中欣舵,時間很長缨称,耐心等待,可能編譯過程中于置,會遇到很多問題,耐心解決

  • 進入編譯過程之前袜蚕,我們先看下我們幾顆CPU,用lscpu

[root@localhost linux-4.12]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             4
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
Stepping:              9
CPU MHz:               2594.107
BogoMIPS:              5188.21
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3
  • 我一共4顆绢涡,4線程的方式牲剃,為了計算速度我會全用上
  • 用命令make -j 4 ,但是一定要在我們解壓的文件夾里面運行
  • 好了走起
[root@localhost linux-4.12]# make -j 4
  • 運氣不好沒有第一次成功,他的意思是缺少包雄可,那我們就安裝
  HOSTCC  scripts/sign-file
scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: No such file or directory
 #include <openssl/opensslv.h>
  • 他說的是缺少 openssl-devel這個包
- [root@localhost linux-4.12]# yum -y install openssl-devel
  • 好了在走起

  • 編譯完成我好像花了快30分鐘

  IHEX2FW firmware/emi26/firmware.fw
  IHEX2FW firmware/emi26/bitstream.fw
  IHEX2FW firmware/emi62/loader.fw
  IHEX2FW firmware/emi62/bitstream.fw
  IHEX2FW firmware/emi62/spdif.fw
  IHEX2FW firmware/emi62/midi.fw
  H16TOFW firmware/edgeport/boot.fw
  H16TOFW firmware/edgeport/boot2.fw
  H16TOFW firmware/edgeport/down.fw
  H16TOFW firmware/edgeport/down2.fw
  IHEX2FW firmware/whiteheat_loader.fw
  IHEX2FW firmware/whiteheat.fw
  IHEX2FW firmware/keyspan_pda/keyspan_pda.fw
  IHEX2FW firmware/keyspan_pda/xircom_pgs.fw
  • 接下來開始安裝運行make modules_install
[root@localhost linux-4.12]# make modules_install
  • 接下他們會安裝在/lib/modules里面凿傅,看里面已經(jīng)有了兩個內(nèi)核,這只是文件復制還沒有安裝
[root@localhost linux-4.12]# ls /lib/modules
3.10.0-327.el7.x86_64  4.12.0-1.0-li-linux
  • 接下來我們要把內(nèi)核拷貝到我們/boo下数苫,同時修改grub文件
  • 執(zhí)行命令make intsall
[root@localhost linux-4.12]# make install
sh ./arch/x86/boot/install.sh 4.12.0-1.0-li-linux arch/x86/boot/bzImage \
    System.map "/boot"
  • 我來重啟運行reboot


  • 第一條就是我編譯的內(nèi)核

  • 編譯內(nèi)核完成

  • 雖然內(nèi)核編譯內(nèi)核完成但是我們系統(tǒng)里面的程序不知道支持新內(nèi)核不

  • 所以生產(chǎn)過程中聪舒,升級內(nèi)核需要謹慎

Linux基礎之三劍客AWK基礎篇

awk介紹

  • AWK是一種優(yōu)良的文本處理工具,Linux及Unix環(huán)境中現(xiàn)有的功能最強大的數(shù)據(jù)處理引擎之一
  • 這種編程及數(shù)據(jù)操作語言(其名稱得自于它的創(chuàng)始人阿爾佛雷德·艾侯虐急、彼得·溫伯格和布萊恩·柯林漢姓氏的首個字母)的最大功能取決于一個人所擁有的知識
  • AWK(Aho箱残、Weinberger、Kernighan) 止吁,報告生成器被辑,簡單的來說就是打報表,格式化文本輸出
  • 它具備了一個完整的語言所應具有的幾乎所有精美特性
  • 實際上AWK的確擁有自己的語言:AWK程序設計語言敬惦,三位創(chuàng)建者已將它正式定義為“樣式掃描和處理語言”
  • AWK版本還特別多;New AWK (nawk), GNU AWK (gawk),當然我們用的是GAWK盼理,屬于GNU項目

awk基本用法

  • awk報告生成器,格式化輸出文本文件

  • awk基本語法格式

    • awk [options] ‘program’ var=value file…
    • awk [options] -f programfile var=value file…
    • awk [options] 'BEGIN{ action;… } pattern{ action;… } END
    • action;… }' file ...
  • optinos 表示可選的命令行選項

  • prgoramawk語句

  • var=value自己定義變量

  • file.... 處理文本文件

  • programfile 調(diào)用程序文件

  • program通常是被單引號或雙引號中,建議用單引號仁热,雙引號在后面有其他用途

-awk程序
- awk 程序通常由:BEGIN語句塊榜揖、能夠使用模式匹配的通用語句塊、END語句塊抗蠢,共3部分組成

  • awk選項
    • -F: 指明輸入時用到的字段分隔符
[root@localhost ~]# awk -F: '{print $1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-bus-proxy
systemd-network
dbus
polkitd
colord
abrt
libstoragemgmt
rpc
 -  -v :var=value: 自定義變量
[root@localhost ~]# awk -v RS=':' '{print }'  /etc/passwd
root
x
0
0
root
/root
/bin/bash
bin
x
1
1
bin
/bin
/sbin/nologin
daemon
x
2
2
daemon
/sbin

awk語言

  • 基本格式:awk [options] 'program' file…
  • program:pattern{action statements;..}
  • pattern和action:
    • pattern:部分決定動作語句何時觸發(fā)及觸發(fā)事件
    • BEGIN:相當于處理文件內(nèi)容之前執(zhí)行的一個語句举哟,用于打印標題
    • END:
      • action statements:對數(shù)據(jù)進行處理,如統(tǒng)計迅矛、匯總等
  • 分割符妨猩、域和記錄
  • awk在執(zhí)行時,由分割符來分割字段秽褒,可以用冒號或者斜線等等要看自己的指定
  • 切割完已后那就是一個字段壶硅,可以說是局部變量$1$2...... 用awk自己來調(diào)用销斟,不用自己聲明庐椒,有一個需要注意$0就是所有字段或所有列
  • 選項-F就是用來指定分割符的
  • 域的意思就是已經(jīng)被切割完的字符,也可以稱呼為列或字段等蚂踊,比如說第一行就用$1他會把一列全打印顯示處理
  • 記錄就是說一行就是一條記錄约谈,怎么去區(qū)分行一行或幾行,那就是分割符,分割符要看自己來指定千萬別記太死
  • 默認空格為換行符棱诱,但是其他的換行符需要自己指定

awk工作原理

  • 第一步:執(zhí)行BEGIN{action;… }語句塊中的語句
  • 第二步:從文件或標準輸入(stdin)讀取一行泼橘,然后執(zhí)行pattern{ action;… }語句塊,它逐行掃描文件迈勋,從第一行到最后一行重復這個過程炬灭,直到文件全部被讀取完畢
  • 第三步:當讀至輸入流末尾時,執(zhí)行END{action;…}語句塊
  • BEGIN:這是一個可選的語句塊靡菇,比如變量初始化重归、打印輸出表格的表頭等語句
  • END: 這也是一個科學的語句塊,比如打印所有行的分析結果等信息匯總或awk輸入流讀取完所有信息將會執(zhí)行END
  • pattern語句塊中的通用命令是最重要的部分镰官,也是可選的提前。如果沒有提供pattern語句塊吗货,則默認執(zhí)行{ print }泳唠,即打印每一個讀取到的行,awk讀取的每一行都會執(zhí)行該語句塊

print

  • AWK是默認讀取標準輸入的命令

  • 讀取多少行就打印多少行宙搬,用文件輸入或手動輸入都可以

  • 要點:

    • 逗號分隔符
    • 輸出的各item可以字符串笨腥,也可以是數(shù)值;當前記錄的字段勇垛、變量或awk的表達式
    • 如省略item脖母,相當于print $0
  • 示例

    [root@localhost ~]# awk '{print "hello,awk"}' /etc/passwd
hello,awk
hello,awk
hello,awk
hello,awk
hello,awk
hello,awk
hello,awk
hello,awk
  • 在輸出的時候,打印的內(nèi)容必須要以,號隔開不然會合并在一起
[root@localhost ~]# awk -F: '{print $1$4}' /etc/passwd 
root0
bin1
daemon2
adm4
lp7
sync0
shutdown0
halt0
mail12
operator0
games100
ftp50
nobody99
systemd-bus-proxy997
systemd-network192
dbus81
polkitd996
colord995
abrt173
  • 如果用,號將會分割開
[root@localhost ~]# awk -F: '{print $1,$4}' /etc/passwd 
root 0
bin 1
daemon 2
adm 4
lp 7
sync 0
shutdown 0
halt 0
mail 12
operator 0
games 100
ftp 50
nobody 99
systemd-bus-proxy 997
systemd-network 192
dbus 81
polkitd 996
colord 995
abrt 173
  • 如果你想用別的符號來分割你可以補上闲孤,中間加的是字符串哦谆级,別搞混了
[root@localhost ~]# awk -F: '{print $1"===="$4}' /etc/passwd 
root====0
bin====1
daemon====2
adm====4
lp====7
sync====0
shutdown====0
halt====0
mail====12
operator====0
games====100
ftp====50
nobody====99
systemd-bus-proxy====997
systemd-network====192
dbus====81
polkitd====996
colord====995
abrt====173
  • 注意我們現(xiàn)在用的是變量不用加雙引號,如果是字符串必須要加雙引號讼积,不然會這樣
[root@localhost ~]# awk -F: '{print $1====$4}' /etc/passwd  
awk: cmd. line:1: {print $1====$4}
awk: cmd. line:1:            ^ syntax error
  • 那如果我想取磁盤利于分區(qū)利用率怎么取肥照,可以這樣
[root@localhost ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       41922560  385320  41537240   1% /
devtmpfs         2008832       0   2008832   0% /dev
tmpfs            2023456       0   2023456   0% /dev/shm
tmpfs            2023456    8772   2014684   1% /run
tmpfs            2023456       0   2023456   0% /sys/fs/cgroup
/dev/sda3       20961280 2679012  18282268  13% /usr
/dev/sda1         508580  148756    359824  30% /boot
tmpfs             404692       0    404692   0% /run/user/0
[root@localhost ~]# df|awk '{print $5}'
Use%
1%
0%
0%
1%
0%
13%
30%
0%
  • 如果我只想要數(shù)值,不想要符號勤众,或我只想要分區(qū)的數(shù)值舆绎,怎么取,我們可以配合grep
[root@localhost ~]# df|grep '^/dev/sd'|awk '{print $5}'|awk -F% '{print $1 }'
1
13
30
  • 如果你什么都不寫會產(chǎn)生什么后果们颜,那就相當打印$0
[root@localhost ~]# awk '{print }' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
  • 格式輸出的時候變量一定要一個一個的打印如
[root@localhost ~]# awk -F: '{print $1,$5,$3}' /etc/passwd
root root 0
bin bin 1
daemon daemon 2
adm adm 3
lp lp 4
sync sync 5
shutdown shutdown 6
halt halt 7
mail mail 8
operator operator 11
games games 12
ftp FTP User 14
nobody Nobody 99
  • 不能這樣填寫變量
[root@localhost ~]# awk -F: '{print $1-3}' /etc/passwd     
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
  • 如果你想對其你可以加一個或多個TAB鍵吕朵,但是他是個字符串必須要加雙引號
[root@localhost ~]# awk -F: '{print $1"\t\t\t"$3}' /etc/passwd
root                    0
bin                     1
daemon                  2
adm                     3
lp                      4
sync                    5

awk變量

  • 在awk里面也支持內(nèi)置變量和自定義變量

內(nèi)置變量

  • 內(nèi)置變量
  • FS:輸入字段分割符,默認為空白字符
  • FS是個變量需要賦值窥突,功能和-F一樣
[root@localhost ~]# awk -v FS=: '{print $1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
  • 還可以引用變量
[root@localhost ~]# awk -v FS=':' '{print $1,FS,$3}' /etc/passwd
root : 0
bin : 1
daemon : 2
adm : 3
lp : 4
sync : 5
shutdown : 6
halt : 7
mail : 8
operator : 11
games : 12
ftp : 14
nobody : 99
  • OFS:輸出字段分割符努溃,默認為空白字符
[root@localhost ~]# awk -F: -v OFS='-' '{print $1,$3}' /etc/passwd    
root-0
bin-1
daemon-2
adm-3
lp-4
sync-5
shutdown-6
halt-7
mail-8
operator-11
games-12
ftp-14
  • RS:輸入記錄分割符,指定輸入時的換行符阻问,原換行符仍有效
[root@localhost ~]# awk -v RS=' ' '{print }' /etc/passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
  • ORS:輸出記錄分隔符梧税,輸出時用指定符號代替換行符
[root@localhost ~]# awk -F: -v ORS="---" '{print $1}' /etc/passwd 
root---bin---daemon---adm---lp---sync---shutdown---halt---mail---operator---games---ftp---nobody---systemd-bus-proxy---systemd-network---dbus---polkitd---colord---abrt---libstoragemgmt---rpc---setroubleshoot---rtkit---usbmuxd---tss---geoclue---chrony---mysql---pulse---gdm---rpcuser---nfsnobody---postfix---ntp---ssh
  • NF:字段數(shù)量,表示一共有7個字段
[root@localhost ~]# awk -F: 'END{print NF}' /etc/passwd   
7
  • NR :行號
[root@localhost ~]# awk -F: '{print NR,$1}'  /etc/passwd
1 root
2 bin
3 daemon
4 adm
5 lp
6 sync
7 shutdown
8 halt
9 mail
10 operator
11 games
12 ftp
13 nobody
14 systemd-bus-proxy
15 systemd-network
16 dbus
17 polkitd
18 colord
19 abrt
  • FNR: 各個文件分別計數(shù),行號
[root@localhost ~]# awk '{print FNR,$0}' /etc/issue  /etc/fstab 
1 \S
2 Kernel \r on an \m
3 
4 Mage Education Learning Services
5 http://www.magedu.com
6 
1 
2 #
3 # /etc/fstab
4 # Created by anaconda on Thu Jul 13 08:26:25 2017
5 #
6 # Accessible filesystems, by reference, are maintained under '/dev/disk'
7 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8 #
  • FILENAME:當前文件名
[root@localhost ~]# awk -F: '{print FILENAME,$0}' /etc/issue
/etc/issue \S
/etc/issue Kernel \r on an \m
/etc/issue 
/etc/issue Mage Education Learning Services
/etc/issue http://www.magedu.com
/etc/issue 
  • ARGC:命令行參數(shù)的個數(shù)
[root@localhost ~]# awk -F: '{print ARGC}'  /etc/passwd /etc/issue /etc/fstab 
4
4
4
4
4
4
4
4
4
  • ARGV:數(shù)組贡蓖,保存的是命令行所給定的各參數(shù)
[root@localhost ~]# awk -F: '{print ARGC,ARGV[0]}'  /etc/passwd /etc/issue /etc/fstab  
4 awk
4 awk
4 awk
4 awk
4 awk
4 awk
4 awk
4 awk
4 awk
4 awk
4 awk
4 awk
4 awk
變量名 屬性
$0 當前記錄
$1~$n 當前記錄的第n個字段
FS 輸入只讀分割符 默認的是空格
RS 輸入記錄分割符 默認為換行符
NF 當前記錄中的字段個數(shù)曹鸠,就是有多少列
NR 已經(jīng)獨處的記錄數(shù),就是行號斥铺,從1開始
OFS 輸出字段分割符 默認也是空格
ORS 輸出的記錄分割符 默認為換行符
FNR 分別計數(shù)
FILENAME 顯示當前文件名
ARGC 顯示參數(shù)個數(shù)
ARGV 打印數(shù)組參數(shù)

注:內(nèi)置變量很多彻桃,參閱相關資料

自定義變量

  • 自定義變量(區(qū)分字符大小寫)
    • -v var=value
    • 在program中直接定義
  • 示例
[root@localhost ~]# awk -v name=root '{print name}' /etc/passwd  
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
  • 變量調(diào)取還可以這樣
[root@localhost ~]# awk '{sex="male";print sex }'  /etc/passwd
male
male
male
male
male
male
male
male
male
male
male
male
male
male
male
  • 還可以把他寫成一個腳本如
[root@localhost ~]# vi f1.awk 
 {sex="male";print sex}  
~                                                                 
~                                                                 
  • 把他顯示調(diào)取出來,但是要記住在里面不要放單引號不然出錯
[root@localhost ~]# awk -f  f1.awk /etc/passwd
male
male
male
male
male
male
male
male
male
male
male

printf

  • 格式化輸出:printf “FORMAT”, item1, item2, ...

  • 必須指定FORMAT, 也就是格式

  • 不會自動換行晾蜘,需要顯式給出換行控制符邻眷,\n

  • FORMAT中需要分別為后面每個item指定格式符

  • 格式符:與item一一對應
    | 輸出控制符 | 含義
    | :-------- | --------:|
    | %C | 顯示字符的ASCII碼
    | %d,%i | 顯示十進制整數(shù)
    | %e ,%E | 顯示科學計數(shù)法數(shù)值
    | %f | 顯示為浮點數(shù)
    | %g 剔交,%G | 以科學計數(shù)法或浮點形式顯示數(shù)值
    | %s | 顯示字符串
    | %u | 無符號整數(shù)
    | %% | 顯示%自身

  • 修飾符:

    • [.#]:第一個數(shù)字控制顯示的寬度肆饶;第二個#表示小數(shù)點后精度,%3.1f

    • -: 左對齊(默認右對齊) %-15s
    • +:顯示數(shù)值的正負符號 %+d
  • 示例

[root@localhost ~]# awk -F: '{printf "%s---%d\n", $1,$3}'  /etc/passwd
root---0
bin---1
daemon---2
adm---3
lp---4
sync---5
shutdown---6
halt---7
mail---8
operator---11
games---12
ftp---14
nobody---99
systemd-bus-proxy---999
systemd-network---192
dbus---81
  • 如果你想右對齊可以這樣岖常,因為默認是右對齊
[root@localhost ~]# awk -F: '{printf "%s---%d\n", $1,$3}'  /etc/passwd
root---0
bin---1
daemon---2
adm---3
lp---4
sync---5
shutdown---6
halt---7
mail---8
operator---11
games---12
ftp---14
nobody---99
systemd-bus-proxy---999
systemd-network---192
dbus---81
  • 如果你想左對齊驯镊,可以這樣
[root@localhost ~]# awk -F: '{printf "%-30s---%d\n", $1,$3}'  /etc/passwd
root                          ---0
bin                           ---1
daemon                        ---2
adm                           ---3
lp                            ---4
sync                          ---5
shutdown                      ---6
halt                          ---7
mail                          ---8
operator                      ---11
games                         ---12
ftp                           ---14
nobody                        ---99
systemd-bus-proxy             ---999
systemd-network               ---192
  • 還可以這樣玩,反正自己看著玩
[root@localhost ~]# awk -F: '{printf "%+30s---%+30d\n", $1,$3}'  /etc/passwd
                          root---                            +0
                           bin---                            +1
                        daemon---                            +2
                           adm---                            +3
                            lp---                            +4
                          sync---                            +5
                      shutdown---                            +6
                          halt---                            +7
                          mail---                            +8
                      operator---                           +11
                         games---                           +12
  • 還可以添加字符串竭鞍,是里面不是外面注意
[root@localhost ~]# awk -F: '{printf "username:%-30s%-10d\n", $1,$3}'  /etc/passwd
username:root                          0         
username:bin                           1         
username:daemon                        2         
username:adm                           3         
username:lp                            4         
username:sync                          5         
username:shutdown                      6         
username:halt                          7         
username:mail                          8         
username:operator                      11        
username:games                         12        
username:ftp                           14        
username:nobody                        99        
username:systemd-bus-proxy             999       
username:systemd-network               192       
username:dbus                          81        

操作符

  • 算術操作符:
    • x+y, x-y, x*y, x/y, x^y, x%y
    • -x: 轉換為負數(shù)
    • +x: 轉換為數(shù)值
  • 字符串操作符:沒有符號的操作符板惑,字符串連接
  • 賦值操作符:
  • =, +=, -=, *=, /=, %=, ^=
  • ++, --
  • 比較操作符:
  • ==, !=, >, >=, <, <=
  • 模式匹配符:~:左邊是否和右邊匹配包含 !~:是否不匹配
  • 示例
  • 下面的意思是如果$0包含root就打印,沒有就不打印
[root@localhost ~]# awk -F: '$0 ~ /root/{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
  • 如下我想打印小于UID100的用戶
[root@localhost ~]# awk -F: '$3<=1000{print $1,$3}'  /etc/passwd
root 0
bin 1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
operator 11
games 12
ftp 14
nobody 99
systemd-bus-proxy 999
systemd-network 192
  • 如果我想打印UID大于100的用戶
[root@localhost ~]# awk -F: '$3>=1000{print $1,$3}'  /etc/passwd
nfsnobody 65534
mageedu 1000
  • 邏輯操作符:與&&偎快,或||冯乘,非!
  • 示例
[root@localhost ~]# awk -F: '$3>=0 && $3<=1000 {print $1,$3}' /etc/passwd   
root 0
bin 1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
operator 11
games 12
ftp 14
nobody 99
systemd-bus-proxy 999
systemd-network 192
dbus 81
  • 或者小于10大于1000,的打印出來
[root@localhost ~]# awk -F: '$3<=0 || $3>=1000 {print $1,$3}' /etc/passwd  
root 0
nfsnobody 65534
mageedu 1000
  • 還可以取非
[root@localhost ~]# awk -F: '  !  ($3>1000) {print $1,$3}' /etc/passwd 
root 0
bin 1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
operator 11
games 12
ftp 14
nobody 99
systemd-bus-proxy 999
systemd-network 192
dbus 81

正則表達式

  • 正則表達式要多練這里只舉幾個例子

  • 如果我只想用AWK來提取磁盤信息晒夹,怎么取裆馒,我們可以用包含來提取

[root@localhost ~]# df|awk '$0 ~ "^/dev/sd"' 
/dev/sda2       41922560  388520  41534040   1% /
/dev/sda3       20961280 2679012  18282268  13% /usr
/dev/sda1         508580  148756    359824  30% /boot
  • 當前里面還可以取反
[root@localhost ~]# df|awk '$0 !~ "^/dev/sd"' 
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs         2008832       0   2008832   0% /dev
tmpfs            2023456       0   2023456   0% /dev/shm
tmpfs            2023456    8800   2014656   1% /run
tmpfs            2023456       0   2023456   0% /sys/fs/cgroup
tmpfs             404692       0    404692   0% /run/user/0

BEGIN 和END 模塊

  • 通常,對于每個輸入行丐怯,awk 都會執(zhí)行每個腳本代碼塊一次喷好。然而,在許多編程情況中
  • 可能需要在awk 開始處理輸入文件中的文本之前執(zhí)行初始化代碼响逢。對于這種情況绒窑,awk 允許
  • 您定義一個BEGIN 塊。我們在前一個示例中使用了BEGIN 塊舔亭。因為awk 在開始處理輸入文件之前會執(zhí)行BEGIN 塊
  • 因此它是初始化 FS(字段分隔符)變量些膨、打印頁眉或初始化其它
    在程序中以后會引用的全局變量的極佳位置

三目表達式

  • 三目就是三個元素,三個組成部分钦铺,第一部分冒號订雾,以此類推
  • 示例
[root@localhost ~]# awk -F: '{$3>=1000?username="common user":username="sysuser";printf "%s  %s  %d\n" ,username,$1,$3}' /etc/passwd
sysuser  root  0
sysuser  bin  1
sysuser  daemon  2
sysuser  adm  3
sysuser  lp  4
sysuser  sync  5
sysuser  shutdown  6
sysuser  halt  7
sysuser  mail  8
sysuser  operator  11
sysuser  games  12
sysuser  ftp  14
sysuser  nobody  99
  • 或者來對齊下
[root@localhost ~]# awk -F: '{$3>=1000?username="common user":username="sysuser";printf "%s  %20s  %20d\n" ,username,$1,$3}' /etc/passwd 
sysuser                  root                     0
sysuser                   bin                     1
sysuser                daemon                     2
sysuser                   adm                     3
sysuser                    lp                     4
sysuser                  sync                     5
sysuser              shutdown                     6
sysuser                  halt                     7
sysuser                  mail                     8
sysuser              operator                    11
sysuser                 games                    12
sysuser                   ftp                    14
sysuser                nobody                    99
sysuser     systemd-bus-proxy                   999
sysuser       systemd-network                   192
sysuser                  dbus                    81
sysuser               polkitd                   998
sysuser                colord                   997
sysuser                  abrt                   173
sysuser        libstoragemgmt                   996
sysuser                   rpc                    32

linux三劍客之sed基礎篇

sed介紹

  • sed(Stream EDitor) 是一種流編輯器,它一次處理一行內(nèi)容矛洞。處理時洼哎,把當前處理的行存儲在臨時緩沖區(qū)中烫映,稱為“模式空間”(pattern space ),接著用sed 命令處理緩沖區(qū)中的內(nèi)容噩峦,處理完成后锭沟,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行识补,這樣不斷重復族淮,直到文件末尾嘉汰。文件內(nèi)容并沒有改變衍菱,除非你使用重定向存儲輸出沉删。Sed 主要用來自動編輯一個或多個文件, 簡化對文件的反復操作
  • sed對文本的處理很強大樟结,并且sed非常小,參數(shù)少认罩,容易掌握简软,他的操作方式根awk有點像泌绣。sed按順序逐行讀取文件澎胡。然后孕荠,它執(zhí)行為該行指定的所有操作,并在完成請求的修改之后的內(nèi)容顯示出來滤馍,也可以存放到文件中岛琼。完成了一行上的所有操作之后底循,它讀取文件的下一行巢株,然后重復該過程直到它完成該文件。在這里要注意一點熙涤,源文件(默認地)保持不被修改阁苞。sed 默認讀取整個文件并對其中的每一行進行修改。說白了就是一行一行的操作
  • 利用被稱為管道操作符的|祠挫,多個命令由管道連成了管道線那槽。在UNIXLinux系統(tǒng)中,流過管道線的信息(數(shù)據(jù))就叫做流(stream)等舔。為了編輯或修改一條管道中的信息骚灸,就使用流編輯器(stream editor),這也正是sed這個命令名字的由來。其中慌植,sstream的第一個字母甚牲,而ededitor(編輯器)的頭兩個字母
  • sed用法
    • 格式 sed [OPTION]...... 'script' inputfile....
    • OPTION是選項
    • script 地址命令
    • inputfile 輸入文件 (文件可以有多個輸入以后會處理第二個)、
    • 這是最簡單的格式
  • sed選項
    • 常用選項:
    • -n :不輸出模式空間內(nèi)容到屏幕蝶柿,即不自動打印
    • -e: 多點編輯
    • -f :/ PATH/SCRIPT_FILE : 從指定文件中讀取編輯腳本
    • -r: 支持使用擴展正則表達式
    • d:刪除模式空間匹配的行
    • p: 顯示模式空間中的內(nèi)容
    • a [\]text:在指定行 后面 追加文本
  • 支持 使用\n實現(xiàn)多行追加
    • i [\]text :在行前面 插入文本
    • c [\]text :替換行為單行或多行文本
    • w /path/somefile: 保存模式匹配的行至指定文件
    • r /path/somefile:讀取指定文件的文本至 模式空間中
    • 匹配 到的行后
    • =: 為模式空間中的行打印行號
    • !:模式空間中匹配行取反處理

sed選項詳解

-n選項

  • 不輸出模式空間內(nèi)容到屏幕丈钙,即不自動打印
  • 區(qū)別p可以理解為打印,后面還會詳細講解p的用途
[root@localhost app]# sed -n  'p' passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
[root@localhost app]# sed   'p' passwd    
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

d選項

  • 刪除模式空間匹配的行
  • 刪除第2行交汤,但是磁盤里面的文件還沒刪除哦雏赦,想要刪除就用-i,稍后介紹
[root@localhost app]# cat -n passwd|sed '2d'
     1  root:x:0:0:root:/root:/bin/bash
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
  • 刪除奇數(shù)行,偶數(shù)行用cat -n passwd|sed '2~2d'
[root@localhost app]# cat -n passwd|sed '1~2d'
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     8  halt:x:7:0:halt:/sbin:/sbin/halt
    10  operator:x:11:0:operator:/root:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    22  usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
    24  saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
    26  rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
    28  chrony:x:991:988::/var/lib/chrony:/sbin/nologin
    30  qemu:x:107:107:qemu user:/:/sbin/nologin

a選項

  • a [\]text:在指定行 后面 追加文本
  • 意思就是在匹配行的后面追加文本
[root@localhost app]# cat -n passwd|sed '5aasdasdasdasdasdasdasdasd' 
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin  << 我追加的行
asdasdasdasdasdasdasdasd
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
  • \n 表示換行的意思可以追加多行
[root@localhost app]# cat -n passwd|sed '5a\asdasdas\ndfdsdsd\nsdsdsdsd'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
asdasdas
dfdsdsd
sdsdsdsd
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin

i選項

  • i []text :在行前面
  • 和a相反
[root@localhost app]# cat -n passwd|sed '5i\asdasdas\ndfdsdsd\nsdsdsdsd'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
dfdsdsd
sdsdsdsd
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin

c選項

  • c []text :替換行為單行或多行文本
  • 就是把中間的行替代
[root@localhost app]# cat -n passwd|sed '5c\asdasdas'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
  • 還可以多個替換多行如5到7
[root@localhost app]# cat -n passwd|sed '5,7c\asdasdas'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin

w選項

  • w /path/somefile: 保存模式匹配的行至指定文件
  • 意思就是把他匹配到的行另存為一個文件里面
[root@localhost app]# cat -n passwd|sed '11,21w /app/qqq'    
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
  • 我們?nèi)ゲ榭聪?code>/app/qqq
[root@localhost app]# cat /app/qqq 
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin

r選項

  • r /path/somefile ,讀取指定文件的文本至 模式空間中匹配 到的行后
  • 意思就是說把文件內(nèi)容讀到本文件里面
[root@localhost app]# cat -n passwd|sed '5r /etc/issue'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
\S
Kernel \r on an \m        <<<意思是把他讀到第5行下面

     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
  • 還可以這樣玩讀到5到7行
[root@localhost app]# cat -n passwd|sed '5,7r /etc/issue'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
\S
Kernel \r on an \m

     6  sync:x:5:0:sync:/sbin:/bin/sync
\S
Kernel \r on an \m

     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
\S
Kernel \r on an \m

     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin

=號選項

  • =: 為模式空間中的行打印行號
  • 意思就是打印行號
[root@localhost app]# sed  '='  passwd     
1
root:x:0:0:root:/root:/bin/bash
2
bin:x:1:1:bin:/bin:/sbin/nologin
3
daemon:x:2:2:daemon:/sbin:/sbin/nologin
4
adm:x:3:4:adm:/var/adm:/sbin/nologin
5
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6
sync:x:5:0:sync:/sbin:/bin/sync
7
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8
halt:x:7:0:halt:/sbin:/sbin/halt
9
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10
operator:x:11:0:operator:/root:/sbin/nologin
11

星岗!選項

  • !: 模式空間中匹配行取反處理
[root@localhost app]#  cat -n passwd |sed -n '10!p'
     1  root:x:0:0:root:/root:/bin/bash 
     2  bin:x:1:1:bin:/bin:/sbin/nologin  
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin

sed工具

  • s/// :查找替換, 支持使用其它分隔符填大,s@@@ ,s###
  • 替換標記:
  • g: 行內(nèi)全局替換
  • p: 顯示替換成功的行
  • w /PATH/TO/SOMEFILE :將替換成功的 行 保存至文件中

s/// :查找替換,#

  • 替換大寫ROOT俏橘,但是只替換一行里面得到第一個栋盹,第二行不會替換
[root@localhost ~]# sed 's/root/ROOT/' qqq 
ROOT  root root root
ROOT 
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
  • 還可以指定偶數(shù)或奇數(shù)哦
[root@localhost ~]# sed '2~2s/root/ROOT/' qqq       
root  root root root
ROOT 
root
ROOT
root
ROOT
root
ROOT
root
ROOT
  • 分隔符用@,%敷矫,#等等都可以
[root@localhost ~]# sed '2~2s@root@ROOT@' qqq   
root  root root root
ROOT 
root
ROOT
root
ROOT
root
ROOT
root
ROOT

p選項

  • p: 顯示替換成功的行
  • 意思就是說在顯示
[root@localhost ~]# sed '2~2s@root@ROOT@gp' qqq
root  root root root
ROOT 
ROOT   <<<把匹配成功的行在打印一遍
root
ROOT
ROOT
root
ROOT
ROOT
root
ROOT
ROOT
root
ROOT
ROOT
  • w 就是把匹配到的另存為一下 和上面的w選項一樣

地址定界

  • 單地址:
  • #: 指定的行
  • /pattern/ :被此處模式所能夠匹配到的每一行
[root@localhost app]# sed '2p' passwd   
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin   把第2行顯示2次
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
  • 顯示r開頭的行例获,下面我是以正則表達式來寫的
[root@localhost app]# sed  -n /^r/p passwd 
root:x:0:0:root:/root:/bin/bash
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 

地址范圍詳解(1)

  • 顯示3到第10行
[root@localhost app]# sed  -n 3,6p passwd   
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
[root@localhost app]# sed  -n 3,10p passwd  
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
  • 我們來用cat /etc/passwd來看看
[root@localhost app]# cat -n /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
  • 還可以用+號來表示加行號,意思是在3的基礎之上加10行
[root@localhost app]# sed  -n 3,+10p passwd          
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

地址范圍詳解(2)

  • 第二個地址范圍作用
    -我搜索的是以h和s開頭的行曹仗,看見沒他是一行一行的搜索的
[root@localhost app]# sed -n '/^h/,/^s/p' passwd 
halt:x:7:0:halt:/sbin:/sbin/halt    <<<<<<<這是開頭
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin 
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin  <這是結尾

地址范圍詳解(3)

  • 這是從第3行開始找到s開頭的行
 [root@localhost app]# sed -n '3,/^s/p' passwd 
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

步進

  • 1~2 奇數(shù)行
  • 下面是打印奇數(shù)行
[root@localhost app]# cat -n passwd|sed -n '1~2p' 
     1  root:x:0:0:root:/root:/bin/bash
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    15  systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
    17  polkitd:x:997:996:User for polkitd:/:/sbin/nologin
    19  unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    21  colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
    23  geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
    25  libstoragemgmt:x:992:990:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
    27  rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
    29  radvd:x:75:75:radvd user:/:/sbin/nologin
    31  ntp:x:38:38::/etc/ntp:/sbin/nologin
  • 2~2 偶數(shù)行
  • 打印偶數(shù)行
[root@localhost app]# cat -n passwd|sed -n '2~2p'  
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     8  halt:x:7:0:halt:/sbin:/sbin/halt
    10  operator:x:11:0:operator:/root:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    14  systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
    16  dbus:x:81:81:System message bus:/:/sbin/nologin
    18  abrt:x:173:173::/etc/abrt:/sbin/nologin
    20  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    22  usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
    24  saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
    26  rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
    28  chrony:x:991:988::/var/lib/chrony:/sbin/nologin
    30  qemu:x:107:107:qemu user:/:/sbin/nologin 

Linux基礎之三劍客AWK進階

  • 上篇已經(jīng)講了AWK基礎篇
  • 這篇開始講進階

awk工作原理

  • 一次讀取一行文本榨汤,按輸入分隔符進行切片,切成多個組成部分怎茫,將每片直接保存在內(nèi)建的變量中收壕,$1,$2,$3….,引用指定的變量轨蛤,可以顯示指定斷蜜宪,或者多個斷。如果需要顯示全部的祥山,需要使用$0來引用
  • 可以對單個片斷進行判斷圃验,也可以對所有斷進行循環(huán)判斷
  • 其默認分隔符為空格

awk PATTERN

  • PATTERN:根據(jù)pattern條件,過濾匹配的行缝呕,再做處理
  • 格式 awk [option] 'pattern{action}' file
  • 那什么是PATTERN
  • 如果有一個文件 澳窑,這個文件每讀入一行,PATTERN就會根據(jù)條件做過濾處理
  • 如正則表達式供常,如果符合條件他就會進入action進去處理
  • 如果不符合他就不管他摊聋,接著讀取另外一行,以此類推

不過PATTERN有多種寫法

 - 如果為指定:空模式栈暇,匹配每一行 麻裁,意思就是說不寫PATTERN,只寫action
 - 示例
     [root@localhost ~]# awk -F: '{print $1,3}' /etc/passwd
root 3
bin 3
daemon 3
adm 3
lp 3
sync 3
shutdown 3
halt 3
mail 3
operator 3
games 3
ftp 3
nobody 3
systemd-bus-proxy 3
systemd-network 3
dbus 3
polkitd 3
colord 3
abrt 3
  • 我沒有寫PATTERN源祈,所以他會對所有行的第一和第三行打印出來煎源,這就是空模式,匹配每行

  • 正則表達式的限定新博,/regular expression/:僅處理能夠模式匹配到的行薪夕,需要用/ /括起來

  • 示例

[root@localhost ~]# awk  /^UUID/ /etc/fstab 
UUID=5fa28b49-456d-4303-81d0-811b1bfa3ae9 /                       xfs     defaults        0 0
UUID=b0e8912e-cb67-4973-8557-f190f961c0cd /boot                   xfs     defaults        0 0
UUID=c204831a-efc0-4b13-bc39-259bd22cb677 /usr                    xfs     defaults        0 0
UUID=c8298654-edd5-44df-8014-1dbf1fb8dba7 swap                    swap    defaults        0 0
  • 我沒有填寫print 那是因為默認自動打印$0,就算我寫了也一樣,想取什么赫悄,就取什么
[root@localhost ~]# awk  '/^UUID/ {print $0  }' /etc/fstab 
UUID=5fa28b49-456d-4303-81d0-811b1bfa3ae9 /                       xfs     defaults        0 0
UUID=b0e8912e-cb67-4973-8557-f190f961c0cd /boot                   xfs     defaults        0 0
UUID=c204831a-efc0-4b13-bc39-259bd22cb677 /usr                    xfs     defaults        0 0
UUID=c8298654-edd5-44df-8014-1dbf1fb8dba7 swap                    swap    defaults        0 0
  • 還可以取反哦
    [root@localhost ~]# awk '!/^UUID/ {print $0 }' /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 13 08:26:25 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
  • 甚至我還可以拿他來取磁盤分區(qū)使用列表哦
[root@localhost ~]# df| awk '/^\/dev\/sd/ {print $5}'
1%
13%
30%
  • relational expression: 關系表達式原献,結果為“真”才會被處理
  • 真:結果為非0值馏慨,非空字符串
  • 假:結果為空字符串或0值
  • 意思就是只要不是為0都打印,為0就不打印
  • 示例
[root@localhost ~]# awk -F: '"" {print $0  }' /etc/fstab  
  • 沒打印如果給他個任意字符串
[root@localhost ~]# awk -F: '"rrr" {print $0  }' /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Thu Jul 13 08:26:25 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=5fa28b49-456d-4303-81d0-811b1bfa3ae9 /                       xfs     defaults        0 0
UUID=b0e8912e-cb67-4973-8557-f190f961c0cd /boot                   xfs     defaults        0 0
UUID=c204831a-efc0-4b13-bc39-259bd22cb677 /usr                    xfs     defaults        0 0
UUID=c8298654-edd5-44df-8014-1dbf1fb8dba7 swap                    swap    defaults        0 0

line ranges:行范圍

  • startline,endline:/pat1/,/pat2/ 不支持直接給出數(shù)字格式
  • 示例
[root@localhost ~]# awk -F: '/^b/,/^f/' /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

-還可以取中間

[root@localhost ~]# awk -F: 'NR>=10&&NR<=20{print NR,$0}'  /etc/passwd  
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
15 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
16 dbus:x:81:81:System message bus:/:/sbin/nologin
17 polkitd:x:998:996:User for polkitd:/:/sbin/nologin
18 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
19 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
20 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

BEGIN/END模式

  • 通常姑隅,對于每個輸入行写隶,awk 都會執(zhí)行每個腳本代碼塊一次。然而讲仰,在許多編程情況中
  • 可能需要在awk 開始處理輸入文件中的文本之前執(zhí)行初始化代碼慕趴。對于這種情況,awk 允許
  • 您定義一個BEGIN 塊鄙陡。我們在前一個示例中使用了BEGIN 塊冕房。因為awk 在開始處理輸入文件之前會執(zhí)行BEGIN 塊
  • 因此它是初始化 FS(字段分隔符)變量、打印頁眉或初始化其它
  • 在程序中以后會引用的全局變量的極佳位置
  • 比如我打表頭
[root@localhost ~]# awk -F: 'BEGIN{print" linenumber     username    userid"}NR>=10&&NR<=20{printf  "%s-12   %+15s %+10d \n " ,NR,$1,$3}'  /etc/passwd
 linenumber     username    userid
10-12          operator        +11 
 11-12             games        +12 
 12-12               ftp        +14 
 13-12            nobody        +99 
 14-12   systemd-bus-proxy       +999 
 15-12   systemd-network       +192 
 16-12              dbus        +81 
 17-12           polkitd       +998 
 18-12               tss        +59 
 19-12           postfix        +89 
 20-12              sshd        +74 

awk action,循環(huán)趁矾,數(shù)組

  • 常用的action分類
  • Expressions:算術耙册,比較表達式等
  • Control statements:if, while等
  • Compound statements:組合語句
  • input statements
  • output statements:print等

awk控制語句if-else

  • 語法:if(condition){statement;…}[else statement]:簡單語句,如果條件成立就執(zhí)行語句毫捣,如果不成立我就執(zhí)行else后面的語句
  • if(condition1){statement1}else if(condition2){statement2}:復雜語句详拙,如果條件成立我就執(zhí)行后面的語句,如果不成立我會檢測后面的語句成立不成立蔓同,如果還不成立我就執(zhí)行后面的else后面的語句
  • else{statement3}
  • 使用場景:對awk取得的整行或某個字段做條件判斷饶辙,if,else可以寫多個,和bash不同
  • 示例
  • 第一判斷
[root@localhost ~]# awk -F: '{if($NF=="/bin/bash") print $1}' /etc/passwd
root

-第二判斷

[root@localhost ~]# awk '{if(NF>5) print $0}' /etc/fstab
# Created by anaconda on Fri Jul 14 03:57:39 2017
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
/dev/mapper/cl-root     /                       xfs     defaults        0 0
/dev/mapper/cl-app      /app                    xfs     defaults        0 0
UUID=c15af5a4-49d5-4551-abda-921540bf8424 /boot                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
  • 第三判斷
[root@localhost ~]# df -h|awk -F% '/^\/dev/{print $1}'|awk '$NF>=10{print $1,$5}' 
/dev/sda1 14

awk控制語句

  • while循環(huán)
  • 語法:while(condition){statement;…}
  • 條件“真”斑粱,進入循環(huán)弃揽;條件“假”,退出循環(huán)
  • 使用場景:
  • 對一行內(nèi)的多個字段逐一類似處理時使用
  • 對數(shù)組中的各元素逐一處理時使用
  • while是處理字段的珊佣,要記住哦
  • 行循環(huán)AWK自帶
  • awk 提供了非常好的類似于 C 語言的if 語句蹋宦。
{ 
 if ( $1== "foo" ) { 
 if ( $2== "foo" ) { 
 print "uno" 
 } else { 
 print "one" 
 } 
 } elseif ($1== "bar" ) { 
 print "two" 
 } else { 
 print "three" 
 } 
} 
  • 示例一
[root@localhost ~]# awk '/^[[:space:]]*linux16/{i=1;while(i<=NF) {print $i,length($i); i++}}' /etc/grub2.cfg
linux16 7
/vmlinuz-3.10.0-514.el7.x86_64 30
root=/dev/mapper/cl-root 24
ro 2
crashkernel=auto 16
rd.lvm.lv=cl/root 17
rd.lvm.lv=cl/swap 17
rhgb 4
quiet 5
LANG=en_US.UTF-8 16
net.ifnames=0 13
linux16 7
/vmlinuz-0-rescue-a8151f75d28c4b7ba1db0b5ad8c60cd6 50
root=/dev/mapper/cl-root 24
ro 2
crashkernel=auto 16
rd.lvm.lv=cl/root 17
rd.lvm.lv=cl/swap 17
rhgb 4
quiet 5
  • 示例二
[root@localhost ~]# awk '/^[[:space:]]*linux16/{i=1;while(i<=NF) {if(length($i)>=10) {print $i,length($i)}; i++}}' /etc/grub2.cfg
/vmlinuz-3.10.0-514.el7.x86_64 30
root=/dev/mapper/cl-root 24
crashkernel=auto 16
rd.lvm.lv=cl/root 17
rd.lvm.lv=cl/swap 17
LANG=en_US.UTF-8 16
net.ifnames=0 13
/vmlinuz-0-rescue-a8151f75d28c4b7ba1db0b5ad8c60cd6 50
root=/dev/mapper/cl-root 24
crashkernel=auto 16
rd.lvm.lv=cl/root 17
rd.lvm.lv=cl/swap 17
  • do-while循環(huán)
  • 語法:do {statement;…}while(condition
  • 意義:無論真假,至少執(zhí)行一次循環(huán)體
  • 示例
[root@localhost ~]#  awk 'BEGIN{ total=0;i=0;do{ total+=i;i++;}while(i<=100);print total}'
5050

for循環(huán)

  • for循環(huán)
  • 語法:for(expr1;expr2;expr3) {statement
  • 常見用法:
  • for(variable assignment;condition;iteration
  • {for-body}
  • 特殊用法:能夠遍歷數(shù)組中的元素
  • 語法:for(var in array) {for-body}
  • 示例
[root@localhost ~]# awk '/^[[:space:]]*linux16/{for(i=1;i<=NF;i++) {print $i,length($i)}}' /etc/grub2.cfg
linux16 7
/vmlinuz-3.10.0-514.el7.x86_64 30
root=/dev/mapper/cl-root 24
ro 2
crashkernel=auto 16
rd.lvm.lv=cl/root 17
rd.lvm.lv=cl/swap 17
rhgb 4
quiet 5
LANG=en_US.UTF-8 16
net.ifnames=0 13
linux16 7
/vmlinuz-0-rescue-a8151f75d28c4b7ba1db0b5ad8c60cd6 50
root=/dev/mapper/cl-root 24
ro 2
crashkernel=auto 16
rd.lvm.lv=cl/root 17
rd.lvm.lv=cl/swap 17
rhgb 4
quiet 5

其他語句

  • switch語句
  • 語法:switch(expression) {case VALUE1 or /REGEXP/:
  • statement1; case VALUE2 or /REGEXP2/: statement2;
  • break和continue
  • awk ‘BEGIN{sum=0;for(i=1;i<=100;i++)
  • {if(i%2==0)continue;sum+=i}print sum}‘
  • awk ‘BEGIN{sum=0;for(i=1;i<=100;i++)
  • {if(i==66)break;sum+=i}print sum}‘
  • 示例
[root@localhost ~]# awk -F: '{if($3%2!=0) next; print $1,$3}' /etc/passwd
root 0
daemon 2
lp 4
shutdown 6
mail 8
games 12
ftp 14
systemd-network 192
polkitd 998
libstoragemgmt 996
rpc 32
rtkit 172
geoclue 994
gdm 42
nfsnobody 65534
ntp 38
sshd 74
tcpdump 72
mageedu 1000

AWK數(shù)組

  • 關聯(lián)數(shù)組:array[index-expression]
  • index-expression:
  • 可使用任意字符串咒锻;字符串要使用雙引號括起來
  • 如果某數(shù)組元素事先不存在,在引用時守屉,awk會自動創(chuàng)建此元素惑艇,并將其值初始化為“空串”
  • 若要判斷數(shù)組中是否存在某元素,要使用“index in array”格式進行遍歷
  • 示例一
  • 數(shù)組非常繞好好看
[root@localhost ~]# awk 'BEGIN{weekdays["mon"]="Monday";weekdays["tue"]="Tuesday";print weekdays["mon"]}'
Monday
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拇泛,一起剝皮案震驚了整個濱河市滨巴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌俺叭,老刑警劉巖恭取,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異熄守,居然都是意外死亡蜈垮,警方通過查閱死者的電腦和手機耗跛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攒发,“玉大人调塌,你說我怎么就攤上這事』菰常” “怎么了羔砾?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長偶妖。 經(jīng)常有香客問我姜凄,道長,這世上最難降的妖魔是什么趾访? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任檀葛,我火速辦了婚禮,結果婚禮上腹缩,老公的妹妹穿的比我還像新娘屿聋。我一直安慰自己,他們只是感情好藏鹊,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布润讥。 她就那樣靜靜地躺著,像睡著了一般盘寡。 火紅的嫁衣襯著肌膚如雪楚殿。 梳的紋絲不亂的頭發(fā)上履肃,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天岸军,我揣著相機與錄音,去河邊找鬼红竭。 笑死影涉,一個胖子當著我的面吹牛变隔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蟹倾,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼匣缘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鲜棠?” 一聲冷哼從身側響起肌厨,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎豁陆,沒想到半個月后柑爸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡盒音,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年表鳍,在試婚紗的時候發(fā)現(xiàn)自己被綠了馅而。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡进胯,死狀恐怖用爪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胁镐,我是刑警寧澤偎血,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站盯漂,受9級特大地震影響颇玷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜就缆,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一帖渠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧竭宰,春花似錦空郊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至廓旬,卻和暖如春哼审,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背孕豹。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工涩盾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人励背。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓春霍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親椅野。 傳聞我的和親對象是個殘疾皇子终畅,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu炼蛤,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音蝶涩。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,156評論 9 467
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理理朋,服務發(fā)現(xiàn)絮识,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 1嗽上、第八章 Samba服務器2次舌、第八章 NFS服務器3、第十章 Linux下DNS服務器配站點兽愤,域名解析概念命令:...
    哈熝少主閱讀 3,707評論 0 10
  • 學會演講是通往成功致富的快速通道 是招兵買馬彼念,吸引人才 ,批量出貨的有效途徑 它可以快速建立個人品牌 擴大影響力浅萧!...
    晴天愛學習閱讀 493評論 0 1
  • 木漓 我站在深秋的稻田呼喊春天的來臨 矗立在風雪之巔遙望南方的美麗 ...
    北晴向晚閱讀 374評論 0 0