linux下的shell是什么? Linux shell 脚本中, $@ 和$# 分别是什么意...

\u671b\u83b7\u5b9e\u65f6Linux-\u4e13\u4e3a\u786c\u5b9e\u65f6\u800c\u751f-\u514d\u8d39\u8bd5\u7528~ shell是一种接口,它连接了用户和内核,使用户能够与系统进行交互操作。它接收用户输入的命令并把它送入内核去执行。是在Linux内核与用户之间的解释器程序,现在Linux通常指/bin/bash解释器来负责向内核翻译以及传达用户/程序指令,shell相当于操作系统的“外壳”
Linux系统提供多种不同的Shell以供选择。在Linux系统中,默认的Shell是Bourne Again Shell(bash)。
linux常用的三种shell:
Linux中的shell有多种类型,其中最常用的三种是bourne shell(sh)、c shell(csh)、korn shell(ksh)。
1、Bourne shell
Bourne shell 是一个交换式的命令解释器和命令编程语言。
Bourne shell曾作为管理系统的常用工具,是UNIX操作系统的标准shell。大部份的系统管理命令文件,例如 rc start、stop
与shutdown 都是Bourne shell 的命令档,且在单一使用者模式(single user mode)下以 root
签入时它常被系统管理者使用。Bourne shell因其简洁高效而闻名,它是由AT&T开发的。 Bourne shell 提示符号的默认值是
$。
2、c shell
c shell是一种比 Bourne Shell更适合的变种
Shell,使用的是“类C”语法,csh是具有C语言风格的一种shell,其内部命令有52个,较为庞大。
C shell 是柏克莱大学所开发的,且加入了一些新特性,如命令列历程、别名、内建算术、档名完成、和工作控制。对于常在交谈模式下执行 shell
的使用者而言,他们较喜爱使用 C shell;但对于系统管理者而言,则较偏好以 Bourne shell 来做命令档,因为 Bourne shell 命令档比
C shell 命令档来的简单及快速。C shell 提示符号的默认值是 %。
3、korn shell
korn shell是一个 Unix shell 。在20世纪80年代早期,David Korn在贝尔实验室编写了它。它完全向上兼容 Bourne
shell 并包含了 C shell 的很多特性,例如贝尔实验室用户需要的命令编辑。
Korn shell 是Bourne shell 的超集,由 AT&T 的 David Korn 所开发。它增加了一些特色,比 C shell
更为先进。Korn shell 的特色包括了可编辑的历程、别名、函式、正规表达式万用字符、内建算术、工作控制、共作处理、和特殊的除错功能。Bourne
shell 几乎和 Korn shell 完全向上兼容,所以在 Bourne shell 下开发的程序仍能在 Korn shell 上执行。Korn shell
提示符号的默认值也是 $。在 Linux 系统使用的 Korn shell 叫做 pdksh,它是指 Public Domain Korn Shell。

什么是shell
shell是用户和Linux
操作系统
之间的
接口
。Linux中有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的
特性

什么是shell
Linux系统的shell作为操作系统的
外壳
,为用户提供使用操作系统的接口。它是
命令语言
、命令
解释程序

程序设计语言
的统称。
shell是用户和
Linux内核
之间的接口
程序
,如果把Linux内核想象成一个
球体
的中心,shell就是围绕
内核
的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言
解释器
,它拥有自己内建的shell命令集,shell也能被系统中其他
应用程序
所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
Shell是一种具备
特殊功能
的程序,
它是介于使用者和
UNIX/linux
操作系统之核心
程序(kernel)间的一个接口。为什么我们说
shell
是一种介于系统核心程序与使用者
间的中介者呢?读过操作系统概论的读者们都知道操作系统是一个
系统资源
的管理者与分
配者,当您有需求时,您得向系统提出;从操作系统的角度来看,它也必须防止使用者因
为错误的操作而造成系统的伤害?众所周知,对
计算机
下命令得透过命令(command)

