红联Linux门户
Linux帮助

从零开始:Linux基础教程之命令的使用

发布时间:2005-08-22 10:10:28来源:红联作者:zz123
对于 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
文章评论

共有 107 条评论

  1. flashtop 于 2007-06-14 09:27:25发表:

    建议初学者看看,不错

  2. wsq1984sdo 于 2007-06-14 08:00:03发表:

    :0L

  3. orzhijia 于 2006-12-27 18:07:30发表:

    不错

  4. suertang 于 2006-12-27 15:55:44发表:

    搂主可以给我讲讲代参数的shell命名如何执行吗?

  5. amy0625 于 2006-12-27 13:35:17发表:

    好详细啊。。谢谢楼主了。。学习中~~:0L

  6. iamfriday 于 2006-12-22 10:04:24发表:

    正则表达式~~
    现说明一下这个吧……然后再介绍一下通配~
    谢谢~~~~
    :time:1

  7. 坦院风 于 2006-12-22 09:48:11发表:

    有没有关于LINUX命令的 书籍上传看看谢谢!

  8. 还是不懂 于 2006-12-16 20:05:44发表:

    :0)1
    :0D1

  9. hwphoenix 于 2006-12-16 08:09:23发表:

    谢谢指导!正在学习中!

  10. hwphoenix 于 2006-12-07 11:59:36发表:

    正在用功学习中。。。。。。。!!!!

  11. ccyde 于 2006-12-06 14:42:58发表:

  12. feiying 于 2006-12-04 22:12:09发表:

    这个对新手有用,顶上去!

  13. lgms2008 于 2006-12-04 00:48:26发表:

    好,顶一下这个贴子,linux新手必学呀。

  14. hylingzhi 于 2006-12-03 18:02:59发表:

    hao ba

  15. hylingzhi 于 2006-12-03 16:57:13发表:

    wo buzhidaozmxue

  16. chippendale 于 2006-12-01 14:15:29发表:

    好东西,正是我要找的。谢谢了

  17. akentop 于 2006-12-01 11:06:29发表:

    zhici 顶上去

  18. 于 2006-11-20 14:37:06发表:

    :0L

  19. 8201111 于 2006-11-16 19:41:10发表:

    好东西,谢谢!!!

  20. 笨鸟先飞 于 2006-11-16 03:19:03发表:

    顶一下

  21. 笨鸟先飞 于 2006-11-16 03:17:30发表:

    太好了

  22. snqyss 于 2006-11-05 11:39:49发表:

    :0L 学习了

  23. koji1573 于 2006-11-04 13:54:07发表:

    楼主,牛人

  24. 申颖123 于 2006-10-04 23:20:31发表:

    我安装aslanux linux 以后,到输入用户和密码时候,输好了
    进入了是和输入shell命令一样.怎么就进不到图形界面?怎么回事哟
    帮帮我吧
    谢谢

  25. mrhaigui 于 2006-10-04 23:20:21发表:

    很基础
    有用
    不过还是觉得学习linux自己手头上应该有一本基础技能的书和一本专门的指令的书
    这是最基础的

  26. 申颖123 于 2006-10-04 23:13:43发表:

  27. @naigo@ 于 2006-10-04 00:56:56发表:

    不错的文章,已经学习了!

  28. 申颖123 于 2006-09-30 20:48:52发表:

    太好了
    多发点就好了

  29. simple1423 于 2006-09-19 17:11:56发表:

    顶 有英文的更好 毕竟是源

  30. feng-gdut 于 2006-09-18 22:08:40发表:

  31. kuanghao1977 于 2006-09-06 09:42:08发表:

    thanks. i think it is helpful for me!

  32. sxwailyc 于 2006-09-05 08:23:16发表:

    不错

  33. kuanghao1977 于 2006-09-04 23:57:45发表:

    好文章啊

  34. quming 于 2006-09-04 19:51:38发表:

  35. seamanchen126 于 2006-08-31 14:06:14发表:

    很??,??!

  36. nathan_nju 于 2006-08-31 08:22:13发表:

    支持呀

  37. 连露 于 2006-08-30 22:23:48发表:

    看看,很适合新手

  38. frandos 于 2006-08-30 17:33:57发表:

    学习~~呵呵

  39. xidianyang 于 2006-08-29 10:40:25发表:

    hao

  40. 侯学安 于 2006-08-29 00:26:48发表:

    too little coulde u gie out more ?
    that is so good of u