【看表情包学Linux】了解操作系统 | 目录内容的显示 | 目录跳转 | 基本创建与删除操作(二)

简介: 本章将浅谈一下 "操作系统是什么" 的问题,随后通过讲解一些 Linux 下的基本指令,显示目录内容、跳转操作和文件的创建与删除。在讲解的同时我会穿插一些知识点,比如 Linux 隐藏文件、路径等基础知识。

Ⅲ. 目录的跳转操作


0x00 引入:Linux 目录结构的本质

 我们刚才已经用过 cd 命令了,现在我们来正式的谈一谈这个命令。


❓ 思考:Linux 入口目录时 / 根目录,请问根目录可以再放一个目录吗?


Linux 的目录结构本质是一个多叉树。所以我们把 / 称为根目录,是路径的起始。


🌳 在数据结构的角度去理解:


① 既然是一颗多叉树,每一个子节点既可以是一个目录(再放目录或普通文件,递归式的定义),也可以是一个普通文件。


② 这颗多叉树的叶子节点一定是一个普通文件或者是空目录。

6a44aea278b61d0e4fbb0e5c92f99712_b18db9fa52564d30be90e9bb556a5dee.png


我们一般 "定位" ,是通过路径定位的方式找到文件的。


❓ 思考:为什么我们都是通过路径方式定位文件的呢?


如果我们想找到我们曾经写的 test.c 文件,我们可以从 / 到 home 到 foxny 再到 test.c。


任何一结点,可以有多个子节点。但是任何一个子节点,都只有一个父节点。


所以 test.c 只有一个父节点,即 foxny …… foxny 也只有一个父节点,即 home……


所以当我们定位路径时,反向回推时,这条路径时具有惟一性的。


💡 因为常规的路径定位是具有惟一性的。


0x01 绝对路径与相对路径

/home/foxny/test.c : Linux 下的 "绝对路径" (惟一性且永远有效)。

2db0682f8881f31e108363d641709104_5ebe9e5799e141dc8ee55ad5dfb1ecdc.png

相对路径:相对于我当前所处的路径。


相对路径往往相对于当前位置,容易失效。而绝对路径是永远有效的!


如果是日常使用,我们推荐相对路径 —— 因为简单。


如果是进行添加配置文件之类的,推荐绝对路径 —— 因为不会出错。


🔺 结论:cd 命令后面可以跟上任何以绝对路径或相对路径构建的路径。

7d067f27ae1744482a11a3ec2124145e_f35813fdaf274110ada447ac6f8fcc78.png

0x02 pwd 指令

这个指令我们刚才已经用过了,没有比这个指令还要简单的指令了。


🔨 pwd:显示用户当前所在的目录


$ pwd       # 显示用户当前所在的目录

4c74b806b37f910de99d54768f820ce5_fce55c8009044256a3627394dd23c3f5.png


0x03 cd 指令

💭 我们再讲几个 cd 指令的快捷方式:


$ cd ~        # 跳转到当前用户的家目录   ~: 表示home

这里的 ~ 就是一个快捷进入我们工作目录的方式。


默认一个用户在登录时,都是处于该用户的家目录中的。


一个普通用户的家目录一般都是在 home 路径下有一个以你名字命名的文件夹。


如果是 root 用户,它会在根目录下的 root 目录下。


(关于 root 和普通用户的差别,我们在后面的权限章节会详细讲解)


$ cd /          # 跳到根目录
$ cd -          # 跳转至上一次我所处的路径

db6f15f20305b553560f11fed7e9b3b6_3b76cea73f6f4acb9f1067e0fc20a905.png


Ⅳ. 基本创建操作


0x00 touch 指令

touch [选项]... 文件...

🔨 touch:创建文件


touch 命令参数可更改文档或目录的日期时间,


包括存取时间和更改时间,或者新建一个不存在的文件。


📜 touch 常用选项:


-a   或 --time=atime 或 --time=access 或 --time=use :只更改存取时间。

-c   或 --no-create :不建立任何文档。

-d   使用指定的日期时间,而非现在的时间。

-f    此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题。

-m  或 --time=mtime 或 --time=modify :只更改变动时间。

-r    把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t    使用指定的日期时间,而非现在的时间。

本章我们只讲 touch 普通用法,我们不去讲它的常用选项。


本章只需掌握 touch 的最普通的用法,即用 touch 来创建普通文件。

(对于 touch 修改文件时间等用法我们放到讲开发工具 makefile 的时候再讲)

46828060187c22e9d1ac00ecc773d917_67d72d12f0414034b6a640c0088f02c5.png


💬 动手操作:


① touch 创建一个 mytest.c     ② 使用 nano 写一个 Hello,Linux!      ③ gcc 编译


