最近有不少粉丝私信问我 Linux 入门该从哪学起,今天我就把自己整理的 Linux 基础笔记 分享出来,内容包括基础概念、文件系统结构、文件类型与属性、硬链接与软链接、以及最常用的文件目录操作命令。这些内容是我在学习和工作中反复实践总结的,希望能帮到刚接触 Linux 的你。
注意:本文所有代码块和表格均保持原样,图片路径也未修改(由于是本地笔记,图片无法直接显示,请大家对照自己的环境理解)。
一、基础概念
1.1 名词解释
-
命令解析器
默认(缺省)运行于计算机系统的终端,用来解析用户输入命令的工具。常见的有 Bash、Zsh 等。
-
内核
操作系统的核心,笼统地将系统称为内核。内核负责管理硬件资源、进程调度、内存管理等功能。
1.2 终端提示符格式
我们平时看到的命令行提示符长这样:
root@itcast:~$
格式拆解为:用户名@主机名:shell工作路径$
root:当前登录的用户名itcast:主机名~:当前工作目录(家目录的缩写)$:表示普通用户权限;如果是#则表示 root 超级用户
1.3 常用快捷键(效率翻倍)
在终端中,掌握快捷键能大幅提升操作效率。个人强烈推荐以下快捷键:
| 快捷键 | 作用 |
|---|---|
Tab |
自动补全文件名、目录名、命令(最常用!) |
Ctrl + P |
上一条历史命令(Previous) |
Ctrl + N |
下一条历史命令(Next) |
Ctrl + A |
光标移到行首 |
Ctrl + E |
光标移到行尾 |
Ctrl + D |
相当于 Delete 键,删除光标后字符,也可退出当前 shell |
Ctrl + U |
清空光标到行首的内容 |
个人经验 :刚开始记不住没关系,先用
Tab和Ctrl+P/Ctrl+N,慢慢就习惯了。Ctrl+U在输错一长串命令时特别有用。
二、文件系统
2.1 根目录结构(/ 下的常见目录)
Linux 的文件系统是一棵倒挂的树,根为 /。下面列出几个重要的目录:
/bin:存放二进制可执行文件,如date、ls、echo、cat等基本命令。/dev:存放硬件设备对应的文件(鼠标、键盘等)。
Linux 中"所见皆文件" ,硬件设备也以文件形式呈现。
测试命令:sudo cat /etc/input/mice(需输入密码,会输出鼠标移动数据,可以感受一下)/etc:存放系统中的配置文件,比如网络配置、用户密码等。/home:存放普通用户的宿主目录,例如用户itcast的目录是/home/itcast。/lib:存放系统使用的库文件。查看标准 C 库:cd /lib/x86_64-linux-gnu/root:系统管理员(root)的家目录。/tmp:提供给用户使用,存放运行中需要保存的临时文件。重启后可能清空。/usr:存储用户相关的数据资源,应用程序通常安装在此下。
2.2 文件类型
Linux 中有七种文件类型,通过 ls -l 第一个字符区分:
| 符号 | 类型 | 说明 |
|---|---|---|
- |
普通文件 | 文本、二进制等 |
d |
目录文件 | 文件夹 |
l |
软链接文件 | 类似 Windows 快捷方式 |
p |
管道文件 (pipe) | 用于进程间通信 |
s |
套接字文件 (socket) | 网络通信 |
c |
字符设备文件 | 如键盘、鼠标 |
b |
块设备文件 | 如硬盘、光盘 |
注意 :后四种文件是伪文件,不消耗磁盘空间,仅作为接口存在。前三种(普通、目录、软链接)是真正的文件,会占用磁盘空间。
2.3 文件访问属性(权限)
当我们执行 ls -l 时,第一列有 10 个字符,例如 -rwxr-xr--。
- 第 1 个字符:文件类型(
-、d、l等) - 后 9 个字符分为三组,每组
rwx:r:读权限w:写权限x:执行权限(对目录表示可进入)- 没有权限则用
-占位
三组分别对应:
- 所有者(owner):创建文件的用户
- 所属组(group):默认用户创建时自动生成同名组,用户被加入该组
- 其他人(others):既不是所有者也不是所属组的用户
2.4 硬链接与软链接
这是初学者容易混淆的概念,我当初也纠结了好久。下面用通俗的方式总结:
硬链接
-
特性 :源文件和硬链接文件之间具有 "同步更新" 特性。修改其中一个,另一个也会同步变化。
-
创建语法 :
ln 源文件名 硬链接文件名示例:
ln file1 file1.hard -
原理 :Linux 管理文件采用数据化管理。每个文件对应一个 inode(索引节点),硬链接本质上是多个文件名指向同一个 inode。
-
查看文件 inode 号 :
stat 文件名或ls -i 文件名 -
限制 :不能给目录创建硬链接(会破坏文件系统结构)
软链接(符号链接)
-
相当于 Windows 的快捷方式,是一个特殊的文件,存放指向目标文件的路径。
-
创建语法 :
ln -s 文件名 软链接名示例:
ln -s bbb b.soft -
建议 :创建软链接时使用绝对路径,避免搬移后链接失效。
-
优点:可以给目录创建软链接。
个人经验:硬链接常用于备份(节省空间),但日常更常用软链接来快捷访问深层目录或文件。注意删除源文件后软链接会变成"坏链接"。
三、文件与目录操作(最常用的命令)
3.1 ls 命令------列出目录内容
常用参数
| 参数 | 作用 |
|---|---|
-l |
以长格式显示详细信息 |
-a |
显示所有文件(包括隐藏文件,文件名以 . 开头) |
-R |
递归显示子目录 |
-h |
以人类可读方式显示文件大小(如 1K、2M) |
-F |
在文件名后添加类型提示符(如 / 表示目录,* 表示可执行文件) |
-d |
显示目录本身属性,而非目录内容 |
缩写的 ls 相关命令
ll=ls -alF(我直接写了个别名,参考了 Ubuntu 默认配置)la=ls -a
ls -l 输出详解
输出分为七部分:
- 前十个字符:文件类型 + 访问属性
- 硬链接数:文件对应的 inode 被多少个文件名引用
- 文件所有者
- 文件所属组
- 文件大小:普通文件是实际大小;目录文件是目录本身占用的磁盘空间(4K 的整数倍)
- 文件创建/修改时间:如果是新建文件,显示创建时间;如果被修改过,则显示修改时间
- 文件名
3.2 创建文件与目录
- 创建空文件 :
touch 文件名注意 :Linux 不以后缀名判断文件类型(以第一个字符判断),所以qa.cc.a.a.f.a这样的文件名完全合法。 - 创建空目录 :
mkdir 目录名
创建多级目录:mkdir -p a/b/c/d(一次性创建嵌套目录,非常实用)
3.3 删除文件与目录
rmdir ------ 只能删除空目录
rmdir d 要求 d 目录必须为空,否则报错。
rm ------ 危险操作,请谨慎!
rm 删除的文件不能恢复!(虽然可以磁盘恢复,但过程极其复杂)
| 参数 | 作用 |
|---|---|
-r |
递归删除多级子目录内容(目录操作必须加此参数) |
-i |
交互模式,删除前会询问用户 |
-f |
强制删除,不询问 |
个人惨痛教训 :刚学 Linux 时误用
rm -rf /(千万别试!),虽然现代系统有保护,但仍需养成使用-i的习惯,或者用trash-cli代替。
3.4 复制与移动
cp ------ 复制
语法:cp 参数A 参数B
情况一:参数A 为文件
- 参数B 是存在的目录:将 A 文件复制到 B 目录中
- 参数B 不存在且不是目录:将 A 复制并重命名为 B
- 参数B 不存在且是目录:报错(目标目录不存在)
- 参数B 是已存在的文件:A 覆盖 B!(小心)
情况二:参数A 为目录
- 必须添加
-r(递归)或-a(保留所有属性,包括权限、时间戳)
-r:递归复制新建
-a:复制时保留文件默认属性
mv ------ 移动或重命名
mv 命令操作目录时不需要加 -r,非常方便。
- 改名 :
mv 源文件 目标文件,只要目标文件不存在,则直接改名。 - 移动 :
mv 源文件 目标目录,目标目录存在则移动进去。
比如
mv test.txt /home/backup/将文件移动到 backup 目录;mv test.txt newname.txt则直接改名。
总结
以上是 Linux 基础笔记的核心内容,包括:
- 终端快捷键与基础概念
- 文件系统目录结构
- 七种文件类型与权限
- 硬链接与软链接的区别
- 常用文件目录操作命令
掌握这些,你就已经迈出了 Linux 入门的第一步。下一步可以继续深入学习用户管理、权限控制、进程管理等。如果觉得本文对你有帮助,欢迎点赞、收藏、关注,后续我会持续分享更多 Linux 干货。
评论区留下你的疑问,我会一一回复!
Linux 文件查看、用户权限与查找命令实战笔记
大家好,我是你们的老朋友 你的昵称 🧑💻。在日常使用 Linux 的过程中,查看文件内容、管理用户权限、快速定位文件 是最高频的操作。今天我将之前整理的笔记改写成一篇结构清晰的博客,加入了一些踩坑经验,希望能帮到刚入门的小伙伴。
一、文件查看技巧
1. 小文件查看:cat 与 tac
cat 是最基础的查看命令,适合小文件。它还能用作 "快速写入" 或 "内容拼接"。
bash
cat 文件名 # 打印文件内容到屏幕
cat 文件1 > 文件2 # 文件1 覆盖写入文件2(文件2不存在则新建)
cat 文件1 >> 文件2 # 文件1 追加到文件2
tac 文件名 # 倒序输出(行顺序反转)
个人经验 :
cat配合重定向>或>>常用于快速创建小文件或合并日志,但若文件较大,使用cat输出会刷屏,建议用下面的分屏工具。
2. 大文件查看:more 与 less
more:分屏显示,功能简单- 按
Enter下滚一行 - 按
空格下滚一页 - 按
q退出 - ❌ 不支持上下箭头
- 按
less:功能更强,推荐使用- 支持上下箭头逐行滚动
- 支持
/搜索(n跳转下一个) - 按
q退出
bash
more 大文件.log
less 大文件.log
个人经验 :我现在只用
less,尤其是排查问题时的日志搜索功能,比more高效太多。另外记住G跳到最后,gg跳到开头。
3. 预览首尾:head 与 tail
head -5 文件名:显示前 5 行tail -5 文件名:显示后 5 行
这两个命令在检查日志、配置文件头尾时非常常用,tail 加上 -f 还能实时跟踪文件新增内容(如 tail -f /var/log/syslog)。
二、查找命令路径:which
当我们想知道某个命令的可执行文件在哪,比如 python、ls,可以用 which:
bash
which python
# /usr/bin/python
小贴士 :
which仅能查找 PATH 环境变量中的命令,不适用于函数或别名。若查不到可以试试type或whereis。
三、用户与权限管理
1. 用户与用户组操作
添加用户
bash
sudo adduser 用户名
# 依次输入信息,确认密码
执行后系统会:
- 在
/home下创建宿主目录 - 在
/etc/passwd文件末尾添加用户记录(UID、GID、家目录、shell) - 在
/etc/group添加同名用户组
删除用户
bash
sudo deluser 用户名
# 默认同时删除用户组
# /home 下的宿主目录不会自动删除,需手动处理
sudo rm -rf /home/用户名
⚠️ 注意 :
deluser不会删除用户的家目录和邮件池,需要手动清理。删除前最好先确认用户没有运行中进程。
扩展:用户组管理
bash
sudo addgroup 组名 # 添加组
sudo delgroup 组名 # 删除组
2. 修改文件权限:chmod
文字设定法
格式:chmod [who] [+ - =] [mode] 文件名
who:u(owner)、g(group)、o(others)、a(all,默认)+添加权限,-取消,=赋予并清除其他mode:r(读)、w(写)、x(执行)
常用示例:
bash
chmod g+w bbb # 给组添加写权限
chmod o+wx bbb # 给其他用户添加写和执行
chmod u-w,u+x,g-w,o-r,o-x bbb # 多组操作可逗号分隔
chmod u=rwx,g=x,o=rx bbb # 用 = 精确设置
数字设定法
权限对应数字:r=4, w=2, x=1。每组权限范围 0~7。
bash
chmod 463 bbb
# 4(r--) 6(rw-) 3(-wx)
个人经验 :日常我更喜欢用数字法,尤其是
chmod 755或chmod 644,简洁明了。但复杂场景下文字法更易读。
3. 修改所有者和所属组:chown 与 chgrp
bash
sudo chown 用户名 文件名 # 修改文件所有者
sudo chgrp 组名 文件名 # 修改所属组
sudo chown 用户名:组名 文件名 # 一次性修改所有者和组
注意 :修改所有者和组通常需要 root 权限,使用
sudo。
四、查找与过滤
1. find:强大而灵活的文件搜索
按文件名搜索 (-name)
bash
find /home -name "*.txt" # 支持通配符 *
find /home -name "text?.md" # ? 匹配单个字符
按文件类型搜索 (-type)
f:普通文件d:目录p:管道(命名管道)
按文件大小 (-size)
k小写,M/G大写- 范围搜索需两个
-size参数
bash
find ./ -size +3M -size -5M # 大小 3M~5M 的文件
混合多个条件
bash
find ~/ -name "2015.jpg" -size +1k -size -2M
限制搜索深度 (-maxdepth)
注意 :-maxdepth 必须放在其他条件之前,否则会报错。
bash
find ./ -maxdepth 1 -name "a"
将搜索结果传给其他命令执行
方法一:-exec
bash
find ./ -maxdepth 1 -name "a" -size +1k -size -2M -exec ls -lh {} \;
每找到一条就执行一次命令,
{}代表当前文件名,\;结束。
方法二:管道 + xargs(更高效)
bash
find ./ -name "*.jpg" -print0 | xargs -0 ls -lh
-print0 和 -0 用于处理文件名中有空格的特殊情况,强烈建议加上。
个人踩坑 :一开始用
find | xargs遇到包含空格的文件直接报错,后来改用-print0 | xargs -0就稳了。
2. grep:文本内容过滤
笔记中此处未详细记录,仅保留标题。但
grep是与find齐名的搜索工具,常用于在文件内容中匹配模式。基本用法:
bash
grep "关键词" 文件名
grep -r "关键词" 目录/ # 递归搜索
grep -i "关键词" 文件名 # 忽略大小写
更详细内容可查阅 man grep 或后续博客。
总结
| 场景 | 推荐命令 |
|---|---|
| 查看小文件 | cat, tac |
| 查看大文件/日志 | less |
| 查看文件首尾 | head, tail |
| 查找命令路径 | which |
| 管理用户/组 | adduser, deluser, addgroup, delgroup |
| 修改权限 | chmod(数字法快,文字法明晰) |
| 修改所有者/组 | chown, chgrp |
| 搜索文件 | find(按名、大小、类型) |
| 搜索文件内容 | grep |
希望这篇笔记能帮你快速上手这些基础操作。如果你有更好的技巧或踩过的坑,欢迎评论区交流!我们下期见 😄
本文基于个人 Linux 学习笔记整理,如有错误欢迎指正。