linux系統結構

呈倒樹型

/bin:存放二進制命令文件(binnary),針對所有用戶

/sbin:存放系統管理員的命令,/bin的升級版,超級用戶專用

/boot:存放啓動分區,負責系統啓動的文件。相當於windowsC,啓動項。存儲系統的引導信息,內核信息

/proc:系統信息   /proc/cpuinfo:系統cpu信息

/sys:系統管理,主要是關於內核的

/etc:存放大多數系統管理文件,即配置文件

/dev:存放設備管理文件

/lib:存放32位系統庫文件

/lib64:存放64位系統庫文件

/root:超級用戶家目錄存放點

/home:是普通用戶家目錄

/opt:第三方軟件的安裝位置

/usr:存放系統用戶相關信息數據及用戶自定義軟件,存儲系統應用軟件的安裝信息

/srv/var:系統數據存放點,存儲系統日誌信息

/tmp:存放臨時文件存放位置

/media/run/mnt:系統臨時設備掛載點

【絕對路徑、相對路徑】

據對路徑:文件在系統的真實位置,文件名以“/”開頭

相對路徑:文件相對於當前所在位置的位置,不以“/”開頭,且會自動添加pwd顯示的值

【基本命令】

shell中如何使用命令(必須在提示符之後輸入)

命令輸入模式:command+[space]+options+[space]+target

              命令           參數(選項)       操作對象

補充:命令是系統中可執行的文件,參數是命令功能的指

*** ls###list,列出當前目錄的所有文件

-a  ##顯示指定目錄下所有文件以及子目錄,包含隱藏文件

-d  ##只顯示目錄列表,不顯示文件

-l  ##除文件名稱外,同時將文件或子目錄的權限、使用者及大小等信息詳

      細列出

-s  ##在每個文件名前輸出其大小,以k字節的形式表示文件的大小

-S  ##以文件大小順序排列,從大到小排列

-u  ##以文件上次被訪問的時間排序

-t  ##以時間排序,從晚到早

-o  ##顯示除組信息以外的詳細信息

-x  ##按列輸出,橫向排序

-C  ##按列輸出,縱向排序

-r  ##對目錄中的文件及子目錄反向排序(與默認排序相反)

-m  ##橫向輸出文件名,並以逗號作爲分隔符

-Q  ##把輸出的文件名用雙引號括起來

-R ##列出所有子目錄下的文件

-pF  ##在每個文件名後附上一個字符以說明該文件的類型。“*”表示可執

       行的普通文件,“@”表示鏈接,“|”FIFOs“=”表套接字,

       “/”表示目錄

-q ##用?代替不可輸出的字符

-i  ##列出節點號

-Z  ##列出標籤

例:

# ls -l(同ll###列出文件屬性

$ ls -l ps.txt

-rw-rw-r-- 1 kiosk kiosk 11691 May  4 18:06 ps.txt

使用 ls -l 命令 執行結果,展示結果大體分爲七列(部分) :

第一列 drwxr-x---”  表識文件的類型 和文件權限

第二列:2”是純數字 ,表示 文件鏈接個數  

第三列 root” 表示文件的所有者

第四列:adm” 表示爲文件的所在羣組

第五列:4096”,表示爲文件大小(以字節爲單位)

第六列:2013-08-07 11:03”,表示文件最後更新(修改)時間

第七列:apache2” 表示文件的名稱

# ls -l test/###長顯示目錄test下的文件,顯示目錄test下的文件

total 0###緩存個數

# ls -ld test/###顯示目錄本身的屬性

# ls -s note/ <=====>###列出文件或目錄大小

# ls -s passwd

 4 passwd###文件默認分配4K字節=4096字節

# ls -a###列出所有

# ls -R test/###遞歸式列出

#ls -Z    ###列出標籤

# ls -Zd /mnt/

drwxr-xr-x. root root system_u:object_r:mnt_t:s0       /mnt/

# ls -Z /mnt/

-rwxr-xr-x. root root system_u:object_r:bin_t:s0       firefox

# ls -i  file  ##查看節點號文件

***cd   ##進入目標目錄中

[student@localhost mnt]$ pwd

/mnt

[student@localhost mnt]$ cd ~(cd)###回到當前用戶家目錄

[student@localhost ~]$ pwd

/home/student

[root@localhost ~]# cd ~student###進入到指定用戶家目錄

[root@localhost student]# pwd

/home/student

[root@localhost student]# cd ..###進入當前目錄的上一級

