Linux下的shell工作原理是什么? linux下的 shell到底是什么啊

Linux\u4e0b\u7684shell\u5de5\u4f5c\u539f\u7406\u662f\u4ec0\u4e48\uff1f

Linux\u7cfb\u7edf\u63d0\u4f9b\u7ed9\u7528\u6237\u7684\u6700\u91cd\u8981\u7684\u7cfb\u7edf\u7a0b\u5e8f\u662fShell\u547d\u4ee4\u8bed\u8a00\u89e3\u91ca\u7a0b\u5e8f\u3002\u5b83\u4e0d\u5c5e\u4e8e\u5185\u6838\u90e8\u5206\uff0c\u800c\u662f\u5728\u6838\u5fc3\u4e4b\u5916\uff0c\u4ee5\u7528\u6237\u6001\u65b9\u5f0f\u8fd0\u884c\u3002\u5176\u57fa\u672c\u529f\u80fd\u662f\u89e3\u91ca\u5e76\u6267\u884c\u7528\u6237\u6253\u5165\u7684\u5404\u79cd\u547d\u4ee4\uff0c\u5b9e\u73b0\u7528\u6237\u4e0eLinux\u6838\u5fc3\u7684\u63a5\u53e3
\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\uff1a
http://blog.csdn.net/yeyuangen/article/details/6858062

