本篇介绍三个命令:pwd
(打印当前工作目录),cd
(切换目录),ls
(列出目录和文件)。
如果你还没有使用过命令行界面(CLI)那么务必认真学习这篇内容,这些内容需要一定时间才能消化。
文件系统结构
与传统操作系统一样,Linux 系统的文件组织方式被称为分层目录结构
。就是将目录(某些系统中称之为文件夹)组织成树形结构,目录中可以包含文件和其他目录。
文件系统的第一个目录为根目录
(root)。其他文件和子目录都在根目录中,这些子目录中还可以有更多的文件和更多的子目录。
如今的操作系统都有图形化的文件管理器,可以方便的查看和管理文件系统中的内容。通常你看到的会像下图一样的结构:
与传统操作系统在文件系统方面最大的不同在于 Linux 系统中没有驱动器编号的概念,就是那种像 Windows 系统中使用英文字母区分一个个不同的分区形式。Linux 总是只有一个独立的树。不同的存储设备可以包含不同的分支,但永远只有一个文件树。
pwd
由于命令行界面
无法像图形化界面那样直观显示文件系统结构,因此必须要找到不同的方式来显示它们。现在把文件系统想象成一个迷宫,你就站在里面。在任何时候,你都位于一个独立的目录中。在那个目录中,你可以看到里面的文件以及父目录和子目录路径。
你当前站在的位置称为工作目录
。使用 pwd
命令查看工作目录的名字:
[me@linuxbox me]$ pwd
/home/me
每当你登录 Linux 系统时,工作目录都会被设置到家目录
(home)。绝大多数的操作系统中,家目录都是 /home/your_user_name
,但根据系统管理员的想法,家目录可以设置在任何位置。
使用 ls
命令列出工作目录中的文件:
[me@linuxbox me]$ ls
Desktop Xrootenv.0 linuxcmd
GNUstep bin nedit.rpm
GUILG00.GZ hitni123.jpg nsmail
在下一节会进一步介绍 ls
命令,它还能做更多有趣的事情。不过这里必须先介绍一些路径名
和目录
相关的内容。
cd
使用 cd
命令可以切换你的工作目录(你在迷宫里的位置)。只要在 cd
命令后面添加要进入的路径名即可。路径名
是到达指定目录的线路结构,它有 2 种不同的指定方式;绝对路径
或相对路径
。首先了解一下绝对路径。
绝对路径
以根目录为起始,一级级直到达到指定目录或文件的位置为止。例如,在你的操作系统中有一个目录,大多数程序都安装到了那里,这个目录的路径名为 /usr/bin
。即根目录
(通常用 /
斜线表示根目录)下的 usr
目录中包含的名为 bin
的目录。
让我们在终端中尝试一下:
[me@linuxbox me]$ cd /usr/bin
[me@linuxbox bin]$ pwd
/usr/bin
[me@linuxbox bin]$ ls
[ lwp-request
2to3 lwp-rget
2to3-2.6 lxterm
a2p lz
aalib-config lzcat
aconnect lzma
acpi_fakekey lzmadec
acpi_listen lzmainfo
add-apt-repository m17n-db
addpart magnifier
and many more...
现在我们已经将工作目录切换到 /usr/bin
,并且列出了工作目录中的所有文件。是否注意到了命令提示符的变化?通常,终端命令提示符会显示工作目录的名字。
与绝对路径这种以根目录开始到目标目录为止的表示方式不同,相对路径
以当前的工作目录作为起点。对此,它使用一对特殊的符号来表示在文件系统树中的相对位置,即 .
和 ..
。
.
一个点代表工作目录本身,..
两个点代表工作目录的父目录。让我们实际演练一下,在终端中再次将工作目录切换到 /usr/bin
:
[me@linuxbox me]$ cd /usr/bin
[me@linuxbox bin]$ pwd
/usr/bin
接下来我们要切换到工作目录的父目录,即 /usr
。对此我们有两种切换方式,第一种,使用绝对路径:
[me@linuxbox bin]$ cd /usr
[me@linuxbox usr]$ pwd
/usr
第二种,使用相对路径:
[me@linuxbox bin]$ cd ..
[me@linuxbox usr]$ pwd
/usr
两种方法都能得到相同的结果。你会采用哪一种?当然要选输入更少的那一种!
同样的,我们有两种方法可以将工作目录从 /usr
切换到 /usr/bin
。首先使用绝对路径:
[me@linuxbox usr]$ cd /usr/bin
[me@linuxbox bin]$ pwd
/usr/bin
或者,使用相对路径:
[me@linuxbox usr]$ cd ./bin
[me@linuxbox bin]$ pwd
/usr/bin
现在,这里必须指出一些很重要的提示。在大多数情况下,你可以忽略 ./
,直接输入相对路径名:
[me@linuxbox usr]$ cd bin
效果与使用 ./
时完全相同。通常来说,如果不指定路径名,那么工作目录就是默认路径。
几个快捷键
如果 cd
命令后没有添加任何路径名,那么 cd
会将工作目录切换到你的家目录
。
还有一个相关的快捷键,输入 cd ~user_name
将会切换工作目录到指定用户的家目录
。
输入 cd -
会切换工作目录到上一次执行 cd
命令进入的目录。
有关文件名的重要说明
以 .
一个半角点号开头命名的文件为隐藏文件,使用 ls
命令无法列出隐藏文件,但 ls -a
命令可以。创建用户账户时,几个用以配置账户的隐藏文件会被一并创建在用户的家目录中。稍后我们将进一步介绍这些文件,了解如何用他们自定义你的环境。另外,一些应用程序也会将隐藏的配置文件放置到你的家目录中。
Linux 系统的文件名是大小写敏感
的。File1
和 file1
是完全不同的两个文件。
与传统操作系统不同,Linux 中没有扩展名
的概念,你可以随便给文件命名。不过,虽然 Linux 本身并不在乎文件的扩展名,但是许多应用程序会在乎。
虽然 Linux 支持长文件名,且文件名中可以包含空格和符号(点,横线和下划线)。最重要的是,不要再文件名中使用空格,建议使用下划线代替空格。以后你会因此而感谢自己的!
.