什么是进程
系统没有完成并正在进行的工作,进程有五种状态,
运行(正在运行或运行队列中排队等待)、
中断(休眠中、受阻在等待毛个条件的形成或接受到信号)、
不可中断(进程必须等待有中断发生)、
僵死(进程中止但描述符仍在)
停止(进程收到停止的命令信号)
查看进程
ps -A #所有进程
ps -a #当前终端中运行的进程(不含详细信息)
[kiosk@foundation30 ~]$ ps -a
PID TTY TIME CMD
2462 pts/0 00:00:00 ps
ps -u #显示进程的用户信息
[kiosk@foundation30 ~]$ ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
kiosk 2410 0.0 0.0 116168 2836 pts/0 Ss 17:39 0:00 bash
kiosk 2496 0.0 0.0 151056 1824 pts/0 R+ 17:40 0:00 ps -u
ps a #在当前终端中运行的进程(含详细信息)
[kiosk@foundation30 ~]$ ps a
PID TTY STAT TIME COMMAND
1475 tty1 Ssl+ 0:10 /usr/bin/Xorg :0 -background none -noreset -audit 4 -
2410 pts/0 Ss 0:00 bash
2512 pts/0 R+ 0:00 ps a
x:列出系统中运行包含tty输出设备
f:显示pid
e:显示进程的详细信息(系统的资源调用情况)
ps常用
ps aux #显示系统中所有进程并显示进程用户
ps ef #显示进程的详细信息和pid
ps af #显示当前系统中的所有进程
显示进程的指定信息
ps -o comm ##显示进程的名称
user #拥有者
group ##所属组
%cpu ##进程对cpu的使用率
%mem ##对内存的使用率
pid ##进程id
nice ##进程优先级
进程对cpu和mem使用率的排序
ps ax --sort=+%cpu
ps ax --sort=-%cpu
ps ax --sort=+%mem
ps ax --sort=-%mem
进程优先级
-20~19数值表示越小越优先
查看进程的优先级别
ps ax -o pid,nice,comm
指定某个优先级开启进程
nice -n -5 vim filename & #开启vim并指定程序优先级为:-5
改变进程的优先级
renice -n 5 30041(要改变进程的pid)
环境中进程的前后台调用
jobs ##查看被打入后台的进程
ctrl+z ##把占用终端的进程打入后台
输入gedit后可以编辑文字但无法在终端进行输入,
及此时gedit占用了前台,使用ctrl+z可以将其打入后台并使用jobs查看,
[kiosk@foundation30 ~]$ gedit
^Z
[1]+ Stopped gedit
[kiosk@foundation30 ~]$ jobs
[1]+ Stopped gedit
fg jobsnum ##把后台的进程调回前台(占用终端)
bg jobsnum ##把后台暂停的程序运行(在后台运行)
comm & ##让命令直接在后台运行
服务
linux中服务是一类常住内存中的进程
启动后在后台会一直运行
服务的控制命令
systemctl list-units ##列出已经开启的服务当前状态
systemctl list-unit-files ##列出所有服务开机启动的状态
systemctl set-default multi-user.target #设定系统的启动级别为多用户模式(无图形界面)
systemctl set-default graphical.target #设定系统启动级别为图形>用户模式
对一个服务的操作
systemctl start sshd ##开启
systemctl stop sshd ##关闭
systemctl restart sshd ##重启
systemctl reload sshd ##重载
systemctl enable sshd ##设置开机启动
systemctl disable sshd ##关闭开机启动
查看一个服务目前状态可以使用
service sshd status
[kiosk@foundation30 ~]$ service sshd status
Redirecting to /bin/systemctl status sshd.service
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-01-09 04:17:51 CST; 43min ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 1160 ExecStart=/usr/sbin/sshd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 1176 (sshd)
CGroup: /system.slice/sshd.service
└─1176 /usr/sbin/sshd
sshd
sshd服务是通过网络访问连接不同主机或用户。
ssh 远程主机用户@远程主机ip #连接远程主机,但不能开启、操作图形界面
ssh 远程主机用户@远程主机ip -X #调用远程主机图形工具
ssh 远程主机用户@远程主机ip -X command #也可以直接加上命令使用
操作案例
打开desktop和server两台虚拟机,并生成密钥和锁,将锁分配给desktop的root,钥匙给server的student用户,建立连接。
1.首先对两台虚拟机进行重置
[kiosk@foundation30 ~]$ rht-vmctl reset desktop
Are you sure you want to reset desktop? (y/n) y
Resetting desktop.
Powering off desktop..
Creating virtual machine disk overlay for rh254-desktop-vda
Creating virtual machine disk overlay for rh254-desktop-vdb
Starting desktop.
[kiosk@foundation30 ~]$ rht-vmctl reset server
Are you sure you want to reset server? (y/n) y
Resetting server.
Powering off server.
Creating virtual machine disk overlay for rh254-server-vda
Creating virtual machine disk overlay for rh254-server-vdb
Starting server.
2.对两个虚拟机的ip地址进行设置,并验证是否可以链接
nm-connection-editor
删除System eth0并新建网卡
将desktop的ip地址改为172.25.254.80
将server的ip地址改为172.25.254.130
systemctl restart network ##重启网络设置
ping 172.25.254.80 ##验证能否链接
3.修改主机名
因为两个虚拟机的主机名字都是localhost,更改后方便在后边进行观察,
hostnamectl set-hostname vm80 ##desktop
hostnamectl set-hostname vm130 ##server
4.设置密钥和锁
首先进入/root/.ssh中并清空内容,因为重新生成的密钥和锁要存在这个目录内(在student用户下.ssh在/home/student/目录下)
cd /root/.ssh
rm -rf *
ls ##查看是否清空
ssh-keygen ##设置密钥和锁,为了方便记忆输密码时一律使用回车键
ls ##再次查看,id_rsa表示密钥,id_rsa.pub表示锁
5.分配
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] ##将id_rsa.pub给88的root用户
scp /root/.ssh/id_rsa [email protected]
##将id_rsa给130的student用户,需要输入student的密码,可以预先过去设置一下
6.验证
在server中操作,
su - student
ssh @172.25.254.80