Linux自用文档

一、Linux目录构成

目录 全称/含义 主要功能与内容 类似 Windows 概念
/ Root 根目录,整个文件系统的起点,所有其他目录的父级。 C:\ (但包含所有数据)
/bin Binaries 存放普通用户常用的核心命令 (如 ls, cp, bash)。 C:\Windows\System32 (部分)
/sbin System Binaries 存放系统管理员专用的系统管理命令 (如 fdisk, reboot)。 C:\Windows\System32 (管理工具)
/boot Boot 存放启动内核、初始化镜像和引导加载程序 (GRUB) 配置。 隐藏的系统引导分区
/dev Devices 设备文件,Linux 将硬件 (硬盘、鼠标、终端) 视为文件存放于此。 设备驱动程序映射
/etc Et Cetera 系统配置文件,存放所有软件和服务的全局配置 (无二进制程序)。 注册表 + 配置文件集合
/home Home 普通用户的主目录,每个用户有独立子目录,存文档、下载、个人配置。 C:\Users\用户名
/lib /lib64 Libraries 存放系统和应用程序所需的共享库文件 (.so 文件)。 C:\Windows\System32 (*.dll)
/media Media 自动挂载的可移动媒体设备 (如插入的 U 盘、光盘)。 自动弹出的 U 盘盘符
/mnt Mount 用于手动临时挂载文件系统 (如挂载网络共享或额外硬盘)。 手动分配的盘符
/opt Optional 存放第三方大型商业软件或独立安装包 (如 Chrome, Zoom)。 C:\Program Files (独立软件)
/proc Process 虚拟文件系统 (内存中),映射内核状态和进程信息 (如 CPU 详情)。 任务管理器数据源
/root Root Home 超级管理员 (root) 的家目录,普通用户通常无法访问。 C:\Users\Administrator
/run Run 存放系统运行时的状态信息 (如进程 PID 文件),重启后清空。 内存中的临时锁文件
/srv Servie 存放一些服务启动之后需要提取的数据
/sys System 虚拟文件系统 (内存中),映射内核与硬件设备的交互接口。 设备管理器底层接口
/tmp Temporary 存放临时文件,任何用户可写,系统重启通常会清空。 C:\Users\...\AppData\Local\Temp
/usr Unix System Resources 用户程序和资源,包含大部分已安装软件、库、文档 (/usr/bin, /usr/lib)。 C:\Program Files
/usr/local 给主机额外安装软件的目标目录,一般通过编译源码方式安装
/var Variable 存放经常变化的数据,如日志 (/var/log)、缓存、邮件队列、网站数据。 C:\Windows\Logs + 缓存
/lost+found 当系统非法挂机时,会存放文件
/selinux security-enhanced linux 安全子系统,能控制程序只能访问特定文件,有三种工作模式,可自行设置。

二、Linux与Windows交换方式

2.1共享分区方式

Windows分出一片独立分区,Linux直接挂载,双方都已可以进行读写,windows需要给足权限,如果双系统下遇到linux挂载后为只读,需要关闭windows的快速启动功能。

2.2Xshell+Xftp

安装Xshell和Xftp软件,用ip进行连接,xshell可以直接控制Linux系统,使用命令行查看linux系统的文件,但要进行文件传输,需要使用xftp来进行。

三、Vi与Vim

Linux系统会内置vi文本编辑器,vim可以看做vi的增强版本,具备程序编辑能力。

三种模式

1.正常模式-默认模式,打开文档就是该模式,可以上下左右移动光标,可以删除字符或整行,可以复制粘贴。

2.插入模式-编辑模式,按下i、I、o、O、a、A、r、R等字母即可进入,一般来说是i。

3.命令行模式-提供相关指令帮你读取、存盘、替换、离开vim、显示行号等功能,常用指令::wq(保存退出)、:q(退出)、:q!(强制退出,不保存)。

常用指令

| 指令/操作 | 主要功能 |
| yy | 拷贝当前行(p粘贴) |
| 5yy | 拷贝当前行向下5行 |
| dd | 删除当前行 |
| 5dd | 删除当前向下5行 |
| /关键字 | 查找内容,回车查找后,按n查找下一个 |
| :set nu | 设置行号 |
| :set nonu | 取消文件的行号 |
| gg | 最首行 |
| G | 最末行 |
| u | 撤销动作 |

