Linux 学习第二篇:从零认识 Linux 文件系统、目录结构与基本命令

一、前言:为什么学习 Linux 要先认识文件和目录?

在上一篇博客中,我们已经完成了 Windows 11 下的 WSL 和 Ubuntu 环境搭建,并初步认识了 Linux。

现在,我们可以通过 PowerShell 进入 Ubuntu,开始学习真正的 Linux 命令。

但是,在学习各种命令之前,我们需要先解决一个问题:

当我们进入 Linux 系统后,如何知道自己在哪里?如何查看文件?又该如何找到自己需要的文件?

我们可以先思考一个实际的开发场景。

假设我们已经完成了一个 Spring Boot 项目,并将它部署到了 Linux 服务器上。程序启动后,我们需要查看配置文件、检查日志,或者找到项目对应的 JAR 包。

如果我们连文件存放在哪里都不知道,那么后续的操作就无从谈起。

因此,学习 Linux 的第一步并不是背诵大量命令,而是先理解 Linux 的文件系统、目录结构和路径。

二、Linux 的目录树

在Windows当中,我们常常见到这样的路径

复制代码
C:\Users\Lenovo\Javalearning

这个就是从c盘开始依次进入一些目录

Linux当中同样使用目录组织文件,但是它采用的是以根目录/为起点的目录书结构

例如:

复制代码
/
├── home
│   └── lenovo
├── etc
├── var
│   └── log
├── tmp
├── usr
└── mnt
    └── c

其中的根目录就是/这样一个斜杠,但是这里要区分一下Windows当中的c盘,d盘跟这里的根目录,Windows这样可以表示不同的卷,但是Linux当中将目录统一组织在一棵目录树中

三、认识 Linux 中常见的目录

我们不仅要了解这些目录的用途,也会有一个疑惑就是这些目录都是直接有的吗:这些目录大部分是Linux系统自带的,这些其实都是规范,你并不是一定都要将对应的数据一定要放到对应的目录下面,就好比说我有个d盘的Java学习文件夹,但是我就是将Java学习的相关东西放到了c盘的c语言学习文件夹中,这样是允许的,但是会很混乱,所以下面介绍的就相当于是一套约定俗称的目录组织规范了

目录 主要作用 通常是否默认存在 实际应用场景
/ 根目录,整个 Linux 目录树的起点 是 所有绝对路径都从这里开始
/home 普通用户主目录的存放位置 通常是 保存普通用户的个人文件
/home/lenovo 用户 lenovo 的主目录 创建用户时通常会建立 保存自己的学习资料、项目代码
/etc 存放系统和软件的配置文件 是 查看或修改软件配置
/var/log 常见的系统日志存放位置 通常是 查看系统日志,排查运行异常
/tmp 存放临时文件 是 程序运行时临时保存数据
/usr 存放许多系统程序、库和共享资源 是 查找系统命令及相关资源
/mnt 常见的文件系统挂载目录 通常是 挂载磁盘或访问其他文件系统
/mnt/c WSL 中常见的 Windows C 盘映射路径 取决于 WSL 挂载配置 在 Ubuntu 中访问 Windows 文件
/home/lenovo/java-study 自己创建的 Java 学习目录示例 不一定,需要自行创建 存放 Linux 学习代码或 Java 项目

四、一些关于目录的命令

第一条命令:使用 pwd 查看当前目录

使用的第一步肯定是先要知道自己在哪里,那么pwd就是查看当前的目录的

如果输出的是:

复制代码
/mnt/c/Windows/system32

则表示当前工作目录位于 WSL 中映射的 Windows C 盘路径下

第二条命令:使用 cd 切换目录

cd 是 change directory 的缩写,作用是切换当前工作目录

基本用法:

复制代码
cd 目标路径

例如:

复制代码
cd /home/lenovo

什么是 ~ ?

在 Linux 中,~ 通常表示当前用户的主目录

对于我们的用户 lenovo 来说:

复制代码
~

通常对应:

复制代码
/home/lenovo

因此,我们可以直接输入:

复制代码
cd ~

就能切换到自己的主目录,这里要注意一点的是cd与~之间是有空格的

不带参数的 cd 命令

其实,我们还可以直接输入:

复制代码
cd

在常见的 Bash Shell 环境中,这同样会将当前目录切换到当前用户的主目录。

因此,下面两种写法通常都可以达到相同的效果:

复制代码
cd

cd ~

使用 .. 返回上一级目录

假设我们当前位于:

复制代码
/home/lenovo

如果想返回上一级目录,可以输入:

复制代码
cd ..

然后执行:

复制代码
pwd

就会得到:

复制代码
/home

这里的 .. 表示当前目录的父目录,也就是上一级目录

第三条命令:使用 ls 查看文件和目录

pwd是显示我现在在哪里,而ls则告诉我们这里面有什么

用法就是直接输入ls即可

查看指定目录,而不切换过去

ls 还可以查看指定目录的内容。

例如:

复制代码
ls /home

这条命令会列出 /home 目录中的内容,但不会改变当前工作目录

使用 ls -l 查看详细信息

除了文件名,我们有时还想知道文件权限、所有者、大小和修改时间。

这时可以使用:

复制代码
ls -l

它会以较为详细的格式列出目录内容

今天的知识总结

通过本篇博客,我们学习了 Linux 文件系统的基本概念,以及最基础的目录导航命令

核心命令(一定要注意有空格!!!)

命令 作用
pwd 查看当前工作目录
ls 查看当前目录内容
ls -a 查看包括隐藏目录项在内的内容
ls -l 查看目录内容的详细信息
cd ~ 切换到当前用户的主目录
cd .. 切换到上一级目录
cd / 切换到根目录
cd /home/lenovo 切换到指定目录
相关推荐
重生之我是Java开发战士1 小时前
【Redis】Redis五大数据类型
1024程序员节
一尺之棰1 小时前
DSP-定时器原理
1024程序员节
全栈小51 小时前
【C#】体验和使用墨衍MoGrow平台写一篇技术总结文章,提供C#,Quart.Net,统一捕获异常,定时任务关键词,看看出来效果如何
1024程序员节
蹊黎1 小时前
C++中stack、queue、priority queue类的部分简单实现
数据结构·c++·visualstudio·1024程序员节
hixiong1231 小时前
纯C# Paddle2Onnx 转换器
1024程序员节
愤怒火龙果1 小时前
AIShield 靶场 WP
人工智能·网络安全·1024程序员节
软件派1 小时前
Eden AI 保姆级介绍:一站式 AI 聚合网关,一个 API 调用上百种大模型与视觉语音能力
1024程序员节·统一 api·多模态 api
ai_coder_ai1 小时前
论平台工程(平台化架构)在云原生系统中的设计与实践
1024程序员节
惊讶的猫1 小时前
mysql索引
mysql·1024程序员节