linux awk,第三節課(linux150命令詳解)

 2023-10-18 阅读 32 评论 0

摘要:這次學習并沒有布置作業,而學習內容是第一節課作業,以及第二節課的作業集合。 老師們提示說,命令是linux一切的基礎,一定要多聯系,每個命令最少聯系20遍。 最少要熟練運用30個基礎命令. 我正在向這個靠攏,不知道學習進度對于其他網

這次學習并沒有布置作業,而學習內容是第一節課作業,以及第二節課的作業集合。

老師們提示說,命令是linux一切的基礎,一定要多聯系,每個命令最少聯系20遍。

最少要熟練運用30個基礎命令.

我正在向這個靠攏,不知道學習進度對于其他網絡教學怎么樣,反正我覺得剛好,因為可能安排是4~5個月,1 3 5晚8點30-10點30。 有幾個月的時間,如果基礎學習不扎實, 怎么學習更深的知識。

linux awk,以下附上老師整理的命令150詳解


Linux150個基礎命令

?

作者:徐駿

歸檔:學習筆記

2017/8/14

?

快捷鍵:

Ctrl?+ 1 ???標題1

小學生第三節課幾點下。Ctrl + 2 ???標題2

Ctrl + 3 ???標題3

Ctrl + 4 ???實例

Ctrl + 5 ???程序代碼

Ctrl?+ 6 ???正文

shell基礎、格式說明:

藍色字體:注釋

黃色背景:重要

綠色背景:注意


?

老男孩教育教學核心思想6重:重目標、重思路、重方法、重實踐、重習慣、重總結

學無止境,老男孩教育成就你人生的起點!

聯系方式:

linux基本命令的使用?網站運維QQ交流群:

Linux ?385168604

架構師 390642196

Python 29215534

大數據 421358633

LINUX教程?官方網站:

http://www.oldboyedu.com

?


1.mkdir 創建目錄 *

linux grep、主要選項:-p 遞歸創建目錄

主要案列:mkdir /xujun

??????????mkdir -p /xujun/oldboy

??????????mkdir -p /xujun/oldboy{1,2} ?#創建多個目錄

?

shell命令行。2.cd 切換路徑 *

主要案例:cd或cd ~ ?#切換至家目錄

??????????cd - ?#在上一個目錄和當前目錄來回切換

??????????cd ~xujun ?#切換至某用戶的家目錄

??????????cd .. ?#切換至上一級目錄

linux less命令詳解,?

3.ls 查看目錄或文件信息 *

主要選項:-l 列出目錄或者文件的詳細信息。比如權限、修改時間等等

??????????-a 列出當前目錄下所有文件,包括隱藏文件(已點開頭的都是隱藏文件)

??????????-A 列出除...之外的所有文件

linux find命令詳解,??????????-h 已人類能查看的方式,列出文件的大小

??????????-d 只列出目錄的詳細信息

??????????-F給不同文件結尾加不同標識

???-p給目錄結尾加斜線

???-t按修改時間排序

shell 執行命令。 ???-r反轉排序

???-i查看inode節點

???--time-style=long-iso 格式化屬性時間

??????????-R 遞歸

主要案例:1、ls -l ?#列出目錄或者文件的詳細信息

iostat命令詳解,-rw-r--r-- ?1 root root ?????1 Aug ?5 21:24 xujun.txt

2、ls -la ?#列出當前目錄下所有文件,包括隱藏文件

??????????-rw------- ??1 root root ?18029 Aug 11 22:05 .bash_history

-rw-r--r-- ??1 root root ????18 Dec ?8 ?2016 .bash_logout

-rw-r--r-- ??1 root root ???176 Dec ?8 ?2016 .bash_profile

shell命令,3、ls -lh ?#已人類能查看的方式,列出文件的大小

??????????-rw-r--r-- ?1 root root ?22K Dec ?8 ?2016 install.log

??????????4、ls -ld xujun ?#只列出目錄的詳細信息

??????????drwxr-xr-x 5 root root 4096 Aug 11 23:00 xujun

??????????5、ls -lrt ?#已時間倒敘的方式來列出

shell 教程???????????-rw-r--r-- ?1 root root ???205 Feb ?5 ?2017 xujun.txt.bz2

-rw-r--r-- ?1 root root ?????1 Aug ?5 21:24 xujun.txt

drwxr-xr-x ?5 root root ??4096 Aug 11 23:00 xujun

?

4.pwd 列出當前目錄 *

主要選項:-L 大寫的L,顯示的邏輯路徑 ??/etc/init.d

??????????-P 大寫的P,顯示的是實際物理路徑 /etc/rc.d/init.d 這兩個參數了解即可

主要案例:[root@db02 ~]# pwd

/root

?

5.touch 創建一個空白文件,假如當前目錄有同樣的文件,則會更新文件的時間戳 *

主要選項:-a 修改access(訪問)時間

??????????-m 修改modify(修改)時間 這兩個參數了解即可

主要案例:touch xujun.txt

?

6.cat 查看文件 *

主要選項:-n 顯示行號

??????????-b 只顯示非空行的內容(顯示行號)

??????????-E 在每行結束處顯示$

??????????-s 壓縮空行

??????????-T tab鍵字符顯示為^I

主要案例:cat -n xujun.txt

??????????cat -b xujun.txt

cat -E xujun.txt

cat -T xujun.txt

cat >>xujun.txt<<EOF ?#cat的高級用法,配合重定向

Xujun

Woaini

EOF

?

7.vi 簡單的編輯命令 *

主要案列:vi xujun.tx

?

8.vim 復雜的編輯器 *(使用方法參考linux基礎里面的vim篇章)

使用方法同上

?

9.echo 打印文件內容或編輯文件內容 *

主要選項:-n 不換行輸出

??????????-e 可以使用轉義字符(\n回車,\t tab鍵)

主要案列:echo “I am studying linux”>>xujun.txt 追加文件尾部內容

??????????echo $? ?假如返回值為0的時候,表示上一次命令成功。假如是1到255的話,則是失敗

??????????echo -e “wo\tshi\tshei”> xujun.txt

?

10.xargs 從標準輸入(管道或stdin、輸入重定向)獲取數據。并將數據轉換成命令行的參數 *

????????簡單理解就是find 管道|后面接文件,就需要xargs。假如| 前面輸入的是文字,字符串就不需要接xargs

主要選項:-n 數字分組

??????????-i xargs的每項名稱,一行一行賦值給{},可以用{}代替

主要案列:xargs -n 2 < xujun.txt

??????????find /etc -type f -name “*.txt”|xargs rm -f

??????????find /etc -type f -name “*.txt”|xargs -i mv {} /tmp

?

11.cp 復制文件或目錄 *

主要選項:-a 相當于-pdr

??????????-f 強制復制,不提示

主要案列:cp -a xujun.txt /oldboy

??????????簡寫方式 cp /etc/ssh/sshd_config {,orz}

???????????????????cp -a {/root/xujun.txt,/tmp/1.txt}

?

12.mv 移動文件或目錄,并且可以更改文件或目錄的名字 *

主要選項:-f 強制移動,不提示

主要案列:mv xujun.txt /xujun xj.txt

?

13.rm 刪除文件或者目錄,這個命令在日常工作中一定要慎用 *

主要選項:-r 遞歸刪除文件或者目錄

??????????-f 強制刪除不提示

主要案列:rm -f xujun.txt

?

14.find 詳細查找文件或者目錄 *****

主要選項:-type 文件類型 f=文件 d=目錄 c=字符類型 b=塊設備類型

??????????-name 文件名

??????????-iname 文件名不區分大小寫

??????????已天為單位:

??????????-mtime 修改文件內容 按修改時間查找 +7 ?7天以前 ??7 7天 ???-7 ?7天以內

??????????-atime ?根據訪問時間查找

??????????-ctime ?根據創建時間查找

??????????已分鐘為單位:

??????????-amin ?根據訪問時間查找

??????????-mmin ?根據修改時間查找

??????????-cmin ??根據創建時間查找

??????????-user ??根據用戶名查找

??????????-group ?根據組用戶查找

??????????-uid ???根據用戶的uid查找文件

??????????-gid ???根據用戶的gid查找文件

