上一篇
linux终端如何执行命令
- Linux
- 2025-08-07
- 4
在 Linux 终端中,输入命令后按 Enter 键即可执行,支持命令、选项及参数
终端的基础认知
1 什么是终端?
终端(Terminal)本质是一个文本界面程序,用于接收用户输入的命令并传递给内核执行,最终将结果返回给用户,现代Linux发行版默认提供仿真终端窗口(如GNOME Terminal),其行为与早期物理终端设备一致。
2 启动终端的方式
方法 | 适用场景 | 备注 |
---|---|---|
快捷键 Ctrl+Alt+T |
桌面环境快速启动 | 多数主流发行版支持 |
应用菜单搜索 | 图形化界面操作 | 适合不熟悉快捷键的用户 |
SSH远程登录 | 管理服务器或远程主机 | 需提前配置网络及认证信息 |
TTY虚拟控制台 | 系统故障排查(Ctrl+Alt+F1~F6 ) |
脱离图形界面的基础运维入口 |
命令执行的核心规则
1 基本语法结构
一条完整的Linux命令通常由以下四部分组成:
命令名称 [选项参数] [操作对象] # 注释说明
- 命令名称:预编译好的可执行文件(如
ls
,cp
) - 选项参数:以或开头的功能开关(如
-l
表示长格式输出) - 操作对象:命令作用的目标(如文件路径、用户名)
- 注释符号会被忽略,用于说明用途
2 命令执行流程
- 解析阶段:Shell(如Bash)将输入拆解为命令+参数+对象
- 查找阶段:根据
PATH
环境变量定位可执行文件路径 - 执行阶段:加载程序到内存并运行
- 反馈阶段:返回退出状态码(0=成功,非0=错误)
3 关键要素详解
要素 | 示例 | 作用说明 |
---|---|---|
自动补全 | 输入lo 后按Tab→自动补全为locate |
提升输入效率,减少拼写错误 |
命令历史 | 方向键浏览历史记录 | 快速复用之前执行过的命令 |
通配符 | file.txt |
匹配多个文件名(代表任意字符) |
转义字符 | 特殊符号(如空格、 |
|
后台运行 | command & |
将任务放入后台执行,释放终端控制权 |
常用命令分类与实例
1 文件与目录操作
命令 | 功能描述 | 典型示例 |
---|---|---|
ls |
列出目录内容 | ls -l /home → 显示详细信息 |
cd |
切换工作目录 | cd ~/Documents → 跳转至文档目录 |
pwd |
显示当前路径 | pwd → 输出完整路径 |
mkdir |
创建新目录 | mkdir projects → 新建projects目录 |
rm |
删除文件/目录 | rm -r old_dir → 递归删除目录 |
cp |
复制文件/目录 | cp file.txt backup/ → 复制到备份目录 |
mv |
移动/重命名文件 | mv oldname.txt newname.txt |
touch |
创建空文件或更新时间戳 | touch test.log → 生成日志文件 |
2 文本处理与查看
命令 | 功能描述 | 典型示例 |
---|---|---|
cat |
连续显示文件内容 | cat config.yaml → 查看配置文件 |
more/less |
分页查看长文本 | less large_file.log → 逐屏滚动查看 |
head |
显示文件前N行 | head -n 10 data.csv → 查看前10行 |
tail |
显示文件后N行 | tail -f error.log → 实时监控日志 |
grep |
搜索含特定字符串的行 | grep "error" system.log → 查找错误 |
sort |
对文本进行排序 | sort numbers.txt → 数值升序排列 |
wc |
统计行数、单词数、字节数 | wc -l report.md → 统计行数 |
3 系统管理与监控
命令 | 功能描述 | 典型示例 |
---|---|---|
top |
实时显示进程资源占用 | top -u user → 查看指定用户的进程 |
ps |
静态查看当前进程快照 | ps aux → 显示所有进程详细信息 |
kill |
终止指定进程 | kill -9 PID → 强制终止进程 |
df |
查看磁盘空间使用情况 | df -h → 人类可读格式显示分区信息 |
du |
查看目录/文件占用空间 | du -sh /var/log → 统计日志目录大小 |
free |
查看内存使用情况 | free -m → 以MB为单位显示内存信息 |
shutdown |
关机/重启系统 | shutdown -r now → 立即重启 |
进阶操作技巧
1 管道与重定向
- 管道符 :将前一个命令的输出作为后一个命令的输入
cat access.log | grep "404" | sort | uniq -c # 统计404错误的来源IP及次数
- 重定向符号:
>
:覆盖写入文件(command > output.txt
)>>
:追加写入文件(echo "new line" >> output.txt
)2>&1
:将错误输出合并到标准输出(ls nonexistent_file 2>&1 > errors.log
)
2 脚本编写基础
创建一个简单的备份脚本:
#!/bin/bash BACKUP_DIR="/backups/$(date +%Y%m%d)" mkdir -p "$BACKUP_DIR" cp -r /important_data/ "$BACKUP_DIR" echo "Backup completed at $(date)" > "$BACKUP_DIR/summary.log"
保存为backup.sh
后,赋予执行权限:chmod +x backup.sh
,即可直接运行。
3 权限控制
- 查看权限:
ls -l filename
→ 第一列显示权限(如-rwxr-xr--
) - 修改权限:
chmod 755 script.sh
→ 所有者可读写执行,组和其他用户可读执行 - 切换用户身份:
sudo command
→ 以root权限执行单条命令;su username
→ 切换到指定用户环境
实战案例演示
案例1:批量压缩日志文件
需求:将/var/log/
目录下所有.log
文件压缩为.gz
格式,并保留原始文件。
for logfile in /var/log/.log; do gzip -k "$logfile" # -k选项保留原文件 done
案例2:定时任务设置
需求:每天凌晨2点清理/tmp/
目录下超过7天的文件。
- 编辑crontab:
crontab -e
- 添加规则:
0 2 find /tmp/ -type f -mtime +7 -exec rm {} ;
- 保存退出,系统会自动创建定时任务。
相关问答FAQs
Q1: 我忘记了root密码,如何在Linux中重置?
A: 此操作需物理访问主机或具有恢复模式权限,步骤如下:
- 重启系统,在GRUB菜单选择“Recovery Mode”(恢复模式)
- 进入单用户模式(不启动图形界面)
- 挂载根分区为可写文件系统:
mount -o remount,rw /
- 执行密码重置:
passwd root
,按提示设置新密码 - 重启系统:
exec /sbin/init
️ 注意:此方法仅适用于本地机器,云服务器需通过控制台或VNC实现。
Q2: 为什么有些命令提示“Command not found”?
A: 可能原因及解决方法:
| 原因 | 解决方案 |
|————————–|————————————————————————–|
| 命令未安装 | 根据发行版使用包管理器安装(如Debian系用apt install curl
) |
| PATH环境变量缺失 | 检查echo $PATH
是否包含命令所在路径,必要时添加至~/.bashrc
|
| 拼写错误或大小写问题 | Linux命令区分大小写,确认拼写正确(如Ls
≠ls
) |
| 别名冲突 | 使用type command
查看实际调用的命令,检查