Linux 操作系统知识点总结

一、Linux 基础概念

1.1 Linux 简介

Linux 是一种开源的类 Unix 操作系统,由 Linus Torvalds 在 1991 年首次发布。Linux 内核是操作系统的核心,负责管理系统资源、内存、进程和硬件设备。Linux 操作系统通常指的是 Linux 内核加上 GNU 工具链组成的完整操作系统。

特点说明

  • 开源:源代码公开,任何人可以查看、修改和分发
  • 类 Unix:继承了 Unix 操作系统的设计理念和接口规范

1.2 Linux 的特点

  • 开源免费:成本更低,无需支付许可证费用
  • 硬件要求低:资源损耗小,可运行在配置较低的硬件上
  • 更加稳定可靠:适合长时间运行,服务器领域广泛使用
  • 对软件没有限制:操作自由,可自由安装和使用各类软件
  • 安全性更高:权限机制完善,病毒和恶意软件相对较少
  • 多用户多任务:支持多个用户同时登录,可同时运行多个进程

1.3 Linux 发行版

常见的 Linux 发行版包括:

  • Ubuntu:基于 Debian,用户友好,适合桌面和服务器
  • CentOS:基于 Red Hat,稳定可靠,适合企业服务器
  • Debian:稳定性高,软件包丰富,是许多发行版的基础
  • Fedora:最新技术,适合开发者,更新频繁
  • Arch Linux:滚动更新,高度可定制,适合高级用户

发行版选择建议

  • 桌面用户:Ubuntu、Linux Mint
  • 服务器用户:CentOS、Debian
  • 开发者:Fedora、Arch Linux

1.4 文件系统结构

Linux 文件系统采用树形结构,根目录为 /

  • /bin:存放基本命令(二进制可执行文件),所有用户都可使用
  • /etc:存放系统配置文件,如网络配置、用户配置等
  • /home:用户主目录,每个用户有一个子目录
  • /usr:存放用户程序和数据,类似 Windows 的 Program Files
  • /var:存放可变数据(日志、缓存、邮件等)
  • /tmp:临时文件目录,系统重启后会清空
  • /root:root 用户的主目录,普通用户无权访问

示例

# 查看根目录结构
ls /
# bin   etc   home  lib64  mnt  proc  run   srv  tmp  var
# boot  dev   lib   media  opt  root  sbin  sys  usr

1.5 Linux 注意事项

  • 严格区分大小写File.txtfile.txt 是不同的文件
  • Windows 程序不能直接运行:需要使用 Wine 等兼容层
  • 命令或路径错误:是最常见的错误原因,需仔细检查
  • 通配符和路径符号
    • *:代表所有文件
    • .:代表当前路径
    • ..:代表上级路径
    • ~:代表家目录

示例

# 当前目录
pwd        # /home/user
# 上级目录
cd ..      # /home
# 家目录
cd ~       # /home/user
# 所有txt文件
ls *.txt   # 列出所有txt文件

二、文件与目录操作命令

2.1 基本命令

  • ls:查看当前目录下的文件和目录
  • ls -l:查看文件的详细信息(简写成:ll),包含权限、所有者、大小、时间等
  • ls -a:查看所有文件(包括隐藏文件,以 . 开头的文件)
  • ls -al:查看所有文件的详细信息

示例

# 查看当前目录
ls
# Documents  Downloads  Music  Pictures

# 查看详细信息
ls -l
# drwxr-xr-x  2 user user 4096 May  1 10:00 Documents

# 查看所有文件(包括隐藏文件)
ls -a
# .  ..  .bashrc  Documents  .ssh

# 查看所有文件的详细信息
ls -al

2.2 目录操作

  • mkdir:创建文件夹(创建目录)
  • mkdir -p:递归创建多级目录,如果父目录不存在则自动创建
  • rmdir:删除空的文件夹,非空目录无法删除
  • cd:切换路径,进入指定目录
  • cd /cd ~:切换到当前用户的家目录
  • cd .:当前位置不发生变化
  • cd ..:切换到上一级目录
  • cd -:切换到上一次切换的地方
  • pwd:查看当前所在的位置(print working directory)

示例

# 创建单级目录
mkdir project

