命令行界面(Command Line Interface)作为人机交互的经典方式,至今仍在开发运维、系统管理等领域占据核心地位。与图形界面(GUI)相比,CLI通过纯文本指令实现精准控制,特别适合自动化脚本编写和批量操作场景。现代操作系统如Linux、macOS的终端(Terminal)和Windows的命令提示符(CMD/PowerShell)都是CLI的典型载体。
注意:不同操作系统的CLI语法存在差异,本文示例以Linux/bash环境为主,但原理通用
典型CLI命令由四个核心部分组成:
code复制command [options] [arguments] [redirections]
ls、grep)-或--开头)>, |等)示例命令深度拆解:
bash复制grep -i "error" /var/log/syslog > errors.txt 2>&1
grep:文本搜索命令-i:忽略大小写选项"error":搜索模式/var/log/syslog:搜索目标文件>:输出重定向errors.txt:输出文件2>&1:错误输出合并到标准输出bash复制# 带权限查看目录内容(-l详情模式,-h人性化文件大小)
ls -lh /path/to/directory
# 递归复制目录结构(-r递归,-v显示过程)
cp -rv source_dir/ destination_dir/
# 查找并删除7天前的日志文件
find /var/log -name "*.log" -mtime +7 -exec rm {} \;
bash复制# grep过滤包含关键字的行(-n显示行号)
grep -n "critical" server.log
# sed流编辑器替换文本(-i直接修改文件)
sed -i 's/old_string/new_string/g' config.ini
# awk字段处理器(打印第1列和第4列)
awk '{print $1,$4}' data.csv
bash复制# 动态查看进程(-u按CPU排序)
top -u
# 磁盘空间检查(-h可读格式)
df -h
# 内存使用情况
free -m
通过管道(pipe)将多个命令串联:
bash复制# 统计当前目录下.py文件的行数总和
find . -name "*.py" | xargs wc -l | tail -1
find定位文件xargs将结果作为参数传递wc统计行数tail取最终汇总行bash复制# 设置临时环境变量(当前会话有效)
export TEMP_DIR="/tmp/mydata"
# 在命令中使用变量
tar -czf ${TEMP_DIR}/backup.tar.gz /important/data
bash复制# 反向搜索历史命令(Ctrl+R)
(reverse-i-search)`grep`: grep -i "error" app.log
# 快速执行上条命令(!!)
sudo !!
# 引用上次命令的参数(!$)
vim !$
bash复制# 查看文件权限(ls -l输出解析)
-rwxr-xr-- 1 user group 1024 Jun 1 10:00 script.sh
-普通文件,d目录)bash复制# 查找占用80端口的进程
lsof -i :80
# 强制终止进程树
pkill -9 -P parent_pid
bash复制# 测试端口连通性
nc -zv example.com 443
# 跟踪路由路径
traceroute google.com
# 查看本地监听端口
netstat -tulnp
bash复制# ~/.bashrc配置示例
export PS1="\[\e[32m\]\u@\h \[\e[34m\]\w\[\e[0m\]\$ "
alias ll='ls -alF'
export PATH=$PATH:~/bin
bash复制#!/bin/bash
# 自动备份脚本示例
BACKUP_DIR="/backups/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
rsync -avz /data/ $BACKUP_DIR
find /backups -type d -mtime +30 | xargs rm -rf
| 组合键 | 功能描述 |
|---|---|
| Ctrl + A | 移动到行首 |
| Ctrl + E | 移动到行尾 |
| Ctrl + U | 清除到行首 |
| Ctrl + K | 清除到行尾 |
| Ctrl + W | 删除前一个单词 |
| Alt + B | 向后移动一个单词 |
| Alt + F | 向前移动一个单词 |
掌握CLI的本质在于理解其"组合哲学"——通过简单命令的有机组合解决复杂问题。建议从每天完成一个实际任务开始(如日志分析、批量重命名),逐步积累命令组合经验。当你能流畅使用管道和重定向时,就真正进入了CLI的高效世界。