Linux常用命令笔记,中高级运维高频指令,并附上vim常见操作

Linux常用命令笔记,中高级运维高频指令,并附上vim常见操作

命令清单:grep / awk / sed / ps / top / netstat / ss / find / chmod / systemctl / journalctl

1. grep 【文本过滤:查找包含指定关键词的行】

作用:检索文本,匹配包含目标字符串的行,最常用的文本筛选工具

复制代码
# 基础用法
grep "关键词" test.txt

# 常用参数
-i    # 忽略大小写
-n    # 显示行号
-v    # 取反,输出**不**匹配的行
-r    # 递归遍历目录下所有文件搜索
-E    # 使用扩展正则(等价egrep)

示例:

bash 复制代码
# 查看sshd配置文件里带PasswordAuthentication的行
grep "PasswordAuthentication" /etc/ssh/sshd_config
# 过滤进程,查找ssh进程
ps -ef | grep sshd

[root@zhangjun sysconfig]# grep zhang /etc/hostname 
zhangjun

2. awk 【文本按列处理,报表/切片,擅长按字段提取】

作用:按分隔符切割文本,提取第N列,做简单计算、格式化输出,适合处理结构化日志

shell 复制代码
# 基础格式:awk '条件{动作}' 文件
# $0=整行;$1第1列,$2第2列;默认分隔符:空格/多个空格
awk '{print $1,$2}' test.txt

常用示例:

bash 复制代码
# 查看ss进程,提取第1、5列
ss -nt | awk '{print $1,$5}'

[root@zhangjun sysconfig]# ss -nt
State     Recv-Q     Send-Q         Local Address:Port         Peer Address:Port     Process     
ESTAB     0          36               172.16.1.11:22             172.16.1.1:63551                
[root@zhangjun sysconfig]# ss -nt | awk {'print $1'}
State
ESTAB
[root@zhangjun sysconfig]# ss -nt | awk {'print $4'}
Local
172.16.1.11:22

# ------------

# -F 指定分隔符(冒号)
awk -F: '{print $1}' /etc/passwd

一句话记忆:grep按行找,awk按列切

3. sed 【流编辑器:文本替换、删除、新增行,不修改原文件(默认)】

作用:对文本行做替换、删除、插入,常用于批量修改配置

复制代码
# s/旧内容/新内容/g   g=全局替换(一行内全部替换)
sed 's/abc/123/g' test.txt

常用参数

  • -i:直接修改原文件(高危,测试时先不加-i) 示例:

    替换文件内 no 为 yes

    sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config

    删除包含#的注释行

    sed '/^#/d' file.txt

4. ps 【查看当前瞬间进程快照】

静态快照,抓取执行命令那一刻的进程,不会实时刷新

复制代码
ps -ef        # 全格式,所有进程(最常用)
ps aux        # 另一种风格,显示CPU、内存占用百分比

字段含义(ps -ef)

  • UID:用户ID

  • PID:进程ID

  • PPID:父进程ID

  • CMD:进程启动命令 示例:

    ps -ef | grep sshd # 查找sshd进程是否运行

5. top 【动态实时进程监控】

作用:实时刷新,看CPU、内存、负载,进程资源占用,相当于Linux任务管理器

  • 默认3秒刷新一次 按键:

  • P:按CPU排序

  • M:按内存排序

复制代码
  q

:退出top

区别:ps是静态快照;top动态实时

6. netstat 【查看网络连接、端口、监听】

注意:OpenEuler默认不一定预装netstat,属于老旧工具,官方推荐ss替代

复制代码
netstat -tulnp
# 参数
-t TCP端口
-u UDP端口
-l 只看监听端口
-n 数字显示,不解析域名
-p 显示进程名/PID

7. ss 【socket statistics,新一代网络端口查看工具,替代netstat】

作用:查看套接字、端口连接,速度更快,信息更多,OpenEuler自带,优先用ss

bash 复制代码
ss -tulnp    # 查看本机正在监听的TCP/UDP端口(最常用)
ss -nt       # 查看已建立的TCP连接

