天天看點

linux基礎指令

cd指令

cd用來變更使用者所在目錄的後面如什麼都不跟會直接到目前

使用者的根目錄下 cd 後面隻能是目錄名,而不能是檔案名

cd – 表示上一次所在的目錄

cd ~ 表示使用者的家目錄

cd ..傳回上一級

用 pwd 指令 檢視目前所在位置

ls指令

ls -l 列出詳細資訊

ls -a 列出所有檔案,包括隐藏檔案

ls -t 按檔案的最後更改時間排序

ls -ld 針對目錄的,s隻列出目錄本身

which 指令用來查找某個指令的絕對路徑。

mkdir 指令

mkdir用來建立目錄其中mkdir -p選項很管用常用于建立一串目錄

mkdir -m用來指定要建立目錄的權限 不常用

rmdir指令

rmdir -p指令可以删除一大串空目錄 若目錄中含有子(非空)目錄無法删除

rm指令

rm指令是最常用的删除指令 rm -r指令等同于rmdir   rm -rf指令不管删除檔案還是目錄都可以

cp指令

cp -r指令拷貝目錄 若不加-r 則拷貝不起目錄

cp -i指令安全選項遇到一個存在的檔案會問是否覆寫

mv指令

mv 選項 源檔案 目标檔案

mv -i指令當目标檔案存在時會問使用者是否覆寫 同cp -i

目标檔案是目錄,存在或不存在,移動的結果是不一樣的,如果存在,則會把源檔案移動到目标檔案目錄中。不存在的話移動完後,目标檔案是一個檔案。

cat指令

cat指令用于檢視一個檔案的内容并顯示出來 cat指令可不加任何選項直接跟檔案名

cat -n把行數顯示到屏上

cat -A顯示所有東西包括特殊字元

tac指令

tac指令和cat指令一樣 隻不過是倒序顯示

more指令

more指令是檢視檔案内容的 more指令後面可直接跟檔案名 好處是可以一屏看完後按空格再看下一屏想提前退出隻需要按Q鍵即可

less指令

less指令後面可直接跟檔案名但比more好在可以上下翻頁 按空格/J鍵下翻頁 按K上翻頁 使用快捷鍵 Ctrl+b和Ctrl+f分别實

現上翻頁和下翻頁  按一下/鍵可以向下查找某一字元串 而?鍵向上查找某一字元串 按G可以快速到文本最末端 按g可以快速傳回到檔案首部按q鍵即退出

head指令

head指令後面可直接跟檔案名 則顯示檔案的前十行 加-n選項則顯示檔案前n行

tail指令

tail指令和head一樣 後面直接跟檔案名則顯示檔案最後十行加-n選項則顯示檔案最後n行

tail -f動态顯示檔案最後十行 如檔案是不斷增加的則用-f選項

chmod指令

chmod指令用來變更檔案或目錄的權限。文法:chmod [選項] 數字 檔案名 (其中數字代表九位權限詳見書筆記)

chmod -R 表示級聯更改屬性

更改目錄或檔案權限的另一方法

User 擁有者簡稱U Group 所屬組簡稱G  other其他使用者簡稱O all所有使用者簡稱a

chmod u=rwx,og=rx 檔案或目錄名

chmod u-x 檔案或目錄名 //對檔案或目錄名所屬使用者減少執行權限

chgrp指令用來改變檔案或目錄所屬的使用者組

chgrp [組名] [檔案名]  此指令用得較少

chgrp 指令也可以更改目錄的所屬組,但是隻能更改目錄本身 想級聯更改子目錄及子檔案,可使用如下指令

chgrp -R [組名][檔案名]

chown指令

chown指令更改檔案的所有者及擁有者

chown [ -R ] 賬戶名 檔案名   或  chown [ -R ] 賬戶名:組名 檔案名

chown [ -R ]将指定目錄下的所有檔案及子目錄一并處理

chattr 檔案隐藏屬性

chattr [+-=][Asaci] [檔案或者目錄名]

+ – =: 分别為增加、減少、設定

A 增加該屬性後,檔案或目錄的 atime 将不可被修改;

s 增加該屬性後,會将資料同步寫入磁盤中;

a 增加該屬性後,隻能追加不能删除,非 root 使用者不能設定該屬性;