[root@localhost home]# pwd

/home

[root@localhost home]# cd -###進入之前所在系統目錄

/home/student

*** touch:新建文件

*** mkdir:建立目錄

# mkdir -p test/test/test###遞歸式建立目錄

注意:

[student@localhost ~]$ cd /root/Desktop

bash: cd: /root/Desktop: Permission denied###權限不夠被拒絕

***pwd  //顯示當前路徑

*** cp 被複制文件 目的地###將文將複製到指定目的地

cp -r dir1 dir2###遞歸式複製

*** mv

mv 被移動文件 目的地###將文將移動到指定目的地

mv 原名 新名###重新命名

mv 被移動文件 .###將文件移動到當前

***rm -f 文件###強制刪除文件

rm -fr 目錄###強制刪除目錄

***date [MMDDhhmm.ss]###更改時間[月日小時分鐘.]

date [選項] 顯示時間格式(以+開頭,後面跟時格式)

-s  ##設置時間

-d  ##顯示描述的日期

時間格式:

%H  ##顯示小時,表示範圍0023

%k  ##顯示小時,表示範圍023

%I  ##顯示小時,表示範圍0112

%l  ##顯示小時,表示範圍爲1~12

%M  ##顯示分鐘,顯示格式00~59

%S  ##顯示秒,顯示格式0059

%X  ##顯示時間,相當於%H:%M:%S的組合

%r  ##顯示時間,格式爲hh:mm:ss 12小時顯示

%T  ##顯示時間,格式爲hh:mm:ss24小時顯示

%p  ##顯示AM還是PM

%F  ##顯示日期,格式yyyy-mm-dd

%x  ##顯示年份和日期,格式爲mm/dd/yyyy

%D  ##顯示年份號和日期,格式爲mm/dd/yy

%b%B  ##顯示月份,b是簡稱,B是全稱

%m  ##顯示月份,格式爲0112

%Y%y  ##顯示年份,Y表示完整的年份,y表示年份的最後兩個數字

%d  ##顯示一個月的第幾天

%c  ##顯示日期和時間格式,相當於”%a %d %b %Y %r %Z”

%a%A  ##顯示星期,%a是星期的簡稱,%A是星期的全稱

%Z  ##顯示時區

eg:

設置時間:

# date -s "20160505 10:03"  ##格式yyyymmdd hh:mm:ss

顯示描述的日期:

# date -d "3 days ago" +%F

2016-05-02

顯示時間:

$ date "+%F %a %T %Z"

2016-05-04 Wed 21:55:51 CST

# date

Tue Dec  1 17:38:18 CST 2015

CST可視爲美國,澳大利亞,中國,古巴的標準時間;格林威治標準時間GSM;世界協調時間UTC;夏日節約時間DST

# date 06281234.21

Sun Jun 28 12:34:21 CST 2015

# date -d +83day

Fri Dec 18 14:49:39 CST 2015

# date -d -83day

Sun Jul  5 14:49:51 CST 2015

# date +%F

 2015-09-26

# date +"%F %H:%M:%S"

2015-12-01 17:42:19

#date "+%Y-%m-%d %H:%M:%S"

2015-12-05 11:55:32

# date --help###獲取幫助用helpman

***passwd

passwd username###更改用戶密碼(只有超級用戶root可以)

passwd###普通用戶修改自己的密碼

注意:

普通用戶只能修改自己的密碼,且須知自己原始密碼,修改密碼必須大於8位,不能與原始密碼字符重複

# passwd -l student###凍結普通用戶

Locking password for user student.

passwd: Success

# passwd -u student###解鎖凍結用戶

Unlocking password for user student.

passwd: Success

*** file  ###查看文件類型

*** head -數字 文件名###顯示文件內容前幾行,默認顯示前十行

*** tail -數字 文件名###顯示文件內容後幾行

eg# cat num

 1

 2

 3

 4

 5

 6

 7

 8

# head -6 num | tail -3

 4

 5

 6

***cat   

cat 文件名  ##查看文件所有內容

cat  >文件名 <<biaozhi  ###輸出內容到另一個文件

cat -b file ##給文件file中的每一行編號並查看

cat -b file > file1 ##file文件的每一行加編號,並將編好號的放到file1文件中

eg: $ cat > file  << end

> hello world

> u are a good student

> end

$ cat file

hello world

u are a good student

***wc ###統計文件行,單詞數,字節數

# wc -l文件名###行數

-c文件名###字節數

-m文件名###字符數

