写点什么

转行运维工程师之后,我先把这几个 Linux 命令记在了本子上,实干 9 场景

作者:梦想橡皮擦
  • 2022 年 5 月 10 日
  • 本文字数:2900 字

    阅读完需:约 10 分钟

@[toc]这是一篇初级运维工程师的实战宝典,没有复杂清单,只有实战中各种场景以及对应的解决方案以下命令都是基于 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 80
复制代码


grep 命令如下


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-1024 
复制代码

3. 进程相关

在 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=4w=2x=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 --helpps --help
复制代码

5. 建立软链接

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 -h
复制代码


8. 不挂断地运行命令

使用 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 # 关闭系统
复制代码


发布于: 刚刚阅读数: 4
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
转行运维工程师之后,我先把这几个Linux 命令记在了本子上,实干9场景_5月月更_梦想橡皮擦_InfoQ写作社区