c 自動壓縮該檔案,讀取時會自動解壓;

i 增加後,使檔案不能被删除、重命名、設定連結接、寫入、新增資料;

常用的為 a 和 i 兩個選項。

lsattr指令 用來讀取檔案或者目錄的特殊權限

lsattr [-aR] [檔案/目錄名]

-a: 類似與 ls 的-a 選項,即連同隐藏檔案一同列出;

-R: 連同子目錄的資料一同列出

suid 特殊權限

該權限針對二進制可執行檔案,當使用者執行該執行檔案時,會臨時擁有該執行檔案所有者的權限。passwd指令啟用了SUID功能,是以一般使用者在使用 passwd指令修改密碼時,會臨時擁有了passwd指令所有者root使用者的權限,這樣一般使用者才可以将自己的密碼寫入/etc/shadow檔案

sgid 特殊權限

作用和 set uid 類似,前提是這個檔案是可執行的二進制檔案,當設定set gid 後,執行該檔案的使用者會臨時以該檔案所屬組的身份執行。若目

錄被設定這個權限後, 任何使用者在此目錄下建立的檔案或目錄都具有和該目錄所屬的組相同的組。

sticky_bit 特殊權限

一個檔案是否可以被某使用者删除,主要取決于該檔案所在目錄是否對

該使用者具有寫權限。如果沒有寫權限,則這個目錄下的所有檔案都不能被删除,同時也不能添加新的檔案。

對于這些特殊權限的配置,方法和之前的一樣。比如我想給一個檔案增加一個 set uid 權限,那麼指令

為 chmod u+s filename,而去掉這個權限則為 chmod u-s filename。同理,想設定 set gid 則為

chmod g+s dirname。設定 stick_bit 權限為 chmod o+t dirname。

which 查找可執行檔案的絕對路徑 使用方法 which [指令] 如 which vi

whereis 查找檔案(很少用)

whereis [-bmsu] [檔案名稱] 或whereis ls(此方法類似模糊查找隻要檔案名包含這個ls字元就會列出來。)

-b: 隻找 binary 檔案

-m: 隻找在說明檔案 manual 路徑下的檔案

-s: 隻找 source 來源檔案

-u: 沒有說明檔的檔案

find 指令

find[路徑][參數]

常用參數

-atime +n/-n: 通路或執行時間大于/小于 n 天的檔案

-ctime +n/-n: 寫入、更改 inode 屬性(例如更改所有者、權限或者連結)時間大于/小于 n 天的檔案

-mtime +n/-n: 寫入時間大于/小于 n 天的檔案

find .-name 檔案名 直接查找該檔案名的檔案,這個選使用很多

軟連接配接和硬連結

硬連結   是直接使用了和源檔案相同的 inode 直接連結到檔案放置的塊區域

(1)不能跨檔案系統 因為不同的檔案系統有不同的inode tadle

(2)不能連接配接目錄

ln [-s] [來源檔案] [目的檔案]

ln 常用的選項就一個-s,如果不加就是建立硬連結,加上就建立軟連結。

軟連結: 是建立一個獨立的檔案,而這個檔案的作用是當讀取這個連結檔案時,

它會把讀取的行為轉發到該檔案所 link 的檔案上。

增加和删除使用者組

增一個組:groupadd [-g GID] groupname

不加-g選項則按照系統預設的gid建立組 與使用者一樣 gid也是從500開始的

加-g選項則自定義gid 如 groupadd -g 511 grptest2

删除組: groupdel

沒有特殊選項,但有一種情況不能删除組 如user1 組中包含 user1 賬戶,隻有删除 user1 賬戶後才可以删除該組。

增加和删除使用者

增加使用者文法 : useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]

-u 自定義UID

-g 使其屬于已經存在的某個組,後面可以跟組 id, 也可以跟組名

-d: 自定義使用者的家目錄

-M: 不建立家目錄

-s: 自定義 shell

useradd 不加任何選項直接跟使用者名,則會建立一個跟使用者名同樣名字的組。-g 選項後面跟一個不存在的 gid 會報錯,提示該組不存在。-M 選項加上後則不建立使用者家目錄

删除使用者:userdel 文法:userdel[-r] username