具体操作步骤如下:(nano —— Linux 中的文本编辑器)

8c455beca8f9a0e7e04d1ffced81562f_d7c19b0b30e34baa9241213c8436589c.png

如果你没有 nano,切换至 root 账户,输入以下指令进行安装:


# yum install -y nano

如果你没有 gcc,切换至 root 账户,输入以下指令进行安装:


# yum install -y gcc-c++

0x01 mkdir 指令

mkdir [选项] [目录名]    # 创建目录

🔨 mkdir:创建目录


📜 mkdir 常用选项:


-p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

💭 对于 mkdir 的命令,本章只需要掌握这两个就够了:

f599100aaea9d4b88f335d16f174f3e5_00e39052422f49ce8d807e8bcb072bb1.png

Ⅴ. 基本删除操作


0x00 rmdir 指令

🔨 rmdir :删除非空目录


rmdir [目录名]

注意!rmdir 只能删除空目录!

7988bda24ae4865c17c5bed3b9dd0a77_c9be5ce0f564465d90b6003e02a62e27.png

0x01 rm 指令

🔨 rm :删除普通文件


rm [文件名]     # 删除普通文件

ef9048149e143202c6caa7bdaa0b7da7_a587536d6ffd403bab8b580551998cf2.png


如果我们想删除一个目录:

75868e96deb8708c8c3cc6c32b944c55_eb69af95737b43baa10092ff67a2dc24.png



如果像删除一个目录我们可以通过 " -r 递归式删除 "


$ rm -r [目录名]    # 递归删除目录文件

b4fc8907aa22eeeae71bf7939b70421f_ad2fa8b0e48e43df8fc983c0fcd79fa8.png


0x02 rm -rf 强制删除

📜 rm -rf :强制删除


rm 还有一个选项, -r 表示递归,还可以带一个 f (force,即强迫) :


$ rm -rf [目标]      # 强制删除

有时候我想删一个文件,系统会提示你 "你确认吗?"


我们带一个 -f,  意思就是说 —— "我非常确认!你不要给我提示了!"


📌 注意事项:不要在 root 下输入:

# rm -rf /

你的系统有可能会挂掉,即便没有挂,它它会从根目录开始递归把能删的都删了。


(如果你想试,且你现在也没啥文件,可以试试,就算挂掉了,去云服务器后台重启就行)

07c03ae6d77b4b153f6d1ec710be7c14_7a80245f0b5f4021a033b3789a9efdeb.png

相关文章
|
2月前
|
存储 Linux
Linux 目录名称
Linux系统目录结构简介:根目录(/)下包含各类功能目录,如/bin存放用户命令,/etc存储配置文件,/home为用户主目录,/var记录日志等可变数据,/usr存放用户工具,/tmp用于临时文件。各目录分工明确,保障系统有序运行。(238字)
247 5
|
8月前
|
Linux 定位技术
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
346 24
|
9月前
|
监控 Linux
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
182 19
|
10月前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
685 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
10月前
|
存储 Linux
linux中的目录操作函数
本文详细介绍了Linux系统编程中常用的目录操作函数,包括创建目录、删除目录、读取目录内容、遍历目录树以及获取和修改目录属性。这些函数是进行文件系统操作的基础,通过示例代码展示了其具体用法。希望本文能帮助您更好地理解和应用这些目录操作函数,提高系统编程的效率和能力。
370 26
|
9月前
|
Linux
Linux目录删除指南:彻底解决“Is a directory”错误
在 Linux 系统中遇到 `cannot remove 'xxx': Is a directory` 错误,是因为删除目录时未使用正确参数。解决方法包括:1) 使用 `rmdir` 删除空目录或 `rm -r` 删除非空目录;2) 检查并调整目录权限(如通过 `sudo` 提权);3) 处理特殊场景,例如文件属性异常、特殊字符或进程占用;4) 替代方法如 `find -delete` 或文件系统修复。操作前建议备份数据,并启用防误删功能(如 `alias rm='rm -i'`)。掌握 `rm` 和 `rmdir` 的区别是关键。
899 1
|
10月前
|
Linux
Linux文件与目录的日常
目录的切换 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户名相同的文件夹,可以使用(”cd“)命令来切换目录; 进入下载目录(”cd home/a/下载“)这种从给目录开头的一长串路经”叫做绝对路径“; 进入图片目录(”cd .. /图片/“)".."代表当前路径的上级路径,相对于当前的目录而言的”叫做相对路径“,(”.“)代表当前路径; 如果,想快速切换,上一个所在目录可以(”cd - / cd..“); 如果,想快速切换,追原始的目录可以(”cd --“); 查看目录及文件
153 14
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
1319 8
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
486 1
二、Linux文本处理与文件操作核心命令