Unit 7

****进程****

进程就是我们说的cpu正在处理中的工作,此工作并没有完成。

linux系统中,如何找到进程:

system tools---->system monitor---->processes

Terminal中,我们可以通过这条命令来查看进程:

gnome-system-monitor 系统会出现进程的列表,然后选择processes即可看到。

unit 7,8,9_system

 

****ps命令****

a      //关于的当前环境的所有进程

x      //与当前环境无关的所有进程

f      //显示进程的从属关系,有些进程在上一进程的基础上执行。

e      //显示进程调用环境工具的详细信息

l      //长列表显示进程的详细信息

u      //显示进程的用户信息

-o    

unit 7,8,9_用户_02 

unit 7,8,9_如何_03

ps ax -o user,group,comm 指定显示的参数

unit 7,8,9_如何_04


 

ps ax -o user,%cpu,%mem,group,comm,pid //显示所有进程的用户,占用cpu,内存占用,组,命令,pid信息

unit 7,8,9_用户_05

ps ax -o pid,comm --sort=-%cpu //将进程cpu按降序排序,然后显示出按降序排序的进程pid信息。

unit 7,8,9_如何_06

****环境中进程的前后台调用****

在终端中打开一个gedit。

ctrl+z             //在shell窗口,ctrl+z,可以把占用终端的进程打入后台

jobs              //可以用来查看我们打入环境后台的进程。

fg            //把后台进程调回前台

bg            //把后台暂停的进程运行

comm &  //让命令直接在后台运行。

 unit 7,8,9_system_07

unit 7,8,9_用户_08

unit 7,8,9_linux_09

unit 7,8,9_用户_10

****进程信号****

1)常见的信号等级

     1         //进程重新加载配置

     2         //删除进程在内存中的数据

     3           //删除鼠标在内存中的数据

     9           //强行结束单个个进程

     15        //正常关闭进程

     18        //运行暂停的进程

     19          //暂停某个进程

     20          //把进程打入后台

 man 7 signal   //查看信号详细信息 

kill -1 ID号     //在系统不被关闭情况下,重新加载配置文件。加载前后ID不改变。可以准确的结束进程。

先将用户切换到student,然后执行:

pkill -u student -9 //强行关闭student用户进程。

unit 7,8,9_如何_11

killall -信号 进程名  //特殊情况下,进程名可能会重复,因此不能很精确的结束进程。

 

***进程优先级的处理***

ps -o pid,nice,comm     //显示当前进程的pid,优先级,comm

renice -n -5 pid号      //“renice”修改优先级的命令,“-5”修改后的优先级参数,所修改进程的pid

我们可以通过此命令进行查看优先级的具体信息

ps -o pid,nice,comm    //查看nice列的详细信息

我们用gedit进程来操作:

unit 7,8,9_用户_12

我们还可以直接将进程以你想修改的优先级运行

nice -n 5 进程名&   //将所要打开的进程优先级设定为5,“进程名&”表示直接在后台运行该进程。

unit 7,8,9_system_13 

****用户登录审计****

1)

 w     //查看使用系统的当前用户

 w -f    // -f查看使用地点

2)

 last   //查看用户登录成功历史

3)

 lastb  //查看用户登录未成功历史

unit 7,8,9_system_14 

unit 7,8,9_system_15

查看用户当前IP:

ifconfig eth0

unit 7,8,9_如何_16

ssh 用户名@用户IP地址  //远程连接主机***top命令****

具体参数:

m     // 内存排序

c    //cpu排序

u--->输入要删除用户(student)-->pid--->信号

***系统服务的控制***

(1)systemd

系统初始化程序,系统开始的第一个进程,pid为1

(2)systemctl 命令

systemctl list-units                //列出当前系统服务的状态

systemctl list-unit-files           //列出服务的开机状态

systemctl status sshd               //查看制定服务的状态  

systemctl stop sshd                  //关闭指定服务

systemctl start sshd                 //开启指定服务

systemctl restart sshd               //重启指定服务

systemctl enable sshd                 //设定指定服务开机开启

systemctl disable sshd                //设定指定服务开机关闭

systemctl reload sshd                 //重新加载指定服务配置

systemctl list-dependencies sshd      //查看指定服务的依赖关系

systemctl mask sshd                    //冻结指定服务

systemctl unmask sshd                   //启用指定服务

systemctl set-default multi-user.target //开机不开启图形

systemctl set-default graphical.target  //开机启动图形

 

3)服务状态

systemctl  status   服务名称

unit 7,8,9_用户_17

 

loaded                  //系统服务已经初始化完成,加载过配置

active (running)       //正有一个或多个程序正在系统中运行

                           (vsftpd就是这种模式)

active (exited)         //使执行一次就正常结束的服务

                             (目前并没有任何程序在系统中执行)

active (waiting)        //正在执行当中

                           (不过还在等待其他的事件才能处理)

inactive                  //服务关闭

enabled                    //服务开机启动

disabled                   //服务开机不自启动

static                     //服务开机启动项不可被管理

failed                     //系统配置错误

 

      unit 9

***openssh-server服务***

功能:让远程主机可以通过网络访问sshd服务,开始一个安全的shell

***客户端连接方式***

ssh 远程主机用户@远程主机ip

unit 7,8,9_如何_18 

ssh  远程主机用户@远程主机ip -X           //调用远程主机图形工具 unit 7,8,9_linux_19

ssh 远程主机用户@远程主机ip    command   //直接在远程主机上运行命令

 

***sshkey加密***

生成公钥私钥

unit 7,8,9_system_20

添加key认证方式 

unit 7,8,9_如何_21

分发钥匙给客户端主机

 unit 7,8,9_用户_22 

***提升oenssh的安全级别***

openssh-server配置文件/etc/ssh/sshd_config//////修改此配置文件必须在超级用户下进行。

 1)

    PermitRootLogin yes|no   //是否允许超级用户登录

 2)

    AllowUsers 用户1 用户2   //用户白名单,只有在名单中出现的用户可以使用sshd建立shell,白名单中如果有多个用户,用户之间需要用空格隔开

 3)DenyUsers student westos   //用户黑名单