??????????-size ???根據文件的大小來查找文件(默認單位:KB,MB,GB

?????????????????1024:什么都不加,小于文件大小-1或等于

?????????????????+1024:大于等于文件大小

?????????????????-1024 小于等于文件大小

??????????-perm ??根據權限查找

??????????????????644:什么都不加,精確文件權限匹配

??????????????????/644: 任何一類用戶(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足

??????????????????-644: 每一類用戶(u,g,o)權限中的每一位(r,w,x)同時符合條件即滿足

??????????!取反

??????????-o 或者

??????????-exec COMMAND {} \; 對查找到的每個文件執行由COMMAND表示的命令

注意:find傳遞查找到的文件路徑至后面的命令時,是先查找出所有符合條件的文件路徑,并一次性傳遞給后面的命令。但是有些命令不能接受過長的參數,此時命令執行會失敗。所以需要另一種方式來規避問題:find |xargs COMMAND

主要案例:find xujun/ -type f -name "*.txt" | xargs rm -f

??????????find xujun/ -type f -name "xujun.txt" -exec rm {} \;

??????????find xujun/ -type f -name "*txt" -mtime -7 | xargs rm -f

?????????這條命令解析:查找xujun目錄下的為文件、名字為*txt、最近7天之內修改的文件通過管道命令,再通過xargs排序 刪除文件

??????find /xujun -type f -name "*.txt" | xargs sed -i s#xujun#momo#

??????或者sed -i "s#shei#xujun#g" $(find /oldboy/ -type f -name "*.txt")

??再或者find /oldboy/ -type f -name "*.txt" -exec sed -i "s#shei#xujun#g" {} \;

??????find /xujun -type f -name "*.txt" -ok rm -f {} \;這種方式,當你刪除的時候,會詢問你是否需要刪除該文件

??????????find /backup -type f \( -name "*.log" -o -name "*.tar.gz" \) ?同時查找多個名字的文件

??????????find /data -type f -name “.txt”?-mtime +7|xargs -i mv {} /tmp

?

15.grep 過濾器 *****

主要選項:-v 排除內容

??????????-E 可以同時實現兩條命令的使用,當然也要加|

??????????--color=auto 對過濾的字符串加顏色

???-i 不區分大小寫

???-w 按單詞搜索

???-B 除了顯示匹配的一行之外,并顯示該行之前的N

???-A 除了顯示匹配的一行之外,并顯示該行之后的N

???-C 除了顯示匹配的一行之外,并顯示該行之前后各N

???-i 不區分大小寫

???-o 只顯示匹配到的內容

??????????-n 顯示行號

主要案列:grep -v old xujun.txt ???grep -Po '(?<=addr:)\S+' 取ip地址

??????????grep -n “.*”?xujun.txt ?grep -w “oldboy”?xujun.txt

??????????grep -E “root|nginx”?/etc/passwd

?

16.egrep 支持擴展正則表達式的grep命令 *****

主要參數: -v 排除內容

???????????--color=auto 對過濾的字符串加顏色

???????????-i 不區分大小寫

???????????-o 只顯示匹配到的內容

???????????-B 除了顯示匹配的一行之外,并顯示該行之前的N

???????????-A 除了顯示匹配的一行之外,并顯示該行之后的N

???????????-C 除了顯示匹配的一行之外,并顯示該行之前后各N

主要案列:egrep -v old xujun.txt ???egrep -Po '(?<=addr:)\S+' 取ip地址

??????????egrep -w “oldboy”?xujun.txt

?

17.head 查看文件的前N*

主要選項:-n 后面接數字,表示查看前幾行(也可以不加)

注意:head默認查看10

主要案列:head -5 /etc/passwd

??????????head -10 /etc/passwd|tail -5 查看passwd文件中6到10行

?

18.tail 查看文件的后N*

主要選項:-n 后面接數字,表示查看前幾行(也可以不加)

??????????-f(循環讀取)監視filename文件的尾部內容(默認10行,相當于增加參數-n 10

刷新顯示在屏幕上,退出按下ctrl+c

注意:tail默認查看10

主要案列:tail -5 /etc/passwd

?

19.alias 查看和設置別名 *

主要案列:查看別名,直接輸入alias。

??????????設置別名:alias cp='cp -i'

????????????????alias rm='echo “this command does not allow to ues”'

??????別名的配置文件:/etc/profile或者/etc/bashrc 全局生效

???????????????????~/.bashrc ?#當前用戶生效

?

20.unalias 取消別名

主要案例:unalias cp

?

21.seq 生成序列 *(編寫shell時需要)

主要選項:-s 指定分隔符

??????????-w 輸出同寬數列,不足的位數用0補齊

主要案例:[root@db02 ~]# seq -s : 10

1:2:3:4:5:6:7:8:9:10

[root@oldboy ~]# seq 100 >xujun.txt

[root@oldboy ~]# cat xujun.txt

1

2

....100

?

22.sed 流編輯器,實現對文件的增刪改查 *****

編輯命令:

?????????d:刪除 ?#sed ?‘2,3’d /etc/passwd

?????????p:打印輸出

?????????a:在行后面追加文本,支持使用\n實現多行追加

?????????i:在行前面插入文本,支持使用\n實現多行插入

?????????c:把匹配到的行替換為此處指定的文本

?????????w:保存模式空間匹配到的行至指定的文件中

?????????r:讀取指定文件的內容至當前文件被模式匹配到的行后面并且文件合并

?????????!:條件取反

?????????s///:查找替換,其分隔符可自行指定,常用的有s@@@,s###

?????????????替換標記:g 全局替換

主要選項:-n 取消默認輸出,把我想輸出的內容輸出到屏幕上

??????????-i 修改文件內容并且會破壞軟鏈接和硬鏈接

??????????-e 多項編輯

??????????-f 每行一個編輯命令

??????????-r 支持使用擴展正則表達式

主要案例:sed -n ‘20,30’p /etc/passwd

??????????sed -i ?"s#xj#xujun1#g" xujun.txt

??????????sed -nr '2s#^.*addr:(.*) Bca.*$#\1#gp' 取IP

??????????sed?-i?'3a?'$(sed?-n?'2p'?1.txt)'\n'$(sed?-n?'3p'?1.txt)?2.txt

注意:sed 's#內容#替換的內容#g xujun.txt 2.sed里面有小p,前面必須接參數-n

?

23.awk 過濾,輸出內容 *****

區域:$就是取什么什么引用 ?$1 表示第一列,$2 第二列,依次類推。但是$0表示整行

FS==區域分隔符,默認是空格

RS==每個記錄讀入的時候的分隔符(行的結束標識)

NR==行號,記錄的數。

NF==NF表示記錄中的區域(列)數量,$NF表示取最后一列

awk默認已空格為分隔符

BEGIN模塊在awk讀取文件之前就執行,一般用來定義我們的內置變量(預定義變量:FSRS

END模塊就是ENDawk讀取完所有文件的時候,再執行END模塊,一般用來輸出一個結果(累加,數組的結果)

awk編程思想:

1.先處理,最后再END模塊輸出

2.BEGIN模塊用于awk內置變量FSRS的賦值,在awk執行前

3.END模塊用來最后輸出,統計信息

awk幾種運算表達式:a=a+1或者a++ ?a=a+2或者a+=2 ??a+=$0

主要參數:-F 指定分隔符 比如說指定:為分隔符,那么:相當于一把菜刀,把數據切成一塊一塊,這個就是-F的作用

linux里面==等于等號。一個=linux里面相當于賦值

主要案例:awk 'NR>19 && NR<31' xujun.txt

??????????awk 'NR==20,NR==30' xujun.txt

?? ??awk -F ":" 'NR==1 {print $6}' /etc/passwd

??????awk -F "[ :]+" '{print $3,$5,$7}' 加號表示取一個整體

??????cat /etc/passwd|awk -F "[ :]+" 'NR==10,NR==20 {print $3}'

??????awk 'BEGIN{RS=":"} {print NR,$0}' passwd

??????awk 'BEGIN{RS=":"} {print NR,$0}' passwd

?????awk 'BEGIN{RS="[:/0-9 |\n]+"}{print $0}' passwd | sort | uniq -c | sort -rn 統計單詞數

?????awk -F "[ /]+" '$1~/^(ftp|http|ssh)$/{print $1,$2}' /etc/services

?????awk -F "[:]+" '$3>15{a=a+1}END{print a}' awkfile.txt

?????awk 'BEGIN{oldboy["a"]="xujun";olboy["b"]="xiaoyu";oldboy["c"]="wo"

?????awk '{print NR,$0}' xujun.txt

>print oldboy["a"]

>print oldbot["b"]

>print oldboy["c"]}' 這個案列引用了數組的概念:1.awk數組的元素名(蘋果名)可以是字符串

???????????????????????????????????????????????????????2.字符串要使用雙引號引起來

?

?????????echo oldboy{01..10}|xargs -n 1|awk '{print "echo "$0" >>/tmp/oldboy.txt && useradd "$0" && pa=$(mkpasswd|cut -c 1-5) && echo $pa|passwd --stdin "$0"|echo $pa >>/tmp/oldboy.txt"}'|bash 批量創建用戶和隨機密碼

?????????awk -F "[: ]+" '/Dan/{print $5}' reg.txt ?已Dan開頭的行,并且匹配第五列

?????????awk -F "[ :]+" '$3~/^138/{print $1,$3}' reg.txt 已138開頭的手機號碼,取人的名字和號碼(這里的~表示匹配的意思)

?????????awk -F "[ :]+" '$3!~/^138/{print $1,$2":"$3}' reg.txt 匹配不已138開頭的手機號碼和人的名字

?????????awk -F "[ :]+" '!/138/{print $1,$2":"$3}' reg.txt 匹配不已138開頭的手機號碼和人的名字

?????????awk -F "[ :]+" '$1~/C|E/{print $1,$2}' reg.txt ?已C或E開頭的人名

?????????awk -F "[ :]+" '$3~/(1|5)$/{print $1,$2}' reg.txt 已結尾為1或者5的手機數字,然后取對應的人名

?????????awk 'NR==2||NR==3||NR==9{print NR,$0}' xujun.txt或者awk 'NR==2;NR==3;NR==9{print NR,$0}'

xujun.txt

?????????2 bin:x:1:1:bin:/bin:/sbin/nologin

?????????3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

?????????9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 取第二行,第三行,第九行

????????awk 'BEGIN{a="abcd";print a}' awk中字母會被認為是變量,如果真的要給一個變量賦值,使用雙引號

????????awk '/^$/{i=i+1}END{print i}' /etc/services ?統計空行數量

????????seq 100|awk '{s=s+$0}'END'{print s}'

????????awk 'BEGIN{oldboy["a"]="oldgirl";oldboy["b"]="xujun";oldboy["c"]="oldbaby"

> for(police in oldboy)

> print police,oldboy[police]

> }'

a oldgirl

b xujun

c oldbaby (awk數組)

????????awk -F "[/]+" '{ceshi[$2]=ceshi[$2]+1}'END'{for(police in ceshi)print police,ceshi[police]}' ceshi.txt ?(數組)

mp3.etiantian.org 1

post.etiantian.org 2

www.etiantian.org 3

????????awk '{a[$1]+=$2}END{for(i in a)print i,a[i]}' shuzu.txt ?“a[$1]=a[$1]+$2”=”a[$1]+=$2”

awk小結:1.NR行號,存放著每個記錄的號,讀取新行時候自動+1

?????????2.RS是輸入數據的記錄的分隔符,簡單理解就是可以指定每個記錄的結尾標志

?????????3.RS替換\n

?????????4.RS作用就是表示一個記錄的結束

?????????5.FS標識著每個區域的結束

?????????6.awk只有模式(條件)的時候,會默認輸出整行($0

?????????7.$1~/正則表達式-開始/,$3~/正則結束/ ?行,記錄

?????????8.awk中字母會被認為是變量,如果真的要給一個變量賦值,使用雙引號

?

24.rmdir 刪除空目錄

主要選項:-p 刪除某目錄后,如果其父目錄為空,則一并刪除

主要案列:rmdir /oldboy ?

?

25.tree 顯示目錄樹 *

主要選項:-a 顯示所有文件和目錄

??????????-d 只顯示目錄

??????????-L 后面接上數字,表示只顯示幾層樹結構

??????????-f 為每個文件和目錄顯示完整的路徑

??????????-F 可以用來區分文件和目錄

??????????-i 不以階梯狀列出文件或目錄名稱

主要案例:[root@db02 ~]# tree -d -L 1 /application/

/application/

├── apache2.2.17

├── mysql -> /application/mysql-5.6.35/

└── mysql-5.6.35

3 directories

?

?

26.man 幫助命令 *

當要搜索某個關鍵字的時候,輸入/,然后在輸入關鍵字搜索

其中n這個快捷鍵是向下翻所查找的關鍵字的內容,大寫N是向上查找

主要案列:man cp

?

27.--help 簡單的幫助命令 *(外部命令)

主要案列:cp --help

?

28.uname 查看系統 *

主要選項:-m 查看系統是幾位操作系統

??????????-r ?查看系統的內核版本

??????????-a ?查看詳細的系統內核版本和系統的操作系統

主要案列:[root@db02 ~]# uname -a

Linux db02 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

?

29.stat 詳細查看文件和目錄的信息 *

主要案例:[root@db02 ~]# stat xujun.txt

??File: `xujun.txt'

??Size: 310 ?????? Blocks: 8 ?????????IO Block: 4096 ??regular file

Device: 803h/2051d Inode: 916335 ?????Links: 1

Access: (0644/-rw-r--r--) ?Uid: ( ???0/ ???root) ??Gid: ( ???0/ ???root)

Access: 2017-08-14 16:53:53.668136237 +0800

Modify: 2017-08-14 16:53:48.144137021 +0800

Change: 2017-08-14 16:53:48.144137021 +0800

?

30.rz 上傳命令 *

假如系統里面沒有這個命令,則使用yum install lrzsz -y來安裝次命令

主要參數:-y 覆蓋

主要案例:直接輸入rz,就可以上傳文件

注意:新版的xshell支持直接從windows把文件拖進xshell里,但是前提必須安裝了rz

?

31.sz 下載命令 *

主要參數:-y 覆蓋

主要案例:sz -y xujun.txt

注意:1.只能上傳文件,目錄不行。假如一定要上傳目錄的話,可以打包上傳,但必須是zip格式

??????2.下載的文件到linux中,是當前路徑

?

32.useradd 創建普通用戶 *

主要選項:-u 指定uid 列子:useradd -u 504 xujun (重要)

??????????-c 新賬號password的說明欄

??????????-d 設置新賬號每次登入時使用的家目錄

??????????-e 賬號終止日期。日期格式為MM/DD/YY

??????????-g 指定屬于的主組

??????????-G 定義此用戶為多個不同的組成員,每個用戶組使用,逗號來分隔

??????????-s 指定登錄shell (重要)

??????????-m 創建家目錄

??????????-M 不創建用戶家目錄

??????????-r 創建系統用戶

??????????-D 顯示或修改用戶的默認配置 ?修改的結果保存與/etc/default/useradd文件中

主要案例:useradd -s /sbin/nologin -M xujun

??????????useradd -u 504 xujun

注意:創建用戶時的諸多默認設定配置文件為/etc/login.defs

/etc/default/useradd這個配置文件,可以默認更改useradd的一些參數

?

?

33.passwd 創建用戶密碼或修改密碼 *

主要選項:--stdin 非交互式設置密碼

??????????-n 指定最短使用期限

??????????-x 最大使用期限

??????????-w 提前多少天開始警告

??????????-i 非活動期限

??????????-e 過期期限

主要案例:echo “123456”|passwd --stdin xujun

?

34.su 切換用戶 *

主要選項:-c 變更賬號為USER的使用者,并執行指令后再變回原來的使用者

??????????- 加載環境變量

主要案例:su - xujun

?

35.hostname 顯示和設置主機名 *

主要案列:hostname 直接輸入,顯示主機名

??????????hostname xujun 更改xujun為主機名 但這個只是暫時的更改,重啟就沒有了

??????????假如需要永久性的更改主機名,需要到配置文件/etc/sysconfig/network

?

36.init 切換運行級別

主要案例:init 0 關機

??????????init 1 單用戶

??????????init 2 沒有NFS網絡的多用戶模式

??????????init 3 有NFS網絡的多用戶模式

??????????init 4 沒有用戶

??????????init 5 x window

??????????init 6 重啟

?

37.runlevel 查看當前系統的運行級別

主要案例:直接輸入runlevel

?

38.shutdown 關機

主要選項:-h 關機

??????????-r 重啟

??????????-c 終止關機或重啟的動作

主要案例:shutdown -h now

??????????shutdown -r now

?

39.reboot 重啟

主要案例:直接輸入reboot

?

40.history 查看命令歷史記錄 *

登陸shell時,會讀取命令歷史文件中記錄下的命令(~.bash_history

登陸進shell后新執行的命令只會記錄在緩存中,這些命令會用戶退出時追加至~.bash_history

!#:再一次執行歷史列表中的第#條命令

!!:再一次執行上一條命令

!STRING:再一次執行已STRING開頭的命令

控制命令歷史記錄的方式:HISTCONTROL=ignoredups(忽略重復的命令),ignorespace(忽略已空格開頭的命令),ignoreboth(以上兩者同時生效)

主要選項:-a 追加本次會話新執行的命令歷史列表至歷史文件中

??????????-c 清空所有

??????????-d 刪除指定歷史內容

主要案例:如何調用歷史記錄,使用!后面接命令的字符 比如:!Touch

??????????history -c

??????????History -d 5 刪除指定歷史內容

?

41.mount 磁盤掛載 *

主要選項:-t 后面可以接文件系統ext2 ext3等等

??????????-r 只讀掛載

??????????-L 掛載時以卷標的方式指明設備

??????????-U 掛載時以uuid的方式指明設備

??????????-a 可自動掛載定義在/etc/fstab文件中的所支持自動掛載的設備

??????????-o 掛載選項:

?????????????sync/async:同步/異步操作

?????????????atime/noatime:文件或目錄在被訪問時是否更新其訪問時間戳

?????????????diratime/nodiratime:目錄在被訪問時是否更新其訪問時間戳

?????????????remount/:重新掛載

?????????????acl:支持使用訪問控制列表

?????????????dev/nodev:此設備上是否允許創建設備文件

?????????????exec/noexec:是否允許允許此設備上的程序文件

?????????????user/nouser:是否允許普通用戶掛載此文件系統

?????????????suid/nosuid:是否允許程序文件上的suidsgind特殊權限生效

使用技巧:可以實現將目錄綁定至另一個目錄上,作為其臨時訪問入口

??????????mount --bind 源目錄 目標目錄:mount --bind /etc /mnt

主要案列:mount -t ext3 /dev/cdrom /mnt

??????????lsof /mnt ?當umount /mnt無法卸載的時候,可以使用這個命令,來查看是否有進程在使用中

?

42.which 詳細查看命令的路徑 *

主要選項:--skip-alias 不顯示別名

主要案列:which ls

??????????[root@m01 ~]# which --skip-alias ls

/bin/ls

?

?

43.dmesg 查看系統的故障詳細情況

主要案例:dmesg

?

44.ifupifdown啟動和停止網卡,后面接網卡名 *

主要案例:ifdown eth0

??????????ifup eth0

?

45.nl 顯示行號

主要案例:nl xujun.txt

?

46.less 查看當前文檔內容,相比catless的使用方式更加的靈活多變,它可以實現上下翻頁等功能 *

主要選項:-N 顯示行號

主要案列:less xujun.txt

?

47.more 按頁查看,不能回退,靈活上不如less *

主要案例:more xujun.txt

?

48.wc 統計文件的字數和行數,字節數 *

主要選項:-l 顯示總行數,常用于查看進程是否啟動

??????????-L 顯示最長一行的字符數

??????????-c 顯示字節數

??????????-m 顯示字符數

??????????-w 顯示單詞數

主要案例:wc -l xujun.txt

??????????[root@web01 ~]# ps -ef|grep "/sbin/nginx"|grep -v grep|wc -l

??????????????????????????1 ???工作常用這個來查看進程是否存在,假如為1,就是存在的。

???????????????????????????????要是0的話,就表示該進程不存在

?

49.chkconfig 設置開機自啟動 *

主要選項:--list 查看啟動服務

??????????--level 設置運行級別

??????????--add ?添加服務

??????????--del ?刪除服務

注意:正常級別下,最后啟動的一個服務S99local沒有鏈接至/etc/init.d/下的腳本,而是鏈接了/etc/rc.d/rc.local腳本。因此,不便或不需寫為服務腳本的程序要想開機自啟動,則需要放置此文件中即可。

主要案列:chkconfig --level 5 sshd off(on)

??????????chkconfig --list sshd (查看指定服務是否開啟還是關閉)

??????chkconfig --list|grep "3:on"|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash

假如我寫了一個腳本(命令的集合),怎么讓chkconfig管理并運行呢

1.腳本必須放在/etc/init.d下

2.腳本要有執行權限(x)

3.腳本的前幾行必須要有

#chkconfig:2345 08 92 ?#這個必須要有

#description:starts,stop and saves iptables firewall

4.通過chkconfig --add添加

?

50.dumpe2fs 顯示ext2/ext3/ext4文件系統信息

主要案列:dumpe2fs /dev/sda1

?

51.df 列出linux下所有的磁盤容量 *

主要選項:-h 已人類可讀的方式(MB,GB,KB)顯示出來

??????????-i 列出inode剩余的總量和使用量

??????????-T 查看當前掛載的文件系統

??????????-l 僅顯示本地文件的相關信息

主要案例:df -h

?

?

?

52.file 查看文件類型

主要案例:file xujun.txt

?

53.查看用戶的最近登陸信息,對應的數據文件是/var/log/wtmp *

主要案例:[root@db02 yum.repos.d]# last

root ????pts/3 ???????10.0.0.1 ????????Fri Aug 18 11:19 ??still logged in ??

root ????pts/1 ???????10.0.0.1 ????????Mon Aug 14 22:37 - 13:15 (3+14:37) ??

root ????pts/4 ???????10.0.0.1 ????????Mon Aug 14 17:00 - 17:02 ?(00:02) ???

root ????pts/3 ???????10.0.0.1 ????????Fri Aug 11 22:56 - 19:40 (2+20:44) ?

?

54.lastlog:顯示最近登陸的所有用戶信息。對應的數據文件是/var/log/lastlog

主要案例:[root@web01 ~]# lastlog

Username ????????Port ????From ????????????Latest

root ????????????pts/0 ???192.168.203.1 ???Tue Mar 14 22:12:43 +0800 2017

bin ???????????????????????????????????????**Never logged in**

daemon ????????????????????????????????????**Never logged in**

adm ???????????????????????????????????????**Never logged in**

lp ????????????????????????????????????????**Never logged in**

sync ??????????????????????????????????????**Never logged in**

?

55.ln 鏈接文件 *

1.硬鏈接:可以看做是一種備份,當原文件寫入,備份文件也會自動寫入。當原文件被刪除的時候,備份文件還能繼續使用。

2.軟鏈接:可以看做是windows下的快捷方式。此鏈接方式的特點可以概括如下:原文件刪除,備份文件不能使用。

主要選項:-s 如果不加-s,就是硬鏈接。相反加了-s,就是軟鏈接

主要案例:ln -s /application/nginx-5.6.3.0 /application/nginx

?

56.tar 打包命令 *

主要選項:-j:通過bzip2的支持進行壓縮和解壓縮。此時文件名最好為:.tar.bz2

??????????-c:新建打包文件

??????????-f:這個參數后面要接被出來的文件名,建議 -f 單獨寫一個參數

??????????-t:查看打包文件

??????????-z:通過gzip的支持進行壓縮和解壓縮。此時文件名最好為:.tar.gz

??????????--exclude 這個參數可以過濾你不想打包的目錄內容 tar -zcvf /tmp/etc.tar.gz etc --exclude /etc/services

??????????-C:這個參數用在解壓縮時,若要在特定目錄解壓縮,可以使用這個參數

??????????-x:解壓縮打包文件

??????????-h:打包的時候,假如目錄里面有軟鏈接文件,這個參數會打包軟鏈接對應的真實目錄

或文件

??????????-X:從文件里面排除不需要的文件或者目錄

??????????-u:添加改變了和現有的文件到已經存在的壓縮文件里

主要案例:壓縮:tar -zcv -f /tmp/etc.tar.gz /etc

?????????查詢:tar -t -f /tmp/etc.tar.gz

?????????解壓縮:tar -x -f /tmp/etc.tar.gz /tmp

?????tar -zcf /backup/html_`date +%F-%H`.tar.gz www/html/

?

57.tr 轉換字符串 *

主要選項:-d 刪除

主要案例:轉換 tr 'abc' 'XYZ' < xujun.txt (a-X,b-Y,c-z)

?

58.id 查看用戶和用戶組的信息 *

主要選項:-u 僅顯示用戶的uid

??????????-g 僅顯示用戶的gid

??????????-G 僅顯示用戶所屬的所有組ID

??????????-n 僅顯示名字而非ID

主要案例:[root@db02 ~]# id john

uid=511(john) gid=511(john) groups=511(john)

?

59.du 查看linux下目錄的容量 *

主要選項:-s 列出目錄容量,而不列出每個各別的目錄占用容量

??????????-h 表示系統自動調節單位

??????????-a-all 為每個指定文件顯示磁盤使用情況,或者為目錄中每個文件顯示各自磁盤使用情況

??????????–max-depth=<目錄層數> 超過指定層數的目錄后,予以忽略

主要案例:[root@db02 ~]# du -sh /etc

30M /etc

?

?

60.date 設置和顯示時間 *

主要選項:-s 修改并設置時間

??????????-d 可以顯示以前和未來的時間

??????????%H 小時

??????????%M 分鐘

??????????%S

??????????%X 相當于%H %M %S

??????????%F 顯示當前所有時間屬性

??????????%Y 完整年份

??????????%m

??????????%d

??????????%A 星期的全稱

主要案例:date ?+%F

??????????date -s “2017-03-09 18:56:00”

??????????echo `date +%F` 工作中會用到的

??????????echo $(date +%F) 工作中會用到的

??????????date +%F -d “-2day”?2天以前的時間

??????????tar zcf etc.tar$(date +%F).gz /etc

?

61.whereis 查找文件幫助、源代碼、命令

主要案列:whereis ifconfig

?

62.locate 根據數據庫里內容查找文件

主要案列:locate ifconfig

?

63.readlink 查看軟鏈接的源文件在哪

主要案列:readlink 后面接軟鏈接文件

?

64.rename 重命名軟件 *

主要案列:rename "_finished" "" *

?

65.basenamebasenamedirname命令通常用于shell腳本中的命令替換來指定和指定的輸入文件名稱有所差異的輸出文件名稱。

主要案例:basename /root/xujun1270.txt

??????????xujun1270.txt

?

66.dirname:去除文件名中的非目錄部分,僅顯示與目錄有關的內容

主要案例: dirname /root/xujun1270.txt

???????????/root

?

67.md5sum 計算和校驗文件的md5*

主要選項:-c 從指定文件中讀取MD5校驗和,并進行校驗

主要案例:md5sum oldboy.txt

??????????md5sum oldboy.txt >> xujun.txt

??????????md5sum -c xujun.txt

??????????oldboy.txt: OK

?

68.chmod 改變文件權限 *

主要選項:-R 遞歸改變目錄下所有子目錄和文件的權限

主要案列:-rwxr-xr-x root root

??????數字方式:r=4 w=2 x=1

??????使用方法:chmod 777 xujun.txt

????????????????ls -l xujun.txt

????????????????-rwxrwxrwx

?

69.chown 改變文件和目錄的所有者 *

主要選項:-R 遞歸改變目錄下所有子目錄和文件的所有者

主要案列:ls -l xujun.txt

??????-rwxr-xr-x root root

??????chown xujun xujun.txt

??????ls -l xujun.txt

??????-rwxr-xr-x xujun root

??chown 用戶:組 文件或目錄

?

70.umask 修改umask

umask值都為偶數,直接相減

如果有奇數,對應為加一

注意:之所以文件用666去減,表示文件默認不能擁有執行權限。如果減得的結果中有執行權限,則需要將其加一。所以這個對目錄而言,是沒有任何效果的

主要案列:umask 022

?

71.chattr 增加隱藏屬性 *

主要選項:-a 可以增加內容,但是不能減少或刪除文件

??????????-i 鎖定文件,讓其不能增加,刪除,修改

主要案例:chattr -i xujun.txt

??????????chattr +i xujun.txt ?#取消鎖定

?

72.lsattr 查看隱藏屬性 *

主要選項:lsattr xujun.txt

?

73.groupadd 創建一個組用戶 *

主要選項:-g 創建組的gid

??????????-r 創建系統組

主要案例:groupadd -g 504 oldboy

?

74.usermod 更改用戶屬性 *

主要選項:-c 注釋

??????????-d 更新用戶新的家目錄。如果給定-m選項,用戶舊的家目錄會搬到新的家目錄去,如舊的家目錄不存在則建個新的

??????????-e 加上用戶賬號停止日期

??????????-g 更新用戶新的起始登入用戶組

??????????-G 定義用戶為多個用戶組

??????????-s 指定新登入的shell

??????????-u 指定用戶的UID

??????????-a -G配合使用,表示追加新的用戶組,不覆蓋

??????????-m只能與-d選項一同使用,用于將原來的家目錄移動為新的家目錄

主要案例:usermod -c "Handsomeboy" -u 806 -G root,oldboy -s /bin/sh -md /oldboy6 oldboy6

?

75.userdel 刪除用戶 *

主要選項:-r 刪除用戶的家目錄(此選項慎用)

主要案例:userdel -r xujun

?

76.crontab 定時任務 *

主要選項:-l 查看crontab文件內容

??????????-e 編輯crontab文件內容

主要案例:crontab -e

注意:假如直接用命令行去編輯的時候,后面不要加>/dev/null ?2>&1

?

77.tac 倒敘的方式查看文件內容

主要案列:tac oldboy.txt

?

78.rev 將文件中的每行內容已字符為單位反向輸出,即第一個字符最后輸出,最后一個字符最先輸出

主要案例:rev oldboy.txt

?

79.cut 用來顯示行中的指定部分,刪除文件中指定字段 *

主要選項:-b 用字節來切割

??????????-c 用字符來切割

??????????-d 指定字段的分隔符,默認的字段分隔符為“TAB

??????????-f 顯示指定字段的內容(一般配合-d使用)

??????????--output-delimiter=“ ” 可以把指定的分隔符替換成其他字段,比如說空格符

主要案例:ifconfig eth0|grep "inet addr:"|cut -c 21-33

??????????192.168.203.8

?

80.chage 修改用戶密碼有效期限 管理/etc/shadow ?*

主要選項:-l 查看當前的設置

??????????-E 將賬戶過期時間設為“過期日期”。日期寫法“2017-3-15

主要案例:[root@db02 ~]# chage -l xujun

Last password change : Dec 31, 2016

Password expires : never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

?

?

81.sudo 用來以其他身份來執行命令,預設的身份為root。在/etc/sudoers中設置了可執行sudo指令的用戶 *

主要選項:-l 查看當前用戶可以執行的sudo命令

主要案例:[oldboy@web01 ~]$ sudo ifconfig

?

82.visudo 配置sudo權限的編輯命令 *

主要案例:visudo ?進入編輯模式之后,在第98行左右,編輯用戶和命令(98gg)

??????????root ???ALL=(ALL) ??????ALL

%xujun ??ALL=(ALL) ??????/usr/sbin/useradd ?用戶組前面一定加百分號 ?

oldboy ??ALL=(ALL) ??????/usr/sbin/useradd

定義多個別名:用戶和用戶組和多條命令

#用戶別名分類

User_Alias ADMINS = jsmith, mikem

#崗位命令分類

Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

Cmnd_Alias LOCATE = /usr/bin/updatedb

Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp

#角色

Runas_Alias OP1 = root, oldboy

Runas_Alias OP2 = oldgirl

ADMINS ?ALL=(OP1) ??????SOFTWARE

?

83.groupdel 刪除用戶組 *

注意:刪除有用戶的組,需要先刪除用戶,然后在刪除組

主要案例:[root@db02 ~]# groupdel john

?

84.w 詳細查看當前用戶的登陸情況 *

主要案例:[root@web01 ~]# w

?11:06:21 up 3 days, 23:25, ?2 users, ?load average: 0.00, 0.00, 0.00

#第一行從左至右顯示的信息依次為:時間、系統運行時間、登陸用戶數、平均負載:平均負載里面的數字表示,1分鐘內,5分鐘內,15分鐘內,當數值超過當前系統內核數量的時候,表示系統已經有了壓力

USER ????TTY ?????FROM ?????????????LOGIN@ ??IDLE ??JCPU ??PCPU WHAT

root ????pts/0 ???192.168.203.1 ???Tue22 ???0.00s ?0.00s ?0.00s w

root ????pts/1 ???192.168.203.1 ???Mon21 ??16:01m ?0.39s ?0.39s -bash

?

85.who 查看當前用戶登陸情況

主要案例:[root@web01 ~]# who

root ????pts/0 ???????2017-03-14 22:12 (192.168.203.1)

root ????pts/1 ???????2017-03-13 21:25 (192.168.203.1)

?

86.whoami 查看當前用戶是什么 *

主要案例:[root@web01 ~]# whoami

root

?

87.free 可以顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩沖區 *

主要選項:-m mb為單位顯示

??????????-h 以人類可讀的方式顯示

主要案例:[root@web01 ~]# free -m

?????????????total ??????used ??????free ????shared ???buffers ????cached

Mem: ??????????981 ???????476 ???????505 ?????????0 ????????62 ???????298

-/+ buffers/cache: ???????114 ???????866 (工作看內存大小,主要看這里)

Swap: ????????1023 ?????????0 ??????1023

提示:1)linux系統的特性是將系統不用的物理內存做為緩存或緩沖使用,因此,505不是系統真實的內存

??????2)系統真正系統可用內存是866M

??????3)buffers為寫入緩沖區,sync將緩沖區數據寫入磁盤

??????4)cache為讀取數據的緩存區

??????5)硬盤是機械的,無論是寫入還是讀取都太慢了,所以讀取和寫入都是用了緩存技術

??????6)門戶網站架構都會用緩存技術,來讓用戶寫入讀取盡可能不接觸硬盤

?

88.od 查看二進制文件

主要案列:od /bin/ls

?

89.dd 用于復制文件并對原文件的內容進行轉換和格式化處理

主要案列:dd if=/dev/zero of=/root/xujun.txt bs=1M count=1 創建一個1M的文件

?

90.fdisk 用于觀察硬盤實體使用情況,也可對硬盤分區 *

主要選項:-l 列出分表情況

主要案例:fdisk /dev/sdb ???為第二塊硬盤進行分區

Command (m for help): m

Command action

???a ??toggle a bootable flag

???b ??edit bsd disklabel

???c ??toggle the dos compatibility flag

???d ??delete a partition 刪除分區

???l ??list known partition types

???m ??print this menu

???n ??add a new partition 創建一個新的分區

???o ??create a new empty DOS partition table

???p ??print the partition table 列出磁盤目前的分區情況

???q ??quit without saving changes 直接退出不修改分區

???s ??create a new empty Sun disklabel

???t ??change a partition's system id

???u ??change display/entry units

???v ??verify the partition table

???w ??write table to disk and exit 保存分區表并退出(這個選項慎用)

???x ??extra functionality (experts only)

?

使用物理分區構建swap

fdisk /dev/sdb ???分成一個分區

mkswap /dev/sdb1

free -m

swapon /dev/sdb1

free -m

fdisk之后需要通知內核強制重讀磁盤分區表:

?????????????Centos5:partprobe[device]

?????????????Centos6和7:partx,kpartx

???????????????????partx -a [device]

???????????????????Kpartx -af [device]

?

91.parted 磁盤分區管理工具,比fdisk更加靈活。當磁盤大于2T的時候,需要用到這個命令,并且這個命令分區的時候,是實時生效的,所以分區時一定要慎重

主要案列:[root@localhost ~]# parted /dev/sdb GNU Parted Copyright (C) 1998 - 2004 free Software Foundation, Inc. This program is free software, covered by the GNU General Public License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

使用/dev/sdb

(parted)mklabel gpt

(parted)mkpart primary 0 2048(單位是M

(parted)Ignore

(parted)quit

?

92.mkfs 創建文件系統 *

主要選項:-t 指定文件系統格式

主要案列:mkfs -t ext4 /dev/sdb

?

93.fsck 磁盤檢驗

主要選項:-t 指定文件系統格式

主要案列:fsck -t ext4 /dev/sda6 ????沒壞的磁盤一定不要使用這個命令

?

94.partprobe 把分區表的修改變化通知內核

一般配合fdiskparted使用

主要案例:partprobe /dev/sdb

?

95.mkswap 格式化swap分區

主要選項:-L 指明卷標

??????????-f 強制

主要案列:mkswap /dev/sdb1

?

96.swapon 使用swap分區

主要案列:swapon /dev/sdb1

?

97.swapoff:不使用swap分區

主要案例:swapoff /dev/sdb1

?

98.tune2fs:修改文件系統信息 (很少用到)

主要參數:-i 查看超級塊的內容

??????????-j 修改文件系統

??????????-L 修改卷標

??????????-m 調整預留空間百分比

??????????-O 開啟或關閉某種特性

??????????-o 開啟或關閉某種默認掛載選項

主要案例:tune2fs -c 30 /dev/hda1 設置強制檢查前文件系統可以掛載的次數

tune2fs -c -l /dev/hda1 關閉強制檢查掛載次數限制。

tune2fs -i 10 /dev/hda1 10天后檢查

tune2fs -i 1d /dev/hda1 1天后檢查

tune2fs -i 3w /dev/hda1 3周后檢查

tune2fs -i 6m /dev/hda1 半年后檢查

tune2fs -i 0 /dev/hda1 禁用時間檢查

tune2fs -j /dev/hda1 添加日志功能,將ext2轉換成ext3文件系統

tune2fs -r 40000 /dev/hda1 調整/dev/hda1分區的保留空間為40000個磁盤塊

tune2fs -o acl,user_xattr /dev/hda1 設置/dev/hda1掛載選項,啟用Posix Access Control Lists和用戶指定的擴展屬性

?

99.megacli:查看raid信息

主要案例:megacli

?

100.ipmitools:查看硬件信息工具

主要案列:ipmitools

?

101.resize2fs:調整文件系統大小(LVMbrbd

主要案列:resize2fs

?

102.split:按照指定的大小或行數分割文件

主要選項:-l 指定行數

??????????-a 指定生成文件后綴長度 split -l 10 -a 4 xujun.txt xujun_(默認是2字節)

??????????-d 指定文件后綴為數字

??????????-b 指定文件大小

主要案例:split -l 10 /etc/inittab new_

?

103.paste:把每個文件以列對列的方式,一列列地加以合并

主要選項:-d 指定分隔符

??????????-s 已行來指定文件

主要案例:paste -d :xujun.txt xujun1.txt

??????????paste -sd '=\n' svn.txt

?

104.sort:將文件的每一行作為一個單位,然后升序排列(默認按照accll碼排序,升序,從小到大)*

主要選項:-n 按照數值排序 sort -n xujun.txt

??????????-r 倒敘排列數值 sort -r xujun.txt

??????????-u 去除重復行

??????????-t 指定分隔符

??????????-k 指定區域

??????????-f 忽略字符大小寫

主要案例: awk 'BEGIN{RS="[:/0-9 |\n]+"}{print $0}' passwd | sort | uniq -c | sort -rn 統計單詞數

???????????head -10 /etc/passwd|tail -5|sort -t : -k 3 -n|cut -d : -f1 ?#以冒號分隔,取出/etc/passwd文件的第6至第10行,并將這些信息按第三個字段的數值大小進行排序,最后僅顯示各自的第一個字段

?

105.dos2unixwindows格式轉換成unix格式 *

主要案列:dos2unix xujun.txt

?

106.diff:用于比較文件或目錄的內容,特別是比較兩個版本不同的文件以找到改動的地方 *

提示符:

a add 增加 ????

c chage 改變

d delate 刪除

主要選項:-u 顯示行修改的上下文,默認為上下3

主要案例:diff xujun.txt xujun1(比較兩個文件內容有什么不同)

??????????diff /etc/rc3.d/ /etc/rc6.d/

?

107.vimdiff:可視化的比較工具,和diff一樣,就是多了vim可視化(可以比較4個文件) *

主要案列:vimdiff xujun.txt xujun1 xujun2 xujun3

?

108.tr:轉換刪除字符串 *

主要選項:-d 刪除

主要案列:轉換 tr 'abc' 'XYZ' < xujun.txt (a-X,b-Y,c-z)

?

109.tee:多重定向

主要選項:-a 追加重定向

主要案例:ls|tee /tmp/ls.txt

??????????cat /etc/passwd|tee /tmp/passwd.txt|tr ‘a-z’?‘A-Z’?把cat的數據通過管道輸入到tr命令并且保存到/tmp/passwd.txt文件中

?

110.dig:解析域名 *

主要選項:-t 正向解析,直接跳過本地的hosts文件,解析DNS配置的IP

??????????-x 反向解析 ???

主要案例:dig www.baidu.com (這樣解析不是很完美)

??????????dig @8.8.8.8 www.baidu.com +trace (完美解析)

??????????dig -t A www.baidu.com

?

111.nslookupDNS服務診斷工具

主要案例:nslookup

??????????>baidu.com

?

112.host:域名解析工具

主要案例:host www.baidu.com

?

113.ping:網絡服務診斷工具 *

主要選項:-c 指定發送的ping包個數

??????????-w 指定ping命令超時時長

??????????-W 一次ping操作中,等待對方響應的超時時長

??????????-s 指定ping包報文大小

主要案列:ping www.baidu.com

?

114.route:配置默認網關和網絡靜態路由 *

主要選項:-n 查看網關信息

??????????-net 到一個網絡的路由表

主要案例:route add default gw 網關(添加網關,但是是臨時生效)

?????????route del default gw 網關(刪除網關)

?????????route add -net 192.168.0.0/24 gw 10.10.10.2 (添加192.168.0.0這個網段,并從10.10.10.2這個網關出去)

?

115.ifconfig:顯示網卡信息 *

主要選項:-a 顯示所有接口

主要案例:ifconfig eth0 10.0.0.100/24 up ?

??????????ifconfig eth0 (只查看一塊網卡)

??????????ifconfig eth0:0 192.168.1.1/24 up(配置在一塊網卡上配置多個IP,網卡或者系統重啟失效)

??????????ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up

??????????ifconfig eth0:0 down (刪除IP)

?

116.ip:查看網卡信息(未來趨勢)*

主要選項:ip address 查看網卡信息

????????????????ip address add:添加ip地址

????????????????ip address del:刪除ip地址

????????????????ip address show:指定查看接口的信息

????????????????ip address flush:清空端口的ip地址

??????????ip route 查看路由

????????????????ip route add:添加新的路由

????????????????ip route change:修改路由

????????????????ip route replace:修改或添加新的

????????????????ip route delete:刪除路由

????????????????ip route show:列出路由表

??????????ip link 查看不同網絡接口的統計數據

注意:ip命令大部分選項都可以簡寫

主要案例:ip addr add 10.0.0.13/24 dev eth0:3(配置在一塊網卡上配置多個IP,網卡或者系統重啟失效)

??????????ip addr del 10.0.0.13/24 dev eth0:3 (刪除IP)

??????????ip link show eth1 ?#指定查看接口的信息

??????????ip address show ?#查看IP地址(同ifconfig)

??????????ip address flush dev eth0 ?#清空eth0的ip地址

??????????ip route add 192.168.0.0/24 via 10.0.0.2 dev eth1

??????????ip route add default via 10.0.0.2

注意:配置子接口,需要在/etc/sysconfig/network-scripts/里配置一個ifcfg-eth0:0,這樣才能永久有效

?

117.netstat:查看進程或者端口 *

主要參數:-a 查看所有

??????????-p 顯示正在運行的進程

??????????-u 顯示udp協議相關的進程或者端口

??????????-t ?顯示tcp協議相關的進程或者端口

??????????-n 已數字顯示

??????????-l 僅列出有在 Listen (監聽) 的服務狀態

??????????-r 顯示路由表

主要案列:netstat -lntup|grep 80

??????????netstat -rn

?

118.lsof:查看端口 ?*

主要參數:-i ?列出符合條件的進程。(46、協議、:端口、 @ip

主要案例:lsof -i :80

??????????lsof |grep del ?查看被刪除的進程

注意:lsof ?/mnt ?umount /mnt無法卸載的時候,可以使用這個命令,來查看是否有進程在使用中

?

119.traceroute:用于追蹤網絡數據包在網絡上傳輸時所經過的路徑 *

主要參數:-n:直接使用IP地址而非主機名稱

主要案例:traceroute www.baidu.com

?

120.tcpdump:抓包工具 *

主要參數:-i 指定端口

??????????-n 指定協議

??????????-t 在輸出的每一行不打印時間戳

???????????-S 將tcp的序列號以絕對值形式輸出,而不是相對值

???????????-c 在收到指定的數量的分組后,tcpdump就會停止

主要案列:tcpdump -n icmp -i eth0

??????????tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾數據報的類型
(2)-i eth1 : 只抓經過接口eth1的包
(3)-t : 不顯示時間戳
(4)-s 0 : 抓取數據包時默認抓取長度為68字節。加上-S 0 后可以抓到完整的數據包
(5)-c 100 : 只抓取100個數據包
(6)dst port ! 22 : 不抓取目標端口是22的數據包
(7)src net 192.168.1.0/24 : 數據包的源網絡地址為192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

?

121.uniq:用于去除或忽略文件中的重復行,一般和sort結合使用 *

主要選項:-c 在每列旁邊顯示該行重復出現的次數

??????????-d 僅顯示重復的行

??????????-u 僅顯示不曾重復的行

主要案例:sort file.txt | uniq -c ?統計各行在文件中出現的次數

?????????awk 'BEGIN{RS="[ :/0-9\n]+"}{print $0}' xujun.txt|sort -n|uniq -c

??????3 adm

??????1 bash

??????5 bin

??????2 daemon

??????3 halt

??????2 lp

??????1 lpd

??????3 mail

??????6 nologin

??????3 root

??????12 sbin

?

122.column:有序的排序

主要參數:-t 判斷輸入行的列數來創建一個表。分隔符是使用在-s中指定的字符。如果沒有指定分隔符,默認是空格

主要案例:column -t

?

123.rsync:備份工具 *

主要選項:-v 詳細模式輸出,傳輸時的進度等信息

??????????-z 傳輸時進行壓縮以提高傳輸效率

??????????-a 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rtopgdl

??????????--bwlimit=10 ?限制傳輸速度

??????????--exclude=PATH:表示指定排除不需要傳輸的文件,等號后面跟文件名,可以是萬用字符模式(如*.txt

??????????--delete:表示刪除DSTSRC沒有的文件

??????????-L:會把軟鏈接指向的目標文件復制到對端目錄中

??????????-e:指定使用ssh還是其他方式來數據同步

主要案例:主要案列:本地模式 rsync -avz /tmp/ /oldboy/

??????????使用遠程ssh來傳遞文件:rsync -avz /etc/hosts -e 'ssh -p 22' oldboy@192.168.229.101:/home/oldboy/?ssh key (免密鑰的方式)

?

124.mail:郵件服務

主要選項:-s 指點郵件主題

vim /etc/mail/rc 編輯郵件服務配置文件

set from=xujun1270@163.com

set smtp=smtp.163.com

set smtp-auth-user=xujun1270@163.com

set smtp-auth-password=xujun66207383

set smtp-auth=login

主要案列:mail -s “標題”?郵件地址<文件

??????????mial -s oldboy837367121@qq.com?</etc/hosts

??????????echo “正文”|mail -s “oldboy”?837367121@qq.com

?

125.umount:卸載掛載服務

主要選項:-f 強制卸載

??????????-l 并不是馬上umount,而是在該目錄空閑后再umount

主要案例:umount -lf /mnt

??????????lsof /mnt ?當umount /mnt無法卸載的時候,可以使用這個命令,來查看是否有進程在使用中

?

126.showmount:查看掛載

主要選項:-e 顯示NFS服務輸出的目錄列表

主要案例:showmount -e 10.0.0.14

?

127.inotifywait:在被監控的文件或目錄上等待特定文件系統時間(openclosedelete)發生,執行后處于阻塞狀態,適合在shell腳本中使用

主要參數:-r 遞歸查詢目錄

??????????-q 打印監控事件的信息

??????????-m 始終保持事件監聽狀態

??????????--excludei 排除文件或目錄時,不區分大小寫

??????????--timefmt 指定時間輸出的格式

??????????--format 打印使用指定的輸出類似格式字符串

??????????-e 通過此參數可以指定需要監控的時間,如下所示:

??????????access 文件或目錄被讀取

??????????modify 文件或目錄內容被修改

??????????attrib 文件或目錄屬性被改變

??????????close 文件或目錄封閉,無論讀/寫模式

??????????open 文件或目錄被打開

??????????moved_to 文件或目錄被移動至另外一個目錄

??????????move 文件或目錄被移動另一個目錄或從另一個目錄移動至當前目錄

??????????create 文件或目錄被創建在當前目錄

??????????delete 文件或目錄被刪除

??????????unmount 文件系統被卸載

主要案列:inotifywait -mrq --format ‘%w%f’?-e create,delete /backup 實時監控backup某個事件的狀態

?

128.sersync:實時同步工具 *

主要選項:-d 啟用守護進程模式

??????????-r 在監控前,將監控目錄與遠程主機用rsync命令推送一遍

??????????-n 指定開啟守護進程的數量,默認為10

??????????-o 指定配置文件,默認使用confxml.xml文件

主要案例:/application/sersync_installdir_64bit/sersync/bin/sersync -d -r -n 8 -o /application/sersync_installdir_64bit/sersync/conf/confxml.xml

?

129.watch:周期性執行程序,打印到目錄,默認2

主要選項:-n 指定秒

??????????-d--differences??-d--differences?選項watch?會高亮顯示變化的區域。?-d=cumulative選項會把變動過的地方(不管最近的那次有沒有變動)都高亮顯示出來

主要案例:watch?-n?1?-d?netstat?-ant

?

130.sshlinux ssh客戶端工具 *

主要選項:-p 指定端口

??????????-t 打開終端

主要案例:ssh -p22 xujun@172.16.1.52

?

131.scp:遠程復制 *

主要選項:-P 指定端口

??????????-r 復制目錄

??????????-p 保持屬性

??????????-l 限速

主要案例:scp -P22 -rp /etc xujun@192.168.203.61:/tmp

?

132.help:內置命令的幫助 *

主要案列:help cd

?

133.hashshell搜尋到的外部命令的路徑結果會緩存至內存緩存中

主要選項:-d 指定刪除某個命令

??????????-r 清空所有

主要案例:hash -d help

??????????hash -r

?

134.wget:下載命令 *

主要選項:-q 不顯示下載過程

??????????-O 指定文件名

??????????-b 在后臺執行下載操作

??????????-c 斷點續傳

??????????--spider 爬蟲,檢查網站是不是好的,不會下載,只會檢查

??????????-T, timeout=SECONDS 設定響應超時的秒數

??????????--tries=2 指定重試的次數

??????????--limit-rate=amount 以指定的速率傳輸文件

主要案例:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

?

135.curl 下載工具 *

主要參數:-I 查看響應header信息

??????????-s 安靜的

??????????-w 獲取狀態碼

??????????-o 把輸出寫到該文件中

主要案例:[root@m01 ~]# curl www.etiantian.org

www

[root@m01 ~]# curl bbs.etiantian.org

bbs

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

?

136.rpm RPMRPM軟件包的管理命令 *

Rpm包的命名格式:redis-3.0.2-1.centos7.x64.rpm

???????????????????3.0.2-1是版本號

???????????????????Centos7是適用于哪個平臺

???????????????????x6432位還是64位系統

主要選項:-a 查看所有軟件包

??????????-f 查看指定文件的軟件包

??????????-q 使用詢問模式,當遇到任何問題時。Rpm會先詢問用戶

??????????-l ?顯示軟件包的文件列表

??????????--nodeps 忽略軟件包的依賴關系強行安裝

??????????-e 刪除指定的軟件包

??????????--force??忽略軟件包及文件的沖突

??????????-h 軟件包安裝時列出標記

??????????-v 打印輸出

??????????-U 升級指定的軟件包

??????????-i 安裝軟件包

??????????-c 查詢指定的程序提供的配置文件

??????????-i 程序包相關的信息,版本號,大小,所屬的包組等

??????????-d 查詢指定的幫助文檔

??????????-R 查詢指定包的依賴關系

??????????--replacepkgs 重新安裝

??????????--noslgnature 不檢查包簽名信息,不檢查來源合法性

??????????--nodigest ???不檢查包完整性信息

??????????--force ?強制升級

??????????--allmatches 卸載所有匹配指定名稱的程序包的各版本

??????????--whatrequires 查詢指定的命令或者文件被哪個包所依賴

主要案例:

-ivh:安裝顯示安裝進度--install--verbose--hash
-Uvh:升級軟件包--Update;
-qpl: 列出RPM軟件包內的文件信息[Query Package list];
-qpi:列出RPM軟件包的描述信息[Query Package install package(s)];
-qf:查找指定文件屬于哪個RPM軟件包[Query File];
-Va:校驗所有的 RPM軟件包,查找丟失的文件[View Lost];
-e:刪除包

rpm -q samba //查詢程序是否安裝

rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路徑安裝并顯示進度
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm??? //指定安裝目錄

rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用來檢查依賴關系;并不是真正的安裝;
rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降級為舊版本

rpm -qa | grep httpd      #[搜索指定rpm包是否安裝]--all搜索*httpd*
rpm -ql httpd         #[搜索rpm包]--list所有文件安裝目錄

rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
rpm -qpR file.rpm       #[查看包]依賴關系
rpm2cpio file.rpm |cpio -div??? #[抽出文件]

rpm -ivh file.rpm  #[安裝新的rpm]--install--verbose--hash
rpm -ivh?http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
rpm -Uvh file.rpm??? #[升級一個rpm]--upgrade
rpm -e file.rpm????? #[刪除一個rpm包]--erase

rpm -ivh --aid *.rpm ?????#--aid參數解決RPM包循環依賴的問題

rpm -qf $(which inotifywait) #查找命令所在的軟件包

rpm -ivh --replacepkgs 安裝包 ????#重新安裝

?

137.yumlinux包管理器 *

主要選項:-y(當安裝過程提示選擇全部為"yes"

??????????--nogpgcheck 禁止進行gpg check

??????????-q 靜默模式

??????????--disablerepo=repoidglob 臨時禁用此處指定的repo

??????????--enablerepo=repoidglob 臨時啟用此處指定的repo

??????????--noplugins 禁用所有插件

??????????顯示倉庫列表:repolist [all|enabled|disabled]

顯示程序包:list

???? ???????????# yum list [all | glob_exp1] [glob_exp2] [...]

???? ???????????# yum list {available|installed|updates} [glob_exp1] [...]

安裝程序包:install package1 [package2] [...]

reinstall package1 [package2] [...] ?(重新安裝)

升級程序包:update [package1] [package2] [...]

downgrade package1 [package2] [...] (降級)

檢查可用升級:check-update

卸載程序包:remove | erase package1 [package2] [...]

查看程序包informationinfo [...]

查看指定的特性(可以是某文件)是由哪個程序包所提供:provides | whatprovides feature1 [feature2] [...]

?

?

清理本地緩存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

搜索:search string1 [string2] [...]??以指定的關鍵字搜索程序包名及summary信息;

查看指定包所依賴的關系:deplist package1 [package2] [...]

查看yum的事務歷史:yum history

[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

注意:yum -y update 升級所有包同時也升級軟件和系統內核

??????yum -y upgrade 只升級所有包,不升級軟件和系統內核

主要案例:yum -y install tree

??????????怎么使用YUM命令升級所有RPM軟件包?

??????????yum update

??????????怎么使用YUM命令升級單個RPM軟件包

??????????yum update 軟件名稱

??????????使用YUM安裝RPM軟件包

??????????yum install 軟件名稱

??????????yum repolist 查看當前系統使用的源

??????????yum list 查看yum源所有已安裝的和未安裝的包

??????????yum grouplist 列出所有安裝過的和未安裝的套件

??????????yum provides COMMAND

?

138.kill 結束進程,但是后面只能加上pid進程的號碼 *

常用信號:1 無須關閉進程而讓其重讀配置文件

??????????2 終止正在運行的進程,相當于Ctrl+c

??????????3 退出正在運行的進程

??????????9 殺死運行中的進程(慎用)

??????????15 終止運行中的進程

??????????18 繼續

??????????19 暫停

主要案例:kill 3268

?????????kill -9 pid 很危險,無論這個進程是否存在,都會殺死

?

139.killall命令使用進程的名稱來殺死進程

主要案例:killall rsync

?

140.pkill 可以殺掉指定名字的進程,還可以根據各種屬性殺掉進程(進程名可以不是全名,但必須是唯一) *

主要案例:pkill rsync

??????????pkill rsyn

?

141.pstree 把進程已樹狀結構列出 *

主要案例:[root@db02 ~]# pstree

init─┬─atd

?????├─crond

?????├─6*[mingetty]

?????├─mysqld_safe───mysqld───21*[{mysqld}]

?????├─rsyslogd───3*[{rsyslogd}]

?????├─sh───mysqld───23*[{mysqld}]

?????├─sshd───sshd───bash───pstree

?????└─udevd───2*[udevd]

?

142.ps 顯示當前運行的進程 *

??????主要選項:a 所有與終端相關的進程

????????????????x 所有與終端無關的進程

????????????????u 以用戶為中心組織進程狀態信息顯示

????????????????o 自定義要顯示的字段列表,以逗號分隔

??????????????????常用的fieldpidnipripsrpcpustatcommttyppid

????????????????-e 顯示所有進程

????????????????-f 顯示完整格式的進程信息

????????????????-F 顯示更加完整格式的進程信息

????????????????-H 以層級結構顯示進程的相關信息

主要案例:常用組合之一:aux

??????????常用組合之二:-ef

??????????常用組合之三:-eFH

??????????常用組合之四:-eo或者axo

?

143.pidof 根據進程名,取其pid

主要案例:pidof sshd

?

144.top 實時顯示系統中各個進程的資源占用情況 *

主要選項:-d 指定刷新時間間隔,默認為3

??????????-b 以批次方式顯示

??????????-n 顯示多少批次

主要案例:top顯示,按q退出

??????????top -b -n 1

?

145.htop top更加好的命令

注意:htop是一個新的命令,所以linux系統中是沒有,需要yum install htop -y,但是yum之前,需要更新一下epolwget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

主要選項:-d 指定延遲時間間隔

??????????-u 僅顯示指定用戶的進程

??????????-s 以指定字段進行排序

主要案列:htop

?

146.vmstat 顯示系統中各個進程的資源占用情況

主要選項:-s 顯示內存統計數據

主要案例:[root@db02 ~]# vmstat 2 ??#每隔兩秒進行一次監控

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

?r ?b ??swpd ??free ??buff ?cache ??si ??so ???bi ???bo ??in ??cs us sy id wa st

?0 ?0 451020 ?64936 ?23864 148060 ???0 ???2 ????3 ????2 ??16 ??64 ?0 ?0 100 ?0 ?0

vmstat每一列的解釋:

procs:

????r:等待運行的進程的個數。CPU上等待運行的任務的隊列長度

????b:處于不可中斷睡眠態的進程個數,被阻塞的任務隊列的長度

memory:

????swpd:交換內存使用總量

????free:空閑的物理內存總量

????buffer:用于buffer的內存總量

????cache:用于cache的內存總量

swap:

????si:數據進入swap中的數據速率

????so:數據離開swap的速率

lo:

????bi:從塊設備讀入數據到系統的速度

????bo:保存數據至塊設備的速率

system:

????in:中斷速率

????cs:上下文,切換的速率

cpu:

????us:user space

????sy:system

????id:idle

????wa:wait

????st:stolen

?

147.glances 實時顯示系統中各個進程的資源占用情況

主要選項:-b byte為單位顯示網上數據速率

??????????-d 關閉磁盤I/O模塊

??????????-m 關閉mount模塊

??????????-n 關閉network模塊

??????????-t 刷新時間間隔

??????????-1 每個cpu的相關數據單獨顯示

??????????-o 輸出格式

??????????-f 設定輸出文件的保存目錄

主要案例:glances

?

?

148.dstat 實時顯示系統中各個進程的資源占用情況 *

主要選項:-c 顯示cpu的相關信息

??????????-d 顯示磁盤的相關信息

??????????-g 顯示page相關的統計數據

??????????-m 顯示內存的相關統計數據

??????????-n 顯示網絡的相關統計數據

??????????-p 顯示進程的相關統計數據

??????????-r 顯示io請求的相關的統計數據

??????????-s 顯示swqpped的相關統計數據

??????????--tcp

??????????--udp

??????????--raw

??????????--socket

??????????--top-cpu 顯示最占用cpu的進程

??????????--top-io 顯示最占用io的進程

??????????--top-mem 顯示最占用內存的進程

??????????--top-lantency 顯示延遲最大的進程

主要案列:

?

149.fpm 簡易的rpm打包軟件 *

主要選項:-s 指定源類型

??????????-t 指定目標類型

??????????-n 指定包的名字

??????????-v 指定包的版本號

??????????-C 指定打包的相對路徑

??????????-d 指定依賴于哪些包

??????????-f 第二次打包時如果有同名安裝包存在,則覆蓋

??????????-p 輸出的安裝包的目錄,不想放在當前目錄下就需要指定

??????????-post-install 軟件包安裝完成之后所要運行的腳本

??????????-pre-install 軟件包安裝完成之前所要運行的腳本

??????????-post-uninstall 軟件包卸載完成之后所要運行的腳本

??????????-pre-uninstall 軟件包卸載完成之前所要運行的腳本

主要案列:fpm -s dir -t rpm -n nginx -v 1.6.3 -d 'pcre-devel,openssl-devel' --post-install /sercer/scripts/nginx_rpm.sh -f /application/nginx-1.6.3/

?

150.ulimit 用來限制系統用戶對shell資源的訪問。如果不懂什么意思,下面一段內容可以幫助你理解: 假設有這樣一種情況,當一臺 Linux 主機上同時登陸了 10 個人,在系統資源無限制的情況下,這 10 個用戶同時打開了 500 個文檔,而假設每個文檔的大小有 10M,這時系統的內存資源就會受到巨大的挑戰。 而實際應用的環境要比這種假設復雜的多,例如在一個嵌入式開發環境中,各方面的資源都是非常緊缺的,對于開啟文件描述符的數量,分配堆棧的大 小,CPU 時間,虛擬內存大小,等等,都有非常嚴格的要求。資源的合理限制和分配,不僅僅是保證系統可用性的必要條件,也與系統上軟件運行的性能有著密不可分的聯 系。這時,ulimit 可以起到很大的作用,它是一種簡單并且有效的實現資源限制的方式。 ulimit 用于限制 shell 啟動進程所占用的資源,支持以下各種類型的限制:所創建的內核文件的大小、進程數據塊的大小、Shell 進程創建文件的大小、內存鎖住的大小、常駐內存集的大小、打開文件描述符的數量、分配堆棧的最大大小、CPU 時間、單個用戶的最大線程數、Shell 進程所能使用的最大虛擬內存。同時,它支持硬資源和軟資源的限制。 作為臨時限制,ulimit 可以作用于通過使用其命令登錄的 shell 會話,在會話終止時便結束限制,并不影響于其他 shell 會話。而對于長期的固定限制,ulimit 命令語句又可以被添加到由登錄 shell 讀取的文件中,作用于特定的 shell 用戶。

主要參數:-a:顯示目前資源限制的設定;

??????????-H:設定資源的硬性限制,也就是管理員所設下的限制;

??????????-n <文件數目>:指定同一時間最多可開啟的文件數;

??????????-S:設定資源的彈性限制;

主要案列:ulimit -SHn 65535

?

151.hwclock 顯示硬件時鐘

主要選項:-s 讓系統時間同步硬件時間

??????????-w 讓硬件時間同步系統時間

主要案列:hwclock

?

152.groupmod 組屬性修改

主要參數:-n 修改組名

??????????-g 新的GID

主要案例:groupmod -g 1000 oldboy

?

153.gpasswd 組密碼修改 *

主要參數:-a 將用戶添加至指定組中

??????????-d 從組中移除用戶

??????????-A 設置有管理權限的用戶列表(設置之后,在sudo管理文件可以看見)

??????????-M 添加多個用戶到一個組

主要案例:gpasswd -a oldboy test

??????????gpasswd -A oldboy oldgirl root

?

154.newgrp 臨時切換基本組

??????????如果用戶不屬于此組,則需要組密碼

主要參數:- 會模擬用戶重新登陸以實現重新初始化其工作環境

主要案例:newgrp test

?

155.iconv 用來轉換文件的編碼方式

?

?

156.ss 網絡狀態工具(比netstat更加強大的工具) *

主要參數:-h, --help 幫助信息

??????????-n, --numeric 不解析服務名稱

??????????-r, --resolve 解析主機名

??????????-o, --options 顯示計時器信息

??????????-e, --extended 顯示詳細的套接字(sockets)信息

??????????-p, --processes 顯示使用套接字(socket)的進程

??????????-i, --info 顯示 TCP內部信息

??????????-s, --summary 顯示套接字(socket)使用概況

??????????-t, --tcp 僅顯示 TCP套接字(sockets

??????????-u, --udp 僅顯示 UCP套接字(sockets

??????????-d, --dccp 僅顯示 DCCP套接字(sockets

??????????-l 監聽狀態的連接

??????????-a 所有狀態的連接

??????????-m 內存用量

主要案例:ss -lntup|grep rsync

tcp ???LISTEN ????0 ?????5 ????????????????????:::873 ?????????????????:::* ?????users:(("rsync",1329,5))

tcp ???LISTEN ????0 ?????5 ?????????????????????*:873 ??????????????????*:* ?????users:(("rsync",1329,3))

?

157.sshpass 非交互的ssh操作

主要參數:-p 端口

主要案列:sshpass -p66207383 ssh 172.16.1.7 hostname

?

158.set 設置shell *

主要參數:-C 禁止使用輸出重定向覆蓋已存在的文件 如果想強制覆蓋輸出,可使用:>|

主要案例:set -C 禁止使用輸出重定向覆蓋已存在的文件

??????????set +C 關閉上訴功能

?

159.install 安裝或升級軟件或備份數據,它的使用權限是所有用戶。install命令和cp命令類似,都可以將文件/目錄拷貝到指定的地點。但是,install允許你控制目標文件的屬性。install通常用于程序的makefile,使用它來將程序拷貝到目標(安裝)目錄。

主要參數:-m 設定目標文件權限,默認為755

??????????-o 設定目標文件屬主

??????????-g 設定目標文件屬組

??????????-d 創建目錄

主要案列:install -m 644 /etc/passwd /tmp/

??????????install -m 644 -o xujun -g oldboy /etc/passwd /tmp/

??????????install -d xujun/

?

160.mktemp 創建一個臨時的隨機命名的文件或者目錄 注意:一個月之后就會被刪除

主要參數:-d 創建臨時目錄

主要案列:mktemp /tmp/xujun.xxx

?

161.uptime 查看系統平均負載 *

主要案例:[root@db02 ~]# uptime

?14:02:28 up 6 days, ?4:06, ?1 user, ?load average: 0.00, 0.00, 0.00

1.當前時間為:14:02:28

2.系統已運行的時間:6 days, ?4:06

3.當前在線用戶:1 user

4.平均負載:0.00, 0.00, 0.00,最近1分鐘、5分鐘、15分鐘系統的負載

?

162.export 查看環境變量 *

主要案例:[root@db02 ~]# export

declare -x MAIL="/var/spool/mail/root"

declare -x MODULEPATH="/usr/share/Modules/modulefiles:/etc/modulefiles"

declare -x MODULESHOME="/usr/share/Modules"

declare -x OLDPWD

declare -x PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

declare -x PWD="/root"

declare -x SHELL="/bin/bash"

declare -x SHLVL="1"

declare -x SSH_CLIENT="10.0.0.1 62252 22"

declare -x SSH_CONNECTION="10.0.0.1 62252 10.0.0.52 22"

declare -x SSH_TTY="/dev/pts/1"

declare -x TERM="xterm"

declare -x USER="root"

?

163.readonly 只讀變量

注意:只讀變量無法重新賦值,并且不支持撤銷。存活時間為當前shell進程的生命周期,隨shell進程終止而終止

主要案例:readonly name

?

164.patch 向文件打補丁

主要選項:-i 讀取指定的修補文件

主要案列:patch xujun.new xujun.txt

?

165.訪問控制列表facl:文件的額外賦權機制,在原來的ugo之外,另一層讓普通用戶能控制賦權給另外用戶或組的賦權機制

getfacl命令:查看訪問控制列表

???????getfacl FILE.......

setfacl命令:設置訪問控制列表

???????賦權給用戶:

???????setfacl -m u:USERNAME:MODE FILE......

???????賦權給組:

???????setfacl -m g:GROUPNAME:MODE FILE.....

???????撤銷賦權:

???????setfacl -x u:USERNAME FILE.....

???????setfacl -x g:GROUPNAME FILE.....

?

166.mke2fs:ext系列文件系統專用管理工具

主要選項:-t 指定要創建的文件系統類型

??????????-b 指定文件系統的塊大小

??????????-L 指明卷標

??????????-J 創建有日志功能的文件系統

??????????-i 指定inode與字節的比率。即每多少字節創建一個inode

??????????-N 直接指明要給此文件系統創建的inode數量

??????????-O 已指定的特性創建目標文件系統

??????????-m 指定預留的空間

主要案例:mke2fs -t ext4 /mnt/xujun/

?

167.e2label:卷標的查看與設定

查看:e2label device

設定:e2label device LABEL

?

168.blkid:查看文件系統信息

主要選項:-L 根據LABEL定位設備

??????????-U 根據UUID定位設備

主要案例:blkid /dev/sda3

?

169.watch:實時監控每一條命令執行的結果動態變化

主要選項:-n #:刷新間隔,單位是秒

主要案例:watch -n 2 `ifconfig`

?

170.pvdisplay:顯示卷組中一個或多個物理卷的信息(LVM專用)

?

171.pvcreate:創建一個可以被卷組使用的物理卷(LVM專用)

?

172.vgdisplay 顯示卷組信息(LVM專用)

?

173.vgcreate 創建一個卷組(LVM專用)

?

174.vgremove 從系統上刪除一個或多個卷組的定(LVM專用)

?

175.vgextend 通過添加物理卷擴展一個卷組(LVM專用)

?

176.vgreduce 通過刪除一個或多個物理卷減小卷組(LVM專用)

?

177lvdisplay 顯示邏輯卷的信息(LVM專用)

?

178.lvcreate 在卷組中創建一個邏輯卷(LVM專用)

主要參數:-L 指定邏輯卷大小

??????????-s 創建快照(類似于虛擬機上面的快照)

??????????-n 指明邏輯卷的名字

??????????-p 指明快照的權限(rw

主要案例:lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name

?

179.lvextend 增加分配給邏輯卷的物理區域數(LVM專用)

主要參數:-L 指定邏輯卷大小

?

180.lvreduce 減少分配給邏輯卷的物理區域數(LVM專用)

主要參數:-L 指定邏輯卷大小

?

181.lvremove 從卷組中刪除一個或多個邏輯卷(LVM專用)

主要案例:lvremove /dev/VG_NAME/LV_NAME

?

182.gzip 壓縮工具(一般壓縮以后,文件的后綴名是gz

主要參數:-d: 解壓縮,相當于gunzip

-c: 將結果輸出至標準輸出;

-#1-9,指定壓縮比,默認為6

主要案例:gzip ?[OPTION]... FILE ...

?

183.zcat:可以直接查看gz結尾的壓縮文件

主要案例:zcat xujun.gz

?

184.bgzip2:也是一個壓縮工具(后綴名是bz2

主要參數:-k: keep, 保留原文件;

-d:解壓縮

-#1-9,壓縮比,默認為6

主要案例:bzip2 [OPTION]... FILE ...

?

185.bzcat:可以直接查看bz2結尾的壓縮文件

主要案例:bzcat xujun.bz2

?

186.xz:壓縮工具(后綴名是xz

主要參數:-k: keep, 保留原文件;

-d:解壓縮

-#1-9,壓縮比,默認為6

主要案例:xz?[OPTION]... FILE ...

?

187.xzcat:可以直接查看xzcat結尾的壓縮文件

主要案列:xzcat xujun.xz

?

188.at:一次性任務計劃(這條命令要啟用,需要開啟進程atd,開啟用/etc/init.d/atd?start?or?restart

TIME:(時間格式,這里可以定義出什么時候要進行at這項任務的時間,選項有以下幾項)

??????HH:MM[YYYY-MM-DD]

??????noon,midnight,teatime

??????tomorrow

??????now+

主要參數:-l 查看作業隊列

??????????-f<文件>?從指定文件讀入任務而不是從標準輸入讀入

??????????-d 刪除指定的作業

??????????-c 查看指定作業的具體內容

??????????-q 指明隊列

主要案例:# at now+2min

at> echo "wo ai ni"

at> ls -l /root

退出按ctrl+d

注意:作業執行結果是以郵件方式發送給用戶

?

189.lsmod:列出內核已載入模塊的狀態(幾乎用不到)

lsmod以美觀的方式列出/proc/modules的內容

主要案例:lsmod

?

190.modinfo:顯示內核模塊的信息(幾乎用不到)

主要選項:-F 僅顯示指定字段的信息

??????????-n 顯示文件路徑

主要案例:modinfo [ -0 ] [ -F field] [modulename | filename ... ]

?

191.modprobelinux內核添加刪除模塊(幾乎用不到)

主要案例:modprobe [-r] module_name

??????????模塊的動態裝載:modprobe module_name

??????????動態卸載:modprobe -r module_name

?

192.depmod:分析可加載模塊的依賴性,生成modules.dep文件和映射文件(幾乎用不到,只是了解一下)

?

193.insmod:向linux內核中插入一個模塊(幾乎用不到)

主要案例:insmod [filename] [modue options ...]

?

194.rmmod:刪除內核中的一些模塊(幾乎用不到)

主要案例:rmmod [ -f ] [ -w ] [ -s ] [ -v ] [ modulename ]

?

195.mkinitrd:為當前使用中的內核重新制作ramdisk文件(幾乎用不到,只是了解)

主要案例:

?

?

196.dracut命令(幾乎用不到,只是了解)

?

?

197.nload 查看網卡流量

安裝過程:1.yum install -y epel-release

??????????2.yum install -y nload

主要案列:nload

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?


版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/156290.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息