shift+g 移动光标,先输入要定位的行号,再按shift+g

上图还有更多指令,可查看https://www.runoob.com/linux/linux-vim.html

四、关机&重启

命令 功能说明 备注 / 等价操作
shutdown -h now 立即关机 halt
shutdown -h 1 1分钟后关机 可替换为具体时间(如 +5 表示5分钟后) shutdown 等同于 该命令
shutdown -r now 立即重启 reboot
halt 停止系统运行(关机) 等同于 shutdown -h now
reboot 重新启动计算机 等同于 shutdown -r now
sync 将内存数据同步写入磁盘 建议在关机前手动执行,防止数据丢失

上述命令均在关机前自动执行了sync。

五、用户管理

功能 具体行为 / 命令示例
创建用户 用管理员账户申请一个用户账户 命令格式: useradd 用户名 注:无家目录
自定义家目录 可以通过命令手动指定家目录路径。 命令格式: useradd -d 指定目录 新的用户名 # -m: 创建家目录 # -d: 指定家目录路径 useradd -m -d /home/test timi
指定/修改密码 passwd 用户名
显示当前用户所在的目录 pwd
删除用户(用户不能删自己,切换管理员账户进行) 删除用户但保留家目录 命令格式:userdel 用户名 删除用户以及主目录(慎重) 命令格式:userdel -r 用户名
查询用户信息 id 用户名
切换用户 su 用户名
退出用户 管理员->普通用户,普通用户->退出系统。 命令格式:logout / exit 注:logout在图形运行级别无效,只有在运行级别3下有效。
查看登录用户 who am i(疑似无返回值)/ whoami (查询用户名)
新增组 groupadd 组名
删除组 groupdel 组名
增加用户时直接加上组 useradd -g 组名 用户名
修改用户组 usermod -g 组名 用户名
文件路径 文件用途 每行字段含义(按顺序)
/etc/passwd 用户配置文件,记录用户基本信息 用户名:口令占位符:用户标识号(UID):组标识号(GID):注释性描述:主目录:登录Shell
/etc/shadow 口令(密码)加密配置文件 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group 组配置文件,记录 Linux 系统中的组信息 组名:口令占位符:组标识号(GID):组内用户列表

六、Linux实用指令

6.1运行级别

运行级别 说明 备注/用途
0 关机 系统关闭
1 单用户模式 【找回丢失密码】
2 多用户状态(无网络服务) 通常不使用
3 多用户状态(有网络服务) ✅ 常用运行级别(命令行界面)
4 系统未使用 保留给用户自定义
5 图形界面 ✅ 常用运行级别(带 GUI 的桌面环境)
6 系统重启 重新启动系统

设置默认运行级别 :可通过修改 /etc/inittab(SysV init)或使用 systemctl set-default(systemd 系统)来设定开机默认进入的运行级别。

现代 Linux 发行版(如 CentOS 7+、Ubuntu 16.04+、Arch Linux 等)已普遍采用 systemd,传统"运行级别"概念被"目标(target)"取代:

  • 运行级别 3 → multi-user.target
  • 运行级别 5 → graphical.target

指令:ystemctl get-default 可以查看当前运行级别。

6.2找回root密码

  1. 开机按 e 进入 GRUB 编辑界面
  2. 找到 linux16 / linux开头行,末尾加:init=/bin/sh
  3. 按 Ctrl + x 启动进入单用户 Shell
  4. 输入:mount -o remount,rw / (挂载为可写)
  5. 输入:passwd → 设置新密码(两次确认)
  6. 输入:touch /.autorelabel (SELinux 重标记,避免登录失败)
  7. 输入:exec /sbin/init → 等待自动重启,新密码生效

第2步,例:

6.3帮助指令

基本语法 功能描述 适用对象 示例 特点与注意事项
man [命令或配置文件] 查看系统命令/配置文件的详细手册页 外部命令、系统工具、配置文件等 man ls man man - 最权威、最全面的官方文档 - 支持分页浏览(空格翻页,q退出) - 可组合选项如 ls -al 的帮助需查 man ls
help [shell 内置命令] 查看 Shell 内置命令的帮助信息 Bash/Zsh 等 shell 内置命令 help cd help exit - 仅适用于 shell 内置命令(如 cd, echo, export) - 输出简洁,无分页 - 外部命令用 help 无效