-w文件名###單詞數

***whoami ##查看當前用戶名稱

*** what is+命令  ##查看命令的意思

eg# whatis wc

wc (1)  - print newline, word, and byte counts for each file

wc (1p) - word, line, and byte or character count

*** history  ###查看歷史

!數字###執行第多少條命令

!關鍵字###執行最近一條以關鍵字開頭的命令

Ctrl+r+關鍵字###調出最近一條含有關鍵字的命令

上下鍵###從最後一條命令開始向前或向後查看

*** which+命令  //查看系統命令的路徑

***echo $abc 在變量賦值之後,只需在變量前面加一個$去引用.

***cb 格式化源代碼

***lint 語法檢查程序

***more 顯示文件

*** tab鍵:補齊系統中存在的文件名稱,命令和命令參數

*** 改變用戶身份的命令:su

su - ##加載相應用戶下的環境變量,不加-root身份下執行某些命令可能顯示

      “command not found”

-l  ##使目前的shell成爲改變身份後用戶默認的shell

-c  ##改變身份後運行一個指令後退出

-m  ##改變用戶身份但不改變環境變量

***who  ##顯示目前登錄到系統的用戶

who [選項] [file]

linuxwho默認通過/var/run/utmp文件來獲取信息,若“file”選項指定另一個文件,則who不再讀取/var/run/utmp文件,而是讀取指定文件來獲取信息

# who

root     tty1         2016-05-05 10:00

root     pts/0        2016-05-05 10:15 (172.25.50.250)

who -s  ##僅顯示名稱、線路、和時間字段信息。這是who默認的輸出,相當於

who

-a  ##列出所有信息,相當於所有選項

-b  ##列出系統最近啓動的時間日期

-r  ##顯示當前系統的運行機級別

-T-w  ##顯示tty終端的狀態,“+”表示對任何人都可寫,“-”表示僅

          root用戶或所有者可寫,表遇到線路故障

-l  ##列出所有可登錄的終端信息

-m  ##僅列出當前終端的信息,相當於who am i who am I

-u  ##顯示當前每個用戶的用戶名、登錄終端、登錄時間、活動和進程

標識,除狀態以外的所有輸出

-q  ##列出本地系統上的用戶和用戶數的清單

who命令的一般輸出格式:

用戶名 [狀態] 線路 時間 [活動] [進程標識] (主機名)

wKioL1fINfeTCGiLAAC1rlr1Qk0327.png-wh_50

wKiom1fINffQBJ4cAAAsgHHbdIU846.png-wh_50

用戶名:用戶的登錄名

狀態:表明線路是否對登錄用戶都是可寫的,”+””-”

線路:登錄終端,類似於pts/1pts/2tty等,此線路標識在/dev中可以找到

時間:用戶登錄系統的時間

活動:某個用戶在自己的線路上最後一次活動發生以來到現在所用時間。如果此項是個“.”,就表示一分鐘內地線路活動;如果線路保持靜止已經超過24小時或者自從系統啓動以來還沒被使用過,那麼此項的標記爲“old”

進程標識:用戶登錄shell的進程id

主機名:登錄到linux系統上的客戶端機器標識,沒有主機名解析寫ip

***w  ##顯示用戶登錄到系統的時間

w [選項] [用戶]

-h  ##不顯示輸出信息的標題

-l  ##用長格式輸出,相當於直接用w

-s  ##用短格式輸出,不顯示登錄時間、JCPUPCPU時間

-V  ##顯示版本信息

wKiom1fINiySIuatAABbiUTp4SA381.png-wh_50 

第一行:顯示了當前的系統時間、系統從啓動到現在已經運行的時間,登錄到系統中的用戶數,系統平均負載(系統1min5min15min內系統負載狀況)

USER:登錄系統的用戶

TTY:用戶使用的TTY(字符終端)名稱

FROM:表示用戶從哪裏登錄進來,一般顯示遠程登錄主機的IP地址或主機名

LOGIN@:用戶登錄的日期和時間

IDLE:表某個程序上次從終端開始執行到現在所持續的時間

JCPU:表該終端上的所有進程及子進程使用系統的總時間

PCPU:當前活動進程使用的系統時間

WHAT:當前用戶執行的進程名稱和選項

***uname  ##顯示操作系統相關信息

uanme -s  ##顯示操作系統類型,相當於uname

-a  ##顯示操作系統所有信息

-n  ##顯示操作系統的主機名

-r  ##顯示操作系統內核版本

