Linux

Linux 基础

·16 分钟阅读·6173 字
📋 目录

Linux 基础

Linux 系统基础知识与常用命令,面向运维工程师。涵盖文件系统、常用命令、权限管理、磁盘管理、用户管理、网络管理、进程管理、软件包管理、VI/VIM 编辑器。

1. Linux 文件系统

1.1. 目录结构

目录说明
/bin系统基本命令(lscpmv),普通用户和系统管理员可用
/sbin系统管理命令(ifconfigshutdownreboot),通常需管理员权限
/etc系统配置文件(网络配置、用户账户、服务配置)
/home普通用户家目录,每个用户有独立子目录
/rootroot 用户家目录
/usr系统安装的软件和应用程序(类似 Windows Program Files)
/var运行时变化的数据(日志、邮件、缓存)
/dev设备文件(硬盘、光驱、串口等)
/proc虚拟文件系统,提供内核和进程信息
/sys虚拟文件系统,提供硬件设备信息和控制接口
/boot启动核心文件(内核、引导程序)
/lib系统最基本的动态连接共享库
/media系统自动识别设备的挂载点(U盘、光驱)
/mnt用户临时挂载文件系统
/opt第三方程序安装目录
/tmp临时文件存放目录
/run临时文件系统,存储系统启动以来信息(重启清空)

1.2. 文件命名规则

  1. 严格区分大小写Filefile 是两个不同文件)
  2. 目录名或文件名长度不超过 255 个字符
  3. 不以文件扩展名区分文件(Linux 通过文件头识别类型)

1.3. 文件类型

标识类型说明
-普通文件文本、二进制、数据文件
d目录文件文件夹
l软链接类似 Windows 快捷方式
b块设备文件硬盘、光驱等
p管道文件进程间通信
c字符设备文件串口设备、光猫等
s套接口文件网络通信

查看命令:ls -l 第一列标识文件类型。


2. Linux 常用命令

2.1. 查看命令帮助

  • 判断命令类型type [命令](内部命令 vs 外部命令)
  • 内部命令帮助help [命令]
  • 外部命令帮助[命令] --help
  • man 手册man [命令](不区分内外部命令)

2.2. 系统信息

命令说明示例
uname -a查看完整系统信息内核版本、主机名、架构
whoami查看当前用户
hostname查看/设置主机名

2.3. 目录操作

命令说明常用参数
ls [目录]列出目录内容-a 显示隐藏文件,-l 详细列表,-h 可读性大小
pwd显示当前路径
cd [目录]切换目录cd ~ 回家目录,cd - 回上级目录
clear清屏
mkdir [目录]创建目录-p 递归创建
rmdir [目录]删除空目录

2.4. 文件操作

命令说明常用参数
touch [文件]创建空文件/更新时间戳
cp [源] [目标]复制文件-r 递归复制目录,-p 保留属性
mv [源] [目标]移动/重命名
rm [文件]删除文件-r 递归删除,-f 强制删除
cat [文件]查看文件内容
head [文件]查看文件头部-n 指定行数
tail [文件]查看文件尾部-f 实时跟踪
wc [文件]统计行/词/字符-l 仅行数
echo [内容]输出内容

2.5. 文本处理

命令说明示例
grep [模式] [文件]文本搜索grep "error" /var/log/messages
sed流编辑器sed -i "s/old/new/g" file
awk文本分析工具awk "{print \$1}" file
sort排序sort -n 按数字排序
uniq去重uniq -c 统计重复次数
cut截取字段cut -d":" -f1

2.6. 查找命令

命令说明示例
find [路径] [条件]查找文件find / -name "*.log"
which [命令]查找命令路径which python3
whereis [命令]查找命令及文档
locate [文件]快速查找(依赖数据库)

3. Linux 权限管理

3.1. 用户与用户组

  • 用户分类:超级用户(root,UID=0)、系统用户(UID 1-999)、普通用户(UID 1000+)
  • 相关文件/etc/passwd(用户信息)、/etc/shadow(密码)、/etc/group(组信息)
  • 相关命令idwhowusers

3.2. 文件权限

Linux 权限三位一组:属主(u)、属组(g)、其他(o),每位包含 r(读)、w(写)、x(执行)。

# 权限表示
-rwxr-xr-x   # 属主rwx,属组r-x,其他r-x

# 修改权限
chmod 755 file     # 数字法
chmod u+x file     # 符号法

# 修改属主/属组
chown user:group file
chgrp group file

权限数字对应r=4w=2x=1

数字权限说明
7rwx读+写+执行
6rw-读+写
5r-x读+执行
4r—只读
0---无权限

3.3. 特殊权限