# 创建多级目录
mkdir -p project/src/main

# 删除空目录
rmdir temp

# 切换目录
cd project/src
pwd        # /home/user/project/src

# 返回上一级
cd ..
pwd        # /home/user/project

# 返回家目录
cd ~
pwd        # /home/user

2.3 文件操作

  • touch:生成一个空的文件,如果文件已存在则更新修改时间
  • cat:从头到尾查看文件内容,-n 参数显示行号
  • tac:从尾到头查看文件内容(cat 的反向)
  • head:查看文件的前几行内容,默认前 10 行,-n 指定行数
  • tail:查看文件的后几行内容,默认后 10 行,-n 指定行数,-f 实时追踪文件变化
  • less:分屏查看文件(适用于大文件),支持上下翻页
  • more:分页查看文件,只能向下翻页
  • tree:以目录树形式查看目录结构(需额外安装)
  • cp:复制文件,-r 参数复制文件夹及其内容
  • mv:移动文件或文件夹,也可用于重命名
  • rm:删除文件,-r 删除目录,-f 强制删除,-rf 强制删除目录

示例

# 创建空文件
touch test.txt

# 查看文件内容
cat test.txt
cat -n test.txt    # 显示行号

# 查看文件前5行
head -n 5 file.txt

# 查看文件后5行
tail -n 5 file.txt

# 实时追踪日志文件
tail -f /var/log/syslog

# 复制文件
cp test.txt backup/

# 复制文件夹
cp -r project/ backup/

# 移动文件(剪切)
mv test.txt documents/

# 重命名文件
mv oldname.txt newname.txt

# 删除文件
rm test.txt

# 删除目录
rm -rf temp/

2.4 系统信息命令

  • cal:用日历的方式查看时间
  • date:查看系统时间
  • date -s:设置系统时间(需要 root 权限)
  • df -h:查看磁盘使用情况,-h 以人类可读格式显示
  • free:查看内存使用情况
  • top:动态查看进程资源使用情况(按 q 退出)
  • jps:查看后台正在运行的 Java 进程(需安装 JDK)
  • ip addrifconfig:查看网络接口信息
  • ping:验证网络连通性

示例

# 查看日历
cal        # 显示当月日历
cal 2024   # 显示全年日历

# 查看系统时间
date
# Tue Jun  7 10:30:00 CST 2024

# 设置系统时间
date -s "2024-06-07 10:30:00"

# 查看磁盘使用情况
df -h
# /dev/sda1      20G   15G  4.5G  77% /

# 查看内存使用情况
free -h
#              total        used        free
# Mem:           7.8Gi       1.2Gi       6.6Gi

# 动态查看进程
top        # 按 q 退出

# 查看网络接口
ip addr
ifconfig

# 测试网络连通性
ping www.baidu.com

2.5 查找与过滤命令

  • find:查找文件,支持多种条件
    • -name:按名称查找
    • -type:按文件类型查找(f 文件,d 目录)
    • -perm:按权限查询
    • -empty:查找空文件或空文件夹
  • ps:查看当前系统的进程状态
    • -aux:显示所有用户的进程详细信息
    • -ef:显示所有用户的进程
  • grep:过滤内容,在输出中查找匹配的字符串
  • |:管道符,将前面命令的输出作为后面命令的输入

示例

# 查找名为 test.txt 的文件
find /home -name test.txt

# 查找所有 txt 文件
find . -name "*.txt"

# 查找所有空文件
find . -type f -empty

# 查找权限为 644 的文件
find . -perm 644

# 查看所有进程
ps -aux

# 查找指定进程
ps -ef | grep firefox

# 在文件中查找字符串
grep "error" log.txt

# 忽略大小写查找
grep -i "Error" log.txt

# 递归查找目录中的文件内容
grep -r "TODO" /project

