一 进程
1.进程定义:进程就是程序运行的过程,就是cpu未完成的工作,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
2.linux中进程查看的命令
(1)ps 参数
a ##关于当前环境的所有进程
x | -A ##所有进程
f ##显示进程从属关系
e ##显示进程调用环境工具的详细信息
l ##长列表显示进程详细信息
u ##显示进程的用户信息
-a ##显示shell前台运行命令的进程,但不包括shell本身
这些参数的信息可在man ps 或ps --help中查看
实验说明;
ps a 查看当前环境所有进程信息
ps x | -A 查看所有进程,略有不相同,x显示没有控制终端的进程同时显示各个命令的具体路径
ps f ;ps e; ps l;ps u;ps -a;
(2)ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat
%cpu ##cpu使用率
%mem ##内存使用率
user ##进程发起用户
grop ##进程组
comm ##进程名称
nice ##进程优先级
pid ##进程id
stat ##进程状态
实验(截取部分):
(3)stat中显示的信息说明
S ##进程状态
l ##内存中该进程存在锁定空间
N ##优先级低
< ##优先级高
+ ##(shell)前台运行
s ##顶级进程
实验:后台运行giedit,ps a查看进程,gedit显示进程状态l,内存中默认为gedit留存部分空间,做一编辑存储使用;ps a +前台运行进程
(4)ps ax -o %cpu,%mem,comm --sort=+%cpu,-%mem
+ ##正序
- ##倒序
%cpu ##cpu负载排序
%mem ##内存负载排序
实验:
3.进程的优先级
(1)进程的优先级范围
-20~19
(2)优先级的查看
ps ax -o pid,nice,comm
(3)指定某个优先级开启进程
nice -n 优先级数字 进程名称
Eg: nice -n -5 vim & ##开启vim指定程序优先级为-5
**nice -n -5 vim &执行了两次
(4)改变进程优先级
renice -n 优先级数字 进程名称
renice -n -5 5 ##改变名称为5的进程的优先级为-5
4.环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
[Ctrl+z] ##把占用终端的进程打入后台
fg jobsnum ##把后台的进程调回前台
bg jobsnum ##把后台暂停的进程运行起来
comm & ##让命令直接在后台运行
实验:
当前环境,gedit,vim(两个)被打入后台
把vim调回前台运行
让后台gedit运行起来,原先无法编辑的gedit可以进行编辑了
5.进程信号
(1)常用信号等级
1 ##进程重新家在配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程(可能阻塞,无法关闭)
18 ##运行暂停的进程
19 ##强行暂停某个进程(不能被阻塞,一定会暂停)
20 ##把进程打入后台(可能被阻塞)
man 7 signal ##查看信号详细信息
kill -信号 进程pid ##进行相应的操作
killall -信号 进程名字 ##批量操作统一进程
pkill -u uesrname -信号 ##对用户进行相应的信号操作
实验:kill -9 3409 结束gedit程序
关闭两个vim进程
关闭student用户打开的所有进程
6.top命令
top ##监控系统负载工具
S ## 修改进程刷新间隔时间
m ##根据内存占有率进行排序
C ##根据 cpu占有率进行排序
u ##后面输入用户名 ,用来查看该用户发起的所有进程
k ##后面跟要作用的进程 pid,和发起的信号 (eg:9,15,20)用来给某个进程发起一信号
实验:top进入top监控见面
按s键后输入时间,修改刷新时间间隔
C,m按cpu,内存占有率进行排序,从高到底,h显示top帮助说明界面,q退出top监控界面
二 openssh-server
让远程主机可以通过网络访问sshd服务,开始一个新的shell
1.客户端连接方式
(1)ssh远程主机用户@远程主机id
[root@localhost Desktop]# ssh student@172.25.254.21
The authenticity of host '172.25.254.21 (172.25.254.21)' can't be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes ##连接陌生主机时需要建立认证关系
Warning: Permanently added '172.25.254.21' (ECDSA) to the list of known hosts.
student@172.25.254.211's password: ##远程用户密码
Last login: Sun Jan 3 21:13:47 2018
[student@localhost ~]# ##登陆成功
实验:左边desktop要远程连接右边server主机,ifconfig查看各自的ip地址
Desktop shell中执行命令:ssh student@172.25.254.21
**输入student用户密码,连接成功(因为之前已经练习过多次了,所以实验中没建立认证关系环节)
(2)ssh 远程主机用户@远程主机ip -X 调用远程主机图形工具
重新登陆远程主机图形界面,提示缺少/home/student/.Xauthority文件
(3)远程主机用户@远程主机ip command ##直接在远程主机运行某条命令
ssh student@172.25.254.21 touch /tmp/file0
(3)客户机desktop每次远程登陆服务机server时总是需要输入密码,为此服务机server用户可以进行设置
ssh-keygen进行加密
*.生成公钥私钥
[root@server0 ~]# ssh-keygen ##生成公钥私钥工具
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):[enter] ##加密字符保存文件(建议用默认)
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): [enter] ##密钥密码,必须>4个字符
Enter same passphrase again: [enter] ##确认密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ab:3c:73:2e:c8:0b:75:c8:39:3a:46:a2:22:34:84:81 root@server0.example.com
The key's randomart image is:
+--[ RSA 2048]----+
|o |
|E. |
|.. |
|. . o |
|.o. * . S |
|oo.o o . |
|+ =. . . |
|o. oo.+.. |
| ..o*. |
+-----------------+
[root@server0 ~]# ls /root/.ssh/
id_rsa id_rsa.pub
*
id_rsa ##私钥,就是钥匙
id_rsa.pub ##公钥,就是锁
*.添加key认证方式
[root@server0 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.0.11
ssh-copy-id ##添加key认证方式的工具
-i ##指定加密key文件
/root/.ssh/id_rsa.pub ##加密key
root ##加密用户为root
172.25.0.11 ##被加密主机ip
*.分发钥匙给client主机
[root@server0 ~]# scp /root/.ssh/id_rsa root@172.25.0.10:/root/.ssh/
*.测试
[root@desktop0 ~]# ssh root@172.25.0.11 ##通过id_rsa直接连接不需要输入用户密码
Last login: Mon Oct 3 03:58:10 2016 from 172.25.0.250
[root@server0 ~]#
实验:
第一步制作钥匙
第二步添加认证方式
第三布把钥匙给客户端root用户
第四步客户机root远程连接登陆测试
连接成功
(4)提升openssh的安全级别####
*.openssh-server配置文件
/etc/ssh/sshd_config
PasswordAuthentication yes|no ##是否开启用户密码认证,yes为支持no为关闭
PermitRootLogin yes|no ##是否允许超级用户登陆
AllowUsers student westos ##用户白名单,只有在名单中出现的用户可以使用sshd建立shell
DenyUsers westos ##用户黑名单
实验说明:
执行命令 vim /etc/ssh/sshd_config
在第45认证(authentication)下边编写内容,主要#是说明内容,去掉#字符将78PasswordAuthentication yes|no后边的yes改成no,则不需要密码认证远程登陆,48行PermitRootLogin yes|no 允许root用户登录改成no,则root用户无法登录, 编写AllowUsers student westos 用户使用ssh远程登陆白名单,表示student和westos可以使用ssh进行远程登陆新开shell,编写DenyUsers westos 用户使用黑名单,表示westos用户不能使用ssh进行远程登陆
(5)控制ssh客户端访问
vim /etc/hosts.deny
sshd:ALL ##拒绝所有人链接sshd服务
vim /etc/hosts.allow
sshd:172.25.254.250 ##允许250主机链接sshd
sshd:172.25.254.250, 172.25.254.180 ##允许250和180链接
sshd:ALL EXCEPT 172.25.254.200 ##只不允许200链接sshd
实验说明:
执行命令:vim /etc/hosts.deny,进入后在后边编写sshd:客户机1ip,2ip等
sshd:172.25.254.250 ##禁止250主机链接sshd
sshd:172.25.254.250, 172.25.254.180 ##禁止250和180链接
sshd:ALL EXCEPT 172.25.254.200 ##只允许200链接sshd
(5)ssh登陆提示修改该
vim /etc/motd ##显示登陆后字符
hello world ##在登陆后就会显示这个字符
实验:vim /etc/motd 进入编辑三行内容“hello world 欢迎使用ssh命令 登陆成功”,wq退出保存,客户机连接测试