linux学习

3177 字
16 分钟
linux学习

目录结构#

/ :根目录,所有文件系统起点

  1. /bin 基础可执行命令,所有用户可用、系统启动必需指令(ls、cat 等)。现代系统大多软链接到 /usr/bin。
  2. /boot 系统启动文件:内核、引导程序 grub、initramfs。
  3. /dev 设备文件目录。Linux 一切皆文件,硬盘、鼠标、串口等硬件都在此映射。
  4. /etc 全局配置文件目录。系统、服务所有配置(网卡、用户、软件配置)。
  5. /home 普通用户家目录。每个用户独立文件夹(如图 alice、bob、eve),存放个人数据。
  6. /root 超级管理员 root 的专属家目录,独立于 /home。
  7. /run 运行时临时数据,进程 pid、套接字、锁文件,重启自动清空。
  8. /sbin 系统管理命令,主要供 root 管理员使用(ifconfig、fdisk 等),通常软链接 /usr/sbin。
  9. /tmp 全局临时目录,所有用户可读写,系统会定期清理文件。
  10. /usr Unix Software Resource,系统软件资源目录。存放大量应用程序、文档、库文件(图中 /usr/bin、/usr/sbin、/usr/local 都在此)。
  11. /var 可变数据目录。存放持续变化内容:日志、缓存、数据库、邮件、运行数据。图中 /var/tmp 长期临时文件。

