这是一篇初级运维工程师的实战宝典,没有复杂清单,只有实战中各种场景以及对应的解决方案以下命令都是基于 CentOS操作系统,不同系统命令行略有差异,建议对比学习。
查看系统版本,使用如下命令
cat /etc/redhat-release得到结果如下所示,CentOS 7.5 发行版
CentOS Linux release 7.5.1804 (Core)补充一下上述 cat 命令
cat 命令:一般用于查看文件内容,格式如下所示
cat [-AbeEnstTuv] [--help] [--version] fileName这里面很多都不要刻意记忆,一般用作 cat 文件名即可
9+场景
1. 系统防火墙状态
部署Web站点的时候,经常需要对系统防火墙状态进行查阅,并且查看服务器开放的端口号,相关命令如下所示
查看系统防火墙命令行如下所示
systemctl status firewalld得到的结果注意其中绿色和红色区域
关闭防火墙命令行如下所示
systemctl stop firewalld关闭之后可以再次使用上述查看状态命令,得到此时防火墙的状态如下
inactive (dead)重新启动防火墙命令行如下所示
systemctl start firewalld这里你可以扩展学习的知识点是 systemctl 命令,具体学习方向如下所示
管理系统启动和管理系统服务的相关命令都由 systemctl 实施。
- systemctl start [unit type]:启动;
- systemctl stop [unit type]:停止;
- systemctl restart [unit type]:重启;
- systemctl status[unit type]:查看状态;
- systemctl reload [unit type]:重新加载;
2. 系统端口
作为一个后端运维,会碰到大量场景需要查看系统中开放的服务与端口,命令行如下所示
netstat -ntlp这里重点学习的命令是 netstat ,如果没有该命令,请使用 yum install -y net-tools 进行安装。
netstat 命令常用参数说明如下:
- -a:所有;
- -t:显示 TCP 端口;
- -u:显示 UDP 端口;
- -p:显示进程标识符和程序名称;
- -l:仅显示监听套接字程序;
- -n:不进行DNS轮询,显示IP。
此时在看 netstat -ntlp 是不是就容易理解了,你可以自行组合出多种命令进行使用。这里再配合一下筛选命令,可以提高使用效率。
netstat -ntulp |grep 80grep 命令如下
grep 用于在文本中执行关键词搜索,例如上述命令的查询结果为:
同样的,你可以修改为 grep 27 ,得到如下结果
关键参数:
- -b:将可执行文件(二进制)当作文本文件来搜索 ;
- -c :仅显示找到的行数 ;
- -i :忽略大小写 ;
- -n :显示行号;
- -v :反向选择,列出没有 关键词 的行 。
例如查看 python 相关端口数据
netstat -ntulp |grep python查看某个端口的具体情况
lsof -i tcp:80这里面涉及一个命令叫做 lsof (list open files),它是用来列出当前系统打开文件的工具
其中参数涉及如下内容:
- -a:列出打开文件存在的进程;
- -i<条件> :列出符合条件的进程,可以是协议、: 端口、@IP;
此时可以针对下述命令,进行再次学习。监听 22 端口
lsof -i :22监听 1~1024端口
ls -i:1-10243. 进程相关
在 centos 中,需要查看系统中运行的进程状态,相关命令如下所示
查看进程的详细信息ps命令是Linux系统中最为常见用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照,例如下述命令
ps 8000查看所有进程,使用如下命令
ps aux其中的命令参数如下所示:
- a :显示当前终端下的所有进程信息,包括其他用户的进程;
- u :以用户为主的进程状态
- x :通常与 参数 a 一起使用,显示当前用户在所有终端下的进程信息
与 ps aux 类似的还有一个命令是 ps -ef ,该命令展示形式与前一命令不同,System V展示风格
ps -ef除 ps 命令外, top 进程也会被使用,该命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪CPU、内存等系统资源占用情况,默认情况下每3秒刷新一次,类似于Windows系统中的任务管理器。
中止进程查看进程,杀进程,都属于常见操作,而杀进程用到的就是 kill 命令:
kill -9 8000-9 表示强迫进程立即停止。
4. 文件权限chmod
chmod 命令用于查看和修改文件权限。
在 CentOS 中存在如下权限内容,文件有三种身份:
- owner:文件所有者
- group:同用户组
- others:其他非本用户组修改权限时,每个文件(文件夹也是文件)的三个身份又分别有三个权限
- read:读
- wirte:写
- execute:执行
使用 ls -al 可以查看当前目录所有文件的权限,例如下图所示
文件的权限字符为 -rwxrwxrwx ,每3个是一组,对应的身份是 owner\group\others 。
权限可以用数字表示,其中 r=4 , w=2 , x=1 , -=0 ,然后在看设置权限时候的 777,是不是就容易理解了
- 设置 rwx (可读写运行) 权限设置的数字是 4 + 2 + 1 = 7;
- 设置 rw- (可读写不可运行)权限设置的数字是 4 + 2 = 6;
- 设置 r-x (可读可运行不可写) 权限设置的数字是 4 +1 = 5。
此时命令格式如下所示
chmod xyz file文件名其中 xyz 对应的就是三个权限,分别代表User、Group、及Other的权限。还有一种写法,如下所示:
chmod 777 file (相同的命令 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)chomd 需要多加练习使用(但是不怎么常用)
CentOS系统中查看命令的帮助手册,可以在后面增加 --help ,例如
chmod --help ps --help5. 建立软链接
CentOS中可以配置软链接(类似Windows操作系统中的快捷方式)。
创建软链接
ln -s [源文件或目录] [目标文件或目录]删除软链接
rm -rf /home/python最后不要增加 / 否则就是删除文件(提桶跑路)
6. 搜索相关
which 命令which 用于搜索命令所在路径及别名
whereis 命令语法格式如下所示
whereis [option] name找出特定程序的可执行文件、源代码文件的路径
find 命令语法格式如下所示
find [搜索范围] [搜索条件]locate 命令locate 命令是 find -name 的另一种写法,但比后者检索快,原因在于它不搜索具体目录,而是搜索一个数据库 /var/lib/locatedb ,这个数据库中含有本地所有文件信息。
使用前需要先安装 locate,安装命令如下:
yum -y install mlocate首次执行会出现如下错误,需要在配置一下
[root@xxxx ~]# locate install.sh locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory执行一下 updatedb 命令,再次定位即可。
7. 内存和硬盘
在运维时间中,经常需要查看内存与硬盘占用情况,使用如下命令top 命令上文已经提及,可以使用 q 退出。
查看内存使用情况
free -m其中输出的各个列含义为
- used(已用内存);
- free(空闲内存);
- buff/cache(缓冲区缓存/页面缓存);
硬盘占用率
df -h8. 不挂断地运行命令
使用 nohup (no hang up)可以将程序不挂断的运行,注意并没有后台运行的功能,命令语法如下所示
nohup command [arg...] [&]最后的 & 是指在后台运行,但当用户退出(挂起)时,命令自动退出。
案例如下:
nohup command > file.log 2>&1 &- 0 – stdin (standard input) 标准输入
- 1 – stdout (standard output) 标准输出
- 2 – stderr (standard error) 标准错误输出
2>&1 是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到 file.log 中。
9. 其它小命令
pwd 命令查询用户所在位置路径
cd 命令切换目录
mkdir 命令创建目录文件
tree 命令以树形结构展示目录结构
cp 命令复制命令
mv 命令移动命令
touch 命令创建文件或更新文件时间戳
stat 命令查看文件属性
tar 命令压缩打包
开关机命令
reboot # 重启机器 poweroff # 关闭系统记录时间
2022年度 Flag,写作的 <font color=red>589</font> / 1024 篇。 可以<font color=#04a9f4>关注</font>我,<font color=#04a9f4>点赞</font>我、<font color=#04a9f4>评论</font>我、<font color=#04a9f4>收藏</font>我啦。