ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux入门必备:15个高频命令快速掌握目录、文件、搜索与权限

Linux入门必备:15个高频命令快速掌握目录、文件、搜索与权限 Linux 入门难很大程度上不是难在系统本身而是命令太多、不知道从哪开始。实际上不同场景下高频使用的命令高度重合。掌握 15 个命令就足以完成日常的目录定位、文件查看、内容搜索、权限设置和提权操作这 15 个命令不是随机清单而是围绕“我在哪、这里有什么、怎么操作文件、怎么查找内容、怎么控制权限”这条主线选出来的。下面按这 15 个命令的顺序逐步说明每条命令的用途、常用参数、容易踩的坑并给出一个可复制的练习流程。适合刚接触 Linux 的开发者、准备转运维的初学者以及已经在服务器上工作但只会复制粘贴命令的人。学完之后你可以独立完成一次登录服务器、定位目录、查找文件、查看内容、修改权限、执行提权的完整操作。1. 为什么是这 15 个命令先建立命令空间的骨架1.1 命令行的通用结构命令、选项、参数Linux 命令行里一条命令的本质就是一个可执行程序。执行命令时Shell 负责找到这个程序并把用户输入的内容传给它。绝大多数命令遵循同一个结构command [option] [argument]例如ls -l /etc其中ls是命令-l是选项/etc是参数。选项用来改变命令的默认行为参数用来指定操作对象。很多命令同时支持短选项和长选项例如ls -l与ls --formatlong表达的是类似含义。理解了这个结构后面学习任何新命令都会快很多。你不需要记住每个命令的每个参数只需要记住一个命令能解决什么问题然后在需要时通过--help或man查看具体参数。1.2 这 15 个命令如何覆盖日常操作Linux 日常操作可以划分成四类核心场景确定位置、操作文件、查找内容、控制权限。下面 15 个命令分别覆盖这些场景。场景命令要解决的问题定位与切换pwd, ls, cd我在哪个目录这里有什么怎么去其他目录文件与目录操作touch, mkdir, cp, mv, rm创建、复制、移动、删除文件或目录内容查看与搜索cat, less, grep, find查看文件内容按内容或文件名查找目标权限、提权与帮助sudo, chmod, man用管理员权限执行命令修改权限查看帮助这 15 个命令组合起来可以完成一次完整的服务器日常操作进入项目目录查看文件列表读取日志搜索关键字调整权限用管理员权限执行部署命令。1.3 学习原则先跑通再深挖初学者最容易犯的错是打开一本书或一张命令大全都想抄下来。实际上命令行工具的参数极其丰富一次全部记住不现实也没有必要。更有效的方式是先用默认参数跑通命令感受输出。再结合具体场景学习两三个高频参数。遇到不熟悉的参数用man或--help查。在练习环境反复操作而不是只看不练。练习环境建议使用虚拟机、云服务器或 WSL不要直接在生产环境尝试删除、权限修改等操作。2. 环境准备三种方式拿到 Linux 终端2.1 本机 Linux 环境虚拟机或云服务器如果你本机装的是 Linux 发行版例如 Ubuntu、CentOS、Debian直接打开终端即可。如果没有本机 Linux可以选择虚拟机使用 VirtualBox 或 VMware 安装一个 Ubuntu Desktop 或 Server适合本机反复练习。云服务器购买一台按量付费的云主机通过 SSH 客户端远程连接优点是与真实服务器环境一致。使用云服务器时建议先使用普通用户登录需要执行管理操作时再使用sudo不要一上来就切到 root。2.2 Windows 下用 WSL 获得 Linux 体验Windows 10/11 用户可以使用 WSLWindows Subsystem for Linux。安装 Ubuntu 子系统后就可以在 Windows 终端里执行 Linux 命令环境与本机 Linux 高度一致。打开 PowerShell 或命令提示符执行wsl --install安装完成后启动 Ubuntu设置用户名和密码即可。WSL 对学习命令非常友好因为不涉及真实服务器风险。2.3 进入终端后先做三件事拿到终端后不要急着敲命令。先确认三个信息当前用户是谁、当前目录在哪、系统是什么版本。可以执行下面命令whoami pwd uname -a提示符中通常也会显示用户和主机名。例如userubuntu:~$$表示当前是普通用户#表示当前是 root 用户。日常练习建议保持普通用户身份。还需要准备一个练习目录。可以在/tmp下建立独立目录避免误操作影响真实数据mkdir -p /tmp/linux-lab后续所有练习都可以在这个目录里完成。3. 第一组定位与切换——pwd、ls、cd3.1 pwd回答“我在哪”pwd是 print working directory 的缩写作用是输出当前工作目录的绝对路径。当你不确定自己的位置时执行它永远不会出错。pwd示例输出/home/user在排查问题时pwd通常是第一步。很多命令报错说找不到文件往往不是文件不存在而是当前目录和预期目录不一致。先pwd再ls就能快速确认。3.2 ls列出目录内容ls是最常被使用的命令之一。默认情况下它列出当前目录下的文件和子目录但会隐藏以.开头的隐藏文件。ls更常用的是带参数的组合参数作用示例-l以长格式显示权限、属主、大小、时间ls -l-a显示隐藏文件包括.和..ls -la-h与-l配合以人类可读方式显示大小ls -lh-t按修改时间排序ls -lt-R递归显示子目录内容ls -R-d只查看目录本身不展开目录内容ls -ld /tmp执行ls -l时每行第一个字段是权限和文件类型例如-rw-r--r-- 1 user user 1024 Jan 1 10:00 README.md第一个字符-表示普通文件d表示目录。后面九个字符分成三组分别表示所有者、所属组、其他用户的权限。这部分会在第 6 章 chmod 中详细展开。3.3 cd切换目录cd是 shell 内建命令作用是切换当前工作目录。它支持绝对路径和相对路径。绝对路径从根目录/开始写相对路径则从当前目录开始计算。cd /etc cd ../../ cd ~ cd -四个特殊写法需要记住写法含义cd /path切换到绝对路径cd ..返回上一级目录cd ~切换到当前用户主目录cd -切换到上一次所在目录cd之后通常用pwd验证是否切换成功这是一个非常好的习惯。3.4 路径组合实验下面这一组操作可以帮助理解绝对路径、相对路径和特殊目录cd / pwd ls cd /tmp pwd cd .. pwd cd - pwd预期过程/ 根目录下的文件列表 /tmp / /tmp这里的cd /进入根目录cd /tmp进入临时目录cd ..从/tmp回到/cd -又回到/tmp。通过这个实验你可以直观看到路径是如何变化的。4. 第二组文件与目录操作——touch、mkdir、cp、mv、rm4.1 touch创建空文件更新时间戳touch的用途有两个创建空文件或者更新已有文件的修改时间。touch README.md如果README.md不存在命令会创建一个空文件如果已经存在只会把文件的时间戳改为当前时间。还可以一次创建多个文件touch a.txt b.txt c.txttouch不是文本编辑器它不能写入内容。这是初学者容易误会的点。创建后可以用ls -l查看文件大小通常是 0。4.2 mkdir创建目录mkdir是 make directory 的缩写用来创建目录。一个常见的坑是默认情况下父目录不存在时创建会失败。mkdir linux-lab/data如果linux-lab不存在会报错mkdir: cannot create directory linux-lab/data: No such file or directory要一次性创建多级目录需要加-pmkdir -p linux-lab/data/logs-p是非常实用的参数它表示递归创建缺失的父目录。创建完成后用ls -R可以查看目录结构。4.3 cp复制文件或目录复制文件是最基本的操作之一cp source.txt dest.txt复制目录时必须加-r参数否则会报错cp: omitting directory data推荐用法场景命令复制文件cp file.txt /tmp/backup/复制目录cp -r dir /tmp/backup/覆盖前提示cp -i file.txt dest.txt显示复制过程cp -v source.txt dest.txt-i在覆盖已有文件前会询问适合初学者使用能减少误覆盖。4.4 mv移动文件或重命名mv同时承担移动和重命名两个任务。在同一目录下把文件改名mv old.txt new.txt把文件移动到另一个目录mv new.txt /tmp/linux-lab/data/mv的底层行为取决于文件是否在同一个文件系统内。同一文件系统中它通常只是修改目录项速度很快跨文件系统时需要先复制再删除原文件。对初学者来说只需要知道mv既能移动也能改名并且移动后原文件不再保留。如果目标位置已经有同名文件mv默认直接覆盖。可以用-i开启覆盖前提示。4.5 rm删除文件或目录删除文件使用rm test.txt删除目录必须加-rrm -r data强制删除且不提示使用-frm -rf data这里要特别强调rm -rf是不可恢复的删除操作。很多安全事故都和误执行rm -rf有关。练习时不要对不熟悉的目录执行强制递归删除更不要在自己的主目录或系统目录里反复测试。推荐的安全习惯删除前先ls确认目标。先使用rm -i让系统在删除前询问。重要数据提前备份删除操作不依赖“回收站”兜底。生产环境不要随手敲rm -rf。如果把rm误写成rf或者路径少写一个字母后果往往不可挽回。删除操作是这些命令中风险最高的一类。5. 第三组内容查看与搜索——cat、less、grep、find5.1 cat适合小文件的阅读命令cat是 concatenate 的缩写原意是连接文件但因为能直接输出文件内容也被当作查看命令使用。cat /etc/passwd使用-n可以显示行号cat -n /etc/passwdcat适合查看内容不长、不会被刷屏的文件。如果直接查看一个几十 MB 的日志终端会被大量输出淹没这时候应该用less。cat还可以用来合并多个文件cat a.txt b.txt c.txt这里的是重定向符属于 Shell 功能不属于某个具体命令。5.2 less分页查看大文件less用来分页查看文件内容不会一次性把整个文件输出到屏幕适合查看日志和长文档。less /etc/passwd进入less后界面会占据整个终端常用按键如下按键作用空格键向下翻一页b向上翻一页g跳到文件开头G跳到文件末尾/关键字向下搜索关键字n跳转到下一个匹配结果q退出 less查看大文件日志时less是最安全的起点。它不会因为文件太大而影响终端响应也不会刷掉有用的上下文。5.3 grep按内容过滤关键行grep用来在文件内容中搜索匹配的行是排查日志、分析文本最常用的命令。grep root /etc/passwd输出文件中包含root的所有行。常用参数参数作用-i忽略大小写-n显示匹配行行号-c统计匹配行数-v反向匹配输出不包含关键字的行-r递归搜索目录内所有文件实际排查中经常这样用grep -n error app.log grep -c timeout app.loggrep还有一个重要用法是配合管道。|可以把前一个命令的输出传给grep过滤ls -l | grep .md管道不是命令而是 Shell 提供的能力理解它之后命令之间的组合会变得非常灵活。5.4 find按文件名和属性定位find不是搜索文件内容而是按文件名、类型、大小、时间等属性查找文件。find . -name *.log这里.表示当前目录-name指定文件名模式*.log需要加引号避免 Shell 提前展开通配符。更常用的形式find /var/log -type f -name *.log find /tmp -type d -name data find . -mtime -7其中-type f表示只查普通文件-type d表示只查目录。-mtime -7表示七天以内修改过的文件。-size 10M表示查找大于 10MB 的文件。find输出的是文件路径适合在目录结构不清晰时快速定位。5.5 grep 和 find 的界限初学者经常把grep和find搞混其实界限很明确命令搜索目标典型场景grep文件内容中的文本在日志里找 error在配置里找关键字find文件名、类型、大小、时间找某个配置文件名找一周内改过的文件也可以把两者组合起来先用find找到文件再用grep过滤内容。例如grep -n timeout $(find /etc -name *.conf)这种写法对初学者偏复杂但体现了命令组合的威力。6. 第四组权限、提权与帮助——sudo、chmod、man6.1 sudo为当前用户临时提权Linux 系统中有管理员用户 root它可以执行所有操作。普通用户没有这个权限。sudo的作用是让普通用户以管理员身份执行某一条命令。sudo whoami首次执行时系统会提示输入当前用户的密码而不是 root 密码。如果当前用户不在 sudo 组中会看到类似错误user is not in the sudoers file. This incident will be reported.sudo的设计初衷是避免长期以 root 身份操作。管理操作应该只在需要时临时提权而不是持续使用 root。常见的sudo使用场景sudo apt update sudo systemctl restart nginx sudo mkdir /opt/app这里的apt、systemctl都是后续会扩展学习的命令。初学者只需要记住遇到Permission denied且确认当前操作是合法管理操作时可以尝试用sudo执行但不能养成“所有命令都加 sudo”的习惯。6.2 chmod用数字修改文件权限chmod用来修改文件或目录的权限。先看权限字段长什么样ls -l README.md输出开头部分-rw-r--r--第一个字符-表示文件d表示目录。后面九个字符分成三组第一组rw-表示所有者权限。第二组r--表示所属组权限。第三组r--表示其他用户权限。其中字符含义对应数值r读权限4w写权限2x执行权限1-无权限0数字权限就是把每组权限相加。例如rwx对应4217rw-对应426r--对应4。常用权限组合权限含义适用场景755rwxr-xr-x可执行脚本、目录644rw-r--r--普通文件600rw-------私密配置文件700rwx------私有目录或私有脚本修改示例chmod 755 deploy.sh chmod 600 README.md chmod -R 700 data/-R表示递归修改目录内所有文件。需要特别注意不要随手执行chmod 777。777表示所有用户都可读、可写、可执行对文件和系统安全风险很高。如果某个文件需要被其他用户读取用644通常就足够。还有一个细节目录的x权限表示“允许进入该目录”。如果目录没有x权限即使有读权限也无法通过cd进入。这也是很多初学者在权限问题上困惑的原因。6.3 man随身携带的 Linux 说明书man是 manual 的缩写用来查看命令的手册。例如man ls man mkdir进入 man 页面后操作方式和less类似按键作用空格键向下翻页/关键字搜索手册内容q退出man 手册按章节分类最常见的几个章节章节内容1用户命令例如 ls、cp5配置文件格式8系统管理命令例如 systemctl使用man ls时默认打开的是第 1 章。如果只看某一个参数也可以使用ls --help快速查看帮助。多数命令都支持--help适合快速回忆参数。对于cd这类 shell 内建命令man cd可能没有独立手册可以执行help cd查看内建命令帮助。学会使用man和--help比记住所有参数更重要。7. 一天工作流用 15 个命令完成一次完整操作7.1 一个可复制的练习脚本把前面几组的命令串起来形成一次完整操作。在/tmp下建立项目目录创建文件复制移动查看内容搜索关键字调整权限最后用 sudo 验证提权。按顺序执行# 1. 定位 cd /tmp pwd # 2. 创建目录结构 mkdir -p linux-lab/data cd linux-lab # 3. 创建文件 touch README.md data/app.log # 4. 复制和移动 cp README.md README.bak.md mv data/app.log ./app.log # 5. 查看内容 cat README.md # 6. 分页查看系统用户文件 less /etc/passwd # 7. 搜索内容 grep root /etc/passwd # 8. 查找文件 find /tmp/linux-lab -name *.md # 9. 查看权限 ls -l # 10. 修改权限 chmod 600 README.md ls -l README.md # 11. 提权验证 sudo whoami执行less /etc/passwd后按q退出。执行sudo whoami时会提示输入当前用户密码输入时终端不会显示任何字符这是正常现象。7.2 每一步的预期输出与检查点步骤预期输出检查点pwd/tmp当前目录正确mkdir无输出ls能看到 linux-labtouch无输出ls能看到两个文件cp; mv无输出ls能看到 app.log 和 README.bak.mdcat README.md空输出文件存在但没有内容less /etc/passwd文件内容可翻页按 q 能退出grep root /etc/passwd包含 root 的行至少一行输出find /tmp/linux-lab -name *.md两个.md文件路径路径正确chmod 600 README.md无输出ls -l显示-rw-------sudo whoamiroot提权成功这套流程并不复杂但它把 15 个命令全部串了起来。练习时不要只看命令还要观察每次命令执行前的提示符和当前路径。7.3 出错时按什么顺序检查如果某个步骤报错按下面的顺序排查先执行pwd确认当前目录是否符合预期。再执行ls确认文件或目录是否存在、名字是否拼错。接着检查命令参数有没有写错比如目录复制是否加了-r。然后用ls -l查看权限确认是否有读、写、执行权限。如果确认需要管理员权限用sudo重新执行。最后用man或--help检查参数含义而不是凭记忆乱试。这套顺序可以解决大部分入门阶段的命令问题。8. 常见问题与排查链路命令出错时的三个层次8.1 现象一command not found输入命令后提示command not found可能原因命令名拼错。命令确实没有安装。命令不在当前用户的 PATH 环境变量中。处理方式which 命令名 type 命令名 echo $PATHwhich可以查看可执行程序路径type能区分命令是外部程序还是 shell 内建命令。如果命令不存在需要先安装对应的软件包。例如在 Ubuntu 系统上安装curlsudo apt update sudo apt install curl8.2 现象二Permission denied输入命令后提示Permission denied可能原因当前用户没有文件读权限或执行权限。当前用户没有目录进入权限。文件本身不是可执行文件。处理方式ls -l 文件名 chmod 755 文件名先确认权限字段再判断是否真的需要修改权限。如果只是临时读取系统文件可以用sudo但生产环境要确认授权范围。8.3 现象三rm 无法删除目录输入删除目录命令时提示rm: cannot remove data: Is a directory原因很明确rm默认只能删除文件删除目录需要加-r。rm -r data如果目录里还有大量文件可以加-f跳过确认但-f会让误删更难挽回。练习时建议先不加-f看清楚输出再决定。8.4 现象四路径明明存在却找不到文件执行cat app.log时报错No such file or directory但用ls又能在某个目录下看到app.log。这时候大概率是当前目录不对。先执行pwd再用绝对路径访问cat /tmp/linux-lab/app.log相对路径是相对于当前目录计算的路径错误不一定代表文件不存在。排查顺序永远是先当前目录再文件路径再文件名。8.5 排查总表一张表解决大部分报错问题现象常见原因检查方式处理建议command not found未安装、拼写错误、不在 PATHwhich 命令echo $PATH安装软件包或修正命令名Permission denied文件或目录权限不足ls -l合理使用 chmod 或 sudoIs a directory删除目录没有加 -r检查 rm 参数rm -r 目录名No such file or directory当前目录不对、路径写错pwd,ls使用绝对路径检查文件名输入密码后还是权限失败用户不在 sudo 组groups 用户名id由管理员加入 sudo 组这张表可以当作初学者的排错清单。遇到报错先对照现象再按行检查而不是盲目重新执行一遍。9. 最佳实践初学者最容易踩的四个坑和下一步学习方向9.1 四条可执行的最佳实践第一所有练习先在隔离环境里做。虚拟机、WSL、临时目录都是安全的练习场不要直接在服务器生产目录里尝试rm -rf、chmod -R 777这类高风险操作。第二删除前先确认。使用rm前先ls看清目标更稳妥的方式是制定自己的删除规则比如统一使用rm -i。如果担心误删可以给rm配置交互别名alias rmrm -i这个别名只对当前终端会话生效。要长期生效可以写到 shell 配置文件中但生产服务器不建议随意修改别人的全局配置。第三遇到不懂的命令先查帮助不靠猜。man和--help是两道最可靠的防线。猜参数往往是命令报错的主要原因。第四不要随手chmod 777。权限精细化是 Linux 安全的基础。普通文件用644脚本和目录用755私密文件用600需要调整时再针对具体用户或组设置。9.2 下一步该学哪些命令掌握这 15 条命令后可以按使用场景继续扩展。下面这张表列出下一步最值得学习的命令场景命令说明文件打包压缩tar, zip, unzip服务器文件备份和传输查看进程ps, top观察系统负载和异常进程磁盘空间df, du查看磁盘和目录占用文本编辑vim在服务器上直接修改文件历史命令history查看执行记录快速复用命令远程操作ssh, scp登录远程服务器和传输文件服务管理systemctl管理 systemd 服务容器运行docker容器化部署的基础工具这些命令对刚入门的人并不需要一次学完。最自然的顺序是先学tar和vim因为会经常用到再学ps、top、df、du因为排查问题时离不开之后根据工作方向进入systemctl或docker。9.3 给新手的一个练习计划不需要按部就班学完所有 Linux 内容可以按周安排第 1 天练习pwd、ls、cd重点理解绝对路径和相对路径。第 2 天练习touch、mkdir、cp、mv、rm在临时目录反复创建和删除。第 3 天练习cat、less、grep、find用系统自带的/etc/passwd和日志文件做实验。第 4 天练习chmod、sudo、man理解权限字段的含义。第 5 天不看提示重新完成第 7 章的工作流。第 6 天找一份真实但不重要的日志用less和grep完成一次日志排查练习。第 7 天学习tar和vim把学习过程中创建的目录打包备份。这 15 个命令只覆盖了 Linux 很小的一部分却是日常操作中最常触碰的部分。把这些命令练熟之后再看tar、vim、systemctl、docker这些命令你会发现它们的参数结构完全一致命令、选项、参数以及帮助系统。命令数量会不断增加但学习路径已经打开这就是 Linux 命令学习的真正节奏。
返回列表