1. 程式人生 > 其它 >ubuntu新系統環境配置集錦

ubuntu新系統環境配置集錦

程序和效能

程序

程序:即執行在記憶體中,是執行中的程式的一個副本,具有相應的PID,存在生
命週期
第一個程序:init程序 centos7以後為systemd程序

LRU演算法:近期最少使用演算法,釋放記憶體

#程序具有的特性:
動態性:程序是程式的一次執行過程,是臨時的,有生命週期,是動態產生,動態消亡的
開發性:任何程序都可以同其他程序一起開發執行
獨立性:程序是系統進行資源分配和排程的一個獨立單位
結構性:程序由程式、資料和程序控制塊的三部分組成

#IPC程序間通訊
同一主機:管道,socket,訊號
不同主機:IP和埠號
程序優先順序
優先順序:0-139 數字越小優先順序越高

#程序優先順序
系統優先順序:0-139,數字越小,優先順序越高,各有140個執行佇列和過期佇列
實時優先順序:99-0   值最大優先順序最高
nice值:-20到19  對應系統優先順序100-139

程序分類

#作業系統分類
協作式多工:早期 windows 系統使用,即一個任務得到了CPU時間,除非它
自己放棄使用CPU,否則將完全霸佔CPU,所以任務之間需要協作——使用一段時
間的CPU,主動放棄使用。
搶佔式多工:Linux核心,CPU的總控制權在作業系統手中,作業系統會輪流
詢問每一個任務是否需要使用CPU,需要使用的話就讓它用,不過在一定時間後,作業系統會剝奪當前任務的CPU使用權,把它排在詢問佇列的最後,再去詢問下一個任務
#型別分類,兩者可相互轉化
守護程序:系統引導過程中啟動的程序,與終端無關
前臺程序:通過終端啟動的程序

程序狀態

#程序基本狀態
建立狀態:程序在建立時需要申請一個空白PCB(process control block程序
控制塊),向其中填寫控制和管理程序的資訊,完成資源分配。
就緒狀態:程序已準備好,已分配到所需資源,只要分配到CPU就能夠立即執行
執行狀態:程序處於就緒狀態被排程後,程序進入執行狀態
阻塞狀態:正在執行的程序由於某些事件(I/O請求,申請快取區失敗)而暫時
無法執行,程序受到阻塞。在滿足請求時進入就緒狀態等待系統呼叫
終止狀態:程序結束,或出現錯誤,或被系統終止,進入終止狀態。無法再執行
#程序的更多狀態
執行態:running
就緒態:ready
睡眠態:分為兩種,可中斷:interruptable,不可中斷:uninterruptable
停止態:stopped,暫停於記憶體,但不會被排程,除非手動啟動
僵死態:zombie,結束程序,父程序結束前,子程序不關閉

效能管理工具

ps 當前程序資訊
	a  #所有終端程序
	u  #更多資訊
	x  #包括守護程序
	-e #顯示所有程序
	-f #顯示完整格式資訊
	-F #顯示更完整格式的程序資訊
	-H #以程序層級格式顯示程序相關資訊
常用組合:
	aux
	-ef
	-eFH
	-eo

mpstat #顯示cpu相關統計
  來源於sysstat包
   yum install -y sysstat
   
  
prtstat 16738 #檢視單個程序狀態
		-r    #raw格式顯示
		
#程序實時狀態
 top
 	-d #指定重新整理時間間隔,預設為3秒
 	-n #重新整理多少次後退出
 	-H #執行緒模式
 htop  #比top功能更強,epel提供
	  --help #檢視幫助
	  -d #指定延遲時間
	  -s #以指定欄位進行排序

#負載查詢,檢視登入終端與登入時間
w
uptime

free #記憶體空間 
	 -h #易讀格式
	 
vmstat #虛擬記憶體資訊
	 -s #顯示記憶體的統計資料
	
iostat #提供更豐富的IO效能狀態資料
	  -c # 只顯示cpu行
	  -d # 顯示裝置(磁碟)使用狀態
	  -t # 在輸出中包括擴充套件磁碟滑鼠
	  
iotop #監視磁碟I/O
   第一行:Read和Write速率總計
   第二行:實際的Read和Write速率
   第三行:引數

iftop #顯示網路頻寬使用情況
  安裝 yum install iftop -y
  


pstree # 程序樹 
	-p # 顯示pid
	-T # 不顯示執行緒thread,預設顯示
	
glances 綜合監控工具 通過epel安裝 yum install -y glances

lsof # 檢視程序開啟檔案
	-c # 指定程序名開啟的檔案
	-p # 指定pid開啟的檔案
	-u # 指定使用者開啟的檔案
	
kill # 訊號傳送
	-1  # 重新生效
	-9  # 強制殺死
	-18 # 繼續執行
	-19 # 後臺休眠
	
pkill -9 -t pts/1 踢人:強制下線終端

系統中出現未知程式,將其刪除

ps aux 檢視程式pid
ll /proc/521/exe
刪除exe指向的檔案

作業管理

前臺作業:啟動後一直佔用終端

後臺作業:啟動後轉入後臺執行

使作業後臺執行

啟動中的作業:Ctrl+z
未啟動的作業:命令 &

作業控制:
  jobs 檢視當前終端所有作業
  fg 1 把第一個作業從後臺調回前臺
  kill -18 %1 使第一個作業繼續執行
  kill -19 %1 使第一個作業後臺休眠
並行執行
  ls& ll& df&
  
wait 等待後臺作業完成後退出

計劃任務

at工具一次性任務

at 一次性任務 (由包at提供,需開啟atd服務)
標準輸出和標準錯誤以郵件方式顯示
at列隊檔案:
	/var/spoll/at/
	ubuntu存放在/var/spool/cron/atjobs
	
at [time]

at   -l 檢視所有任務
	 -d 刪除計劃任務
格式:at 9:15 → ls → ctrl+d
	 echo ls | at 9:15

cron 週期性任務

#注:週期性計劃任務需開啟crond服務
	centos 7 以後的版本:  systemctl status crond
	centos 6: service crond status
	
系統計劃任務: /etc/crontab主配置檔案,/etc/cron.d/子配置檔案 #注意檔案中的path路徑
計劃任務日誌: /var/log/cron
檔案格式:
		SHELL=/bin/bash   #預設的SHELL型別
		PATH=/sbin:/bin:/usr/sbin:/usr/bin  #預設的PATH變數值,
可修改為其它路徑
		MAILTO=root #預設標準輸出和錯誤發郵件給root,可以指
向其它使用者
	時間格式:
		  分鐘 小時 日期 月份 周幾
		   0   21    1   *   *
 *(代表取值範圍的所有值) 3,6(取多個時間值) 5-7(連續取值) */5(每5分鐘一次)
例:
  #晚上9點10分執行echo命令
  10 21 * * * wang /bin/echo "Howdy!"
  #每3小時echo命令
  0 */3 * * * wang /bin/echo “hello”
使用者計劃任務:
	每個使用者有專門的計劃任務檔案/var/spool/cron/使用者名稱
	預設路徑需要注意
	標準輸出與標準錯誤傳送給對應的使用者
	
crontab 命令
	  -e 編輯計劃任務
	  -l 列出所有任務
	  -r 移除所有任務
	  
 例:11月每天的6-12點之間每隔2小時執行/app/bin/test.sh
 crontab -l
 0  6-12/2 * 11 * /app/bin/test.sh
 
 cron任務中%有特殊含義,如需使用要加\符號
例:
 30 2 * * * /bin/cp -a /etc/ /data/etc`date+\%F_\%T`