对于 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
flashtop 于 2007-06-14 09:27:25发表:
建议初学者看看,不错
wsq1984sdo 于 2007-06-14 08:00:03发表:
:0L
orzhijia 于 2006-12-27 18:07:30发表:
不错
suertang 于 2006-12-27 15:55:44发表:
搂主可以给我讲讲代参数的shell命名如何执行吗?
amy0625 于 2006-12-27 13:35:17发表:
好详细啊。。谢谢楼主了。。学习中~~:0L
iamfriday 于 2006-12-22 10:04:24发表:
正则表达式~~
现说明一下这个吧……然后再介绍一下通配~
谢谢~~~~
:time:1
坦院风 于 2006-12-22 09:48:11发表:
有没有关于LINUX命令的 书籍上传看看谢谢!
还是不懂 于 2006-12-16 20:05:44发表:
:0)1
:0D1
hwphoenix 于 2006-12-16 08:09:23发表:
谢谢指导!正在学习中!
hwphoenix 于 2006-12-07 11:59:36发表:
正在用功学习中。。。。。。。!!!!
ccyde 于 2006-12-06 14:42:58发表:
顶
feiying 于 2006-12-04 22:12:09发表:
这个对新手有用,顶上去!
lgms2008 于 2006-12-04 00:48:26发表:
好,顶一下这个贴子,linux新手必学呀。
hylingzhi 于 2006-12-03 18:02:59发表:
hao ba
hylingzhi 于 2006-12-03 16:57:13发表:
wo buzhidaozmxue
chippendale 于 2006-12-01 14:15:29发表:
好东西,正是我要找的。谢谢了
akentop 于 2006-12-01 11:06:29发表:
zhici 顶上去
于 2006-11-20 14:37:06发表:
:0L
8201111 于 2006-11-16 19:41:10发表:
好东西,谢谢!!!
笨鸟先飞 于 2006-11-16 03:19:03发表:
顶一下
笨鸟先飞 于 2006-11-16 03:17:30发表:
太好了
snqyss 于 2006-11-05 11:39:49发表:
:0L 学习了
koji1573 于 2006-11-04 13:54:07发表:
楼主,牛人
申颖123 于 2006-10-04 23:20:31发表:
我安装aslanux linux 以后,到输入用户和密码时候,输好了
进入了是和输入shell命令一样.怎么就进不到图形界面?怎么回事哟
帮帮我吧
谢谢
mrhaigui 于 2006-10-04 23:20:21发表:
很基础
有用
不过还是觉得学习linux自己手头上应该有一本基础技能的书和一本专门的指令的书
这是最基础的
申颖123 于 2006-10-04 23:13:43发表:
@naigo@ 于 2006-10-04 00:56:56发表:
不错的文章,已经学习了!
申颖123 于 2006-09-30 20:48:52发表:
太好了
多发点就好了
simple1423 于 2006-09-19 17:11:56发表:
顶 有英文的更好 毕竟是源
feng-gdut 于 2006-09-18 22:08:40发表:
kuanghao1977 于 2006-09-06 09:42:08发表:
thanks. i think it is helpful for me!
sxwailyc 于 2006-09-05 08:23:16发表:
不错
kuanghao1977 于 2006-09-04 23:57:45发表:
好文章啊
quming 于 2006-09-04 19:51:38发表:
seamanchen126 于 2006-08-31 14:06:14发表:
很??,??!
nathan_nju 于 2006-08-31 08:22:13发表:
支持呀
连露 于 2006-08-30 22:23:48发表:
看看,很适合新手
frandos 于 2006-08-30 17:33:57发表:
学习~~呵呵
xidianyang 于 2006-08-29 10:40:25发表:
hao
侯学安 于 2006-08-29 00:26:48发表:
too little coulde u gie out more ?
that is so good of u