Shell 及运行原理
严格来说,Linux 指的是操作系统内核(Kernel),但普通用户无法直接操作内核。我们通常通过'外壳'程序——Shell 与内核沟通。
Shell 是一个命令行解释器(如 Bash、Zsh),充当用户与内核之间的桥梁。用户输入命令,Shell 解析后传递给 Kernel 执行,再将结果返回。Shell 本质是一个进程,会创建子进程解释命令,因此不会因为单条命令错误而崩溃。它既方便用户操作,也能防止非法命令破坏系统。
注意区分:Shell 是 Linux 自带的文本交互界面;Xshell 等则是第三方 SSH 客户端工具,用于远程连接,内部依然通过 Shell 与内核交互。
路径顺序为:用户 → SSH 客户端 → Shell → Kernel。
常用快捷键
- Ctrl+C:终止当前运行的程序。
- Ctrl+D:退出当前登录会话。
- Tab:输入命令开头部分,唯一匹配时自动补全;多个匹配时按两次 Tab 显示选项。
- 上下键:切换历史命令。
- Ctrl+R:搜索历史命令。
- Ctrl+Shift+C/V:在终端客户端中复制/粘贴。
Linux 基础知识
- 目录即文件夹。同一目录下文件不能重名。
- 一切皆文件。Linux 的文件结构是一棵从根目录
/开始的多叉树,叶子节点是文件或空目录。 - 后缀名不敏感。Linux 本身不关心文件后缀,但特定工具(如 gcc)依赖后缀识别类型,建议规范书写。
- 通配符
*:代表任意字符。
基础指令速查
无需死记硬背,熟练后自然形成肌肉记忆。若 CentOS 7 缺少某命令,可通过 yum install -y 命令名 安装。
目录与文件管理
pwd:显示当前工作路径。
- Linux 使用
/作为分隔符,Windows 使用\。 ~表示家目录(root 为/root,普通用户为/home/用户名)。
cd:切换工作目录。
cd 绝对路径:从根目录开始,多用于配置文件。cd 相对路径:如.(当前)或..(上级),日常使用更便捷。cd ~:跳转至家目录。cd -:返回最近访问的目录。
ls:列出目录内容。
-a:显示所有文件,包括隐藏文件(以.开头)。-d:将目录本身视为文件显示,而非其内容。-l:显示详细信息,等同于ll。-t:按修改时间排序。- 权限标识含义:
-普通文件,d目录,c字符设备,b块设备,l链接,p管道。
mkdir:创建目录。
-p:递归创建,若父目录不存在则一并建立。
touch:创建新文件或更新文件时间戳。
-a:仅修改访问时间。-c:仅修改修改时间。
rm:删除文件或目录。
-f:强制删除,不询问。-r:递归删除目录及其内容。-i:删除前逐一确认。- 慎用
rm -rf,该操作不可逆。
rmdir:仅删除空目录。
-p:删除子目录后,若父目录变空则一并删除。
cp:复制文件。
-r:递归拷贝目录。-i:覆盖前询问。- 目标文件不存在则新建,存在则覆盖。
mv:移动或重命名文件。
- 目标不存在时视为重命名;目标存在且为目录时,将源文件移入其中。
-f:强制覆盖,不询问。
文本查看与处理
cat:查看文件内容。
-n:行号编号。-s:合并连续空行。- 输出重定向:
>覆盖写入,>>追加写入。 tac:反向显示文件内容。
echo:输出字符串,自带换行符。
more / less:分页查看文件。
less支持随意浏览,比more更灵活。less中可输入/向下搜索,?向上搜索,q退出。
head / tail:查看文件首尾。
head默认显示前 10 行。tail默认显示后 10 行,常用于实时查看日志。-f:循环读取,实时更新内容。- 管道符
|可组合命令,如cat file | tail。
时间与系统信息
date:显示或设置时间。
date +%s:获取当前时间戳。date -d "时间" +%s:指定时间转时间戳。date -d @时间戳:时间戳转可读格式。
uname:查看系统信息。
-r:显示内核版本号。-a:显示完整系统信息(内核、主机名、架构等)。
搜索与定位
find:递归搜索文件。
-name:按文件名查找。-type f/d:限定文件类型(文件/目录)。
grep:在文件中搜索字符串。
-i:忽略大小写。-n:显示匹配行号。-v:反向选择,显示不匹配的行。
which / whereis:定位命令位置。
which:搜索系统命令路径。whereis:快速定位二进制文件、源码和手册页。
压缩与解压
zip / unzip:
zip -r a.zip dir/:递归压缩目录。unzip a.zip -d target/:解压到指定目录。
tar:Linux 最常用的打包工具。
- 压缩:
tar czf file.tgz src - 解压:
tar xzf file.tgz -C /tmp/ -v:显示过程,-C:指定解压路径。- 注意
f参数后紧跟文件名。
rz/sz:
- 需安装
lrzsz包,用于本地与远程传输文件。 - 跨平台传输压缩包可使用
scp命令。
其他实用工具
bc:简单的计算器,支持管道计算。
tree:以树状结构显示目录层级。

