天天看點

linux基礎知識總結(三)

根據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)

&lt; 高優先級的程序

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 一個任務包含了多個程序

加&amp;,會釋放指令提示符,将作業轉入背景執行

<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 &amp; 送到背景運作,終端退出,依然可運作

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&amp;gt;and&amp;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

-print

-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&amp;打開圖形界面

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,如需轉載請自行聯系原作者

繼續閱讀