什么是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语言能简单地重复执行某一任务。 

shell的种类

在Linux 和 UNIX系统里可以使用多种不同的shell可以使用。最常用的几种是 Bourne shell (sh), C shell (csh), 和 Korn shell (ksh)。

Bourne Again shell (bash)(平时用的就是这个)

正如它的名字所暗示的,是 Bourne shell 的扩展。bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很多 C 和 Korn shell 里的优点。bash 有很灵活和强大的编程接口,同时又有很友好的用户界面。

bash的特性

命令补齐(Command-Line Completion)

通常你在 bash (或任何其他的 shell)下输入命令时你不必把命令输全 shell 就能判断出你所要输入的命令。

通配符

另一个使命令输入变得更简单的方法是在命令中使用通配符。bash 支持三种通配符:

*      匹配任何字符和任何数目的字符
?      匹配任何单字符
[...]  匹配任何包含在括号里的单字符

管道

  管道可以把一系列命令连接起来。这意味着第一个命令的输出会通过管道传给第二个命令而作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,以此类推。而管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使用了输出重定向的话,将会放进一个文件里)。 
  你能通过使用管道符 | 来建立一个管道行,下面的示例就是一个管道行:

cat sample.text | grep "High" | wc -l
这个管道将把 cat 命令(列出一个文件的内容)的输出送给grep命令。grep 命令在输入里查找单词 High,grep命令的输出则是所有包含单词 High的行,这个输出又被送给 wc命令。带 -l选项的 wc命令将统计输入里的行数。假设 sample.txt的内容如下:
Things to do today:
Low: Go grocery shopping
High: Return movie
High: Clear level 3 in Alien vs. Predator
Medium: Pick up clothes from dry cleaner 
 
管道行将返回结果 2,指出你今天有两件很重要的事要做:
cat sample.text | grep "High" | wc -l

转载于:https://www.cnblogs.com/double-orange/p/10058809.html

shell----bash相关推荐

  1. linux超级基础系列——什么是shell? bash和shell有什么关系

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

  2. awk,gawk调用shell,bash中的变量 笔记221106

    awk,gawk调用shell,bash中的变量 笔记221106 "'${变量名}'" 双 包 单 包 ${} 包 变量名 "'"${变量名}"'& ...

  3. shell(bash)替换字符串大全

    shell(bash)替换字符串大全 1. 替换(只替换一个) 用varrB=${varA/str1/str2} $ var="AAAszip_BBB.zip";var2=${va ...

  4. shell bash脚本_如何在Windows 10上创建和运行Bash Shell脚本

    shell bash脚本 With the arrival of Windows 10's Bash shell, you can now create and run Bash shell scri ...

  5. 通过shell/bash脚本使用ffmpeg批量去除视频固定片头和片尾(Cygwin环境)

    通过shell/bash脚本使用ffmpeg批量去除视频固定片头和片尾(Cygwin环境) 任务需求: 基本情况: 技能需求: 操作流程概括: 运行通过的shell脚本: 小结 任务需求: 对一批视频 ...

  6. shell/bash脚本命令教程

      shell/bash其实就是我们日常在unix系统终端中执行的语句,只是通常我们在命令行中都是单行语句执行的,而有时,我们希望将一些操作命令写到一个文本中,让电脑自动按顺序或是并行地执行这些命令, ...

  7. 反弹shell bash -i命令

    目录   0x01 什么是反弹shell?   0x02 命令拆分详解   0x03 文件描述符   0x04 shell 输入/输出重定向   0x05 输入输出结合获得shell 什么是反弹she ...

  8. 国内Linux shell,Bash shell 的诞生 | Linux 中国

    原标题:Bash shell 的诞生 | Linux 中国 本周的<代码英雄>播客深入研究了最广泛使用的.已经成为事实标准的脚本语言,它来自于自由软件基金会及其作者的早期灵感. -- Ma ...

  9. linux -ksh,Linux Shell - bash ksh

    我知道shell有好多种.例如:TCSH SHELL . BASH SHELL 等. 请问共有几种shell,他们都有什么区别? 我的系统是RH9,用的是什么shell/ 谢谢! 目前流行的Shell ...

  10. Linux + Shell bash / sh / ksh / csh / tcsh

    Redhat Gnome Terminal 快捷键 http://huangchao200701.javaeye.com/blog/263002 常用 win+n切换背景颜色风格 alt+tab=不用 ...

最新文章

  1. 无需额外数据、Tricks、架构调整,CMU开源首个将ResNet50精度提升至80%+新方法
  2. ffmpeg常用转换命令,支持WAV转AMR
  3. 网站无法响应HTTP/1.1
  4. 洛谷 - P4323 [JSOI2016]独特的树叶(树上哈希+换根dp)
  5. 小米小爱蓝牙音箱_UG绘制一个小米小爱同学蓝牙音箱
  6. 函数的凹凸性证明_理解图灵机和递归函数的等价性证明
  7. jquery eaayui 学习(四)datagrid
  8. java命令行参数_Java学习从入门到精通,JDK工具条知识点学习资料
  9. python判断一个日期对应的节假日名
  10. matlab工具箱使用50hz低通滤波器设计 和FFT 变化截取50hz工频信号幅值
  11. QQ 5.0的一些特效学习 一
  12. unity透明物体显示问题
  13. Python编程 基础篇(一)
  14. 常用电子元器件参考资料(参数手册大全)
  15. 语音识别(ASR)论文优选:自监督学习Self-Supervised Learning for speech recognition with Intermediate layer supervisi
  16. 波士顿学院计算机科学专业,波士顿学院计算机专业
  17. 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第六章 纹理 Texturing
  18. 测试工程师的福利!各远程移动测试平台对比分析
  19. 六,iOS中的金额格式化和金额大小写转换
  20. 1009 美好的一天

热门文章

  1. python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...
  2. python小程序源代码-整理了适合新手的20个Python练手小程序
  3. python要自学多长时间-怎么自学python,大概要多久?
  4. python在化学方面的应用-python化学库
  5. python论坛哪些好-好的python论坛
  6. python错误-Python错误解决
  7. python在线读-python初级实战-----主机在线情况监控web
  8. 中国python之父是谁-Python之父:谈Python
  9. python 自动化-五大自动化测试的Python框架
  10. 上海python培训比较好的机构-上海Python培训机构推荐