根据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 显示所有进程
PID 进程号 TTY 由哪个终端发起的(F1——F6) “?”表示守护进程,跟终端没关系
TIME 占用CPU运行时间之和。CMD 发起进程的命令。
-f 完全格式
-F 打印出额外信息,比-f显示信息更多
ps –eF
加[]表示内核线程,由内核线程(thread)发起的。
线程 thread:轻量级进程(LWP)。引入线程的概念是为了使多个程序能并发执行,以提高资源的利用率和吞吐量。线程作为调度和分派的基本单位,但不拥有资源。线程的切换不会引起进程的切换。linux没有真正意义的线程。
UID 进程的发起者; PID 进程号;PPID 父进程号; C CPU time累计时间;
SZ 所占用的空间;RSS物理内存占用的实际大小;PSR 显示进程运行在哪个CPU上
pstree 显示所有进程的关系
-u 显示某一用户发起的进程
-o 用户自定义,指定只显示哪些字段
-H显示子进程与父进程的关系
ps –ejH
-j 以job 的方式来显示进程间的关系
ps axjf (BSD风格)
a 包含所有进程
x 表示前台进程
STAT 表示进程状态
进程的状态:运行态running (R) 就绪态 runnable(R) 停止态stopped(T)
睡眠sleep:【可中断睡眠(S),不可中断睡眠(D)】 僵死态(Z)
< 高优先级的进程
N低优先级的进程
s 会话的发起者(leader)
+ 前台进程组中的进程
l 多线程的进程
ps –eo 自定义显示
pgrep grep 风格来显示进程
信号:进程间通信的一种机制,很小的信息,由一个进程发个另一个进程。
查看可用信号:kill –l
man -7
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刷新一次
-d 指定每隔多长时间显示一次 默认5s
-b batch mode 批方式来显示 类似于ps
-n N指定在-b模式下显示几次
gnome-system-monitor
作业管理:job 一个任务包含了多个进程
加&,会释放命令提示符,将作业转入后台执行
crtl + Z 直接把作业送到后台去
bg %n 省略号可省 把一个前台作业送到后台去
fg 把一个后台作业送到前台去 默认的是把带“+”号的作业调出来
fg %n 百分号可省略
删除作业的时候kill kill %3 “%”不能省略
所有的作业在终端退出的时候都会自动终止。
nohup cp /etc/ /tmp/ -r & 送到后台运行,终端退出,依然可运行
jobs z查看当前正在运行的作业
[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文件可以实现对网卡名字的修改
显示当前系统上所有的网络连接: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
/etc/sysconfig/network 全局配置 亦可以设置网关
添加网关: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查看打印队列
lprm cancle +打印作业号 用于删除一个打印作业
设置系统时间:
GUI:system-config-date NTP网络时间协议
hwclock -s以硬件时间为准
-w以系统时间为准
在指定的未来一次性的运行:at
周期性运行:crond
atq 列出当前系统作业队列
(ctrl+D)提交
移除一个作业 atrm =at –d
at只能在制定未来一次性的运行
watch 监控作业的执行情况,将结果输出地屏幕上
batch 类似于at 但是不需要指定时间,自己会选择在cpu利用率较低时候执行。
crond 系统守护进程 周期性地运行
系统cron 7个字段 /etc/crontab
从左自右:min,hour,day,mon,week,
用户定义的cron 命令:crontab
/var/spool/cron/usrname 6个字段
* :通配 -:范围 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 以文件的用户来查找
-uid 通过属主的ID来查找
-gid 通过属组的ID来查找
-group 以文件的属组来查找
支持正则表达式
-type
f d l b c s p 以文件类型作为标准来查找
连接多个条件: -a and -o or -not 取反 或者!
默认是and
优先级: not>and>or
例如:寻找属主是student 属组不是student的文件
书269练习3
根据权限来查找:
-perm mode 精确匹配
-perm +mode 由任何一个用户的权限满足即可 包含也可以 比如 7包含6
-perm –mode 所有类别用户的权限都要满足
-size 根据文件大小来匹配
-size n 精确匹配 写成1的情况比较特殊,只要小于1M都会显示,系统会将1默认为单位
-size +n +1M 大于nM
-size -n -1M 小于nM
根据访问时间
-atime 3正好三天 +3超过三天 (三天前访问过) -3三天以内(三天内访问过)
-mtime 以修改时间为选项
-ctime 以改变时间为选项
-amin 3 3分钟
-mmin 以修改分钟为选项
-cmin 以改变分钟为选项
查找后执行的动作:
-ls
-exec command {}口\; 找到后执行
-ok command {}口\; 任何一个操作执行前先进行提示
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 不用登录直接下载
smbclient -L 192.168.0.1(访问windows的共享目录)