作者 by admin / 2022-05-07 / 暂无评论 / 169 个足迹
sh
和bash
的区别shell的中文意思就是贝壳,其实比较类似于我们内核的壳。简而言之就是只要能够操作应用程序的接口都能够称之为shell。狭义的shell指的是命令方面的软件,广义的shell则包括图形界面
早在Unix年代,发展者众多,所以shell就有了不同的许多版本,比如h,C Shell,K Shell,Tcsh等,每一种Shell都各有各的特点。当然也有我们的bash,bash这个shell是基于Bourne Shell的增强版本,也是基于CNU的架构下发展出来的。
(其实我有个不清楚的问题,Linux 终端下连接docker容器时,使用/bin/bash有时会连接失败,但用/bin/sh可以连接,通过 'docker container ls | grep xxx' 查询,我感觉应该是docker命令解释器的问题.)
.大二有个hadopp课程,因为机房原因每次上课都需要重新配置jdk、hadoop、hive等环境,所以在写脚本的时候刷新环境变量困扰了我、在一位大数据方向的朋友帮助下和查阅资料中,了解了bash和source。
bash FileName
时,它会自动运行一个新的子shell,并读取执行FileName文件中的命令,俗称跑脚本。其shell会与父shell和其他子shell相互独立与并行,这就会使脚本安装jdk、hadoop等应用时,会导致环境变量未刷新的问题。source FileName
,它会在当前bash环境下读取执行FileName文件中的命令。注:本文章大多是以个人实践学习和理解写出的,如有错误望指出。
独特见解