Linux 經常使用命令筆記

一、mkdir : 建立目錄,make directorys,-p 遞歸建立目錄php

mkdir-p /a/b/chtml

二、ls  : -l(long)d(directory)顯示目錄或文件,全稱list前端

-l#列出文件的詳細信息,如建立者,建立時間,文件的讀寫權限列表等等node

-d#只查看目錄mysql

-F#會在不一樣類型的文件後面加上*/=>@|等符號,以便區分不一樣類型文件linux

-p#會在目錄後面加上/,以便區分目錄和文件ios

-h#人類可讀模式,顯示K、M、Gweb

-i#顯示inode,也就是文件的index number正則表達式

-r#依相反次序排列,–reverse算法

-R#列出全部子目錄層, –recursive

-t#按修改時間進行文件的排序,-modificationtime

-s#在每一個文件的後面打印出文件的大小,-size

-a#列出文件下全部的文件,包括以「.「開頭的隱藏文件

-A#列出除了".「和」…"之外的文件。

–color=auto #添加顏色

–time-style=STYLE#style值可選full-iso,long-iso(最優), iso, locale

ll --time-style=long-iso install.log (顯示效果最好)

-rw-r–r--. 1 root root 62057 2017-01-14 14:32install.log

ll --time-style=full-iso install.log

-rw-r–r--. 1 root root 62057 2017-01-1414:32:36.206994569 +0800 install.log

ll --time-style=iso install.log

-rw-r–r--. 1 root root 62057 01-14 14:32 install.log

ll --time-style=locale install.log

-rw-r–r--. 1 root root 62057 Jan 14 14:32 install.log

三、cd : 切換目錄層次change directory

~表示家目錄,

-表示上一次的目錄

cd~

cd/tep/fq

cd/root

cd-  # 回到/tep/fq

四、pwd : 顯示當前目錄

pwd

五、echo : 打印輸出內容(printf複雜的輸出)

參數:

-n : 不換行輸出

-e : 激活轉義字符\,可使用如下轉義字符

\a    alert (BEL)

\b    backspace

\c    produce no further output

\e    escape

\f    form feed

\n    new line            #換行

\r    carriage return

\t    horizontal tab     #水平tab鍵

\v    vertical tab       #垂直tab鍵

示例:

echo"abce"

echo -n’abcd’;echo ‘efg’

echo -e"hello\tworld"

hello  world

echo -e"hello\nworld"

hello

world

echo -e 「hello\vworld」

hello

world

輸出命令的結果:

a、用反引號``(tab鍵上)

echo date +%F

b、用$()

echo $(date +%F)

六、vi/vim : 記事本編輯器

:set nu 顯示行號

settabstop=4  一個tab爲4個空格長度

set ai  設置自動縮進

syntax on   高亮

dd      刪除當前行

yy      複製當前行

p       粘貼

行號gg 定位到指定行號

G       切換到文件尾

gg      切換到文件首

^或0:(注意是數字零)光標移至當前行首

$:光標移至當前行尾

七、cat : 查看文件內容(concatenate)

cat/etc/hosts

cat-n /etc/hosts  #顯示行號

cat>>a.txt<<EOF   #將EOF之間所全部數據追加到a.txt尾部

EOF

八、cp  : -apr 拷貝文件或目錄

cpa.txt /tmp/

cp-r a /tmp  #將目錄a拷貝到tmp

cp-a a /tmp  #-a = -dpr

九、mv : 移動文件或目錄,也可更名(rename命令)

mva.txt /tmp

mva.txt b.txt  #將a.txt改成b.txt

十、rm :  刪除文件

-f強制刪除文件

-r遞歸刪除文件或目錄

-fr刪除指定的目錄和文件

