Linux基础命令入门:终端文件操作与权限管理实战指南

发布时间:2026/10/9 6:07:33
Linux基础命令入门:终端文件操作与权限管理实战指南 第一次打开 Linux 终端大多数人心里都在打鼓一个黑得发光的窗口一行简短的文字光标一闪一闪——我的桌面呢我的鼠标呢我要去哪儿点图标其实你面前这一行才是 Linux 最真实的样子。无论是给服务器装环境、写自动化脚本还是以后做运维、接触嵌入式设备、云主机最终都要回到这条“基础指令”上。图形界面是给普通用户准备的壳真正干活的是你在终端里敲下的命令。这篇文章面向刚接触 Linux 的同学不打算让你啃一本“命令字典”而是把最常用的那批基础指令拆开揉碎讲清楚每条命令解决什么问题、背后是什么逻辑、有哪些坑。你跟着敲一遍就摸到 Linux 的脾气了。1. 初识终端别急着敲命令先看懂它在跟你说话1.1 为什么Linux一定要会命令行很多人问过这个问题Linux 明明有桌面版图形界面不也能点鼠标吗为什么非要学命令行答案很现实服务器通常没有桌面嵌入式设备甚至没有屏幕容器镜像里唯一稳定的操作入口就是命令。你在图形界面里每点一下鼠标底层都是在调用某条命令而你在命令行里敲的每一条命令都是在直接和系统对话。可以打个比方图形界面的文件管理器像是饭店门口的迎宾员帮你把需求转达给后厨命令行就是直接走到后厨对师父说“给我炒个回锅肉”。迎宾员态度再好遇到后厨出菜慢、客人催单这种混乱时刻你至少得听得懂师父在喊什么。等你要做自动化备份、批量部署、远程排查故障时你会发现命令行才是效率的最终答案。从技术层面说Shell 是一个解释器常见的有 bash、zsh。它把你输入的字符串按空格拆成“命令、选项、参数”然后去系统目录里找到对应的可执行文件并执行。你敲date其实是执行了/usr/bin/date你敲ls系统会在 PATH 环境变量指定的目录里找到/bin/ls。理解这一点后面遇到“command not found”就不会发懵——要么命令没装要么路径不在 PATH 里。1.2 看懂提示符少走一半弯路终端里那一行userubuntu:~$不是装饰品它自带信息量。user是当前用户名ubuntu是主机名~是当前目录最后的$表示当前是普通用户。如果你切换到了管理员身份提示符常会变成rootubuntu:/home/user#注意末尾从$变成了#。这一行能帮你判断两件事我在哪我是谁。我带过的实习生里有人辛辛苦苦敲了半天命令才发现自己一直待在 root 权限下随手一条操作就把系统配置改坏了。所以我的习惯是只要看见#删文件、改权限之前先停三秒确认自己敲的是什么再回车。终端里还有几个快捷键建议一开始就练成肌肉记忆Tab补全命令和路径CtrlC中断当前正在跑的命令CtrlD退出当前登录上下方向键翻历史命令。尤其是 Tab 补全能省掉一半敲错路径的概率。1.3 命令的通用结构和一个好帮手 manLinux 命令的通用结构是“命令 选项 参数”例如ls -l /home。选项通常以-开头如-l、-a也有长选项写法--all。短选项可以合并比如ls -lh相当于ls -l -h。多数的选项顺序没有强制要求但少数命令会区分先后遇到报错时先检查语法。如果遇到没见过的命令不要慌。先试命令 --help通常会有简短的参数说明还看不懂就用man 命令打开完整手册。man 手册里按空格翻页按q退出输入/关键词可以在手册内搜索。很多人问 Linux 面试题到底考什么其实基础部分很少考冷门命令反而很看重“遇到不认识的命令懂不懂得自己查”这个能力——这比背绕口令一样的参数清单值钱多了。2. 文件与目录Linux的“地址系统”没你想的难2.1 先把地址搞清楚绝对路径与相对路径在 Linux 里一切皆文件目录也是文件。想在文件系统里找路先分清绝对路径和相对路径。绝对路径永远从根目录/写起比方说/etc/hosts相对路径则从你当前所在位置开始。.代表当前目录..代表上一级目录。可以这样理解绝对路径是“北京市朝阳区某路某号”无论你在哪儿都能找到相对路径是“往前走两百米右转”一旦你不在那个位置就失效了。新手最容易把根目录/和用户主目录~搞混。/是系统最顶层的目录相当于 Windows 的磁盘根~是你自己的家目录通常叫/home/用户名。刚登录时终端会默认停在~这里放的是你的配置和文档。至于/etc、/usr这些目录里面是系统和软件文件初学阶段先别乱翻。迷路的时候先敲pwd它会把当前目录完整打印出来。很多人习惯在图形界面的文件管理器里看地址栏但在命令行里pwd就是你的定位器。一个建议写脚本时尽量用绝对路径因为脚本可能在任意目录下被调用日常手动操作相对路径更顺手。2.2 目录操作三兄弟ls、cd、mkdirls是 list 的缩写列出目录内容。直接敲ls只显示文件名我建议你习惯加参数ls -lh能显示文件大小、修改时间、权限等而且大小单位是 K、M、G读起来不费劲。ls -a能显示以.开头的隐藏文件ls -lrt则把最新修改的文件排在最后面在日志目录里找最近一次生成的报告非常实用。cd用来切换目录。不带参数直接回车会回到自己的家目录~cd -会回到上一个所在目录。我平时经常在两个目录之间来回切换cd -比重新敲一长串路径省事太多。注意cd ..是往上一级cd .是原地不动——别小看这点很多人第一次敲错就懵了。mkdir创建目录常用参数是-p可以一次性创建多级目录比如mkdir -p /tmp/test/demo。接着回答很多人搜的问题“Linux 删除文件夹命令”。空目录可以用rmdir目录里有内容就得用rm -r 目录名。注意rm -r会连目录里的文件一起删除而且没有回收站回车后就是永别。我强烈建议文件名里不要用空格改用-或_。如果你的文件叫my work.txt每次敲命令都要加引号或转义符写脚本时更是灾难。这不是强制规范但能让你少踩很多坑。2.3 文件操作与重命名实测触摸、查看、复制、移动、删除touch有两个用途创建一个空文件或者更新已有文件的时间戳。小文件用cat查看就够了文件较长时用less按空格翻页、按q退出比cat刷屏舒服得多。复制文件用cp递归复制目录要加-r。cp -p可以保留原文件的权限和时间属性做备份时非常实用cp -a则是更完整的归档模式。移动文件或重命名用mv——很多人搜“linux 用 shell 重命名文件”最简单的答案就是mv 旧名 新名。批量重命名需要配合循环语句那是 shell 脚本的进阶内容先把单条命令用熟。删除文件用rm删除目录要加-r。必须警告的是rm -rf这个组合-r递归“-f”强制一旦指向系统目录后果不堪设想。我亲眼见过有人把rm -rf test/多敲了一个空格写成rm -rf test /命令的含义就从“删除 test 目录”变成了“删除 test 目录和根目录下所有内容”。新版系统虽然对根目录有保护但你的目标目录一旦选错文件照样救不回来。想安全一点删除重要目录前先mv 目录名 /tmp/观察一阵子确认没问题再回头删也不迟。3. 权限和用户为什么你老是“Permission denied”3.1 先看懂那一串 drwxr-xr-x用ls -l查看文件时第一列是一串“天书”drwxr-xr-x。拆开看就简单了。第一个字符表示类型d是目录-是普通文件l是软链接。后面九位分三组每组三个依次表示文件属主、属组用户、其他用户各自的权限r 是读w 是写x 是执行。为什么 Linux 要搞权限想象一张门禁卡普通员工卡能进自己的工位但不能进机房管理员卡能进机房也不能随便翻财务室。没有门禁任何人都能乱动系统服务本身也不安全。权限错乱导致的线上事故我见过不止一次要么服务起不来要么不该公开的文件被人读了去。3.2 权限数字法644 和 755 到底怎么算权限可以用数字表示r4w2x1加总即可。例如chmod 644 file表示属主可读写426组和其他人只读4。chmod 755 script.sh表示属主可读写执行7其他人可读可执行5。如果你一次给错了用数字法修正最直观。场景权限位数字普通配置文件rw-r--r--644可执行脚本rwxr-xr-x755私钥文件rw-------600数据库数据目录rwx------700为什么配置文件通常是 644脚本是 755因为配置文件只需要属主修改其他人读就够了脚本要被执行所以必须有 x 权限。新建文件默认 644、新建目录默认 755这套规则由 umask 决定面试里也是常客。chmod x 文件是给文件加执行权限的快捷写法比记数字更直觉。3.3 用户管理和 chown新建用户怎么操作权限是围绕用户和组运行的。先记住几个定位命令whoami看当前是谁id看 UID 和所属组。root 用户的 UID 固定为 0普通用户的 UID 通常从 1000 开始。新建用户的命令是useradd 用户名然后执行passwd 用户名设置密码这两条命令都要在 root 权限下运行。临时提权用sudo切换用户用su -。很多新人图省事常年用 root 干活。我的经验是练习阶段强迫自己先用普通用户敲命令提示权限不足时再加 sudo。这样你能更清楚地意识到哪些操作属于高风险而不是稀里糊涂就把系统改了。复制文件后目标文件的属主会变成执行 cp 命令的用户。这也是“明明改了文件却写不进去”的常见原因——看看属主是不是自己。chown user:group 文件可以修改属主和属组但这条命令需要 root 权限初学阶段先知道有这回事就行。4. 系统状态与进程学会判断机器“忙不忙”4.1 内存、磁盘、系统信息怎么看先抛结论看内存用free -h不要光盯着网页监控面板。free -h里的 used 常常很吓人但中间 buff/cache 列是内核缓存关键时刻可以被回收真正要关注的是 available那才代表实际可用内存。这个误解几乎可以入选“linux 运维故障案例”常客榜。磁盘用df -h看整体使用率用du -sh /home/*查具体目录占用。很多人分不清 df 和 du 的区别df 看的是文件系统总空间还剩多少du 是在目录里把文件大小加起来算总账。疑心磁盘不够用时两个命令一起用你就能定位到是谁吃掉了空间。查看内核版本用uname -a查看发行版信息用cat /etc/os-release。还有一类高频需求是“linux 查看系统时间同步时间”基础指令层面date显示当前时间timedatectl显示时区和 NTP 同步状态。如果发现服务器时间比实际慢了 8 小时多半是时区没设对timedatectl set-timezone Asia/Shanghai可以修正。4.2 ps、top、kill进程管理的三板斧进程就是正在运行的程序。最常用的查看命令是ps -ef或ps aux两者只是输出格式风格不同都包含进程 PID。常见的姿势是ps -ef | grep nginx快速找到目标进程的 PID。另一个实时工具是top按大写 P 按 CPU 排序按大写 M 按内存排序按 q 退出。要结束进程先试kill PID。这相当于给进程发送 SIGTERM 信号礼貌地请它收尾退出如果程序不响应再用kill -9 PID强制结束。很多新手一上来就kill -9我的建议是尽量先给进程一个写日志、释放资源的机会否则状态文件损坏、数据丢失都是常有的事。信号概念面试也常考9 是强行结束15 是默认终止1 是挂断信号——后面讲后台运行还会用到它。4.3 让命令在后台跑nohup 与 这是很多人实战中第一个卡住的场景用 SSH 连上服务器运行一个 Python 脚本结果一关终端脚本也跟着停了。原因是关闭终端时系统会给这个会话下的进程发送 SIGHUP 挂断信号进程默认就退出。解决办法是nohup忽略挂断信号配合把进程放到后台两者通常一起用。nohup python3 app.py app.log 21 拆开这条命令nohup让进程忽略 SIGHUP app.log把标准输出写进 app.log21把标准错误也合并到同一个文件注意顺序不能反最后的表示放入后台。这样即使你关闭 SSH脚本也会继续跑日志随时可以用tail -f app.log查看。如果 nohup 之后日志文件一直是空的先检查程序是否把内容写到了标准错误或者用了非缓冲输出——这不一定是命令的问题而是程序的输出机制。初学阶段记住 nohup 这一套就够日常使用更高级的 setsid、screen、tmux 可以等有需求再学。5. 文本处理与管道命令行高效工作的核心组合技5.1 重定向把输出接出去命令默认把结果打印到屏幕重定向就是改变这个去向。把输出写入文件注意它会覆盖原有内容是追加从文件读入内容作为输入2把错误输出单独写进文件21把标准错误和标准输出合并。的破坏力比想象中强。一条cat file file甚至可能把文件清空因为打开文件的一瞬间截断就已经发生了。我见过同事写脚本时忘写每次运行都覆盖日志排查问题时发现历史记录全丢了。养成习惯日志场景用追加备份场景用带时间戳的新文件名别动老文件。5.2 管道像流水线一样处理文本管道符|把左边命令的输出当作右边命令的输入。最经典的组合ps -ef | grep nginx这比在几十个窗口里翻进程高效得多。另一个常用组合是统计日志行数grep ERROR app.log | wc -l。有个小技巧搜索进程时写grep [n]ginx可以避免 grep 进程自身出现在结果里面试时偶尔会有这类题考观察力。管道可以串联很多段cat access.log | awk {print $1} | sort | uniq -c | sort -nr | head这串命令统计访问日志里次数最多的 IP。从左往右先把每行按空格切开取第一列也就是 IP然后排序、去重并计数、按计数倒序、取前十个。很多人问 Linux 常用命令学了有什么用这就是典型场景——排查问题省的是小时起步的时间。5.3 grep、sed、awk 入门路线这三个命令被称为文本处理三剑客但不需要一口气学完。先记住三个动作grep 负责过滤-v反选、-i忽略大小写、-c计数sed 负责替换和按行提取sed s/old/new/g是全局替换的写法sed -n 5,10p打印指定行awk 负责按列切片awk {print $1,$3}或者用-F,指定分割符。我给新人的建议别背参数表从实际问题出发。比如日志里时间字段混进了多余字符就查一下怎么用 sed 去掉想统计某接口调用量用 grep 加 wc 就够。遇到解决不了的问题再翻手册记忆会深刻得多。这些命令组合起来就是 shell 脚本的雏形等你把管道和重定向玩熟写一个一键部署脚本并不难。6. 软件安装与网络给 Linux 配上干活工具6.1 装软件先找包管理器apt 与 yum/dnfLinux 上装软件首选不是到官网下载源码包而是用发行版自带的包管理器。Debian/Ubuntu 系用 aptCentOS/RHEL 系用 yum 或 dnf。基本流程是先apt update更新索引再apt install 软件名。比如网上搜“linux 系统安装 python”多数情况下apt install python3就解决了搜“linux 下载 gcc 编译器”也是apt install gcc。为什么不建议一上来就自己编译包管理器负责解决依赖、提供统一卸载入口、还有签名校验。自己编译源码就像自己买菜做饭口味确实更可控但流程长、耗时多依赖关系还可能滚雪球把系统弄乱。等你需要特定版本、或者要改源码时再学编译也不迟。顺带一提如果官方源下载太慢可以把 apt 源换成国内镜像站。这是绕过“linux 镜像”相关搜索的一种常见做法但前提是先搞清楚自己用的发行版代号别改错文件把系统搞坏。6.2 网络命令三件套ping、curl、wgetping测试主机是否可达但“ping 通”不等于“服务正常”它只验证到网络层。想看端口服务状态用ss -ltnp或netstat -ltnp能看到谁在监听哪个端口。curl是发 HTTP 请求的小工具curl -i可以看响应头curl -L跟随重定向。wget更擅长下载文件和镜像网站内容。网上经常看到一行curl xxx | bash的安装命令我的建议是要么先下载下来看内容要么确认来源可靠。盲跑脚本相当于把自己服务器的 root 权限交给陌生人这不是危言耸听。6.3 tar 打包与解压归档不是复制粘贴Linux 传统的打包格式是 tartar -czvf 名字.tar.gz 目录打包并压缩tar -xzvf 名字.tar.gz解压。-c创建-x解压-z表示 gzip 压缩-v显示过程-f指定文件名。现在新版 tar 可以自动识别压缩格式直接tar -xf 文件.tar.gz也能解压。解压前最好先跑tar -tf 文件.tar.gz看看包里有什么再配合-C 目录指定解压位置避免解出来的文件散落一地。备份时也常用 tar 把整个项目目录打包配合定时任务就能形成一个最朴素的自动备份方案。7. 新人最容易踩的坑我的真实翻车记录7.1 事故一一个空格敲掉了半个系统我第一份工作流传着一起经典翻车。有同事想清理/tmp/test输入却写成了rm -rf /tmp/test /。多了一个空格命令就多了一个删除对象根目录。新版系统虽然对rm -rf /有保护但某些老版本或者带上了--no-preserve-root的情况下灾难就是一瞬间的事。就算保护生效屏幕上刷出的错误提示也会把你吓出一身冷汗。从那以后我给自己定了规矩删除目录前先ls -d确认路径高危删除命令不带-f先跑一遍确认无误再补上。另外history里看到的旧命令不要直接回车执行因为当初的命令也许就是错的。7.2 事故二服务起不来权限却“看起来够”有次部署一个 Web 服务报错一直是 Permission denied。文件明明存在权限也是 755为什么还不行查到最后发现路径中间某个目录的权限是 700 且属主是 root普通用户根本进不去——这就是目录执行权限的作用即使文件本身可读只要进不了它所在的目录一切都白搭。排查权限问题有个固定套路ls -ld逐级检查路径上每一层目录或者用namei -l 完整路径一次看全路径各段的权限。遇到权限问题别偷懒直接chmod -R 777那等于把整扇门都卸下来安全风险极大。7.3 事故三磁盘没满却报“No space left on device”这个问题很多老手都会遇到df -h显示还有不少空间但写入文件时报磁盘满。原因是 inode 耗尽了——可以把它理解为文件系统里的“档案目录”写满了不是位置不够而是登记条目的格子供不应求。判断方法很简单执行df -i看 inode 使用率。这件事让我意识到基础指令只是入口。后面做运维还要懂文件系统原理、日志轮转、细碎文件清理慢慢都会接触到。但先把df -h、df -i、du -sh这几个工具用利索遇到磁盘类故障至少能做到正确定位。7.4 事故四时间不同步日志乱成一锅粥有次排查线上问题发现日志时间顺序完全对不上前一条是 11:30后一条突然变成 03:20。最后发现服务器没有配时区和 NTP 同步date显示的时间和实际差 8 小时。修正用timedatectl set-timezone Asia/Shanghai再执行timedatectl set-ntp true打开时间同步日志顺序立刻恢复了。这类问题虽然不难但它给我一个深刻教训看日志之前先确认服务器时间。否则你会拿一条错误的时间线做一整天无效排查。基础指令里date、timedatectl不起眼关键时刻真能救命。带新人这几年我最大的体会是Linux 基础指令的学习拼的不是记忆力而是“理解 手熟”。我当年也抱着几百页命令手册啃过睡一觉忘掉大半真正让我记住每条命令的是某次排障时它真的帮我解决了问题。所以建议别给自己定“今天背十条命令”这种目标而是给自己一个具体任务比如把日志按 IP 统计排名、把一个项目部署到特定目录用得上哪条就学哪条。学习过程中一定要亲手敲敲错的记忆远比看十遍文档深刻。最后提醒一句练习环境用虚拟机或临时云服务器第一次装系统可以先从下载官方发行版镜像开始装了系统想怎么折腾都行看到#提示符时多留个心眼。基础打牢了后面不管是学 shell 脚本、看内核还是转运维都不会觉得 Linux 神秘。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询