公司动态

Linux系统个人总结

📅 2026/8/1 2:06:37
Linux系统个人总结
一、Linux目录结构Linux的目录结构遵循FHS文件系统层次结构标准核心特点是一切从根/开始采用树状倒挂结构。如图1所示。、图 1系统启动必看别乱动/boot存放内核vmlinuz、引导加载程序grub等。如果误删系统将无法启动。/etc系统神经中枢。存放所有系统级配置文件如网络、软件源、用户密码。大部分系统设置都在这里修改。/sys内核的虚拟映射。存放内核参数和设备信息用于动态修改内核行为如电源管理。命令与库文件软件运行依赖/bin 与 /sbin早期存放基础命令如 ls、cp和系统管理命令如 fdisk。现代发行版如CentOS 7中它们通常是指向 /usr/bin 的软链接。/lib 与 /lib64存放系统基础库文件类似Windows的DLL文件。同样现代系统通常指向 /usr/lib。用户自己的地盘你的操作区/home普通用户的家目录。比如用户 alice 的数据在 /home/alice对应快捷符号 ~。/root超级管理员root的家目录。出于安全考虑独立放在根下不混入普通用户区。数据挂载点接入外部存储/mnt 与 /media临时挂载点。/mnt 用于手动挂载如修复系统/media 用于自动挂载如插入U盘。/dev设备文件目录。所有硬件硬盘、鼠标、终端都映射为这里的文件如 /dev/sda 代表第一块硬盘。动态与临时数据关机即消失/tmp临时文件存放地。系统重启后通常清空任何人都可读写但不能存放重要数据。/run存放系统启动以来的运行时数据如进程PID。关机即消失。庞大的软件生态/usrUnix系统软件资源这是最大的目录。绝大多数的用户应用程序和文件都安装在这里相当于Windows的 Program Files。/usr/bin用户级命令。/usr/sbin系统管理命令。/usr/lib库文件。/usr/local手动编译安装的软件默认路径独立于包管理器。/usr/share共享数据文档、图标、字体等。/opt大型第三方软件安装目录如Oracle、Google Chrome通常以独立文件夹存在。虚拟与进程信息/proc内存中的虚拟文件系统。存放当前运行进程和内核状态信息如 /proc/cpuinfo 查看CPU。不占硬盘空间。动态数据仓库系统的“工作日志室”/var存放系统运行过程中会持续变化的数据variable data如日志、缓存、队列等。它与 /usr静态程序和 /etc静态配置形成互补让 /usr 可以被挂载为“只读”以增强安全性。以下是最常用子目录/var/log/系统日志大本营。记录系统和所有服务如Nginx、MySQL的运行状态、错误信息是运维排查问题的第一站。常见文件有 syslog、auth.log、dmesg 等。/var/spool/任务队列池。存放等待被处理的数据如待发送的邮件/var/spool/mail/、打印任务/var/spool/cups/等。/var/cache/应用程序缓存。存放可被重新生成的临时缓存数据如 apt 的软件包缓存/var/cache/apt/清理后不影响系统运行。/var/lib/程序状态数据库。存放应用程序需要永久保存的状态信息如 MySQL 数据库文件/var/lib/mysql/、RPM 包数据库等。/var/run/运行时数据。存放系统启动以来的进程PID文件等。现代系统中该目录通常是指向 /run 的软链接。/var/lock/资源锁文件。当某个程序占用硬件或文件资源时在这里创建锁文件防止其他程序冲突访问。二、Linux基础命令简单命令pwd显示当前所在的完整路径。ls:列出目录内容。-l显示详细信息-a显示隐藏文件-h将文件的大小显示为简单易懂的单位空格路径查看对应目录cd切换目录。.. 返回上级目录~ 返回用户主目录- 返回上一个目录/返回根目录。mkdir创建目录。新建单个目录mkdir 目录名一次性新建多个目录mkdir 目录1 目录2 目录3-p递归创建多层嵌套目录目录已存在不报错工作最常用-m创建同时直接指定目录权限touch创建空文件或更新文件时间戳。创建空文件touch file.txt如果 file.txt 不存在会新建一个空文件如果已存在则只更新其时间戳。一次创建多个文件touch a.txt b.txt c.txt使用 -t 指定时间touch -t 202601311200 file.txt将 file.txt 的时间戳改为 2026年1月31日 12:00使用 -r 参考其他文件touch -r ref.txt file.txt让 file.txt 的时间戳和 ref.txt 保持一致rmdir删除空目录。删除单个空目录rmdir 目录名删除多个空目录rmdir 目录1 目录2 目录3核心硬性规则只能删除空目录非空目录无法删除-p递归删除多层嵌套空目录rm:删除文件或目录。删除单个文件 rm 文件名删除多个文件 rm 文件1 文件2 文件3-r 递归删除用于删除目录及其内部所有内容-f: 强制删除不提示确认忽略不存在的文件-i: 交互式删除每次删除前都询问确认cp复制文件或目录。复制文件cp 源文件 目标文件复制文件到目录cp 源文件 目标目录/-r递归复制用于复制目录必加-i交互式复制目标存在时询问是否覆盖-f强制复制目标存在时直接覆盖不询问-p保留文件属性权限、时间戳等使用示例复制文件并重命名cp original.txt backup.txt将 original.txt 复制为 backup.txt复制文件到目录cp file.txt /home/user/Documents/复制整个目录必须加 -rcp -r project/ project_backup/将 project 目录完整复制到 project_backup复制多个文件到目录cp a.txt b.txt c.txt target_dir/保留文件属性复制cp -p config.conf config_backup.conf复制的文件保持原权限和修改时间不变使用通配符批量复制cp *.log logs/将所有 .log 文件复制到 logs 目录mv移动/重命名文件或目录。重命名mv 原文件名 新文件名移动文件到目录mv 源文件 目标目录/移动目录mv 源目录 目标目录/-i交互式移动目标存在时询问是否覆盖-f强制移动目标存在时直接覆盖不询问-u只移动比目标文件更新的文件增量更新使用示例:重命名文件mv old_name.txt new_name.txt重命名目录mv project/ project_backup/移动文件到其他目录mv file.txt /home/user/Documents/移动多个文件到目录mv a.txt b.txt c.txt target_dir/移动目录mv myfolder/ /backup/将整个 myfolder 目录移动到 /backup/ 下结合通配符批量移动mv *.log logs/移动所有 .log 文件到 logs 目录mv file_{1..10}.txt archive/移动file1.txt~file10.txt文件到 archive 目录cat、less、more查看文件内容。对比维度catmoreless显示方式一次性输出全部内容分屏显示按空格翻页分屏显示按空格翻页向上翻页无法翻页有限支持按 b但依赖版本流畅支持按 b 或 k向下翻页无法翻页按空格/回车按空格/回车跳转到开头/结尾❌❌按 g / G搜索功能❌支持/关键词支持/ 和 ? 双向搜索查看时编辑❌❌按 v 进入编辑器文件加载方式一次性全部读入内存按需读取按需读取大文件更省内存适合文件大小小文件几十行大文件大文件包括 GB 级是否适合管道输入可以可以可以退出方式自动结束按 q 退出按 q 退出head、tail查看文件开头结尾内容默认10行。tail -f 文件名可实时监控日志输出。find搜索文件。按文件名搜索参数作用示例-name精确匹配文件名区分大小写find . -name test.txt-iname忽略大小写匹配find . -iname *.jpg-regex使用正则表达式匹配完整路径find . -regex .*\.txt$按文件类型搜索参数类型示例-type f普通文件find . -type f-type d目录find . -type d-type l符号链接find . -type l-type b块设备文件find /dev -type b-type c字符设备文件find /dev -type cgrep搜索文件内容中的文本模式。参数作用示例-i忽略大小写grep -i error file.txt-v反向匹配显示不包含模式的行grep -v # config.conf过滤注释行-n显示行号grep -n error app.log-c统计匹配行数grep -c error app.log-r / -R递归搜索目录grep -r TODO ./src/-l只输出匹配的文件名grep -l error *.log-L只输出不匹配的文件名grep -L SUCCESS *.log-o只输出匹配的部分grep -o [0-9]\{3\}-A N显示匹配行及其后 N 行Aftergrep -A 5 error app.log-B N显示匹配行及其前 N 行Beforegrep -B 5 error app.log-C N显示匹配行及前后各 N 行Contextgrep -C 3 error app.log-e指定多个匹配模式grep -e error -e warning app.log-f从文件读取匹配模式grep -f patterns.txt app.log-E扩展正则表达式同 egrepgrep -E error|fatal app.log-F固定字符串匹配同 fgrep不解析正则grep -F .* file.txtclear清除终端屏幕上的所有内容将光标移动到左上角。which查找命令位置。-a显示所有匹配的路径可能有多个版本。示例which -a pythonsed文本替换、删除、插入。核心语法sed [选项] 动作 文件名最常用场景场景命令替换文本sed s/旧/新/g file.txt直接修改文件sed -i s/旧/新/g file.txt删除行sed /关键词/d file.txt删除空行sed /^$/d file.txt打印指定行sed -n 5,10p file.txt插入行sed 3i\插入内容 file.txt核心参数参数作用-i直接修改文件不输出到屏幕-n取消默认输出配合 p 只打印匹配行-e执行多个 sed 命令-r / -E使用扩展正则表达式常用示例替换文件中的所有 foo 为 bar输出到屏幕不改文件sed s/foo/bar/g file.txt直接修改文件sed -i s/foo/bar/g file.txt替换行首的 # 注释sed -i s/^#// config.conf删除包含 debug 的行sed /debug/d app.log删除空行sed /^$/d file.txt打印第 5 到第 10 行sed -n 5,10p file.txt在第 3 行后面插入一行sed 3i\new line file.txt替换指定第 2 行中的内容sed 2s/old/new/ file.txt组合多个操作sed -e s/foo/bar/g -e /^$/d file.txtawk字段提取、计算、格式化报表。核心语法awk 模式 { 动作 } 文件名核心概念$0整行内容$1第 1 列$2第 2 列$NF最后一列NR当前行号NF当前行的字段数列数FS字段分隔符默认空格/制表符最常用场景场景命令打印指定列awk {print $1, $3} file.txt指定分隔符awk -F, {print $2} data.csv条件过滤awk $3 100 {print $0} file.txt统计行数awk END {print NR} file.txt求和awk {sum $1} END {print sum} file.txt格式化输出awk {printf %-10s %s\n, $1, $2} file.txt三、小技巧管道符 |将前一个命令的输出作为后一个命令的输入。这是组合命令 的神器。history | grep ssh # 在命令历史中搜索ssh相关记录重定向覆盖写入文件如 echo hello file.txt。追加到文件末尾。快捷键Tab自动补全路径或命令救命技能。Ctrl C终止当前运行的程序。Ctrl D退出当前终端。Ctrl R逆向搜索历史命令输入关键词就能找到。后台运行在命令后加 可放入后台如 python script.py 。用 jobs 查看后台任务用 fg 调回前台。