标签
#shell-scripting
49 篇文章
-
shell用变量的值作为新的变量名
使用 eval 命令将变量的值用作新的变量名,实现间接引用的技巧。
-
Linux 环境变量的加载顺序和优先级
使用 export 设置环境变量时,前面定义的变量会覆盖后面定义的同名变量。PATH 等变量的顺序直接影响命令查找和优先级。
-
Shadowsocks-go 一键安装脚本
Shadowsocks Go 版本服务端一键安装脚本,支持 CentOS/Debian/Ubuntu,安装和配置说明。
-
网卡流量监控
实时监控网卡流量的脚本,显示发送/接收速率,支持不同单位自动转换。
-
Shell脚本生成随机密码的若干种可能
生成随机密码的多种方法,包括 urandom、字符串截取、UUID、进程 ID 等方式。
-
Shadowsocks 搭梯子
Shadowsocks 服务端一键安装脚本和客户端配置方法。
-
使用 Linux 命令搭建 KVM 云环境
KVM 虚拟机部署实践。介绍如何将 VMware VMDK 格式磁盘转换为 KVM 兼容格式,使用 virt-install 创建虚拟机,以及用 virsh 命令添加网卡和磁盘等硬件。
-
Linux 后台进程管理方法
远程 SSH 登录时进程的后台运行方法。介绍 nohup、setsid、subshell、disown、screen 等命令的用法,帮助进程在网络断开或终端关闭后继续运行。
-
Linux服务器查看公网出口IP地址
在 Linux 命令行下查询服务器的公网出口 IP 地址,包括 curl、wget、host、dig 等多种方法和脚本示例。
-
多进程查询大量IP信息并入库
多进程查询 IP 地址库获取归属地信息,更新数据库的脚本,使用 multiprocessing 并发加速。
-
#!/usr/bin/python
服务包生成和部署脚本,从远端查询服务配置、生成 package 和 cron 配置文件、打包上传。
-
线程监控
使用 ps 和 top 命令查看进程线程信息及其绑定的 CPU。
-
shell中的浮点数比较
Shell 中使用 bc 命令进行浮点数比较的方法,解决整数比较命令不支持小数的问题。
-
使用telnet探测php端口
一个 Shell 脚本,通过 telnet 定期探测 php-fpm 服务状态,当服务不可用时自动重启。
-
shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)
编写 shell 脚本分析 nginx 日志,统计访问次数最多和最耗时的页面(慢查询)。用于服务器性能优化时识别高访问量和高耗时页面。
-
shell判断当前执行脚本的进程数的坑
分析 shell 脚本中使用 ps 统计自身进程数时为何会得到 2 而不是 1,以及变量赋值对子进程的影响。
-
字符串截取
Bash 字符串截取的各种方法,包括从开头/末尾删除、子串提取、长短匹配等。
-
查看进程启动时间
ps 看到的进程启动时间超过一天会变成问号,本文通过 /proc/<pid>/stat 的 jiffies 值配合系统启动时间,精确计算进程的真实启动时刻。
-
Bash Shell 字符串切割
Bash 中字符串切割和参数展开的技巧总结,包括模式匹配、子串截取等用法。
-
Linux test 命令使用
Linux test 命令的完整选项速查:文件类型与权限侦测、文件新旧比较、整数与字符串判定、多重条件组合。
-
查看Apache并发请求数及其TCP连接状态
监控 Apache 服务器的并发请求处理能力。通过系统命令查看 httpd 进程数和网络连接状态,理解 TCP 连接的各种状态。
-
grep遇到recursive directory loop的问题解决方法
grep递归搜索时如果目录含有符号链接会导致无限循环错误。使用-l标志排除符号链接可以解决此问题。
-
批量修改配置文件中的参数项
从配置文件列表中逐个读取文件,备份后使用 sed 命令批量修改参数值。
-
shell加载配置文件
在 shell 脚本中加载外部配置文件的方法,使用 source 或点号命令。
-
grep -A -B详解
grep 命令的 -A 和 -B 参数用法说明,用于显示匹配行前后的上下文。
-
rm删除带特殊字符的文件
当文件名以-或--开头时,rm会误认为是选项参数。使用rm -- 文件名可以告诉rm停止解析选项,后面的参数作为文件名处理。
-
网络流量监控
基于 ifconfig 的网络流量监控脚本,实时显示网卡的发送/接收速率和平均流量。
-
Bash 中关于日期时间操作的常用自定义函数
编写 Bash 脚本时常用的日期时间函数库,包含日期计算、时间戳转换、闰年判断等实用工具函数。
-
PS1 的设置
自定义 PS1 提示符,包含彩色主机名、用户名、IP地址、工作目录等信息。
-
用
shell 中用 ${#var} 求字符串长度得到的是真实字符数,而 echo 字符串管道到 wc -c 会因末尾换行多算一个字符。
-
Bash 位置参数与特殊参数的含义
整理 Bash 中位置参数($0/$1/$#/$*/$@)和特殊参数($?/$-/$!/$_/$$)的含义,以及函数退出状态与 return 的用法。内容参考 ABS(Advanced Bash Scripting)。
-
Linux shell 中的逻辑关系表达方式
总结 shell 中逻辑与、逻辑或的两种写法:test 内置的 -a/-o 选项,以及用 && / || 连接多个 test 表达式。
-
kill -0 PID
发送无效信号检查进程存在:若进程存在则 $? 为 0,否则为 1。
-
shell 特殊变量与操作速查表
整理 Bash 的特殊变量、测试操作符、文件类型测试、参数替换与字符串操作的速查表,内容源自 ABS(Advanced Bash Scripting Guide)附录。
-
一些不为人知的 Linux 命令
汇总一批实用但不太为人熟知的 Linux 命令,涵盖文本处理、数据操作、文件与二进制查看、网络调试和系统统计等场景。
-
Linux 基本命令 grep、egrep、fgrep 用法与正则表达式
grep、egrep、fgrep 三个命令的用法及参数对照。基本和扩展正则表达式的语法、元字符、锚定符号、次数匹配等完整参考。
-
Linux shell 时间运算以及时间差计算方法
Shell 中进行时间加减运算和时间差计算的方法。通过时间戳和秒数进行转换计算。
-
Unix shell 比较操作符参考
Shell 脚本中整数、字符串、复合条件的比较操作符对照表和用法示例。
-
Linux shell if 参数对照表
Shell 编程中 if 语句的文件测试、字符串比较、算术比较运算符参考表及实例。
-
检查网段内的 IP 占用情况
Bash 脚本:扫描指定网段(如 192.168.9.0/24),通过 ping 测试检查每个 IP 的在线情况,找出不在线的 IP。
-
检查垃圾邮件
从 anspam 反垃圾日志中提取指定字段和过滤,查看特定账户的邮件通过情况。
-
每 10 秒执行一次脚本的 crontab
在 crontab 中使用 sleep 实现每 10 秒执行一次任务的方法
-
更友好的显示当前的系统挂载
使用 mount 和 column 以表格形式显示系统挂载点,使用 du 命令显示目录大小,可调整深度查看多级目录。
-
测试网卡负载
监测网卡流量和数据包速率的 shell 脚本,支持自定义网卡名称。每秒采样一次,输出进出流量和丢包率。
-
sed 常用用法
sed 文本处理的常用命令集合,包括插入、删除、替换等操作。涵盖按行号、按模式匹配、批量替换等使用场景。
-
提取 IP 地址
Bash 脚本中提取 IP 地址和字符串切割的方法。使用 ifconfig、grep、sed 等工具获取 IP,使用字符串切割操作 ${var:offset} 处理域名。
-
反垃圾统计脚本
Shell 脚本:统计日志中的反垃圾过滤情况,包括数据包总数、拒绝数、通过数和拒绝百分比。
-
sed 笔记
sed 文本替换示例。将文本中偶数位置的冒号替换为逗号,展示 awk 和 sed 正则表达式的两种解决方案。
-
AWK 笔记
AWK 的分隔符和内建变量使用。包括 RS/ORS(记录分隔符)、FS/OFS(字段分隔符)、NR/FNR/NF 等变量的详解和实例。