rm-fr /tmp/*

十一、rmdir : 刪除空目錄

十二、head : 顯示文件前幾行,默認10行

-n行數

head-n 500 a.txt

head-500 a.txt

1三、tail : 監控文件的變化

-n行數,顯示文件後幾行,默認10行;

-f跟蹤文件結尾變化,若是文件被刪除後重建,不會顯示新的變化

-F跟蹤文件結尾變化,會嘗試從新鏈接文件,若是文件被刪除後重建,會顯示新的變化

tail-n 500 a.txt

tail-500 a.txt

相似命令:tailf。

tailf至關於tail -f,相似於tail -f,嚴格說來應該與tail –follow=name更類似些。

與tail -f不一樣的是,若是文件不增加,它不會去訪問磁盤文件,因此省電,並減小了磁盤訪問

1四、alias : 顯示設置的別名,ualias取消別名

能夠在/etc/profile、/etc/bashrc中配置全局別名。在用戶家目錄.bashrc配置用戶別名

alias grep=‘grep --color=auto’

1五、tac : 反轉內容輸出(cat反寫)

cata.txt | tac

1六、which : 查看命令所在的路徑

whichntpdate

/usr/sbin/ntpdate

1七、find : 查找命令,

-typef      按類型(f:文件 d:目錄)

-namefilename   按文件名

-perm        按權限查找

-mtime       按修改時間, +n表示n天前,-n表示最近的n天,n表示第n天

-prune       忽略某個目錄,如查沒有-depth參數,則-prune則有效,並表示不深刻到目錄裏面。(難以理解,見下面練習題第二關中的說明)

-mindepth    限定搜索指定目錄的最小深度

-maxdepth    限定搜索指定目錄的最大深度

!        排除

-o           或,等於-or

-and         而且,條件之件默認爲-and

find/ -type -f -name aaa        #查找文件名爲aaa的文件

find. -maxdepth 1 -type d ! -name 「.」  #只查找1層,類型是目錄,目錄名不含有.的目錄

find/bin -type f -perm 4755  -exec ls -l {};  #查找有特殊權限的命令

1八、tree : 查看目錄結構

-d  顯示目錄

-L  要顯示層級

tree/

tree-L 1 / : 只顯示一層結構

1九、xargs:用於把其它命令的輸出交給後面的命令處理

find /tmp -typef -name aa | xargs rm –fr

find ./ -type f  -print0| xargs -0 md5sum >> md5_rc1.txt

後一種是適用於文件名含有空格的文件。一般xargs用於隔斷文件是默認爲:空格、TAB、換行符等,-print0則是以NULL隔斷文件,xargs -0 就是以NULL來區分文件隔斷。

20、whoami : 查看當前命令行終端用戶

2一、w : 查看當前登錄的用戶和作什麼

2二、su:切換用戶

參數:

-c<指令>或–command=<指令>:執行完指定的指令後,即恢復原來的身份

-f或——fast:適用於csh與tsch,使shell不用去讀取啓動文件

-或-l或——login:改變身份時,也同時變動工做目錄,以及HOME,SHELL,USER,logname。此外,也會變動PATH變量

-m,-p或–preserve-environment:變動身份時,不要變動環境變量

-s或–shell=:指定要執行的shell

–help:顯示幫助

–version;顯示版本信息。

示例:

su - root

2二、sudo :讓普通用戶能夠擁有指定的root權限功能,需root用戶提早受權

sudouseradd kkk

2三、rpm : 軟件安裝命令

rpm-ivh :安裝

rpm-e :卸載

rpm-e --nodeps :不考慮依賴,強行卸載

2四、whereis: locate thebinary, source, and manual page files for a command

whereis-b mkdir

mkdir:/bin/mkdir

2五、uname : 查看系統版本

-a:

-r:

-m:

uname-a

2六、halt:關機 (init 0)

2七、reboot 重啓(init 6)

2八、shutdown

shutdown-r now : 重啓

shutdown-h now : 關機

2九、lsb_release:顯示系統版本

lsb_release-a

30、lastlog : 查看用戶是否登陸過

3一、last : 查看最後登錄過的用戶列表

3二、file : 查看文件類型

3三、ln : 建立連接文件

硬連接:源文件與目標文件的inode號碼相同,都指向同一個inode

ln 源文件 目標文件

軟連接:至關於windows中的快捷方式

ln -s 源文件 目標文件

ln -s /abc/def/ghi/jk/ /tmp/jk/

能夠經過readlink 軟連接名,來查看軟連接信息

3四、stat : 查看文件信息

參數:

-L, --dereference #follow links

-Z, --context #print the SELinux security context

-f, --file-system #display file system status instead of file status

-c  --format=FORMAT #格式化輸出

-t, --terse #print the information in terse form

The valid format sequences for files (without --file-system):

%a     Access rights in octal(八進制權限644)

%A     Access rights in humanreadable form(人類可讀模式rw-r–r--)

%b     Number of blocks allocated(see %B)(取stat信息中的Blocks: 後面的值)

%B     The size in bytes of eachblock reported by %b

%C     SELinux security contextstring

%d     Device number in decimal

%D     Device number in hex

%f     Raw mode in hex

%F     File type

%g     Group ID of owner

%G     Group name of owner

示例:

stat install.log

File: `install.log’

Size: 62057       Blocks: 136    IO Block: 4096   regular file

Device: 803h/2051d      Inode:391683      Links: 1

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

Access: 2017-01-01 23:32:26.238999717 +0800

Modify: 2017-01-02 00:00:41.324999404 +0800

Change: 2017-01-02 00:01:11.062999379 +0800

stat -c %B etiantian

512

stat -c %d etiantian

1792

stat -c %G etiantian

root

3五、df : 檢查linux服務器的文件系統的磁盤空間佔用狀況

df -hi

-a 所有文件系統列表

-h 方便閱讀方式顯示

-H 等於「-h」,可是計算式,1K=1000,而不是1K=1024

-i 顯示inode信息

-k 區塊爲1024字節

-l 只顯示本地文件系統

-m 區塊爲1048576字節

–no-sync 忽略 sync 命令

-P 輸出格式爲POSIX

–sync 在取得磁盤信息前,先執行sync命令

-T 文件系統類型

選擇參數:

–block-size=<區塊大小>指定區塊大小

-t<文件系統類型> 只顯示選定文件系統的磁盤信息

-x<文件系統類型> 不顯示選定文件系統的磁盤信息

–help 顯示幫助信息

–version 顯示版本信息

3六、less : 是對文件或其它輸出進行分頁顯示的工具(按屏顯示,能夠前滾(向下),也可回退(向上))

-N  #顯示行號

less a.txt

less -N a.txt

3七、more:是對文件或其它輸出進行分頁顯示的工具(按屏顯示,能夠前滾(向下),但不能回退(向上))

3八、man : 查看命令及配置文件的幫助

3九、touch :建立文件或修改文件時間戳

40、env : 顯示當前用戶的環境變量

4一、source : 讀取和執行配置文件

source/etc/sysconfig/i18n  或 . /etc/sysconfig/i18n

4二、netstat : 查看網絡狀態

[–tcp|-t]  [–udp|-u]   [–raw|-w]   [–listening|-l]   [–all|-a]  [–numeric|-n] [–program|-p]

netstat-lntup

netstat-an

4三、lsof :列出當前系統打開文件的工具(list open files)

參數:

lsof -c abc 顯示abc進程如今打開的文件
lsof -c -p 1234 列出進程號爲1234的進程所打開的文件
lsof -g gid 顯示歸屬gid的進程狀況
lsof +d /usr/local/ 顯示目錄下被進程開啓的文件
lsof +D /usr/local/ 同上,可是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用fd爲4的進程
lsof -i 用以顯示符合條件的進程狀況
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
  46 --> IPv4 or IPv6
  protocol --> TCP or UDP
  hostname --> Internet host name
  hostaddr --> IPv4地址
  service --> /etc/service中的 service name (能夠不止一個)
  port --> 端口號 (能夠不止一個)

輸出各列信息的意義

COMMAND:進程的名稱 PID:進程標識符

USER:進程全部者

FD:文件描述符,應用程序經過文件描述符識別該文件。如cwd、txt等 TYPE:文件類型,如DIR、REG等

DEVICE:指定磁盤的名稱

SIZE:文件的大小

NODE:索引節點(文件在磁盤上的標識)

NAME:打開文件的確切名稱

示例:

lsof -i :port    :查看端口狀況

lsof-i :22

COMMAND   PID USER  FD   TYPE  DEVICE SIZE/OFF NODE NAME

sshd     2776 root    3u IPv4   16724      0t0 TCP *:ssh (LISTEN)

sshd     2776 root    4u IPv6   16730      0t0 TCP *:ssh (LISTEN)

sshd 23312 root 3r IPv4 3417749 0t0 TCP LS-B:ssh->127.0.0.1:patrolview(ESTABLISHED)

4四、crontab命令

crontab–操做每一個用戶的守護程序和執行的時間表。

crontabfile [-u user]–用指定的文件替代目前的crontab。

crontab- [-u user]–用標準輸入替代目前的crontab。

crontab-l [user]–列出用戶目前的crontab。

crontab-e [user]–編輯用戶目前 的crontab 。

crontab-d [user]–刪除用戶目前 的crontab 。

crontab-c dir --指定crontab的目錄。

crontab文件的格式:M H D m d cmd

M:分鐘(0-59)

H:小時(0-23)

D:天(1-31)

m:月份(1-12)

d:一星期內的天(0-6,0爲星期天)

4五、history

history-d 9 #刪除指定行號的歷史記錄

history-c  #刪除全部歷史記錄

能夠經過配置HISTCONTROL=ignorespace環境變量來指定history命令不記錄敏感操做。如:

通常狀況會顯示:

history -c

mysql -uroot -p123456

histroy

mysql -uroot -p123456

history

使用HISTCONTROL

history -c

HISTCONTROL=ignorespace

mysql -uroot -p123456

histroy

HISTCONTROL=ignorespace

history

4六、seq:打印序列

seq-s 「,」 -f 「t%01g」 1 5

-s   :使用分隔符

「,」  :分隔符爲了英文逗號

-f   :格式化

%01g:1位浮點數

結果  :t1,t2,t3,t4,t5

4七、chkconfig

chkconfig-–list #列出全部的系統服務

chkconfig-–add httpd #增長httpd服務

chkconfig-–del httpd #刪除httpd服務

chkconfig-–level httpd 2345on #設置httpd在運行級別爲二、三、四、5的狀況下都是on(開啓)的狀態

chkconfig-–list #列出系統全部的服務啓動狀況

chkconfig-–list mysqld #列出mysqld服務設置狀況

chkconfig-–level 35 mysqldon #設定mysqld在等級3和5爲開機運行服務,–level 35表示操做只在等級3和5執行,on表示啓動,off表示關閉

chkconfigmysqld on #設定mysqld在各等級爲on,「各等級」包括二、三、四、5等級

4八、grep(三劍客之三)

參數:

-c:只輸出匹配行的計數。

-i:不區分大小寫(只適用於單字符)。

-h:查詢多文件時不顯示文件名。

-l:查詢多文件時只輸出包含匹配字符的文件名。

-n:顯示匹配行及行號。

-s:不顯示不存在或無匹配文本的錯誤信息。

-v:排除,顯示不包含匹配文本的全部行。

-e: 或的意思,可以使用多個條件

-E: 使用多個條件,至關於多個-e,需加雙引號

–color=auto #添加顏色

grep -E 至關於egrep

示例:

grep ‘test’ d*    # 顯示全部以d開頭的文件中包含 test的行。

grep ‘test’ aa bb cc  #顯示在aa,bb,cc文件中匹配test的行。

grep linuxtechi /etc/passwd:  #在/etc/passwd文件中查找單詞"linuxtechi"

grep -e EST -e WAIT /netstat.log      #在netstat.log中查找包含EST或WAIT的行

grep -E 「EST|WAIT」 /netstat.log       #在netstat.log中查找包含EST或WAIT的行

grep -v ^# /etc/ssh/sshd_config       #過濾文件/etc/ssh/sshd_config中全部的註釋

grep -Ev 「#|$」/etc/ssh/sshd_config #過濾文件/etc/ssh/sshd_config中全部的註釋和空行

4九、sed(三劍客之二)

說明

sed是一種在線編輯器,一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲模式空間(pattern space),接着用sed命令處理緩衝區的內容,處理完成後,把緩衝區的內容打印到屏幕。而後處理下一行,至文件末尾。此時,原文件的內容不會改變,除非用-i參數來指定sed修改原文件。sed的分隔符能夠是#,也能夠是/。

格式:

sed [-nefri] [n1[,n2]][command] 輸入文本

參數:

選項參數

-n:取消默認打印,只打印sed特殊處理的那一行。

-e:直接在指令列模式上進行sed的動做編輯。

-f:sed直接執行動做文件內的動做command。-f commandfile

-r:使用擴展的正則表達式(默認爲基礎正則表達式語法)

-i:直接修改讀取的文件的內容,不在由屏幕輸出

[n1[,n2]]

通常表示選擇要進行動做的行數。如動做要刪除在10行到20行之間的行:[10,20d]

command命令參數

a:新增。新增一行a後面的字符串(當前行的下一行)

c:取代。c後面的字符串能夠取代n1,n2之間的行

d:刪除。

i:插入。插入i後面的字符串(當前行的上一行)

p:打印。

s:替換。

小括號()分組功能

sed -nr ‘s#abc.∗.∗#\1#gp’

s###g中第1個#和第2個#之間的內容表示要查找的內容,能夠用正則表達式,其中用小括號()括起來的內容,能夠在第2個#和第3個#之間用\1來調用,第2個#和第3個#之間不能用正則表達式。如查前面有多個小括號,則\一、\二、…\n來表示第1個括號的內容,第2個括號的內容。。。第n個括號的內容。r表示使用正則表達式,g表示全局替換,p表示打印。因爲前面有-n取消了默認輸出,因此必須用參數p來打印過濾出的內容,不然什麼都不會輸出。

示例:

sed s#str1#str2#g filename:用str2替換str1,只打印,但不改原文件內容。-i:表示修改原文件內容

sed s#oldboylinux#mywindows#g ett.txt:將oldboylinux替換成mywindows

sed -i s#oldboylinux#mywindows#g ett.txt :此時ett.txt中的內容已被替換

sed -n 2p #顯示第2行

sed -n [2,5d] #刪除第二、三、四、5行

sed -n ‘/oldboylinux/p’ ett.txt #過濾出含有oldboylinux的行

echo ‘kkkddd’ | sed ‘s#kkkkkkdddddd#\1#g’             #kkk

echo ‘kkkddd’ | sed -r ‘s#(kkk)(ddd)#\1#g’             #kkk

echo ‘kkkddd’ | sed -r ‘s#(kkk)(ddd)#\1    \2#g’      #kkk    ddd

echo ‘kkkddd’ | sed -r ‘s#(kkk)(ddd)#\1 is a \2#g’    # kkk is a ddd

刪除ifconfig eth1的輸出先後的空格,並將內容中的相連的多個空格替換爲一個空格

ifconfig eth1 | sed -r ‘s# +# #g’ | sed -r ‘s#^ ##g’ | sed -r ‘s#+$##g’

在a.txt文件的第1行插入1行內容爲:wddglog

sed -i ‘1 i wddglog’ a.txt  #-i表示修改原文件,1表示第1行,i表示插入

50、awk(三劍客之一)

awk -F: ‘{print $1}’ /etc/passwd #以:爲分隔符,打印/etc/passwd中的第一列

-F:指定分隔符,默認分隔符爲空格。多個分隔符需用’[]’,’[]'內的所有爲分隔符,同時有效

$0:表示一行

$1:表示第一列

$n:表示第n列

$NF:表示最後一列

NR:表示行號

cat /etc/passwd | awk -F: ‘{print $1}’

echo 「I am oldboy,myqq is 49000448」 | awk -F ‘[ ,]’ ‘{print$3" "$6}’ #以空格和逗號爲分隔符

oldboy49000448

5一、tar:打包和壓縮/解壓縮命令

格式:

tar[必選參數+輔助參數] 包名  需打包的文件或目錄

參數:

必選參數

-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名

必選參數之只選一(五個是獨立的命令,壓縮解壓都要用到其中一個,能夠和別的命令連用但只能用其中一個。)

-c: 創建壓縮檔案

-x:解壓

-t:查看內容

-r:向壓縮歸檔文件末尾追加文件

-u:更新原壓縮包中的文件

可選參數

-z:有gzip屬性的

-j:有bz2屬性的

-Z:有compress屬性的

-v:顯示全部過程

-O:將文件解開到標準輸出

-P: 不提示

-C: 改變目錄

-X: 打包時根據文件列表排除文件

–exclude Filename:排除,在壓縮的過程當中,不要將 Filename 打包!

經常使用參數組合:

gzip打包組合zcvf,解包組合zxvf

bzip打包組合jcvf,解包組合jxvf

壓縮示例:

tarzcvf a.tar.gz /tmp/kkk

tarjcvf a.tar.bz /tmp/kkk

tarzcvf workspace.tar.gz --exclude /Workspace/Linux Workspace/ #打包時排除/Workspace/Linux

tarzcvfX workspace.tar.gz a.txt /Workspace/Linux Workspace/    #打包時根據a.txt中的文件名排除

cat a.txt

aa.txt

bb.txt

cc.txt

解壓示例:

tar-xvf file.tar         #解壓 tar包

tar-xzvf file.tar.gz         #解壓tar.gz

tar-xjvf file.tar.bz2        #解壓 tar.bz2

tar-xZvf file.tar.Z          #解壓tar.Z

tar-xvf file2.tar -C /home/usr2  #將file2.tar解壓到/home/usr2下

5二、cut:從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段寫至標準輸出。

格式:

cut  [-bn] [file] 或 cut [-c] [file]  或 cut [-df] [file]

參數

-b:以字節爲單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標誌。

-c:以字符爲單位進行分割。

-d:自定義分隔符,默認爲製表符。

-f  :與-d一塊兒使用,指定顯示哪列。f3表示第三列,f3,6表示第3列和第6列,f2-5表示第2列到第5列

-n:取消分割多字節字符。僅和 -b 標誌一塊兒使用。若是字符的最後一個字節落在由 -b 標誌的 List 參數指示的
範圍以內,該字符將被寫出;不然,該字符將被排除。

cut命令主要是接受三個定位方法:

第一,字節(bytes),用選項-b

第二,字符(characters),用選項-c

第三,域(fields),用選項-f

示例:

catcut_ch.txt

星期一

星期二

星期三

星期四

cut -c 3 cut_ch.txt

5三、tr:也是替換命令

echo 「I am oldboy,myqq is 49000448」 | tr 「,」" "  #將逗號替換成空格

echo ‘abc’ | tr ‘abc’ ‘xyz’ #x替換a,y替換b,z替換c

5四、wc:打印文件的文本行數、單詞數、字節數

參數:

-c,–bytes: 打印字節數(print thebyte counts)

-m,–chars:打印字符數(print the charactercounts)

-l,–lines:打印行數(print thenewline counts)

-L,–max-line-length:打印最長行的長度(print the length of the longest line)

-w,–words:打印單詞數(print theword counts)

示例

wc–lines /etc/passwd

wc -l/etc/passwd

5五、du: 查看文件和目錄磁盤使用的空間

參數:

-a或-all  顯示目錄中個別文件的大小。

-b或-bytes  顯示目錄或文件大小時,以byte爲單位。

-c或–total  除了顯示個別目錄或文件的大小外,同時也顯示全部目錄或文件的總和。

-k或–kilobytes  以KB(1024bytes)爲單位輸出。

-m或–megabytes  以MB爲單位輸出。

-s或–summarize  僅顯示總計,只列出最後加總的值。

-h或–human-readable  以K,M,G爲單位,提升信息的可讀性。

-x或–one-file-xystem  以一開始處理時的文件系統爲準,若趕上其它不一樣的文件系統目錄則略過。

-L<符號連接>或–dereference<符號連接> 顯示選項中所指定符號連接的源文件大小。

-S或–separate-dirs   顯示個別目錄的大小時,並不含其子目錄的大小。

-X<文件>或–exclude-from=<文件> 在<文件>指定目錄或文件。

–exclude=<目錄或文件>         略過指定的目錄或文件。

-D或–dereference-args   顯示指定符號連接的源文件大小。

-H或–si  與-h參數相同,可是K,M,G是以1000爲換算單位。

-l或–count-links   重複計算硬件連接的文件。

示例:

(1)顯示目錄或者文件所佔空間

du

(2)顯示指定文件所佔空間

du log2012.log

(3)查看指定目錄的所佔空間

du scf

(4)顯示多個文件所佔空間

du log30.tar.gz log31.tar.gz

(5)只顯示總和的大小

du -s scf

(6)方便閱讀的格式顯示

du -h test

(7)文件和目錄都顯示

du -ah test

(8)顯示幾個文件或目錄各自佔用磁盤空間的大小,還統計它們的總和

du -c log30.tar.gz log31.tar.gz

(9)輸出當前目錄下各個子目錄所使用的空間

du -h  --max-depth=1

5六、useradd : 創建用戶帳號

格式:

useradd [-mMnr][-c <備註>][-d <登入目錄>][-e<有效期限>][-f <緩衝天數>][-g <羣組>][-G <羣組>][-s ][-u ][用戶賬號] 或 useradd -D [-b][-e <有效期限>][-f <緩衝天數>][-g<羣組>][-G <羣組>][-s ]

參數:

-c<備註>  加上備註文字。備註文字會保存在passwd的備註欄位中。

-d<登入目錄>  指定用戶登入時的啓始目錄。

-D  變動預設值.

-e<有效期限>  指定賬號的有效期限。格式MM/DD/YY

-f<緩衝天數>  指定在密碼過時後多少天即關閉該賬號。0:當即停權 -1:關閉此功能(默認值-1)

-g<羣組>  指定用戶所屬的羣組。

-G<羣組>  指定用戶所屬的附加羣組。

-m  自動創建用戶的登入目錄。

-M  不要自動創建用戶的登入目錄。

-n  取消創建以用戶名稱爲名的羣組.

-r  創建系統賬號。

-s指定用戶登入後所使用的shell。不填寫時,系統根據/etc/default/useradd預設值指定

-u  指定用戶ID。

-p 建立用戶時,直接指定密碼,但在 /etc/shadow文件中以明文顯示,不安全

示例:

useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bashoracle

useradd -u 510 test

補充說明:

useradd可用來創建用戶賬號。賬號建好以後,再用passwd設定賬號的密碼.而可用userdel刪除賬號。使用useradd指令所創建的賬號,其實是保存在/etc/passwd文本文件中。passwd設定的密碼在/etc/shadow文件中。

5七、userdel : 刪除用戶

參數:

-f, --force     force removal of files, even if notowned by user
-h, --help      display this help message and exit
-r, --remove    在刪除用戶的同時一塊兒把這個用戶的宿主目錄和郵件目錄刪除。

示例:

userdel -r newuser

5八、date : 根據給定格式顯示日期或設置系統日期時間

(1)格式:

date [OPTION]…[+FORMAT]

(2)參數:

-d  顯示字符串描述的時間

-f  顯示DATEFILE文件中的每行時間

-r  顯示文件的最後修改時間

-R  以RFC-2822兼容日期格式顯示時間

-rfc-2822   以RFC-2822兼容日期格式顯示時間

-s  設置時間爲string

-u  顯示或設定爲Coordinated Universal Time時間格式

–help  顯示date命令的幫助信息

–version   顯示date命令的版本信息

(3)Format參數格式

%%  顯示字符%

%a  星期幾的縮寫(Sun…Sat)

%A  星期幾的完整名稱(Sunday…Saturday)

%b  月份的縮寫(Jan…Dec)

%B  月份的完整名稱(January…December)

%c  日期與時間。只輸入date指令也會顯示一樣的結果

%C  世紀(年份除100後去整) [00-99]

%d  日期(以01-31來表示)。

%D  日期(含年月日)。

%e  一個月的第幾天 ( 1…31)

%F  日期,同%Y-%m-%d

%g  年份(yy)

%G  年份(yyyy)

%h  同%b

%H  小時(00…23)

%I  小時(01…12)

%j  一年的第幾天(001…366)

%k  小時(0…23)

%l  小時(1…12)

%m  月份(01…12)

%M  分鐘(00…59)

%n  換行

%N  納秒(000000000…999999999)

%p  AM or PM

%P  am or pm

%r  12小時制時間(hh:mm:ss [AP]M)

%R  24小時制時間(hh:mm)

%s  從00:00:001970-01-01 UTC開始的秒數

%S  秒(00…60)

%t  製表符

%T  24小時制時間(hh:mm:ss)

%u  一週的第幾天(1…7); 1 表示星期一

%U  一年的第幾周,週日爲每週的第一天(00…53)

%V  一年的第幾周,週一爲每週的第一天 (01…53)

%w  一週的第幾天 (0…6); 0 表明週日

%W  一年的第幾周,週一爲每週的第一天(00…53)

%x  日期(mm/dd/yy)

%X  時間(%H:%M:%S)

%y  年份(00…99)

%Y  年份(1970…)

%z  RFC-2822 風格數字格式時區(-0500)

%Z  時區(e.g.,EDT), 沒法肯定時區則爲空

(4)示例:

a、設置系統時間

date -s"2013-11-14 00:00:00"

b、按各類格式顯示當前日期時間

(i)只顯示當前日期的年份

date +%Y

(ii)只顯示當前日期的月份

date +%m

(iii)顯示各類格式類型的日期

date +%D

date ‘+%Y-%m-%d’

date +%Y-%m-%d

date +%m/%d/%y

date +%m/%d/%Y

c、顯示3天前的日期

date +%F --date=‘3day ago’

date +%F --date ‘3day ago’

date +%F --d ‘3day ago’

date +%F -d ‘-3day’

d、顯示明天的日期

date +%F -d ‘nextago’

e、顯示3天后的日期

date +%F -d ‘+3day’

date +%F -d ‘3day’

f、顯示3小時前的時間

date +%H -d ‘-3hour’

g、顯示3小時之後的時間

date +%H -d ‘3hour’

h、顯示6分鐘之前的時間

echo $(date+%Y%m%d%H%M -d ‘-6 min’)

i、顯示6分鐘之後的時間

echo $(date +%Y%m%d%H%M-d ‘6 min’)

j、顯示20秒之前的時間

echo $(date+%Y%m%d%H%M%S -d ‘-20 sec’)

k、顯示20秒之後的時間

echo $(date+%Y%m%d%H%M%S -d ‘20 sec’)

5九、hwclock : 顯示與設定硬件時鐘

在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是一般可在BIOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。當Linux啓動時,系統時鐘會去讀取硬件時鐘的設定,以後系統時鐘即獨立運做。全部Linux相關指令與函數都是讀取系統時鐘的設定。

格式:

hwclock [–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test]
[–utc][–version][–set --date=<日期與時間>]

參數:

–adjust  hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用–adjust參數,可以使hwclock根據先前的記錄來估算硬件時鐘的誤差,並用來校訂目前的硬件時鐘。

–debug  顯示hwclock執行時詳細的信息。

–directisa  hwclock預設從/dev/rtc設備來存取硬件時鐘。若沒法存取時,可用此參數直接以I/O指令來存取硬件時鐘。

–hctosys  將系統時鐘調整爲與目前的硬件時鐘一致。

–set --date=<日期與時間>  設定硬件時鐘。

–show  顯示硬件時鐘的時間與日期。

-w --systohc  將硬件時鐘調整爲與目前的系統時鐘一致。

–test  僅測試程序,而不會實際更改硬件時鐘。

-u --utc  若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工做。

-v --version  顯示版本信息。

示例:

查看當前的硬件日期和時間

hwclock

查看clock文件,確認是否設置了UTC:

cat /etc/default/rcS

UTC=yes

將當前時間和日期寫入BIOS,避免重啓後失效

hwclock -w

60、cal: 顯示日曆

6一、locate: 按名字查找文件,但只能查看updatedb庫中的內容,需按期更新updatedb庫

locate -n 1 cp  # 查詢包括cp的文件,只顯示查到的第一行

6二、chmod:改變權限屬性

語法:

chown [選項]…[屬主][:[組]] 文件…

參數:

u表示屬主用戶、g表示屬組、o其它組用戶、a全部用戶(默認)

  • 表示增長權限、- 表示取消權限、= 表示惟一設定權限。

r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示爲可執行。

-c : 若該文件權限確實已經更改,才顯示其更改動做

-f : 若該文件權限沒法被更改也不要顯示錯誤訊息

-v : 顯示權限變動的詳細資料

-R : 對目前目錄下的全部文件與子目錄進行相同的權限變動(即以遞迴的方式逐個變動)

–help : 顯示輔助說明

–version : 顯示版本

示例:

chmod 777ett.txt

chmod –R 755oldboy/

chmod u+xett.txt

6三、chown: 改變文件屬主和屬組

語法:

chmod [-cfvR][–help] [–version] mode file…

參數:

-R : 對目前目錄下的全部文件與子目錄進行相同的權限變動(即以遞迴的方式逐個變動)

示例:

chown oldboya.sh

chownoldboy.oldboy a.sh  或 chown oldboy:oldboy a.sh等價於 chgrp oldboy a.sh

chown .oldboya.sh   或 chown :oldboy a.sh

chown -Roldboy:oldboy wddg/

6四、umask:默認權限分配

語法 :

umask(選項)(參數)

選項:

-p:輸出的權限掩碼可直接做爲指令來執行;

-S:大寫S,以符號方式輸出權限掩碼。

實例 :

umask u=, g=w,o=rwx (等同於umask 027)

umask

umask 022

umask –p

umask 0333

umask –S

u=r,g=r,o=r

6五、id:顯示用戶id和組id信息

語法

id[-gGnru][–help][–version][用戶名稱]

選項

-a 打印用戶名、UID 和該用戶所屬的全部組

-g或–group  顯示用戶所屬羣組的ID。

-G或–groups 顯示用戶所屬附加羣組的ID。

-n或–name  顯示用戶,所屬羣組或附加羣組的名稱。

-r或–real  顯示實際ID。

-u或–user  顯示用戶ID。

–help   顯示幫助。

–version   顯示版本信息。

實例

id

uid=0(root) gid=0(root) groups=0(root)

id -gn

root

id -un

root

6六、chattr:改變文件屬性(ext二、ext三、ext4)

語法

chattr [-RV][-v<版本編號>][+/-/=<屬性>][文件或目錄…]

選項

a:讓文件或目錄僅供附加用途。

b:不更新文件或目錄的最後存取時間。

c:將文件或目錄壓縮後存放。

d:將文件或目錄排除在傾倒操做以外。

i:不得任意更動文件或目錄。

s:保密性刪除文件或目錄。

S:即時更新文件或目錄。

u:預防之外刪除。

-R  遞歸處理,將指定目錄下的全部文件及子目錄一併處理。

-v<版本編號>  設置文件或目錄版本。

-V  顯示指令執行過程。

+<屬性>  開啓文件或目錄的該項屬性。

-<屬性>  關閉文件或目錄的該項屬性。

=<屬性>  指定文件或目錄的該項屬性。

實例

chattr +i/etc/resolv.conf

chattr -i/etc/resolv.conf

6七、lsattr:列出文件的隱藏屬性

語法

lsattr [-adlRvV][文件或目錄…]

選項

-a  顯示全部文件和目錄,包括以".「爲名稱開頭字符的額外內建,現行目錄」.「與上層目錄」…"。

-d  顯示,目錄名稱,而非其內容。

-l  此參數目前沒有任何做用。

-R  遞歸處理,將指定目錄下的全部文件及子目錄一併處理。

-v  顯示文件或目錄版本。

-V  顯示版本信息。

實例

lsattr -Rd test/

6八、strace:診斷、調試、統計的工具

strace命令是一個集診斷、調試、統計與一體的工具,咱們可使用strace對應用的系統調用和信號傳遞的跟蹤結果來對應用進行分析,以達到解決問題或者是瞭解應用工做過程的目的。

strace的最簡單的用法就是執行一個指定的命令,在指定的命令結束以後它也就退出了。在命令執行的過程當中,strace會記錄和解析命令進程的全部系統調用以及這個進程所接收到的全部的信號值。

語法

strace [-dffhiqrtttTvxx ] [ command [ arg …] ]

strace -c [command [ arg…] ]

選項

-c 統計每一系統調用的所執行的時間,次數和出錯的次數等

-d 輸出strace關於標準錯誤的調試信息

-f 跟蹤由fork調用所產生的子進程

-ff 若是提供-o filename,則全部進程的跟蹤結果輸出到相應的filename.pid中,pid是各進程的進程號

-F 嘗試跟蹤vfork調用.在-f時,vfork不被跟蹤

-h 輸出簡要的幫助信息

-i 輸出系統調用的入口指針

-q 禁止輸出關於脫離的消息

-r 打印出相對時間關於,每個系統調用

-t 在輸出中的每一行前加上時間信息

-tt 在輸出中的每一行前加上時間信息,微秒級

-ttt 微秒級輸出,以秒了表示時間

-T 顯示每一調用所耗的時間

-v 輸出全部的系統調用.一些調用關於環境變量,狀態,輸入輸出等調用因爲使用頻繁,默認不輸出

-V 輸出strace的版本信息

-x 以十六進制形式輸出非標準字符串 -xx 全部字符串以十六進制形式輸出

-a column 設置返回值的輸出位置.默認 爲40

-e expr 指定一個表達式,用來控制如何跟蹤.格式:[qualifier=][!]value1[,value2]…

qualifier只能是trace,abbrev,verbose,raw,signal,read,write其中之一.value是用來限定的符號或數字.默認的 qualifier是 trace.感嘆號是否認符號.例如:-eopen等價於 -e trace=open,表示只跟蹤open調用.而-etrace!=open 表示跟蹤除了open之外的其餘調用.有兩個特殊的符號 all 和 none

注意有些shell使用!來執行歷史記錄裏的命令,因此要使用\

-e trace=set 只跟蹤指定的系統 調用.例如:-e trace=open,close,rean,write表示只跟蹤這四個系統調用.默認的爲set=all

-e trace=file 只跟蹤有關文件操做的系統調用

-e trace=process只跟蹤有關進程控制的系統調用

-e trace=network跟蹤與網絡有關的全部系統調用

-e strace=signal跟蹤全部與系統信號有關的 系統調用 -e trace=ipc 跟蹤全部與進程通信有關的系統調用 -e abbrev=set 設定strace輸出的系統調用的結果集.-v 等與 abbrev=none.默認爲abbrev=all

-e raw=set 將指定的系統調用的參數以十六進制顯示

-e signal=set 指定跟蹤的系統信號.默認爲all.如 signal=!SIGIO(或者signal=!io),表示不跟蹤SIGIO信號

-e read=set 輸出從指定文件中讀出 的數據.例如: -e read=3,5 -e write=set 輸出寫入到指定文件中的數據

-o filename 將strace的輸出寫入文件filename -p pid 跟蹤指定的進程pid

-s strsize 指定輸出的字符串的最大長度.默認爲32.文件名一直所有輸出

-u username 以username的UID和GID執行被跟蹤的命令

實例

strace -f passwd

strace -c./test.sh

6九、crontab:定時任務命令

語法 crontab(選項)(參數)

選項

-e:編輯該用戶的計時器設置(查看的文件是/var/spool/cron/<用戶名稱>,會進行語法檢查);

-l:列出該用戶的計時器設置(查看的文件是/var/spool/cron/<用戶名稱>);

-r:刪除該用戶的計時器設置;

-u <用戶名稱>:指定要設定計時器的用戶名稱。

實例

crontab -e

30 3,12 * * * /bin/sh /wddg/test.sh

crontab -l

30 */6 * * * * /bin/sh /wddg/test.sh