***uptime  ##輸出系統隊列信息

wKiom1fINkSAWoANAAA0t4m7vYU334.png-wh_50 

表示當前系統時間、系統從開機到現在的運行時間,系統登錄用戶數,系統平均負載(與w命令第一行輸出相同)

***last  ##列出目前與過去登入系統的用戶相關信息

last [選項] [-n 顯示列數]

執行last命令時,默認讀取/var/log/wtmp文件,並把該文件記錄的等入系統的用戶名全部顯示出來

last -a  ##將從何處等入系統的IP或主機名顯示在每一行的末尾

-R  ##不顯示登入系統的主機名或IP

-x  ##顯示系統關機、重新開機及執行等級的改變等信息

-d  ##將顯示的IP地址轉換爲主機名

-n  ##設置列出名單的顯示列數

wKioL1fINmHAre6oAAIF_0jfxd0809.png-wh_50 

***dmesg  ##顯示開機的信息

內核會將開機信息存儲在系統緩衝區(ring buffer)中,如果開機來不及查看相關信息,可以在開機後用dmesg命令查看,或者查看/var/log/dmesg文件

dmesg -c  ##顯示開機信息後,清除ring buffer信息

-s  ##設置緩衝區打大小,默認爲8192

-n  ##設置記錄信息的層級

***free  ##顯示系統內存狀態的命令

free [選項] [-s 間隔秒數]

free -b  ##以字節爲單位顯示內存的使用情況

-k  ##以千字節(KB)爲單位

-m  ##以兆字節爲單位

-t  ##顯示內存的總和列

-o  ##不顯示緩衝區列

-s(間隔秒數)  ##根據指定的間隔秒數持續顯示內存的使用情況

wKioL1fINnmBGZBsAABCaJCefxA087.png-wh_50 

系統的物理內存是490M,已經使用了94M,空閒396M。系統可用內存爲443Mmem+buffer/cache);swap分區還未使用

 

wKioL1fINpryXf22AABM6qdhuKk057.png-wh_50

wKioL1fINpqj11zsAAA1rax-UxU552.png-wh_50

 

***psprocess status)  ##顯示系統進程瞬間的運行狀態

參數:

-a  ##顯示現行終端中的所有進程(所有用戶的進程),包括其他用戶進程

-x  ##顯示所有系統程序,包括那些沒有終端的程序

所以ax表示顯示所有在終端中和不在終端中執行的程序

-u  ##以用戶爲主顯示進程

aux  ##以用戶爲主顯示所有進程

x  ##通常與參數u一起使用,列出較完整的信息。

a  ##顯示所有進程

-a  ##顯示現行終端中的所有進程(所有用戶的進程),包括其他用戶進程

-e  ##顯示所有進程,與-A相同(將除內核進程以外所有進程的信息寫到

     標準輸出)

-f  ##詳細顯示程序執行的路徑羣

-ef  ##詳細顯示所有進程

-C <命令>  ##列出指定命令的進程

e  ##顯示環境變量

f  ##顯示程序間的關係

r  ##顯示當前終端的進程

T  ##顯示當前終端的所有進程

u  ##指定用戶的所有進程

c  ##顯示進程的真實名稱

-c  ##只顯示進程的名稱,不顯示進程的完整路徑

-N  ##反向選擇

-H  ##顯示樹狀結構

--lines <行數> ##每頁顯示的行數

--width <字符數>  ##每頁顯示的字符數

--version  ##顯示版本信息

 

# ps -u postfix  ##顯示指定用戶的進程信息

  PID TTY          TIME CMD

  953 ?        00:00:00 qmgr

 1182 ?        00:00:00 pickup

wKioL1fINrnydyEMAAAh40DbmKc623.png-wh_50 

默認ps命令輸出使用者自己的進程:

PID:進程的標識號

TTY:進程所屬的終端控制檯

TIME:進程所使用的總的CPU時間

CMD:正在執行的命令行

-的參數和不帶-的參數表示意義不同:

wKioL1fINtHBwMEaAAGLtrM7IqQ900.png-wh_50 

linux上進程由5中狀態:

(1)運行:張在運行或在運行隊列中等待

(2)中斷:休眠中,受阻,在等待某個條件的形成或接收到信號

(3)不可中斷:收到信號後不能喚醒和不可運行,進程必須等待直到有中斷髮生

(4)停止:進程收到SIGSTOPSIGSTPSIGTOU信號後停止運行

(5)僵死:進程已經終止,但進程描述符存在,直到父進程調用wait()4系統調用後釋放

