Linux 进阶操作--定时任务、文本处理和磁盘监控等

在Linux系统中,学习一些进阶操作能够帮助用户和开发者更有效地管理系统和进行开发。以下是一些常用的高级Linux操作及其案例代码,旨在抛砖引玉,启发更多场景运用。

1. 使用 grep 进行模式匹配

grep 命令用于在文本中搜索匹配特定模式的行。

示例:

sh 复制代码
grep "error" /var/log/syslog

2. 使用 sed 进行流编辑

sed 是一种流编辑器,可以对文本进行过滤和替换。

示例:

sh 复制代码
sed 's/old-text/new-text/g' input.txt > output.txt

3. 文本流编辑 (awk)

awk 是一个功能强大的文本处理工具,适合对文本数据进行复杂的处理。

案例:

sh 复制代码
awk '/pattern/ { action }' input_file  # 对匹配模式的行执行操作
awk '/error/ {print $1}' /var/log/syslog	# 示例

4. 使用 find 查找文件

find 命令用于在目录树中查找文件并执行操作。

示例:

sh 复制代码
find /home/user -type f -name "*.txt" -exec cp {} /home/user/text_files \;

5. ssh-keygenssh-copy-id

生成SSH密钥对和将SSH公钥复制到远程主机,以便实现无密码登录。

案例:

sh 复制代码
ssh-keygen -t rsa -b 4096  # 生成一个新的RSA密钥对

ssh-copy-id user@remote_host  # 复制公钥到远程主机

6. 使用 tar 打包和解包文件

tar 命令用于创建和提取tar归档文件。

示例:

sh 复制代码
# 打包
tar czvf archive.tar.gz /path/to/directory

# 解包
tar xzvf archive.tar.gz

7. 命令行JSON处理 (jq)

jq 是一个轻量级且灵活的命令行JSON处理器。

案例:

sh 复制代码
cat data.json | jq

8. 使用 rsync 同步文件

rsync 是一个快速、多功能的文件复制工具,用于同步文件和目录。

示例:

sh 复制代码
rsync -avz /path/to/source user@remote_host:/path/to/destination

9. 使用 iptables 配置防火墙

iptables 是一个用户空间的应用程序,用于配置Linux内核防火墙。

示例:

sh 复制代码
# 阻止特定IP地址
sudo iptables -A INPUT -s 192.168.1.10 -j DROP

10. 使用 crontab 配置定时任务

crontab 用于设置周期性被执行的任务。

示例:

sh 复制代码
# 编辑当前用户的crontab文件
crontab -e

# 添加以下行以每天午夜执行备份脚本
0 0 * * * /path/to/backup_script.sh

11. 使用 lsof 列出打开的文件

lsof 命令用于显示Linux系统中被进程打开的文件。

示例:

sh 复制代码
lsof -i :22  # 列出所有SSH连接

12. 使用 strace 跟踪系统调用

strace 是一个诊断、调试和教学工具,用于监控和跟踪系统调用。

示例:

sh 复制代码
strace -p 1234  # 跟踪进程号为1234的进程系统调用

13. 使用 nc (netcat) 进行网络操作

nc 或 "netcat" 是一个用于网络连接、发送和接收的工具。

示例:

sh 复制代码
# 在端口1234上侦听连接
nc -l 1234

# 将数据发送到指定的主机和端口
echo "Hello" | nc remote_host 1234

14. 磁盘使用情况 (dfdu)

df 用于报告文件系统的磁盘空间使用情况,而 du 用于估算文件或目录的磁盘使用空间。

案例:

sh 复制代码
df -h  # 以易读的格式显示所有文件系统的磁盘空间使用情况

du -sh /path/to/directory  # 显示指定目录的总磁盘使用量

15. 网络配置 (ifconfigip)

ifconfig 是传统的网络接口配置工具,而 ip 是更现代的工具。

案例:

sh 复制代码
ifconfig  # 显示网络接口的配置信息

ip addr show  # 使用ip命令查看网络接口信息

16. 进程管理 (pstop)

ps 命令用于报告当前系统的进程快照,top 命令用于实时显示系统进程信息。

案例:

sh 复制代码
ps aux  # 显示所有进程信息

top  # 实时显示进程信息

17. 归档和压缩 (gzip, bzip2, xz)

Linux 提供了多种压缩工具来减少文件大小。

案例:

sh 复制代码
gzip file.txt  # 使用gzip压缩文件

bzip2 file.txt  # 使用bzip2压缩文件

xz file.txt  # 使用xz压缩文件

18. 批量重命名 (rename)

rename 命令可以根据模式批量重命名文件。

案例:

sh 复制代码
rename 's/old/new/' *.txt  # 将当前目录下所有.txt文件中的"old"替换为"new"

19. 监控文件改动 (inotify)

inotify 是 Linux 内核中的一个特性,可以用来监控文件系统的变化。

案例:

sh 复制代码
inotifywait -m /path/to/directory  # 监控指定目录的所有改动事件