权限标识作用
SUIDrws以文件属主身份执行程序
SGIDrws(组)以文件属组身份执行程序
Sticky Bitt仅文件属主可删除(如 /tmp

3.4. ACL 访问控制

# 查看 ACL
getfacl file

# 设置 ACL
setfacl -m u:username:rwx file
setfacl -m g:groupname:rx file

# 递归设置
setfacl -R -m u:username:rx directory/

3.5. sudo 权限

# 配置文件:/etc/sudoers(使用 visudo 编辑)
# 语法:user  host=(runas)  commands

# 示例:允许 user1 以 root 执行所有命令
user1 ALL=(ALL) ALL

# 示例:允许运维组执行系统管理命令
%ops ALL=(ALL) /usr/bin/systemctl, /usr/bin/journalctl

4. 磁盘管理

4.1. 磁盘查看

命令说明常用参数
fdisk -l查看磁盘分区
lsblk列出块设备-f 显示文件系统
blkid查看设备 UUID 和文件系统
df -h查看磁盘使用情况-h 可读性
du -sh [目录]查看目录大小

4.2. 分区管理

# 使用 fdisk 分区(MBR,<2TB)
fdisk /dev/sdb

# 使用 parted 分区(GPT,>2TB)
parted /dev/sdb

分区表类型

  • MBR:传统分区表,支持 4 个主分区,最大 2TB
  • GPT:新一代分区表,支持 128 个分区,最大 18EB

4.3. 格式化与挂载

# 格式化
mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2

# 挂载
mount /dev/sdb1 /mnt/data

# 开机自动挂载:编辑 /etc/fstab
UUID=xxx /mnt/data ext4 defaults 0 2

# 查看挂载
mount | grep sdb

4.4. RAID

级别说明最少磁盘容错
RAID 0条带化,性能高无冗余2
RAID 1镜像,完全冗余21块
RAID 5分布式奇偶校验31块
RAID 10镜像+条带4每组1块

4.5. LVM 逻辑卷管理

# 创建物理卷
pvcreate /dev/sdb1 /dev/sdc1

# 创建卷组
vgcreate vg_data /dev/sdb1 /dev/sdc1

# 创建逻辑卷
lvcreate -L 100G -n lv_data vg_data

# 格式化挂载
mkfs.ext4 /dev/vg_data/lv_data
mount /dev/vg_data/lv_data /mnt/data

# 扩容逻辑卷
lvextend -L +50G /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data

5. 用户管理

命令说明
useradd [用户名]创建用户
passwd [用户名]设置/修改密码
usermod [选项] [用户名]修改用户属性
userdel [用户名]删除用户(-r 同时删除家目录)
groupadd [组名]创建组
gpasswd [选项] [组名]管理组成员
# 创建用户并指定家目录和 shell
useradd -m -d /home/user1 -s /bin/bash user1

# 添加用户到组
usermod -aG docker user1

# 锁定/解锁用户
passwd -l user1    # 锁定
passwd -u user1    # 解锁

# 查看用户信息
cat /etc/passwd | grep user1
chage -l user1     # 查看密码过期信息

6. 网络管理

命令说明常用参数
ip addr查看 IP 地址
ip link查看/管理网络接口set eth0 up/down
ip route查看路由表
ss -tlnp查看端口监听-t TCP,-l 监听,-n 数字,-p 进程
ping [IP]网络连通测试-c 次数
traceroute [IP]路由追踪
curl [URL]HTTP 请求
wget [URL]下载文件
nslookup [域名]DNS 查询
dig [域名]DNS 详细查询

6.1. 网络配置

# 查看网络接口信息
ip addr show eth0

# 临时配置 IP
ip addr add 192.168.1.100/24 dev eth0

# 配置路由
ip route add default via 192.168.1.1

# 查看网络统计
netstat -s

7. 进程管理

7.1. 查看进程

命令说明
ps -ef查看所有进程
ps aux查看所有进程(BSD 格式)
top实时进程监控
htop增强版 top
pstree进程树

7.2. 进程信号

# 常用信号
kill -15 PID    # SIGTERM,优雅终止
kill -9 PID     # SIGKILL,强制杀死
kill -1 PID     # SIGHUP,重载配置
kill -2 PID     # SIGINT,中断(Ctrl+C)

7.3. 进程优先级

# 查看优先级
ps -eo pid,ni,comm

# 启动时设置优先级
nice -n -5 command

# 运行时调整优先级
renice -n -5 -p PID

7.4. 后台作业

command &          # 后台运行
jobs               # 查看后台作业
fg %1              # 前台执行
bg %1              # 后台执行
nohup command &    # 后台运行(终端退出后继续)
screen / tmux      # 会话管理(推荐)

8. 软件包管理

8.1. YUM / DNF(RHEL/CentOS)

命令说明
yum install [包]安装软件包
yum remove [包]卸载软件包
yum update [包]更新软件包
yum search [关键词]搜索软件包
yum list installed列出已安装包
yum info [包]查看包信息
yum groupinstall [组]安装包组

8.2. RPM

rpm -ivh package.rpm    # 安装
rpm -e package          # 卸载
rpm -qa                 # 列出所有已安装包
rpm -ql package         # 查看包文件列表
rpm -qf /path/to/file   # 查看文件属于哪个包

8.3. 源码编译

./configure --prefix=/usr/local
make
make install

9. VI / VIM 编辑器

Vim 有三种模式:一般模式、编辑模式、指令行模式

9.1. 一般模式

按键说明
h/j/k/l左/下/上/右移动
0 / $行首 / 行尾
gg / G文件首行 / 尾行
x删除光标处字符
dd删除整行
yy复制整行
p / P粘贴到下一行 / 上一行
u撤销
Ctrl+r重做

9.2. 编辑模式

按键说明
i光标处插入
a光标后插入
o下一行插入新行
Esc退出编辑模式

9.3. 指令行模式

命令说明
:w保存
:q退出
:wq保存并退出
:q!强制退出不保存
:set nu显示行号
:set nonu取消行号
:/keyword搜索关键词
:s/old/new/g替换

关联文档