ps工具標識進程的5中狀態碼:

(1)R 運行 runabled

(2)S 中斷 sleeping

(3)D 不可中斷

(4)T 停止 traced or stopped

(5)Z 僵死 a defunct(“zombie”) process

 

相關項目明細:

USER:用戶名

UID:用戶ID

PID:進程ID

PPID:父進程的進程IDparent process id

SID:會話ID

%CPU:進程的cpu佔用率

%MEM:進程的內存佔用率

VSZ:進程所使用的虛擬內存的大小

RSS:進程使用的駐留集大小或者是實際內存的大小,k字節

TTY:與字節關聯的終端

STAT:進程的狀態,進程狀態使用字符表示的stat狀態碼

R運行(Runabledon run queue):正在運行或者在運行隊列中等待

S 睡眠(Sleeping):休眠中,受阻,在等待某個條件的形成或接收到信號

I 空閒(idle

Z 僵死(Zombie,a defunct process:進程已終止,但進程描述符依然存在,直到父進程調用wait4()系統調用後釋放

D 不可中斷(Uninterruptible Sleepusually IO):收到信號不喚醒和不可運行,進程必須等待直到有中斷髮生

T 終止(Terminate):進程收到SIGSTOPSIGSTPSIGTINSIGTOU信號後停止運行

P 等待交換頁

W 無駐留頁:進入內存交換((從內核2.6開始無效)沒有足夠的記憶體分頁可分配)

X 死掉的進程

< 高優先級進程

N 低優先級進程

L 內存鎖頁(Lock):由記憶體分頁分配並鎖在記憶體內

s 進程的領導者(在它之下有子進程)

|  多進程的(使用clone_thread,類似於nptl pthreads

+ 位於後臺的進程組

START :進程啓動時間和日期

TIME:進程使用的總的CPU佔用時間(進程消耗CPU的時間)

COMMAND:執行命令的名稱和參數

NInice)優先級

PRI(priority):進程優先級的編號

WCHAN:正在等待的進程資源(進程正在睡眠的內核函數名稱(/root/system.map中獲得)

FLAGS:與進程相關的數字標識

 

例:

# ps auxps -ef ##查看所有進程信息

# ps -eo 'pid,uid,stat,pri,comm' --sort uid  ##查看當前系統進程的pid,uid,stat,pri,以uid號排序

# ps -aux | grep 進程關鍵字

# ps ax -o %cpu,%mem,user,pid,comm ###查看進程某項信息

# ps ax -o pid,comm 相當於 ps -eo pid,comm

# ps aux --sort +|-%cpu|%mem...###進程按指定方式排序

例一:將目前屬於自己本次登入的PID等相關信息顯示出來

wKiom1fINu3gek6-AABguQHX_Xc862.png-wh_50 

各相關信息的意義:

Fflag):代表這個程序的旗標,4代表使用者爲superuser;1代表分叉的但沒有被執行

wKioL1fINv-ywz2qAAAVepe6jrI514.png-wh_50 

SSTAT):代表這個程序的狀態

UID:代表執行者的身份

PID:進程的ID

PPID:父進程的ID

Ccpu佔用資源的百分比

PRIPriority:指進程的執行優先權,其值越小優先級越大,越早被執行

NI:該進程的nice值,其表示進程可被執行的優先級的修正數值

ADDR:內核參數,指出該進程在內存的哪個部分。如果是可執行的程序,一般爲-

SZ:使用掉的內存大小,單位爲k字節

WCHAN:目前該程序是否正在運行中,若爲-表示正在工作

TTY:登入者的終端機位置

CMD:所下達的指令名稱

例二:以例一的顯示格式,顯示出所有的程序

 wKiom1fINyPjL6svAAF4Cjq7qvs199.png-wh_50

例三:列出目前所有的正在內存當中的程序

 wKioL1fINzSiWq2MAAHO7-BmYlA045.png-wh_50

USER:該進程屬於哪個使用者

PID:該進程的進程id

%CPU:該進程使用掉的CPU資源百分比

%MEM:該進程所佔用的物理內存百分比

VSZ:該進程已使用的虛擬內存量(k字節)

RSS:該進程佔用的固定內存量(k字節)

TTY:該進程是在哪個終端機上運行——若與終端機無關則顯示?,從本機中登入的用戶程序顯示爲tty1tty6;網絡連接進主機的程序顯示爲pts/0pts/1

STAT:該程序目前的狀態,主要的狀態有——

R:該程序目前正在運行,或者是可以被運行

S:該程序目前正處於休眠狀態,但是可以被某些信號(signal)喚醒

T:該程序目前正在偵測或者停止

Z:該程序應該已終止,但其父進程無法正常終止它,造成殭屍(zombie)程序的狀態

START:該進程被觸發啓動的時間

TIME:該進程實際使用CPU運作的時間

COMMAND:該進程的指令的名稱

例四:列出類似程序樹的信息

wKiom1fIN0uQCuJIAAIj18JjxyU320.png-wh_50 

例五:找出cronsyslog這兩個服務有關的PID號碼

# ps -eo 'pid,comm' | grep -E 'syslog|cron'

wKioL1fIN2fz2DHdAAA6NCqu91c440.png-wh_50 

# ps aux | egrep 'syslog|cron'

wKiom1fIN36TYoihAABXPuOe8h4661.png-wh_50 

***top:實時監控系統處理器狀態

top -d  ##指定每兩次屏幕信息刷新之間的時間間隔

-i  ##不顯示閒置或僵死的進程

-c  ##顯示進程的整個命令路徑,而不是隻顯示命令名稱

-s  ##使top命令在安全模式下運行,此時top的交互式指令被取消,避免

    潛在危險

-b  ##分屏顯示輸出信息,結合-n選項可將屏幕信息輸出到文檔

-n  ##top輸出信息更新的次數,完成後將退出top指令

top的交互式命令:

h或?  ##顯示幫助信息,給出交互式命令的一些說明總結

m  ##切換顯示內存信息,這是一個開關命令

t  ##切換顯示進程和cpu信息,這是一個開關命令

l  ##切換顯示平均負載和啓動時間信息,這是一個開關命令

i  ##忽略閒置進程和僵死進程,這是一個開關式命令

c  ##切換顯示完整命令行和命令名稱信息

M  ##根據駐留內存大小進行排序輸出

P  ##根據cpu使用百分比大小進行排序輸出

T  ##根據時間/累計時間進行排序輸出

S  ##切換到累計模式

k  ##終止一個進程,系統將提示用戶以輸入一個需要終止進程的PID

s  ##改變top輸出信息的兩次刷新之間的時間。系統將提示輸入新的時間,單位

是秒。如果是小數則換算成毫秒。如果輸入0,系統輸出將不斷刷新,默認

刷新時間爲5s。如果設置較小的時間,則會引起系統不斷刷新,無法看清

楚輸出顯示情況,而且系統負載也會加大

o O  ##改變輸出信息中顯示項目的順序,按的a~z將相應地列向右移動,按

         AZ將相應地列向左移動

fF  ##從當前的顯示列表中添加或者刪除項目。按f後會顯示列的列表,按a

         z鍵即可顯示或隱藏對應的列。最後按回車鍵確定

r  ##重新設置一個進程的優先級。系統提示用戶輸入需要改變的進程PID及需

     要設置的進程優先級。輸入一個正值使優先級降低,輸入一個負值使該進

     程由更高的優先級。默認值是10

W  ##將當前top設置寫入~/.toprc

q  ##退出top命令

例:查看當前系統活動的進程

# top

wKioL1fIN5WSbE6gAAFsk7oVkEw463.png-wh_50 

項目明細:

top的輸出可以分爲統計時間區(前5行)和進程信息區

第一行爲任務隊列信息:

15:23:44 表示當前系統時間

up 3 min  表示系統已啓動3分鐘。

1 user  當前登錄系統的用戶數

load average0.04,0.03,0.00  表示系統平均負載,3個數值1min5min15min前到現在的系統平均負載值

第二行爲進程信息:

  Tasks71total  進程的總數

  1 Running:正在運行的進程數

  70 sleeping:處於休眠的進程數

  0 stopped:停止的進程數

  0 zombie:僵死的進程數

第三行爲cpu信息:

  CPU(s)0.0%us  表示用戶進程佔用CPU百分比

  0.0%sy  系統進程佔用CPU的百分比

  0.0%ni  用戶進程空間內改變過優先級的進程佔用cpu的百分比

  100.0% id  空閒CPU佔用的百分比

  0.0%wa  等待輸入輸出的進程佔用CPU的百分比

  0.0%hi

  0.0%si

  0.0%st

第四行、第五行爲內存信息:

Mem502276k total  系統物理內存大小

93572k used  已使用物理內存大小

50412k free  目前空餘內存大小

buffers  用作內存緩衝區的內存大小

swap  交換分區內存大小

cached 高速緩存

進程信息區:

PID  進程的PID

USER  進程所有者的用戶名

PR  進程優先級

NI  nice值,負值表示高優先級,正值表示低優先級

VIRT  進程使用的虛擬內存總量,單位KBVIRT=SWAP+RES

RES  進程使用的、未被換出的物理內存大小,單位KBRES=CODE+DATA

SHR  共享內存大小,單位KB

S  進程狀態,D表示不可中斷的睡眠狀態,R表示運行狀態,S表示睡眠狀態,T表示跟蹤或停止,Z表示僵死進程

%CPU  上次更新到現在的CPU時間佔用比

%MEM  進程佔用的物理內存百分比

TIME+  進程使用的CPU時間總計,單位爲0.01s

COMMAND  正在運行進程的命令名

 

wKiom1fIN8WjQNw4AACDe9ZbNY8322.png-wh_50

wKiom1fIN8XzJZv7AACBc33hZM4416.png-wh_50

 

【通配符】

1*:匹配0-任意字符

2?:匹配任意單個字符

[root@localhost Desktop]# ls

file  file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

[root@localhost Desktop]# rm -fr file?

[root@localhost Desktop]# ls

file  file10

3~:匹配當前用戶家目錄

4username:匹配到username用戶家目錄

[root@localhost Desktop]# ls

file  file10

[root@localhost Desktop]# cp * ~student

[root@localhost Desktop]# ls /home/student/

Desktop    Downloads  file10  Pictures  Templates

Documents  file       Music   Public    Videos

5+(同.):當前目錄

[root@localhost Desktop]# ls

file  file10

[root@localhost Desktop]# cp /etc/passwd ~+

[root@localhost Desktop]# ls

file  file10  passwd

[root@localhost Desktop]# cp /etc/group .

[root@localhost Desktop]# ls

file  file10  group  passwd

6-cd ~-cd -):當前目錄之前所在的目錄