注:没有man指令的话,可能是linux过于精简,没有预装,以archlinux为例:

sudo pacman -S man-db man-pages,初始化指令为:sudo mandb

6.4文件目录指令

基本语法 功能描述 常用选项 / 参数说明
pwd 显示当前工作目录的绝对路径 无常用选项 (部分系统支持 pwd -P 显示物理路径,排除符号链接)
ls [选项] [目录或文件] 列出指定目录或当前目录下的文件和子目录 -a:显示所有文件(包括隐藏文件,以 . 开头) -l:以长格式列表显示(权限、所有者、大小、时间等) -la-al:组合使用,显示全部文件的详细信息 -h : 修改显示大小单位
cd [参数] 切换到指定目录 cd ~cd → 回到用户家目录 cd .. → 返回上一级目录 cd /path/to/dir → 切换到绝对路径目录 cd relative/path → 切换到相对路径目录
mkdir [选项] 目录名 创建新目录 -p:创建多级目录(若父目录不存在则自动创建)
rmdir [选项] 目录名 删除空目录 无常用选项 ⚠️ 注意:只能删除空目录,非空目录需用 rm -rf
touch [文件名] 创建空文件 无常用选项
cp [选项] [源文件] [目标目录] 拷贝文件 -r : 递归复制整个文件夹 \cp : 强制覆盖不提示
rm [选项] [删除目标] 移除文件或目录 -r : 递归删除整个文件夹 -f : 强制删除不提示
mv [文件/目录] [文件/目录] 移动文件与目录或重命名 mv 文件 文件,重命名 mv 文件 目录(文件名),转移文件到目录(并重命名) mv 目录 目录(不存在的目录名),移动整个目录(并重命名)
cat [选项] [文件] 查看文件内容 -n : 显示行号 | more : 管道命令,部分查看
more 基于vi的文本过滤器,以全屏幕的方式按页显示文本文件内容 空格 : 向下翻一页 Enter : 向下翻一行 q : 离开more,不再显示该文件内容 Ctrl + F : 向下滚动一屏 Ctrl + B : 返回上一屏 = : 输出当前行的行号 :f : 输出文件名和当前行的行号
less 与more指令类似,动态加载,对于显示大文件具备较高的效率 空格 : 向下翻一页 PgUp : 向上翻一页 PgDn : 向下翻一页 /字串 : 向下搜寻『字符串』的功能;n:向下查找;N:向上查找; ?字符 : 向上搜寻『字符串』的功能;n:向上查找;N:向下查找; q : 离开
echo [选项] [输出内容] 输出内容到控制台 $ : 环境变量 "" : 内容
head 显示文件开头部分(默认10行) -n number 文件 : 查看文件头部指定行数内容
tail 显示文件结尾部分 (默认10行) -n number 文件 : 查看文件尾部指定行数内容 -f 文件 : 实时追踪该文档的变化情况
> & >> 输出重定向 ls -l > 文件 : 把列表的内容写入到文件中 ls -al >> 文件 : 把列表的内容追加到文件的末尾 cat 文件1 > 文件2 : 把文件1的内容覆盖到文件2 echo "内容" >> 文件 : 追加
ln -s [原目录/文件] [软链接名] 软链接,也称符号连接 创建一个目录软链接到其他目录,如果该目录存在,则会生成一个与目标目录名字一样的目录链接到目标目录。
history 查询执行指令的历史记录 history [数字] : 查询最近使用的[数字]行指令 ![数字] : 执行某行指令

6.5时间日期指令

命令格式 功能描述
date 显示当前时间
date +%Y 显示当前年份
date +%m 显示当前月份
date +%d 显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒(完整日期时间)
date -s "字符串时间" 手动设置系统当前日期和时间(需 root 权限)
cal [选项] 选项表示某年所有日历,不加选项时,默认显示当前月份的日历

6.6查找指令