-r 選項的作用隻有一個,就是删除賬戶的時候連帶賬戶的家目錄一起删除。

usermod修改使用者屬性

usermod 是更改已經存在的使用者相關屬性。常用選項如下

-u: 更改使用者的 uid

-g: 更改使用者屬組,後面可以跟組 id, 也可以跟組名

-d: 更改使用者的家目錄

-s: 更改使用者的 shell

passwd修改使用者密碼

文法:passwd[username]

passwd 後面不加使用者名則是修改目前賬戶的密碼。如果你登入的是 root 賬戶,後面可以跟普通賬戶的名字,意思是修改指定賬戶的密碼。

指令mkpasswd 用來生成密碼

若沒有此指令則yum -y install expect

指定密碼長度為12 零個特殊字元 三個數字  mkpasswd -l 12 -s 0 -d 3

-l指定密碼長度 -s 指定特殊字元的個數, -d 指定數字的個數

指令su 文法[-] username  後面可以跟”-“,也可以不跟。

普通使用者 su 不加使用者名時就是切換到root使用者  “-“這個字元的作用是,加上後會初始化目前使用者的各種環境變量

指令df 檢視已挂載磁盤的總容量、使用容量、剩餘容量等。可以不加任何參數,預設按 k 為機關顯示。

df 常用選項有 -i、 -h、 -k、 -m

-i 檢視 inodes 使用狀況

-h 使用合适的機關顯示,例如 G M

-k、 -m 分别以 K 和 M 為機關顯示

du指令 用來檢視某個目錄或檔案所占空間大小,不指定機關的話,預設顯示機關為 K。

文法:du [-abckmsh][檔案或目錄名]

-a 全部檔案與目錄大小都列出來。如果不加任何選項和參數隻列出目錄(包含子目錄)大小。

-b 列出的值以 bytes 為機關輸出。

-k 以 KB 為機關輸出,和預設不加任何選項的輸出值是一樣的。

-m 以 MB 為機關輸出。

-h 系統自動調節機關,例如檔案太小可能就幾 K,那麼就以 K 為機關顯示,如果大到幾 G,則就以 G為機關顯示。

-c 選項為最後加總,這個選項不常用。

-s 隻列出總和,這個使用的最多。

fdisk 用來分區大小小于等于 2T 的磁盤,如果大于 2T 需要用 parted 工具

fdisk 指令文法: fdisk [-l ] [裝置名稱] 選項隻有一個。

-l 後邊不跟裝置名會直接列出系統中所有的磁盤裝置以及分區表,加上裝置名會列出該裝置的分區表。

fdisk 如果不加-l 則進入另一個模式,在該模式下如果輸入 m 會列出常用的指令

常用的有 p、 n、 d。

P 列印目前磁盤的分區情況。

n 建立一個新的分區

w 儲存操作

q 退出

d 删除一個分區

使用 n 指令建立分區,它會提示是要 e(擴充分區) 還是 p(主分區)。

mke2fs、 mkfs.ext2、 mkfs.ext3 和 mkfs.ext4

常用的選項有:

-b 分區時設定每個資料區塊占用空間大小,目前支援 1024、 2048 以及 4096 bytes 每個塊

-i 設定 inode 的大小

-N 設定 inode 數量,有時使用預設的 inode 數不夠用,是以要自定設定 inode 數量

-c 在格式化前先檢測一下磁盤是否有問題,加上這個選項後會非常慢

-L 預設該分區的标簽 label

-j 建立 ext3 格式的分區,如果使用 mkfs.ext3 就不用加這個選項了

-t 用來指定什麼類型的檔案系統,可以是 ext2、 ext3 也可以是 ext4

-m 格式化時,指定預留給管理者的磁盤比例,是一個百分比,隻針對 mke2fs 指令

e2label指令 用來檢視或修改分區的标簽 很少使用,隻要了解一下即可

磁盤挂載與解除安裝

在挂載該分區前,挂載點(目錄)下必須是個空目錄。其實目錄不為空并不影響所挂載分區的使用。但是

一旦挂載上了,那麼該目錄下以前的東西就不能看到了。隻有解除安裝掉該分區後才能看到。

mount指令 可以檢視目前系統已經挂載的所有分區,以及分區檔案系統的類型,挂載點和一些選項等信