2.6 其他命令

  • echo:打印内容到终端
  • history:查看历史命令记录
  • kill:终止进程,kill -9 强制杀死进程
  • clear:清屏(快捷键:ctrl+l
  • shutdown -h:关机,shutdown -h now 立即关机
  • shutdown -r:重启,shutdown -r now 立即重启
  • yum -y install:安装程序(CentOS/RHEL)
  • yum -y remove:卸载程序(CentOS/RHEL)

示例

# 打印字符串
echo "Hello World"
# Hello World

# 打印命令执行结果
echo $(date)
# Tue Jun  7 10:30:00 CST 2024

# 查看历史命令
history
history | grep ls    # 查找包含 ls 的历史命令

# 终止进程(PID 为进程号)
kill 1234
kill -9 1234         # 强制终止

# 清屏
clear

# 安装程序
yum -y install nginx

# 卸载程序
yum -y remove nginx

# 关机
shutdown -h now

# 重启
shutdown -r now

2.7 VI/VIM 编辑器

VI/VIM 编辑器有三种模式:

  • 编辑模式(插入模式):用于输入和修改文本内容
  • 命令模式(一般模式):刚启动时默认进入,用于执行复制、粘贴、删除等操作
  • 底行模式(命令行模式):输入 : 进入,用于保存、退出、查找替换等操作

常用操作

  • i:光标前插入内容,进入编辑模式
  • a:光标后插入内容,进入编辑模式
  • o:光标下另起一行插入内容,进入编辑模式
  • :q:退出(对文件有改动时无法退出)
  • :wq:x:保存退出(命令模式按两次大写 Z 也可)
  • :q!:强制退出,不保存修改
  • :w:保存文件但不退出
  • :set nu:显示行号
  • :set nonu:取消行号
  • /关键词:查找内容,n 下一个,N 上一个

示例流程

# 打开文件
vim test.txt

# 按 i 进入编辑模式,输入内容
Hello, Linux!

# 按 Esc 回到命令模式
# 按 :wq 保存退出

2.8 重定向

  • >:覆盖重定向,将命令输出写入文件,覆盖原有内容
  • >>:追加重定向,将命令输出追加到文件末尾
  • &>>:将标准输出和错误输出都追加到文件

示例

# 覆盖写入文件
echo "Hello" > output.txt

# 追加到文件
echo "World" >> output.txt

# 查看文件内容
cat output.txt
# Hello
# World

# 将命令错误输出写入文件
ls nonexistent &>> error.log

三、高级知识点补充

3.1 进程管理

  • ps:查看当前进程快照
  • top:动态查看进程资源使用情况(CPU、内存等)
  • kill:终止进程,默认发送 SIGTERM 信号
  • kill -9:强制终止进程,发送 SIGKILL 信号
  • bg:将挂起的进程放到后台运行
  • fg:将后台进程调到前台运行
  • nohup:让进程在后台持续运行,即使终端关闭

示例

# 查看进程
ps -aux | grep python

# 动态监控进程
top

# 终止进程
kill 1234
kill -9 1234         # 强制终止

# 后台运行程序
nohup python app.py &

3.2 网络配置

  • ifconfig/ip:查看和配置网络接口
  • ping:测试网络连通性
  • netstat/ss:查看网络连接状态
  • /etc/hosts:本地域名解析,可配置域名与 IP 的映射
  • /etc/resolv.conf:DNS 配置,指定 DNS 服务器

示例

# 查看网络接口
ip addr
ifconfig

# 测试网络连通性
ping -c 4 www.baidu.com

# 查看网络连接
netstat -tlnp
ss -tlnp

# 查看本地域名解析
cat /etc/hosts
# 127.0.0.1   localhost

# 查看 DNS 配置
cat /etc/resolv.conf

3.3 用户和权限管理

  • useradd:创建用户
  • userdel:删除用户
  • groupadd:创建用户组
  • groupdel:删除用户组
  • chmod:修改文件权限(数字方式:r=4, w=2, x=1)
  • chown:修改文件所有者和所属组
  • sudo:以 root 权限执行命令

示例

# 创建用户
useradd newuser
useradd -m newuser    # 创建用户并创建家目录

# 删除用户
userdel newuser
userdel -r newuser    # 删除用户并删除家目录

# 创建用户组
groupadd developers

# 修改文件权限
chmod 755 script.sh   # rwxr-xr-x
chmod +x script.sh    # 添加执行权限

# 修改文件所有者
chown user:group file.txt

# 以 root 权限执行命令
sudo apt update
sudo -i               # 切换到 root 用户
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