跳到主要内容Linux 零基础入门:操作系统核心概念详解 | 极客日志Shell / Bash
Linux 零基础入门:操作系统核心概念详解
Linux 是一个免费开源的类 Unix 操作系统内核,广泛应用于服务器和云计算领域。本文从零开始介绍 Linux 的核心概念,涵盖主流发行版如 Ubuntu、CentOS 及 Arch 的特点与选择。内容包含在虚拟机或 WSL 中安装 Linux 的方法,终端基础操作命令(pwd, ls, cd, chmod 等),文件系统结构,用户权限管理,软件包管理工具(apt, dnf, pacman),以及 Vim 编辑器使用。此外还涉及进程管理、网络配置、Shell 脚本编写、环境变量设置、日志系统、systemd 服务管理及安全基础。最后提供开发环境搭建指南(Git, Python, Docker)和故障排查思路,帮助初学者快速掌握 Linux 系统操作技能。
Linux 零基础快速认识 Linux 操作系统
'Talk is cheap. Show me the code.' —— Linus Torvalds
Linux 不仅是一个操作系统,更是一种自由、开放与协作的精神。无论你是程序员、运维工程师、数据科学家,还是普通用户,掌握 Linux 都将为你打开通往技术世界的大门。
什么是 Linux?
Linux 是一个免费开源的类 Unix 操作系统内核(Kernel),由芬兰程序员 Linus Torvalds 在 1991 年首次发布。它本身只是一个内核,但通常我们所说的'Linux 系统'实际上是指基于 Linux 内核 + GNU 工具 + 各种软件构成的完整操作系统,例如 Ubuntu、CentOS、Debian、Fedora 等。这类系统也常被称为 GNU/Linux。
Linux 的核心特点
- 开源免费:源代码公开,任何人都可以查看、修改和分发。
- 多用户多任务:支持多个用户同时登录并运行多个程序。
- 稳定性强:服务器常年运行不宕机,是互联网基础设施的基石。
- 安全性高:权限管理严格,病毒和恶意软件极少。
- 高度可定制:从桌面环境到内核参数,几乎一切皆可配置。
- 跨平台支持:可在 x86、ARM、RISC-V 等多种架构上运行。
💡 你知道吗?全球超过 90% 的云计算基础设施(包括 AWS、Google Cloud、阿里云)都运行在 Linux 上。Android 手机底层也是基于 Linux 内核!
Linux 与 Windows/macOS 有什么区别?
| 特性 | Windows | macOS | Linux |
|---|
| 开源 | ❌ 闭源 | ❌ 闭源(部分开源) | ✅ 完全开源 |
| 成本 | 💰 商业授权 | 💰 购买 Mac 设备 | 🆓 免费 |
| 定制性 | 低 | 中等 | 极高 |
| 命令行体验 | PowerShell / CMD(较弱) | Terminal(基于 BSD) | Bash/Zsh(强大) |
| 软件生态 | 丰富(尤其游戏/办公) | 优秀(创意类软件) | 开发/服务器领域无敌 |
| 安全性 | 易受病毒攻击 | 较安全 | 极其安全 |
📌 提示:Linux 并不是'取代'Windows 或 macOS,而是提供一种更可控、更高效、更适合开发者的操作环境。
常见的 Linux 发行版(Distributions)
Linux 内核本身不能直接使用,需要搭配用户空间工具(如 Shell、文件系统、图形界面等)。这些组合体称为发行版(Distribution)。以下是几个主流发行版:
1. Ubuntu
2. CentOS / Rocky Linux
- 原 CentOS 是 Red Hat Enterprise Linux(RHEL)的免费克隆版。
- 2021 年后 CentOS 停止传统支持,社区转向 Rocky Linux 或 AlmaLinux。
- 官网:https://rockylinux.org
3. Debian
4. Arch Linux
5. Fedora
如何开始使用 Linux?
你不需要立刻放弃 Windows 或 macOS!有几种方式可以轻松入门:
方式一:使用虚拟机(推荐新手)
- 安装 VirtualBox 或 VMware Workstation Player(免费)。
- 下载 Ubuntu ISO 镜像,在虚拟机中安装。
- 优点:安全、隔离、可随时删除。
方式二:WSL(Windows Subsystem for Linux)
安装命令(以管理员身份运行 PowerShell):
方式三:双系统启动
- 分区硬盘,同时安装 Windows 和 Linux。
- 需要一定动手能力,但性能最佳。
方式四:云服务器
- 注册阿里云、腾讯云、AWS 等,创建一台 Linux 云主机(如 Ubuntu 22.04)。
- 通过 SSH 远程连接学习。
- 成本低至每月几元人民币。
✅ 建议:初学者从 Ubuntu + WSL 或 虚拟机 开始,避免'踩坑'。
初识 Linux 终端(Terminal)
Linux 的灵魂在于 命令行。虽然现代发行版都有图形界面,但真正的效率来自终端。
打开终端
- Ubuntu:
Ctrl + Alt + T
- macOS:Terminal 应用
- WSL:在开始菜单搜索'Ubuntu'
第一个命令:echo "Hello, Linux!"
$ echo "Hello, Linux!"
Hello, Linux!
$ 表示普通用户提示符,# 表示 root(超级用户)提示符。
基础命令速览
1. pwd — 查看当前目录
2. ls — 列出文件和目录
$ ls Documents Downloads Music Pictures
$ ls -l
$ ls -a
3. cd — 切换目录
$ cd /home
$ cd ..
$ cd ~
$ cd -
4. mkdir — 创建目录
5. touch — 创建空文件
6. cat — 查看文件内容
$ echo "Linux is awesome!"> note.txt
$ cat note.txt
Linux is awesome!
7. cp / mv / rm — 复制、移动、删除
$ cp file1.txt file2.txt
$ mv file1.txt new_name.txt
$ rm old_file.txt
$ rm -r old_folder
文件系统结构
Linux 的文件系统是树状结构,根目录为 /。所有设备、分区、网络资源都挂载在 / 下。
| 目录 | 用途 |
|---|
/ | 根目录 |
/bin | 基础命令(如 ls, cp) |
/sbin | 系统管理命令(如 ifconfig, reboot) |
/etc | 配置文件(如 network, ssh) |
/home | 用户家目录(如 /home/alice) |
/root | root 用户的家目录 |
/tmp | 临时文件(重启后清空) |
/var | 可变数据(日志、邮件、数据库) |
/usr | 用户程序和只读数据 |
/dev | 设备文件(如 /dev/sda 表示硬盘) |
/proc | 虚拟文件系统,反映内核和进程状态 |
/sys | 硬件和驱动信息 |
📌 记住:一切皆文件(Everything is a file)——这是 Unix/Linux 的哲学。
用户与权限管理
Linux 是多用户系统,每个文件都有所有者和权限。
查看用户信息
$ whoami
alice
$ id
uid=1000(alice) gid=1000(alice) groups=1000(alice),4(adm),24(cdrom)...
文件权限详解
$ ls -l hello.txt
-rw-r--r-- 1 alice alice 0 Jan 110:00 hello.txt
- 第一位
-:文件类型(-=普通文件,d=目录,l=链接)
- 接下来 9 位:
rw-r--r--
- 前 3 位
rw-:所有者权限(读 + 写)
- 中 3 位
r--:所属组权限(只读)
- 后 3 位
r--:其他用户权限(只读)
r = read(4)
w = write(2)
x = execute(1)
修改权限:chmod
$ chmod 755 script.sh
$ chmod u+x script.sh
切换用户:sudo 与 su
🔐 安全提示:不要长期使用 root 账户!用 sudo 即可。
软件包管理
Linux 不像 Windows 那样到处下载 .exe,而是通过包管理器统一安装软件。
Debian/Ubuntu 系:apt
$ sudo apt update
$ sudo apt install git
$ sudo apt remove git
$ sudo apt upgrade
RHEL/CentOS/Rocky 系:dnf(或旧版 yum)
$ sudo dnf install nginx
$ sudo dnf remove nginx
Arch 系:pacman
💡 包管理器的优势:自动解决依赖、一键卸载、版本统一、安全校验。
文本编辑器:Vim 入门
在服务器上,图形界面往往不可用,因此必须掌握命令行编辑器。Vim 是最经典的之一。
启动 Vim
基本操作
- 默认进入 普通模式(Normal Mode)
- 按
i 进入 插入模式(Insert Mode),可输入文字
- 按
Esc 回到普通模式
- 输入
:wq 保存并退出
- 输入
:q! 强制退出不保存
🎮 小游戏:在终端运行 vimtutor,这是官方交互式教程!
进程管理
Linux 中运行的程序称为进程(Process)。
查看进程:ps 和 top
$ ps aux | grep firefox
$ top
$ htop
终止进程:kill
$ kill 1234
$ kill -9 1234
后台运行:& 和 nohup
$ ./long_script.sh &
$ nohup ./server.sh &
网络基础
查看 IP 地址
$ ip addr show
$ ifconfig
测试网络连通性
$ ping google.com
$ curl https://httpbin.org/ip
SSH 远程登录
🔐 安全建议:生产环境禁用 root 登录,使用密钥认证。
Shell 脚本入门
编写第一个脚本
#!/bin/bash
echo "Today is $(date)"
echo "You are logged in as $(whoami)"
$ chmod +x hello.sh
$ ./hello.sh
Today is Sun Jan 4 10:30:00 CST 2026 You are logged in as alice
常见控制结构
#!/bin/bash
if [ -f /etc/os-release ]; then
echo "This is a Linux system."
fi
for i in {1..5}; do
echo "Count: $i"
done
环境变量与 PATH
查看环境变量
$ echo $HOME
/home/alice
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
设置临时变量
$ MY_VAR="Hello"
$ echo $MY_VAR
Hello
永久添加 PATH(以 Bash 为例)
export PATH=$PATH:/my/custom/bin
日志系统
/var/log/syslog(Debian/Ubuntu)或 /var/log/messages(RHEL)
/var/log/auth.log:登录认证日志
/var/log/dmesg:内核启动日志
$ tail -f /var/log/syslog
$ journalctl -u nginx
系统服务管理(systemd)
现代 Linux 使用 systemd 管理服务。
常用命令
$ sudo systemctl start nginx
$ sudo systemctl stop nginx
$ sudo systemctl restart nginx
$ sudo systemctl status nginx
$ sudo systemctl enable nginx
$ sudo systemctl disable nginx
查看所有服务
$ systemctl list-units --type=service --state=running
文件查找与文本处理
查找文件:find
$ find /home -name "*.txt"
$ find . -mtime -7
查找文本:grep
$ grep "error" /var/log/syslog
$ grep -r "TODO" ~/projects/
$ ps aux | grep ssh
文本处理三剑客:awk / sed / cut
$ echo "apple 10 red" | awk '{print $2}'
10
$ echo "hello world" | sed 's/world/Linux/'
hello Linux
$ echo "name:age:city" | cut -d':' -f1
name
磁盘与文件系统
查看磁盘使用情况
挂载 U 盘或硬盘
$ sudo mkdir /mnt/usb
$ sudo mount /dev/sdb1 /mnt/usb
$ sudo umount /mnt/usb
📌 注意:设备名如 /dev/sda, /dev/sdb 可通过 lsblk 查看。
安全基础
防火墙:ufw(Ubuntu)或 firewalld(RHEL)
$ sudo ufw enable
$ sudo ufw allow 22/tcp
$ sudo ufw status verbose
用户密码策略
$ sudo passwd alice
$ chage -l alice
SELinux / AppArmor
- RHEL 系使用 SELinux(安全增强型 Linux)
- Ubuntu 使用 AppArmor
- 初学者可暂时关闭(不推荐生产环境)
Linux 内核与模块
内核是操作系统的核心。你可以动态加载/卸载内核模块。
$ lsmod
$ modinfo e1000
$ sudo modprobe usb_storage
图形界面(GUI)与桌面环境
虽然命令行强大,但 Linux 也有优秀的图形界面:
- GNOME:现代、简洁(Ubuntu 默认)
- KDE Plasma:功能丰富、高度可定制
- XFCE / LXDE:轻量级,适合老电脑
安装桌面(以 Ubuntu Server 为例):
$ sudo apt install ubuntu-desktop
$ sudo apt install kde-plasma-desktop
开发环境搭建
安装 Git
$ sudo apt install git
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
安装 Python
$ sudo apt install python3 python3-pip
$ pip3 install requests flask
安装 Docker
$ sudo apt install docker.io
$ sudo usermod -aG docker $USER
$ docker run hello-world
故障排查思路
- 看错误信息:终端输出往往包含关键线索。
- 查日志:
/var/log/ 或 journalctl。
- 搜索:复制错误信息到搜索引擎。
- 最小化复现:能否用简单命令重现问题?
- 社区求助:Reddit 的 r/linuxquestions、中文社区如 V2EX。
🌐 Stack Overflow 是全球最大的编程问答网站,99% 的 Linux 问题都能找到答案。
学习资源推荐
- 官方文档:
- 在线课程:
- 书籍:
- 《鸟哥的 Linux 私房菜》(中文经典)
- 《How Linux Works》(英文,深入浅出)
Linux 生态图谱
Linux Kernel
GNU Tools
Shell: Bash/Zsh
File Systems: ext4, XFS, Btrfs
Coreutils: ls, cp, mv...
Scripting & Automation
Device Drivers
Hardware: CPU, GPU, NIC
Desktop Environments
GNOME
KDE Plasma
XFCE
Package Managers
APT - Debian/Ubuntu
YUM/DNF - RHEL
Pacman - Arch
Systemd
Service Management
Logging: journald
Mount Management
Development
Git
Docker
Python/Node.js/Rust
✅ 此图表展示了 Linux 内核如何与上层工具、服务、开发环境协同工作。
结语:拥抱开源,掌控你的计算机
Linux 不仅仅是一个操作系统,它代表了一种自主、透明、协作的技术文化。从你的第一行 echo 命令开始,你就已经踏上了成为技术主人的道路。
不要害怕命令行,不要畏惧报错。每一个 Linux 高手,都曾无数次面对 Permission denied 或 command not found。正是这些'失败',塑造了你的技术直觉。
🐧 今天,就打开终端,输入:
阅读手册,探索未知。Linux 的世界,欢迎你!
- 为什么 Linux 在服务器领域占据绝对优势?
- 开源 vs 闭源,各自的利弊是什么?
- 如果让你设计一个 Linux 发行版,你会怎么做?
🌟 记住:你不是在'使用'Linux,你是在'参与'Linux。
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online