息。如果想知道某個分區的檔案系統類型直接用該指令檢視即可。

mount 指令常用的選項有: -a、-t、 -o。

另一種挂載方式

需要用到UUID 可以通過 blkid 指令擷取各分區的 UUID 直接輸入blkid 指令即可

當然這個指令後面也可以指定哪個分區 如blkid /dev/sdb5 詳見書第171頁

第三章 liunx系統提高篇

vim 一般模式下移動光标

h 或者向左方向鍵 光标向左移動一個字元

l 或者向右方向鍵 光标向右移動一個字元

k 或者向上方向鍵 光标向上移動一個字元

j 或者向上方向鍵 光标向下移動一個字元

Ctrl+f 或 pageup 鍵   螢幕向前移動一頁

Ctrl+b 或 pagedown 鍵 螢幕向後移動一頁

數字 0 或者 Shift + 6 移動到本行行首

Shift + 4             移動到本行行尾

gg                    移動到首行

G                     移動到尾行

nG(n 是任意數字)      移動到第 n 行

vim 一般模式下删除、複制和粘貼

x,X        x向後删除一個字元, X 向前删除一個字元

nx         向後删除 n 個字元

dd         删除/剪切光标所在的那一行

ndd( n 為數字) 删除/剪切光标所在行起向下一共 n 行

yy         複制光标所在行

p          從光标所在行向下粘貼已經複制或者粘貼的内容

P          從光标所在行向上粘貼已經複制或者粘貼的内容

nyy        從光标所在行算起向下複制 n 行

u          還原上一步操作

vim 指令行模式 查找和替換

/word                 向光标之後尋找一個字元串為 word,按 n 向後繼續搜尋

?word                 向光标之前尋找一個字元串為 word,按 n 向前繼續搜尋

n1,n2s/word1/word2/g  在 n1, n2 行之間查找 word1 并替換為 word2,不加 g 則隻替換每行的第一個 word1

1,$s/word1/word2/g    替換文檔中所有的 word1 為 word2,不加 g 隻替換每行的第一個 word1

:w      儲存文本

:q      退出 vim

:w!     強制儲存,在 root 使用者下即使文本隻讀也可以完成儲存

:q!     強制退出,所有改動不生效

:wq     儲存并退出

128

:set nu 顯示行号

:set nonu 不顯示行号

壓縮

