1. 标准输出重定向实战
在Linux系统中,标准输出重定向是最基础也最实用的技巧之一。当我们执行echo "我学会Linux重定向啦!"命令时,默认情况下文本会显示在终端上。但通过>操作符,我们可以将输出重定向到文件。
具体操作命令如下:
bash复制echo "我学会Linux重定向啦!" > my_note.txt
注意:单个
>表示覆盖写入,如果文件已存在会清空原有内容。若要追加内容,应该使用>>操作符。
这个简单命令背后其实涉及Linux的三大标准流:
- 标准输入(stdin):文件描述符0
- 标准输出(stdout):文件描述符1
- 标准错误(stderr):文件描述符2
重定向操作在嵌入式开发中特别实用,比如:
- 将编译日志保存到文件
- 记录设备启动信息
- 创建自动化脚本的日志
2. 标准错误重定向技巧
当命令执行出错时,错误信息默认会输出到stderr。要捕捉这些错误信息,我们需要使用错误重定向。
典型场景是执行一个不存在的命令:
bash复制abc123 2> error.log
这里2>表示将文件描述符2(即stderr)重定向到文件。与标准输出重定向不同,错误信息不会污染终端输出,这在自动化脚本中尤为重要。
实际开发中的典型应用:
- 捕捉make编译错误
- 记录设备驱动加载失败信息
- 调试后台服务启动问题
重要技巧:如果想同时重定向stdout和stderr,可以使用
&>操作符,例如command &> output.log
3. 管道符的妙用
管道符|是Linux最强大的特性之一,它允许将一个命令的输出作为另一个命令的输入。统计文件行数的经典组合:
bash复制wc -l /etc/passwd | awk '{print $1}'
这个命令链的工作原理:
wc -l计算行数并输出"行数 文件名"awk '{print $1}'提取第一列(纯数字)
在嵌入式系统监控中,管道组合非常实用:
bash复制dmesg | grep error # 筛选内核错误
ps aux | grep nginx # 查找特定进程
4. 进程管理全攻略
Linux进程管理是系统运维的核心技能。我们先看基本命令:
查看所有进程:
bash复制ps aux
终止进程的两种方式:
bash复制kill -15 PID # 温和终止(SIGTERM)
kill -9 PID # 强制终止(SIGKILL)
危险警告:-9信号会直接终止进程而不做清理,可能导致数据丢失。应该先尝试-15,给进程优雅退出的机会。
嵌入式开发中的实用技巧:
- 使用
pkill按名称终止进程 killall终止同名所有进程pgrep查找进程PID
5. Vim基础操作指南
Vim是Linux下最强大的文本编辑器,基础操作包括:
创建并编辑文件:
bash复制vim hello_linux.txt
编辑模式操作:
- 按
i进入插入模式 - 输入文本"Linux学习打卡成功!"
- 按ESC返回普通模式
- 输入
:wq保存退出
Vim模式切换是初学者的第一个门槛:
- 普通模式:移动光标、执行命令
- 插入模式:编辑文本
- 命令行模式:保存退出等操作
6. Vim高级配置技巧
要让Vim显示行号并永久生效,需要编辑配置文件:
bash复制vim ~/.vimrc
添加配置:
vim复制set number " 显示行号
set autoindent " 自动缩进
行操作命令:
yy复制当前行p粘贴到下一行:set nu临时显示行号
嵌入式开发者常用的Vim插件:
- NERDTree:文件树浏览
- Tagbar:代码结构导航
- YouCompleteMe:代码补全
7. 网络诊断三板斧
网络连通性检查是嵌入式设备调试的日常:
测试外网连接:
bash复制ping -c 4 www.baidu.com
查看IP地址:
bash复制ip addr show
# 或传统命令
ifconfig
检查防火墙状态:
bash复制sudo ufw status # Ubuntu
sudo firewall-cmd --state # CentOS
网络故障排查顺序:
- 检查物理连接
- 确认IP配置
- 测试网关连通性
- 检查DNS解析
- 验证防火墙规则
8. Git版本控制入门
Git是现代开发的必备工具,基础工作流:
初始化仓库:
bash复制mkdir ~/my_first_git && cd ~/my_first_git
git init
创建并跟踪文件:
bash复制echo "我的第一个Git仓库" > readme.md
git add readme.md
Git的核心概念:
- 工作区:实际文件目录
- 暂存区:准备提交的变更
- 本地仓库:提交历史记录
9. Git提交与版本管理
完成首次提交:
bash复制git commit -m "第一次git提交"
查看状态:
bash复制git status
git log --oneline # 简洁版提交历史
嵌入式项目中的Git实践:
- 为每个功能创建独立分支
- 提交信息遵循约定式提交规范
- 使用
.gitignore过滤构建产物
10. 系统信息收集脚本
组合命令实现一键信息收集:
bash复制{
whoami
wc -l /etc/passwd | awk '{print $1}'
ps aux | wc -l
} > system_info.txt
这个脚本使用了命令分组{}和重定向,比单独执行每个命令更高效。
嵌入式系统监控的扩展方案:
- 添加时间戳
date - 包含内存使用
free -h - 记录CPU负载
uptime - 定期执行并归档(通过cron)
掌握这些Linux基础技能后,你已经可以:
- 高效处理文本数据
- 管理系统进程和服务
- 进行基本的网络诊断
- 使用版本控制管理项目
- 编写自动化监控脚本
在实际嵌入式开发中,建议将这些命令封装成脚本,并通过chmod +x赋予执行权限,逐步构建自己的工具库。遇到问题时,记得多用man命令查看手册,比如man bash可以学习更多重定向和管道的细节。