什么是Shell? bash是干啥的? 有什么关系

什么是Shell? bash是干啥的?  有什么关系


       shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。

shell 是一个命令语言解释器(command-language interpreter)。拥有自己内建的 shell 命令集。此外,shell也能被系统中其他有效的Linux 实用程序和应用程序(utilities and application programs)所调用。

不论何时你键入一个命令,它都被Linux shell所解释。一些命令,比如打印当前工作目录命令(pwd),是包含在Linux bash内部的(就象DOS的内部命令)。其他命令,比如拷贝命令(cp)和移动命令(rm),是存在于文件系统中某个目录下的单独的程序。

而对用户来说,你不知道(或者可能不关心)一个命令是建立在shell内部还是一个单独的程序。 shell 首先检查命令是否是内部命令,不是的话再检查是否是一个应用程序,这里的应用程序可以是Linux本身的实用程序,比如ls 和 rm,也可以是购买的商业程序,比如 xv,或者是公用软件(public domain software),就象 ghostview。然后shell试着在搜索路径($PATH)里寻找这些应用程序。搜索路径是一个能找到可执行程序的目录列表。如果你键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。而如果命令被成功的找到的话,shell的内部命令或应用程序将被分解为系统调用并传给Linux内核。

shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell 程序设计语言支持在高级语言里所能见到的绝大多数程序控制结构,比如循环,函数,变量和数组。shell 编程语言很易学,并且一旦掌握后它将成为你的得力工具。任何在提示符下能键入的命令也能放到一个可执行的shell程序里,这意味着用shell语言能简单地重复执行某一任务。

bash是shell的一种,具有友好的交互界面、更容易操作、更方便使用者,命令补齐功能:通常你在 bash (或任何其他的 shell)下输入命令时,你不必把命令输全 shell 就能判断出你所要输入的命令。 bash 另一个使命令输入变得更简单的方法是在命令中使用通配符。bash 支持三种通配符:

* 匹配任何字符和任何数目的字符

?匹配任何单字符

【...】 匹配任何包含在括号里的单字符

bash 也支持命令历史记录, bash 把你先前输入的命令文本保存在一个历史列表中。当你用你的帐号登录后历史列表将根据一个历史文件被初始化,历史文件的缺省名字是 .bash_history,这个文件通常在你的用户目录($HOME)中。用户在命令提示符下,可通过上、下箭头翻看历史命令。bash还支持输入、输出重定向,管道等简单方便使用。

好了,李小胖就说这么多,也是总结外加个人理解,希望对初学者有所帮助!

时间: 2024-08-05 12:57:58

什么是Shell? bash是干啥的? 有什么关系的相关文章

[Shell]Bash基本功能:通配符与特殊符号

/*------------------------------------------------------------------------------------------- @黑眼诗人 <www.chenwei.ws> --------------------------------------------------------------------------------------------*/ 一. 通配符: ?    匹配一个任意字符. *    匹配0个一个或多个

[Shell]Bash基本功能:多命令顺序执行与管道符

/*----------------------------------------------------------------------------------------------- @黑眼诗人 <www.chenwei.ws> -----------------------------------------------------------------------------------------------*/ 一. 多命令顺序执行 分号(;)        逻辑与(&a

shell bash判断文件或文件夹是否存在

shell bash判断文件或文件夹是否存在 1, #如果文件夹不存在,创建文件夹 folder="log" if [ ! -d "${folder}" ]; then mkdir ${folder} fi 2.判断文件是否存在 file="/var/www/log.txt" # -f 参数判断 $file 是否存在 if [ ! -f "$file" ]; then touch "$file" fi. 3

python 捕获 shell/bash 脚本的输出结果

#!/usr/bin/python## get subprocess module import subprocess ## call date command ##p = subprocess.Popen("date", stdout=subprocess.PIPE, shell=True) ## Talk with date command i.e. read data from stdout and stderr. Store this info in tuple ## Inte

Linux Shell Bash 带有特殊含义的退出码

Linux Shell Bash 带有特殊含义的退出码 用途说明 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行. 常用参数 格式:exit n 退出.设置退出码为n.(Cause the shell to exit with a status of n.) 格式:exit 退出.退出码不变,即为最后一个命令的退出码.(If n is omitted, the exit status is that of the  last  command executed. )

Kernel,Shell,Bash 的关系

Kernel (内核) Kernel 操作系统内核 操作系统内核是指大多数操作系统的核心部分.它由操作系统中用于管理存储器.文件.外设和系统资源的那些部分组成.操作系统内核通常运行进程,并提供进程间的通信. 来自 --百度百科 内核是大多数操作系统的核心部分,是操作系统必不可少的部分. 但是出于安全性的考虑以及语言的不通,用户无法直接与这一部分进行交互. Shell (计算机壳层) 在计算机科学中,Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(命令解析器).它类

shell——bash在线编辑

无意中发现了一个bash在线编辑的网址,初学者可以用这个试着学习shell http://www.runoob.com/try/runcode.php?filename=helloworld&type=bash

shell bash ksh

shell 是一个交互性命令解释器.shell独立于操作系统,这种设计让用户可以灵活选择适合自己的shell.shell让你在命令行键入命令,经过shell解释后传送给操作系统(内核)执行.     shell是一个命令处理器(command processor)——是一个读入并解释你输入的命令的程序.除了是一个命令中断器以外,shell还是一个程序设计语言.你可以编写shell可以解释的程序(被称为源程序),这些源程序可以包含shell程序设计命令等等.shell除了解释命令以外,还有其他工作

linux终端 及 tty who echo 命令用法 和 shell bash 变量

linux终端分为物理终端,伪终端,串行终端,虚拟终端 物理终端:/dev/console 伪终端(远程终端   图形下的终端):/dev/pts/#(数字) 虚拟终端:/dev/tty# 串行终端:/dev/ttys# startx 启动图形界面 ctrl+c 取消正在执行的命令 shift+pageup/pagedown   在命令界面翻屏 tty 命令   显示当前终端对应终端设备文件 who命令   查看当前系统上登录的所有账号 who  am  i     显示当前终端登录呃账号 sh