Linux 命令行的世界 :2.文件系统中跳转

我们需要学习的第一件事(除了打字之外)是如何在 Linux 文件系统中跳转。在这一章节中,我们将介绍以下命令:
pwd 打印出当前工作目录名
cd 更改目录
ls 列出目录内容

Linux以分层目录结构来组织所有文件。这就意味着所有文件组成了一棵树型目录,这个目录树可能包含文件和其它的目录。文件系统中的第一级目录称为根目录。根目录包含文件和子目录,子目录包含更多的文件和子目录,依此类推。

Linux,总是只有一个单一的文件系统树(通常这是一棵倒置的树,也就是说,树根在最上面,而各个枝干在下面展开。),不管有多少个磁盘或者存储设备连接到计算机上。根据负责维护系统安全的系统管理员的兴致,挂载到目录树的各个节点上。

我们所在的目录则称为当前工作目录。我们使用 pwd(print working directory(的缩写))命令,来显示当前工作目录。

bash 复制代码
[root@localhost ~]# pwd
/root

当我们首次登录系统后,当前工作目录是我们的根目录。

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

bash 复制代码
[root@localhost /]# ls
ATO     bin   copylog  etc   lib    media  opt   root  sbin  sys  usr
backup  boot  dev      home  lib64  mnt    proc  run   srv   tmp  var

要更改工作目录,我们用 cd 命令。输入 cd, 然后输入你想要去的工作目录的路径名。路径名就是沿着目录树的分支到达想要的目录期间所经过的路线。路径名可通过两种方式来指定,一种是绝对路径,另一种是相对路径。

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

bash 复制代码
[root@localhost var]# cd /usr/bin
[root@localhost bin]# pwd
/usr/bin

我们把工作目录转到 /usr/bin 目录下,注意shell 提示符是怎样改变的吗?为了方便,通常终端提示符自动显示工作目录名。

相对路径开始于工作目录。为了做到这个(用相对路径表示),我们在文件系统树中用一对特殊符号来表示相对位置。这对特殊符号是 "."(点)和 ".." (点点)。符号 "." 指的是工作目录,".." 指的是工作目录的父目录。比方说我们想更改工作目录到 /usr/bin 的父目录 /usr。比方说我们想更改工作目录到 /usr/bin 的父目录 /usr。

bash 复制代码
#使用绝对路径
[root@localhost bin]# cd /usr/
[root@localhost usr]# pwd
/usr

#使用相对路径
[root@localhost usr]# cd /usr/bin/
[root@localhost bin]# cd ..
[root@localhost usr]# pwd
/usr

同样地,从目录 /usr/ 到 /usr/bin 也有两种途径。

bash 复制代码
#使用绝对路径
[root@localhost usr]# cd /usr/bin/
[root@localhost bin]# pwd
/usr/bin

#使用相对路径
[root@localhost usr]# cd ./bin/
[root@localhost bin]# pwd
/usr/bin

有一件很重要的事,我必须指出来。在几乎所有的情况下,你可以省略 "./"。它是隐含的。如果不指定一个文件的路径,那它被默认为在当前工作目录下。

bash 复制代码
[root@localhost bin]# cd ..
[root@localhost usr]# pwd
/usr
[root@localhost usr]# cd bin
[root@localhost bin]# pwd
/usr/bin

关于文件名的重要规则

  1. 以 "." 字符开头的文件名是隐藏文件。这仅表示,ls 命令不能列出它们,用 ls-a 命令就可以了。

  2. 文件名和命令名是大小写敏感的。文件名"File1"和"file1"是指两个不同的文件名。

  3. Linux 没有"文件扩展名"的概念。

  4. 虽然 Linux 支持长文件名,文件名可能包含空格,标点符号,但标点符号仅限使用".","-",下划线。最重要的是,不要在文件名中使用空格。如果你想表示词与词间的空格,用下划线字符来代替。

最后祝大家龙年大吉!!

版权声明

复制代码
版权声明:
本文参考了THE LINUXCOMMAND LINE by William Shotts,
本文内容为我阅读过程中精简后的记录笔记整理而成。
推荐大家去读原书哦!
相关推荐
阿里云大数据AI技术13 小时前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能
orion571 天前
Missing Semester Class1:course overview and introduction of shell
linux
SkyWalking中文站1 天前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
用户120487221612 天前
Linux驱动编译与加载
linux·嵌入式
火车叼位2 天前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
用户805533698032 天前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698032 天前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
小猿姐2 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
七歌杜金房2 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
SkyWalking中文站3 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维