30 8-18/2 * * * /bin/sh /wddg/test.sh

70、groupadd:添加用戶組

語法

groupadd [-g gid] [-o][-r][-f] groupname

選項

-g gid:指定用戶組GID值。默認從500開始。

-r:創建系統用戶組。GID值會比/etc/login.defs中定義的UID_MIN值要小

-f:新增用戶組時,可強制覆蓋一個已存在的用戶組賬號

實例

groupadd k1 -g 1000

7一、passwd:修改用戶密碼

語法

passwd [參數]username

選項

-k  --keep-tokens :保留即將過時的用戶在期滿後仍能使用

-l  --lock :鎖定用戶無權更改其密碼,只能root才能操做

-u --unlock :解除鎖定

-S --status :查看用戶狀態

-d --delete :刪除用戶密碼,只能root才能操做

-f --force :強制操做,只能root才能操做

-n mindays :修改密碼的最小天數,也就是mindays天內不能再次修改密碼

-i inactivedays : 密碼有效期

-w warndays :密碼過時前warndays天警告時間

-x maximum :兩次密碼修改之間的天數,也就是maximum天內必須修改密碼,只能root才能操做

–stdin :從stdin讀入密碼,不會有提示

實例

echo 「123456」 | passed --stdin test01

passwd test01

7二、chage:修改密碼有效期

語法

chage [參數選項]username

選項

-d :指定密碼最後修改日期

-E :密碼到期的日期,過了這天,此帳號將不可用。0表示立刻過時,-1表示永不過時。

-h :顯示幫助信息並退出

-I :密碼過時後,鎖定帳號的天數

-l :列出用戶以及密碼的有效期

-m :密碼能夠更改的最小天數。爲零表明任什麼時候候均可以更改密碼。

-M :密碼保持有效的最大天數。

-W :密碼過時前,提早收到警告信息的天數

實例

chage -E 「2018/02/03」 test

chage -l test

7三、groupdel:刪除用戶組

語法

groupdel groupname

實例

groupdel test01

7四、usermod:修改用戶信息命令

語法

usermod (選項)username

選項

-d :指定密碼最後修改日期

-c<備註> :修改用戶賬號的備註文字

-d<登入目錄> :修改用戶登入時的目錄

-e<有效期限> :修改賬號的有效期限

-f<緩衝天數> :修改在密碼過時後多少天即關閉該賬號

-g<羣組> :修改用戶所屬的羣組

-G<羣組> :修改用戶所屬的附加羣組

-l<賬號名稱> :修改用戶賬號名稱

-L :鎖定用戶密碼,使密碼無效

-s :修改用戶登入後所使用的shell

-u :修改用戶ID

-U :解除密碼鎖定

實例

usermod -s /bin/bash test

usermod -c 「abcd」 test

7五、groups:查看當前或指定用戶所在組的組成員

語法

groups [username]

實例

groups :查看當前用戶所在的組

groups test:查看test用戶所在的組

7六、visudo:編輯sudo配置文件/etc/sudoers,有語法檢查

7七、finger:查看用戶信息

語法

finger [username]

實例

finger test

7八、route:路由配置

語法

route (選項)(參數)

選項

-A:設置地址類型

-C:打印將Linux核心的路由緩存

