Shell 命令能夠是內部或者外部命令。
內部(內置)命令(internal (built-in) command)的代碼自己就是shell進程的一部分。LINUX shell中的一些內部命令如.alias、bg、cd 、continue、echo 、exec 、exit 、fg 、jobs 、pwd 、set 、shift 、test 、time 、umask 、unset和wait。
外部命令是(external command)命令代碼以文件的形式出現的稱爲;文件內容能夠是二進制代碼或者shell腳本。一般使用的一些外部命令如grep、more 、cat 、mkdir 、rmdir 、ls 、sort 、ftp 、telnet 、lp和ps 。
shell前後使用fork和exec系統調用來執行一個外部二進制命令。
2.
fork和exec
系統先用fork複製一個與父進程相同的暫存進程,這個進程與父進程的惟一區別是PID。而後暫存進程以exec方式加載實際要執行的程序。
3.進程有關命令
ps命令用來查看系統中運行的進程的各類屬性node
top命令:實時監視CPU的活動狀態。該命令顯示系統中CPU密集型任務的狀態而且容許你交互地控制這些進程。
kill命令:終止指定PID的進程
前臺foreground執行:
當鍵入命令並敲<Enter>後,
•shell執行命令
•在當前命令執行結束即shell返回前,你不能執行任何命令。
須要運行一個要花費很長時間才能完成的LINUX命令(或者任一這樣的程序),當命令執行時,你沒法作其它工做。
後臺background執行命令
LINUX能夠在執行命令的同時作其餘工做
❖在命令
後面加上一個
「與」操做符號(&),使該命令在
後臺操做。
find / -name foo –print > foo.paths 2> /dev/null &shell
[1] 23467網絡
括號中shell返回的數字是該進程的
做業號(job number);另一個數字是
進程PID。
find 命令的做業號是1,其PID爲23467。
做業是一個不運行於前臺的進程,而且只能在關聯的終端上訪問。這樣的進程一般在後臺執行或者成爲被掛起的進程。
fg命令可使後臺進程轉到前臺ui
使用<Ctrl-Z>掛起一個前臺進程。spa
使用
bg命令把被掛起的進程轉到後臺。
使用
jobs命令顯示全部掛起的(中止的)和後臺進程的做業號,肯定哪個是當前的進程。
命令suspend 能夠掛起當前shell進程
❖
終止後臺進程可用兩種方法中的一種:
•使用kill命令
•先使用fg命令把進程轉向前臺,而後按<Ctrl-C>。
kill命令的主要目的是向進程發送信號(也稱爲
軟中斷)。
進程接收到信號後,能夠採起如下三種行爲之一:
•接受內核規定的默認動做
•忽略該信號
•截獲該信號而且執行用戶定義的動做
kill命令
kill [-signal_number]proc-list
kill -l
經常使用的信號號碼: 1 掛斷
9 強制終止
15 終止進程
爲了終止一個忽略15號信號或者其它信號的進程,須要使用9號信號,即強制終止信號
進程號0能夠指代全部在當前登陸期間建立的進程。所以 kill –9 0命令能夠終止全部登陸時產生的進程(即,當前會話中的全部進程),這樣,你本身就不得不退出系統
❖Linux內核中的文件機制
Linux文件共享方法
❖經過副本共享:
複製須要共享的文件並分發到組內每一個成員操作系統
❖經過同一用戶名登陸共享:
共用一個帳號登陸系統。指針
❖爲共享文件設立適當的訪問權限:
把全部要共享的文件放到一個成員賬號下,設置組成員具備讀寫和執行的權限索引
❖爲團隊成員創建一個用戶組
創建一個新用戶組只包括項目組的全部成員,每一個用戶用本身的帳號登陸,爲本身的文 件設立適當的訪問權限,使得它們能夠被組中的其餘成員訪問。進程
❖經過文件連接共享, Linux兩類連接:
硬連接(hard link)it
軟(符號)連接(Soft/symbolic link)
l
n命令用來創建硬連接和符號連接。
語法:
ln [options] existing-file new-file
ln [options] existing-file-list directory
經常使用選項:
-f 強迫創建連接
-n 若是「new-file」已存在,不建立連接。
-s 創建一個符號連接而不是硬連接
-d 創建目錄的硬連接
例:
$ ln Chapter3 Chapter3.hard