1. Linux命令基础:从终端认识操作系统
第一次接触Linux终端的新手往往会被黑底白字的界面吓到,但命令行才是Linux系统的灵魂所在。与图形界面相比,命令行操作不仅效率更高,还能完成许多GUI无法实现的高级功能。我在运维岗位工作的这些年,见证了无数新人通过掌握基础命令快速提升工作效率的过程。
终端(terminal)是用户与Linux内核交互的桥梁,而shell则是解释命令的解释器。最常见的bash(Bourne Again Shell)支持命令补全(Tab键)、历史记录(上下箭头)等实用功能。当你在终端输入ls并回车时,bash会解析这个命令,调用对应的程序执行,最后将结果输出到屏幕。理解这个流程对后续学习各种命令至关重要。
提示:在终端中,
Ctrl+C可以终止当前命令,Ctrl+Z将程序挂起到后台,clear清屏,这些快捷键能大幅提升操作效率。
2. 文件系统操作命令精要
2.1 目录导航与查看
pwd(Print Working Directory)显示当前所在路径,就像在陌生城市打开手机定位。而cd(Change Directory)则是导航指令:
bash复制cd /usr/local # 绝对路径跳转
cd ../src # 相对路径返回上级并进入src目录
cd ~ # 快速回到用户主目录
cd - # 在上个目录和当前目录间切换
ls命令可能是使用频率最高的指令,几个关键参数组合使用效果更佳:
bash复制ls -lht /var/log # -l详细信息 -h人性化文件大小 -t按时间排序
ls -a # 显示隐藏文件(以点开头)
ls *.conf # 通配符匹配所有.conf文件
2.2 文件操作四件套
-
创建:
touch不仅能创建空文件,还能修改时间戳bash复制touch new_file.txt # 创建文件 touch -t 202401011200 old_file.txt # 修改时间为2024年1月1日12:00 -
复制:
cp的-r参数对目录操作必不可少bash复制cp file1 file2 # 基本复制 cp -r dir1 dir2 # 递归复制目录 cp -p file1 file2 # 保留原文件属性 -
移动/重命名:
mv在不同场景下发挥双重作用bash复制mv oldname newname # 文件重命名 mv file1 /tmp/ # 移动文件到/tmp目录 -
删除:
rm是危险命令的代表,使用-i交互模式更安全bash复制rm -i important.txt # 删除前确认 rm -rf dir/ # 强制递归删除(慎用!)
警告:永远不要执行
rm -rf /这样的命令,这会删除整个系统文件!建议新手在~/.bashrc中添加alias rm='rm -i'设置默认交互模式。
3. 文本处理与查看命令
3.1 基础文本查看
cat虽然简单但功能强大:
bash复制cat file.txt # 显示全文
cat -n file.txt # 显示行号
cat file1 file2 > merged # 合并文件
less是分页查看利器:
- 空格键向下翻页,b键向上翻页
- /keyword 向前搜索,?keyword 向后搜索
- q键退出查看模式
3.2 高级文本处理
grep文本搜索三剑客之一:
bash复制grep "error" /var/log/syslog # 基本搜索
grep -i "warning" file.log # 忽略大小写
grep -r "main()" /usr/src/ # 递归目录搜索
grep -v "debug" application.log # 反向匹配(排除debug行)
awk是报表生成神器:
bash复制awk '{print $1}' access.log # 打印第一列
awk -F: '{print $1}' /etc/passwd # 以冒号分隔显示第一列
awk '$3 > 100 {print $0}' data.txt # 筛选第三列大于100的行
sed流编辑器示例:
bash复制sed 's/foo/bar/g' file.txt # 替换所有foo为bar
sed -i.bak '10d' config.conf # 删除第10行并备份原文件
sed -n '5,10p' /var/log/messages # 只打印5到10行
4. 系统监控与管理命令
4.1 进程管理
ps命令参数风格多样,推荐使用BSD格式:
bash复制ps aux # 查看所有用户进程
ps -ef --forest # 树形显示进程关系
ps -p 1234 -o pid,cmd # 查看指定PID的进程信息
top实时监控工具技巧:
- 按M按内存排序,P按CPU排序
- 1键显示多核CPU详情
- k键后输入PID可终止进程
kill信号控制:
bash复制kill -9 1234 # 强制终止进程(最后手段)
kill -15 1234 # 优雅终止(允许清理资源)
pkill -f "python.*app" # 通过模式匹配终止进程
4.2 磁盘与内存
df和du黄金组合:
bash复制df -h # 人类可读的磁盘空间报告
du -sh /home/* # 统计目录大小
du -ah --max-depth=1 / | sort -hr | head -10 # 找出根目录下最大的10个文件/目录
free内存查看:
bash复制free -m # 以MB为单位显示
free -h # 自动选择合适单位
watch -n 1 free -h # 每秒刷新内存使用情况
5. 网络相关命令
5.1 连接检测
ping基础网络测试:
bash复制ping -c 4 example.com # 发送4个测试包
ping -i 0.5 target # 每0.5秒发送一次(需要root)
traceroute路径追踪:
bash复制traceroute google.com
mtr google.com # 更强大的实时追踪工具
5.2 端口与服务
netstat已被ss取代:
bash复制ss -tulnp # 查看所有监听端口
ss -s # 统计信息
curl万能传输工具:
bash复制curl -I example.com # 仅显示HTTP头
curl -o file.zip http://example.com/file.zip # 下载文件
curl -X POST -d 'data' http://api.example.com # POST请求
6. 权限与用户管理
6.1 权限体系
chmod数字与符号两种模式:
bash复制chmod 755 script.sh # rwxr-xr-x
chmod u+x,g-w,o=r file # 用户添加执行,组移除写,其他只读
chown改变所有者:
bash复制chown user:group file # 同时修改用户和组
chown -R www:www /var/www # 递归修改目录所有权
6.2 用户管理
useradd基础命令:
bash复制useradd -m -s /bin/bash newuser # 创建用户并生成主目录
passwd newuser # 设置密码
usermod修改属性:
bash复制usermod -aG sudo newuser # 添加到sudo组
usermod -L newuser # 锁定账户
7. 实用技巧与组合命令
7.1 管道与重定向
|管道符连接多个命令:
bash复制cat access.log | grep "404" | awk '{print $7}' | sort | uniq -c | sort -nr
重定向操作符:
bash复制command > output.txt # 标准输出重定向(覆盖)
command >> log.txt # 追加模式
command 2> error.log # 错误输出重定向
command &> all_output.log # 所有输出重定向
7.2 后台与任务控制
&和nohup:
bash复制long_running.sh & # 后台运行
nohup backup.sh & # 退出终端仍保持运行
jobs和fg:
bash复制jobs # 查看后台任务
fg %1 # 将1号任务调到前台
Ctrl+Z然后bg %1 # 暂停后转为后台运行
8. 环境变量与配置文件
8.1 变量操作
查看与设置:
bash复制echo $PATH # 查看PATH变量
export EDITOR=vim # 临时设置环境变量
永久生效位置:
- 用户级:~/.bashrc, ~/.bash_profile
- 系统级:/etc/environment, /etc/profile
8.2 常用变量
bash复制echo $USER # 当前用户名
echo $HOME # 用户主目录
echo $SHELL # 当前shell
echo $RANDOM # 随机数
9. 软件包管理
9.1 apt(Debian/Ubuntu)
bash复制sudo apt update # 更新软件列表
sudo apt install nginx # 安装软件
sudo apt remove --purge nginx # 完全删除
sudo apt upgrade # 升级所有软件
9.2 yum(RHEL/CentOS)
bash复制sudo yum check-update # 检查更新
sudo yum install httpd # 安装
sudo yum remove httpd # 移除
sudo yum update # 更新所有
10. 命令历史与效率技巧
10.1 历史命令
bash复制history | grep "apt" # 搜索历史命令
!102 # 执行历史中第102条命令
!! # 上一条命令
!$ # 上条命令的最后一个参数
10.2 别名设置
在~/.bashrc中添加:
bash复制alias ll='ls -alF'
alias grep='grep --color=auto'
alias update='sudo apt update && sudo apt upgrade'
10.3 其他效率工具
watch定期执行:
bash复制watch -n 1 'df -h | grep /dev/sda1' # 每秒监控磁盘使用
xargs参数传递:
bash复制find . -name "*.tmp" | xargs rm # 删除所有临时文件
tee双重输出:
bash复制make 2>&1 | tee build.log # 同时输出到屏幕和文件