Linux Shell简介
程序的输出送到'more'或'less'来阅读。
ls -l | less
其中,第一个命令提供目录内容,第二个则将其以翻页的方式显示。更复杂的例子如:
rpm -qa | grep ^x | less
第一个命令给出所有已安装的 RPM 包,第二个则将其过滤(filter:'grep'),只剩下以'^x'开头的包,第三个命令则将结果以翻页的方式显示。
2、重定向至文件
有时,您希望将命令的输出结果保存到文件中,或以文件内容作为命令的参数。这可以通过'>'和'<'来实现。
command > file
将 command 的输出保存到 file 中,这将覆盖 file 中的内容:
ls > dirlist
将当前目录的内容保存到'dirlist'文件。
command < file
将 file 内容作为 command 的输入:
sort < dirlist > sdirlist
将文件'dirlist'的内容送到命令'sort',然后再将排序后的结果送到文件'sdirlist'。当然,您也可以一步到位:
ls | sort > sdirlist
一种特殊的方式是'command 2> file'。这将 command 执行的出错信息送到 file 中。这个您到时候会需要……
另一种操作符是'>>',这将输出添加到已存在的文件中:
echo "string" >> file
将 string 加到文件 file 中。这是不打开文件而完成编辑的好办法!
但是,'<'和'>'操作符都有一个重要的限制:
command < file1 > file1
将删除 file1 的内容,而
command < file1 >> file1
却可以很好地工作,将加工过的 file1 内容加回到文件中。
是不是有点多?;-) 不必惊慌,您完全可以按照自己的速度,一步步地来学习。别忘了,实践是最好的学习方法……
熟知了许多 shell 的机制后, 您可能急着想知道如何来定制环境。在后面的两篇中,您将得到这方面的启示。在最后一篇中,还有一段如何处理 shell 出错信息的常见问答(FAQ),及一些配置技巧。
第五篇:bash 配置文件/提示符/改变 $PATH
一、bash 配置文件
在您的 home 目录下,运行
ls .bash*
您将看到这些文件:
l .bash_history :记录了您以前输入的命令,
l .bash_logout :当您退出 shell 时,要执行的命令,
l .bash_profile :当您登入 shell 时,要执行的命令,
l .bashrc :每次打开新的 shell 时,要执行的命令。
请注意后两个的区别:'.bash_profile'只在会话开始时被读取一次,而'.bashrc'则每次打开新的终端(如新的 xterm 窗口)时,都要被读取。按照传统,您得将定义的变量,如 PATH ,放到'.bash_profile'中,而象 aliases(别名)和函数之类,则放在'.bashrc'。但由于'.bash_profile'经常被设置成先读取'.bashrc'的内容,您如果图省事的话,就把所有配置都放进'.bashrc'。
这些文件是每一位用户的设置。系统级的设置存储在'/etc/profile'、'/etc/bashrc'及目录'/etc/profile.d'下的文件中。但您得习惯用各自的配置文件:编辑不需要'root'权限,还可以使您的设置更有个性。当系统级与用户级的设置发生冲突时,将采用用户的设置。
读取'.bashrc'的内容,您如果要省点事的话,就把您所有的配置都放进'.bashrc'。
上面的这些文件是每位用户的设置,系统级的设置存储在'/etc/profile'、'/etc/bashrc'及目录'/etc/profile.d'下的文件中。您最好习惯使用各自的配置文件:编辑不需要'root'权限,还可以使您的设置更具个性。当系统级与用户级的设置发生冲突时,将优先采用用户的设置。
二、提示符
每次当您打开一个控制台(console)或 xterm 时,最先看到的就是提示符(prompt),类似于:
account@hostname ~ $
在默认设置下,提示符将显示您的用户名、主机名(默认是'localhost')、当前所在目录(在 Unix 中,'~'表示您的 home 目录)。
按照传统,最后一个字符可以标识您是普通用户($),还是'root'(#)。
您可以通过 $PS1 变量来设置提示符。命令
echo $PS1
将显示当前的设定。其中可用字符的含义在 man bash 的'PROMPTING'部分有说明。
如何才能完成理想的设置呢?对于健忘的初学者来讲,默认设定有些不友好,因为提示符只显示当前目录的最后一部分。如果您看到象这样的提示符
tom@localhost bin $
您的当前目录可能是'/bin'、'/usr/bin'、'/usr/local/bin'及'/usr/X11R6/bin'。当然,您可以用
pwd (输出当前目录,print working directory)
能不能叫 shell 自动告诉您当前目录呢?
当然可以。这里我将提到的设定,包括提示符,大都包含在文件'/etc/bashrc'中。您可以通过编辑各自 home 目录下的'.bash_profile'和'.bashrc'来改变设置。
在 man bash 中的'PROMPTING'部分,对这些参数(parameter)有详细说明。您可以加入一些小玩意,如不同格式的当前时间
- Linux 文件命令精通指南(04-14)
- Shell程序设计的流程控制(04-16)
- 如何用Shell病毒技术感染Linux脚本程序(04-17)
- Linux系统文件权限隐藏的细节深入分析(04-16)
- halt poweroff reboot问题(04-18)
- busybox 详解(05-08)