[root@zhangjun sysconfig]# ss -tulnp
Netid     State      Recv-Q     Send-Q         Local Address:Port          Peer Address:Port     Process                                                                                          
udp       UNCONN     0          0                    0.0.0.0:58202              0.0.0.0:*         users:(("rpcbind",pid=861,fd=7))                                                                
udp       UNCONN     0          0                    0.0.0.0:111                0.0.0.0:*         users:(("rpcbind",pid=861,fd=6))                                                                
udp       UNCONN     0          0                  127.0.0.1:323                0.0.0.0:*         users:(("chronyd",pid=911,fd=5))                                                                
udp       UNCONN     0          0                       [::]:64352                 [::]:*         users:(("rpcbind",pid=861,fd=10))                                                               
udp       UNCONN     0          0                       [::]:111                   [::]:*         users:(("rpcbind",pid=861,fd=9))                                                                
udp       UNCONN     0          0                      [::1]:323                   [::]:*         users:(("chronyd",pid=911,fd=6))                                                                
tcp       LISTEN     0          128                  0.0.0.0:22                 0.0.0.0:*         users:(("sshd",pid=946,fd=3))                                                                   
tcp       LISTEN     0          4096                 0.0.0.0:111                0.0.0.0:*         users:(("rpcbind",pid=861,fd=8))                                                                
tcp       LISTEN     0          128                     [::]:22                    [::]:*         users:(("sshd",pid=946,fd=4))                                                                   
tcp       LISTEN     0          4096                    [::]:111                   [::]:*         users:(("rpcbind",pid=861,fd=11))                                                               
[root@zhangjun sysconfig]# ss -tunp
Netid    State    Recv-Q    Send-Q       Local Address:Port       Peer Address:Port    Process   
tcp      ESTAB    0         36             172.16.1.11:22           172.16.1.1:63551    users:(("sshd",pid=1604,fd=4),("sshd",pid=1600,fd=4))
[root@zhangjun sysconfig]# ss -tun
Netid    State    Recv-Q    Send-Q       Local Address:Port       Peer Address:Port    Process   
tcp      ESTAB    0         36             172.16.1.11:22           172.16.1.1:63551             
[root@zhangjun sysconfig]# ss -tup
Netid    State    Recv-Q    Send-Q       Local Address:Port       Peer Address:Port    Process   
tcp      ESTAB    0         36             172.16.1.11:ssh          172.16.1.1:63551    users:(("sshd",pid=1604,fd=4),("sshd",pid=1600,fd=4))
[root@zhangjun sysconfig]# ss -nt
State     Recv-Q     Send-Q         Local Address:Port         Peer Address:Port     Process     
ESTAB     0          36               172.16.1.11:22             172.16.1.1:63551                
[root@zhangjun sysconfig]# 

你之前Xshell连ssh,就可以用 ss -tulnp | grep sshd 检查22端口有没有监听

8. find 【磁盘文件搜索,按名称、大小、时间查找文件】

作用 :遍历硬盘目录查找文件,和grep不一样:grep搜文件内容 ;find搜文件名

复制代码
# 在根目录查找名字叫sshd_config的文件
find / -name "sshd_config"

参数
-name 按文件名搜索
-type f 只搜普通文件
-type d 只搜文件夹

示例:

复制代码
find /etc -name "*.conf"  # etc目录下查找所有.conf结尾配置文件

9. chmod 【修改文件/目录权限】

作用:修改rwx读写执行权限

复制代码
# 数字权限写法(最常用)
chmod 755 test.sh
chmod 644 test.txt

# 符号写法
chmod +x test.sh    # 给文件增加执行权限

权限数字含义: r=4,w=2,x=1

  • 7 = rwx 读写执行
  • 6 = rw- 读写
  • 5 = r-x 读+执行
  • 4 = r-- 只读

10. systemctl 【系统服务管理器,管理systemd服务(OpenEuler/CentOS7+)】

OpenEuler用systemd,管理sshd、firewalld这类后台服务

复制代码
# 常用
systemctl start sshd        # 启动服务
systemctl stop sshd         # 停止
systemctl restart sshd      # 重启
systemctl enable sshd       # 设置开机自启
systemctl disable sshd      # 取消开机自启
systemctl status sshd       # 查看服务状态(最常用!看是否running)

11. journalctl 【查看systemd服务日志】

作用:查看系统、服务运行日志,排查服务启动失败、ssh连接报错

复制代码
journalctl -u sshd          # 只看sshd服务日志
journalctl -u sshd -f       # -f实时跟踪日志(类似tail -f)
journalctl -u firewalld     # 查看防火墙日志

📌 快速区分记忆表(适合笔记)

命令 核心用途 一句话总结
grep 文本内容过滤 按内容找行
awk 文本按列提取 按列切割,提取字段
sed 文本流编辑 批量替换、修改文本
ps 进程查看(静态快照) 瞬间进程列表
top 进程监控(动态) 实时资源监视器
netstat 端口/网络连接 老旧网络工具,不推荐优先用
ss socket网络查看 netstat升级版,查端口连接首选
find 查找文件 按名字找磁盘上的文件
chmod 修改权限 修改文件rwx权限
systemctl 管理系统服务 启停、开机自启服务
journalctl 查看服务日志 查看systemd服务运行日志

📝 运维实战组合(你现在OpenEuler+Xshell场景)

复制代码
# 1. 检查sshd服务状态
systemctl status sshd
# 2. 查看ssh监听端口
ss -tulnp | grep sshd
# 3. 查看ssh日志,排查连接报错
journalctl -u sshd -f
# 4. 修改ssh配置后,过滤配置项
grep PasswordAuthentication /etc/ssh/sshd_config

Vim 常用操作指令笔记(适配OpenEuler,可直接复制进Typora)

Vim 三大模式:普通模式(默认)、编辑模式、命令行模式 打开文件:vim 文件名;退出:普通模式下按 : 进入命令模式

