ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Linux 目录导航实战:以 devops-exercises 的 Navigation 练习吃透 cd 与 pwd

Linux 目录导航实战:以 devops-exercises 的 Navigation 练习吃透 cd 与 pwd 文档教程DevOps运维【免费下载链接】devops-exercisesLinux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions项目地址https://gitcode.com/GitHub_Trending/de/devops-exercises点击查看免费下载本篇技术指南围绕当前开源仓库 devops-exercises 中 Navigation 练习 与其 参考答案 展开系统讲解 Linux 中cd与pwd目录导航的核心命令与底层机制。读完本篇你将掌握从/tmp出发、经由父目录逐级上溯回到根目录/、借助cd -快速往返上次访问目录的完整实战套路并能理解$PWD与$OLDPWD环境变量在导航背后的工作原理可直接用于日常终端操作与面试答题。练习在仓库中的位置与设计意图devops-exercises 仓库将 Linux 主题的实操题组织在 topics/linux 下其中 Basics 基础练习共三题Navigation导航、Create and Destroy创建与删除、Copy Time复制与移动。Navigation 作为第一题专门聚焦两个命令**cdchange directory切换目录**与pwdprint working directory打印当前工作目录两者是后续一切文件系统操作创建、删除、复制、移动的前提。从 topics/linux/README.md 的练习索引可以看到仓库为每个练习都配了独立的 Exercise 描述页与 Solution 答案页Navigation 练习即由 exercise 页 和 solution 页 两个文件构成。这种题目与答案分离的结构正是为了让学习者先独立思考、再对照校验。练习目标一段贯穿关键路径的导航旅程原练习exercise提出了 6 个递进式目标要求环境为任意 Linux 系统切换到/tmp目录移动到父目录切换到 home 目录移动到父目录再次移动到父目录此时你在哪里用一条命令验证切换到上次访问的目录这 6 步串联起了 Linux 文件系统中的几个标志性位置临时目录/tmp、家目录~即/home/用户名、父目录..以及目录树的顶端根目录/。每一步都有明确的意图熟悉相对导航、理解当前位置的概念、并接触目录历史这一高级特性。参考答案与逐步演练参考答案 给出的命令序列如下cd /tmp cd .. cd ~ cd .. cd .. # root (/) pwd cd -下面逐条拆解每条命令做了什么、为什么这么做并给出每步之后预期处于的位置第 1 步cd /tmp——用绝对路径直达临时目录cd /tmp/tmp是 Linux 文件系统层次标准FHS中存放临时文件的目录它通常会随系统重启被自动清理这一特性在 topics/linux/README.md 的 FHS 问答中有明确说明。这里的路径以/开头是绝对路径——无论当前身处何处都会直接切换到根目录下的tmp。执行后当前工作目录变为/tmp。第 2 步cd ..——进入父目录cd ....是表示父目录当前目录的上一级的特殊条目。当前在/tmp其父目录就是/根目录。因此执行后位于/。第 3 步cd ~——回到家目录cd ~~波浪号是 shell 对当前用户 home 目录的简写。对普通用户而言通常是/home/用户名对 root 用户则是/root。这一步把当前目录从/切换到家目录演示了家目录快捷方式的用法。第 4、5 步连续cd ..——逐级上溯直至根目录cd .. cd ..此时你在/home/用户名假设用户名user。第一次cd ..进入/home第二次cd ..进入/——这就是练习第 5 步中再次移动到父目录的答案最终停在根目录即整棵目录树的最顶端其父目录是它自身无法再继续上溯。验证步pwd——确认当前位置pwdpwd是 Print Working Directory 的缩写打印出当前所在目录的绝对路径。在连续两次cd ..之后应该输出/从而验证你确实到达了根目录。这也是练习目标 5.1 要求的用一条命令验证的标准答案。第 6 步cd -——回到上次访问的目录cd -cd -是切换到最后访问过的目录的快捷方式。由于上一步你位于/且在此之前刚从家目录一路cd ..上溯而来cd -会把目录切回本次会话中上一个所在目录。在原练习的语境下即回到步骤 3 之前或执行pwd之前所停留的位置具体取决于 shell 对OLDPWD的记录时机并且 shell 会同时在终端上打印目标路径。这一命令在在两目录之间来回切换的场景如反复比对两个项目目录中极为实用。深入原理cd与pwd背后的机制cd是 shell 内建命令cd属于 shell 内建命令builtin而非独立的可执行程序——因为它必须修改当前 shell 进程自身的工作目录而子进程无法改变父进程的目录状态。这也是为什么cd在 bash、zsh 等常见 shell 中行为一致、且无需额外安装。两个关键环境变量$PWD与$OLDPWDcd的核心机制由两个 shell 环境变量驱动$PWD记录当前工作目录的绝对路径。pwd命令打印的内容本质上就是它的值。$OLDPWD记录上一次工作目录的绝对路径。仓库的问答题库中恰好收录了这一问题见 topics/linux/README.md问cd -是如何工作的它怎么知道之前的位置答$OLDPWD也就是说每次成功执行cd时shell 先把当前路径存入$OLDPWD再把新路径写入$PWD执行cd -时shell 读取$OLDPWD并切换过去。理解了这一点你甚至可以用cd $OLDPWD显式复现cd -的效果或在脚本中通过$OLDPWD判断上次从哪个目录进来。常用cd形态速查在 topics/linux/README.md 的 Linux 101 问答中仓库系统总结了cd的六种典型形态及含义可直接作为面试速查表命令含义cd /切换到根目录cd ~切换到你的 home 目录cd无参数切换到你的 home 目录cd ..切换到当前目录的上一级父目录cd .切换到当前所在目录即原地不动cd -切换到最后访问过的路径pwd与当前位置的感知pwd是验证导航结果的首选工具。除了配合练习使用日常排障中它还有两个高频变体pwd -L打印逻辑路径跟随符号链接的路径默认行为pwd -P打印物理路径解析掉所有符号链接后的真实路径。当目录是通过符号链接进入时两者输出可能不同这也是定位我到底在哪个真实目录的常见手段。结合文件系统层次为什么练习刻意经过这几个目录练习刻意安排的/tmp、~、/三个锚点恰好对应 Linux 文件系统层次标准FHS中的典型目录仓库在 FHS 问答 中给出了它们的职责/文件系统的根目录树的起点/tmp存放临时文件的目录通常重启后被自动清理/home存放各用户 home 目录的位置/home/user即某个用户的 home。理解了这些目录的语义你就能预判从某目录cd ..会到哪——这正是导航练习想训练的核心能力在脑中建立目录树的拓扑地图。扩展技巧超越单步cd的高效导航在最近两个目录间快速往返cd -解决了两目录间往返问题若需要在更多历史目录间穿梭可以使用pushd /path/to/dir # 压栈并切换 popd # 出栈并回到上一个压入的目录 dirs # 查看目录栈pushd/popd与cd -一样依赖 shell 维护的目录历史适合在多个项目目录之间频繁切换的日常工作流。相对路径与绝对路径的选择绝对路径以/开头如cd /etc/nginx与当前位置无关适合脚本与明确跳转相对路径不以/开头如cd ../..、cd dir1/dir2依赖当前位置适合在相邻目录间移动。练习中的cd /tmp绝对与cd ..相对正好演示了两者的混合使用这也是真实运维中最常见的组合方式。如何在仓库环境中自主演练与验证devops-exercises 不仅提供了静态的练习与答案还配套了可交互的自测工具scripts/random_question.py 会解析仓库README.md中的问答对并随机抽题通过-s/--skip参数可跳过无答案的题目适合把 Linux 导航等知识做成刷题式训练scripts/question_utils.py 提供get_answered_questions、get_random_question等函数可编程化抽取题目scripts/count_questions.sh 统计仓库中的题目与练习总数便于了解覆盖范围。建议的实操路径先独立完成 练习题目再对照 参考答案 逐条执行并配合pwd验证每个中间状态随后使用echo $PWD、echo $OLDPWD观察两个环境变量的变化亲手确认cd -的底层依据最后用pushd/popd/dirs体验目录栈导航并回到 Linux 101 问答 检验自己对六种cd形态的掌握程度。整条链路从命令执行到机制理解、再到自测巩固正是这份仓库练习设计的完整闭环。赞分享文档教程DevOps运维【免费下载链接】devops-exercisesLinux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions项目地址https://gitcode.com/GitHub_Trending/de/devops-exercises点击查看免费下载相关推荐Go 接口设计与组合以 claude-skills 的 golang-pro Skill 为例的系统化实践指南Go 接口设计与组合以 claude skills 的 golang pro Skill 为例的系统化实践指南 本文基于 claude skills http文档教程DevOps运维ItChat零基础入门从安装到5分钟跑通第一个微信机器人教程ItChat零基础入门从安装到5分钟跑通第一个微信机器人教程 ItChatitchat是一个开源的 Python 微信个人号接口 让你用最少的代码完成微文档教程DevOps运维devops-exercises 实战用 Bash 脚本清理目录中的空文件Empty Files 练习精讲devops exercises 实战用 Bash 脚本清理目录中的空文件Empty Files 练习精讲 导读 本文围绕 devops exercise文档教程DevOps运维上一篇jsinspect终极JavaScript代码重复检测工具完整指南下一篇Windows 10 上怎么运行 Android 应用WSA-Windows-10 安装与使用全记录创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表