-v:詳細信息模式

-n:不執行DNS反向查找,直接顯示數字形式的IP地址

-e:netstat格式顯示路由表

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

-host:到一個主機的路由表。

參數

Add:增長指定的路由記錄

Del:刪除指定的路由記錄

Target:目的網絡或目的主機

gw:設置默認網關

mss:設置TCP的最大區塊長度(MSS),單位MB

window:指定經過路由表的TCP鏈接的TCP窗口大小

dev:路由記錄所表示的網絡接口。

實例

查看網關

route

route –n

Kernel IP routing table

Destination     Gateway      Genmask         Flags Metric  Ref  Use  Iface

112.124.12.0    0.0.0.0         255.255.252.0   U       0  0   0  eth1

10.160.0.0      0.0.0.0        255.255.240.0    U       0   0   0   eth0

0.0.0.0         12.14.15.27    0.0.0.0        UG      0   0   0   eth1

其中Flags爲路由標誌,標記當前網絡節點的狀態,Flags標誌說明:

U Up表示此路由當前爲啓動狀態。

H Host,表示此網關爲一主機。

G Gateway,表示此網關爲一路由器。

R Reinstate Route,使用動態路由從新初始化的路由。

D Dynamically,此路由是動態性地寫入。

M Modified,此路由是由路由守護程序或導向器動態修改。

! 表示此路由當前爲關閉狀態。

增長一條到達244.0.0.0的路由。

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

增長一條屏蔽的路由,目的地址爲224.x.x.x將被拒絕。

route add -net 224.0.0.0 netmask 240.0.0.0 reject

刪除路由記錄:

route del -net 224.0.0.0 netmask 240.0.0.0

route del -net 224.0.0.0 netmask 240.0.0.0 reject

刪除默認網關

route del default gw 192.168.1.1

添加默認網關

route add default gw 192.168.1.1

7九、ping:測試主機之間網絡的連通性

語法

ping(選項) 目標主機

選項

-d:使用Socket的SO_DEBUG功能

-c<完成次數>:設置完成要求迴應的次數

-f:極限檢測

-i<間隔秒數>:指定收發信息的間隔時間

-I<網絡界面>:使用指定的網絡界面送出數據包

-l<前置載入>:設置在送出要求信息以前,先行發出的數據包

-n:只輸出數值

-p<範本樣式>:設置填滿數據包的範本樣式

-q:不顯示指令執行過程,開頭和結尾的相關信息除外

-r:忽略普通的RoutingTable,直接將數據包送到遠端主機上

-R:記錄路由過程

-s<數據包大小>:設置數據包的大小

-t<存活數值>:設置存活數值TTL的大小

-v:詳細顯示指令的執行過程。 參數 目的主機:指定發送ICMP報文的目的主機。

實例

ping 10.11.12.13

ping www.baidu.com

ping –c10 –s648 –i3 www.baidu.com

80、dig:域名查詢工具,能夠用來測試域名系統工做是否正常

語法

dig(選項)(參數)

選項

@<服務器地址>:指定進行域名解析的域名服務器

-b:當主機具備多個IP地址,指定使用本機的哪一個IP地址向域名服務器發送域名查詢請求

-f<文件名稱>:指定dig以批處理的方式運行,指定的文件中保存着須要批處理查詢的DNS任務信息

-P:指定域名服務器所使用端口號

-t<類型>:指定要查詢的DNS數據類型

-x:執行逆向域名查詢

-4:使用IPv4

-6:使用IPv6

-h:顯示指令幫助信息。

參數

主機:指定要查詢域名主機

查詢類型:指定DNS查詢的類型

查詢類:指定查詢DNS的class

查詢選項:指定查詢選項。

實例

dig www.linuxde.net

;<<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.1<<>> www.linuxde.net

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2115

;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:

;www.linuxde.net. IN A

;; ANSWER SECTION:

www.linuxde.net.       0 IN    CNAME       host.1.linuxde.net.

host.1.linuxde.net. 0 IN   A           100.42.212.8

;; AUTHORITY SECTION:

linuxde.net.   8   IN NS f1g1ns2.dnspod.net.

linuxde.net.   8   IN NS f1g1ns1.dnspod.net.

;; Query time: 0 msec

;; SERVER: 202.96.104.15#53(202.96.104.15)

;; WHEN: Thu Dec 26 11:14:37 2013

;; MSG SIZE rcvd: 121

8一、nslookup:域名查詢工具

語法

nslookup(選項) 域名

選項

-sil:不顯示任何警告信息。

實例

nslookup www.linuxde.net

Server: 202.96.104.15

Address: 202.96.104.15#53

Non-authoritative answer: www.linuxde.net canonical name =host.1.linuxde.net.

Name: host.1.linuxde.net

Address: 100.42.212.8

8二、traceroute:路由追蹤(windows下是tracert),默認發送的數據包大小是40字節

語法

traceroute (選項) 目的主機IP地址或主機名

選項

-d:使用Socket層級的排錯功能

-f<存活數值>:設置第一個檢測數據包的存活數值TTL的大小

-F:設置勿離斷位

-g<網關>:設置來源路由網關,最多可設置8個

-i<網絡界面>:使用指定的網絡界面送出數據包

-I:使用ICMP迴應取代UDP資料信息

-m<存活數值>:設置檢測數據包的最大存活數值TTL的大小

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

-p<通訊端口>:設置UDP傳輸協議的通訊端口

-r:忽略普通的RoutingTable,直接將數據包送到遠端主機上。

-s<來源地址>:設置本地主機送出數據包的IP地址

-t<服務類型>:設置檢測數據包的TOS數值

-v:詳細顯示指令的執行過程

-w<超時秒數>:設置等待遠端主機回報的時間

-x:開啓或關閉數據包的正確性檢驗。

實例

traceroute www.58.com

traceroute to www.58.com (211.151.111.30), 30 hops max, 40 bytepackets

1 unknown (192.168.2.1) 3.453 ms 3.801 ms 3.937 ms

2 221.6.45.33 (221.6.45.33) 7.768 ms 7.816 ms 7.840 ms

3 221.6.0.233 (221.6.0.233) 13.784 ms 13.827 ms 221.6.9.81(221.6.9.81) 9.758 ms

11 211.151.104.6 (211.151.104.6) 39.585 ms 39.502 ms 39.598 ms

12 211.151.111.30 (211.151.111.30) 35.161 ms 35.938 ms 36.005 ms

8三、telnet:登陸遠程主機

說明

telnet命令用於登陸遠程主機,對遠程主機進行管理。telnet由於採用明文傳送報文,安全性很差,不少Linux服務器都不開放telnet服務,而改用更安全的ssh方式了。但仍然有不少別的系統可能採用了telnet方式來提供遠程登陸,所以弄清楚telnet客戶端的使用方式還是頗有必要的。

語法

telnet (選項) 遠程主機 端口

選項

-8:容許使用8位字符資料,包括輸入與輸出

-a:嘗試自動登入遠端系統

-b<主機別名>:使用別名指定遠端主機名稱

-c:不讀取用戶專屬目錄裏的.telnetrc文件

-d:啓動排錯模式

-e<脫離字符>:設置脫離字符

-E:濾除脫離字符

-f:此參數的效果和指定"-F"參數相同

-F:使用Kerberos V5認證時,加上此參數可把本地主機的認證數據上傳到遠端主機

-k<域名>:使用Kerberos認證時,加上此參數讓遠端主機採用指定的領域名,而非該主機的域名

-K:不自動登入遠端主機

-l<用戶名稱>:指定要登入遠端主機的用戶名稱

-L:容許輸出8位字符資料

-n<記錄文件>:指定文件記錄相關信息

-r:使用相似rlogin指令的用戶界面

-S<服務類型>:設置telnet連線所需的ip TOS信息

-x:假設主機有支持數據加密的功能,就使用它

-X<認證形態>:關閉指定的認證形態。

實例

telnet 192.168.2.10

Trying 192.168.2.10…

Connected to 192.168.2.10 (192.168.2.10).

Escape character is ‘^]’.

localhost (Linux release2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:44 EST 2012)

login: root

Password:

Login incorrect

8四、nmap:網絡探測和安全審覈工具

說明

nmap命令是一款開放源代碼的網絡探測和安全審覈工具,它的設計目標是快速地掃描大型網絡。

語法

nmap (選項)  IP

選項

-O:激活操做探測

-P0:值進行掃描,不ping主機

-PT:是同TCP的ping

-sV:探測服務版本信息

-sP:ping掃描,僅發現目標主機是否存活

-ps:發送同步(SYN)報文

-PU:發送udp ping

-PE:強制執行直接的ICMPping

-PB:默認模式,可使用ICMPping和TCPping

-6:使用IPv6地址

-v:獲得更多選項信息

-d:增長調試信息地輸出

-oN:以人們可閱讀的格式輸出

-oX:以xml格式向指定文件輸出信息

-oM:以機器可閱讀的格式輸出

-A:使用全部高級掃描選項

–resume:繼續上次執行完的掃描

-P:指定要掃描的端口,能夠是一個單獨的端口,用逗號隔開多個端口,使用「-」表示端口範圍

-e:在多網絡接口Linux系統中,指定掃描使用的網絡接口

-g:將指定的端口做爲源端口進行掃描

–ttl:指定發送的掃描報文的生存期

–packet-trace:顯示掃描過程當中收發報文統計

–scanflags:設置在掃描報文中的TCP標誌。

實例

nmap www.linuxde.net

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-12-2800:06 CST

Interesting ports on 100-42-212-8.static.webnx.com (100.42.212.8):

Not shown: 1678 filtered ports

PORT STATE service

22/tcp open ssh

80/tcp open http

Nmap finished: 1 IP address (1 host up) scanned in 45.870 seconds

8五、tcpdump:抓包命令

說明

tcpdump命令是一款sniffer工具,它能夠打印全部通過網絡接口的數據包的頭信息,也可使用-w選項將數據包保存到文件中,方便之後分析。

若是不指定網卡,默認tcpdump只會監視第一個網絡接口,通常是eth0。

若是本地網絡經過網關連到了另外一網絡,則另外一網絡並不能算做本地網絡。

語法

tcpdump (選項)

選項

-a:嘗試將網絡和廣播地址轉換成名稱

-c<數據包數目>:收到指定的數據包數目後,就中止進行傾倒操做

-d:把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標準輸出

-dd:把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標準輸出

-ddd:把編譯過的數據包編碼轉換成十進制數字的格式,並傾倒到標準輸出

-e:在每列傾倒資料上顯示鏈接層級的文件頭

-f:用數字顯示網際網絡地址

-F<表達文件>:指定內含表達方式的文件

-i<網絡界面>:使用指定的網絡截面送出數據包

-l:使用標準輸出列的緩衝區

-n:不把主機的網絡地址轉換成名字

-N:不列出域名

-O:不將數據包編碼最佳化

-p:不讓網絡界面進入混雜模式

-q :快速輸出,僅列出少數的傳輸協議信息

-r<數據包文件>:從指定的文件讀取數據包數據

-s<數據包大小>:設置每一個數據包的大小

-S:用絕對而非相對數值列出TCP關聯數

-t:在每列傾倒資料上不顯示時間戳記

-tt: 在每列傾倒資料上顯示未經格式化的時間戳記

-T<數據包類型>:強制將表達方式所指定的數據包轉譯成設置的數據包類型

-v:詳細顯示指令執行過程

-vv:更詳細顯示指令執行過程

-x:用十六進制字碼列出數據包資料

-w<數據包文件>:把數據包數據寫入指定的文件。

實例

直接啓動tcpdump將監視第一個網絡接口上全部流過的數據包

tcpdump

監視指定網絡接口的數據包

tcpdump -i eth1

打印全部進入或離開sundown的數據包。

tcpdump host sundown

也能夠指定ip,例如截獲全部210.27.48.1 的主機收到的和發出的全部的數據包

tcpdump host 210.27.48.1

打印helios 與 hot 或者與 ace 之間通訊的數據包

tcpdump host helios and hotoracehotorace
截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通訊

tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 )

打印ace與任何其餘主機之間通訊的IP 數據包, 但不包括與helios之間的數據包.

tcpdump ip host ace and not helios

若是想要獲取主機210.27.48.1除了和主機210.27.48.2以外全部主機通訊的ip包,使用命令:

tcpdump ip host 210.27.48.1 and ! 210.27.48.2

截獲主機hostname發送的全部數據

tcpdump -i eth0 src host hostname

監視全部送到主機hostname的數據包

tcpdump -i eth0 dst host hostname

若是想要獲取主機210.27.48.1接收或發出的telnet包

tcpdump tcp port 23 host 210.27.48.1

監聽本機eth0網卡接收或發出的ping包

tcpdump –n icmp –i eth0

對本機的udp 123 端口進行監視 123 爲ntp的服務端口

tcpdump udp port 123

打印本地主機與Berkeley網絡上的主機之間的全部通訊數據包

tcpdump net ucb-ether

注意:ucb-ether此處可理解爲「Berkeley網絡」的網絡地址,此表達式最原始的含義可表達爲:打印網絡地址爲ucb-ether的全部數據包

打印全部經過網關snup的ftp數據包

tcpdump 'gateway snup and (port ftp or ftp-data)'

注意:表達式被單引號括起來了,這能夠防止shell對其中的括號進行錯誤解析

打印全部源地址或目標地址是本地主機的IP數據包

tcpdump ip and not net localnet

8六、free:顯示當前系統未使用的和已使用的內存數

說明

free命令能夠顯示當前系統未使用的和已使用的內存數目,還能夠顯示被內核使用的內存緩衝區。

語法

free(選項)

選項

-b:以Byte爲單位顯示內存使用狀況

-k:以KB爲單位顯示內存使用狀況

-m:以MB爲單位顯示內存使用狀況

-g:以GB爲單位顯示內存使用狀況

-o:不顯示緩衝區調節列

-s<間隔秒數>:持續觀察內存使用情況

-t:顯示內存總和列

-V:顯示版本信息。

實例

free -m

total used free shared buffers cached

Mem:                     2016   1973 42  0      163        1497

-/+ buffers/cache:               312 1703

Swap:                    4094    0       4094

第一部分Mem行解釋:

total:內存總數

used:已經使用的內存數

free:空閒的內存數

shared:當前已經廢棄不用

buffers Buffer:緩存內存數

