根據RH033課程整理而成。
12月19号
Lecture 10
程序:活體,程式的副本
定義:程序是程序實體的運作過程,是系統進行資源配置設定和排程的基本機關。——《計算機作業系統》 程序的三種狀态:就緒态、執行态、阻塞态。
基本屬性:可擁有資源的獨立機關;程序同時又是一個可獨立排程和分派的基本機關。
計算機利用程序PID來差別不同的程序
init :PID永遠為1 ,inintial(初始化)的簡寫,作用:讓作業系統系統啟動起來,并讓作業系統啟動就緒,并給使用者提供一個登陸界面,所有的程序都源于它。比喻:耶稣
所有的程序都是由父程序克隆來的。
程序排程 根據程序優先級來進行程序排程,在某一時刻,要滿足優先級高的程序。靜态優先級 0-99,動态優先級100-139。數字越小,優先級越高。
程序類型:CPU密集型程序:盡可能多的占用cpu;
I/O密集型程序,I/O比較多。
通常來說,IO密集優先級稍微高點
程序間通信:是指程序之間的資訊交換。進階通信機制可以分為三大類:共享存儲器系統,消息傳遞系統以及管道通信系統。例如:信号、共享記憶體(share memory)、socket
檢視程序 ps
預設情況下是目前使用者在目前終端上正在執行的程序。
守護程序:也稱服務程序,是保證系統的正常運作必須要啟動的。linux環境下通常是daemon。
由使用者發起的程序:前台程序,排程程序(使用者定期定時調用的程序)
-e 顯示所有程序
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_12931709787AeY.jpg"></a>
PID 程序号 TTY 由哪個終端發起的(F1——F6) “?”表示守護程序,跟終端沒關系
TIME 占用CPU運作時間之和。CMD 發起程序的指令。
-f 完全格式
-F 列印出額外資訊,比-f顯示資訊更多
ps –eF
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170979mYAJ.jpg"></a>
加[]表示核心線程,由核心線程(thread)發起的。
線程 thread:輕量級程序(LWP)。引入線程的概念是為了使多個程式能并發執行,以提高資源的使用率和吞吐量。線程作為排程和分派的基本機關,但不擁有資源。線程的切換不會引起程序的切換。linux沒有真正意義的線程。
UID 程序的發起者; PID 程序号;PPID 父程序号; C CPU time累計時間;
SZ 所占用的空間;RSS實體記憶體占用的實際大小;PSR 顯示程序運作在哪個CPU上
pstree 顯示所有程序的關系
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170980n9VV.jpg"></a>
-u 顯示某一使用者發起的程序
-o 使用者自定義,指定隻顯示哪些字段
-H顯示子程序與父程序的關系
ps –ejH
-j 以job 的方式來顯示程序間的關系
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170982jaf1.jpg"></a>
ps axjf (BSD風格)
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170983CUmB.jpg"></a>
a 包含所有程序
x 表示前台程序
STAT 表示程序狀态
程序的狀态:運作态running (R) 就緒态 runnable(R) 停止态stopped(T)
睡眠sleep:【可中斷睡眠(S),不可中斷睡眠(D)】 僵死态(Z)
< 高優先級的程序
N低優先級的程序
s 會話的發起者(leader)
+ 前台程序組中的程序
l 多線程的程序
ps –eo 自定義顯示
pgrep grep 風格來顯示程序
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170984URtG.jpg"></a>
信号:程序間通信的一種機制,很小的資訊,由一個程序發個另一個程序。
檢視可用信号:kill –l
man -7
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170985aNJq.jpg"></a>
ctrl+C 一般就是信号SIGINT 打斷
kill –n PID 預設選擇15
kill –SIGKILL PID
killall comm. 把comm的全部删除 不能跟程序号 要跟發起這個程序的指令
pkill 以比對的方式把程序kill掉。
前面講過,程序是有優先級的,靜态優先級 0-99,動态優先級100-139。數字越小,優先級越高。
有一種值nice,可以調節優先級,預設nice值都為0 -20—19
0——》5優先級降低了
隻有管理者才能把nice調低,其他的使用者隻能調高
兩種方式調節nice值:(1)啟動指令的時候明确指定:nice –n N bash;
(2)renice 程序号(普通使用者隻能調高,不能調低)。
top 用于動态檢視程序資訊 通常每隔5s重新整理一次
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170991lu7A.jpg"></a>
-d 指定每隔多長時間顯示一次 預設5s
-b batch mode 批方式來顯示 類似于ps
-n N指定在-b模式下顯示幾次
gnome-system-monitor
作業管理:job 一個任務包含了多個程序
加&,會釋放指令提示符,将作業轉入背景執行
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170994IouC.jpg"></a>
crtl + Z 直接把作業送到背景去
bg %n 省略号可省 把一個前台作業送到背景去
fg 把一個背景作業送到前台去 預設的是把帶“+”号的作業調出來
fg %n 百分号可省略
删除作業的時候kill kill %3 “%”不能省略
所有的作業在終端退出的時候都會自動終止。
nohup cp /etc/ /tmp/ -r & 送到背景運作,終端退出,依然可運作
jobs z檢視目前正在運作的作業
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170995wWAL.jpg"></a>
[2]表示作業号
+目前運作的作業
Running狀态
Firefox 那個指令運作的作業
Lecture 11
實作IP位址配置:GUI:視窗
CLI:ifconfig
system-config-network-tui
/etc/sysconfig/network-scripts/ifcfg-ehX
網卡命名:lo 本地回環
eth0, eth1 以太網卡
ppp0 撥接上網 串行的點到點的連結
ip addr show 顯示目前網絡正在使用的網卡
編輯/etc/modrobe.conf檔案可以實作對網卡名字的修改
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_129317099641db.jpg"></a>
顯示目前系統上所有的網絡連接配接:ifconfig
啟用一個網絡連接配接:ifup
禁用一個網絡連接配接:ifdown
圖形視窗下指定IP位址:system-config-network-gui
臨時設定 ifconfig
格式:ifconfig ethX IP/MASK 會立即生效,但是禁用啟用後會失效,做叢集的時候實作位址漂移
永久設定:(1)system-config-network-tui 字元界面下的圖形視窗(重新開機網絡服務)活用setup類似于windows 的控制台
(2)vim編輯/etc/sysconfig/network-scripts/ifcfg-eth0
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170997ZeE9.jpg"></a>
/etc/sysconfig/network 全局配置 亦可以設定網關
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170998EN06.jpg"></a>
添加網關:GATEWAY=192.168.0.254
當二者網關不一樣的時候,以/etc/sysconfig/network-scripts/ifcfg-ehX為準
修改主機名:
(1)編輯/etc/sysconfig/network HOSTNAME= 設定本機主機名 保證下次重新開機生效,永久生效
列印機
Printing Queue
使用服務 cups
service cups status
列印指令lp lpr
lpq lpstat檢視列印隊列
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293170999Qxlm.jpg"></a>
lprm cancle +列印作業号 用于删除一個列印作業
設定系統時間:
GUI:system-config-date NTP網絡時間協定
hwclock -s以硬體時間為準
-w以系統時間為準
在指定的未來一次性的運作:at
周期性運作:crond
atq 列出目前系統作業隊列
(ctrl+D)送出
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171001rre5.jpg"></a>
移除一個作業 atrm =at –d
at隻能在制定未來一次性的運作
watch 監控作業的執行情況,将結果輸出地螢幕上
batch 類似于at 但是不需要指定時間,自己會選擇在cpu使用率較低時候執行。
crond 系統守護程序 周期性地運作
系統cron 7個字段 /etc/crontab
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171002YJwr.jpg"></a>
從左自右:min,hour,day,mon,week,
使用者定義的cron 指令:crontab
/var/spool/cron/usrname 6個字段
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_12931710046Y9X.jpg"></a>
* :通配 -:範圍 2-9 ,:離散的範圍 2,6,9 / :每多長時間 */2 每兩分鐘
crontab -e建立
-l 列出 檢視
-r 移除所有作業
anacron 如果因為關機作業沒有執行,開機後會檢查沒有執行的作業
幾個常用的參數變量:$# 儲存目前通過腳本向指令行傳遞過來的參數的個數
$@ 儲存所有通過指令行傳遞過來的參數 将每個字元串獨立顯示
$* 儲存所有通過指令行傳遞過來的參數 将所有的參數當做一個字元串
$! 最近一次運作的程序的程序号
$$ 目前程序的程序号
$0 指令本身
lecture 12
三個查找工具:locate,find,Gnome Search tool
locate 全系統的級别查找,但是基于某個database,通常不存在,需要建立
模糊比對
–i 忽略大小寫
-n 指定在查找的時候隻顯示n行
updatedb 手動生成locate查找時所用到的資料庫
find 【起始目錄…】 【查找标準】 【執行的動作(預設print)】
-name 檔案名精确比對 嚴格區分大小寫
find /etc –name “ pass”
-iname 忽略名字的大小寫
-user 以檔案的使用者來查找
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171005vZSd.jpg"></a>
-uid 通過屬主的ID來查找
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171006HkrZ.jpg"></a>
-gid 通過屬組的ID來查找
-group 以檔案的屬組來查找
支援正規表達式
-type
f d l b c s p 以檔案類型作為标準來查找
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_12931710080F7j.jpg"></a>
連接配接多個條件: -a and -o or -not 取反 或者!
預設是and
優先級: not&gt;and&gt;or
例如:尋找屬主是student 屬組不是student的檔案
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171008FkIZ.jpg"></a>
書269練習3
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171009AMvE.jpg"></a>
根據權限來查找:
-perm mode 精确比對
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171011a3BU.jpg"></a>
-perm +mode 由任何一個使用者的權限滿足即可 包含也可以 比如 7包含6
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171011J5H7.jpg"></a>
-perm –mode 所有類别使用者的權限都要滿足
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171012TXqd.jpg"></a>
-size 根據檔案大小來比對
-size n 精确比對 寫成1的情況比較特殊,隻要小于1M都會顯示,系統會将1預設為機關
-size +n +1M 大于nM
-size -n -1M 小于nM
根據通路時間
-atime 3正好三天 +3超過三天 (三天前通路過) -3三天以内(三天内通路過)
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171015kZpk.jpg"></a>
-mtime 以修改時間為選項
-ctime 以改變時間為選項
-amin 3 3分鐘
-mmin 以修改分鐘為選項
-cmin 以改變分鐘為選項
查找後執行的動作:
-ls
-exec command {}口\; 找到後執行
-ok command {}口\; 任何一個操作執行前先進行提示
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171015Z6BT.jpg"></a>
lecture 13
用戶端:圖形界面下的通路工具,如浏覽器
wget: 非互動式網絡下載下傳工具
--tries 指定重試次數
--wait 需要等待時間(s)
--recursive 遞歸下載下傳
--convert 轉換所有連結到目前目錄下載下傳目錄,轉換成本地可用連結,以本地連結的方式進行檢視
links 純字元界面下檢視網頁
從網上下載下傳軟體并安裝到本地的過程:
cd /etc/yum.repos.d
yum install evolution thunderbird
mutt 非圖形界面郵件用戶端
pidgin 即時聊天工具
Nautilus 實作檔案的通路和傳輸
SSH 字元界面下連接配接一個linux主機 secure Shell
OpenSSH
用戶端工具:ssh,sshd(伺服器端工具),scp在不同的主機之間安全的copy檔案
sftp 加密的方式實作檔案的傳輸
ssh hostname
ssh user@hostname
ssh –l user hostname
ssh –X 192.168.0.120 在本地伺服器上作為X server去執行遠端伺服器上的圖形視窗的指令。
ssh 192.168.0.123 ‘ifconfig’ 在對方伺服器上執行一個指令,并将指令的結果取回來
scp ./ centos.repo 192.168.0.210:/tmp将本機目錄下檔案拷到遠端伺服器指定目錄下
scp 192.168.0.120:/etc/fstab ./ 将遠端伺服器目錄下檔案拷到本地指定目錄下
-r 遞歸拷貝 将目錄下的檔案拷貝過來
-p 保留時間标簽和權限資訊
rsync 隻拷貝目錄下不同的檔案,效率比scp高 預設是明文傳輸
rsync –e ssh 調用ssh工具代為傳送 是以為加密傳送
-r –a
ftp用戶端:GUI:gftp gftp&打開圖形界面
CLI:ftp lftp lftpget 不用登入直接下載下傳
<a href="http://lyp0909.blog.51cto.com/attachment/201012/24/508999_1293171016TQbr.jpg"></a>
smbclient -L 192.168.0.1(通路windows的共享目錄)
本文轉自 490999122 51CTO部落格,原文連結:http://blog.51cto.com/lyp0909/463620,如需轉載請自行聯系原作者