admin 管理员组

文章数量: 1086019


2024年12月25日发(作者:文本框和文本域)

LINUX SHELL

linuxshell

Linux shell主要命令的详细说明

shell是用户和linux操作系统之间的接口。linux中有多种shell,其中缺省使用的

是bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及bash的特性。

什么是贝壳

linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命

令语言、命令解释程序及程序设计语言的统称。

Shell是用户和Linux内核之间的接口程序。如果你认为Linux内核是一个球体的中

心,那么外壳就是内核的外层。当命令从shell或其他程序传递到Linux时,内核将做出

相应的响应。

shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统

中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给linux核

心。

shell中包含了一些命令,例如更改工作目录命令CD。其他命令,如copy命令CP和

move命令RM,是存在于文件系统目录中的独立程序。对于用户来说,命令是构建在shell

中还是构建在单独的程序中并不重要。

shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应

用程序可以是linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或

者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是

一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没

有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或

应用程序将被分解为系统调用并传给linux内核。

shell的另一个重要特性是它是一种解释性编程语言。Shell编程语言支持高级语言

中可以看到的大多数程序元素,例如函数、变量、数组和程序控制结构。Shell编程语言

简单易学。可以在提示符下键入的任何命令都可以放入可执行的shell程序中。

当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命

令行提示符。作为默认值(turbolinux系统默认的shell是bash),对普通用户用“$”

作提示符,对超级用户(root)用“#”作提示符。

出现shell提示后,可以键入命令名和命令所需的参数。shell将执行这些命令。如

果一个命令需要很长时间才能运行或在屏幕上产生大量输出,您可以通过按键盘上的

Ctrl+C来中断它(在正常结束之前中止执行)。

当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符

(eof)(按ctrl+d实现),结束登录。

让我们练习一下外壳的工作原理。

$makework

制作:**noruletomaketarget“工作”。住手$

注释:make是系统中一个命令的名字,后面跟着命令参数。在接收到这个命令后,

shell便执行它。本例中,由于输入的命令参数不正确,系统返回信息后停止该命令的执

行。

在本例中,shell查找名为make的程序,并以work作为参数执行它。Make是一个经

常用来编译大型程序的程序。它以参数为目标进行编译。在“makework”中,make编译的

目标是工作。由于make找不到名为work的目标,它会给出一条错误消息,指示操作失败,

用户再次返回系统提示。

另外,用户键入有关命令行后,如果shell找不到以其中的命令名为名字的程序,就

会给出错误信息。例如,如果用户键入:$myprog

$

可以看到,用户得到了一个没有找到该命令的错误信息。用户敲错命令后,系统一般

会给出这样的错误信息。

外壳类型

linux中的shell有多种类型,其中最常用的几种是bourneshell(sh)、cshell

(csh)和kornshell(ksh)。三种shell各有优缺点。bourneshell是unix最初使用的

shell,并且在每种unix上都可以使用。bourneshell在shell编程方面相当优秀,但在

处理与用户的交互方面做得不如其他几种shell。linux操作系统缺省的shell是

bourneagainshell,它是bourneshell的扩展,简称bash,与bourneshell完全向后兼容,

并且在bourneshell的基础上增加、增强了很多特性。bash放在/bin/bash中,它有许多

特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多cshell和

kornshell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。

Cshell比Bourne shell更适合编程。它的语法与C语言非常相似。Linux为喜欢使

用cshell的人提供了tcsh。Tcsh是cshell的扩展版本。Tcsh包括命令行编辑、可编程

单词补全、拼写更正、历史命令替换、作业控制和类似于C语言的语法。它不仅与bash

shell提示符兼容,而且提供了比bash shell更多的提示符参数。

kornshell集合了cshell和bourneshell的优点并且和bourneshell完全兼容。

linux系统提供了pdksh(ksh的扩展),它支持任务控制,可以在命令行上挂起、后台执

行、唤醒或终止程序。

Linux并没有忽略其他shell用户,但也包括一些流行的shell,如ash、Zsh等。每

个贝壳都有它的用途。有些外壳拥有专利,有些可以从互联网或其他来源获得。要决定使

用哪个shell,只需阅读每个shell的联机帮助并进行尝试。

用户在登录到linux时由/etc/passwd文件来决定要使用哪个shell。例如:

#fgreplisa/etc/passwd

lisa:x:500:500:turbolinuxuser:/home/lisa:/bin/bash

shell列在每行(/bin/bash)的末尾。

由于bash是linux上缺省的shell,本章主要介绍bash及其相关知识。

Shell命令行C

用户登录到linux系统时,可以看到一个shell提示符,标识了命令行的开始。用户

可以在提示符后面输入任何命令及参数。例如:$date

II 112301:34:58cst1999$

用户登录时,实际进入了shell,它遵循一定的语法将输入的命令加以解释并传给系

统。命令行中输入的第一个字必须是一个命令的名字,第二个字是命令的选项或参数,命

令行中的每个字必须由空格或tab隔开,格式如下:

1.选项和参数

选项是包括一个或多个字母的代码,它前面有一个减号(减号是必要的,linux用它

来区别选项和参数),选项可用于改变命令执行的动作的类型。例如:$ls

莫特帕斯德$

这是没有选项的ls命令,可列出当前目录中所有文件,只列出各个文件的名字,而

不显示其他更多的信息。$ls-ltotal2

-rw-r--r--2wzhbook22apr2022:37motd

-rw-r--r--2wzhbook796apr2020:37passwd$

添加-L选项将列出每个文件的一行信息,例如数据大小和上次修改数据的时间。

大多数命令都被设计为可以接纳参数。参数是在命令行中的选项之后键入的一个或多

个单词,例如:

$ls ltext

-rw-r--r--2wzhbook22apr2020:37motd

-rw-r--r--2wzhbook796apr2022:37passwd$

将显示text目录下的所有文件及其信息。

有些命令(如LS)可以获取参数,而有些命令可能需要最少数量的参数。例如,CP

命令至少需要两个参数。如果参数的数量不符合命令的要求,shell将给出错误消息。例

如:

$cp-imydatanewdata


本文标签: 命令 用户 参数 程序 系统