cached Page:緩存內存數。

關係:total = used + free

第二部分(-/+buffers/cache)解釋:

(-buffers/cache) used內存數:第一部分Mem行中的 used – buffers – cached

(+buffers/cache) free內存數:第一部分Mem行中的 free + buffers + cached

根據Linux的機制,系統會將沒有使的內存的當緩存用,可見-buffers/cache反映的是被程序實實在在吃掉的內存,而+buffers/cache反映的是能夠挪用的內存總數,也就是實際剩餘的內存。

buffers和cache的區別:

buffers是寫入緩衝區,系統會先寫buffers,再由sync將buffers緩衝區數據寫入磁盤。

cache是讀出緩存,Linux將磁盤數據讀出後放到cache。

二者都在內在裏

第三部分是指交換分區。

8七、dd:複製文件並對原文件的內容進行轉換和格式化處理

說明

dd命令用於複製文件並對原文件的內容進行轉換和格式化處理。dd命令功能很強大的,對於一些比較底層的問題,使用dd命令每每能夠獲得出人意料的效果。用的比較多的仍是用dd來備份裸設備。可是不推薦,若是須要備份oracle裸設備,可使用rman備份,或使用第三方軟件備份,使用dd的話,管理起來不太方便。

建議在有須要的時候使用dd 對物理磁盤操做,若是是文件系統的話仍是使用tar backup cpio等其餘命令更加方便。另外,使用dd對磁盤操做時,最好使用塊設備文件。

語法

dd  (選項)

選項

bs=<字節數>:將ibs(輸入)與歐巴桑(輸出)設成指定的字節數

cbs=<字節數>:轉換時,每次只轉換指定的字節數

conv=<關鍵字>:指定文件轉換的方式

count=<區塊數>:僅讀取指定的區塊數

ibs=<字節數>:每次讀取的字節數

obs=<字節數>:每次輸出的字節數

if=<文件>: 表明輸入文件

of=<文件>:輸出到文件

seek=<區塊數>:一開始輸出時,跳過指定的區塊數

skip=<區塊數>:一開始讀取時,跳過指定的區塊數

–help:幫助

–version:顯示版本信息。

實例

a、建立了一個1M大小的文件sun.txt

dd if=/dev/zero of=sun.txt bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

(能夠看出dd命令來測試內存操做速度:172 MB/s)

du -sh sun.txt

1.1M sun.txt

b、參數解釋:

if 表明輸入文件。若是不指定if,默認就會從stdin中讀取輸入。

of 表明輸出文件。若是不指定of,默認就會將stdout做爲默認輸出。

bs 表明字節爲單位的塊大小。

count 表明被複制的塊數。

/dev/zero 是一個字符設備,會不斷返回0值字節(\0)。

c、塊大小可使用的計量單位表

單元大小
代碼
字節(1B)

字節(2B)
w
 塊(512B)
b
千字節(1024B)
k
兆字節(1024KB)
M
吉字節(1024MB)
G
8八、fdisk:分區命令,只能對小於2T的磁盤進行分區

說明

fdisk命令用於觀察硬盤實體使用狀況,也可對硬盤分區.只能對小於2T的磁盤進行分區.

語法

fdisk (選項) 設備文件(指定要進行分區或者顯示分區的硬盤設備文件)

選項

-b 分區大小:指定每一個分區的大小;

-l:列出指定的外圍設備的分區表情況;

-s 分區編號:將指定的分區大小輸出到標準輸出上,單位爲區塊;

-u:搭配-l參數列表,會用分區數目取代柱面數目,來表示每一個分區的起始地址;

-v:顯示版本信息。

實例

a、首先選擇要進行操做的磁盤:

fdisk /dev/sdb

b、輸入m列出能夠執行的命令:

command (m for help): m

Command action

a   toggle a bootable flag

b   edit bsd disklabel

c   toggle the dos compatibilityflag

d   delete a partition

l   list known partition types

m   print this menu

n   add a new partition

o   create a new empty DOSpartition table

p   print the partition table

q   quit without saving changes

s   create a new empty Sundisklabel

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 (expertsonly)

c、輸入p列出磁盤目前的分區狀況:

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280bytes

Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1           1        8001  8e  Linux LVM

/dev/sdb2               2          26      200812+ 83  Linux

d、輸入d而後選擇分區,刪除現有分區:

Command (m for help): d

Partition number (1-4): 1

Command (m for help): d

Selected partition 2

e、查看分區狀況,確認分區已經刪除:

Command (m for help): print

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks  Id  System

Command (m for help):

f、輸入n創建新的磁盤分區,首先創建兩個主磁盤分區:

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p    //創建主分區

Partition number (1-4): 1  //分區號

First cylinder (1-391, default 1): //分區起始位置

Using default value 1

last cylinder or +size or +sizeM or +sizeK (1-391, default 391):100  //分區結束位置,單位爲扇區

Command (m for help): n  //再創建一個分區

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 2  //分區號爲2

First cylinder (101-391, default 101):

Using default value 101

Last cylinder or +size or +sizeM or +sizeK (101-391, default 391):+200M  //分區結束位置,單位爲M

g、確認分區創建成功:

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1         100      803218+ 83  Linux

/dev/sdb2             101         125      200812+ 83  Linux

h、再創建一個邏輯分區:

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

e  //選擇擴展分區

Partition number (1-4): 3

First cylinder (126-391, default 126):

Using default value 126

Last cylinder or +size or +sizeM or +sizeK (126-391, default 391):

Using default value 391

i、確認擴展分區創建成功:

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1         100      803218+ 83  Linux

/dev/sdb2             101         125      200812+ 83  Linux

/dev/sdb3             126         391    2136645    5  Extended

j、在擴展分區上創建兩個邏輯分區:

Command (m for help): n

Command action

l   logical (5 or over)

p   primary partition (1-4)

l //選擇邏輯分區

First cylinder (126-391, default 126):

Using default value 126

Last cylinder or +size or +sizeM or +sizeK (126-391, default 391):+400M

Command (m for help): n

Command action

l   logical (5 or over)

p   primary partition (1-4)

l

First cylinder (176-391, default 176):

Using default value 176

Last cylinder or +size or +sizeM or +sizeK (176-391, default 391):

Using default value 391

k、確認邏輯分區創建成功:

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1         100      803218+ 83  Linux

/dev/sdb2             101         125      200812+ 83  Linux

/dev/sdb3             126         391    2136645    5  Extended

/dev/sdb5             126         175      401593+ 83  Linux

/dev/sdb6             176         391    1734988+  83  Linux

Command (m for help):

從上面的結果咱們能夠看到,在硬盤sdb咱們創建了2個主分區(sdb1,sdb2),1個擴展分區(sdb3),2個邏輯分區(sdb5,sdb6)

注意:主分區和擴展分區的磁盤號位1-4,也就是說最多有4個主分區或者擴展分區,邏輯分區開始的磁盤號爲5,所以在這個實驗中試沒有sdb4的。

l、最後對分區操做進行保存:

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

m、創建好分區以後咱們還須要對分區進行格式化才能在系統中使用磁盤。

在sdb1上創建ext2分區:

mkfs.ext2 /dev/sdb1

mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

100576 inodes, 200804 blocks

10040 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=209715200

7 block groups

32768 blocks per group, 32768 fragments per group

14368 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840

Writing inode tables: done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

在sdb6上創建ext3分區:

mkfs.ext3 /dev/sdb6

mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

217280 inodes, 433747 blocks

21687 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=444596224

14 block groups

32768 blocks per group, 32768 fragments per group

15520 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840,229376, 294912

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@localhost ~]#

n、創建兩個目錄/oracle和/web,將新建好的兩個分區掛載到系統:

mkdir /oracle

mkdir /web

mount /dev/sdb1 /oracle

mount /dev/sdb6 /web

o、查看分區掛載狀況:

df -h

文件系統              容量  已用 可用 已用% 掛載點

/dev/mapper/VolGroup00-LogVol00

6.7G  2.8G  3.6G 44% /

/dev/sda1             99M   12M   82M 13% /boot

tmpfs                125M     0  125M  0% /dev/shm

/dev/sdb1            773M  808K  733M  1% /oracle

/dev/sdb6            1.7G   35M  1.6G  3% /web

p、若是須要每次開機自動掛載則須要修改/etc/fstab文件,加入兩行配置:

vim /etc/fstab

/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1

LABEL=/boot            /boot                   ext3    defaults        1 2

tmpfs                  /dev/shm                tmpfs   defaults        0 0

devpts                 /dev/pts               devpts  gid=5,mode=620  0 0

sysfs                  /sys                    sysfs   defaults        0 0

proc                   /proc                   proc    defaults        0 0

/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

/dev/sdb1              /oracle                 ext2    defaults        0 0

/dev/sdb6              /web                    ext3    defaults        0 0

8九、parted:分區命令,適合於對大於2T的磁盤進行分區,且必須將磁盤轉爲GPT格式

說明

parted命令是由GNU組織開發的一款功能強大的磁盤分區和分區大小調整工具,與fdisk不一樣,它支持調整分區的大小。做爲一種設計用於Linux的工具,它沒有構建成處理與fdisk關聯的多種分區類型,可是,它能夠處理最多見的分區格式,包括:ext二、ext三、fat1六、fat3二、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交換分區。

語法

parted (選項) 要執行的parted命令  指定要分區的硬盤所對應的設備文件

選項

-h:顯示幫助信息;

-i:交互式模式;

-s:腳本模式,不提示用戶;

-v:顯示版本號。

實例

parted /dev/sdb

GNU Parted Copyright © 1998 - 2004 freeSoftware Foundation, Inc.

This program is free software, covered by the GNU General PublicLicense.

This program is distributed in the hope that it will be useful, butWITHOUT ANY

WARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A

PARTICULAR PURPOSE.  See theGNU General Public License for more details.

(parted)mklabel gpt

(parted)print

/dev/sdb的磁盤幾何結構:0.000-2048.000兆字節

磁盤標籤類型:gpt

Minor   起始點      終止點 文件系統   名稱                 標誌

(parted)mkpart primary 0 2048 <-----上面print顯示的數字

(parted)print

/dev/sdb的磁盤幾何結構:0.000-2048.000兆字節

磁盤標籤類型:gpt

Minor   起始點      終止點 文件系統   名稱                 標誌

1          0.017   2047.983

(parted)quit

90、mount:用於加載文件系統到指定的加載點

說明

mount命令用於加載文件系統到指定的加載點。此命令的最經常使用於掛載cdrom,使咱們能夠訪問cdrom中的數據,由於你將光盤插入cdrom中,Linux並不會自動掛載,必須使用Linux mount命令來手動完成掛載。

語法

mount (選項) 指定要加載的文件系統對應的設備名  指定加載點目錄

選項

-V:顯示程序版本;

-l:顯示已加載的文件系統列表;

-h:顯示幫助信息並退出;

-v:冗長模式,輸出指令執行的詳細信息;

-n:加載沒有寫入文件「/etc/mtab」中的文件系統;

-r:將文件系統加載爲只讀模式;

-a:加載文件「/etc/fstab」中描述的全部文件系統。

-t vfstype:指定文件系統的類型,一般沒必要指定。mount 會自動選擇正確的類型。

經常使用類型有:

光盤或光盤鏡像             :iso9660
DOS fat16文件系統         :msdos
Windows 9x fat32文件系統  :vfat
Windows NT ntfs文件系統   :ntfs
Mount Windows文件網絡共享 :smbfs
UNIX(LINUX) 文件網絡共享   :nfs

-o options:主要用來描述設備或檔案的掛接方式。

經常使用的參數有:

loop     :用來把一個文件當成硬盤分區掛接上系統
ro       :採用只讀方式掛接設備
rw       :採用讀寫方式掛接設備
iocharset:指定訪問文件系統所用字符集

實例

mount -t auto /dev/cdrom /mnt/cdrom

9一、umount:卸載已經加載的文件系統

說明

umount命令用於卸載已經加載的文件系統。利用設備名或掛載點都能umount文件系統,不過最好仍是經過掛載點卸載,以避免使用綁定掛載(一個設備,多個掛載點)時產生混亂。

語法

umount (選項) 指定要卸載的文件系統或者其對應的設備文件名

選項

-a:卸除/etc/mtab中記錄的全部文件系統;

-h:顯示幫助;

-n:卸除時不要將信息存入/etc/mtab文件中;

-r:若沒法成功卸除,則嘗試以只讀的方式從新掛入文件系統;

-t<文件系統類型>:僅卸除選項中所指定的文件系統;

-f:強制卸載

-l:lazy,延遲卸載

-v:執行時顯示詳細的信息;

-V:顯示版本信息。

實例

umount -v /dev/sda1

umount -v /mnt/mymount/

若是設備正忙,卸載即告失敗。卸載失敗的常見緣由是,某個打開的shell當前目錄爲掛載點裏的某個目錄:

umount -v /mnt/mymount/

umount: /mnt/mymount: device is busy

umount: /mnt/mymount: device is busy

有時,致使設備忙的緣由並很差找。碰到這種狀況時,能夠強制卸載,也能夠用lsof列出已打開文件,而後搜索列表查找待卸載的掛載點。

能夠強制卸載

umount –lf /mnt/nfs

也能夠用lsof列出已打開文件,而後搜索列表查找待卸載的掛載點:

lsof | grep mymount         #查找mymount分區裏打開的文件

bash   9341  francois cwd   DIR   8,1  1024    2 /mnt/mymount

從上面的輸出可知,mymount分區沒法卸載的緣由在於,francois運行的PID爲9341的bash進程。

kill -9 9341

也能夠經過fuser來kill pid

fuser -m /boot 將會顯示使用這個模塊的pid

fuser -mk /boot 將會直接kill那個pid

對付系統文件正忙的另外一種方法是執行延遲卸載:

umount -vl /mnt/mymount/     #執行延遲卸載

延遲卸載(lazy unmount)會當即卸載目錄樹裏的文件系統,等到設備再也不繁忙時才清理全部相關資源。卸載可移動存儲介質還能夠用eject命令。下面這條命令會卸載cd並彈出CD:

eject /dev/cdrom      #卸載並彈出CD

9二、mkfs:用於在設備上(一般爲硬盤)建立Linux文件系統

說明

mkfs命令用於在設備上(一般爲硬盤)建立Linux文件系統。mkfs自己並不執行創建文件系統的工做,而是去調用相關的程序來執行。