🔹 模式切换(必背)

  1. 普通模式

    :刚进入vim就是这个模式,用来移动光标、复制、删除。

    • 按 i → 插入模式(在光标前输入文字)
    • 按 a → 追加模式(光标后面输入文字)
    • 按 o → 在下一行新开一行进入插入
    • 按 O → 在上一行新开一行进入插入
  2. 插入模式 :打字编辑。按 Esc 返回普通模式

  3. 命令行模式 :普通模式输入 : 进入,执行保存、退出、查找替换


🔹 普通模式(光标移动)

指令 作用
h 光标左
j 光标下
k 光标上
l 光标右
0 跳到本行开头
$ 跳到本行末尾
gg 跳到文档第一行
G 跳到文档最后一行
nG 跳到第n行,例 10G 到第10行
w 跳到下一个单词开头
b 跳到上一个单词开头

🔹 普通模式:删除、剪切

vim中删除 = 剪切(可以p粘贴)

指令 作用
x 删除光标单个字符
dd 删除(剪切)整行
ndd 删除n行,3dd 删除光标往下3行
dw 删除光标往后一个单词
d$ 删除光标到行尾
d0 删除光标到行首

🔹 普通模式:复制粘贴

指令 作用
yy 复制一整行
nyy 复制n行,2yy复制当前+下一行
p 粘贴,粘贴到光标下一行
P 粘贴到光标上一行

🔹 普通模式:撤销、重做

指令 作用
u 撤销(undo)
Ctrl + r 反撤销/重做

🔹 命令行模式(: 开头,普通模式按冒号)

命令 作用
:w 保存文件(write)
:q 退出(quit),文件没修改才能退出
:wq 保存并退出
:q! 强制退出,不保存修改(非常常用!改错不想保存用)
:w! 强制保存(只读文件)
:wq! 强制保存退出
:set nu 显示行号(面试高频)
:set nonu 关闭行号
:set ic 查找忽略大小写;:set noic关闭忽略大小写
:n 跳转到第n行,:15 跳到15行

🔹 查找(普通模式直接敲,不用冒号)

复制代码
  /关键词

:向下搜索关键词,

复制代码
  /ssh

搜索ssh

  • n 跳到下一个匹配
  • N 跳到上一个匹配
  • ?关键词:向上搜索关键词

🔹 批量替换(命令模式,sed同类功能)

格式::%s/旧内容/新内容/g

  • % 代表全文

  • s substitute替换

  • g global 一行内全部替换

    全文把 no 替换成 yes

    :%s/no/yes/g

    只在10~20行替换

    :10,20s/no/yes/g

示例:修改sshd_config,把PasswordAuthentication no改成yes :%s/PasswordAuthentication no/PasswordAuthentication yes/g

🔹 可视模式(选中一块文本复制删除)

普通模式:

  • v 字符可视:按字符选
  • V 行可视:直接选中整行
  • Ctrl+v 块可视:矩形选块 选中后,d 删除,y 复制

📌 高频实战场景(你修改openEuler配置经常用到)

复制代码
vim /etc/ssh/sshd_config
1. 打开文件,普通模式 :set nu 打开行号
2. /PasswordAuthentication 快速定位这一行
3. i 进入编辑,修改内容
4. Esc 退回普通模式
5. :wq 保存退出;如果改错 :q! 放弃修改退出

📝 极简背诵版(面试)

  1. i插入,Esc回普通,:进命令
  2. dd删行,yy复制,p粘贴,u撤销
  3. gg首行,G末行,0行首,$行尾
  4. :wq保存退出;:q!强制退出不保存
  5. /xxx搜索;:%s/a/b/g全文替换
  6. :set nu显示行号

小提示:新手最容易踩坑:在插入模式直接敲 :wq 没用,必须先按Esc回到普通模式才能输入冒号命令。

相关推荐
逐流人1 小时前
Ceph对象存储与文件系统存储管理:从RADOS网关、S3与Swift到CephFS快照同步
linux·运维·ceph·云原生·云计算·swift·rados
分布式存储与RustFS1 小时前
日志目录的预算是 2 GiB:轮转、保留和压缩这三件事
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
wdfk_prog2 小时前
Wi-Fi Direct 教程 05:control socket 与 eloop——P2P_FIND 怎样进入 wpa_supplicant 命令解析器
运维·服务器·后端·网络协议·ubuntu·p2p·wifi-direct
Golden_Chen2 小时前
在 Ubuntu 上搭建 FTP 服务器
linux·运维·服务器
ZMacros2 小时前
Live-build方法构建debian和ubuntu
linux·ubuntu·debian
byte轻骑兵2 小时前
【BlueZ 】netlink 在 BlueZ 中的应用:用户态与内核态的配置消息传递
linux·bluez·电脑蓝牙·嵌入式蓝牙
xbzb2 小时前
Nginx 反向代理总 404?Location 匹配与 proxy_pass 尾斜杠避坑手册
linux·运维·nginx·虚拟主机
Elastic 中国社区官方博客2 小时前
14 个 alerts,1 个 incident:使用 Elasticsearch 中的 ES|QL 衡量 alerting rule 噪声
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索
Lsetea2 小时前
OpenSSL报permitted subtree violation:证书SAN与CA名称约束排查
运维·https·ssl证书·openssl·证书链