Linux 操作系统使用说明 1. Linux 简介 什么是 Linux Linux 是一种自由、开放源代码的类 Unix 操作系统内核,由 Linus Torvalds 于 1991 年创建。现在通常所说的 Linux 指的是基于 Linux 内核的完整操作系统,包括各种系统工具和应用程序。
Linux 的特点
开放性 :遵循 GNU 通用公共许可证,源代码开放
多用户多任务 :支持多个用户同时使用系统,每个用户可以同时运行多个程序
稳定性和可靠性 :适合长时间运行的服务器环境
安全性 :内置强大的安全机制,包括用户权限、防火墙等
可定制性 :可以根据需求裁剪和定制系统
广泛的硬件支持 :支持各种硬件平台
常见 Linux 发行版
Debian/Ubuntu :以稳定性和易用性著称,适合桌面和服务器
Red Hat/CentOS/RHEL :企业级发行版,提供商业支持
Fedora :社区驱动的发行版,包含最新的软件
SUSE/openSUSE :德国开发的发行版,适合企业应用
Arch Linux :滚动更新的发行版,适合高级用户
Gentoo :高度可定制的发行版,需要从源代码编译安装
2. Linux 系统结构 目录结构 Linux 采用树形目录结构,所有文件和目录都从根目录 (/) 开始:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 / ├── bin/ # 基本命令二进制文件 ├── boot/ # 启动加载程序和内核文件 ├── dev/ # 设备文件 ├── etc/ # 系统配置文件 ├── home/ # 用户主目录 ├── lib/ # 共享库文件 ├── media/ # 可移动媒体挂载点 ├── mnt/ # 临时挂载点 ├── opt/ # 可选应用程序 ├── proc/ # 进程和系统信息虚拟文件系统 ├── root/ # 超级用户主目录 ├── run/ # 运行时数据 ├── sbin/ # 系统管理命令二进制文件 ├── srv/ # 服务数据 ├── sys/ # 内核设备树 ├── tmp/ # 临时文件 ├── usr/ # 用户程序和数据 └── var/ # 可变数据文件
系统启动过程
BIOS/UEFI :基本输入输出系统或统一可扩展固件接口,负责初始化硬件
引导加载程序 :如 GRUB,负责加载 Linux 内核
内核初始化 :加载内核模块,初始化硬件设备
系统初始化进程 :如 systemd,负责启动系统服务
用户登录 :显示登录界面,等待用户登录
3. 文件系统 文件类型
**普通文件 (-)**:文本文件、二进制文件等
**目录文件 (d)**:包含其他文件和目录的文件
**符号链接 (l)**:指向其他文件的链接
**字符设备 (c)**:按字符读取的设备文件,如键盘、串口
**块设备 (b)**:按块读取的设备文件,如硬盘、USB 设备
**管道 (p)**:用于进程间通信的文件
**套接字 (s)**:用于网络通信的文件
文件权限 Linux 使用 9 位权限位来控制文件访问:
1 -rwxr-xr-- 1 user group 1234 Jan 21 15:43 filename
权限位分为三组:
所有者权限 (rwx):文件所有者的权限
组权限 (r-x):文件所属组的权限
其他用户权限 (r–):其他用户的权限
权限符号含义:
r :读权限 (4)
w :写权限 (2)
x :执行权限 (1)
**-**:无权限 (0)
文件系统命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 ls ls -la cd /path/to/directorycd ~ cd .. mkdir directorymkdir -p parent/child touch filenamecp source destinationcp -r source_directory destination_directorymv source destinationrm filenamerm -f filename rmdir directory rm -r directory rm -rf directory cat filenameless filename head filename head -n 10 filename tail filename tail -f filename find /path/to/search -name "filename" find /path/to/search -type f -name "*.txt" find /path/to/search -size +10M grep "pattern" filename grep -r "pattern" /path/to/search grep -i "pattern" filename grep -n "pattern" filename du -h filename du -sh directory df -h tar -czvf archive.tar.gz directory tar -xzvf archive.tar.gz zip -r archive.zip directory unzip archive.zip
4. 用户和权限管理 用户管理命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 useradd username useradd -m username useradd -m -s /bin/bash username passwd username usermod -d /new/home/directory username usermod -s /bin/zsh username usermod -aG groupname username userdel username userdel -r username su username su - username sudo command whoami id
组管理命令 1 2 3 4 5 6 7 8 9 10 11 groupadd groupname groupmod -n newgroupname oldgroupname groupdel groupname groups username
权限管理命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 chmod 755 filename chmod u+x filename chmod g-w filename chmod o=r filename chown user:group filenamechown user filename chown :group filename chown -R user:group directory chmod +t directory chmod +s filename
5. 软件管理 Debian/Ubuntu 系统 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 apt update apt upgrade apt full-upgrade apt install packagename apt install packagename1 packagename2 apt remove packagename apt purge packagename apt search keyword apt show packagename apt clean apt autoclean
Red Hat/CentOS/RHEL 系统 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 yum check-update dnf check-update yum update dnf update yum install packagename dnf install packagename yum remove packagename dnf remove packagename yum search keyword dnf search keyword yum info packagename dnf info packagename yum clean all dnf clean all
编译安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 wget https://example.com/package.tar.gz tar -xzvf package.tar.gz cd package./configure ./configure --prefix=/usr/local make sudo make installsudo make uninstall
6. 进程管理 进程查看命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ps aux ps -ef pstree htop top ps aux | grep processname pgrep processname ps -p PID -o pid,ppid,cmd,%cpu,%mem
进程控制命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 kill PIDkill -9 PID pkill processname kill -SIGTERM PID kill -SIGHUP PID kill -SIGKILL PID command &Ctrl + Z fg bg jobs fg %jobnumber bg %jobnumber kill %jobnumber
7. 服务管理 systemd 服务管理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 systemctl status servicename systemctl start servicename systemctl stop servicename systemctl restart servicename systemctl reload servicename systemctl enable servicename systemctl disable servicename systemctl is-enabled servicename systemctl list-units --type =service systemctl list-units --type =service --state=running systemctl list-dependencies servicename
旧系统服务管理(SysVinit) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 service servicename status service servicename start service servicename stop service servicename restart service servicename reload chkconfig servicename on chkconfig servicename off chkconfig --list servicename
8. 网络管理 网络配置命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ip addr ifconfig ip route route -n ss -tuln netstat -tuln ping example.com ping -c 4 example.com nslookup example.com dig example.com cat /etc/resolv.confip -s link ip addr add 192.168.1.100/24 dev eth0 ip link set eth0 up ip link set eth0 down
防火墙配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 iptables -L -n systemctl status firewalld firewall-cmd --state firewall-cmd --list-all firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload firewall-cmd --remove-port=80/tcp --permanent firewall-cmd --reload firewall-cmd --add-service=http --permanent firewall-cmd --reload firewall-cmd --remove-service=http --permanent firewall-cmd --reload firewall-cmd --list-ports firewall-cmd --list-services
9. 系统监控 系统信息命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 uname -auname -r arch cat /etc/os-releaselsb_release -a uptime who -bcat /proc/cpuinfolscpu cat /proc/meminfofree -h lsblk fdisk -l uptime w
系统性能监控 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 top htop iotop iostat iftop tcpdump tcpdump -i eth0 port 80 sar sar -u sar -r sar -d sar -n DEV
10. 资源管理 CPU 资源管理 进程优先级管理 1 2 3 4 5 6 7 8 nice -n 5 command renice -n 10 PID sudo nice -n -5 command
CPU 亲和性设置 1 2 3 4 5 6 7 8 taskset -p PID taskset -cp 0,1 PID taskset -c 0,1 command
CPU 限制工具 1 2 3 4 5 6 7 8 9 sudo apt install cpulimit sudo yum install cpulimit cpulimit -p PID -l 50 cpulimit -l 50 -- command
内存资源管理 内存使用监控 1 2 3 4 5 6 7 free -h cat /proc/meminfotop ps aux --sort =-%mem | head -10
交换空间管理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 swapon -s free -h sudo dd if =/dev/zero of=/swapfile bs=1G count=4 sudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfileecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabsudo swapoff /swapfile
内存限制 1 2 3 4 5 6 ulimit -v 1048576 echo '* soft as 1048576' | sudo tee -a /etc/security/limits.confecho '* hard as 1048576' | sudo tee -a /etc/security/limits.conf
磁盘资源管理 磁盘配额 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 sudo apt install quota sudo yum install quota sudo mount -o remount /sudo quotacheck -ugm /sudo quotaon /sudo edquota -u usernamesudo edquota -g groupnamesudo quota -u usernamesudo repquota /
磁盘空间监控 1 2 3 4 5 6 7 8 9 df -hdu -h /path/to/directorydu -sh /path/to/directory sudo find / -type f -size +100M 2>/dev/null | sort -nr | head -10
磁盘 I/O 调度 1 2 3 4 5 6 7 8 cat /sys/block/sda/queue/schedulersudo echo noop > /sys/block/sda/queue/scheduler
网络资源管理 带宽限制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sudo tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400mssudo tc qdisc del dev eth0 rootsudo apt install wondershaper sudo yum install wondershaper sudo wondershaper eth0 1024 512 sudo wondershaper clear eth0
网络连接限制 1 2 3 4 5 sudo iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j REJECTsudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -m limit --limit 10/minute --limit-burst 20 -j ACCEPT
综合资源管理工具 cgroups(Control Groups) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 sudo apt install cgroup-tools sudo yum install libcgroup-tools sudo cgcreate -g cpu,memory:mygroupsudo cgset -r cpu.cfs_quota_us=50000 mygroupsudo cgset -r memory.limit_in_bytes=1073741824 mygroupsudo cgexec -g cpu,memory:mygroup command sudo cgdelete -g cpu,memory:mygroup
systemd 资源控制 1 2 3 4 5 6 7 8 9 10 11 12 13 systemctl show --property=MemoryLimit,CPUQuota servicename sudo systemctl edit --full servicenamesudo systemctl daemon-reloadsudo systemctl restart servicename
11. 常用工具 文本编辑器 1 2 3 4 5 6 7 8 vim filename nano filename emacs filename
系统工具 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 curl example.com wget example.com scp localfile user@remote:/path/to/destination scp user@remote:/path/to/file localdestination rsync -avz localdirectory user@remote:/path/to/destination tmux tmux new -s sessionname tmux attach -t sessionname tmux list-sessions screen screen -S sessionname screen -r sessionname screen -ls journalctl journalctl -u servicename journalctl -f cat /var/log/syslog cat /var/log/messages cat /var/log/auth.log cat /var/log/secure
12. 故障排除 常见问题解决 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ip link ip addr ip route cat /etc/resolv.confping -c 4 8.8.8.8 ping -c 4 example.com systemctl status servicename journalctl -u servicename sudo nvim /etc/servicename/servicename.confdf -hfind / -type f -size +100M 2>/dev/null | sort -rh sudo rm -rf /tmp/*sudo journalctl --vacuum-time=7d free -h top htop ps aux --sort =-%mem | head -10
13. 常用快捷键 终端快捷键
Ctrl + C :终止当前命令
Ctrl + D :退出当前会话
Ctrl + Z :暂停当前进程
Ctrl + L :清屏
Ctrl + A :光标移到行首
Ctrl + E :光标移到行尾
Ctrl + U :删除光标前的内容
Ctrl + K :删除光标后的内容
Ctrl + W :删除光标前的一个单词
Ctrl + R :搜索历史命令
Tab :自动补全命令和文件名
↑/↓ :浏览历史命令
Vim 快捷键
i :进入插入模式
Esc :退出插入模式,进入命令模式
:w :保存文件
:q :退出 Vim
:wq :保存并退出
**:q!**:强制退出,不保存
yy :复制当前行
p :粘贴
dd :删除当前行
u :撤销
Ctrl + r :重做
/pattern :搜索模式
n :下一个匹配项
N :上一个匹配项
希望这份 Linux 操作系统使用说明对你有所帮助!如果有任何问题,请随时查阅 Linux 官方文档 或 Linux 手册页 .