shell bash(bash shell是什么)
本文目录
- bash shell是什么
- shell脚本只能用bash进行解释吗
- bash和shell这2个概念之间是什么关系
- bash shell的特性有哪些
- shell脚本只能用bash进行解释这句话对不对
- bash脚本和shell脚本的区别
bash shell是什么
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语言能简单地重复执行某一任务。 《Linux就该这么学》 Bourne Again shell (bash), 正如它的名字所暗示的,是 Bourne shell 的扩展。bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很多 C 和 Korn shell 里的优点。bash 有很灵活和强大的编程接口,同时又有很友好的用户界面。 为什么要用 bash 来代替 sh 呢?Bourne shell 最大的缺点在于它处理用户的输入方面。在 Bourne shell 里键入命令会很麻烦,尤其当你键入很多相似的命令时。而 bash 准备了几种特性使命令的输入变得更容易。
shell脚本只能用bash进行解释吗
shell脚本不是只能用bash进行解释。shell脚本bash(也可换成其他命令解释器如sh等)scipt-name。这是当脚本文件本身没有可执行权限(即文件属性x位为-)时常使用的方法,或者当文件开口没有指定命令解释器也可使用这种方法来决定用哪个命令解释器来执行。这种执行shell的方法是比较推荐的,因为他可以在文件没有执行权限的情况下使用,也可以指定命令解释器。
bash和shell这2个概念之间是什么关系
shell 是总称,而bash是shell的一种(但是是应用的最多的一种)。除了bash,还有 ksh, zsh, csh, sh 等多种shell。
bash shell的特性有哪些
命令历史:shell进程会在会话中保存此前用户提交执行过的命令;
查看历史命令:
~]# history
定制history的功能,可通过环境变量来实现
HISISIZE:shell进程可保留的命令历史条数
HISIFILE:持久保存命令历史的文件 (.bash_history)
HISIFILESIZE:命令历史文件的大小
用法:
- -c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件中; -r:将历史命令文件中的命令读入当前历史命令缓冲区; -w:将当前历史命令缓冲区命令写入历史命令文件中;-d:删除指定命令历史条目;
显示最近#条历史命令 (history #)
调用历史列表中的命令 ( ! number)
再次执行上一条命令 (!!)
再一次执行历史列表中最近一个以STRING开头的命令 (!STRING)
调用上一条命令的最后一个参数 (ESC+.、file !$、file alt+.
控制命令历史的方法
环境变量:HISICONTROL
参数:ignorespace:忽略以空白字符开头的命令ignoredups:忽略以空白字符开头的命令ignoreboth:以上两者同时生效echo $HISTCONTROL
修改变量值HISICONTROL=Ignorespace
命令补全:
shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当作命令;
命令查找机制:
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名\
给定的打头字符串如果能唯一标识某命令程序文件,则直接补全\
不能惟一标识某命令程序文件,再击打一次tab键,会给出列表;
路径补全:
在给定的起始路径下,以对应路径下的打头字符串来逐一匹配起始路径下的每个文件 (tab) 《Linux就该这么学》 一起学习linux
如果能惟一标识,则直接补全。否则,再一次tab给出列表;
~:自动展开为用户的家目录,或指定的用户家目录;
{}:可承载一个以逗号分割的路径列表;
例如:
列出树形目录中目录的内容; -l:level 指定显示的层级
tree命令:
mkdir /tmp/{a,b},相当于 mkdir /tmp/a,mkdir /tmp/b;
创建/tmp/sysroot目录下包含以下文件
|--bin
|--etc
|--sysconfig
|--network-scripts
|--sbin
|--usr
|--local
|--bin
|--sbin
|--var
|--cache
命令执行的状态结果
bash通过状态返回值来输出此结果 (成功:0,失败:1-255);
命令执行完成后,其状态返回值保存于bash的特殊变量中 " $? ";
命令正常执行时,有的还会有命令返回值,其根据命令及其功能不同,结果各不相同;
两种引用命令的执行结果
$(COMMAND)
`COMMAND`
示例:mkdir $(date +%H-%M-%S)
强引用:’ ’
弱引用:" "
命令引用: ` `
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符
Ctrl+k:删除光标所在处至行尾的所有字符
Ctrl+l:清屏(等同clear)
星号 :匹配任意长度的任意字符 (pa,pa,pa,pa);
问号?:匹配任意单个字符(pa?,??pa,p?a,p?a?);
中括号);
);
hash命令:
-d COMMAND,删除
-r 情况hash缓存
执行命令的查找顺序: hash、alias、path;
解释:
把命令的查找结果,缓存在缓存中就叫hash;
什么时候需要清空hash表,hash缓存不正确时;
bash 基础特性之:命令补全
bash 基础特性之:命令行展开
bash 基础特性之:命令的执行状态结果
bash 基础特性之:引用
bash 基础特性之:快捷键
bash 基础特性之:globbing
globbing:文件名通配
bash 基础特性之:命令hash
bash 基础特性之:变量
***隐藏网址***
shell脚本只能用bash进行解释这句话对不对
对。通过限制所有可执行的shell脚本仅可使用Bash作为解释器,这可以在所有机器上安装统一的 shell语言这句话是对的。Shell脚本是使用bash作为解释器,进行解析,而python使用的是python命令解析。
bash脚本和shell脚本的区别
题主你好,Unix|Linux下有好多的shell, 如sh, bash, zsh等等.因此: bash脚本是指专门使用bash shell来运行的脚本, 也就是说bash脚本要完全符合bash shell的语法. shell脚本其实是统称, 即使用任意shell语法(sh, bash, zsh等等)编写的脚本都可以称为shell脚本.*.每种shell的基本用法都差不多, 也就是说无论你用哪个shell, 像ls, echo, pwd等这种最最基本的命令用法都是差不多的, 但每种shell又有自己独有的语法. 记的没错的话, 其它shell都是在sh shell的基础上开发出来的.-----希望可以帮到题主, 欢迎追问.
更多文章:
有免费的ps中文版软件吗(去哪里下载免费的photoshop)
2024年7月20日 19:55
默认网关怎么填(电脑的ip地址 默认网关 子网掩码等怎么填的)
2024年6月7日 11:55
hp1180c打印机驱动下载(急!!HP惠普Deskjet 1180c打印机驱动怎么安装)
2024年7月20日 09:34
罐子里的锤子(有一部动画片,里面有个是魔方的房子还有一把锤子,可以把东西变大变小那个动画片叫什么)
2024年6月23日 03:42