本文档风哥主要介绍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系统最核心的交互方式,通过文本命令与系统进行交互。
- Shell:命令解释器,负责解析和执行命令
- Terminal:终端,提供输入输出界面
- Prompt:提示符,显示当前状态信息
- Command:命令,用户输入的指令
- Arguments:参数,命令的操作对象
- Options:选项,修改命令行为的标志
1.2 Shell类型与特点
Linux系统支持多种Shell类型: 更多学习教程公众号风哥教程itpux_com
# 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:全屏窗口管理器
Part02-生产环境规划与建议
2.1 CLI环境配置
# 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基础操作
# 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 常用快捷键
# 光标移动快捷键
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 高级功能
# 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使用最佳实践
- 熟练快捷键:掌握常用快捷键,提升操作效率
- 善用历史:充分利用命令历史功能
- 合理别名:为常用命令设置别名
- 会话管理:使用tmux或screen管理会话
- 安全意识:注意命令安全,避免误操作
5.2 常见问题解决
# 问题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 实用工具推荐
# 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
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
