程序被触发后 , 执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中 , 操作系统并给予这个内存内的单元一个识别码 (PID), 可以说 , 进程就是一个正在运行中的程序
在Linux中,进行CPU分配是以线程为单位的, 一个进程可能由多个线程组成, 进程是操作系统分配资源的单位
R (Running): 该程序正在运行中 ;
S (Sleep): 该程序目前正在睡眠状态 (idle), 但可以被唤醒(signal)
D : 不可被唤醒的睡眠状态 , 通常进程可能在等待 I/O 的情况;
T (stop) : 停止状态,可能是在工作控制 ( 背景暂停 ) 或除错(traced) 状态 ;
Z (Zombie): 僵尸状态 , 程序已经终止但却无法被移除至内存外
ps: 静态查看进程信息
-A : 所有的 process 均显示出来 , 与 -e 具有同样的效用 ;
-a : 不与 terminal 有关的所有 process ;
-u: 有效使用者 (effective user) 相关的 process ;
x: 通常与 a 这个参数一起使用 , 可列出较完整信息
l : 较长、较详细的将该 PID 的的信息列出 ;
-f: 做一个更为完整的输出。
结合几个参数一起使用:
1)ps aux
2)ps aux | grep vim
3)ps ax -o pid,%cpu,comm --sort -%cpu
top
top: 动态监控进程 , 查看进程信息。
s: 修改进程刷新间隔时间
m: 根据内存占有率进行排序
c: 根据 cpu 占有率进行排序
u: 后面输入用户名 , 用来查看该用户发起的所有进程
k: 后面跟要作用的进程 pid, 和发起的信号 (eg:9,15,20) 用来
给某个进程发起一信号
q: 退出进程查看界面
h: 显示 top 命令的帮助
以内存占有率排序
3s刷新时间改为1s
cpu
选择用户
命令 & job 在后台运行 ;
ctrl+Z 已经打开的进程打入后台 , 并且不运行 ;
fg 将后台的 job 调回前台 ;
bg 后台不运行的进程运行起来 ;
jobs 查看当前 bash 的 job;
jobs -l 查看当前 bash 的 job, 并显示该 job 的状态与 PID
进程信号
1 在程序不重启的情况下重新加载配置
2 清除指定程序在内存中的数据
3 清除鼠标在内存中的数据
9 强行结束某个进程,不会被阻塞
15 正常关闭某个进程,可能会被阻塞
18 继续运行暂停的进程
19 暂停指定进程,不会被阻塞
20 暂停指定进程,会被阻塞
发起信号
1)kill 信号 进程pid
或者是打开top,按K
先输pid
再输信号
3)pkill 信号 条件
SSH 为 Secure Shell 的缩写 , 是应用层的安全协议。 SSH是目前较可靠 , 专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题
只要你知道自己帐号和口令 , 就可以登录到远程主机。但会出"中间人"攻击
[student@host ~]$ ssh remoteuser@remotehost
你必须为自己创建一对密匙 , 把公匙放在需要访问的服务器上。如果你要连接到 SSH 服务器上 , 客户端软件就会向服务器发出请求 , 请求用你的密匙进行安全验证。服务器收到请求之后 , 先在该服务器上你的主目录下寻找你的公匙 , 然后把它和你发送过来的公匙进行比较。如果两个密匙一致 , 服务器就用公用密匙加密“质询” (challenge) 并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器
1)创建密匙(此操作可以直接回车, 免密)
[root@server0 ~]# ssh-keygen
2)查看
其中 id_rsa为私钥 (钥匙);id_rsa.pub为公钥(锁)
3)拷贝至目标用户
ssh-copy-id user@ipaddress
4)直接登陆目标用户(免密)
ssh remoteuser@remotehost
exit(logout)退出
ssh 服务的配置文件为 /etc/ssh/sshd_config
配置文件的几个参数 ;
1)PasswordAuthentication yes|no
是否开启用户密码认证 ,yes 为支持 no 为关闭
2)PermitRootLogin yes|no
是否允许超级用户登陆
3)AllowUsers student westos 用户白名单
DenyUsers westos 用户黑名单
1)systemctl status sshd 查看 ssh 服务的状态
2)systemctl stop sshd 关闭 ssh 服务
3)systemctl start sshd 开启 ssh 服务
4)systemctl restart sshd 重新启动 ssh 服务
5)systemctl enable sshd 设定 sshd 服务开机启动
6)systemctl disable sshd 设定 sshd 服务开机关闭
systemctl list-units 列出当前系统服务的状态
systemctl list-unit-files 列出服务的开机状态
systemctl mask sshd 锁定 ssh 服务 , 不能启动服务 , 除非解锁
systemctl unmask sshd 解锁 ssh 服务
systemctl set-default multi-user.target 开机不开启图形
systemctl set-default graphical.target 开机启动图形
1.上传
scp 本地文件 远程主机用户 @ 远程主机 IP: 远程主机目录
2.下载
scp 远程主机用户 @ 远程主机 IP: 远程主机目录 本地目录
rsync 用法和 scp 类似
-r 复制目录
-l 不忽略链接
-p 不忽略权限
-t 不忽略时间戳
-g 不忽略用户
-o 不忽略组
-D 不忽略快设备
参数 :
-c : 建立一个压缩文件的参数指令 (create 的意思 );
-x : 解开一个压缩文件的参数指令。
-t : 查看 tarfile 里面的文件。
-z : 是否同时具有 gzip 的属性 ? 亦即是否需要用 gzip 压缩 ?
-j : 是否同时具有 bzip2 的属性 ? 亦即是否需要用 bzip2 压缩 ?
-v : 压缩的过程中显示文件。
-f : 指定打包文件名名。
-p : 使用原文件的原来属性。
-P : 可以使用绝对路径来压缩
zcf : 按照 gzip 方式进行打包压缩
jcf: 按照 bzip2 方式进行打包压缩
zxf: 将一个 xxx.tar.gz 的压缩包按照 gzip 解压
jxf : 讲一个 xxx.tar.bz 的压缩包按照 bzip2 进行解压
压缩是一种通过特定的算法来减小计算机文件大小的机制。这种机制是一种很方便的发明 , 尤其是对网络用户 , 因为它可以减小文件的字节总数 , 使文件能够通过较慢的互联网连接实现更快传输 , 此外还可以减少文件的磁盘占用空间
压缩 解压
gzip gunzip
bzip bunzip
xz unxz
zip unzip
常用是打包同时压缩
由此可见bzip的压缩量更大,当然,伴随着压缩时间更长
同时可以解压至指定目录
IPADDRESS
DNS
DNS(Domain Name System, 域名系统 ), 因特网上作为域名和 IP 地址相互映射的一个分布式数据库 , 能够使用户更方便的访问互联网 , 而不用去记住能够被机器直接读取的 IP
1)ifconfig
2)ip addr show eth0 (指定)
3)ip route(route -n)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 接口使用设备BOOTPROTO=dhcp 网卡工作模式
ONBOOT=yes 网络服务开启时自动激活
NAME=eth0 网络接口名称
NETNASK=255.255.255.0 子网掩码 , 通过也可 PREFIX=24
IPADDR=172.25.254.77
BOOTPROTO=static | none
若是需要在linux的虚拟机上联网,首先需要查看三点是否配置齐全
1)ip ip addr查看
2)网关 route -n
3)DNS cat /etc/resolv.conf
然后在物理机上
1)首先ping成功
2)查看ip 指向
要是指向不等于1,就修改: sysctl -w net.ipv4.ip_forward=1
3)iptables -t nat -I POSTROUTING -s 172.25.254.61/24即可