当前位置:首页 > Linux > 正文

linux终端如何执行命令

在 Linux 终端中,输入命令后按 Enter 键即可执行,支持命令、选项及参数

终端的基础认知

1 什么是终端?

终端(Terminal)本质是一个文本界面程序,用于接收用户输入的命令并传递给内核执行,最终将结果返回给用户,现代Linux发行版默认提供仿真终端窗口(如GNOME Terminal),其行为与早期物理终端设备一致。

2 启动终端的方式

方法 适用场景 备注
快捷键 Ctrl+Alt+T 桌面环境快速启动 多数主流发行版支持
应用菜单搜索 图形化界面操作 适合不熟悉快捷键的用户
SSH远程登录 管理服务器或远程主机 需提前配置网络及认证信息
TTY虚拟控制台 系统故障排查(Ctrl+Alt+F1~F6 脱离图形界面的基础运维入口

命令执行的核心规则

1 基本语法结构

一条完整的Linux命令通常由以下四部分组成:

命令名称 [选项参数] [操作对象] # 注释说明
  • 命令名称:预编译好的可执行文件(如ls, cp
  • 选项参数:以或开头的功能开关(如-l表示长格式输出)
  • 操作对象:命令作用的目标(如文件路径、用户名)
  • 注释符号会被忽略,用于说明用途

2 命令执行流程

  1. 解析阶段:Shell(如Bash)将输入拆解为命令+参数+对象
  2. 查找阶段:根据PATH环境变量定位可执行文件路径
  3. 执行阶段:加载程序到内存并运行
  4. 反馈阶段:返回退出状态码(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 脚本编写基础

创建一个简单的备份脚本:

linux终端如何执行命令  第1张

#!/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天的文件。

  1. 编辑crontab:crontab -e
  2. 添加规则:0 2 find /tmp/ -type f -mtime +7 -exec rm {} ;
  3. 保存退出,系统会自动创建定时任务。

相关问答FAQs

Q1: 我忘记了root密码,如何在Linux中重置?

A: 此操作需物理访问主机或具有恢复模式权限,步骤如下:

  1. 重启系统,在GRUB菜单选择“Recovery Mode”(恢复模式)
  2. 进入单用户模式(不启动图形界面)
  3. 挂载根分区为可写文件系统:mount -o remount,rw /
  4. 执行密码重置:passwd root,按提示设置新密码
  5. 重启系统:exec /sbin/init
    ️ 注意:此方法仅适用于本地机器,云服务器需通过控制台或VNC实现。

Q2: 为什么有些命令提示“Command not found”?

A: 可能原因及解决方法:
| 原因 | 解决方案 |
|————————–|————————————————————————–|
| 命令未安装 | 根据发行版使用包管理器安装(如Debian系用apt install curl) |
| PATH环境变量缺失 | 检查echo $PATH是否包含命令所在路径,必要时添加至~/.bashrc |
| 拼写错误或大小写问题 | Linux命令区分大小写,确认拼写正确(如Lsls) |
| 别名冲突 | 使用type command查看实际调用的命令,检查

0