1. 首页 > Linux教程 > 正文

Linux教程FG046-Linux命令行界面(CLI)基础操作与快捷键

本文档风哥主要介绍Linux命令行界面(CLI)的基础操作与快捷键,包括Shell基本概念、终端操作技巧、快捷键使用、命令历史管理等内容,参考Red Hat Enterprise Linux 10官方文档,适合运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn 学习交流加群风哥QQ113257174

参考Red Hat Enterprise Linux 10官方文档中的System administration章节 from LinuxDBA视频:www.itpux.com

Part01-基础概念与理论知识

1.1 CLI基本概念

CLI(Command Line Interface,命令行界面)是Linux系统最核心的交互方式,通过文本命令与系统进行交互。

CLI的核心组件:

  • Shell:命令解释器,负责解析和执行命令
  • Terminal:终端,提供输入输出界面
  • Prompt:提示符,显示当前状态信息
  • Command:命令,用户输入的指令
  • Arguments:参数,命令的操作对象
  • Options:选项,修改命令行为的标志

1.2 Shell类型与特点

Linux系统支持多种Shell类型: 更多学习教程公众号风哥教程itpux_com

# 查看系统可用的Shell
# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/dash
/bin/zsh
/usr/bin/zsh

# 查看当前使用的Shell
# echo $SHELL
/bin/bash

