Android java Ubuntu Windows 编程 shell centos 开源 Python linux wordpress 云计算 程序员 nginx apache mysql Firefox php 微软 google

linux基礎知識總結(三)

進程:活體,程序的副本

定義:進程是進程實體的運行過程,是系統進行資源分配和調度的基本單位。——《計算機操作系統》 進程的三種狀態:就緒態、執行態、阻塞態。

基本屬性:可擁有資源的獨立單位;進程同時又是一個可獨立調度和分派的基本單位。

計算機利用進程PID來區別不同的進程

init :PID永遠為1 ,inintial(初始化)的簡寫,作用:讓操作系統系統啟動起來,並讓操作系統啟動就緒,並給用戶提供一個登陸界面,所有的進程都源於它。比喻:耶穌

所有的進程都是由父進程克隆來的。

進程調度 根據進程優先級來進行進程調度,在某一時刻,要滿足優先級高的進程。靜態優先級 0-99,動態優先級100-139。數字越小,優先級越高。

進程類型:CPU密集型進程:盡可能多的占用cpu;

I/O密集型進程,I/O比較多。

通常來說,IO密集優先級稍微高點

進程間通信:是指進程之間的信息交換。高級通信機制可以分為三大類:共享存儲器系統,消息傳遞系統以及管道通信系統。例如:信號、共享內存(share memory)、socket

查看進程 ps

默認情況下是當前用戶在當前終端上正在執行的進程。

守護進程:也稱服務進程,是保證系統的正常運行必須要啟動的。Linux環境下通常是daemon。

由用戶發起的進程:前臺進程,調度進程(用戶定期定時調用的進程)

-e 顯示所有進程

clip_image002

PID 進程號 TTY 由哪個終端發起的(F1——F6) “?”表示守護進程,跟終端沒關系

time 占用CPU運行時間之和。CMD 發起進程的命令。

-f 完全格式

-F 打印出額外信息,比-f顯示信息更多

ps –eF

clip_image004

加[]表示內核線程,由內核線程(thread)發起的。

線程 thread:輕量級進程(LWP)。引入線程的概念是為了使多個程序能並發執行,以提高資源的利用率和吞吐量。線程作為調度和分派的基本單位,但不擁有資源。線程的切換不會引起進程的切換。linux沒有真正意義的線程。

UID 進程的發起者; PID 進程號;PPID 父進程號; C CPU time累計時間;

SZ 所占用的空間;RSS物理內存占用的實際大小;PSR 顯示進程運行在哪個CPU上

pstree 顯示所有進程的關系

clip_image006

-u 顯示某一用戶發起的進程

-o 用戶自定義,指定只顯示哪些字段

-H顯示子進程與父進程的關系

ps –ejH

-j 以job 的方式來顯示進程間的關系

clip_image008

ps axjf (BSD风格)

clip_image010

a 包含所有進程

x 表示前臺進程

stat 表示進程狀態

進程的狀態:運行態running (R) 就緒態 runnable(R) 停止態stopped(T)

睡眠sleep:【可中斷睡眠(S),不可中斷睡眠(D)】 僵死態(Z)

< 高優先級的進程

N低優先級的進程

s 會話的發起者(leader)

+ 前臺進程組中的進程

l 多線程的進程

ps –eo 自定義顯示

pgrep grep 風格來顯示進程

clip_image012

信号:进程间通信的一种机制,很小的信息,由一个进程发个另一个进程。

查看可用信号:kill –l

man -7

clip_image014

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刷新一次

clip_image016

-d 指定每隔多長時間顯示一次 默認5s

-b batch mode 批方式來顯示 類似於ps

-n N指定在-b模式下顯示幾次

gnome-system-monitor

作業管理:job 一個任務包含了多個進程

加&,會釋放命令提示符,將作業轉入後臺執行

clip_image018

crtl + Z 直接把作業送到後臺去

bg %n 省略號可省 把一個前臺作業送到後臺去

fg 把一個後臺作業送到前臺去 默認的是把帶“+”號的作業調出來

fg %n 百分號可省略

刪除作業的時候kill kill %3 “%”不能省略

所有的作業在終端退出的時候都會自動終止。

nohup cp /etc/ /tmp/ -r & 送到後臺運行,終端退出,依然可運行

jobs z查看當前正在運行的作業

clip_image020

