Linux新手学习资料一篇(1)

发表于:2007-07-04来源:作者:点击数: 标签:
对于 Linux 新手,或者那些想要重新审视或改进自己对基本 Linux 概念(比如:复制和移动文件、创建符号和硬链接、设置文件系统对象所有权和权限以及同管道和重定向一起使用 Linux 的标准文本处理命令)的理解的人来说,本文是实用的。 对于初学者而言,本系

对于 Linux 新手,或者那些想要重新审视或改进自己对基本 Linux 概念(比如:复制和移动文件、创建符号和硬链接、设置文件系统对象所有权和权限以及同管道和重定向一起使用 Linux 的标准文本处理命令)的理解的人来说,本文是实用的。

 

对于初学者而言,本系列文章的许多内容都很新颖,而更有经验的 Linux 用户可能会发现本教程是使他们基本的 Linux 技能“炉火纯青”的有效途径。

 

介绍 bash shell

 

如果您使用过 Linux 系统,那么您知道当登录时,将会看到像这样的提示符:

 

$

 

您所看到的特殊的提示符可能看起来很不一样。它可能包含系统的主机名、当前的工作目录名,或者两者都有。但是不管这个特殊的提示符看起来像什么,有一件事是肯定的。打印出这个提示符的程序叫“shell”,极有可能您的特殊的 shell 是一个叫 bash 的程序。

 

您在运行 bash 吗?

 

您可以通过输入下面的命令来检查您是否正在运行 bash:

 

$ echo $SHELL

 

/bin/bash

 

 

如果上面的命令行报错或者不会类似地响应我们的示例,那么您可能正在运行一个不同于 bash 的 shell。

 

关于 bash

 

Bash 是“Bourne-again shell”的首字母缩写,它是大多数 Linux 系统缺省的 shell。shell 的任务是执行您的命令,使您能够与 Linux 系统进行交互。当您输完命令,您可以通知 shell 执行 exit 或 logout 命令,在此您将返回到登录提示符。顺便提一下,您还可以通过在 bash 提示符下按 control-D 来注销。

 

使用“cd”

 

您可能已经发现,目不转睛地盯着bash提示符可不是世界上最让人感到有劲的事。那么,让我们来开始用 bash 来浏览我们的文件系统。在提示符下,输入下面的命令(不包括 $):

 

 

$ cd /

 

 

我们只告诉 bash 您想在 /(也称为根目录)中工作;系统上的所有目录形成一棵树,/ 被认为是这棵树的顶部,或者是根。cd设置当前您正在工作的目录,也称为“当前工作目录”。

 

路径

 

要看 bash 的当前工作目录,您可以输入:

 

 

$ pwd

 

/

 

在上面的示例中,cd 的 / 参数叫做路径。它告诉 cd 我们要转到什么地方。特别是,/ 参数是一个绝对路径,意味着它指定了相对于文件系统树的根的位置。绝对路径这里有几个其它的绝对路径:

 

 

/dev

/usr

/usr/bin

/usr/local/bin

 

 

您可以看到,所有绝对路径有一个共同点就是,它们都以/开头。通过路径/usr/local/bin,我们告诉 cd 进入 / 目录,接着进入这个目录之下的usr目录,然后再进入 local 和 bin。绝对路径总是通过是否以 / 开头来判断。

 

相对路径

 

另一种路径叫相对路径。在 Bash 中,cd 以及其它命令总是解释那些相对于当前目录的路径。相对路径绝不会以 / 开头。这样,如果我们在 /usr 中:

 

 

$ cd /usr

 

 

那么,我们可以使用相对路径来转到 /usr/local/bin 目录:

 

 

$ cd local/bin

$ pwd

/usr/local/bin

 

 

使用“..”

 

相对路径还可以包含一个或多个 .. 目录。.. 目录是指向父目录的专门目录。那么,继续前面的示例:

 

 

$ pwd

/usr/local/bin

$ cd ..

$ pwd

/usr/local

 

 

您可以看到,现在我们的当前目录是 /usr/local。我们能够“后退”到相对于我们所在的当前目录的一个目录。此外,我们还可以将 ".." 添加到一个现有的相对路径中,使我们可以进入与我们已在目录并排的目录,例如:

 

 

$ pwd

/usr/local

$ cd ../share

$ pwd

/usr/share

 

 

相对路径示例

 

相对路径可以变得相当复杂。这里有几个示例,所有的都没有显示出结果的目标路径。请试着推断一下,输入这些命令后,您最终将会转到什么地方:

 

 

$ cd /bin

$ cd ../usr/share/zoneinfo

$ cd /usr/X11R6/bin

$ cd ../lib/X11

$ cd /usr/bin

$ cd ../bin/../bin

 

 

现在,试验一次,看看您的推断是否正确。

 

理解“.”

 

在我们结束 cd 的介绍之前,我们还需要讨论一些更多的内容。首先,还有另一个叫 . 的专门的目录。它表示“当前目录”。然而该目录不为 cd 命令使用,它通常用来执行一些当前目录中的程序,如下所示:

 

 

$ ./myprog

 

 

在上面的示例中,驻留在当前工作目录中的 myprog 可执行文件将被执行。

 

cd 和主目录

 

如果我们想要转到主目录,我们可以输入:

 

 

$ cd

 

 

没有参数,cd 将转到主目录,对于超级用户来说是 /root,对于一般用户来说通常是

 

/home/username。但是,如果我们想要指定一个主目录中的文件,将会怎样呢?可能我们想要将一个文件参数传给 myprog 命令。如果该文件在主目录中,我们可以输入:

 

 

$ ./myprog /home/drobbins/myfile.txt

 

 

但是,使用像这样的绝对路径并不总是很方便。幸好,我们可以使用 ~(代字符)字符来完成同样的事:

 

 

$ ./myprog ~/myfile.txt

 

 

其他用户的主目录Bash 将把单独的 ~ 扩展为指向主目录,然而您还可以用它来指向其他用户的主目录。例如,如果我们想要引用 fred 的主目录中的名为 fredsfile.txt 的文件,可以输入:

 

 

$ ./myprog ~fred/fredsfile.txt

原文转自:http://www.ltesting.net