# 查看Bash版本
# bash –version
GNU bash, version 5.1.8(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

# 常见Shell类型对比
Bash (Bourne Again Shell)
– RHEL默认Shell
– 功能丰富,兼容性好
– 支持命令补全、历史记录

Zsh (Z Shell)
– 功能强大,可定制性强
– 更智能的自动补全
– 主题和插件丰富

Dash (Debian Almquist Shell)
– 轻量级,启动快
– POSIX兼容
– 适合脚本执行

1.3 终端模拟器

终端模拟器是图形界面下的CLI访问工具: 学习交流加群风哥微信: itpux-com

  • GNOME Terminal:GNOME桌面默认终端
  • Konsole:KDE桌面默认终端
  • xterm:X Window系统原始终端
  • Tmux:终端复用器,支持会话管理
  • Screen:全屏窗口管理器
风哥提示:熟练掌握CLI操作是Linux运维的基础,建议多练习快捷键和命令组合,提升工作效率。

Part02-生产环境规划与建议

2.1 CLI环境配置

# 配置Bash环境

# 1. 配置文件说明
/etc/profile # 系统全局配置
/etc/bashrc # 系统全局Bash配置
~/.bash_profile # 用户个人配置
~/.bashrc # 用户个人Bash配置
~/.bash_logout # 用户退出时执行

# 2. 自定义提示符
# 编辑 ~/.bashrc
export PS1='[\u@\h \W]\$ ‘
# \u – 用户名
# \h – 主机名
# \W – 当前目录
# \$ – 提示符($或#)

# 彩色提示符
export PS1=’\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ ‘

# 3. 配置历史命令
export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTCONTROL=ignoredups:erasedups
export HISTTIMEFORMAT=”%F %T ”

# 4. 配置别名
alias ll=’ls -lh’
alias la=’ls -Ah’
alias l=’ls -CF’
alias grep=’grep –color=auto’
alias fgrep=’fgrep –color=auto’
alias egrep=’egrep –color=auto’

# 5. 使配置生效
# source ~/.bashrc

2.2 提升效率的技巧

提升CLI使用效率的技巧:

  • Tab补全:自动补全命令和文件名
  • 历史搜索:快速查找历史命令
  • 命令别名:简化常用命令
  • 管道组合:组合多个命令
  • 通配符:批量操作文件

2.3 安全注意事项

CLI使用安全注意事项:

  • 避免root登录:使用普通用户,需要时切换
  • 命令确认:执行重要命令前仔细检查
  • 历史记录:敏感命令不要记录到历史
  • 会话锁定:离开时锁定终端

Part03-生产环境项目实施方案

3.1 CLI基础操作

# CLI基础操作演示

# 1. 登录系统
# ssh user@hostname
user@hostname’s password:
Last login: Fri Apr 2 16:00:00 2026 from 192.168.1.100
[user@gf-linux-server ~]$

# 2. 查看当前目录
# pwd
/home/user

# 3. 切换目录
# cd /tmp
# pwd
/tmp

# cd – # 返回上一个目录
/home/user

# cd ~ # 返回家目录
# pwd
/home/user

# cd .. # 返回上级目录
# pwd
/home

# 4. 查看文件列表
# ls
Desktop Documents Downloads Music Pictures Public Templates Videos

# ls -l
total 0
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Desktop
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Documents
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Downloads
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Music
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Pictures
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Public
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Templates
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Videos

# ls -la
total 16
drwx——. 10 user user 232 Apr 2 10:00 .
drwxr-xr-x. 3 root root 17 Apr 2 09:00 ..
-rw——-. 1 user user 16 Apr 2 10:00 .bash_history
-rw-r–r–. 1 user user 18 Apr 2 09:00 .bash_logout
-rw-r–r–. 1 user user 141 Apr 2 09:00 .bash_profile
-rw-r–r–. 1 user user 492 Apr 2 10:00 .bashrc
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Desktop

# 5. 创建文件和目录
# mkdir test_dir
# ls -l | grep test_dir
drwxr-xr-x. 2 user user 6 Apr 2 16:00 test_dir

# touch test_file.txt
# ls -l test_file.txt
-rw-r–r–. 1 user user 0 Apr 2 16:00 test_file.txt

# 6. 复制和移动
# cp test_file.txt test_dir/
# ls test_dir/
test_file.txt

# mv test_file.txt test_file_renamed.txt
# ls -l test_file*
-rw-r–r–. 1 user user 0 Apr 2 16:00 test_file_renamed.txt

# 7. 删除文件和目录
# rm test_file_renamed.txt
# ls test_file*
ls: cannot access ‘test_file*’: No such file or directory

# rm -r test_dir
# ls -l | grep test_dir

3.2 常用快捷键

# Bash常用快捷键

# 光标移动快捷键
Ctrl + A # 移动到行首
Ctrl + E # 移动到行尾
Ctrl + B # 向后移动一个字符
Ctrl + F # 向前移动一个字符
Alt + B # 向后移动一个单词
Alt + F # 向前移动一个单词

# 编辑快捷键
Ctrl + U # 删除从光标到行首的内容
Ctrl + K # 删除从光标到行尾的内容
Ctrl + W # 删除光标前的一个单词
Ctrl + D # 删除光标下的字符
Ctrl + H # 删除光标前的一个字符(同Backspace)
Ctrl + T # 交换光标位置的两个字符
Alt + T # 交换光标位置的两个单词
Alt + U # 将光标后的单词转为大写
Alt + L # 将光标后的单词转为小写
Alt + C # 将光标后的单词首字母大写

# 控制快捷键
Ctrl + L # 清屏
Ctrl + C # 终止当前命令
Ctrl + Z # 暂停当前命令
Ctrl + D # 退出当前Shell(无命令时)

# 历史命令快捷键
Ctrl + R # 搜索历史命令
Ctrl + P # 上一条历史命令(同上箭头)
Ctrl + N # 下一条历史命令(同下箭头)
Alt + . # 使用上一条命令的最后一个参数
Alt + < # 移动到历史命令的第一条 Alt + > # 移动到历史命令的最后一条

# 自动补全快捷键
Tab # 自动补全命令或文件名
Tab Tab # 显示所有可能的补全选项
Alt + ? # 显示所有可能的补全选项
Alt + * # 插入所有可能的补全选项

# 实际操作示例:
# [user@gf-linux-server ~]$ echo “Hello World”
Hello World

# 使用Ctrl+A移动到行首,Ctrl+E移动到行尾
# [user@gf-linux-server ~]$ echo “Hello World”
# 按Ctrl+A后光标移动到e前面
# [user@gf-linux-server ~]$ |echo “Hello World”

# 使用Ctrl+U删除到行首
# [user@gf-linux-server ~]$ echo “Hello World”
# 按Ctrl+U后
# [user@gf-linux-server ~]$

# 使用Ctrl+R搜索历史
# (reverse-i-search)`’: echo
# 输入echo后显示匹配的历史命令
# (reverse-i-search)`echo’: echo “Hello World”

# 使用Tab补全
# [user@gf-linux-server ~]$ cd /ho
# 自动补全为:
# [user@gf-linux-server ~]$ cd /home/

3.3 高级功能

# Bash高级功能

# 1. 命令历史管理
# 查看历史命令
# history
1 ls -la
2 cd /tmp
3 pwd
4 echo “Hello World”
5 history

# 执行历史命令
# !1 # 执行第1条历史命令
ls -la
total 16
drwx——. 10 user user 232 Apr 2 10:00 .

# !! # 执行上一条命令
ls -la

# !echo # 执行最近的echo命令
echo “Hello World”
Hello World

# 2. 命令替换
# 使用命令输出作为参数
# echo “Current directory: $(pwd)”
Current directory: /home/user

# echo “Current date: `date`”
Current date: Fri Apr 2 16:30:00 CST 2026

# 3. 管道与重定向
# 管道:将一个命令的输出作为另一个命令的输入
# ls -l | grep “Apr 2”
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Desktop
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Documents
-rw-r–r–. 1 user user 0 Apr 2 16:00 test_file.txt

# 重定向:将输出保存到文件
# ls -l > file_list.txt
# cat file_list.txt
total 0
drwxr-xr-x. 2 user user 6 Apr 2 10:00 Desktop

# 追加重定向
# echo “New line” >> file_list.txt

# 错误重定向
# ls /nonexistent 2> error.txt
# cat error.txt
ls: cannot access ‘/nonexistent’: No such file or directory

# 4. 后台执行
# 在命令后加&,在后台执行
# sleep 100 &
[1] 12345

# 查看后台任务
# jobs
[1]+ Running sleep 100 &

# 将后台任务调到前台
# fg %1
sleep 100

# 暂停前台任务(Ctrl+Z)
# sleep 100
^Z
[1]+ Stopped sleep 100

# 将暂停的任务放到后台
# bg %1
[1]+ sleep 100 &

# 5. 通配符
# * 匹配任意字符
# ls *.txt
file_list.txt test_file.txt

# ? 匹配单个字符
# ls test_?.txt
test_file.txt

# [] 匹配字符集合
# ls [a-z]*.txt
file_list.txt test_file.txt

# {} 匹配多个模式
# ls {test,file}*.txt
file_list.txt test_file.txt

# 6. 引号使用
# 单引号:保留字面值
# echo ‘$HOME’
$HOME

# 双引号:允许变量扩展
# echo “$HOME”
/home/user

# 反引号:命令替换
# echo `date`
Fri Apr 2 16:30:00 CST 2026

Part04-生产案例与实战讲解

4.1 案例1:高效命令编辑

# 高效命令编辑实战

# 场景:需要修改一个长命令

# 原始命令
# systemctl restart httpd.service && systemctl enable httpd.service && firewall-cmd –permanent –add-service=http && firewall-cmd –reload

# 使用快捷键编辑:
# 1. Ctrl+A 移动到行首
# 2. Ctrl+F 向右移动到httpd
# 3. Ctrl+W 删除httpd
# 4. 输入nginx
# 5. Ctrl+E 移动到行尾
# 6. 重复上述步骤修改其他部分

# 最终命令
# systemctl restart nginx.service && systemctl enable nginx.service && firewall-cmd –permanent –add-service=http && firewall-cmd –reload

# 使用历史命令扩展
# !!:s/httpd/nginx/
systemctl restart nginx.service && systemctl enable nginx.service && firewall-cmd –permanent –add-service=http && firewall-cmd –reload

# 使用参数复用
# ls /var/log/messages
# vim !$
vim /var/log/messages

# ls /etc/sysconfig/network-scripts/ifcfg-ens33
# cat !$:h/ifcfg-ens34
cat /etc/sysconfig/network-scripts/ifcfg-ens34

4.2 案例2:历史命令管理

# 历史命令管理实战

# 1. 配置历史命令
# 编辑 ~/.bashrc
# cat >> ~/.bashrc << 'EOF' # 历史命令配置 export HISTSIZE=5000 export HISTFILESIZE=10000 export HISTCONTROL=ignoreboth export HISTIGNORE="ls:cd:pwd:exit:clear" export HISTTIMEFORMAT="%F %T " # 实时保存历史命令 shopt -s histappend PROMPT_COMMAND="history -a; history -n; $PROMPT_COMMAND" EOF # source ~/.bashrc # 2. 查看带时间戳的历史命令 # history | tail -10 491 2026-04-02 16:00:00 ls -la 492 2026-04-02 16:05:00 cd /tmp 493 2026-04-02 16:10:00 pwd 494 2026-04-02 16:15:00 vim /etc/hosts 495 2026-04-02 16:20:00 systemctl restart nginx 496 2026-04-02 16:25:00 firewall-cmd --reload 497 2026-04-02 16:30:00 history | tail -10 # 3. 搜索历史命令 # history | grep "systemctl" 495 2026-04-02 16:20:00 systemctl restart nginx 498 2026-04-02 16:30:00 history | grep "systemctl" # 使用Ctrl+R交互式搜索 # (reverse-i-search)`systemctl': systemctl restart nginx # 4. 清除历史命令 # history -c # 清除内存中的历史 # history -w # 写入历史文件 # 删除特定历史记录 # history -d 495 # 删除第495条记录 # 5. 忽略特定命令 # 在命令前加空格,不会被记录到历史 # secret-command-with-password

4.3 案例3:多任务管理

# 多任务管理实战

# 1. 后台运行长时间任务
# tar -czf backup.tar.gz /home &
[1] 12345

# 查看后台任务
# jobs
[1]+ Running tar -czf backup.tar.gz /home &

# 2. 使用nohup防止任务中断
# nohup tar -czf backup.tar.gz /home > backup.log 2>&1 &
[2] 12346

# 查看任务输出
# tail -f backup.log
/home/user/
/home/user/.bashrc
/home/user/.bash_profile

# 3. 使用tmux管理会话
# 安装tmux
# dnf install -y tmux

# 创建新会话
# tmux new -s work

# 分屏操作
Ctrl+B % # 垂直分屏
Ctrl+B ” # 水平分屏
Ctrl+B 方向键 # 切换窗格

# 分离会话
Ctrl+B d

# 列出会话
# tmux ls
work: 1 windows (created Fri Apr 2 16:30:00 2026)

# 重新连接会话
# tmux attach -t work

# 4. 使用screen管理会话
# 安装screen
# dnf install -y screen

# 创建新会话
# screen -S backup

# 分离会话
Ctrl+A d

# 列出会话
# screen -ls
There is a screen on:
12347.backup (Detached)

# 重新连接会话
# screen -r backup

# 5. 监控后台任务
# ps aux | grep tar
user 12345 2.5 0.5 123456 12345 pts/0 D 16:30 0:05 tar -czf backup.tar.gz /home

# 查看任务资源使用
# top -p 12345
top – 16:35:00 up 1 day, 6:30, 2 users, load average: 0.50, 0.30, 0.15
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.0 id, 1.0 wa, 0.0 hi, 0.0 si
MiB Mem : 7823.5 total, 256.3 free, 2048.2 used, 5519.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 5519.0 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 user 20 0 123456 12345 5678 D 5.0 0.5 0:05.23 tar

Part05-风哥经验总结与分享

5.1 CLI使用最佳实践

CLI使用最佳实践:

  • 熟练快捷键:掌握常用快捷键,提升操作效率
  • 善用历史:充分利用命令历史功能
  • 合理别名:为常用命令设置别名
  • 会话管理:使用tmux或screen管理会话
  • 安全意识:注意命令安全,避免误操作

5.2 常见问题解决

# CLI常见问题解决

# 问题1: 命令找不到
# command not found: xyz
# 解决方法:
# 1. 检查命令是否安装
which xyz
rpm -qa | grep xyz

# 2. 检查PATH环境变量
echo $PATH

# 3. 安装缺失的命令
dnf install xyz

# 问题2: 权限不足
# Permission denied
# 解决方法:
# 1. 检查文件权限
ls -l filename

# 2. 使用sudo执行
sudo command

# 3. 修改文件权限
chmod +x filename

# 问题3: 终端卡死
# 解决方法:
# 1. 尝试Ctrl+C终止命令
# 2. 尝试Ctrl+Z暂停命令
# 3. 使用另一个终端kill进程
ps aux | grep command
kill -9 PID

# 问题4: 历史命令丢失
# 解决方法:
# 1. 检查历史文件
ls -la ~/.bash_history

# 2. 检查历史配置
echo $HISTSIZE
echo $HISTFILESIZE

# 3. 手动保存历史
history -w

5.3 实用工具推荐

# CLI实用工具推荐

# 1. 终端复用器
tmux # 现代终端复用器
screen # 传统终端复用器

# 2. Shell增强
zsh # 功能强大的Shell
oh-my-zsh # Zsh配置框架
fish # 友好的交互式Shell

# 3. 命令增强
htop # 增强的top
ncdu # 磁盘使用分析
tig # Git文本界面
ranger # 文件管理器

# 4. 自动补全
bash-completion # Bash补全增强
fzf # 模糊搜索工具

# 安装示例
# dnf install -y tmux htop ncdu tig ranger fzf

风哥总结:CLI是Linux运维的核心技能,熟练掌握快捷键和高级功能可以大幅提升工作效率。建议每天练习使用快捷键,逐步形成肌肉记忆。同时要注意安全,避免在生产环境中执行危险命令。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息