[root@localhost mnt]# pwd

/mnt

[root@localhost mnt]# cd /root/Desktop/

[root@localhost Desktop]# ls

file  file10  passwd

[root@localhost Desktop]# cp * ~-

[root@localhost Desktop]# ls /mnt/

file  file10  passwd

7[abc]:文件名包含有abc

[root@localhost Desktop]# ls

filea  fileb  filec  filed  filee  filef  test

[root@localhost Desktop]# cp file[abc] test/

[root@localhost Desktop]# ls test/

filea  fileb  filec

[root@localhost Desktop]# touch file{1..5}{a..e}

[root@localhost Desktop]# ls

file1a  file1d  file2b  file2e  file3c  file4a  file4d  file5b  file5e

file1b  file1e  file2c  file3a  file3d  file4b  file4e  file5c  test

file1c  file2a  file2d  file3b  file3e  file4c  file5a  file5d

[root@localhost Desktop]# cp file?[ace] test/

[root@localhost Desktop]# ls test/

file1a  file1e  file2c  file3a  file3e  file4c  file5a  file5e

file1c  file2a  file2e  file3c  file4a  file4e  file5c

8[!abc](同<^abc>):文件名除了含有abc

[root@localhost Desktop]# ls

file1a  file1d  file2b  file2e  file3c  file4a  file4d  file5b  file5e file1b  file1e  file2c  file3a  file3d  file4b  file4e  file5c  test file1c  file2a  file2d  file3b  file3e  file4c  file5a  file5d