語法

mkfs (選項) 指定要建立的文件系統對應的設備文件名或指定文件系統的磁盤塊數

選項

fs:指定創建文件系統時的參數;

-t<文件系統類型>:指定要創建何種文件系統;

-v:顯示版本信息與詳細的使用方法;

-V:顯示簡要的使用方法;

-c:在製作檔案系統前,檢查該partition是否有壞軌。

實例

在/dev/hda5上建一個msdos的檔案系統,同時檢查是否有壞軌存在,而且將過程詳細列出來:

mkfs -V -t msdos -c /dev/hda5

mkfs -t ext3 /dev/sda6     //將sda6分區格式化爲ext3格式

mkfs -t ext2 /dev/sda7     //將sda7分區格式化爲ext2格式

9三、tune2fs:容許系統管理員調整「ext2/ext3」文件系統中的可該參數

說明

tune2fs命令容許系統管理員調整「ext2/ext3」文件系統中的可該參數。Windows下面若是出現意外斷電死機狀況,下次開機通常都會出現系統自檢。Linux系統下面也有文件系統自檢,並且是能夠經過tune2fs命令,自行定義自檢週期及方式

語法

tune2fs (選項) 指定調整的文件系統或者其對應的設備文件名

選項

-c:調整最大加載次數;

-C:設置文件系統已經被加載的次數;

-e:設置內核代碼檢測到錯誤時的行爲;

-f:強制執行修改,即便發生錯誤;

-i:設置相鄰兩次文件系統檢查的相隔時間;

-j:爲「ext2」文件系統添加日誌功能,將其轉換爲「ext3」文件系統;

-l:顯示文件超級塊內容;

-L:設置文件系統卷標;

-m:顯示文件保留塊的百分比;

-M:設置文件系統最後被加載到的目錄;

-o:設置或清除文件系統加載的特性或選項;

-O:設置或清除文件系統的特性或選項;

-r:設置文件系統保留塊的大小;

-T:設置文件系統上次被檢查的時間;

-u:設置可使用文件系統保留塊的用戶;

-U:設置文件系統的UUID。

實例

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和用戶指定的擴展屬性

9四、dumpe2fs:用於打印「ext2/ext3」文件系統的超級塊和快組信息

說明

用於打印「ext2/ext3」文件系統的超級塊和快組信息

語法

dumpe2fs (選項) 指定要查看信息的文件系統

選項

-b:打印文件系統中預留的塊信息;

-ob<超級塊>:指定檢查文件系統時使用的超級塊;

-OB<塊大小>:檢查文件系統時使用的指定的塊大小;

-h:僅顯示超級塊信息;

-i:從指定的文件系統映像文件中讀取文件系統信息;

-x:以16進制格式打印信息塊成員。

實例

dumpe2fs /dev/hda1

dumpe2fs 1.39 (29-May-2006)

Filesystem volume name:   /

last mounted on:         

Filesystem UUID:         845ccd40-1f3b-4729-a63d-cb80f51b082a

Filesystem magic number: 0xEF53

Filesystem revision #:    1(dynamic)

Filesystem features:     has_journal ext_attr resize_inode dir_index filetype needs_recoverysparse_super large_file

Default mount options:   user_xattr acl

Filesystem state:        clean

Errors behavior:         Continue

Filesystem OS type:       Linux

Inode count:             5242880

Block count:             5241817

Reserved block count:     262090

free blocks:             4434157

Free inodes:             5170836

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      1022

Blocks per group:        32768

Fragments per group:     32768

Inodes per group:        32768

Inode blocks per group:   1024

Filesystem created:       SunMar 24 02:09:14 2013

Last mount time:          ThuAug  1 16:42:07 2013

Last write time:          ThuAug  1 16:42:07 2013

Mount count:              10

Maximum mount count:      -1

Last checked:             Sun Mar 24 02:09:14 2013

Check interval:           0()

Reserved blocks uid:      0(user root)

Reserved blocks gid:      0(group root)

First inode:              11

Inode size:               128

Journal inode:            8

First orphan inode:       3735559

Default directory hash:   tea

Directory Hash Seed:     e3f7162e-1194-4161-805d-763db89dbc69

Journal backup:          inode blocks

Journal size:             128M

Group 0: (Blocks 0-32767)

Primary superblock at0, Group descriptors at 1-2

Reserved GDT blocks at3-1024

Block bitmap at 1025(+1025), Inode bitmap at 1026 (+1026)

Inode table at 1027-2050(+1027)

0 free blocks, 32757 freeinodes, 2 directories

Free blocks:

Free inodes: 12-32768

9五、showmount:查詢mountd守護進程,以顯示NFS服務器加載的信息。

說明

showmount命令用於查詢mountd守護進程,以顯示NFS服務器加載共享目錄的相關信息

語法

showmount (選項) 指定NFS服務器的ip

選項

-d:僅顯示已被NFS客戶端加載的目錄;

-e:顯示NFS服務器上全部的共享目錄。

-a:以IP:/dir格式顯示NFS服務器的IP地址和可被掛載的目錄

實例

showmount –e 192.168.1.8

showmount –d 192.168.1.8

showmount –a 192.168.1.8

9六、exportfs:用來管理當前NFS共享的文件系統列表

說明

exportfs命令是NFS服務的管理命令。能夠加載NFS配置生效和,還能夠直接配置NFS共享目錄,也就是無需配置/etc/exports實現共享(但重啓後失效)

語法

exportfs (選項)

選項

-a:打開或取消全部目錄共享。

-o:options,…指定一列共享選項,與 exports(5) 中講到的相似。

-i:忽略 /etc/exports 文件,從而只使用默認的和命令行指定的選項。

-r:從新共享全部目錄。它使/var/lib/nfs/xtab 和/etc/exports 同步。 它將 /etc/exports 中已刪除的條目從 /var/lib/nfs/xtab 中刪除,將內核共享表中任何再也不有效的條目移除。

-u:取消一個或多個目錄的共享。

-f:在「新」模式下,刷新內核共享表以外的任何東西。 任何活動的客戶程序將在它們的下次請求中獲得 mountd添加的新的共享條目。

-v:輸出詳細信息。當共享或者取消共享時,顯示在作什麼。 顯示當前共享列表的時候,同時顯示共享的選項。

實例

exportfs -rv :加載配置生效,等價於/etc/init.d/nfs reload

exportfs –o rw,sync,all_squash,anonuid=555,anongid=555192.126.1.0/24:/data

9七、rpcinfo:查看rpc中註冊的服務

說明

rpcinfo命令用於顯示那些使用rpc/portmap註冊的程序的信息,並向程序進行RPC調用,檢查它們是否正常運行。

語法

rpcinfo -p [host]

rpcinfo [-n port] -u |- t host program [version]

rpcinfo -b | -d program version

選項

-p (probe,探測) 列出全部在host用portmap註冊的RPC程序,若是沒有指定host,就查找本機上的RPC程序。

-n (port number,端口號) 根據-t或者-u,使用編號爲port的端口,而不是由portmap指定的端口號。

-u (UDP) UDP RPC調用host上程序program的version版本(若是指定的話),並報告是否接收到響應。

-t (TCP) TCP RPC調用host上程序program的version版本(若是指定的話),並報告是否接收到響應。

-b (broadcast,廣播) 向程序program的version版本進行RPC廣播,並列出響應的主機。

-d (delete,刪除) 將程序program的version版本從本機的RPC註冊表中刪除。只有具備root特權的用戶纔可使用這個選項。

實例

rpcinfo –p localhost

9八、ssh:遠程登陸命令

說明

ssh命令是openssh套件中的客戶端鏈接工具,能夠給予ssh加密協議實現安全的遠程登陸服務器。

語法

ssh (選項) 要鏈接的遠程ssh服務器

選項

-1:強制使用ssh協議版本1;

-2:強制使用ssh協議版本2;

-4:強制使用IPv4地址;

-6:強制使用IPv6地址;

-A:開啓認證代理鏈接轉發功能;

-a:關閉認證代理鏈接轉發功能;

-b:使用本機指定地址做爲對應鏈接的源

-C:請求壓縮全部數據;

-F:指定ssh指令的配置文件;

-f:後臺執行ssh指令;

-g:容許遠程主機鏈接主機的轉發端口;

-i:指定身份文件;

-l:指定鏈接遠程服務器登陸用戶名;

-N:不執行遠程指令;

-o:指定配置選項;

-p:指定遠程服務器上的端口;

-q:靜默模式;

-v:調試模式

-X:開啓X11轉發功能;

-x:關閉X11轉發功能;

-y:開啓信任X11轉發功能。

實例

ssh -p28888 root@192.168.58.238

ssh root@192.168.58.238 /sbin/ifconfig

9九、scp:遠程拷貝文件命令

說明

scp命令用於在Linux下進行遠程拷貝文件的命令

語法

scp (選項)  要複製的源文件  目標文件

選項

-1:使用協議版本1;

-2:使用ssh協議版本2;

-4:使用ipv4;

-6:使用ipv6;

-B:以批處理模式運行;

-C:使用壓縮;

-F:指定ssh配置文件;

-l:指定寬帶限制;

-o:指定使用的ssh選項;

-P:指定遠程主機的端口號;

-p:保留文件的最後修改時間,最後訪問時間和權限模式;

-q:不顯示覆制進度;

-r:以遞歸方式複製。

實例

scp test.txt root@192.168.1.8:/tmp #將文件發送到遠程服務器

scp root@192.168.1.8:/tmp/test.txt /wddg  #將文件從遠程服務器拷貝回來

100、rsync:遠程數據同步工具

說明

rsync命令是一個遠程數據同步工具,可經過LAN/WAN快速同步多臺主機間的文件。rsync使用所謂的「rsync算法」來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不一樣部分,而不是每次都整份傳送,所以速度至關快。

語法

rsync [OPTION]… SRC DEST

rsync [OPTION]… SRC [USER@]host:DEST

rsync [OPTION]… [USER@]HOST:SRC DEST

rsync [OPTION]… [USER@]HOST::SRC DEST

rsync [OPTION]… SRC [USER@]HOST::DEST

rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]

選項

-v, --verbose 詳細模式輸出。

-q, --quiet 精簡輸出模式。

-c, --checksum 打開校驗開關,強制對文件傳輸進行校驗。

-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持全部文件屬性,等於-rlptgoD。

-r, --recursive 對子目錄以遞歸模式處理。

-R, --relative 使用相對路徑信息。

-b, --backup 建立備份,也就是對於目的已經存在有一樣的文件名時,將老的文件從新命名爲~filename。可使用–suffix選項來指定不一樣的備份文件前綴。

–backup-dir 將備份文件(如~filename)存放在在目錄下。

-suffix=SUFFIX 定義備份文件前綴。

-u, --update 僅僅進行更新,也就是跳過全部已經存在於DST,而且文件時間晚於要備份的文件,不覆蓋更新的文件。

-l, --links 保留軟鏈結。

-L, --copy-links 想對待常規文件同樣處理軟鏈結。

–copy-unsafe-links 僅僅拷貝指向SRC路徑目錄樹之外的鏈結。

–safe-links 忽略指向SRC路徑目錄樹之外的鏈結。

-H, --hard-links 保留硬鏈結。

-p, --perms 保持文件權限。

-o, --owner 保持文件屬主信息。

-g, --group 保持文件屬組信息。

-D, --devices 保持設備文件信息。

-t, --times 保持文件時間信息。

-S, --sparse 對稀疏文件進行特殊處理以節省DST的空間。

-n, --dry-run現實哪些文件將被傳輸。

-w, --whole-file 拷貝文件,不進行增量檢測。

-x, --one-file-system 不要跨越文件系統邊界。

-B, --block-size=SIZE 檢驗算法使用的塊尺寸,默認是700字節。

-e, --rsh=command 指定使用rsh、ssh方式進行數據同步。

–rsync-path=PATH 指定遠程服務器上的rsync命令所在路徑信息。

-C, --cvs-exclude 使用和CVS同樣的方法自動忽略文件,用來排除那些不但願傳輸的文件。

–existing 僅僅更新那些已經存在於DST的文件,而不備份那些新建立的文件。

–delete 刪除那些DST中SRC沒有的文件。

–delete-excluded 一樣刪除接收端那些被該選項指定排除的文件。

–delete-after 傳輸結束之後再刪除。

–ignore-errors 及時出現IO錯誤也進行刪除。

–max-delete=NUM 最多刪除NUM個文件。

–partial 保留那些因故沒有徹底傳輸的文件,以是加快隨後的再次傳輸。

–force 強制刪除目錄,即便不爲空。

–numeric-ids 不將數字的用戶和組id匹配爲用戶名和組名。

–timeout=time ip超時時間,單位爲秒。

-I, --ignore-times 不跳過那些有一樣的時間和長度的文件。

–size-only 當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間。

–modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,默認爲0。

-T --temp-dir=DIR 在DIR中建立臨時文件。

–compare-dest=DIR 一樣比較DIR中的文件來決定是否須要備份。

-P 等同於 --partial。

–progress 顯示備份過程。

-z, --compress 對備份的文件在傳輸時進行壓縮處理。

–exclude=PATTERN 指定排除不須要傳輸的文件模式。

–include=PATTERN 指定不排除而須要傳輸的文件模式。

–exclude-from=FILE 排除FILE中指定模式的文件。

–include-from=FILE 不排除FILE指定模式匹配的文件。

–version 打印版本信息。

–address 綁定到特定的地址。

–config=FILE 指定其餘的配置文件,不使用默認的rsyncd.conf文件。

–port=PORT 指定其餘的rsync服務端口。

–blocking-io 對遠程shell使用阻塞IO。

-stats 給出某些文件的傳輸狀態。

–progress 在傳輸時現實傳輸過程。

–log-format=formAT 指定日誌文件格式。

–password-file=FILE 從FILE中獲得密碼。

–bwlimit=KBPS 限制I/O帶寬,KBytes per second。

-h, --help 顯示幫助信息。

實例

對應於以上六種命令格式,rsync有六種不一樣的工做模式:

(1)拷貝本地文件。當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啓動這種工做模式。

如:rsync -a /data /backup

(2)使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啓動該模式。

如:rsync -avz *.c foo:src

(3)使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啓動該模式。

