转行运维工程师之后,我先把这几个 Linux 命令记在了本子上,实干 9 场景
@[toc]这是一篇初级运维工程师的实战宝典,没有复杂清单,只有实战中各种场景以及对应的解决方案以下命令都是基于 CentOS 操作系统,不同系统命令行略有差异,建议对比学习。
查看系统版本,使用如下命令
得到结果如下所示,CentOS 7.5 发行版
补充一下上述 cat 命令
cat
命令:一般用于查看文件内容,格式如下所示
这里面很多都不要刻意记忆,一般用作 cat 文件名即可
9+场景
1. 系统防火墙状态
部署 Web 站点的时候,经常需要对系统防火墙状态进行查阅,并且查看服务器开放的端口号,相关命令如下所示
查看系统防火墙命令行如下所示
得到的结果注意其中绿色和红色区域
关闭防火墙命令行如下所示
关闭之后可以再次使用上述查看状态命令,得到此时防火墙的状态如下
重新启动防火墙命令行如下所示
这里你可以扩展学习的知识点是 systemctl
命令,具体学习方向如下所示
管理系统启动和管理系统服务的相关命令都由 systemctl
实施。
systemctl start [unit type]
:启动;systemctl stop [unit type]
:停止;systemctl restart [unit type]
:重启;systemctl status[unit type]
:查看状态;systemctl reload [unit type]
:重新加载;
2. 系统端口
作为一个后端运维,会碰到大量场景需要查看系统中开放的服务与端口,命令行如下所示
这里重点学习的命令是 netstat
,如果没有该命令,请使用 yum install -y net-tools
进行安装。
netstat
命令常用参数说明如下:
-a
:所有;-t
:显示 TCP 端口;-u
:显示 UDP 端口;-p
:显示进程标识符和程序名称;-l
:仅显示监听套接字程序;-n
:不进行 DNS 轮询,显示 IP。
此时在看 netstat -ntlp
是不是就容易理解了,你可以自行组合出多种命令进行使用。这里再配合一下筛选命令,可以提高使用效率。
grep 命令如下
grep 用于在文本中执行关键词搜索,例如上述命令的查询结果为:
同样的,你可以修改为 grep 27
,得到如下结果
关键参数:
-b
:将可执行文件(二进制)当作文本文件来搜索 ;-c
:仅显示找到的行数 ;-i
:忽略大小写 ;-n
:显示行号;-v
:反向选择,列出没有 关键词 的行 。
例如查看 python 相关端口数据
查看某个端口的具体情况
这里面涉及一个命令叫做 lsof
(list open files),它是用来列出当前系统打开文件的工具
其中参数涉及如下内容:
-a
:列出打开文件存在的进程;-i<条件>
:列出符合条件的进程,可以是协议、: 端口、@IP;
此时可以针对下述命令,进行再次学习。监听 22 端口
监听 1~1024 端口
3. 进程相关
在 centos 中,需要查看系统中运行的进程状态,相关命令如下所示
查看进程的详细信息 ps 命令是 Linux 系统中最为常见用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照,例如下述命令
查看所有进程,使用如下命令
其中的命令参数如下所示:
a
:显示当前终端下的所有进程信息,包括其他用户的进程;u
:以用户为主的进程状态x
:通常与 参数 a 一起使用,显示当前用户在所有终端下的进程信息
与 ps aux
类似的还有一个命令是 ps -ef
,该命令展示形式与前一命令不同,System V 展示风格
除 ps
命令外, top
进程也会被使用,该命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪 CPU、内存等系统资源占用情况,默认情况下每 3 秒刷新一次,类似于 Windows 系统中的任务管理器。
中止进程查看进程,杀进程,都属于常见操作,而杀进程用到的就是 kill
命令:
-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
。
此时命令格式如下所示
其中 xyz
对应的就是三个权限,分别代表 User、Group、及 Other 的权限。还有一种写法,如下所示:
chomd
需要多加练习使用(但是不怎么常用)
CentOS 系统中查看命令的帮助手册,可以在后面增加 --help
,例如
5. 建立软链接
CentOS 中可以配置软链接(类似 Windows 操作系统中的快捷方式)。
创建软链接
删除软链接
最后不要增加 /
否则就是删除文件(提桶跑路)
6. 搜索相关
which 命令which
用于搜索命令所在路径及别名
whereis 命令语法格式如下所示
找出特定程序的可执行文件、源代码文件的路径
find 命令语法格式如下所示
locate 命令locate
命令是 find -name
的另一种写法,但比后者检索快,原因在于它不搜索具体目录,而是搜索一个数据库 /var/lib/locatedb
,这个数据库中含有本地所有文件信息。
使用前需要先安装 locate,安装命令如下:
首次执行会出现如下错误,需要在配置一下
执行一下 updatedb
命令,再次定位即可。
7. 内存和硬盘
在运维时间中,经常需要查看内存与硬盘占用情况,使用如下命令 top 命令上文已经提及,可以使用 q
退出。
查看内存使用情况
其中输出的各个列含义为
used(已用内存);
free(空闲内存);
buff/cache(缓冲区缓存/页面缓存);
硬盘占用率
8. 不挂断地运行命令
使用 nohup
(no hang up)可以将程序不挂断的运行,注意并没有后台运行的功能,命令语法如下所示
最后的 &
是指在后台运行,但当用户退出(挂起)时,命令自动退出。
案例如下:
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 命令压缩打包
开关机命令
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/beb60c0374ffaee60485e2116】。文章转载请联系作者。
评论