
参考补充Linux系统的基本使用指南速成帮助快速上手使用Linux系统_linux是什么,做什么用的-CSDN博客总结短选项长选项全称英文含义-f--force强制-r--recursive递归-l--list/long长格式列表-a--all全部-h--human-readable人性化可读单位文件大小自动换成K/M-v--verbose详细输出-u--update更新-i--inode打印 inode 号索引节点号-nhead、tail-n→--linescatcat -n→--number指定多少行tail -n 10 test.log给每行加上行号cat -n test.txt-c--bytes控制字节数head -c 100 test.txt # 读取前100字节-o--format自定义输出字段只打印指定的列ps -o pid,pgid,cmdtar 的-ffile命令1、rm(remove) -fforce 强制删除不弹出确认提示直接删文件不存在也不报错误只读文件也能删前提目录有写入权限2、mv(move)命令移动文件或目录命令语法 mv 要移动的文件或目录 目的路径重命名文件命令语法 mv 要重命名的文件或目录名 想要更改的文件或目录名参数-f强制移动-u--update只替换更新过的文件3、nlnumber lines给文件输出加上行号4、lnlink创建文件链接ln只传一个参数时语法含义ln TARGET # 等价ln TARGET ./TARGET 语法标准写法ln 源文件 目标链接名 # 意思在当前目录创建一个名叫【TARGET】的硬链接指向源文件【TARGET】正确示例硬链接ln TARGET TARGET_hardlink新建硬链接1_hardlink和文件1共用同一个 inode。软链接最常用类似 Windows 快捷方式加-sln -s TARGET TARGET_softlink-s--symbolic符号链接软链接硬链接 vs 软链接快速区分硬链接默认 ln不加 -s同一个文件多个文件名inode 相同删除原文件硬链接还能正常读取数据❗不能跨分区不能链接目录软链接ln -s独立小文件保存源文件路径原文件删掉软链接失效红闪烁断链✅支持跨分区、支持链接目录查看 inode 验证ls -li TARGET TARGET_hardlink TARGET_softlink-i--inode打印 inode 号索引节点号硬链接前面 inode 数字一模一样软链接inode 不一样文件名会带-zhangLAPTOP-QIPGLJKM:~$ ls -li 1 1_hardlink 1_softlink 9570149208327118 -rw-r--r-- 2 zhang zhang 97 Feb 2 2024 1 9570149208327118 -rw-r--r-- 2 zhang zhang 97 Feb 2 2024 1_hardlink 17732923533434238 lrwxrwxrwx 1 zhang zhang 1 Sep 28 23:11 1_softlink - 1第 4 列这个2不是子目录数量是硬链接计数number of hard links。这个 inode一共有2 个文件名硬链接指向它。补充1、CtrlZ 的后台暂停作业CtrlZ暂停当前程序丢到后台 → 状态Stopped进程还在只是暂停运行jobs查看后台所有作业[1][2][3]就是作业编号fg %1把 1 号作业切回前台继续运行bg %1让 1 号作业在后台继续跑不是暂停kill %1直接按作业号杀进程推荐不用查 PID2、ps命令查看当前系统上正在运行的各种进程信息ps -o pid,pgid,cmdpid进程 IDpgid进程组 IDprocess group id就是刚才 kill 带负号用的 PGIDcmd启动命令输出示例PID PGID CMD 9 9 -bash 248 248 ps -o pid,pgid,cmd常用组合示例# 看PID、父PID、进程状态、命令 ps -o pid,ppid,stat,cmd # 只看当前终端的进程加x会看到所有进程 ps -o pid,pgid,cmd # 带标题默认有标题去掉标题加 --no-headers ps -o pid,pgid,cmd --no-headers进程状态 stat 补充你刚才看到的 StoppedTStopped被暂停CtrlZ就是这个状态S休眠等待事件R正在运行前台进程组ps -o默认只列出当前 shell 会话的进程想看系统全部进程搭配-e3、/usrUnix System Resources存放系统软件资源系统安装后自带的程序、库、手册/usr/bin大部分用户命令ls、curl、python/usr/sbin系统管理员命令/usr/lib程序依赖库文件/usr/share手册、配置模板、图标文档/usr/local管理员手动编译安装的软件很常用和 /usr 区分权限root 管理普通用户只读不能随便删特点属于系统程序重装系统会被覆盖正常运行时推荐只读挂载服务器最佳实践4、find / -name app 2/dev/null查找 app 目录 / 文件命令拆分理解.从当前目录往下所有子目录查找-name app名字完全匹配app区分大小写 App / APP 不算2Linux 文件描述符标准错误 stderr。程序报错、警告信息默认走 fd2。重定向符号把左边输出写入右边文件。/dev/null空设备黑洞丢进去的数据直接扔掉不会保存。2/dev/null把所有错误信息全部丢弃屏幕只保留正常输出三个基础文件描述符必记编号名称含义0stdin 标准输入键盘输入1stdout 标准输出正常打印信息默认屏幕2stderr 标准错误报错、警告信息默认屏幕stdout (1) 和 stderr (2) 默认都打印屏幕但是两条独立数据流 普通只重定向 1标准输出错误信息还会继续打到屏幕。对比示例# 全局查找app不带过滤一堆 Permission denied 权限报错刷屏 find / -name app # 2/dev/null正常结果保留错误信息扔掉 find / -name app 2/dev/null # log.txt 等价于 1log.txt把正常输出写入文件错误依旧打印屏幕 find / -name app log.txt # 1log.txt 21标准输出、标准错误全部写入同一个文件 find / -name app log.txt 2121把文件描述符 2 指向描述符 1 的目标同一个地方容易踩坑的顺序坑 ❌find / -name app 21 log.txt顺序写反这个写法错误先让 stderr 指向屏幕再把 stdout 写入文件错误依然输出屏幕。重定向顺序很重要。