如:rsync -avz foo:src/bar /data

(4)從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啓動該模式。

如:rsync -av root@192.168.78.192::www/databack

(5)從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啓動該模式。

如:rsync -av /databackroot@192.168.78.192::www

(6)列遠程機的文件列表。這相似於rsync傳輸,不過只要在命令中省略掉本地機信息便可。

如:rsync -v rsync://192.168.78.192/www

10一、paste :將多個文件按列隊列合併

說明

paste命令用於將多個文件按照列隊列進行合併

語法

paste (選項) 指定須要合併的文件列表

選項

-d<間隔字符>或–delimiters=<間隔字符>:用指定的間隔字符取代跳格字符;

-s或–serial串列進行而非平行處理。

實例

paste inotify_client_100.log inotify_server_100.10g

paste inotify_client_100.log inotify_server_100.10g  > inotify_100.log

10二、split:分割任意大小的文件

說明

split命令能夠將一個大文件分割成不少個小文件,有時須要將文件分割成更小的片斷,好比爲提升可讀性,生成日誌等。

語法

split (選項) 文件名

選項

-b:值爲每一輸出檔案的大小,單位爲byte。

-C:每一輸出檔中,單行的最大 byte數。

-d:使用數字做爲後綴。

-a length:來指定後綴的長度

-l:值爲每一輸出檔的列數大小。

實例

(1)使用split命令將date.file文件分割成大小爲10KB的小文件

split -b 10k date.file

(2)文件被分割成多個帶有字母的後綴文件,若是想用數字後綴可以使用-d參數,同時使用-a來指定後綴的長度

split -b 10k date.file -d -a 3

(3)爲分割後的文件指定文件名的前綴

split -b 10k date.file -d -a 3 split_file

(4)文件分割成每一個包含10行的小文件

split -l 10 date.file

10三、uniq:去重,報告或忽略文件中的重複行

說明

uniq命令用於報告或忽略文件中的重複行,通常與sort命令結合使用。

uniq命令只是去掉連續出現的重複記錄,如查不鏈接的重複記錄是不會排除的。

sort -u則能夠去掉全部重複記錄

語法

uniq(選項)(參數)

選項

-c或–count:在每列旁邊顯示該行重複出現的次數;

-d或–repeated:僅顯示重複出現的行列;

-f<欄位>或–skip-fields=<欄位>:忽略比較指定的欄位;

-s<字符位置>或–skip-chars=<字符位置>:忽略比較指定的字符;

-u或–unique:僅顯示出一次的行列;

-w<字符位置>或–check-chars=<字符位置>:指定要比較的字符。

參數

輸入文件:指定要去除的重複行文件。若是不指定此項,則從標準讀取數據;

輸出文件:指定要去除重複行後的內容要寫入的輸出文件。若是不指定此選項,則將內容顯示到標準輸出設備(顯

示終端)。

實例

(1)刪除重複行

uniq file.txt

sort file.txt | uniq

sort -u file.txt

(2)只顯示單一行

uniq -u file.txt

sort file.txt | uniq -u

(3)統計各行在文件中出現的次數

sort file.txt | uniq -c

(4)在文件中找出重複的行

sort file.txt | uniq -d

(5)uniq與sort -u的對比

a、樣表a.log

cat a.log

aa

aa

bb

aa

b、uniq去重

uniq a.log

aa

bb

aa

c、sort -u去重

sort -u a.log

aa

bb

d、sort和uniq組合去重

sort a.log | uniq

aa

bb

10四、sort:排序

說明

sort命令是在Linux裏很是有用,它將文件進行排序,並將排序結果標準輸出。sort命令既能夠從特定的文件,也能夠從stdin中獲取輸入。sort將文件/文本的每一行做爲一個單位,相互比較,比較原則是從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。

語法

sort  (選項) 指定待排序的文件列表

選項

-b:忽略每行前面開始出的空格字符;

-c:檢查文件是否已經按照順序排序;

-d:排序時,處理英文字母、數字及空格字符外,忽略其餘的字符;

-f:排序時,將小寫字母視爲大寫字母;

-i:排序時,除了040至176之間的ASCII字符外,忽略其餘的字符;

-m:將幾個排序號的文件進行合併;

-M:將前面3個字母依照月份的縮寫進行排序;

-n:依照數值的大小排序;

-o<輸出文件>:將排序後的結果存入制定的文件;

-r:以相反的順序來排序;

-t<分隔字符>:指定排序時所用的欄位分隔字符;

-k:按指定列排序 +<起始欄位>-<結束欄位>:以指定的欄位來排序,範圍由起始欄位到結束欄位的前一欄位。點號「。」表示鏈接的是字符,逗號「,」表示鏈接的是字段。

如:k3,3:表示從第3個字段開始排序,到第3個字段結束

k3,5:表示從第3個字段開始排序,到第5個字段結束

k4.1,4.3:表示從第4個字段的第1個字符開始排序,到第4個字段的第3個字符結束

實例

(1)樣表

cat sort.txt

aaa:10:1.1

ccc:30:3.3

ddd:40:4.4

bbb:20:2.2

eee:50:5.5

eee:50:5.5

(2)無參數排序

sort sort.txt

aaa:10:1.1

bbb:20:2.2

ccc:30:3.3

ddd:40:4.4

eee:50:5.5

eee:50:5.5

(3)忽略相同行排序:使用-u選項或者uniq

sort -u sort.txt

aaa:10:1.1

bbb:20:2.2

ccc:30:3.3

ddd:40:4.4

eee:50:5.5

或者

uniq sort.txt

aaa:10:1.1

ccc:30:3.3

ddd:40:4.4

bbb:20:2.2

eee:50:5.5

(4)sort的-n、-r、-k、-t選項的使用:

-n是按照數字大小排序

-r是以相反順序

-k是指定須要愛排序的欄位

-t指定欄位分隔符爲冒號

a、樣表

cat sort.txt

AAA:BB:CC

aaa:30:1.6

ccc:50:3.3

ddd:20:4.2

bbb:10:2.5

eee:40:5.4

eee:60:5.1

b、將BB列按照數字從小到大順序排列:

sort -nk 2 -t: sort.txt

AAA:BB:CC

bbb:10:2.5

ddd:20:4.2

aaa:30:1.6

eee:40:5.4

ccc:50:3.3

eee:60:5.1

c、將CC列數字從大到小順序排列:

sort -nrk 3 -t: sort.txt

eee:40:5.4

eee:60:5.1

ddd:20:4.2

ccc:50:3.3

bbb:10:2.5

aaa:30:1.6

AAA:BB:CC

(5)將樣表先按IP第3列排序,再按第4列排序

a、樣表

cat sort.txt

192.168.3.1

192.168.3.2

192.168.3.3

192.168.2.20

192.168.2.21

192.168.2.22

192.168.0.151

192.168.0.152

192.168.0.153

192.168.1.10

192.168.1.11

192.168.1.12

192.168.1.1

192.168.2.2

192.168.3.3

192.168.1.21

192.168.2.22

192.168.0.151

b、解答

sort -t 「.」 -n -k3 -k4.1,4.3 sort.txt

sort -t 「.」 -n -k3 -k4,4.3 sort.txt

10五、rename:用字符串替換的方式批量改變文件名

說明

rename命令用字符串替換的方式批量改變文件名。

語法

rename from to file

選項

from:原字符串,將文件名須要替換的字符串。也就是要改的內容

to:目標字符串,將文件名中含有的原字符替換成目標字符串。也就是改成什麼

file:文件,指定要改變文件名的文件列表。也就是要改的文件

rename支持正則表達式和通配符:

?  可替代單個字符

*  可替代多個字符

[charset]  可替代charset集中的任意單個字符

實例

示例:文件夾中有這些文件foo1, …, foo9, foo10, …,foo278

(1)將main1.c重命名爲main.c

rename main1.c main.c main1.c

(2)把foo1到foo9的文件重命名爲foo01到foo09(重命名的文件只是有4個字符長度名稱的文件)

rename foo foo0 foo?

(3)foo01到foo99的全部文件都被重命名爲foo001到foo099,只重命名5個字符長度名稱的文件

rename foo foo0 foo??

(4)foo001到foo278的全部文件都被重命名爲foo0001到foo0278,

rename foo foo0 foo*。

(5)從foo0200到foo0278的全部文件都被重命名爲foo200到foo278

rename foo0 foo foo0[2]*

(6)把文件名中的AA替換成aa

rename s/AA/aa/ *

(7)把.html 後綴的改爲 .php後綴

rename s//.html//./ *

(9)把全部的文件名都以txt結尾

rename s/$//.txt/ *

(10)把全部以.txt結尾的文件名的.txt刪掉

rename s//.txt// *

10六、zip:能夠用來壓縮文件,或者對文件進行打包操做

說明

zip命令能夠用來解壓縮文件,或者對文件進行打包操做。zip是個使用普遍的壓縮程序,文件經它壓縮後會另外產生具備「.zip」擴展名的壓縮文件。

語法

zip  (選項) 指定要建立的zip壓縮包 指定要壓縮的文件列表

選項

-A:調整可執行的自動解壓縮文件;

-b<工做目錄>:指定暫時存放文件的目錄;

-c:替每一個被壓縮的文件加上註釋;

-d:從壓縮文件內刪除指定的文件;

-D:壓縮文件內不創建目錄名稱;

-f:此參數的效果和指定「-u」參數相似,但不只更新既有文件,若是某些文件本來不存在於壓縮文件內,使用本參數會一併將其加入壓縮文件中;

-F:嘗試修復已損壞的壓縮文件;

-g:將文件壓縮後附加在已有的壓縮文件以後,而非另行創建新的壓縮文件;

-h:在線幫助;

-i<範本樣式>:只壓縮符合條件的文件;

-j:只保存文件名稱及其內容,而不存聽任何目錄名稱;

-J:刪除壓縮文件前面沒必要要的數據;

-k:使用MS-DOS兼容格式的文件名稱;

-l:壓縮文件時,把LF字符置換成LF+CR字符;

-ll:壓縮文件時,把LF+cp字符置換成LF字符;

-L:顯示版權信息;

-m:將文件壓縮並加入壓縮文件後,刪除原始文件,即把文件移到壓縮文件中;

-n<字尾字符串>:不壓縮具備特定字尾字符串的文件;

-o:以壓縮文件內擁有最新更改時間的文件爲準,將壓縮文件的更改時間設成和該文件相同;

-q:不顯示指令執行過程;

-r:遞歸處理,將指定目錄下的全部文件和子目錄一併處理;

-S:包含系統和隱藏文件;

-t<日期時間>:把壓縮文件的日期設成指定的日期;

-T:檢查備份文件內的每一個文件是否正確無誤;

-u:更換較新的文件到壓縮文件內;

-v:顯示指令執行過程或顯示版本信息;

-V:保存VMS操做系統的文件屬性;

-w:在文件名稱裏假如版本編號,本參數僅在VMS操做系統下有效;

-x<範本樣式>:壓縮時排除符合條件的文件;

-X:不保存額外的文件屬性;

-y:直接保存符號鏈接,而非該連接所指向的文件,本參數僅在UNIX之類的系統下有效;

-z:替壓縮文件加上註釋;

-$:保存第一個被壓縮文件所在磁盤的卷冊名稱;

-<壓縮效率>:壓縮效率是一個介於1~9的數值。

實例

將/home/Blinux/html/這個目錄下全部文件和文件夾打包爲當前目錄下的html.zip:

zip -q -r html.zip /home/Blinux/html或zip -q -r html.zip html

(2)在html目錄下壓縮:

zip -q -r html.zip *

10七、unzip:用於解壓縮由zip命令壓縮的「.zip」壓縮包

說明

用於解壓縮由zip命令壓縮的「.zip」壓縮包

語法

unzip   (選項)   指定要解壓的「.zip」壓縮包

選項

-c:將解壓縮的結果顯示到屏幕上,並對字符作適當的轉換;

-f:更新現有的文件;

-l:顯示壓縮文件內所包含的文件;

-p:與-c參數相似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換;

-t:檢查壓縮文件是否正確;

-u:與-f參數相似,可是除了更新現有的文件外,也會將壓縮文件中的其餘文件解壓縮到目錄中;

-v:執行時顯示詳細的信息;

-z:僅顯示壓縮文件的備註文字;

-a:對文本文件進行必要的字符轉換;

-b:不要對文本文件進行字符轉換;

-C:壓縮文件中的文件名稱區分大小寫;

-j:不處理壓縮文件中原有的目錄路徑;

-L:將壓縮文件中的所有文件名改成小寫;

-M:將輸出結果送到more程序處理;

-n:解壓縮時不要覆蓋原有的文件;

-o:沒必要先詢問用戶,unzip執行後覆蓋原有的文件;

-P<密碼>:使用zip的密碼選項;

-q:執行時不顯示任何信息;

-s:將文件名中的空白字符轉換爲底線字符;

-V:保留VMS的文件版本信息;

-X:解壓縮時同時回存文件原來的UID/GID;

-d<目錄>:指定文件解壓縮後所要存儲的目錄;

-x<文件>:指定不要處理.zip壓縮文件中的哪些文件;

-Z:unzip-Z等於執行zipinfo指令;

實例

(1)將壓縮文件text.zip在當前目錄下解壓縮

unzip test.zip

(2)將壓縮文件text.zip在指定目錄/tmp下解壓縮,若有相同的文件存在,要求不覆蓋原先的文件

unzip -n test.zip -d /tmp

(3)查看壓縮文件目錄,但不解壓

unzip -v test.zip

(4)將壓縮文件test.zip在指定目錄/tmp下解壓縮,若有相同的文件存在,要求覆蓋原先的文件

unzip -o test.zip -d tmp/

10八、kill:經過進程號來殺死進程

說明

kill命令用來刪除執行中的程序或工做。kill可將指定的信息送至程序。預設的信息爲SIGTERM(15),可將指定程序終止。若仍沒法終止該程序,可以使用SIGKILL(9)信息嘗試強制刪除程序。程序或工做的編號可利用ps指令或job指令查看。

語法

kill  (選項) 進程號

選項

-a:當處理當前進程時,不限制命令名和進程號的對應關係

-l <信息編號>:若不加<信息編號>選項,則-l參數會列出所有的信息名稱

-p:指定kill 命令只打印相關進程的進程號,而不發送任何信號

