Linux

Linux 是一种基于 UNIX 的开源操作系统。它最初由林纳斯·托瓦兹(Linus Torvalds)于 1991 年开发,后来吸引了全球范围内的开发者参与贡献。Linux 系统因其强大的性能、稳定性和灵活性,被广泛应用于服务器、嵌入式设备、桌面电脑和超级计算机等领域。

Linux 的核心特点

  1. 开源和自由
    Linux 遵循 GNU 通用公共许可证(GPL),意味着用户可以自由使用、修改和分发 Linux 内核和相关软件。
  2. 稳定性和可靠性
    Linux 系统在处理多任务和长时间运行的应用时非常稳定,广泛用于高负载的服务器环境。
  3. 安全性
    Linux 社区快速响应漏洞,系统默认权限分离机制(如普通用户和超级用户的权限划分)也使其比很多其他系统更安全。
  4. 多用户和多任务
    Linux 是一个真正支持多用户和多任务的操作系统,多个用户可以同时访问系统,而不会相互干扰。
  5. 高度定制化
    用户可以根据需求修改和调整 Linux 系统,从内核到桌面环境都可以根据需要进行配置。

Linux 的主要组成部分

  1. 内核(Kernel)
    内核是 Linux 的核心部分,负责管理系统资源,如处理器、内存、硬件设备等。
  2. Shell
    Shell 是用户与内核交互的命令行接口,常见的 Shell 包括 Bash、Zsh 和 Fish。
  3. 文件系统
    Linux 支持多种文件系统,如 ext4、XFS、Btrfs 和 FAT32,文件系统的结构为树状层次结构。
  4. 软件包管理器
    Linux 使用软件包管理器安装和管理软件,例如:
    • Debian 系列(如 Ubuntu):使用 aptdpkg
    • Red Hat 系列(如 CentOS):使用 yumdnf
    • Arch 系列:使用 pacman
  5. 图形界面(可选)
    Linux 的图形界面是通过窗口管理器(如 GNOME、KDE、XFCE)实现的,提供用户友好的桌面环境。

Linux 的主要发行版

  1. Ubuntu
    适合桌面用户和服务器,用户友好,社区活跃。
  2. CentOS / Rocky Linux / AlmaLinux
    用于服务器环境,稳定性高,企业广泛使用。
  3. Debian
    以稳定著称,是许多其他发行版(如 Ubuntu)的基础。
  4. Arch Linux
    面向高级用户,强调用户定制和简单性。
  5. Fedora
    强调新技术和快速更新,适合开发者和技术爱好者。

Linux 的主要组成部分

  1. 内核(Kernel)
    内核是 Linux 的核心部分,负责管理系统资源,如处理器、内存、硬件设备等。
  2. Shell
    Shell 是用户与内核交互的命令行接口,常见的 Shell 包括 Bash、Zsh 和 Fish。
  3. 文件系统
    Linux 支持多种文件系统,如 ext4、XFS、Btrfs 和 FAT32,文件系统的结构为树状层次结构。
  4. 软件包管理器
    Linux 使用软件包管理器安装和管理软件,例如:
    • Debian 系列(如 Ubuntu):使用 aptdpkg
    • Red Hat 系列(如 CentOS):使用 yumdnf
    • Arch 系列:使用 pacman
  5. 图形界面(可选)
    Linux 的图形界面是通过窗口管理器(如 GNOME、KDE、XFCE)实现的,提供用户友好的桌面环境。

Linux 的主要发行版

  1. Ubuntu
    适合桌面用户和服务器,用户友好,社区活跃。
  2. CentOS / Rocky Linux / AlmaLinux
    用于服务器环境,稳定性高,企业广泛使用。
  3. Debian
    以稳定著称,是许多其他发行版(如 Ubuntu)的基础。
  4. Arch Linux
    面向高级用户,强调用户定制和简单性。
  5. Fedora
    强调新技术和快速更新,适合开发者和技术爱好者。

常用的 Linux 命令示例

一、文件与目录操作

命令 用途 示例
ls 列出目录内容 ls -l 显示详细信息
cd 切换目录 cd /home/user 切换到 /home/user
pwd 显示当前路径 pwd 显示当前所在目录
mkdir 创建目录 mkdir new_folder 创建 new_folder
rmdir 删除空目录 rmdir empty_folder
touch 创建空文件 touch file.txt 创建 file.txt
cp 复制文件/目录 cp file1 file2
mv 移动或重命名文件/目录 mv old_name new_name
rm 删除文件/目录 rm -r folder 删除非空目录
find 查找文件 find / -name "*.log"
stat 查看文件属性 stat file.txt

二、文件内容查看与编辑

命令 用途 示例
cat 查看文件内容 cat file.txt
tac 倒序查看文件内容 tac file.txt
more 分页查看文件内容 more file.txt
less 分页查看,支持上下滚动 less file.txt
head 查看文件开头部分 head -n 10 file.txt
tail 查看文件末尾部分 tail -n 20 file.txt
wc 统计文件中的行数、单词数等 wc -l file.txt
nano 简单的文本编辑器 nano file.txt
vim 高级文本编辑器 vim file.txt

三、用户和权限管理

命令 用途 示例
whoami 显示当前用户 whoami
id 查看用户 ID 和组 ID id
passwd 修改用户密码 passwd user
adduser 添加新用户 adduser newuser
deluser 删除用户 deluser user
chmod 修改文件权限 chmod 755 file.txt
chown 更改文件所属用户和组 chown user:group file.txt
groups 查看用户所属的组 groups user
usermod 修改用户属性 usermod -aG sudo user

四、磁盘与文件系统

命令 用途 示例
df 查看磁盘空间使用情况 df -h
du 查看目录或文件占用空间 du -sh folder
mount 挂载文件系统 mount /dev/sdb1 /mnt
umount 卸载文件系统 umount /mnt
fsck 检查并修复文件系统错误 fsck /dev/sda1
blkid 查看块设备信息 blkid
mkfs 格式化文件系统 mkfs.ext4 /dev/sda1

五、进程管理

命令 用途 示例
ps 显示当前进程 ps aux
top 实时查看系统性能 top
htop 图形化进程管理工具 htop
kill 终止进程 kill 1234
killall 按名称终止所有匹配的进程 killall firefox
bg 将进程置于后台运行 bg %1
fg 将后台进程调回前台 fg %1
jobs 查看后台运行的进程 jobs

六、网络管理

命令 用途 示例
ping 测试网络连通性 ping 8.8.8.8
ifconfig 查看和配置网络接口 ifconfig
ip 管理网络接口和路由 ip addr show
netstat 查看网络连接状态 netstat -tuln
curl 发送网络请求 curl https://example.com
wget 下载文件 wget https://example.com/file.txt
traceroute 跟踪网络路由 traceroute google.com
scp 远程复制文件 scp file.txt user@host:/path

七、系统管理

命令 用途 示例
uname 查看系统信息 uname -a
uptime 查看系统运行时间 uptime
free 查看内存使用情况 free -m
reboot 重启系统 reboot
shutdown 关机 shutdown now
systemctl 管理系统服务 systemctl restart nginx
journalctl 查看系统日志 journalctl -u nginx