语法结构 功能说明 常用指令
find [搜索范围] [选项] 从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端。 -name <查询方式> 按照指定的文件名查找模式查找文件。 -user <用户名> 查找属于指定用户名所有文件。 -size <文件大小> 按照指定的文件大小查找文件(+n 大于、-n小于、n等于、单位k,M,G)
locate [文件] 快速定位文件路径 由于locate指令基于数据库查询,所以第一次运行前,需要执行updatedb初始化数据库。(可能需要自己下载)
which [指令] 查看指令在那个目录下
grep [选项] 查找内容 源文件 cat 源文件 | grep [选项] 查找内容 过滤查找,跟管道符"|"一起使用 -n : 显示匹配及行号 -i : 忽略字母大小写

6.7压缩解压指令

| 选项 / 语法结构 | 功能说明 | 常用指令 |
| gzip [文件] | 压缩,只能压缩为*.gz文件 | |
| gunzip 文件.gz | 解压 | |
| zip [选项] xxx.zip [目录名] | 压缩文件,项目打包用(YYDS) | -r : 递归压缩,压缩目录 |
| unzip [选项] xxx.zip | 解压 | -d : 指定压缩后文件的存放目录 |

tar [选项] xx.tar.gz 打包的内容 (多个文件中间加空格) 打包 -c : 产生.tar打包文件 -v : 显示详细信息 -f : 指定压缩后的文件名 -z : 打包同时压缩 -x : 解包.tar文件 打包:-zcvf ;解包 -zxvf 指定位置解包指令后加 -C 目录

七、组管理&权限管理

某用户创建了文件,就自然成为文件的所有者,而某用户创建初期必须有自己的组。

| 选项 / 语法结构 | 功能说明 | 常用指令 |
| chown [用户名] [文件名] | 修改文件所有者 | chown -R [用户名] [目录] 如果是目录,则使其下的所有子文件和目录递归生效 |
| groupadd 组名 | 创建组 | |
| chgrp 组名 文件名 | 修改文件所在组 | chgrp -R [组名] [目录] 如果是目录,则使其下的所有子文件和目录递归生效 |
| usermod | 改变用户所在组 | -g 新组名 用户名: 改变所在组 -d 目录名 用户名: 改变用户登录初始目录(用户需要有进入到目录的权限) |

chmod [权限设置] 文件/目录名 修改权限 u:所有者(user) g:所有组(group) o:其他人(others) a:所有人(= u + g + o 的总和) = :直接设定权限(覆盖原有权限) + :添加指定权限 - :移除指定权限 chmod [777] 文件 以十进制形式赋予权限 chmod [u,g,o,a]-[=,+,-]-[r,w,x] 文件

0-9位说明

第0位确定文件类型(d, -, l, c, b)

  • l 是链接,相当于 Windows 的快捷方式
  • d 是目录,相当于 Windows 的文件夹
  • c 是字符设备文件,如鼠标、键盘
  • b 是块设备,比如硬盘
    • 是普通目录

第1-3位 确定所有者(该文件的所有者)拥有该文件的权限。--- User

第4-6位 确定所属组(同用户组的)拥有该文件的权限。--- Group

第7-9位 确定其他用户拥有该文件的权限。--- Other

rwx 作用到文件

  • r \] 代表可读 (read):可以读取、查看

  • x \] 代表可执行 (execute):可以被执行

  • r \] 代表可读 (read):可以读取,ls 查看目录内容

  • x \] 代表可执行 (execute):可以进入该目录

其余数字

  • 1 文件:硬连接数 或 目录:子目录数
  • root 用户
  • root 组
  • 1234 文件大小(字节),如果是文件夹,显示 4096 字节
  • Mar 6 15:37 最后修改日期
  • a.out 文件名

八、crond任务调度

任务调度:是指系统在某个时间执行的特定命令或程序。

任务调度分类:

  1. 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。
  2. 个别用户工作:个别用户可能希望执行某些程序,比如对 MySQL 数据库的备份。
bash 复制代码
*/1 * * * * ls -l /etc/ > /tmp/to.txt

含义:每小时每分钟执行一次 ls -l /etc/ > /tmp/to.txt