-s <信息名稱或編號>:指定要送出的信息

-u:指定用戶。

實例

(1)列出全部信號名稱:

kill -l

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL

5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE

9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2

  1. SIGPIPE     14)SIGALRM     15) SIGTERM     16) SIGSTKFLT

  2. SIGCHLD     18)SIGCONT     19) SIGSTOP     20) SIGTSTP

  3. SIGTTIN     22)SIGTTOU     23) SIGURG      24) SIGXCPU

  4. SIGXFSZ     26)SIGVTALRM   27) SIGPROF     28) SIGWINCH

  5. SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN

  6. SIGRTMIN+1  36)SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4

  7. SIGRTMIN+5  40)SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8

  8. SIGRTMIN+9  44)SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12

  9. SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14

  10. SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10

  11. SIGRTMAX-9  56)SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6

  12. SIGRTMAX-5  60)SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2

  13. SIGRTMAX-1  64) SIGRTMAX

只有第9種信號(SIGKILL)才能夠無條件終止進程,其餘信號進程都有權利忽略。

(2)經常使用的信號:

HUP     1    終端斷線

INT     2    中斷(同 Ctrl + C)

QUIT    3    退出(同 Ctrl + \)

TERM   15    終止

KILL    9    強制終止

CONT   18    繼續(與STOP相反,fg/bg)

STOP   19    暫停(同 Ctrl + Z)

(3)用kill直接殺掉

kill 11234

kill -9 11234

(4)經過ps查出進程號再用kill殺掉

ps –ef | grep php-fpm | awk ‘{print $2}’ | xargs kill

10九、killall:經過進程的名稱來殺死進程

說明

killall命令使用進程的名稱來殺死進程,使用此指令能夠殺死一組同名進程。咱們可使用kill命令殺死指定進程PID的進程,若是要找到咱們須要殺死的進程,咱們還須要在以前使用ps等命令再配合grep來查找進程,而killall把這兩個過程合二爲一,是一個很好用的命令。

語法

killall  (選項) 進程名稱

選項

-e:對長名稱進行精確匹配

-l:忽略大小寫的不一樣

-p:殺死進程所屬的進程組

-i:交互式殺死進程,殺死進程前須要進行確認

-l:打印全部已知信號列表

-q:若是沒有進程被殺死。則不輸出任何信息

-r:使用正規表達式匹配要殺死的進程名稱

-s:用指定的進程號代替默認信號「SIGTERM」

-u:殺死指定用戶的進程。

實例

(1)殺死全部同名進程

killall php-fpm

1十、pkill:經過進程的名稱來殺死進程

說明

能夠按照進程名殺死進程。pkill和killall應用方法差很少,也是直接殺死運行中的程序;若是您想殺掉單個進程,請用kill來殺掉。

語法

pkill  (選項) 進程名稱

選項

-o:僅向找到的最小(起始)進程號發送信號

-n:僅向找到的最大(結束)進程號發送信號

-P:指定父進程號發送信號

-g:指定進程組

-t:指定開啓進程的終端。

實例

(1)殺死全部同名進程

pkill php-fpm

1十一、ulimit:限制系統用戶對shell資源的訪問

說明

ulimit命令用來限制系統用戶對shell資源的訪問。實際應用的環境各方面的資源都是很是緊缺的,對於開啓文件描述符的數量,分配堆棧的大小,CPU 時間,虛擬內存大小,等等,都有很是嚴格的要求。資源的合理限制和分配,不只僅是保證系統可用性的必要條件,也與系統上軟件運行的性能有着密不可分的聯繫。這時,ulimit 能夠起到很大的做用,它是一種簡單而且有效的實現資源限制的方式。 ulimit 用於限制 shell 啓動進程所佔用的資源,支持如下各類類型的限制:所建立的內核文件的大小、進程數據塊的大小、Shell 進程建立文件的大小、內存鎖住的大小、常駐內存集的大小、打開文件描述符的數量、分配堆棧的最大大小、CPU 時間、單個用戶的最大線程數、Shell進程所能使用的最大虛擬內存。同時,它支持硬資源和軟資源的限制。 做爲臨時限制,ulimit 能夠做用於經過使用其命令登陸的 shell 會話,在會話終止時便結束限制,並不影響於其餘 shell 會話。而對於長期的固定限制,ulimit 命令語句又能夠被添加到由登陸 shell 讀取的文件中,做用於特定的 shell 用戶。

語法

ulimit  (選項)

選項

-a:顯示目前資源限制的設定

-c :設定core文件的最大值,單位爲區塊

-d <數據節區大小>:程序數據節區的最大值,單位爲KB

-f <文件大小>:shell所能創建的最大文件,單位爲區塊

-H:設定資源的硬性限制,也就是管理員所設下的限制

-m <內存大小>:指定可以使用內存的上限,單位爲KB

-n <文件數目>:指定同一時間最多可開啓的文件數

-p <緩衝區大小>:指定管道緩衝區的大小,單位512字節

-s <堆疊大小>:指定堆疊的上限,單位爲KB

-S:設定資源的彈性限制

-t :指定CPU使用時間的上限,單位爲秒

-u <程序數目>:用戶最多可開啓的程序數目

-v <虛擬內存大小>:指定可以使用的虛擬內存上限,單位爲KB

實例

(1)顯示目前資源限制的設定

ulimit -a

core file size         (blocks, -c) 0           #core文件的最大值爲100 blocks。

data seg size          (kbytes, -d) unlimited   #進程的數據段能夠任意大。

scheduling priority            (-e) 0

file size              (blocks, -f) unlimited   #文件能夠任意大。

pending signals                (-i) 98304       #最多有98304個待處理的信號。

max locked memory      (kbytes, -l) 32          #一個任務鎖住的物理內存的最大值爲32KB。

max memory size        (kbytes, -m) unlimited   #一個任務的常駐物理內存的最大值。

open files                     (-n) 1024        #一個任務最多能夠同時打開1024的文件。

pipe size            (512bytes, -p) 8           #管道的最大空間爲4096字節。

POSIX message queues    (bytes, -q) 819200      #POSIX的消息隊列的最大值爲819200字節。

real-time priority             (-r) 0

stack size             (kbytes, -s) 10240       #進程的棧的最大值爲10240字節。

cpu time              (seconds, -t) unlimited   #進程使用的CPU時間。

max user processes           (-u) 98304  #當前用戶同時打開的進程(包括線程)的最大個數爲98304。

virtual memory         (kbytes, -v) unlimited   #沒有限制進程的最大地址空間。

file locks                     (-x) unlimited   #所能鎖住的文件的最大個數沒有限制

(2)臨時設置鏈接數爲Linux容許的最大值65535

ulimit -SHn 65535

1十二、dirname:去除文件名中的非目錄部分,僅顯示與目錄有關的內容。

說明

dirname命令讀取指定路徑名保留最後一個/及其後面的字符,刪除其餘部分,並寫結果到標準輸出。若是最後一個/後無字符,dirname 命令使用倒數第二個/,並忽略其後的全部字符。dirname 和basename 一般在 shell 內部命令替換使用,以指定一個與指定輸入文件名略有差別的輸出文件名。

語法

dirname(選項)(參數)

選項

–help:顯示幫助;

–version:顯示版本號。

實例

dirname //

結果爲 /

dirname /a/b/

結果爲:/a

dirname a

結果爲 .

dirname a/b

結果爲路徑名 a

11三、basename:用於打印目錄或者文件的基本名稱。

說明

basename命令用於打印目錄或者文件的基本名稱。basename和dirname命令一般用於shell腳本中的命令替換來指定和指定的輸入文件名稱有所差別的輸出文件名稱。

語法

dirname(選項)(參數)

選項

–help:顯示幫助;

–version:顯示版本號。

參數

文件:帶路徑信息的文件;

後綴:可選參數,指定要去除的文件後綴字符串。

實例

basename /home/jim/program.c

結果:program.c

11四、iptables:Linux上經常使用的防火牆軟件

說明

iptables命令是Linux上經常使用的防火牆軟件,是netfilter項目的一部分。能夠直接配置,也能夠經過許多前端和圖形界面配置。

語法

iptables(選項)(參數)

選項

-t表:指定要操縱的表;

-A:向規則鏈中添加條目;

-D:從規則鏈中刪除條目;

-I:向規則鏈中插入條目;

-R:替換規則鏈中的條目;

-L:顯示規則鏈中已有的條目;

-F:清楚規則鏈中已有的條目;

-Z:清空規則鏈中的數據包計算器和字節計數器;

-N:建立新的用戶自定義規則鏈;

-P:定義規則鏈中的默認目標;

-h:顯示幫助信息;

-p:指定要匹配的數據包協議類型;

-s:指定要匹配的數據包源ip地址;

-j目標:指定要跳轉的目標;

-i網絡接口:指定數據包進入本機的網絡接口;

-o網絡接口:指定數據包要離開本機所使用的網絡接口。

實例

(1)iptables命令選項輸入順序

iptables -t 表名-A/I/D/R 規則鏈名 [規則號] -i/o 網卡名 -p 協議名 -s 源IP/源子網 --sport 源端口-d 目標IP/目標子網 --dport 目標端口 -j 動做

表名包括:

raw:高級功能,如:網址過濾。

mangle:數據包修改(QOS),用於實現服務質量。

net:地址轉換,用於網關路由器。

filter:包過濾,用於防火牆規則。

規則鏈名包括:

INPUT鏈:處理輸入數據包。

OUTPUT鏈:處理輸出數據包。

PORWARD鏈:處理轉發數據包。

PREROUTING鏈:用於目標地址轉換(DNAT)。

POSTOUTING鏈:用於源地址轉換(SNAT)。

動做包括:

accept:接收數據包。

DROP:丟棄數據包。

REDIRECT:重定向、映射、透明代理。

SNAT:源地址轉換。

DNAT:目標地址轉換。

MASQUERADE:IP假裝(NAT),用於ADSL。

LOG:日誌記錄。

(2)清除已有iptables規則

iptables -F

iptables -X

iptables -Z

(3)開放指定的端口

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT    #容許本地迴環接口(即運行本機訪問本機)

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT#容許已創建的或相關連的通行

iptables -A OUTPUT -j ACCEPT        #容許全部本機向外的訪問

iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #容許訪問22端口

iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #容許訪問80端口

iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #容許ftp服務的21端口

iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #容許FTP服務的20端口

iptables -A INPUT -j reject      #禁止其餘未容許的規則訪問

iptables -A FORWARD -j REJECT    #禁止其餘未容許的規則訪問

(4)屏蔽IP

iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽單個IP的命令

iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整個段從123.0.0.1到123.255.255.254的命令

iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段從123.45.0.1到123.45.255.254的命令

iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段從123.45.6.1到123.45.6.254的命令

(5)查看已添加的iptables規則

iptables -L -n -v

(6)刪除已添加的iptables規則

iptables -L -n --line-numbers

(7)刪除INPUT裏序號爲8的規則

iptables -D INPUT 8

11五、test命令:是shell環境中測試條件表達式的實用工具。

說明

test命令是shell環境中測試條件表達式的實用工具

語法

test (選項)

選項

-b<文件>:若是文件爲一個塊特殊文件,則爲真;

-c<文件>:若是文件爲一個字符特殊文件,則爲真;

-d<文件>:若是文件爲一個目錄,則爲真;

-e<文件>:若是文件存在,則爲真; 廣義的文件,目錄也算文件

-f<文件>:若是文件爲一個普通文件,則爲真;

-g<文件>:若是設置了文件的SGID位,則爲真;

-G<文件>:若是文件存在且歸該組全部,則爲真;

-k<文件>:若是設置了文件的粘着位,則爲真;

-O<文件>:若是文件存在而且歸該用戶全部,則爲真;

-p<文件>:若是文件爲一個命名管道,則爲真;

-r<文件>:若是文件可讀,則爲真;

-s<文件>:若是文件的長度不爲零,則爲真;

-S<文件>:若是文件爲一個套接字特殊文件,則爲真;

-u<文件>:若是設置了文件的SUID位,則爲真;

-w<文件>:若是文件可寫,則爲真;

-x<文件>:若是文件可執行,則爲真。

實例

(1)判斷表達式

if test     #表達式爲真

if test !   #表達式爲假

test 表達式1 -a 表達式2    #and,兩個表達式都爲真

test 表達式1 -o 表達式2    #or,兩個表達式有一個爲真

test 表達式1 ! 表達式2       #not,條件求反

(2)判斷字符串

test -n 字符串    #字符串的長度非零

test -z 字符串    #字符串的長度是否爲零

test 字符串1=字符串2       #字符串是否相等,若相等返回true

test 字符串1!=字符串2      #字符串是否不等,若不等反悔false

(3)判斷整數

test 整數1 -eq 整數2   #整數相等

test 整數1 -ge 整數2   #整數1大於等於整數2

test 整數1 -gt 整數2   #整數1大於整數2

test 整數1 -le 整數2   #整數1小於等於整數2

test 整數1 -lt 整數2   #整數1小於整數2

test 整數1 -ne 整數2   #整數1不等於整數2

(4)判斷文件

test File1 -ef File2    兩個文件是否爲同一個文件,可用於硬鏈接。主要判斷兩個文件是否指向同一個inode。

test File1 -nt File2    判斷文件1是否比文件2新

test File1 -ot File2    判斷文件1比是否文件2舊

test -b File   #文件是否塊設備文件

test -c File   #文件而且是字符設備文件

test -d File   #文件而且是目錄

test -e File   #文件是否存在 (經常使用)

test -f File   #文件是否爲正規文件 (經常使用)

test -g File   #文件是不是設置了組id

test -G File   #文件屬於的有效組ID

test -h File   #文件是不是一個符號連接(同-L)

test -k File   #文件是否設置了Sticky bit位

test -b File   #文件存在而且是塊設備文件

test -L File   #文件是不是一個符號連接(同-h)

test -o File   #文件的屬於有效用戶ID

test -p File   #文件是一個命名管道

test -r File   #文件是否可讀

test -s File   #文件是不是非空白文件

test -t FD     #文件描述符是在一個終端打開的

test -u File   #文件存在而且設置了它的set-user-id位

test -w File   #文件是否存在並可寫

test -x File   #文件屬否存在並可執行

原文:https://blog.csdn.net/rumengjian/article/details/76377278

相關文章
相關標籤/搜索