echo 输出
echo是 Linux/Unix 和 Windows 系统中常用的命令行工具,用于在终端或控制台输出文本内容。
name="John"
echo "My name is $name"
echo -e "Line1\nLine2" // -e 转义字符解析
常见的转义字符:
\n- 换行\t- 制表符\\- 反斜杠
echo "This is a test" > test.txt # 覆盖写入
echo "Another line" >> test.txt # 追加写入
分支逻辑 if ..; then ... fi
if [ condition ]; then
commands
elif [ condition ]; then
commands
else
commands
fi# 常用条件:
[ -f file ] # 文件存在
[ -d dir ] # 目录存在
[ -z str ] # 字符串为空
[$a -eq $b ] # 数值相等
循环控制 while ..; do .. done for ..; do... done
# For 循环
for i in {1..5}; do
echo $i
done
# While 循环
count=5
while [ $count -gt 0 ]; do
echo $count
count=$((count-1))
done函数定义 function
function log() {
echo "[$(date)] $1" >> /var/log/app.log
}
log "Application started"
常用命令
2>&1 让命令把错误消息和正常输出都记录到同一个日志文件里,避免漏掉重要报错信息。
find /logs -name "*.log" -delete -print >> clean.log
# 如果遇到权限错误,报错只会显示在终端,不会进 clean.log
find /logs -name "*.log" -delete -print >> clean.log 2>&1
# 所有报错会和正常输出一起写入 clean.log
awk
awk是一个强大的文本处理工具,可以按行扫描文件或输入流,根据规则提取、转换并输出数据,特别适合处理结构化文本(如日志、CSV等)
awk的基本结构是:条件 {动作}条件(可选):决定哪些行要处理(如
/error/或$1 > 100)。动作(必选):对匹配的行执行什么操作(必须用
{}包裹){}是awk的语法要求,用来明确「在什么条件下执行什么操作」。
awk '{print 1; print $2}' file.txt # 打印第1列和第2列
#运用示例
echo "清理完成. 共释放空间: $(du -sh $LOG_DIR | awk '{print $1}')" >> /var/log/log_cleaner.log
输出:清理完成. 共释放空间: 1.2G
du:计算磁盘空间用量
-s:显示总大小(不递归列出子目录)
-h:以人类可读格式显示(如 1.4G、250M)
$LOG_DIR:目标目录路径(需提前定义的变量,如 /var/log)
awk '{print $1}': 提取 du 输出的第一个字段(即空间大小值,如 2.7G),丢弃目录路径。字段:按行/空格等分割,awk的功能程序管理systemctl
systemctl是 Linux 系统中用于管理 systemd(系统和服务管理器)的核心命令主要功能包括 启动/停止服务、查看服务状态、设置开机自启 等
它是现代 Linux 发行版(如 CentOS 7+、Ubuntu 16.04+)中替代旧版
service和chkconfig的工具管理web服务器(Nginx/Apache),管理数据库(MySQL)