• [笔记]快乐的Linux命令行《二》文件系统中跳转


    系列文章目录

    [笔记]快乐的Linux命令行《一》LInux系统简介以及什么是shell
    [笔记]快乐的Linux命令行《二》文件系统中跳转

    前言

    我们需要学习的第一件事(除了打字之外)是如何在 Linux 文件系统中跳转。

    一、文件系统中跳转

    1.1 理解文件系统树

    Linux,以分层目录结构来组织所有文件。这就意味着所有文件组成了一棵树型目录(directory)(有时候在其它系统中叫做文件夹 folder)(如下节图),这个目录树可能包含文件和其它的目录。

    文件系统中的第一级目录称为根目录。根目录包含文件和子目录,子目录包含更多的文件和子目录,依此类推。

    Linux基本文件系统树

    Linux 系统目录结构

    可以把文件系统 想象成 一颗倒立的树 "/"目录是根 所以被称为根目录
    在这里插入图片描述

    目录介绍

    /bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

    /boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

    /dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

    /etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    /home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve

    /lib:lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

    /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

    /media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

    /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

    /opt:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    /proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

    /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

    /sbin:就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

    /selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

    /srv:该目录存放一些服务启动之后需要提取的数据。

    /sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
    该文件系统是内核设备树的一个直观反映。
    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
    /tmp:tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

    /usr:usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

    /usr/bin:系统用户使用的应用程序。

    /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

    /usr/src:内核源代码默认的放置目录。

    /var:var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

    与Windows的异同

    • Windows :每个存储设备都有一个独自的文件系统。如下即两块磁盘
      在这里插入图片描述

    • Linux:类似于 Unix 的操作系统,比如 Linux,总是有一个单一的文件系统树,不管有多少个磁盘或者存储设备连接到计算机上。根据系统管理员的兴致,存储设备连接到(或着更精确些,是挂载到)目录树的各个节点上。系统管理员负责维护系统安全。

    1.2 当前工作目录

    在这里插入图片描述
    把文件系统想象成一个迷宫形状,就像一棵倒立的大树,我们站在迷宫的中间位置。在任意时刻,我们处于一个目录里面,我们能看到这个目录包含的所有文件,以及通往上面目录(父目录)的路径,和下面的各个子目录。

    我们所在的目录则称为当前工作目录

    我们使用pwd(打印工作目录)命令,来显示当前工作目录。

    pwd 显示当前工作目录

    [me@linuxbox ~]$ pwd # 输入后回车显示当前目录
    /home/me
    
    • 1
    • 2

    小贴士:

    • 当我们首次登录系统后,(或者启动终端仿真器会话后),当前工作目录是我们的主目录。
    • 每个用户都有他自己的主目录,当用户以普通用户的身份操控系统时,主目录是唯一允许用户编写
      文件的地方。

    1.3 列出目录内容

    列出一个目录包含的文件及子目录,使用 ls 命令。

    ls 列出目录内容

    [me@linuxbox ~]$ ls
    Desktop Documents Music Pictures Public Templates Videos
    
    • 1
    • 2

    1.4 更改当前工作目录

    要更改工作目录(此刻,我们站在树形迷宫里面)

    cd 命令 更改当前工作目录

    我们用 cd 命令。输入 cd, 然后输入你想要的工作目录的路径名,就能实现愿望。路径名就是沿着目录树的分支到达想要的目录,期间所经过的路线。

    路径名可通过两种方式来指定:

    • 一个是绝对路径,
    • 另一个是相对路径。

    首先处理绝对路径。

    1.5 绝对路径

    绝对路径开始于根目录,紧跟着目录树的一个个分支,一直到达期望的目录或文件。
    例如,你的系统中有一个目录,大多数系统程序都安装在这个目录下,
    这个目录的路径名是/usr/bin
    它意味着从根目录(用开头的“/``表示)开始,有一个叫’‘usr’’ 的目录包含了目录“bin”。

    [me@linuxbox ~]$ cd /usr/bin
    [me@linuxbox bin]$ pwd
    /usr/bin
    [me@linuxbox bin]$ ls
    ...Listing of many, many files ...
    
    • 1
    • 2
    • 3
    • 4
    • 5

    可以发现当前目录发生了变化,可以从shell提示符的变化观察到(通常设置提示符自动显示工作目录名)

    1.6 相对路径

    绝对路径从根目录开始,直到它的目的地,而相对路径从当前工作目录开始到达它的目的地。

    一对特殊符号来表示相对位置,在文件系统树中。
    这对特殊符号:

    • .” (点) :符号 “.” 指的是当前工作目录。
    • ..” (点点):指的是当前工作目录的上一级目录(或者说父目录)。

    举例:从/usr/bin到达/usr

    使用绝对路径:

    [me@linuxbox bin]$ cd /usr
    [me@linuxbox usr]$ pwd
    /usr
    
    • 1
    • 2
    • 3

    使用相对路径:

    [me@linuxbox bin]$ cd ..
    [me@linuxbox usr]$ pwd
    /usr
    
    • 1
    • 2
    • 3

    举例:从/usr 到达/usr/bin

    使用绝对路径:

    [me@linuxbox usr]$ cd /usr/bin
    [me@linuxbox usr]$ pwd
    /usr/bin
    
    • 1
    • 2
    • 3

    使用相对路径:

    [me@linuxbox usr]$ cd ./bin
    [me@linuxbox bin]$ pwd
    /usr/bin
    
    • 1
    • 2
    • 3

    或者另一种使用相对路径:

    [me@linuxbox usr]$ cd bin
    [me@linuxbox bin]$ pwd
    /usr/bin
    
    • 1
    • 2
    • 3

    小贴士:
    在几乎所有的情况下,你可以省略 “./”。它是隐含地输入

    1.7 有用的快捷键

    快捷键运行结果
    cd更改工作目录到你的家目录。
    cd -更改工作目录到先前的工作目录。
    cd ~user_name更改工作目录到用户家目录。例如, cd ~bob 会更改工作目录到用户“bob”的家目录。

    关于文件名的重要规则:

    1. 以 “.” 字符开头的文件名是隐藏文件。这仅表示,ls 命令不能列出它们,除非使用 ls -a 命令。当你创建帐号后,几个配置帐号的隐藏文件被放置在你的主目录下。稍后,我们会仔细研究一些隐藏文件,来定制你的系统环境。另外,一些应用程序也会把它们的配置文件以隐藏文件的形式放在你的主目录下面。
    2. 文件名和命令名是大小写敏感的。文件名 File1 和 file1 是指两个不同的文件名。
    3. Linux 没有“文件扩展名”的概念,不像其它一些系统。可以用你喜欢的任何名字来给文件起名。文件内容或用途由其它方法来决定。虽然类似 Unix 的操作系统,不用文件扩展名来决定文件的内容或用途,但是应用程序会。
    4. 虽然 Linux 支持长文件名,文件名可能包含空格,标点符号,但标点符号仅限 使用“.”,“-”,下划线。最重要的是,不要在文件名中使用空格。如果你想表示词与词间的空格,用下划线字符来代替。(注意,如果有空格 文件路径需要用引号括起来,避免被识别为参数)

    总结

    本节就介绍到这里了,回忆一下你还记得多少:

    • 文件系统的树结构
    • 跳转目录的方法
    • 绝对路径和相对路径的区别

    关注微信公众号【二次源怪兽】
    回复【快乐的Linux命令行】
    获取电子书
  • 相关阅读:
    自学WEB后端01-安装Express+Node.js框架完成Hello World!
    Spring面试题14:Spring中什么是Spring Beans? 包含哪些?Spring容器提供几种方式配置元数据?Spring中怎样定义类的作用域?
    云原生之容器编排实践-通过IDEA连接Docker服务
    数据库第六章作业
    力扣 100. 相同的树 java
    设计模式-观察者模式(Observer Pattern)结构|原理|优缺点|场景|示例
    C#.NET 国密SM4 CBC 对称加解密 与JAVA互通 ver:20231103
    141.环形链表
    安装显卡驱动报错
    Vue路由
  • 原文地址:https://blog.csdn.net/qq1113673178/article/details/127910829