前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell解释器

Shell解释器

作者头像
栗筝i
发布2022-12-01 21:12:57
1.2K0
发布2022-12-01 21:12:57
举报
文章被收录于专栏:迁移内容迁移内容

shell解释器,用户和操作系统内核之间的桥梁

一、Shell常见种类

就像不同地区有不同方言一样,不同的Linux/Unix系统使用着不同类型的shell

  • Bsh:由贝尔实验室编写。Bsh是产生较早的UNIX Shell程序,实现了最基本的命令解释器的功能,同时也可以作为脚本编程语言
  • Csh:是因使用C语言的语法风格而得名,在用户的命令行交互界面上进行了很多改进,并增加了历史,别名,文件名替换,作业掏等功能,相比Bsh,Csh在更加适用为  用户提供命令交互操作
  • Ksh:在Bsh和Csh之后出现的,结合了两都的功能优势,兼具Bsh的语法和Csh的交互特性.
  • Bash:从名称可以看出是Bsh的升级版本,是著名的开源软件项目,目前大多数的Linux版本(包括Red Hat公司的Linux系统)都使用Bash 作为默认的Shell程序当运行,Shell程序时,实际运行的是Bash程序
  • Zsh:更多地基于交互式操作考虑进行设计的Shell程序,集成了Bash,Ksh等多种Shell程序的优点

二、Bash

2.1、Linux默认使用的Shell程序

命令文件位置:/bin/bash文件中

代码语言:javascript
复制
[root@Carlota /]# ls /bin/bash 
/bin/bash
[root@Carlota /]# 
[root@Carlota /]# ll /bin/bash 
-rwxr-xr-x. 1 root root 964600 8月   8 2019 /bin/bash
[root@Carlota /]# 
3.2、主要功能
  • 命令历史: 是BaSh中用于提高命令输入效率的一项功能,能够让用户快速地重复执行已经输入过的命令,减少重复输入工作,向上的方向键等,history可以查看已经输入过哪些命令
  • **命令别名:**可以将频繁使用的复杂命令定义为简短的别名,当用记需要执行该复杂命令时,只需要使用别名即可完成对应的操作,降低和操作复杂性,提高了输入效率
  • **标准输入输出和重定向:**Linux使用文件来描述系统的硬件,设备等资源。
  • **管道操作:**在Bash环境中,为不同命令之间的协同工作提供了一种机制,为于管道符号左侧的命令输出结果,将作为右侧命令的输入,同一行命令中可以有多个管道

三、相关Shell命令

  • 查看当前Shell解释器
代码语言:javascript
复制
$ echo $SHELL
/bin/bash
  • 查看系统支持Shell解释器
代码语言:javascript
复制
$ cat /etc/shells 
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
  • 切换系统当前默认的Shell解释器
代码语言:javascript
复制
$ chsh

四、关于首行#!的理解

脚本文件首行#!(sha-bang)一方面标志着脚本文件的magic number为脚本文件类型,另一方面告知系统此脚本文件需要使用何种命令解释器来执行

代码语言:javascript
复制
#!/bin/sh            --使用sh来解释执行
#!/bin/bash          --使用bash来解释执行
#!/bin/python        --使用python来解释执行
#!/bin/perl          --使用perl来解释执行
#!/bin/env bash      --使用env来适配某些操作系统中bash并不安装在/bin目录下的情况
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Shell常见种类
  • 二、Bash
    • 2.1、Linux默认使用的Shell程序
      • 3.2、主要功能
      • 三、相关Shell命令
      • 四、关于首行#!的理解
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档