基础命令#

  • Ls 命令 a:all,显示所有文件,包含 . 开头的隐藏文件 l:long,长格式展示,权限、所有者、大小、修改时间等详情 ll:别名 (alias),等价于 ls -l,非独立命令。 h:human-readable,配合 -l,文件大小自动换算 KB/MB/GB
  • Cd
  • Pwd
  • Mkdir 语法:mkdir [-p] Linux路径 作用:创建文件夹 -p:递归创建多级目录;上级目录不存在时自动创建,目录已存在不会报错
  • Touch 创建文件
  • Cat 查看文件
  • More 多页逐页查看文件 空格下一页 B上一页
  • Mv 可以用移动/改名 示例
    • mv shaige shuaige1
    • mv shuaige1 shuaige/ 移动到文件夹(使用‘/’代表是个文件夹不执行改名操作)
  • Cp
  • Rm -rf
    * 模糊匹配,等价 sql 中% 示例: *test/test*/*test*
  • Which 查看命令的地址 which cat/cd/touch
  • Find :
    • 按名字参数 示例 find / -name "*vscode*"
    • 按大小-size ` find / -size +1G find / -size -100M
  • Grep ⭐
    • 功能:从文件内按关键字过滤文本行 语法:grep [-n] 关键字 文件路径
      1. -n 展示匹配内容行号
      1. 关键字必填;存在空格 / 特殊字符建议用 "" 包裹 ps(不支持)通配符 *
      1. 文件路径必填;可通过管道接收标准输入作为数据源
  • Wc
    • 功能:统计文件的字节、字符、行数、单词数语法:wc [-c -m -l -w] 文件路径
      • -c:统计字节 (bytes) 数量
      • -m:统计字符数量
      • -l:统计行数(面试最常用)
      • -w:统计单词数量
      • 文件路径:待统计文件,支持管道接收标准输入
  • 管道符⭐
    • 作用:把前一条命令的标准输出,作为后一条命令的标准输入 语法:命令1 | 命令2
    • 可嵌套使用,如 ls -a | wc -l
  • Echo
    • ‘’ 使用反引号标注这个是特殊的命令不要输出命令的名字而是命令执行后的结果
  • 与>>重定向 指代覆写或追加到文件

  • Tail 查看文件尾部内容,-f 表示持续追踪实施查看更新(ctrl+c 退出),-num 指代只看尾部几行
    • 格式顺序要求正确: tail -参数 -文件路径 参数要在中间
  • Vim⭐⭐⭐
    • i 在当前光标位置进入输入模式
    • a 在当前光标位置 之后 进入输入模式
    • I 在当前行的开头,进入输入模式
    • A 在当前行的结尾,进入输入模式
    • o 在当前光标下一行进入输入模式
    • O 在当前光标上一行进入输入模式
    • esc 任何情况下输入 esc 都能回到命令模式 命令模式:
敲打:触发
:w 保存文件,不退出
:w 文件名 另存为新文件
:q 退出(修改没保存报E37错误)
:q! 强制退出,**丢弃所有修改**
:wq 保存+退出
:wq! 强制保存退出(只读文件需要)
:x 等价wq,有改动才写盘,无改动直接退出

权限章节#

以下在 ROOT ( psw: P@3 )权限下可用:

  • Su -【用户名】
  • Groupadd 创建用户组
  • Groupdel
  • Useradd -g ,g 表示是否加入用户组,若不添加则自动创建同名组,若已经冲突存在的同名组必须补充 -g 选项参数; -d ,添加用户的目录,默认/home/用户名字
  • Userdel -r,-r 则选择是否保留 home 下的用户数据
  • Id 【用户】查询用户对应用户组
  • Usermod -aG 【用户组】 【用户】 修改用户到指定用户组
  • Getent passwd 查询系统用户 显示结果格式 用户名:密码 x(非明文显示): 用户 ID: 组 ID: 描述信息 (无用):HOME 目录:执行终端 (默认 bash)
权限字符串#

Linux 权限字符串共 10 位:第 1 位标识文件类型(- 普通文件 / d 目录 / l 软链接),后续 9 位分为三组,依次为所属用户、所属用户组、其他用户的 r/w/x 读写执行权限。

  • Chmod 命令: 格式 chmod 【-R 文件夹】 ---(权限) 文件
u=user o=other其他组权限 g=group
r read 读取文件内容 列出目录内文件名(ls)
w write 修改 / 覆盖文件内容 新建、删除、重命名目录内文件
x execute 运行该程序 / 脚本 进入目录(cd),访问目录内部文件元数据

数字权限 r = 4 w = 2 x = 1 相加组合最高为7,例如4+2+1=7,则rwx权限

  • Chown 命令: 修改指定文件所属 (仅 root) 格式 chown 【-R】 【用户】:【用户组】 文件/文件夹,ps:: 左右可选,不选默认为用户组 示例 root:空,空:root,test1:miaomiao

快捷键#

  • Ctrl+c
  • !历史最近的前缀命令
  • Ctrl+r,模糊查询历史命令
  • History 查询历史命令
  • Ctrl+a,ctrl+e,a:光标到行头,e 到尾
  • Ctrl+d 退出账号

Systemctl#

Terminal window
常用
systemctl start xxx 启动服务
systemctl stop xxx 停止服务
systemctl restart xxx 重启服务,中断连接
systemctl reload xxx 重载配置,不停止进程,需要程序支持
systemctl try-restart xxx 仅运行状态才重启
systemctl status xxx 查看服务完整状态、pid、最近日志
自启
systemctl enable xxx 设置开机自启
systemctl enable --now xxx 设置开机自启同时立刻启动
systemctl disable xxx 取消开机自启
systemctl is-enabled xxx 查询开机自启状态,输出 enabled/disabled/static/masked
systemctl is-active xxx 查询当前是否正在运行
屏蔽
systemctl mask xxx 屏蔽服务,禁止手动 / 开机启动
systemctl unmask xxx 解除屏蔽
杂项
systemctl daemon-reload 修改 service 单元文件后执行,重新加载 systemd 配置
systemctl list-units --type=service 列出当前已加载服务
systemctl list-unit-files --type=service 列出全部已安装服务文件,附带自启状态
systemctl --failed 列出启动失败的服务
systemctl reset-failed 清除失败状态标记
系统操作
systemctl reboot 重启机器
systemctl poweroff 关机
补充
.service 后缀可以省略,普通用户操作服务需要 sudo
journalctl -u xxx -f 配套,实时看服务日志
状态输出说明
enabled:开机自启;disabled:不自启
static:不能直接 enable,被其他服务依赖拉起
masked:被屏蔽
active (running):当前正在运行
inactive (dead):当前已停止

软连接#

Ln -s 被链接文件 要创建的文件连接(不可同名已存在)

Date#

date +%Y-%m-%d-%H:%M:%S ps:不能有空格,可以用 - 进行间隙的连接,既可提高可读性又可以保证不出错。 -d:解析时间字符串 -s:修改系统时间 +:自定义输出格式

date +%Y-%m-%d+%H
2026-08-20+16
date %Y-%m-%d+%H
date: invalid date ‘%Y-%m-%d+%H’

date -d:按给定字符串输出日期,用于日期计算 支持如下

  • year 年
  • month 月
  • day 天
  • hour 小时
  • minute 分钟
  • second 秒
Terminal window
示例
date -d "+1 day" +%Y%m%d # 后一天
date -d "-1 day" +% Y% m% d # 前一天
date -d "-1 month" +% Y% m% d # 上一月
date -d "+1 month" +% Y% m% d # 下一月
date -d "-1 year" +% Y% m% d # 前一年
date -d "+1 year" +% Y% m% d # 下一年
-d 可和 + 格式化配合使用

Wget /curl#

wget/curl [选项] [url]-b 指代后台下载

  • curl:通用数据传输工具,侧重 API 调试、HTTP 交互、协议测试
  • wget:专注 文件下载,原生支持递归下载、断点续传、后台执行

端口#

Linux 支持 65535 个:

  • 1-1023:系统用
  • 1024-49151:随意
  • 49152-65535:应用自行临时使用

Nmap 命令#

nmap [-p] 192.168.1.10:扫描该 ip 主机开启的端口

常用参数:

  • -p:指定端口
  • -sn:仅主机存活探测,跳过端口扫描
  • -oN:普通文本输出

Netstat 命令⭐#

适用:Linux,工具包:net-tools,新系统优先 ss 替代

参数分级#

级别参数
高频-t tcp 协议、-u udp 协议、-l 仅监听端口、-n 数字形式不域名解析、-p 显示进程 pid 与名称、需 root 权限、-a 所有连接(监听 + 已建立)
中频-r 路由表、-s 网络协议统计、-i 网卡信息
低频-g 多播组成员、-M 伪装连接、-c 持续输出实时刷新、-W 宽输出

常用组合#

Terminal window
netstat -tunlp # 查看 tcp/udp 监听端口 + 进程,端口占用排查首选
netstat -antp # 全部 tcp 连接,含已建立、等待状态 + 进程
netstat -tuln # 监听端口,不显示进程,无需 root
netstat -s # 网络收发、错误、重传等统计
netstat -r # 查看系统路由表
netstat -ant # 全部 tcp 连接,不展示进程
netstat -i # 网卡收发、丢包统计
netstat -tunlp | grep 端口号 # 筛选指定端口占用进程
netstat -antp | grep ESTABLISHED # 筛选已建立 tcp 连接
netstat -c -ant # 持续实时查看所有 tcp 连接

tcp 关键状态#

状态含义
LISTEN端口监听,等待外部接入
ESTABLISHED连接正常通信
TIME_WAIT连接主动关闭后等待端口释放
CLOSE_WAIT被动关闭,程序未释放连接,资源泄漏常见
FIN_WAIT1/FIN_WAIT2四次挥手中间状态

输出字段说明#

字段含义
Proto协议
Recv-Q接收队列,非 0 代表阻塞堆积
Send-Q发送队列,非 0 代表阻塞堆积
Local Address本地地址端口
Foreign Address远端地址端口
State连接状态
PID/Program name进程 id 和程序名

Ps 进程命令#

ps [-e -f]

  • -e 显示全部进程
  • -f 格式化显示
1. UID:进程所属用户
2. PID:进程 ID
3. PPID:父进程 ID
4. C:CPU 使用率
5. STIME:进程启动时间
6. TTY:终端(就是刚才说的 pts/1)
7. TIME:占用 CPU 总时间
8. CMD:启动命令

Kill [pid]


top 命令详解#

top 是 Linux 下实时动态查看系统进程、资源占用的工具,默认 3 秒刷新一次。

语法:top [-选项]

常用选项
-d 秒数:设置刷新间隔,例 top -d 1 每秒刷新
-p pid:只监控指定进程,多个逗号分隔,例 top -p 1234,5678
-H:开启线程视图,把线程单独展示,排查高 CPU 线程常用
-b:批处理模式,输出不交互,适合脚本采集日志
-n 次数:配合 - b 使用,采集指定次数快照后退出,例 top -b -n3
-i:启动默认不显示空闲休眠进程
-c:显示完整命令行(COMMAND 全路径参数)
中频补充:
-u 用户名:只展示该用户的进程
-U uid:按 UID 过滤进程

命令快捷键 H:显示 help 命令速查快捷键


Df 磁盘 du#

Df -h Du 查看目录的磁盘状态


Iostat#

使用 iostat 查看 CPU、磁盘的相关信息 语法: iostat [-x] [num 1] [num 2] 选项: -x, 显示更多信息 num 1: 数字,刷新间隔,num 2: 数字,刷新几次


环境变量路径#

Env 命令获取环境变量集合 Path 核心的环境变量路径 env | grep PATH $符号:取值 Echo 打印 Export 临时改变环境变量值

Tips永久生效 : - 针对用户:~/.bashrc 文件中配置 - 针对全部用户:/etc/profile 文件中配置` 配置完成,可以通过 source 命令立刻生效


解压缩#

压缩格式:

  • zip 格式: Linux、Windows、MacOS, 常用
  • 7zip: Windows 系统常用
  • rar: Windows 系统常用
  • tar: Linux、MacOS 常用
  • gzip: Linux、MacOS 常用

语法: tar [-c -v -x -f -z -C] 参数 1 参数 2 … 参数 N

  • -c, 创建压缩文件,用于压缩模式
  • -v, 显示压缩、解压过程,用于查看进度
  • -x, 解压模式
  • -f, 要创建的文件,或要解压的文件,-f 选项必须在所有选项中位置处于最后一个
  • -z, gzip 模式,不使用 - z 就是普通的 tarball 格式
  • -C, 选择解压的目的地,用于解压模式
示例
压缩: tar -cvf xx压缩包 1/2/3(文件)
解压: tar -xvf xx压缩包 -C url路径
ps:格式gzip文件须加入z选项参数

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
linux学习
https://firefly.cuteleaf.cn/posts/编程学习/linux运维/linux学习/
作者
伊月酱
发布于
2026-08-13
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Firefly
Hello, I'm Firefly.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
34
分类
11
标签
49
总字数
46,777
运行时长
0 天
最后活动
0 天前

文章目录