一 什麼是程序
1 在linux系統當中,觸發任何乙個事件時,系統都會將它定義成為乙個程序,並且給予這個程序乙個id,稱為pid,同時依據觸發這個程序的使用者與相關屬性關係,給予這個pid一組有效的許可權設定
2 我們說過,系統應該是僅認識二進位制檔案的,那麼當我們要讓系統工作的時候,當然就需要啟動乙個二進位制檔案,那個二進位制檔案就是程式
3 程式:通常為二進位制程式放置在儲存媒介中(如硬碟,光碟,軟盤,磁帶等),以物理檔案的形式存在
程序:程式被觸發後,執行者的許可權與屬性,程式的程式**與所需資料等都會被載入到記憶體中,作業系統並給予這個記憶體中的單元乙個識別符號pid,可以說,程序就是乙個正在執行中的程式
4 連續執行兩個bash後,第二個bash的父程序就是前乙個bash,因為每個程序都有乙個pid,那某個程序的父程序可以通過ppid來判斷
5 在linux的過程呼叫中通常稱為fork-and-exec的流程:程序都會通過父程序以複製fork的方式產生乙個一模一樣的程序,然後被複製出來的子程序再以exec的方式來執行實際要進行的程序,最終就成為乙個子程序的存在
6 系統先以fork的方式複製乙個與父程序一模一樣暫存程序,這個程序與父程序唯一的區別就是pid不同,但是這個暫存程序還會多乙個ppid引數,然後暫存程序開始以exec的方式載入實際要執行的程式,最終成為子程序
二 工作管理
1 在進行工作管理的行為中,其實每個工作都是目前bash的子程序,即彼此之間是有相關性的。即我們無法以工作管理的方式從tty1的環境去管理tty2的bash
2 假設我只有乙個終端,因此在可以出現提示符讓你操作的環境就稱為前台,至於其他工作就可以讓你放入後台去暫停或執行。要注意的是,放入後台的工作想要執行時,它必須不能夠與使用者互動。
3 總之要進行工作管理的限制是:
1 這些工作所觸發的程序必須來自於你shell的子程序
2 前台:你可以控制與執行命令的這個環境稱為前台工作
3 後台:可以自行執行的工作,你無法使用ctrl+c終止它,可使用bg/fg呼叫該工作
4 後台中「執行」的程序不能等待終端的輸入
4 直接將命令丟到後台中「執行」的&,這個&代表的是「將工作丟到後台中,不怕被ctrl+c中斷
5 將目前的工作丟到後台中「暫停」,ctrl+z
6 在vi的一般模式下,按下ctrl+z這兩個按鍵,螢幕上面會出現[1],表示這是第乙個工作,而那個+代表最近乙個被丟進後台的工作,且目前在後台下缺省會被取用的那個工作。而stopped表示的是這個工作是暫停的
7 其實後台的工作+代表的是最近被放到後台的工作號碼,-代表最近最後第二個被放置到後台的工作號碼,而超過最後三個以上的工作,就不會有+/-符號存在了
8 將後台的工作拿到前台來處理fg,fg %jobnumber,jobnumber是工作號碼
9 讓工作在後台下的狀態變成執行中bg,bg %jobnumber,jobnumber是工作號碼
10 管理後台的工作kill
kill -signal %jobnumber
-1,重新讀取一次引數的配置檔案
-2,代表由鍵盤輸入ctrl+c同樣的操作
-9,立刻強制刪除乙個工作
-15,以正常的程式終止乙個工作,並將該工作強制刪除
11 kill後面接的數字缺省會是pid,如果想要管理bash的工作控制,就得要加上%數字了
12 離線管理問題
1 我們在工作管理中所提到的「後台」指的是在終端機模式下可以避免ctrl+c中斷的乙個情境,並不是放到系統的後台中
2 我們可以使用nohup命令實現真正的放到系統後台來執行
nohup 命令與引數 -->在終端機的前台工作
nohup 命令與引數 & -->在系統的後台工作
3 nohup並不支援bash內建的命令,因此你的命令必須要是外部命令才行
4 如果我們想要讓在後台的工作在你登出後還能夠繼續執行,可以使用nohup命令
三 程序管理
1 程序的檢視分為兩種靜態的ps以及動態的top
2 ps相關命令
ps aux -->檢視系統所有的程序資料
ps -la -->檢視所有系統的資料
ps axjf -->連同部分程序樹的狀態
3 通常,造成殭屍程序的成因是因為該程序應該執行完畢,或者是因故應該要終止了,但是該程序的父程序卻無法完整的將該程序結束掉,而造成那個程序一直在記憶體中。通過ps axu命令檢視程序狀態,如果在某個程序的最末尾有就說明是殭屍程序
4 top動態的檢視程序的變化,top -d 數字 -->數字表示要幾秒鐘重新整理一下
5 一般來說我們經常需要找到最損耗資源的那個程序,大多數都是利用top這個程式,然後強制與cpu使用資源來排序
6 所有的程序都是依附在init這個程序下面的,init這個程序的pid是1號,因為它是由linux核心所主動呼叫的第乙個程序
7 系統資源的檢視
1 free 檢視記憶體的使用情況
2 uname 檢視系統與核心相關資訊
3 uptime 檢視系統啟動時間與工作負載
4 netstat 跟蹤網路
5 dmesg 分析核心產生的資訊
四 selinux初探
1 什麼是selinux呢?其實就是安全強化linux的意思
2 selinux是通過mac的方式來控管程序,它控制的主體是程序,而目標則是該程序能夠讀取的檔案資源
3 selinux支援三種模式
ecforcing:強制模式,代表selinux正在執行中
permissive:寬容模式,代表selinux正在執行中,不過僅會有警告資訊並不會有實際限制domain/type的訪問
disabeld:關閉,selinux並沒有實際執行
4 我們可以通過getenforce來檢視當前的selinux是哪一種模式
5 如果要啟動selinux的話,我們應該修改/etc/selinux/config,將這個檔案的selinux=enforing設定妥當,並且指定selinuxtype=targeted這一設定,並且到/boot/grub/menu.lst這個檔案去,看看核心有沒有關閉selinux
linux包管理和庫配置
linux中基礎的包管理程式 rpm 安裝,解除安裝,公升級,查詢,校驗,查詢較便捷,但是安裝應用時要解決很多包依賴 選項 i 安裝,顯示過程 q 查詢程式是否存在 qi 詳細資訊 a 所有包 f 檢視指定檔案由哪個程式包安裝生成 p 對安裝包查詢 d 檢視程式文件 c 檢視程式配置檔案 l 查詢程...
LINUX8 程序管理
對後台整體的管理 什麼是程序?每個執行的程式 就成為乙個程序 每乙個程序對應乙個父程序,父程序可以複製多個子程序 每個程序以前台和後台方式存在,前台程序使用者可在螢幕上操作,後台程序實際操作,螢幕無法顯示,一般系統服務以後台程序方式存在,且常駐系統,直至關係。顯示系統執行程序 ps指令 檢視進行使用...
Linux 基礎 8 程序管理
login name 登入使用者名稱 terminal line 使用終端裝置 login time 登入到系統的時間。格式 ps 選項 作用 用於監控後台程序的工作情況,因為後台程序是不和螢幕鍵盤這些標準輸入 輸出裝置進行通訊的,所以如果需要檢測其情況,便可以使用ps命令了。選項部分如下 e 顯示...