\u5728\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\uff0c\u662f\u6307\u201c\u63d0\u4f9b\u7528\u6237\u4f7f\u7528\u754c\u9762\u201d\u7684\u8f6f\u4ef6\uff0c\u901a\u5e38\u6307\u7684\u662f\u547d\u4ee4\u884c\u754c\u9762\u7684\u89e3\u6790\u5668\u3002\u4e00\u822c\u6765\u8bf4\uff0cshell\u662f\u6307\u64cd\u4f5c\u7cfb\u7edf\u4e2d\uff0c\u63d0\u4f9b\u8bbf\u95ee\u5185\u6838\u6240\u63d0\u4f9b\u4e4b\u670d\u52a1\u7684\u7a0b\u5e8f\u3002
\u4e00\u3001shell\u7684\u5206\u7c7b\uff1a
1\u3001\u56fe\u5f62\u754c\u9762shell\uff08Graphical User Interface shell \u5373 GUI shell\uff09
\u4f8b\u5982\uff1a\u5e94\u7528\u6700\u4e3a\u5e7f\u6cdb\u7684 Windows Explorer \uff08\u5fae\u8f6f\u7684windows\u7cfb\u5217\u5236\u4f5c\u7cfb\u7edf\uff09\uff0c\u8fd8\u6709\u4e5f\u5305\u62ec\u5e7f\u4e3a\u4eba\u77e5\u7684 Linux shell\uff0c\u5176\u4e2dlinux shell \u5305\u62ec X window manger (BlackBox\u548cFluxBox\uff09\uff0c\u4ee5\u53ca\u529f\u80fd\u66f4\u5f3a\u5927\u7684CDE\u3001GNOME\u3001KDE\u3001 XFCE\u3002
2\u3001\u547d\u4ee4\u884c\u5f0fshell\uff08Command Line Interface shell \uff0c\u5373CLI shell\uff09
\u4f8b\u5982\uff1abash / sh / ksh / csh\uff08Unix/linux \u7cfb\u7edf\uff09\uff08MS-DOS\u7cfb\u7edf\uff09\uff1b
cmd.exe/ \u547d\u4ee4\u63d0\u793a\u5b57\u7b26\uff08Windows NT \u7cfb\u7edf\uff09\uff1b
Windows PowerShell\uff08\u652f\u63f4 .NET Framework \u6280\u672f\u7684 Windows NT \u7cfb\u7edf\uff09\u3002
\u4e8c\u3001shell\u7684\u547d\u4ee4\u63cf\u8ff0\uff1a
1\u3001\u4f7f\u7528\u7528\u6237\u7684\u7f3a\u7701\u51ed\u8bc1\u548c\u73af\u5883\u6267\u884c shell\u3002
2\u3001\u5728UEFI\u73af\u5883\u4e0b\uff0cEFI\u7684shell\u73af\u5883\u63d0\u4f9b\u4e86\u4e00\u7ec4\u4e30\u5bcc\u7684\u6269\u5c55\u548c\u589e\u5f3a\u7684\u547d\u4ee4\uff0c\u5728\u4ee5\u540e\u7684\u8ba1\u7b97\u673a\u4e2d\uff0c\u4f20\u7edf\u7684DOS\u754c\u9762\u5c06\u4f1a\u88abshell\u73af\u5883\u6240\u53d6\u4ee3\uff0c\u6240\u6709\u7684.exe\u6587\u4ef6\u5c06\u4e0d\u4f1a\u5728\u4ee5\u540e\u652f\u6301shell\u7684\u73af\u5883\u4e2d\u51fa\u73b0\uff0c\u53d6\u800c\u4ee3\u4e4b\u7684\u6587\u4ef6\u540e\u7f00\u662f.efi\u3002

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

shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。

shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

有一些命令,比如改变工作目录命令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实现),结束登录。

  • Linux Shell 鏁欑▼鈥斺旀兂鐜╄浆linux灏辫涓鐩寸湅涓嬪幓
    绛旓細鐢变簬涔犳儻鐨勫師鍥狅紝绠娲佽捣瑙侊紝鏈枃鍑虹幇鐨 "shell缂栫▼" 閮芥槸鎸 shell 鑴氭湰缂栫▼锛屼笉鏄寚寮鍙 shell 鑷韩銆係hell 缂栫▼璺 JavaScript銆乸hp 缂栫▼涓鏍凤紝鍙鏈変竴涓兘缂栧啓浠g爜鐨勬枃鏈紪杈戝櫒鍜屼竴涓兘瑙i噴鎵ц鐨勮剼鏈В閲婂櫒灏卞彲浠ヤ簡銆Linux 鐨 Shell 绉嶇被浼楀锛屽父瑙佺殑鏈夛細鍦ㄤ竴鑸儏鍐典笅锛屼汉浠苟涓嶅尯鍒 Bourne Shell 鍜...
  • Linux涓,xterm, virtual terminal,shell杩欎笁鑰呬箣闂存槸浠涔堝叧绯?鏈変汉鑳借В...
    绛旓細,閫氳繃agetty绛夋湰鍦拌櫄鎷熸帶鍒跺彴鍙互鎻愪緵澶氫釜缁堢, 浣犱篃鍙互閫氳繃杩滅▼鐨勭綉缁滆繛鎺,鎷ㄥ彿杩炴帴,鐢氳嚦涓插彛杩炴帴 閫氳繃涓浜涙湇鍔¤繛鎺ュ埌涓涓繙绋嬫湇鍔″櫒鐨剆hell ,鐒跺悗杩欎釜shell鍦ㄦ湰鍦扮殑琛ㄧ幇鏂瑰紡灏卞彨鍋氳櫄鎷熸帶鍒跺彴, xterm鏄痻绐楀彛鐜涓鏈湴铏氭嫙鎺у埗鍙扮殑涓涓疄鐜 鎴戞弿杩扮殑涓嶆槸寰堢簿瀵, 鏈濂芥壘鐩稿叧鐨剅fc鏂囨。鏉ュ弬鑰冧笅 ...
  • shell鍛戒护鍜linux鍛戒护涓鏍蜂箞
    绛旓細shell涓linux鍛戒护鐨勫尯鍒細1銆佺洿鎺ュ湪鍛戒护琛屾墽琛岋紝灏辨槸鍦ㄥ綋鍓鐨剆hell鐜涓嬫墽琛岋紝姣斿娑夊強鍒颁竴浜涚幆澧冨彉閲忕殑鏃跺欙紝蹇呴』鍦ㄥ綋鍓峴hell鐜閲屾墽琛屻2銆佸湪鑴氭湰鎵ц鐨勮瘽锛屼細fork涓涓瓙杩涚▼锛屾墍鏈夋搷浣滈兘鍦ㄥ瓙杩涚▼涓繘琛屻傚鏋滄秹鍙婂埌涓浜涘湪鑴氭湰閲岃缃幆澧冨彉閲忕殑涓滆タ锛岃剼鏈粨鏉熶簡锛岀幆澧冨彉閲忓氨娑堝け浜嗭紝濡傛灉鏄慨鏀圭幆澧冨彉閲忕殑...
  • 鍦linux涓 浠涔堟槸bash.浠涔堝張鏄shell
    绛旓細bash 鏄竴涓负GNU椤圭洰缂栧啓鐨刄nix shell锛屼篃灏辨槸linux鐢鐨剆hell銆係hell淇楃О澹筹紙鐢ㄦ潵鍖哄埆浜庡唴鏍革級锛屾槸鎸団滄彁渚涗娇鐢ㄨ呬娇鐢ㄧ晫闈⑩濈殑杞欢锛屽氨鏄竴涓懡浠よ瑙i噴鍣ㄣ侭ASH鏄疭HELL鐨勪竴绉嶏紝鏄ぇ澶氭暟LINUX鍙戣鐗堥粯璁鐨凷HELL锛岄櫎BASH SHELL澶栬繕鏈塁 SHELL绛夊叾瀹冪被鍨嬬殑SHELL銆
  • 甯哥敤鐨Linux shell鍛戒护璇﹁В鏀堕泦鏁寸悊
    绛旓細-c 灏嗚緭鍑哄啓鍒版爣鍑嗚緭鍑轰笂,骞朵繚鐣欏師鏈夋枃浠-d 灏嗗帇缂╂枃浠惰В鍘-l 鏄剧ず姣忎釜鍘嬬缉鏂囦欢鐨勮缁嗕俊鎭-r 閫掑綊寮忓湴鏌ユ壘鎸囧畾鐩綍骞跺帇缂╁叾涓殑鎵鏈夋枃浠舵垨鑰呮槸瑙e帇缂-t 娴嬭瘯銆佹鏌ュ帇缂╂枃浠舵槸鍚﹀畬鏁-v 瀵规瘡涓涓帇缂╁拰瑙e帇鐨勬枃浠,鏄剧ず鏂囦欢鍚嶅拰鍘嬬缉姣3銆乽nzip 鍛戒护 鐢∕S windows涓嬬殑鍘嬬缉杞欢winzip鍘嬬缉鐨勬枃浠跺湪linux绯荤粺涓灞曞紑璇硶...
  • linux shell鑴氭湰鎵ц鍛戒护璇﹁В
    绛旓細鍦Linux涓锛屽鏋滀綘闇瑕佹墽琛shell鑴氭湰锛岄偅涔堝簲璇ヤ娇鐢ㄩ偅涓懡浠ゅ憿?涓嬮潰鐢辨垜涓哄ぇ瀹舵暣鐞嗕簡linux shell鑴氭湰鎵ц鍛戒护鐨勭浉鍏崇煡璇嗭紝甯屾湜瀵瑰ぇ瀹舵湁甯姪!linux shell鑴氭湰鎵ц linux shell鑴氭湰鎵ц鏂规硶涓锛 鍒囨崲鍒皊hell鑴氭湰鎵鍦ㄧ殑鐩綍(姝ゆ椂锛岀О涓宸ヤ綔鐩綍)鎵цshell鑴氭湰锛歝d /data/shell ./hello.sh ./鐨勬剰鎬濇槸璇村湪褰撳墠...
  • linux涓shell鍒嗗灏戠,閮芥湁浠涔堝尯鍒
    绛旓細Shell鏄竴绉嶈剼鏈瑷锛岄偅涔堬紝灏卞繀椤绘湁瑙i噴鍣ㄦ潵鎵ц杩欎簺鑴氭湰锛屽父瑙佺殑鑴氭湰瑙i噴鍣ㄦ湁锛歜ash锛氭槸Linux鏍囧噯榛樿鐨剆hell銆俠ash鐢盉rian Fox鍜孋het Ramey鍏卞悓瀹屾垚锛屾槸BourneAgain Shell鐨勭缉鍐欙紝鍐呴儴鍛戒护涓鍏辨湁40涓俿h锛 鐢盨teve Bourne寮鍙戯紝鏄疊ourne Shell鐨勭缉鍐欙紝sh 鏄疷nix 鏍囧噯榛樿鐨剆hell銆傚彟澶栬繕鏈夛細ash銆 csh銆...
  • 鐜板湪寰堝浼佷笟鎷涗細Linux shell鑴氭湰缂栫▼鐨勪汉,璇烽棶閮借鐢↙inux shell鍋氫竴 ...
    绛旓細3 鏂囨湰鍒嗘瀽 缁欎綘涓涓緢澶х殑鏂囨湰锛屽垎鏋愰噷闈㈢殑閭欢鍦板潃鍑虹幇浜嗗灏戞锛屼綘涓嶅彲鑳戒竴涓釜鏁板惂锛屾暟涓骞撮兘鏁颁笉瀹岋紝鍐欎釜鑴氭湰鍑犲垎閽熷氨缁熻鍑烘潵浜嗭紝awk鍙渶瑕佷竴琛岋紝杩欎篃鏄吘璁殑涓涓潰璇曢 鍋歭inux sa涓嶄細杩欎釜鏄笉鐜板疄鐨勶紝涓嶄粎浼氾紝鑰屼笖瑕佺簿閫氾紝浣嗘槸浣犲彧浼氳繖涓 shell涔熶笉琛岋紝鍥犱负鎼linux鐨杩樿姹備細鍏朵粬鐨勪笢瑗 ...
  • Linux涓鏈甯哥敤鐨凷hell鍛戒护鐨勪粙缁
    绛旓細echo鍛戒护鐨勪綔鐢ㄥ氨鏄墦鍗板嚭浣犵殑杈撳叆銆傚鏋滀綘鐨勮緭鍏ュ叿鏈shell鐨勭壒娈婃剰涔夛紝渚嬪shell鍙橀噺锛屼粬灏辫緭鍑哄彉閲忕殑鍊笺備竴涓噸瑕佺殑鍦版柟鏄紝浣犺娉ㄦ剰鏂囨湰鐨勫ぇ灏忓啓銆備緥濡傦紝ls锛屾槸DOS鐨刣ir鍛戒护鐨Linux鐗堟湰銆傝繖涓懡浠ゅ垪鍑哄綋鍓宸ヤ綔鐩綍涓嬬殑鏂囦欢鍒楄〃銆傚鏋滀綘杈撳叆鐨勬槸LS锛屼綘寰楀埌鐨勫彧鑳芥槸鈥滄壘涓嶅埌鍛戒护鈥濈殑閿欒淇℃伅銆傚彟澶栧湪Linux...
  • linux 鎬庝箞杩涘叆shell缂栫▼妯″紡
    绛旓細1銆佽繛鎺ヤ笂鐩稿簲鐨linux涓绘満锛岃繘鍏ュ埌绛夊緟杈撳叆shell鎸囦护鐨刲inux鍛戒护琛岀姸鎬佷笅銆2銆佸湪linux鍛戒护琛屼笅杈撳叆shell鎸囦护锛歷i test.shell銆3銆佹渶鍚庯紝鎸変笅鍥炶溅閿墽琛宻hell鎸囦护锛屾鏃跺彂鐜扮敤vi鍛戒护鎴愬姛杩涘叆浜唖hell缂栫▼妯″紡涓
  • 扩展阅读:linux下qprocess调用shell ... linux简单的shell编程 ... linux shell 菜鸟教程 ... linux里面shell是什么 ... linux编写shell脚本 ... linux开机启动sh脚本 ... 简单的shell脚本代码 ... linux默认的shell是什么 ... linux中shell字符串拼接 ...

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