[root@localhost Desktop]# cp file?[!ace] test/

[root@localhost Desktop]# ls test/

file1b  file2b  file3b  file4b  file5b file1d  file2d  file3d  file4d  file5d

9[[:alpha:]]:單個字母

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:alpha:]]* test/ -r

cp: cannot copy a directory, test, into itself, test/test

[root@localhost Desktop]# ls test/

fi2le  file  File  file2  test

[root@localhost Desktop]# ls test/test/

fi2le  file  File  file2

10[[:lower:]]:單個小寫字母

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:lower:]]* test/

cp: omitting directory test

[root@localhost Desktop]# ls test/

fi2le  file  file2

11[[:upper:]]:單個大寫字母

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:upper:]]* test/

[root@localhost Desktop]# ls test/

File

12[[:alnum:]]:單個字母或數字

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:alnum:]]* test/

cp: omitting directory test

[root@localhost Desktop]# ls test/

 2file  fi2le  file   File  file2

13[[:punct:]]:單個符號,不包含空格或數字

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp [[:punct:]]* test/

[root@localhost Desktop]# ls test/

@file

14[[:digit:]]:數字

[root@localhost Desktop]# ls

 2file  fi2le  file  @file  File  file2  test

[root@localhost Desktop]# cp *[[:digit:]]* test/

