Linux知识点总结
·
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.txt和file.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 addr或ifconfig:查看网络接口信息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 用户
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)