Linux 高级命令与常见操作:文本处理、系统管理与网络调试
下面是一份针对已经熟悉 Linux 基础命令的用户所整理的「高级命令与常见操作」笔记,涵盖文本处理、系统管理、网络调试与其他常用的进阶技巧。请你审核下面笔记,检查是否有过时的内容,如有请进行替换,确保其符合现代化需求:
一、文本处理与过滤
1. grep 高级用法
- 概念:
grep用于在文本中搜索匹配的行,支持正则表达式、递归搜索等。 - 常用操作:
- 递归搜索:
grep -r "关键词" /path/to/dir - 忽略大小写:
grep -i "keyword" file - 显示匹配上下文:
grep -C 3 "pattern" file # 匹配行上下文 3 行 grep -A 3 "pattern" file # 匹配行后 3 行 grep -B 3 "pattern" file # 匹配行前 3 行 - 使用正则:
grep -E "reg(expression|exp)" file - 只显示文件名:
grep -l "keyword" *.txt
- 递归搜索:
2. sed(流编辑器)
- 概念:
sed是一种非交互式流编辑器,支持对文本进行插入、删除、替换以及正则处理等。 - 常用操作:
- 行内容替换:
sed 's/old/new/' file # 替换每行首次出现的 old 为 new sed 's/old/new/g' file # 替换每行所有出现的 old 为 new sed -i 's/old/new/g' file # 直接修改文件内容 - 删除匹配行:
sed '/pattern/d' file # 删除含有 pattern 的行 - 指定行号操作:
sed '1,5d' file # 删除 1 到 5 行 sed '10a new_text' file # 在第 10 行后插入文本 sed '5i new_text' file # 在第 5 行前插入文本 - 结合正则:
sed -n '/regex/p' file # 只打印符合正则的行
- 行内容替换:
3. awk
- 概念:
awk是一门脚本语言,适合对文本内容进行基于行和列的处理、统计、报表生成等。 - 常用操作:
- 按列分割:默认使用空白分割列:
$1、$2等分别代表第 1、2 列。awk '{ print $1, $3 }' file - 指定分隔符:
awk -F: '{ print $1, $3 }' /etc/passwd - 条件过滤:
awk '$3 > 1000 { print $1, $3 }' file - 内置变量:
NR:当前行号NF:当前行列数FNR:当前文件的行号(处理多个文件时使用)
awk '{ print NR, $0 }' file - 执行算术操作:
awk '{ sum += $2 } END { print sum }' file
- 按列分割:默认使用空白分割列:
4. sort / uniq / cut / paste
- sort:排序文件内容
sort file # 默认按字符顺序排序 sort -n file # 按数字大小排序 sort -r file # 逆序排序 - uniq:去除重复行
sort file | uniq # 一般和 sort 搭配 uniq -c file # 显示重复次数 uniq -d file # 只显示重复行 - cut:提取文本中的特定列
cut -d: -f1 /etc/passwd # 以 : 作为分隔符,提取第 1 列 - paste:将多行文本并列合并
paste file1 file2 # 两个文件并列合并
5. xargs
- 概念:
xargs接受标准输入并将其转换为命令行参数,常与管道一起使用。 - 常用操作:
- 将文件列表传给命令:
find . -name "*.log" | xargs rm -f - 限制单次执行命令的参数数量:
find . -name "*.log" | xargs -n 10 rm -f - 结合
-I自定义替换字符串:cat filelist.txt | xargs -I {} cp {} /backup/dir/
- 将文件列表传给命令:
二、系统管理与监控
1. 进程管理相关
1.1 ps 高级用法
- 常用操作:
- 查看所有进程:
ps -ef - 查看以树状方式显示进程关系:
ps -ef --forest - 结合管道查找指定进程:
ps -ef | grep "nginx"
- 查看所有进程:
1.2 top / htop
- top:动态显示系统进程状态与资源占用。
- 进入后可以:
- 按
P键按 CPU 占用排序 - 按
M键按内存占用排序 - 按
k键输入 PID 并杀死该进程 - 按
q退出
- 按
- 进入后可以:
- htop:功能更强大的交互式查看工具,需要自行安装,支持鼠标操作、界面更丰富。
1.3 kill, pkill, killall
- kill:根据 PID 杀死进程
kill -9 <PID> - pkill:根据进程名称匹配杀死进程
pkill -9 nginx - killall:杀死同名进程
killall -9 httpd
1.4 nohup & &
- 概念:允许进程在退出终端后继续运行。
nohup your_command & # 后台执行并不受退出终端影响
2. 服务管理
2.1 systemctl
- 概念:基于
systemd系统的服务管理工具。 - 常用操作:
- 启动 / 停止 / 重启:
systemctl start nginx systemctl stop nginx systemctl restart nginx - 开机自启动:
systemctl enable nginx systemctl disable nginx - 查看状态:
systemctl status nginx - 查看所有服务列表:
systemctl list-units --type=service
- 启动 / 停止 / 重启:
2.2 journalctl
- 概念:查看和管理 systemd 日志。
- 常用操作:
- 查看所有日志:
journalctl - 实时查看最新日志:
journalctl -f - 查看特定服务日志:
journalctl -u nginx - 按时间范围查看:
journalctl --since "2023-01-01" --until "2023-01-02"
- 查看所有日志:
3. 系统性能监控
3.1 iostat
- 概念:查看 CPU 和磁盘 I/O 性能指标。
- 常用操作:
iostat -x 2 # 每 2 秒输出一次扩展统计信息
3.2 sar
- 概念:系统活动报告工具,可记录并回放 CPU、内存、网络等多种历史性能指标。
- 常用操作:
sar -u 1 5 # 每秒采集 CPU 使用率,共 5 次 sar -n DEV 1 5 # 监控网络设备流量
3.3 vmstat
- 概念:快速查看虚拟内存、CPU、IO 等整体概况。
- 常用操作:
vmstat 2 5 # 每 2 秒采集一次,共 5 次
4. 文件系统与磁盘管理
4.1 df / du
df:查看文件系统的磁盘使用情况。df -h # 以人性化方式显示du:查看目录或文件大小。du -sh /path # 统计指定目录大小
4.2 磁盘分区:fdisk / parted
fdisk:交互式管理 MBR 分区表- 常用:
fdisk /dev/sda
- 常用:
parted:适用于 GPT 分区表,交互式或命令式操作
4.3 LVM(逻辑卷管理)
- 概念:创建灵活的逻辑卷,便于在线扩容或缩容。
- 常用操作(示例):
- 创建物理卷 (PV):
pvcreate /dev/sdb1 /dev/sdc1 - 创建卷组 (VG):
vgcreate myvg /dev/sdb1 /dev/sdc1 - 创建逻辑卷 (LV):
lvcreate -n mylv -L 10G myvg - 挂载:
mkfs.ext4 /dev/myvg/mylv mount /dev/myvg/mylv /mnt/mydata - 扩容:
lvextend -L +5G /dev/myvg/mylv resize2fs /dev/myvg/mylv
- 创建物理卷 (PV):
三、网络管理与调试
1. 网络配置与路由
1.1 ip 命令套件
- 概念:取代传统的
ifconfig、route、arp等命令,功能更强大且统一。 - 常用操作:
- 查看网卡信息:
ip addr show - 配置 IP:
ip addr add 192.168.1.10/24 dev eth0 ip link set eth0 up - 查看路由表:
ip route show - 添加默认路由:
ip route add default via 192.168.1.1
- 查看网卡信息:
1.2 ss / netstat
- 概念:查看网络连接、端口占用等信息;
ss是netstat的新一代替代者,速度更快。 - 常用操作:
ss -tlnp # 查看 TCP 监听端口及进程 ss -uanp # 查看 UDP 监听端口及进程 netstat -plnt # 类似用途,但 netstat 在有些发行版需额外安装
2. 网络测试
2.1 ping
- 用法扩展:
ping -c 4 8.8.8.8 # 发送 4 个包后停止 ping -i 0.2 8.8.8.8 # 每隔 0.2 秒发送一次
2.2 traceroute / tracepath
- 概念:跟踪到目标主机所经过的路由路径,调试网络连通性问题。
- 常用操作:
traceroute 8.8.8.8 tracepath 8.8.8.8
2.3 tcpdump
- 概念:抓包分析工具,可捕获网络接口的实时数据包。
- 常用操作:
- 捕获所有接口所有数据:
tcpdump -i any - 抓取指定端口:
tcpdump -i eth0 port 80 - 抓取指定主机:
tcpdump -i eth0 host 192.168.1.100 - 写入文件,后续分析:
tcpdump -i eth0 -w output.pcap
- 捕获所有接口所有数据:
3. 其他网络工具
3.1 nmap
- 概念:网络扫描和安全审计工具,可扫描主机开放端口、服务版本等。
- 常用操作:
- 快速扫描:
nmap -sS 192.168.1.0/24 - 探测操作系统:
nmap -O 192.168.1.100 - 服务与版本探测:
nmap -sV 192.168.1.100
- 快速扫描:
3.2 curl / wget
- 下载与请求测试:
- 下载文件:
wget https://example.com/file.zip curl -O https://example.com/file.zip - 通过 HTTP 请求测试:
curl -I https://example.com # 只获取响应头 curl -X POST -d "key=value" https://example.com
- 下载文件:
四、高级调试与排错
1. strace
- 概念:跟踪进程执行时系统调用、信号等,常用于排查故障。
- 常用操作:
strace -p <PID> # 跟踪正在运行的进程 strace ls # 跟踪命令 ls strace -o output.txt ls # 将跟踪信息输出到文件
2. ltrace
- 概念:类似
strace,但主要跟踪库函数调用。 - 常用操作:
ltrace -p <PID> # 跟踪正在运行进程的库函数调用 ltrace myapp # 跟踪可执行文件的库函数调用
五、文件打包、同步与传输
1. tar 高级用法
- 概念:打包并压缩、解压缩文件的常用工具。
- 常用操作:
- 打包并压缩(gzip):
tar -czvf archive.tar.gz /path/to/dir - 打包并压缩(bzip2):
tar -cjvf archive.tar.bz2 /path/to/dir - 解压:
tar -xzvf archive.tar.gz tar -xjvf archive.tar.bz2 - 查看文件列表:
tar -tzvf archive.tar.gz
- 打包并压缩(gzip):
2. rsync
- 概念:高效增量同步工具,支持本地或远程文件同步。
- 常用操作:
- 本地同步:
rsync -av /src/ /dest/ - 远程同步:
rsync -avz /src/ user@remote:/dest/ - 删除目标多余文件:
rsync -av --delete /src/ /dest/
- 本地同步:
3. scp / sftp
- 概念:基于 SSH 的安全拷贝/文件传输工具。
- 常用操作:
scp file user@remote:/path scp -r directory user@remote:/path # 递归目录 sftp user@remote # 进入交互式 FTP 模式
六、用户权限与安全
1. sudo 高级用法
- 概念:以其他用户(通常是 root)权限执行命令。
- 常用操作:
- 编辑 sudoers 文件(推荐使用
visudo):visudo - 仅授予特定命令权限:
- 在 sudoers 中配置:
让username ALL=(ALL) NOPASSWD:/usr/bin/systemctlusername可以免密执行systemctl。
- 在 sudoers 中配置:
- 编辑 sudoers 文件(推荐使用
2. chown / chmod 进阶
- chown:改变文件所有者和组
chown user:group file chown -R user:group dir # 递归整个目录 - chmod:改变文件权限
chmod u+x file # 给属主加执行权限 chmod g-r file # 去掉所属组读权限 chmod 755 file # rwxr-xr-x
3. SELinux 常见操作(如适用)
- 查看状态:
sestatus - 临时关闭 SELinux:
setenforce 0 - 永久关闭 /etc/selinux/config 文件中修改
SELINUX=disabled并重启。
七、其他实用技巧
1. alias 与自定义命令
- 概念:在
~/.bashrc或~/.zshrc中添加自定义别名,简化常用命令输入。 - 示例:
alias ll='ls -l --color=auto' alias gs='git status'
2. screen / tmux
- 概念:终端复用工具,保持会话不断开,支持多窗口分割。
- 常用操作(以 tmux 为例):
- 启动 tmux:
tmux - 分割窗口:
Ctrl + b,然后"或%
- 分离会话:
Ctrl + b,然后d
- 重新连接会话:
tmux attach
- 启动 tmux:
3. date / uptime / which
- date:查看和设置系统时间
date "+%Y-%m-%d %H:%M:%S" date -s "2025-04-01 12:00:00" - uptime:查看系统运行时长和平均负载
uptime - which:查看命令的绝对路径
which ls
4. 环境变量与 export
- 查看环境变量:
env - 设置环境变量(仅在当前会话):
export MYVAR="some_value" - 永久生效:可写入
~/.bashrc或~/.profile。
八、总结
- 文本处理:掌握
grep、sed、awk三大工具能快速处理日志、配置文件以及各种文本数据。 - 系统管理:熟练使用
ps、top、kill、systemctl等能应对常见进程、服务管理及日志查看需求。 - 网络调试:
ip、ss、tcpdump、nmap等工具是排查网络故障、端口占用和安全扫描的利器。 - 文件同步与传输:
tar、rsync、scp的高级用法能让你在备份、迁移、部署时如虎添翼。 - 安全与权限:合理使用
sudo、chown、chmod、SELinux 等,保障系统安全。 - 终端管理与脚本:使用
screen、tmux、自定义alias和环境变量,可以极大提升效率。 - 调试排错:在出现复杂问题时,可以借助
strace、ltrace、journalctl进行深入分析。
掌握以上这些命令与操作后,你将在大多数 Linux 场景下应对自如,也更容易编写自动化脚本和解决系统级问题。在实际使用中,还可以结合 Shell 脚本语言(如 Bash、Zsh)或更高级语言(如 Python)进行复杂任务的编排与自动化。祝学习顺利!
相关文章:
Linux 高级命令与常见操作:文本处理、系统管理与网络调试
下面是一份针对已经熟悉 Linux 基础命令的用户所整理的「高级命令与常见操作」笔记,涵盖文本处理、系统管理、网络调试与其他常用的进阶技巧。请你审核下面笔记,检查是否有过时的内容,如有请进行替换,确保其符合现代化需求&#x…...
解锁健康密码,拥抱品质生活
在生活节奏不断加快的今天,健康养生已成为人们关注的焦点。它不仅关乎当下生活质量,更是对未来幸福的投资。从日常生活的点滴出发,掌握正确养生方法,我们就能轻松收获健康。 饮食是健康的基石。我们应当遵循 “食物多样&#x…...
TLS 1.2 握手过程,每个阶段如何保证通信安全?
TLS 1.2 握手是确保客户端和服务器之间安全通信的关键过程。它涉及多个步骤,包括身份验证、加密算法协商和会话密钥交换。 目录 TLS 1.2 握手是确保客户端和服务器之间安全通信的关键过程。它涉及多个步骤,包括身份验证、加密算法协商和会话密钥交换。…...
ABAP 新语法 - corresponding
在 ABAP 中,CORRESPONDING 操作符用于根据字段名称自动映射结构体(Structure)或内表(Internal Table)的字段值。它比传统的 MOVE-CORRESPONDING 语句更灵活,支持更多控制选项。 基础用法 data: begin of …...
C++ 中为什么构造函数不需要实现虚函数,而析构函数需要?
在C中,构造函数不需要是虚函数,而析构函数往往需要,原因如下: 构造函数 对象创建顺序:构造函数的主要任务是初始化对象的成员变量,创建对象时需要先调用基类的构造函数,再调用派生类的构造函数…...
vscode使用方式
一、常用快捷键与代码操作 注释与代码排版 行注释:Ctrl /;块注释:Shift Alt A。 代码缩进:选中代码段后按 Tab(右移)或 Shift Tab(左移)。 代码导航与编辑 快速跳转文件&…...
存储模块cache
参考:存储模块 --- Cache_cache模块-CSDN博客 一级缓存(L1 Cache) 和 二级缓存(L2 Cache) 都是处理器内的高速缓存,用来减少访问主内存的延迟,提高处理器的性能。它们在计算机体系结构中发挥着…...
HTML零基础入门笔记:狂神版
前言 本笔记是学习狂神的java教程,建议配合视频,学习体验更佳。 【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 第1-2章:Java零基础入门笔记:(1-2)入门(简介、基础知识)-CSDN博客 第3章&…...
java.util.Collections中常用api
在Java中,java.util.Collections 是一个工具类,提供了大量静态方法用于操作或返回集合(如List、Set、Map等)。以下是常用的API分类整理: 1. 排序与顺序操作 sort(List<T> list) 对List进行自然顺序排序ÿ…...
FreeRTOS移植笔记:让操作系统在你的硬件上跑起来
一、为什么需要移植? FreeRTOS就像一套"操作系统积木",但不同硬件平台(如STM32、ESP32、AVR等)的CPU架构和外设差异大,需要针对目标硬件做适配配置。移植工作就是让FreeRTOS能正确管理你的硬件资源。 二、…...
c语言修炼秘籍 - - 禁(进)忌(阶)秘(技)术(巧)【第五式】动态内存管理
c语言修炼秘籍 - - 禁(进)忌(阶)秘(技)术(巧)【第五式】动态内存管理 【心法】 【第零章】c语言概述 【第一章】分支与循环语句 【第二章】函数 【第三章】数组 【第四章】操作符 【第五章】指针 【第六章】结构体 【第七章】const与c语言中一些错误代码 【禁忌秘术】 【第一式…...
树莓派超全系列教程文档--(22)使用外部存储设备的相关操作
使用外部存储设备的相关操作 外部存储设备相关操作安装存储设备设置自动挂载卸载存储设备处理 target is busy 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 外部存储设备相关操作 您可以将外部硬盘、SSD或U盘连接到Raspberry Pi上的任何USB端…...
MySQL表的增删改查基础版
这一部分内容比较多,请大家结合目录查看👀 增删改查 这一部分内容比较多,请大家结合目录查看👀 一、新增1.插入2.指定列插入3.一次插入多行记录 二、查询1.全列查询2.指定列查询3.查询字段为表达式4.别名5.去重6.多列去重7.排序8.…...
PDF预览-搜索并高亮文本
在PDF.js中实现搜索高亮功能可以通过自定义一些代码来实现。PDF.js 是一个通用的、基于Web的PDF阅读器,它允许你在网页上嵌入PDF文件,并提供基本的阅读功能。要实现搜索并高亮显示文本,你可以通过以下几个步骤来完成: 1. 引入PDF…...
【备赛】蓝桥杯嵌入式实现led闪烁
原理 由于蓝桥杯的板子带有锁存器,并且与lcd屏幕有冲突,所以这个就成了考点。 主要就是用定时器来实现,同时也要兼顾lcd的冲突。 一、处理LCD函数 首先来解决与lcd屏幕冲突的问题,把我们所有用到的lcd函数改装一下。 以下是基…...
【Python】贝叶斯,条件概率是怎么回事儿
【Python】贝叶斯,条件概率是怎么回事儿 一、原理简介1.1 贝叶斯定理1.2 朴素贝叶斯假设 二、算法实现过程2.1 数据准备与预处理2.2 模型训练与预测2.2.1 高斯朴素贝叶斯 - 对应连续型数据2.2.2 多项式朴素贝叶斯 - 离散型数据 2.3 模型评估 三、算法优缺点分析3.1 …...
Flink介绍——实时计算核心论文之Storm论文详解
引入 我们通过以下两篇文章,深入探索了S4是如何抽象流式计算模型,如何设计架构和系统,存在那些局限: 论文详解论文总结 Yahoo推出的S4 并没有在历史舞台上站稳脚跟,在S4的论文发表的同一年,我们今天的主…...
001 使用单片机实现的逻辑分析仪——吸收篇
本内容记录于韦东山老师的毕设级开源学习项目,含个人观点,请理性阅读。 个人笔记,没有套路,一步到位,欢迎交流! 00单片机的逻辑分析仪与商业版FPGA的逻辑分析仪异同 对比维度自制STM32逻辑分析仪商业版逻…...
es基本概念
Elasticsearch 的架构与基本概念 Elasticsearch(简称 ES)是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建。它被广泛用于全文搜索、日志分析、实时数据分析等场景。以下是其架构概述及其基本概念的详细解释。 Elasticsearch 的架…...
可以使用费曼学习法阅读重要的书籍
书本上画了很多线,回头看等于没画出任何重点。 不是所有的触动都是有效的。就像你曾经看过很多好文章,当时被触动得一塌糊涂,还把它们放进了收藏夹,但一段时间之后,你就再也记不起来了。如果让你在一本书上画出令自己…...
11-产品经理-创建产品
在“产品”-“仪表盘”内,可以查看系统中关于产品及相关需求的统计。 在“产品”-“产品列表”页面,可以按项目集、项目查看其关联产品。还可以添加产品、编辑产品线、或者导出产品列表。 产品看板,通过看板方式查看产品、产品计划和产品下的…...
JavaScript学习教程,从入门到精通,JavaScript 基础语法全面指南(5)
JavaScript 基础语法全面指南 一、JavaScript 基本概念 JavaScript 是一种轻量级的解释型或即时编译型的编程语言,主要用于网页开发,为网页添加交互功能。 1.1 JavaScript 的特点 解释型语言:不需要编译,由 JavaScript 引擎直…...
低代码开发平台:飞帆制作网页并集成到自己的网页中
应用场景: 有时,我们的网页使用了某个模版,或者自己写的 html、css、javascript 代码。只是网页中的一部分使用飞帆来制作。这样的混合网页如何实现呢? 其实很容易,来体验一下飞帆提供的功能! 还记得这个…...
语法: result=log (x);
LOG( ) 语法: resultlog (x); 参数: x是一个浮点数; 返回值: result等于返回值,是一个浮点数; 功能: 该函数是用来计算浮点数x的自然对数(即ln x);如果x小于或等于0,或x太大,则行为没有定义; 注意:存在error挂起; 如果在编写程序里包含了errno.h头文件,则范围和等级…...
Hibernate核心方法总结
Session中的核心方法梳理 1、save方法 这个方法表示将一个对象保存到数据库中,可以将一个不含OID的new出来的临时对象转换为一个处于Session缓存中具有OID的持久化对象。 需要注意的是:在save方法前设置OID是无效的但是也不会报错,在save方…...
IntelliJ IDEA Maven 工具栏消失怎么办?
一、问题现象与背景 在使用 IntelliJ IDEA(简称 IDEA)开发 Maven 项目时,偶尔会遇到右侧或侧边栏的 Maven 工具栏(显示依赖、生命周期等信息的窗口)突然消失的情况。这可能影响开发者快速操作 Maven 构建、依赖管理等…...
消息队列(kafka 与 rocketMQ)
为什么要使用消息队列?作用1: 削峰填谷(突发大请求量问题)作用2: 解耦(单一原则)作用3: 异步(减少处理时间) 如何选择消息队列(kafka&RocketMQ)成本功能性能选择 rocketMQ是参考kafka进行实现的为什么rocketMQ与kafka性能差距很大呢?kafka 的底层数据储存实现rocketMQ 的…...
【STM32】Flash详解
【STM32】Flash详解 文章目录 【STM32】Flash详解1.Flash闪存概念1. 1核心区别:NOR Flash vs. NAND Flash1.2 为什么常说的“Flash”多指 NAND Flash?1.3技术细节对比(1) 存储单元结构(2) 应用场景(3) 可靠性要求 1.4总结 2.STM32内部的Flash2.1为什么是…...
CV - 目标检测
物体检测 目标检测和图片分类的区别: 图像分类(Image Classification) 目的:图像分类的目的是识别出图像中主要物体的类别。它试图回答“图像是什么?”的问题。 输出:通常输出是一个标签或一组概率值&am…...
node-modules-inspector 可视化node_modules
1、node_modules 每个vue的项目都有很多的依赖,有的是dev的,有的是生产的。 2、使用命令pnpx node-modules-inspector pnpx node-modules-inspector 3、node_modules可视化 4、在线体验 Node Modules Inspector 5、github地址 https://github.com/a…...