20. 系统资源限制 (ulimit)

ulimit 命令用于控制shell启动进程的资源限制。

案例:

sh 复制代码
ulimit -n  # 显示或设置可打开的文件描述符的数量限制

21. 批量替换文本 (perlsed)

perlsed 都可以用于执行批量文本替换。

案例:

sh 复制代码
perl -pi -e 's/old/new/g' *.txt  # 使用Perl批量替换文本

sed -i 's/old/new/g' *.txt  # 使用sed批量替换文本

22. 系统调用追踪 (dtracebpftrace)

dtracebpftrace 是强大的追踪工具,用于诊断系统和应用程序问题。

案例:

sh 复制代码
dtrace -n 'syscall:::entry { @[execname] = count(); }'  # 使用dtrace统计系统调用

bpftrace -e 'tracepoint:syscalls:sys_enter_* { @[comm] = count(); }'  # 使用bpftrace统计系统调用

23. 使用 ssh 远程连接

ssh 命令用于安全地连接到远程服务器。

示例:

sh 复制代码
ssh user@remote_host

24. 使用 systemctl 管理服务

systemctlsystemd系统和服务管理器的命令行界面,用于控制systemd服务。

示例:

sh 复制代码
# 启动服务
sudo systemctl start nginx

# 查看服务状态
sudo systemctl status nginx

25. screentmux

这些工具能让你在单个终端窗口中使用多个会话,并在会话之间切换。它们还允许你断开连接而不中断正在运行的程序,之后可以重新连接回来。

案例:

sh 复制代码
tmux  # 启动 tmux 会话
screen # 启动 screen 会话

26. ncdu

ncdu (NCurses Disk Usage) 是一个简单的磁盘使用分析器,使用ncurses界面,它提供了du命令的一个更友好的界面。

案例:

sh 复制代码
ncdu /path/to/directory  # 分析指定目录的磁盘使用情况

27. htop

htoptop 命令的一个增强版,提供了一个交互式的界面,可以更方便地管理进程。

案例:

sh 复制代码
htop  # 启动 htop 界面

28. iotop

iotop 是一个用于监控磁盘I/O使用情况的工具,可以帮助你找出占用磁盘I/O资源的进程。

案例:

sh 复制代码
iotop  # 启动 iotop 界面

29. nmap

nmap 是一个网络扫描和安全审计工具,可以用来发现网络上的设备,以及这些设备上运行的服务和开放的端口。

案例:

sh 复制代码
nmap -p 80,443 192.168.1.*  # 扫描本地网络上所有设备的80和443端口

30. dignslookup

这些命令用于查询DNS信息,如解析域名的IP地址。

案例:

sh 复制代码
dig example.com  # 使用 dig 查询域名信息

nslookup example.com  # 使用 nslookup 查询域名信息

31. traceroutetracepath

这些命令显示数据包到达主机所经过的路由。

案例:

sh 复制代码
traceroute example.com  # 显示到达 example.com 的路由

tracepath example.com  # 显示到达 example.com 的路由和路径的MTU

32. wgetcurl

这两个命令用于从命令行下载文件和交互。

案例:

sh 复制代码
wget http://example.com/file.txt  # 使用 wget 下载文件

curl -O http://example.com/file.txt  # 使用 curl 下载文件

33. zipunzip

用于创建和提取zip文件。

案例:

sh 复制代码
zip -r archive.zip /path/to/directory  # 将目录压缩成zip文件

unzip archive.zip  # 解压zip文件

34. rsnapshotrdiff-backup

这些工具用于备份,可以创建增量备份和快照。

案例:

sh 复制代码
rsnapshot daily  # 创建一个每日快照

rdiff-backup /source/directory /destination/directory  # 创建一个增量备份
相关推荐
lisw051 小时前
网络化:DevOps 工程的必要基础(Networking: The Essential Foundation for DevOps Engineering)
网络·devops
风行無痕3 小时前
Ubuntu Linux系统配置账号无密码sudo
linux·服务器·ubuntu
驱动小百科4 小时前
WiFi出现感叹号上不了网怎么办 轻松恢复网络
网络·智能路由器·wifi出现感叹号怎么解决·wifi无法上网·电脑wifi
好多知识都想学4 小时前
协议路由与路由协议
网络·智能路由器
爆农4 小时前
centos搭建dokcer和vulhub
linux·运维·centos
SZ1701102314 小时前
中继器的作用
服务器·网络·智能路由器
chenxy024 小时前
如何快速分享服务器上的文件
运维·服务器
重启就好5 小时前
【Ansible】模块详解
linux·服务器·ansible
o0o_-_5 小时前
【瞎折腾/mi50 32G/ubuntu】mi50显卡ubuntu运行大模型开坑(三)安装风扇并且控制转速
linux·运维·ubuntu
Huazzi.5 小时前
Ubuntu 22虚拟机【网络故障】快速解决指南
linux·网络·学习·ubuntu·bash·编程