久久首页
免费软件
网络时尚
网络学堂
专题讨论
网络资源
网络游戏
网络文档
网络产品
网站导航: 首页 > 网络编程 > 脚本语言 学堂讨论 | 推荐文章

Linux介绍-bash (6)


2004-05-25  
 
管道

管道可以把一系列命令连接起来。这意味着第一个命令的输出会通过管道传给第二个命令而作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,以此类推。而管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使用了输出重定向的话,将会放进一个文件里)。
你能通过使用管道符 | 来建立一个管道行,下面的示例就是一个管道行:

cat sample.text | grep "High" | wc -l

这个管道将把 cat 命令(列出一个文件的内容)的输出送给grep命令。grep 命令在输入里查找单词 High,grep命令的输出则是所有包含单词 High的行,这个输出又被送给 wc命令。带 -l选项的 wc命令将统计输入里的行数。假设 sample.txt的内容如下:

Things to do today:

Low: Go grocery shopping

High: Return movie

High: Clear level 3 in Alien vs. Predator

Medium: Pick up clothes from dry cleaner


管道行将返回结果 2,指出你今天有两件很重要的事要做:

cat sample.text | grep "High" | wc -l

2


提示符

bash 有两级用户提示符。第一级是你经常看到的 bash 在等待命令输入时的提示符。缺省的一级提示符是字符$(如果是超级用户,则是#号)。你可以通过改变bash 的PS1变量的值来改变你的缺省提示符,例如:

PS1="Please enter a command"

把bash shell 的提示符该为指定的字符串。

当bash 期待输入更多的信息以完成命令时显示第二级提示符。缺省的第二级提示符是 >。 果你要改变第二级提示符,可以通过设置PS2变量的值来实现:

PS2="I need more information"

另外你还可以用特殊的字符来定义你的提示符,下面的列表列出了最常用的特殊字符。

提示符特殊字符代码
字符 含义
! 显示该命令的历史记录编号。
# 显示当前命令的命令编号。

$ 显示$符作为提示符,如果用户是root的话,则显示#号。

\ 显示反斜杠。

d 显示当前日期。

h 显示主机名。

打印新行。

nn 显示nnn的八进制值。

s 显示当前运行的shell的名字。

显示当前时间。

u 显示当前用户的用户名。

W 显示当前工作目录的名字。

w 显示当前工作目录的路径。


这些特殊字符能组合成很多种有用的提示符方案(也可以组合为很奇异的方案),例如把 PS1 设为:

PS1=" "

这导致提示符显示当前的时间,就象下面的显示一样(提示符后面将不会有空格):

02:16:15


而下面的设置:

PS1=

将导致提示符变成下面的样子:

t

这显示了设置中引号的重要性,下面的提示符串:

PS1=" \ "

会使提示符看起来象这个样子:

02:16:30

这种情况下,提示符后面会有一个空格,因为引号里有一个空格。


作业控制(Job Control)

作业控制能够控制当前正在运行的进程的行为。特别地,你能把一个正在运行的进程挂起,稍后再恢复它的运行。bash 保持对所有已启动的进程的跟踪,你能在一个正在运行的进程的生命期内的任何时候把它挂起或是使它恢复运行。

按下 Ctrl-Z 使一个运行的进程挂起。bg 命令使一个被挂起的进程在后台恢复运行,反之 fg 命令使进程在前台恢复运行。这几个命令在当用户想在后台运行而意外的把它放到了前台时,经常被用到。当一个命令在前台被运行时,它会禁止用户与 shell 的交互,直到该命令结束。这通常不会造成麻烦,因为大多数命令很快就执行完了。如果你要运行的命令要花费很长的时间的话,我们通常会把它放到后台,以使我们能在前台继续输入其他命令。例如,你输入这个命令:

command find / -name "test" > find.out

它将寻找整个文件系统中的名为test 的文件并把结果保存在一个叫fing.out的文件里。如果在前台运行的话,根据文件系统的大小,你的shell将有数秒甚至数分钟不能使用,你不想这样的话可以再输入以下面的内容:

control-z

bg

find 命令首先被挂起,再在后台继续被执行,并且你能马上回到bash下。
 
发表评论 推荐文章 关闭窗口
 相关内容
- Linux介绍-bash (7) 2004-05-25
- Linux介绍-bash (5) 2004-05-25
- Linux介绍-bash (1) 2004-05-25
- bash 编程指南 2004-05-25
- Linux介绍-bash (4) 2004-05-25
- Linux介绍-bash (3) 2004-05-25
- Linux介绍-bash (2) 2004-05-25
 
 学堂分类
网络知识操作系统
网络应用网络服务
网页开发网络编程
数据存储网络设备
 文章搜索
 
网站简介 | 广告服务 | 编程支持 | 设计服务 | 诚邀合作 | 访客留言
Copyright © 1999-2004 99NET. All Rights Reserved
版权所有 久久网络工作室
Email:webmaster@99net.net