Linux 基础学习
一、Linux 系统概述
1.1 Linux 的起源与发展
Linux 是一种自由和开放源代码的类 Unix 操作系统,诞生于 1991 年 10 月 5 日,由芬兰赫尔辛基大学学生 Linus Torvalds 最初开发。它的诞生源于 Linus 对教学中使用的 MINIX 操作系统的不满,最初只是个人爱好项目。
关键发展节点:
-
1991 年:Linus 在 comp.os.minix 新闻组发布首个 Linux 公告
-
1992 年:Linux 采用 GPL 许可证,吸引全球开发者贡献
-
1994 年:Linux 1.0 内核正式发布
-
2000 年代:成为服务器领域主流操作系统
-
现今:广泛应用于服务器、嵌入式设备、超级计算机等领域
1.2 Linux 与 Unix 的关系
Linux 是基于 Unix 设计理念开发的,但不是 Unix 的直接衍生版本。主要区别:
特性 | Linux | Unix |
---|---|---|
许可证 | 自由开源(GPL) | 多为商业授权 |
开发模式 | 社区协作开发 | 商业公司主导开发 |
硬件支持 | 支持广泛硬件平台 | 通常针对特定硬件 |
成本 | 免费 | 昂贵 |
变体 | 多种发行版 | 少数几个主要版本 |
1.3 Linux 系统的主要应用领域
-
服务器系统:Web 服务器、数据库服务器、DNS 服务器等
-
嵌入式系统:路由器、智能家居设备、工业控制系统
-
高性能计算:90% 的超级计算机运行 Linux
-
桌面系统:如 Ubuntu、Fedora 等桌面发行版
-
移动设备:Android 系统基于 Linux 内核
二、Linux 系统安装指南
2.1 虚拟机安装方案
为什么使用虚拟机学习 Linux?
-
不影响主机系统
-
可创建多个实验环境
-
方便快照和恢复
主流虚拟机软件对比:
软件 | 许可证 | 特点 |
---|---|---|
VMware | 商业 | 功能强大,性能好,收费 |
VirtualBox | 开源 | 免费,功能齐全,适合学习 |
Hyper-V | 商业 | Windows 内置,性能较好 |
2.2 Linux 目录结构详解
Linux 采用单一的树状目录结构,所有分区都挂载到某个目录下。
核心目录功能说明:
目录 | 用途 |
---|---|
/ | 根目录,所有目录的起点 |
/bin | 存放系统基本命令(如 ls、cp 等) |
/boot | 系统启动相关文件(内核、引导程序等) |
/dev | 设备文件目录 |
/etc | 系统配置文件存放目录 |
/home | 普通用户的家目录 |
/lib | 系统库文件存放目录 |
/mnt | 临时挂载点 |
/opt | 可选应用程序安装目录 |
/root | root 用户的家目录 |
/sbin | 系统管理命令存放目录 |
/tmp | 临时文件目录 |
/usr | 用户程序安装目录 |
/var | 经常变化的文件(如日志、邮件等) |
三、Linux 基础命令全解
3.1 文件与目录操作命令
1. 目录切换命令 cd
cd /path/to/dir # 切换到指定目录
cd .. # 返回上级目录
cd ~ # 返回当前用户家目录
cd - # 返回上次所在目录
cd / # 切换到根目录
2. 目录内容查看命令 ls/ll
ls # 简单列出当前目录内容
ls -l # 详细列表显示(等同于 ll)
ls -a # 显示所有文件(包括隐藏文件)
ls -lh # 人性化显示文件大小
ls -lt # 按时间排序显示
3. 目录创建与删除
mkdir dirname # 创建目录
mkdir -p dir1/dir2 # 递归创建多级目录
rmdir dirname # 删除空目录
3.2 文件操作命令
1. 文件查看命令
cat filename # 显示整个文件内容
more filename # 分页显示文件内容(空格翻页)
less filename # 更强大的分页查看(支持上下翻页)
head -n filename # 显示文件前n行
tail -n filename # 显示文件后n行
tail -f filename # 实时追踪文件变化(查看日志常用)
2. 文件操作命令
touch filename # 创建空文件或更新文件时间戳
cp src dest # 复制文件
mv src dest # 移动或重命名文件
rm filename # 删除文件(有确认提示)
rm -f filename # 强制删除(无提示)
rm -r dirname # 递归删除目录及其内容
3. 文件查找命令
find /path -name "*.txt" # 按名称查找文件
grep "text" filename # 在文件中搜索文本
grep -r "text" /path # 递归搜索目录中的文本
3.3 压缩与解压命令
# 打包
tar -cvf archive.tar /path/to/files# 打包并压缩
tar -zcvf archive.tar.gz /path/to/files# 解压
tar -xvf archive.tar
tar -zxvf archive.tar.gz -C /target/path# zip压缩解压
zip archive.zip file1 file2
unzip archive.zip
四、Vi/Vim 编辑器完全指南
4.1 Vim 的三种模式
-
命令模式:启动后的默认模式,用于执行命令
-
插入模式:编辑文本内容
-
底行模式:用于保存、退出等操作
模式切换:
-
命令模式 → 插入模式:按 i、a、o 等键
-
任何模式 → 命令模式:按 Esc 键
-
命令模式 → 底行模式:按 :
4.2 基本操作命令
1. 光标移动
h/j/k/l # 左/下/上/右移动
0/$ # 行首/行尾
gg/G # 文件开头/结尾
Ctrl+f/b # 向前/后翻页
2. 文本编辑
i # 当前位置插入
a # 下一个位置插入
o # 下方新行插入
x # 删除当前字符
dd # 删除当前行
yy # 复制当前行
p # 粘贴
u # 撤销
Ctrl+r # 重做
3. 保存与退出
:w # 保存
:q # 退出
:wq # 保存并退出
:q! # 强制退出不保存
:w newfile # 另存为
五、Linux 用户与权限管理
5.1 用户管理命令
useradd username # 添加用户
passwd username # 设置密码
userdel username # 删除用户
userdel -r username # 删除用户及家目录
usermod -g groupname username # 修改用户组
5.2 组管理命令
groupadd groupname # 创建组
groupdel groupname # 删除组
gpasswd -a user group # 添加用户到组
gpasswd -d user group # 从组中移除用户
5.3 文件权限详解
权限表示法:
-rwxr-xr-- 1 user group 1024 Jan 1 10:00 file
↑↑↑↑↑↑↑↑↑
││││││││└─ 其他用户权限
││││└─┴─┴─ 所属组权限
│└─┴─┴─┴─ 所有者权限
└─────── 文件类型
权限字母表示:
-
r:读权限(4)
-
w:写权限(2)
-
x:执行权限(1)
权限修改命令:
chmod 755 filename # 数字方式修改权限
chmod u=rwx,g=rx,o=r filename # 字母方式修改
chown user:group filename # 修改所有者和组
六、Linux 系统管理命令
6.1 网络管理
ifconfig # 查看网络配置(新版使用 ip addr)
ping host # 测试网络连通性
netstat -tulnp # 查看网络连接和端口
ss -tulnp # 更现代的端口查看工具
6.2 进程管理
ps aux # 查看所有进程
top # 动态查看进程(类似任务管理器)
kill PID # 终止进程
kill -9 PID # 强制终止进程
pkill processname # 按名称终止进程
6.3 系统监控
df -h # 查看磁盘使用情况
du -sh /path # 查看目录大小
free -h # 查看内存使用
uptime # 查看系统运行时间
七、实用技巧与最佳实践
7.1 管道与重定向
command > file # 输出重定向到文件(覆盖)
command >> file # 输出追加到文件
command1 | command2 # 管道:将command1输出作为command2输入
7.2 命令组合执行
command1 && command2 # command1成功才执行command2
command1 || command2 # command1失败才执行command2
command1; command2 # 顺序执行多个命令
7.3 实用快捷键
Ctrl+C # 终止当前命令
Ctrl+Z # 暂停当前命令(可用fg恢复)
Ctrl+D # 退出当前shell
Tab # 命令/文件名自动补全
history # 查看命令历史
!number # 执行历史记录中第number条命令
八、学习资源推荐
-
在线文档:
-
Linux 官方文档:Linux Kernel Documentation
-
Linux man pages 在线版:Linux man pages online
-
-
推荐书籍:
-
《鸟哥的Linux私房菜》- 基础学习篇
-
《Linux命令行与shell脚本编程大全》
-
-
实践平台:
-
OverTheWire Bandit:OverTheWire: Bandit
-
Linux Journey:Home | Linux Journey
-
-
社区论坛:
-
Linux 中国:https://linux.cn/
-
Stack Overflow:https://stackoverflow.com/
-