程序:程序员编写功能代码是静态的,是在永久存储设备上存放的
进程:程序运行时,在内存中的状态是动态的
linux 运维常用命令
静态查看进程ps
ps -ef #显示正在运行的命令程序
UID:userid
PID:进程ID号
PPID:父进程
C:cpu使用百分比
STIME:程序的启动时间
TTY:登录的终端
TIME:程序使用掉 CPU 的时间
CMD:运行的命令
ps -aux #显示终端上地所有进程,包括其他用户地进程,显示没有控制终端地进程
%CPU:占用CPU百分比
%MEM:占用内存的百分比
VSZ:虚拟内存集
RSS:常驻内存集
TTY:登录的终端
STAT:进程状态
START:启动时间
TIME :程序使用掉 CPU 的时间
COMMAND:运行的命令
虚拟内存集>常驻内存集
动态查看进程top
top #动态查看进程,按M根据内存排序,按P根据CPU排序
load average #平均负载,第一分钟,第五分钟,第十五分钟的平均负载
hi hard interuppt #硬中断
si soft interuppt 软中断
top -d 1 #每秒刷新一次
进程间的通信:共享内存,消息队列,信号
信号方式通信:管理进程(杀进程)
杀进程kill -9
ps aux | grep a.txt
kill -9 7731 #找到进程号7731,关闭该进程
杀进程 命令:
pkill 进程号 :停止一个进程
pkill -kill -t /dev/pts/o 将用户从终端中提出,其实是将用户的/bin/bash 的进程杀死
xkill 图形化杀进程
nice值:进程运行的优先级
端口查看
lsof #系统打开的文件
lsof -i :22 #查看打开22端口所有进程
lsof -i :80 #查看打开80端口所有进程,如果没有则没有返回
netstat -nutlp #查看当前开启的所以端口
netstat -anlp
-a (all)显示所有选项,默认不显示LISTEN相关
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
netstat -anlp| grep 22 #查看22端口占用情况
远程访问端口telnet
telnet 127.0.0.1 22 #查看本机22端口是否开启
telnet 192.18.1.10 80 #远程查看192.18.1.10的80端口是否开启
查看系统发行版本,以及版本号,架构
查看发行版本
cat /etc/os-release #比较全面
查看服务器架构
echo $HOSTTYPE
查看CPU核数
pkill -kill -t pts/2
强制使某个用户下线
pkill -kill -t pts/2
mount挂载硬盘
mkdir /mnt/cdrom #创建挂载目录
mount -t auto /dev/cdrom /mnt/cdrom #挂载
cd /mnt/cdrom #看是否挂载成功
fuser -k 目录 #解除挂载时,设备忙,使用这个命令解除挂载
查看服务器日志
cat /var/log/messages | grep error #查看报错
日志级别:1:emage 2:crit 3:alert 4:waring 5:notice 6:info 7:debug
更改Linux系统时间
timedatectl #查看当前时区时间
timedatectl set-timezone Asia/Shanghai #指定时区为亚洲/上海
端口扫描
扫描指定主机所有udp、tcp协议端口
nmap -sUT 192.168.0.106
vim ecspubIP.txt #创建文件,第一列是主机名,第二列是公网IP
vim scan.sh
#!/bin/bash
echo "###############################################################"
echo "hostname": $1
nmap -sUT $2
echo "###############################################################"
awk '{print "sh scan.sh "$1,$2}' ecspubIP.txt | bash >allport.txt
#批量执行端口扫描
cat allport.txt |grep -v done | grep -v show | grep -v up | grep -v Starting >>allport1.txt
#对扫描的文本进行处理,只要主机名,IP地址和端口
查看服务器公网出口地址
curl inet-ip.info
tldr 类似man手册
tldr命令相比于linux中提供的man命令更加简单好用,能够将使用命令行的门槛大大降低,如下图所示。
tldr安装
curl -o /usr/bin/tldr https://raw.githubusercontent.com/raylee/tldr/master/tldr && chmod +x /usr/bin/tldr
或者
yum install -y tldr
执行tldr 报错解决:
tldr 命令查询的 github raw 网址已经被 GFW 墙掉了。请使用全局代理或 proxychains 前缀,或添加 https_proxy 环境变量。
Error fetching from tldr: <urlopen error [Errno 111] Connection refused>
解析 raw.githubusercontent.com 对应地址,添加到/etc/hosts
vim /etc/hosts
185.199.110.133 raw.githubusercontent.com
使用tldr 加对应命令
tldr tar
处理 您在 /var/spool/mail/root 中有新邮件
Linux 每次执行命令后会提示您在 /var/spool/mail/root 中有新邮件,很烦
修改配置文件解决
echo "unset MAILCHECK">> /etc/profile
source /etc/profile