shell 使用心得¶
固定iptable表¶
防火墙
要批量下载保存在当前目录中的链接¶
可以使用wget或curl等命令行工具。以下是使用wget的示例:
grep -ohr ‘https://wework.qpic.cn/[^)]*’ .: 用于提取以”https://wework.qpic.cn/"开头 到 ) 结束的链接。
|: 管道操作符,将grep的输出传递给下一个命令。
wget -i -P ./images/: 使用wget命令批量下载链接。
-i -: -i选项后跟着-表示从标准输入中读取链接。
-P ./images/: -P选项后跟着保存下载文件的目录路径,这里是./images/,表示当前目录下的images子目录。
将当前目录中所有的 http://image.iswbm.com/ 替换成 xxxxx¶
find . -type f: 使用find命令在当前目录及其子目录中查找文件(不包括目录)。
-exec: 用于在找到的每个文件上执行后续的命令。
sed -i ‘s#http://image.iswbm.com/#xxxxx#g’ {} \;: 这是在-exec中执行的命令。
sed: 用于文本替换。
-i: 表示直接在文件中进行替换(原地替换)。
‘s#http://image.iswbm.com/#xxxxx#g’: 这是替换的sed命令,它将”http://image.iswbm.com/"替换为"xxxxx“。
{}: 这个占位符将被find命令找到的文件名替换。
\;: 表示-exec命令结束。
要列出当前目录及其子目录下最大的五个文件¶
你可以使用find命令和du命令的组合。以下是一条可以完成此任务的命令:
这个命令的工作原理如下:
find .:从当前目录(包括子目录)开始查找文件。-type f:仅查找普通文件(不包括目录)。-exec du -h {} +:对找到的每个文件运行du -h命令,以显示文件大小。+ 是find命令中-exec选项的一部分。它的作用是告诉find命令将找到的文件作为参数传递给后面的命令(在这种情况下是du -h),并尽可能多地将文件一次性传递给命令,而不是每个文件都单独执行一次命令。这样做可以提高命令的效率,因为它减少了每次执行命令的开销。这对于需要处理大量文件的情况特别有用。在这个命令中,find会找到所有满足条件的文件,然后将它们一次性传递给du -h命令,du -h会计算文件的大小并以人类可读的方式显示文件大小sort -rh:按文件大小逆序(从大到小)排序。head -n 5:显示前五个文件,这些文件是最大的文件。
运行此命令后,将列出当前目录及其子目录下最大的五个文件,并显示它们的文件名和大小。
文件变化inotify 监视工具¶
以下是一种简单的方法,使用 inotifywait 工具和一个简单的脚本:
安装 inotify-tools:
在大多数 Linux 发行版中,可以通过包管理器安装 inotify-tools:
创建一个脚本来检测配置文件变化并重启 Nginx:
创建一个名为 watch-config.sh 的脚本,内容如下:
确保为脚本添加执行权限:
运行脚本:
启动脚本以开始监视配置文件的变化:
这样,当配置文件发生变化时,脚本会检测到并执行 nginx -t 来验证配置文件的正确性,然后执行 systemctl restart nginx 来重启 Nginx。