gzip 文法:gzip [-d#] filename 其中#為 1-9 的數字

-d: 解壓縮時使用

-#: 壓縮等級, 1 壓縮最差, 9 壓縮最好, 6 為預設

bzip 文法: bzip2 [-dz] filename

bzip2 隻有兩個選項需要你掌握。

-d: 解壓縮

-z: 壓縮

可以加‘z’也可以不加,都可以壓縮檔案

xz 壓縮和解壓縮

xz 和 gzip, bzip2 用法是一樣的

xz文法: xz [-dz] filename

壓縮時,可以加 -z 也可以不加,都可以壓縮檔案,-d 則為解壓的選項

zip和unzip

zip文法 zip[壓縮後的包名][要壓縮的檔案或者目錄]

zip可以壓縮目錄也可以壓縮檔案,壓縮目錄時,需要指定目錄下的檔案 如 zip 1.txt.zip 1.txt

使用 zip 壓縮目錄時,必須要加上 -r 選項(子目錄一起壓縮)

unzip解壓  unzip 1.txt.zip

tar 打包工具詳解

文法: tar [-zjxcvfpP] filename

tar 指令有多個選項,其中不常用的我做了标注。

-z: 同時用 gzip 壓縮

-j: 同時用 bzip2 壓縮

-x: 解包或者解壓縮

-t: 檢視 tar 包裡面的檔案

-c: 建立一個 tar 包或者壓縮檔案包

-v: 可視化

-f: 後面跟檔案名,壓縮時跟 -f 檔案名 意思是壓縮後的檔案名為 filename,解壓時跟 -f 檔案名,

意思是解壓 filename。請注意,如果是多個參數組合的情況下帶有 -f,請把 -f 寫到最後面。

-p: 使用原檔案的屬性,壓縮前什麼屬性壓縮後還什麼屬性。(不常用)

-P: 可以使用絕對路徑。(不常用)

–exclude filename : 在打包或者壓縮時,不要将 filename 檔案包括在内。(不常用)

tar 打包和壓縮并用

tar 指令非常好用的一個功能就是可以在打包的時候直接壓縮,它支援 gzip 壓縮和 bzip2 壓縮以及 xz。

-zxvf 用來解壓.tar.gz 的壓縮包

bzip2 的壓縮包使用 -cjvf 選項來壓縮

-tf  可以檢視包或者壓縮包的檔案清單

解壓.tar.bz2 的壓縮包也很簡單 tar -jxvf [要解壓縮的檔案或者目錄]

打包使用 xz 的形式壓縮是這樣的:tar -cJvf [壓縮包名] [要壓縮的檔案或者目錄]

解壓也很簡單:tar -Jxvf [要解壓縮的檔案或者目錄]

rpm 安裝和解除安裝

每一個 rpm 包的名稱都由-和.分成了若幹部分。就拿abrt-cli-2.0.8-15.el6.centos.i686.rpm這個包來解釋一

下。 abrt-cli為包名, 2.0.8則為版本資訊,15.el6.centos為釋出版本号, i686為運作平台。常見的有 i386、 i586、 i686、 隻有x86_64為64系統的

有些 rpm 包并沒有寫具體的平台而是 noarch,這代表這個 rpm 包沒有硬體平台限制。例如alacarte-0.10.0-1.fc6.noarch.rpm

-i: 安裝的意思

-h: 顯示安裝進度

另外在安裝一個 rpm 包時常用的附帶參數有:

–force: 強制安裝,即使覆寫屬于其他包的檔案也要安裝。

–nodeps :當要安裝的 rpm 包依賴其他包時,即使其他包沒有安裝,也要安裝這個包。

更新一個 rpm 包

指令 rpm -Uvh filename

-U: 即更新的意思

解除安裝一個 rpm 包

指令 rpm -e filename

這裡的 filename 是通過 rpm 的查詢功能所查詢到的解除安裝時隻需要包名即。如rpm -e libjpeg-turbo-devel

查詢一個包是否安裝

指令 rpm -q rpm 包名 (這裡的包名,是不帶有平台資訊以及字尾名的) 如 rpm -q libjpeg-turbo-devel

我們可以使用 rpm -qa 查詢目前系統所有安裝過的 rpm 包 如 rpm -qa |head(隻列出前十個)

得到一個已安裝 rpm 包的相關資訊

指令 rpm -qi 包名 (同樣不需要加平台資訊與字尾名)

列出一個 rpm 包安裝的檔案

指令 rpm -ql 包名

列出某一個檔案屬于哪個 rpm 包

指令 rpm -qf 檔案的絕對路徑

yum 工具詳解

搜尋一個 rpm 包 yum search [相關關鍵詞]

安裝一個 rpm 包 yum install [-y] [rpm 包名]

不加 -y 選項,則會以與使用者互動的方式安裝 問使用者是否需要安裝,輸入 y 則安裝,輸入 n 則不安裝。

解除安裝一個 rpm 包指令 yum remove [-y] [rpm 包名]

解除安裝某個rpm 包一定要看清楚了,不要連其他重要的 rpm 包一起解除安裝了,以免影響正常的業務。

更新一個 rpm 包 指令 yum update [-y] [rpm 包]

搭建本地 yum 倉庫

yum 如何下載下傳 rpm 包到本地

下載下傳一個rpm包而不安裝指令  yum install 包名 -y –downloadonly

下載下傳到指定目錄而不安裝指令 yum install 包名 -y –downloadonly –downloaddir=/usr/local/src (/usr/local/src為指定目錄)

第四章 Shell 程式設計入門

我們可以通過 alias把一個常用的并且很長的指令别名一個簡潔易記的指令。如果不想用了,還可以用 unalias 解除别名功能。

直接敲 alias 會看到目前系統預設的 alias.

alias [指令别名]=[‘具體的指令’]

env 指令可全部列出系統預設的全部系統變量。

cut 指令文法:cut -d’分隔字元'[-cf] n 這裡的 n 是正整數

-d 後面指定分隔符,用單引号引起來

-f 指定第幾段

-c 後面隻有一個數字表示截取第幾個字元,後面跟一個數字區域,表示截取從幾到幾

如: cat /etc/passwd |cut -d ‘:’-f 1|head -n5 表示-d後面跟分隔字元,這裡使用冒号作為分割字元,-f1就是截取第一段,-f和1之間的空格可有可無

sort 指令

文法: sort [-t 分隔符] [-kn1,n2] [-nru] 這裡的 n1 < n2

-t 分隔符 :作用跟 cut 的-d 一個意思

-n :使用純數字排序

-r :反向排序

-u :去重複

-kn1,n2 :由 n1 區間排序到 n2 區間,可以隻寫-kn1,即對 n1 字段排序

如果 sort 不加任何選項,則從首字元向後,依次按 ASCII 碼值進行比較,最後将他們按升序輸出。

例如:head -n5 /etc/passwd |sort -t: -k3 -n   -t 後面跟分隔符, -k 後面跟數字,表示對第幾個區域的字元串排序, -n 則表示使用純數字排序

uniq 和 tee 指令

使用 uniq 的前提是需要先給檔案排序,否則不管用。 uniq 用來去重複的行,最常用的選項隻有一個:-c :統計重複的行數,并把行數寫在前面

tee 指令,後跟檔案名,類似與重定向 ―>‖,但是比重定向多了一個功能,在把檔案寫入後面所跟的文

件中的同時,還顯示在螢幕上

tr 和 split 指令

tr 用于替換字元,常用來處理文檔中出現的特殊符号,常用的選項有兩個:

-d:删除某個字元, -d 後面跟要删除的字元

-s:把重複的字元去掉

最常用的就是把小寫變大寫:

tr ‘[a-z]”[A-Z]’

如果是針對一個字元串就不再管用了,是以你隻需簡單了解這個 tr 即可,以後你還會學到更多可以實作針對字元串操作的工具。

split 用于切割文檔,常用選項:

-b:依據大小來分割文檔,機關為 byte

如果 split 不指定目标檔案名,則會以 xaa xab… 這樣的檔案名來存取切割後的檔案。當然我們也可以

指定目标檔案名 例如:[root@localhost split_dir]# split -b500 passwd 123

-l:依據行數來分割文檔

shell 中連接配接符(并且、和、或者)

使用;時,不管 command1 是否執行成功都會執行 command2。

使用&&時,隻有 command1 執行成功後, command2 才會執行,否則 command2 不執行。

使用‖時, command1 執行成功後 command2 不執行,否則去執行 command2,總之 command1 和command2 總有一條指令會執行

2.0/2.1/2.2 grep 過濾

文法: grep [-cinvABC] ‘word’ filename

-c :列印符合要求的行數

-n :在輸出符合要求的行的同時連同行号一起輸出

-v :列印不符合要求的行

-A :後跟一個數字(有無空格都可以),例如 –A2 則表示列印符合要求的行以及下面兩行

-B :後跟一個數字,例如 –B2 則表示列印符合要求的行以及上面兩行

-C :後跟一個數字,例如 –C2 則表示列印符合要求的行以及上下各兩行

-r : 會把目錄下面所有的檔案全部周遊

–color: 把比對到的關鍵詞用紅色辨別

awk 指令

有三種方式調用awk

1.指令行方式

awk [-F  field-separator]  ‘commands’  input-file(s)

其中,commands 是真正awk指令,[-F域分隔符]是可選的。 input-file(s) 是待處理的檔案。

在awk中,檔案的每一行中,由域分隔符分開的每一項稱為一個域。通常,在不指名-F域分隔符的情況下,預設的域分隔符是空格。

例子:awk -F ‘:’ ‘{print $1}’ 1.txt

2.shell腳本方式

将所有的awk指令插入一個檔案,并使awk程式可執行,然後awk指令解釋器作為腳本的首行,一遍通過鍵入腳本名稱來調用。

相當于shell腳本首行的:#!/bin/sh

可以換成:#!/bin/awk

3.将所有的awk指令插入一個單獨檔案,然後調用:

awk -f awk-script-file input-file(s)

其中,-f選項加載awk-script-file中的awk腳本,input-file(s)跟上面的是一樣的。

Linux 系統日常運維管理

檢視系統負載指令 w 詳見書206

vmstat 詳解

vmstat 指令列印的結果共分為 6 部分: procs, memory, swap, io, system, cpu。

(1) procs 顯示程序相關資訊

r:表示運作和等待 cpu 時間片的程序數。如果長期大于伺服器 cpu 的個數,則說明 cpu 不夠用了。

b:表示等待資源的程序數。比如,等待 I/O、記憶體等,這列的值如果長時間大于 1,則需要關注一下了。

(2) memory 記憶體相關資訊

swpd:表示切換到交換分區中的記憶體數量

free:目前空閑的記憶體數量

buff:緩沖大小,(即将寫入磁盤的)

cache:緩存大小,(從磁盤中讀取的)

(3) swap 記憶體交換情況

si:由交換區寫入到記憶體的資料量

so:由記憶體寫入到交換區的資料量

(4) io 磁盤使用情況

bi:從塊裝置讀取資料的量(讀磁盤)

bo:從塊裝置寫入資料的量(寫磁盤)

(5) system 顯示采集間隔内發生的中斷次數

in:表示在某一時間間隔中觀測到的每秒裝置中斷數

cs:表示每秒産生的上下文切換次數

(6) CPU 顯示 cpu 的使用狀态

us:顯示了使用者下所花費 cpu 時間的百分比

sy:顯示系統花費 cpu 時間百分比

id:表示 cpu 處于空閑狀态的時間百分比

wa:表示 I/O 等待所占用 cpu 時間百分比

st:表示被偷走的 cpu 所占百分比(一般都為 0,不用關注)

以上所介紹的各個參數中,我經常會關注 r 列, b 列和 wa 列

IO 部分的 bi 以及 bo 也是要經常參考的對象。如果磁盤 io 壓力很大時,這兩列的數值會比較高。

si、 so 兩列的數值比較高,并且在不斷變化時,說明記憶體不夠了,記憶體中的資料頻繁交換到交換分區中,這往往對系統性能影響極大。

vmstat 檢視系統狀态

vmstat 1 5 表示每隔一秒鐘輸出一次狀态,共輸出 5 次

vmstat 1   表示表示每隔 1 秒輸出一次狀态且一直輸出,除非我們按 Ctrl + c 結束

top指令

top指令的特點是把占用系統資源( CPU,記憶體,磁盤 IO 等)最高的程序放到最前面

top指令列印出了很多資訊,包括系統負載( loadaverage)、程序數( Tasks)、cpu 使用情況、記憶體使用情況以及交換分區使用情況.

用top指令重點檢視程序使用系統資源詳細狀況。要關注的也就幾項: %CPU、 %MEM、 COMMAND  %CPU CPU使用率 %MEM為使用記憶體率COMMAND

top 狀态下,按shift + m,可以按照記憶體使用大小排序。按數字 1 可以列出各顆 cpu 的使用狀态。

指令top -bn1表示非動态列印系統資源使用情況,可以用在 shell 腳本中

netstat 檢視端口

netstat -lnp(列印目前系統啟動哪些端口)以及 netstat -an(列印網絡連接配接狀況)

抓包工具 tcpdump 和 tshark

iptables 詳解

iptables 隻是防火牆( netfilter)的一個實作工具。

指令 crontab

Linux 任務計劃功能的操作都是通過 crontab 這個指令來完成的。常用的選項有:

-u:指定某個使用者,不加-u 選項則為目前使用者

-e:制定計劃任務

-l:列出計劃任務

-r:删除計劃任務

crontab -l指令 檢視已經設定的任務計劃

crontab -r指令 删除計劃任務

例如:

01 10 05 06 3 echo “ok” > /root/cron.log

從左到右,依次為:分,時,日,月,周,指令行.含義是:在6月5日(這一天必須是星期3)的10點01分執行指令echo “ok” > /root/cron.log

crontab -e實際上是打開了/var/spool/cron/username(如果是 root 則打開的是/var/spool/cron/root)這個檔案。使用的是 vim 編輯器,可能會出錯,是以一定要使用crontab -e來編輯。

linux 日志

日志格式:

auth –pam 産生的日志

authpriv –ssh,ftp 等登入資訊的驗證資訊

cron –時間任務相關

kern –核心

lpr –列印

mail –郵件

mark(syslog)–rsyslog 服務内部的資訊,時間辨別

news –新聞討論區

user –使用者程式産生的相關資訊

uucp –unix to unix copy, unix 主機之間相關的通訊

local 1~7 –自定義的日志裝置

日志級别:

debug –有調式資訊的,日志資訊最多

info –一般資訊的日志,最常用

notice –最具有重要性的普通條件的資訊

warning –警告級别

err –錯誤級别,阻止某個功能或者子產品不能正常工作的資訊

crit –嚴重級别,阻止整個系統或者整個軟體不能正常工作的資訊

alert –需要立刻修改的資訊

emerg –核心崩潰等嚴重資訊

none –什麼都不記錄

從上到下,級别從低到高,記錄的資訊越來越少

連接配接符号

. : 表示大于等于 xxx 級别的資訊

.=:表示等于 xxx 級别的資訊

.!:表示在 xxx 之外的等級的資訊

/var/log/messages 核心系統日志檔案是 Linux 系統最核心的日志檔案,假若某個服務沒有定義日志,那麼該服務産生的日志就會到這個檔案中。該日志每周歸檔一次。

xargs 和 exec 詳解

xargs應用

它的作用就是把管道符前面的輸出作為 xargs 後面的指令的輸入。它的好處在于可以把本來兩步或者多步才能完成的任務簡單一步就能完成。 xargs 常常和 find 指令一起使用

如 查找目前目錄建立時間大于 10 天的檔案,然後再删除。find . -mtime +10 |xargs rm

[root@localhost test]# ls *.txt |xargs -n1 -i{} mv {} {}_bak

[root@localhost test]# ls

1.txt_bak 2.txt_bak 3.txt_bak 4.txt_bak 5.txt_bak

xargs -n1 –i{} 類似 for 循環, -n1 意思是一個一個對象的去處理, -i{}把前面的對象使用{}取代, mv {}

{}_bak 相當于 mv 1.txt 1.txt_bak。

exec 應用

[root@localhost test]# find . -mtime +10 -exec rm -rf {} \;

這個指令中也是把{}作為前面 find 出來的檔案的替代符,後面的\為;的脫意符,不然 shell 會把分号作

為該行指令的結尾。這個-exec 有時候也挺實用的,它同樣可以實作剛剛上面批量更改檔案名的需求

url指令

url 是 Linux 系統指令行下用來簡單測試 web 通路的工具,幾個常用的選項你要掌握

-x 可以指定 ip 和端口,省略寫 hosts,友善實用

-I 可以把通路的内容略掉,隻顯示狀态碼,-v 可以顯示詳細過程

-u 可以指定使用者名和密碼

-O(大寫)直接下載下傳頁面或者對象  還可以使用 -o 自定義名字

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 -av 123.txt /tmp/

上面例子表示把目前目錄下的 123.txt 同步到/tmp/目錄下,也可以更改目标檔案的名字, rsync -av123.txt /tmp/234.txt

如果是遠端拷貝的話就是這樣的形式了: IP:path (如: 10.0.2.34:/root/)

rsync 常用選項

-a 歸檔模式,表示以遞歸方式傳輸檔案,并保持所有屬性,等同于-rlptgoD,-a 選項後面可以跟一個

–no-OPTION 這個表示關閉-rlptgoD 中的某一個    例如 -a–no-l 等同于-rptgoD

-r 對子目錄以遞歸模式處理,主要是針對目錄來說的,如果單獨傳一個檔案不需要加-r,但是傳輸的

是目錄必須加-r 選項

-v 列印一些資訊出來,比如速率,檔案數量等

-l 保留軟鍊結

-L 向對待正常檔案一樣處理軟鍊結,如果是 SRC 中有軟連接配接檔案,則加上該選項後将會把軟連接配接指

向的目标檔案拷貝到 DST

-p 保持檔案權限

-o 保持檔案屬主資訊

-g 保持檔案屬組資訊

-D 保持裝置檔案資訊

-t 保持檔案時間資訊

–delete 删除那些 DST 中 SRC 沒有的檔案

常用的選項頁僅僅那麼幾個: (-a -v –delete

–exclude ),熟記。

本文轉自 a928154159 51CTO部落格,原文連結:http://blog.51cto.com/zhibeiwang/1788788

繼續閱讀