[root@localhost Desktop]# ls test/

 2file  fi2le  file2

15[[:space:]]:單個空格

[root@localhost Desktop]# touch file " "file

[root@localhost Desktop]# ll

total 0

-rw-r--r--. 1 root root  0 Sep 27 18:34 file

-rw-r--r--. 1 root root  0 Sep 27 18:34  file

drwxr-xr-x. 2 root root 42 Sep 27 18:33 test

[root@localhost Desktop]# ls test/

hello

[root@localhost Desktop]# cp [[:space:]]* test/

[root@localhost Desktop]# ll test/

total 0

-rw-r--r--. 1 root root 0 Sep 27 18:39  file

-rw-r--r--. 1 root root 0 Sep 27 18:38 hello

vim編輯器】

vimtutorvim的說明工具,:q退出此工具

<1> 命令模式

#vim /etc/vimrc

在結尾一行加上set nu,以後用vim打開的文件會自動添加標號

:set nu | number //顯示行號

:set mouse=a  //設定鼠標可以操作光標位置

:help //獲得幫助;:q退出幫助文檔

u  //後退,恢復到未操作前

ctrl+r  //前進,恢復到操作後

ctrl+v  //高量選擇模式

:數字  //移動光標到指定行 如:1  //光標停在第一行

G  //移動光標到文件末尾

g  //移動光標到文件開頭

批量添加字符』

ctrl+v可以選中一片區域,ctrl+v選中要加字符的位置,按I加入想添加的字符,按esc退出

『分屏功能』

ctrl+w s  //上下分屏

ctrl+w v  //左右分屏

ctrl+w c  //撤銷光標所在屏幕

ctrl+w 上下左右 //移動光標到指定屏幕中

『替換字符』

:%s/原字符/替換後字符/g

15s/asdf/hello/g  ##替換15

搜索功能』

在命令模式下,/關鍵字

N向上匹配;n向下匹配

『字符管理』

d+w  //刪除光標所在單詞

d+l  //刪除光標所在字母

d數字d //刪除數字指定的行數  egd3d  //一共刪除了3

d數字+上鍵  //向上刪除指定的行數  eg:  d3上鍵  //刪除從光標所在行向上數起的三行,並且刪除光標所在行;一共刪除了4

d + g  //從光標所在位置刪除到文件開始處

d + G  //從光標所在位置刪除到文件末尾

D  //從光標所在位置向後刪除光標所在行

y+w  //複製光標所在單詞

y+l  //複製光標所在字母

y數字y  //向下複製數字指定的行數

p  //粘貼

c+w  //剪切光標所在單詞

c+l  //剪切光標所在字母

c數字c  //剪切數字指定行數

注意:剪切完後會進入插入模式,按esc退出插入模式後再按p要粘貼

<2> 插入模式

i  //光標所在位置插入字符

a  //光標所在字符的下一位插入

I  //光標所在行首插入

A  //光標所在行的行尾插入

o  //光標所在行的下一行插入

O  //光標所在行的上一行插入

s  //刪除光標所在字符插入

S  //刪除光標所在行插入

<3> 退出模式

在命令模式下輸入

:q###未對文件作任何修改時退出

:q!###強制退出

:wq###退出保存

:wq!###強制退出保存

【對命令的輸出進行管理】

>file1或設備 ##把正確的輸出結果定向到file1這個文件中

>>file1 ##把正確的輸出結果定向到file1這個文件中,並且不覆蓋file1中的內容

2>file2 ##把錯誤的輸出結果定向到file1這個文件中

&>file3 ##把輸出結果(包括正確和錯誤的)定向到file1這個文件中

2>&1 ##把錯誤的當成正確的

/dev/null ##系統中的垃圾箱

管道(可以多個使用默認情況下,管道只接受正確的信息

如:ls /bin 2>&1 | wc-l

ls /bin 2>& |tee file |wc-l  ##tee把輸出複製到file中,我們可以看到

find /etc/ name passwd >file 2>&1 ##把正確的和錯誤的都放到file

find /etc/ name passwd 2>&1 >file ##不能實現以上功能,當執行>file時,2>&1的結果已經被“扔到了地上”,不會記錄


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章