是程序(program);程序有编译器(compiler)将程序转为
二进制代码
,可是命令呢?
其实shell
也是一支程序,它由
输入设备
读取命令,再将其转为计算机可以了解的机械码,
然后执行它。
各种操作系统都有它自己的
shell,以
DOS
为例,它的
shell
就是
command.com文
件。如同
DOS
下有
NDOS,4DOS,DRDOS
等不同的命令解译程序可以取代标准的
command.com
,UNIX
下除了
Bourne
shell(/bin/sh)
外还有
C
shell(/bin/csh)、
Korn
shell(/bin/ksh)、Bourne
again
shell(/bin/bash)、Tenex
C
shell(tcsh)
等其它的
shell。UNIX/linux将
shell
独立于核心程序之外,
使得它就如同一般的应用
程序,
可以在不影响操作系统本身的情况下进行修改、更新版本或是添加新的功能。
有一些命令,比如改变工作目录命令cd,是包含在shell
内部
的。还有一些命令,例如
拷贝
命令cp和移动命令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实现),结束登录。

在计算机科学中,是指“提供用户使用界面”的软件,通常指的是命令行界面的解析器。一般来说,shell是指操作系统中,提供访问内核所提供之服务的程序。



  • linux涓鐨剆hell绌剁珶鏄粈涔?
    绛旓細linux涓殑shell绌剁珶鏄紱ll绋嬪簭鍛? 绠鍗曠殑璇磗hell绋嬪簭灏辨槸涓涓寘鍚嫢骞茶 shell鎴栬卨inux鍛戒护鐨勬枃浠.璞$紪鍐欓珮绾ц瑷鐨勭▼搴忎竴鏍,缂栧啓涓涓猻hell绋嬪簭闇瑕佷竴涓枃鏈紪杈戝櫒.濡俈I绛.鍦ㄦ枃鏈紪杈戠幆澧冧笅,渚濇嵁shell鐨勮娉曡鍒,杈撳叆涓浜泂hell/linux鍛戒护琛,褰㈡垚涓涓畬鏁 鐨勭▼搴忔枃浠.tcsh shell 涓嶄娇鐢╰est鍛戒护,浣嗘槸tcsh...
  • linux涓嬬殑 shell鍒板簳鏄粈涔鍟
    绛旓細鍦ㄨ绠楁満绉戝涓紝鏄寚鈥滄彁渚涚敤鎴蜂娇鐢ㄧ晫闈⑩濈殑杞欢锛岄氬父鎸囩殑鏄懡浠よ鐣岄潰鐨勮В鏋愬櫒銆備竴鑸潵璇达紝shell鏄寚鎿嶄綔绯荤粺涓紝鎻愪緵璁块棶鍐呮牳鎵鎻愪緵涔嬫湇鍔$殑绋嬪簭銆備竴銆乻hell鐨勫垎绫伙細1銆佸浘褰㈢晫闈hell锛圙raphical User Interface shell 鍗 GUI shell锛変緥濡傦細搴旂敤鏈涓哄箍娉涚殑 Windows Explorer 锛堝井杞殑windows绯诲垪鍒朵綔绯荤粺...
  • 鍦Linux涓,shell鏄粈涔??
    绛旓細琛ュ厖涓嬶細Shell鏄竴绉嶅叿澶囩壒娈婂姛鑳界殑绋嬪簭锛屽畠鏄粙浜庝娇鐢ㄨ呭拰 UNIX/Linux 鎿嶄綔绯荤粺涔嬫牳蹇冪▼搴忥紙kernel锛夐棿鐨勪竴涓帴鍙銆備负浠涔堟垜浠 shell 鏄竴绉嶄粙浜庣郴缁熸牳蹇冪▼搴忎笌浣跨敤鑰呴棿鐨勪腑浠嬭呭憿锛熻杩囨搷浣滅郴缁熸璁虹殑璇昏呬滑閮界煡閬撴搷浣滅郴缁熸槸涓涓郴缁熻祫婧愮殑绠$悊鑰呬笌鍒嗛厤鑰咃紝褰撴偍鏈夐渶姹傛椂锛屾偍寰楀悜绯荤粺鎻愬嚭锛涗粠鎿嶄綔绯荤粺...
  • linux shell鏄粈涔
    绛旓細Shell鏄郴缁熺殑鐢ㄦ埛鐣岄潰锛屾彁渚涗簡鐢ㄦ埛涓庡唴鏍歌繘琛屼氦浜掓搷浣滅殑涓绉嶆帴鍙銆傚畠鎺ユ敹鐢ㄦ埛杈撳叆鐨勫懡浠ゅ苟鎶婂畠閫佸叆鍐呮牳鍘绘墽琛屻傛槸鍦↙inux鍐呮牳涓庣敤鎴蜂箣闂寸殑瑙i噴鍣ㄧ▼搴忥紝鐜板湪Linux閫氬父鎸/bin/bash瑙i噴鍣ㄦ潵璐熻矗鍚戝唴鏍哥炕璇戜互鍙婁紶杈剧敤鎴/绋嬪簭鎸囦护锛宻hell鐩稿綋浜庢搷浣滅郴缁熺殑鈥澶栧3鈥
  • Linux Shell鏄粈涔?
    绛旓細Shell锛岃嫳鏂囨湰鎰忔槸澶栧3锛孡inux Shell 灏辨槸 Linux 鎿嶄綔绯荤粺鐨勫澹筹紝涓虹敤鎴锋彁渚涗娇鐢ㄦ搷浣滅郴缁熺殑鎺ュ彛锛屾槸 Linux 绯荤粺鐢ㄦ埛浜や簰鐨勯噸瑕佹帴鍙銆傜櫥褰 Linux 绯荤粺鎴栬呮墦寮 Linux 鐨勭粓绔紝閮藉皢浼氬惎鍔 Linux 鎵浣跨敤鐨 Shell銆侺inux Shell 涓涓懡浠よВ閲婂櫒锛屾槸 Linux 涓嬫渶閲嶈鐨勪氦浜掔晫闈紝浠庢爣鍑嗚緭鍏ユ帴鏀剁敤鎴峰懡浠わ紝灏嗗懡浠...
  • linux涓嬬殑shell鏄粈涔
    绛旓細Linux绯荤粺鐨剆hell浣滀负鎿嶄綔绯荤粺鐨澶栧3锛屼负鐢ㄦ埛鎻愪緵浣跨敤鎿嶄綔绯荤粺鐨勬帴鍙c傚畠鏄懡浠よ瑷銆佸懡浠よВ閲婄▼搴忓強绋嬪簭璁捐璇█鐨勭粺绉般俿hell鏄竴涓懡浠よ瑷瑙i噴鍣紝瀹冩嫢鏈夎嚜宸卞唴寤虹殑shell鍛戒护闆嗭紝shell涔熻兘琚郴缁熶腑鍏朵粬搴旂敤绋嬪簭鎵璋冪敤銆傜敤鎴峰湪鎻愮ず绗︿笅杈撳叆鐨勫懡浠ら兘鐢眘hell鍏堣В閲婄劧鍚庝紶缁橪inux鏍稿績銆
  • linux涓浠涔堟槸shell?
    绛旓細鍦ㄨ绠楁満绉戝涓紝Shell淇楃О澹筹紙鐢ㄦ潵鍖哄埆浜庢牳锛夛紝鏄寚鈥滀负浣跨敤鑰呮彁渚涙搷浣滅晫闈⑩濈殑杞欢锛坈ommand interpreter锛屽懡浠よВ鏋愬櫒锛夈傚畠绫讳技浜嶥OS涓嬬殑COMMAND.COM鍜屽悗鏉ョ殑cmd.exe銆傚畠鎺ユ敹鐢ㄦ埛鍛戒护锛岀劧鍚庤皟鐢ㄧ浉搴旂殑搴旂敤绋嬪簭銆傚悓鏃跺畠鍙堟槸涓绉嶇▼搴忚璁¤瑷銆備綔涓哄懡浠よ瑷锛屽畠浜や簰寮忚В閲婂拰鎵ц鐢ㄦ埛杈撳叆鐨勫懡浠ゆ垨鑰呰嚜鍔ㄥ湴瑙i噴...
  • linux shell 鏄粈涔鎰忔?
    绛旓細Linux shell鎸囩殑鏄疞inux鎿嶄綔绯荤粺涓殑鍛戒护琛岀晫闈紝鏄敤鎴蜂笌鎿嶄綔绯荤粺浜ゆ崲淇℃伅鐨勪富瑕佹柟寮忎箣涓銆傚畠鍙互璁╃敤鎴烽氳繃閿叆鍛戒护鏉ュ畬鎴愮郴缁熸搷浣滆屼笉蹇呬緷璧栦簬鍥惧舰鐢ㄦ埛鐣岄潰(GUI)銆傚湪Linux绯荤粺涓紝璁剧疆鍚堢悊鐨剆hell鐜鍙互鏋佸ぇ鍦版彁楂樼敤鎴风殑宸ヤ綔鏁堢巼鍜屾搷浣滀綋楠屻傚洜姝わ紝shell鏄疞inux绯荤粺涓瀬涓洪噸瑕佺殑閮ㄥ垎涔嬩竴銆侺inux shell鐨...
  • 浠嬬粛浣犳墍浣跨敤鐨linuxlinux涓嬬殑shell
    绛旓細linux涓嬬殑shell鍛戒护锛屽懡浠よ锛岀粓绔繍琛屾蹇电殑瑙i噴锛烻hell锛Shell鏄郴缁熺殑鐢ㄦ埛鐣岄潰锛屾彁渚涗簡鐢ㄦ埛涓庡唴鏍歌繘琛屼氦浜掓搷浣滅殑涓绉嶆帴鍙c傚畠鎺ユ敹鐢ㄦ埛杈撳叆鐨勫懡浠ゅ苟鎶婂畠閫佸叆鍐呮牳鍘绘墽琛屻傚疄闄呬笂Shell鏄竴涓懡浠よВ閲婂櫒锛屽畠瑙i噴鐢辩敤鎴疯緭鍏ョ殑鍛戒护骞朵笖鎶婂畠浠佸埌鍐呮牳銆備笉浠呭姝わ紝Shell鏈夎嚜宸辩殑缂栫▼璇█鐢ㄤ簬瀵瑰懡浠ょ殑缂栬緫锛屽畠鍏佽...
  • linux涓鐨剆hell绌剁珶鏄粈涔??
    绛旓細linux鏄棭鏈熸槸涓唴鏍革紝鍚庢潵娣诲姞浜嗗叾浠栧姛鑳芥垚浜嗘搷浣滅郴缁熴傚唴鏍稿氨鏄搷浣滅郴缁熺殑鏍稿績锛岀鐞嗚澶囷紝cpu璋冨害锛屽唴瀛樼鐞嗙瓑銆傚唴鏍告湁浜沘pi鍙互琚闈㈢▼搴忓憳璋冪敤銆傝繖浜沘pi鍙仛鈥滅郴缁熻皟鐢ㄢ濄傚父鐢ㄧ殑绯荤粺璋冪敤琚泦鍚堟垚涓涓釜鍛戒护绋嬪簭銆傚ls锛宑d锛宺m绛夈傘shell鏄痩inux绯荤粺鐨勪竴涓В閲婄▼搴忋傜敤浜庢柟渚挎墽琛屼竴浜涘懡浠ょ▼搴忋傚氨鏄...
  • 扩展阅读:linux进入shell界面 ... linux shell命令 ... linux下qprocess调用shell ... linux查看执行的shell ... linux编写一个简单的shell ... linux简单的shell编程 ... linux中shell脚本 ... linux中如何进入shell ... linux查看当前使用的shell ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网