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
版权声明:本文标题:LINUX SHELL 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735152963a1639736.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论