[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文件可以實現對網卡名字的修改

clip_image022

顯示當前系統上所有的網絡連接: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

clip_image024

/etc/sysconfig/network 全局配置 亦可以设置网关

clip_image026

添加網關:GATEWAY=192.168.0.254

當二者網關不一樣的時候,以/etc/sysconfig/network-scripts/ifcfg-ehX為準

修改主機名:

(1)編輯/etc/sysconfig/network hostname= 設置本機主機名 保證下次重啟生效,永久生效

(2)hostname www.a.com 立即生效,只對當前有效

或者修改 /proc/sys/kernel/hostname echo “www.b.com” > /proc/sys/kernel/hostname 臨時有效 跟hostname一樣的效果

打印機

Printing Queue

使用服務 cups

service cups status

打印命令lp lpr

lpq lpstat查看打印隊列

clip_image028

lprm cancle +打印作業號 用於刪除一個打印作業

設置系統時間:

GUI:system-config-date NTP網絡時間協議

hwclock -s以硬件時間為準

-w以系統時間為準

在指定的未來一次性的運行:at

周期性運行:crond

atq 列出當前系統作業隊列

(ctrl+D)提交

clip_image030

移除一個作業 atrm =at –d

at只能在制定未來一次性的運行

watch 監控作業的執行情況,將結果輸出地屏幕上

batch 類似於at 但是不需要指定時間,自己會選擇在cpu利用率較低時候執行。

crond 系統守護進程 周期性地運行

系統cron 7個字段 /etc/crontab

clip_image032

从左自右:min,hour,day,mon,week,

用户定义的cron 命令:crontab

/var/spool/cron/usrname 6个字段

clip_image034

* :通配 -:範圍 2-9 ,:離散的範圍 2,6,9 / :每多長時間 */2 每兩分鐘

crontab -e創建

-l 列出 查看

-r 移除所有作業

anacron 如果因為關機作業沒有執行,開機後會檢查沒有執行的作業

幾個常用的參數變量:$# 保存當前通過腳本向命令行傳遞過來的參數的個數

$@ 保存所有通過命令行傳遞過來的參數 將每個字符串獨立顯示

$* 保存所有通過命令行傳遞過來的參數 將所有的參數當做一個字符串

$! 最近一次運行的進程的進程號

$$ 當前進程的進程號

$0 命令本身

lecture 12

三個查找工具:locatefind,Gnome Search tool

locate 全系統的級別查找,但是基於某個database,通常不存在,需要創建

模糊匹配

–i 忽略大小寫

-n 指定在查找的時候只顯示n行

updatedb 手動生成locate查找時所用到的數據庫

find 【起始目錄…】 【查找標準】 【執行的動作(默認print)】

-name 文件名精確匹配 嚴格區分大小寫

find /etc –name “ pass”

-iname 忽略名字的大小寫

-user 以文件的用戶來查找

clip_image036

-uid 通过属主的ID来查找

clip_image038

-gid 通过属组的ID来查找

-group 以文件的属组来查找

支持正则表达式

-type

f d l b c s p 以文件类型作为标准来查找

clip_image040

连接多个条件: -a and -o or -not 取反 或者!

默认是and

优先级: not&gt;and&gt;or

例如:寻找属主是student 属组不是student的文件

clip_image042

书269练习3

clip_image044

根据权限来查找:

-perm mode 精确匹配

clip_image046

-perm +mode 由任何一个用户的权限满足即可 包含也可以 比如 7包含6

clip_image048

-perm –mode 所有类别用户的权限都要满足

clip_image050

-size 根据文件大小来匹配

-size n 精确匹配 写成1的情况比较特殊,只要小于1M都会显示,系统会将1默认为单位

-size +n +1M 大于nm

-size -n -1M 小于nM

根据访问时间

-atime 3正好三天 +3超过三天 (三天前访问过) -3三天以内(三天内访问过)

clip_image052

-mtime 以修改时间为选项

-ctime 以改变时间为选项

-amin 3 3分钟

-mmin 以修改分钟为选项

-cmin 以改变分钟为选项

查找后执行的动作:

-ls

-print

-exec command {}口\; 找到后执行

-ok command {}口\; 任何一个操作执行前先进行提示

clip_image054

lecture 13

客戶端:圖形界面下的訪問工具,如瀏覽器

wget: 非交互式網絡下載工具

--tries 指定重試次數

--wait 需要等待時間(s)

--recursive 遞歸下載

--convert 轉換所有鏈接到當前目錄下載目錄,轉換成本地可用鏈接,以本地鏈接的方式進行查看

links 純字符界面下查看網頁

從網上下載軟件並安裝到本地的過程:

cd /etc/yum.repos.d

wget ftp://192.168.0.254/pub/gls/CentOS.repo

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 不用登錄直接下載

clip_image056

smbclient -L 192.168.0.1(访问windows的共享目录)

延伸阅读

评论