微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Linux Shell简介

Linux Shell简介

时间:04-27 来源: 点击:

X Window 中一个很大的好处是可以运行多个虚拟(virtual)终端。甚至在 X Window 下就有这么个应用程序--'xterm'。您将发现'xterm'和'virtual terminal'在很多情况下都是一样的。有的地方说'打开一个 xterm',其实您不是非要用'xterm'程序,其他的终端模拟器(terminal emulator),如 rxvt、konsole、aterm、eterm、wterm 等等,一样有效。

终端模拟器(又称为虚拟终端)通过伪(pseudo) tty 设备-- pty 与系统相连,并且使用自己的显示标准-- xterm 。这导致不同的终端模拟器可能在一些按键或程序上存在细小的差别,这取决于模拟器多大程度上遵守了'xterm'的显示标准。

4、Shells

为了在终端中运行程序,需要 shell 。shell 是操作系统的一部分,用来与用户打交道,并且可以用来协调各个命令。

第一个真正的 Unix shell -- 'sh',亦称为'Bourne shell',诞生于 1975 年,作者是 Steve Bourne 。很快,出现了其他 shell ,如基于原始'Bourne shell'的'ksh'、'zsh',后者常用作专属 Unixes 系统中的标准 shell ;也有一些从 C 语言中衍生出来的 shell ,如'csh'或'tcsh'。

在 Linux 中,标注的 shell 是'bash',即 the GNU Bourne-Again Shell (有点玩笑的味道……)。这个 shell 功能非常强大(甚至有人觉得太庞大了),压缩的 man page 就有 50 KB 。

三、Shell 起步

首先,有一点小说明:在平常应用中,建议您不要用'root'帐号运行 shell ,如果您还是新手,这一点尤其要注意。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是'root',那就不同了,只要敲几个字母,就可能导致灾难性后果。

当您登入系统或打开一个 xterm 窗口,首先看到的是提示符(prompt)。Red Hat Linux 的标准提示符包括了您的用户名、登入的主机名(没有设置的话,是'localhost')、当前所在的目录(working directory)、提示符号:

[tom@belbo tom]$

我以用户名'tom'登入名为'belbo'的主机,当前在我的 home 目录--'/home/tom'中。'root'的提示符:

[root@belbo root]#

除了不同的用户名外,提示符号由'$'变成了'#'。根据 Bourne shell 的传统,普通用户的提示符以'$'结尾,而超级用户用'#'。

提示符的每个部分都可以定制,您在后面将有更深的了解。

要运行命令的话,您只要在提示符后敲进命令,然后在按 键。shell 将在其路径中(详情见后)搜索这个命令,找到以后就运行,并在终端里输出相应的结果(如果有的话),命令结束后,再给出新的提示符:

[tom@belbo tom]$ whoami
tom
[tom@belbo tom]$

顺带指出,当您敲 ENTER 时,光标(cursor)在哪里并不要紧,因为 shell 总是会整行地读取。

基本的命令有:'ls'(list directory ,列出目录内容)、'cp'(copy ,复制)、'mv'(move / rename ,移动/重命名),'cd '(change directory ,改变目录),这些命令后面都可以跟上一帮可选项,这方面 man page 有详细的介绍(man ls, man mv 等等)。
在您动身前往 shell 领地前,这里有几个术语(terminology)的简短说明。命令可能带一些可选项(options)、参数(arguments):

mv -i file dir

其中'-i'是命令'mv'的一个可选项,而'file'和'dir'则是参数。所有可选项在该命令的 man page 都中有详细的介绍(此例中用 man mv),而参数则由您提供。可选项决定命令如何工作,而参数则用于确定命令作用的目标。

到目前为止,介绍得有点象许多人厌恶轻视的 DOS shell ,但伴随着下面的介绍,您将会有新的体验。

第二篇:自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式

Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能。在本篇中,我们将来作一些了解。

一、自动补齐;

如何用'cd'(改变目录,change directory)最快地从您当前所在的 home 目录跳到'/usr/src/redhat/'呢?

cd /u<TAB>sr<TAB>r<TAB>

这称为'命令行自动补齐'(automatic command line completion),这在平常应用中是不可缺少的。让我们仔细看看这个例子:

cd /u<TAB>

扩展成了 cd /usr/ ,很简单吧。下面的

cd /u<TAB>sr<TAB>

扩展为 cd /usr/src/ 。如果您只敲了cd /us,'/usr'下匹配的('cd /u*/s*')三个子目录将列出供您选择:'/usr/sbin'、'/usr/share'和'/usr/src'。

因此, 键可以很方便地用于根据前几个字母,来查找匹配的文件或子目录。比如,ls /usr/bin/zip 将列出所有'/usr/bin'下面,以字符串'zip'开头的文件或子目录。当然,完成这类任务还有更厉害的命令,但这个

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top