项目 含义 范围 说明
第一个 * 一小时当中的第几分钟 0--59 分钟字段
第二个 * 一天当中的第几小时 0--23 小时字段(24小时制)
第三个 * 一个月当中的第几天 1--31 日期字段
第四个 * 一年当中的第几个月 1--12 月份字段
第五个 * 一周当中的星期几 0--7 星期字段(0 和 7 都代表星期日)
特殊符号 含义 示例与解释
* 代表任何时间(通配符) * * * * * command → 每分钟都执行一次命令
, 代表不连续的时间点(列表分隔符) 0 8,12,16 * * * command → 每天在 8:00、12:00、16:00 各执行一次命令
- 代表连续的时间范围 0 5 * * 1-6 command → 每周一到周六的 凌晨5:00 执行命令
/n 代表每隔 n 个单位时间执行一次(步长) */10 * * * * command → 每隔 10分钟 执行一次命令 (等价于 0,10,20,30,40,50 * * * *
指令 正确用法 说明
crontab -e 编辑当前用户的定时任务 最常用!新增或修改任务必用此命令
crontab -i 交互式删除任务 -r 更安全,会提示确认
sudo crontab -u username -e 为指定用户编辑任务 需 root 权限,用于管理系统级任务
journalctl -u cronie -f 实时查看 cron 日志 排查任务未执行原因

systemctl restart cronie ------ 重启 cron 服务(Arch/CentOS)

systemctl status cronie ------ 检查服务是否运行

at任务定时

1.at 命令是一次性定时计划任务

  • at 的守护进程 atd 会以后台模式运行,定期检查作业队列,到时间则执行对应任务。

2.默认检查频率为每 60 秒

  • atd 守护进程每隔 60 秒检查一次作业队列。若有待执行任务,它会比对当前时间与任务设定时间,匹配即执行。

3.一次性执行,不重复

  • at 命令用于安排仅执行一次的任务,执行完毕后该任务自动失效,不会循环或重复运行。

4.使用前需确保 atd 服务已启动

bash 复制代码
sudo systemctl start atd
sudo systemctl enable atd    # 设置开机自启(可选)

at [选项] [时间]
(Ctrl + D 结束输入)
选项 含义
-m 任务执行完成后,即使用户没有标准输出,也发送邮件通知用户。
-l 列出当前用户待执行的 at 任务(等价于 atq)。
-d 删除指定的 at 任务(等价于 atrm)。后跟任务序号
-v 显示任务将被执行的具体时间(verbose 模式)。
-c <job_id> 打印指定任务的内容到标准输出(用于查看任务脚本)。
-V 显示版本信息(Version)。
-q <队列> 使用指定的作业队列(默认是 a 队列,可自定义如 b, c 等)。
-f <文件> 从指定文件中读取任务命令,而不是从标准输入交互式输入。
-t <时间参数> [[CC]YY]MMDDhhmm[.ss] 格式直接提交要执行的任务(精确到秒)。
时间格式/方法 说明与规则 示例
hh:mm(24小时制) 接受当天的小时:分钟格式;若时间已过,则自动顺延至第二天执行。 04:00 → 明天凌晨4点
模糊时间词 使用自然语言描述时间点,如: • midnight(午夜) • noon(中午) • teatime(下午茶时间,默认16:00) noon → 今天中午12点
hh:mm AM/PM(12小时制) 需明确标注上午(AM)或下午(PM),避免歧义。 12pm → 中午12点 12am → 午夜0点
具体日期 + 时间 格式支持: • month day(月 日) • mm/dd/yydd.mm.yy ⚠️ 日期必须写在时间后面! 04:00 2025-03-01 04:00 03/01/25
相对时间法:now + count time-units now = 当前时间 • count = 数量 • time-units = 单位: - minutes / min - hours / hr - days / day - weeks / wk now + 5 minutes now + 2 hours now + 1 day
特殊关键词:today, tomorrow 直接指定"今天"或"明天",常配合具体时间使用。 14:30 today 09:00 tomorrow

九、Linux磁盘分区

硬盘有IDE和SCSI两种,SCSI标示为"sdx~"。

UUID为40位唯一标识符,mountpoint为挂载区。

写入分区如下:

步骤 操作命令 说明
1 fdisk /dev/sdb 启动对磁盘 /dev/sdb 的分区工具(需 root 权限)
2 m 显示帮助菜单,列出所有可用命令(如 p, n, d, w 等)
3 p 打印当前分区表(类似 fdisk -l),查看现有分区情况
4 n 新建分区 → 进入分区创建向导
5 (选择分区类型)→ 输入 p 选择"主分区"(Primary Partition) (也可选 e 扩展分区,但本例用主分区)
6 (分区号)→ 直接回车 默认使用第一个可用分区号(通常是 1)
7 (起始扇区)→ 直接回车 使用默认起始位置(通常从 2048 扇区开始)
8 (结束扇区)→ 直接回车 使用剩余全部空间(或可指定大小如 +10G
9 w 写入分区表并退出 fdisk(⚠️ 此操作会立即生效!)
10 q 不保存更改,直接退出(若误操作可使用)

挂载操作:

步骤 操作类型 命令/说明 示例
11 格式化分区 使用 mkfs 命令将分区格式化为指定文件系统(如 ext4) mkfs -t ext4 /dev/sdb1
-t 指定文件系统类型 • 常见类型:ext4, xfs, ntfs, vfat mkfs.xfs /dev/sdb1
12 挂载分区 使用 mount 将分区关联到目录(挂载点),使其可访问 mount /dev/sdb1 /newdisk
• 设备名或 UUID 均可 • 挂载点需提前创建 mkdir /newdisk → 再执行 mount
卸载分区 使用 umount 解除挂载关系 umount /dev/sdb1umount /newdisk
13 永久挂载 编辑系统配置文件 /etc/fstab,添加分区挂载信息 vim /etc/fstab 添加完成后执行 mount -a 立即生效(无需重启)

查询硬盘使用情况:

bash 复制代码
df -h

查询指定目录的磁盘占用情况:

bash 复制代码
du [选项] [目录或文件]
选项 功能说明 示例
-h 以人类可读格式显示(K, M, G, T) du -h /home
-s 仅显示总计值(不列出子目录详情) du -sh /var/log
-a 显示所有文件和目录(包括隐藏文件) du -ah ~
--max-depth=N 限制递归深度为 N 层 du -h --max-depth=1 /usr
-c 在最后增加一个"总计"行 du -hc *.txt
-d N --max-depth=N(简写形式) du -hd 2 /opt
-x 只统计同一文件系统内的文件 du -hx / (避免跨挂载点)
-b 以字节为单位输出 du -b file.txt
-k / -m / -g 强制以 KB / MB / GB 为单位 du -km /tmp

磁盘常用指令 :

序号 功能描述 命令 说明
1 统计 /opt 文件夹下文件的个数 `ls -l /opt grep "^-"
2 统计 /opt 文件夹下目录的个数 `ls -l /opt grep "^d"
3 统计 /opt 下所有文件个数(含子目录) `ls -lR /opt grep "^-"
4 统计 /opt 下所有目录个数(含子目录) `ls -lR /opt grep "^d"
5 以树状结构显示目录层级 tree /home 直观展示目录嵌套结构

十、网络配置

NAT模式:虚拟机下,通过与主机的虚拟网卡进行连接(需要关闭防火墙),访问外网,需要虚拟网卡与无线网卡进行数据交换。

-2026年3月19日,断更,我坚持不下去了。

相关推荐
xlq223222 小时前
30.进程池IPC
linux·运维·服务器
nuomigege2 小时前
beagleboneblack刷入官方IOT镜像后无法运行nodered问题的处理
linux·运维·服务器
huaxiu52 小时前
ubuntu下应用打不开
linux·运维·ubuntu
m0_683124792 小时前
Ubuntu服务设置开机自启
linux·运维·ubuntu
BestOrNothing_20152 小时前
(1)双系统中Ubuntu22.04启动盘制作与启动盘恢复全过程
linux·ubuntu·双系统·启动盘制作·启动盘恢复
AI成长日志2 小时前
【实用工具教程】Linux常用命令速查与实战场景:文件操作、进程管理与网络调试高频命令解析
linux·php
落叶花开又一年3 小时前
检验检测机构资质认定远程评审工作程序
linux·运维·服务器
idolao3 小时前
CentOS 7 安装 jdk-7u25-linux-x64.tar.gz 详细步骤(解压配置环境变量)
linux
旺仔.2913 小时前
僵死进程及Linux文件操作 详解
linux·运维·服务器