Linux实用工具与技巧

实用工具与技巧

1 tr命令 - 字符转换

tr(translate)命令用于字符转换或删除。

基本语法:

bash 复制代码
tr [选项] SET1 [SET2]

大小写转换示例:

bash 复制代码
head -n 5 /etc/passwd | tr 'a-z' 'A-Z' > ./path/passwd.out

命令解析:

  • head -n 5 /etc/passwd 取passwd文件的前5行
  • | 管道符,将前一命令的输出作为后一命令的输入
  • tr 'a-z' 'A-Z' 将所有小写字母转换为大写字母
  • > ./path/passwd.out 将结果保存到文件

验证结果:

bash 复制代码
cat ./path/passwd.out  # 查看转换后的内容,全部变为大写

其他tr用法:

bash 复制代码
# 大写转小写
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
# 输出: hello world

# 删除数字
echo "abc123def456" | tr -d '0-9'
# 输出: abcdef

# 删除空格
echo "hello world" | tr -d ' '
# 输出: helloworld

# 压缩重复字符
echo "hello    world" | tr -s ' '
# 输出: hello world

# 替换字符
echo "hello" | tr 'el' 'ip'
# 输出: hippo

2 重定向的实战组合

示例1: 分离输出用于调试

bash 复制代码
# 测试不存在的命令
ls xxx

# 方式1: 只保存正确输出
ls xxx 1>./path/out.txt
# 错误信息显示在终端,out.txt为空

# 方式2: 只保存错误输出
ls xxx 2>./path/no.out
# 错误信息保存到no.out,终端无显示

# 方式3: 同时保存正确和错误输出
ls xxx 1>./path/out.txt 2>&1
# 所有输出都保存到out.txt

示例2: 屏蔽错误信息

bash 复制代码
# 将错误输出丢弃到/dev/null(黑洞设备)
command 2>/dev/null

# 实际应用
find / -name "*.txt" 2>/dev/null  # 忽略权限错误

示例3: 同时保存到文件和显示在屏幕

bash 复制代码
# 使用tee命令
ls -la | tee output.txt
# 内容既显示在屏幕上,又保存到output.txt

# 追加模式
ls -la | tee -a output.txt

重定向实战案例

1 日志记录

创建带时间戳的日志:

bash 复制代码
echo "$(date): 系统启动" >> /var/log/myapp.log

分离正常日志和错误日志:

bash 复制代码
./myprogram 1>>app.log 2>>error.log

2 批量处理

批量文件转换:

bash 复制代码
# 将所有txt文件转为大写
for file in *.txt; do
    tr 'a-z' 'A-Z' < "$file" > "${file}.upper"
done

3 数据清洗

提取特定格式数据:

bash 复制代码
# 提取IP地址并去重
grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' access.log | sort -u > ips.txt

4 配置文件生成

使用Here Document创建配置:

bash 复制代码
cat > nginx.conf << 'EOF'
server {
    listen 80;
    server_name example.com;
    root /var/www/html;
}
EOF

注意使用'EOF'(带引号)可以防止变量展开。

相关推荐
鹏大师运维4 小时前
为什么信创电脑装软件总提示“软件包架构不匹配”?
linux·运维·架构·国产化·麒麟·deb·统信uos
007张三丰4 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
weixin_604236675 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
鹤落晴春6 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
yz_aiks6 小时前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
AI智图坊6 小时前
多件装组合SKU图的批量生产效率分析:从PS手工到AI自动化的工作流改造
大数据·运维·人工智能·gpt·ai作画·自动化·aigc
bjzhang758 小时前
CentOS下安装MySQL详解
linux·mysql·centos
Jason_chen9 小时前
Linux 6.2 音频机制深度解析:AI驱动的低延迟音频与零信任音频安全架构
linux
下午写HelloWorld9 小时前
Linux系统及Ubuntu常用指令
linux·ubuntu·操作系统
云计算磊哥@11 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发