精华内容
下载资源
问答
  • C Shell Bash区别

    千次阅读 2014-06-15 23:42:53
    在公司写C Shell习惯了,在家里写Bash还真有点不习惯。下面将发现

    在公司写C Shell习惯了,在家里写Bash还真有点不习惯。下面将不同的问题罗列一下。发现一点更新一点。


    1. 变量的声明

    CSH:  set value1=1    #等号两边可以有空格
    BASH: $value=1        #等号两边千万不要有空格,如果有空格则出现下面错误:不是有效的标识符
    

    2. 变量的使用(相同的)

    echo $value

    3. 环境变量设定

    CSH:  setenv value 1
    BASH: export value=1

    4. 环境变量的废弃

    CSH:  unsetenv name
    BASH: unset name


    展开全文
  • Linux中的shell和bash

    千次阅读 2018-11-29 23:12:56
    目录 shell shellscript sh bash ...tty 、pty pts ...学安全的我们,经常会听到说获得某服务器的shell,就是指获得某个服务器的操作权限。...Shell 俗称壳(用来区别于核),是指“为使用者提供操作界面”的软...

    目录

    shell

    shell script 

    sh

    bash

    Dash

    tty 、pty 和 pts 


    学安全的我们,经常会听到说获得某服务器的shell,就是指获得某个服务器的操作权限。我们学习linux时,经常会遇到bash,bash也是指的是某个服务器的权限。那么,这两者有什么区别和联系呢?

    shell

     Shell 俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

    我们先来看一些Linux系统的结构

    位于最内层的是硬件,然后是Linux系统内核。shell介于用户和系统内核之间。

    那么shell的功能是什么呢?

    shell用来接收我们用户的输入,并且解释我们的命令。然后将其传给系统内核,内核再调用硬件来操作。

    shell script 

    我们很容易知道“Shell Script”指的是针对shell所写的脚本。我们将一些shell规定的语法与命令,再搭配正则表达式、管道命令与数据流重定向等功能,写成一个纯文本文件以达到我们想要的处理目的,再配以“.sh”的扩展名,这便是“Shell script”了。

    简言之,我们只有通过Shell 这个工具来解释我们的命令等请求,我们才能成功实现与计算机的交流,同时再搭配Shell script可以批量处理命令的“程序”,我们就可以与计算机更优雅的交流哟!

    我们可能会问:既然shell是解释命令的工具,那么这个工具可不可以多样化呢?不同的解释工具可不可以遵从不同的规则呢? 
    这是必然的咯,何况是像Linux这种开源的好东西,怎么会缺乏多样性呢?! 
    所以,我们就不难理解Linux中的shell有多种类型了吧,这其中最常用的几种是 Bourne shell(sh)Bourne Again shell(bash)  Debian Almquist Shell(dash)。其中三种shell各有优缺点:

    sh

    sh(Bourne shell)是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。

    bash

    bash (Bourne Again shell),它是Linux操作系统缺省的shell,是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash 中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,有灵活和强大的编程接口,同时又有很友好的用户界面。 而且在Redhat系列的Linux 操作系统中的 /bin/sh 是 /bin/bash 的符号链接。所以,用 sh执行脚本和bash 执行脚本,效果是一样的。所以我们通常会在脚本第一行写  #!/bin/bash  ,意思就是用 /bin/bash 去执行这个脚本。

    Dash

    虽然bash好用,功能也多。但是鉴于bash过于复杂,有人把bash从NetBSD移植到Debian Linux并更名为 dash (Debian Almquist Shell),并建议将/bin/sh指向它,以获得更快的脚本执行速度。Dash Shell 比Bash Shell小的多,符合POSIX标准。也就是若脚本第一行为“#!/bin/sh”,则我们使用命令:sh  script_name.sh  时是调用的dash去解释脚本;Debian下默认使用的还是bash,只不过sh指向的是dash

    tty 、pty 和 pts 

    这里再多说一点,说说我们经常看到的 tty 和 pts 。

    tty就是linux里面终端的意思,你每一个可以输入shell进行解析的当前框,就是终端。

    pty就是虚拟终端。

    pts是终端的一个实例化。比如,下图

    我们这里打开了三个终端,第一个终端tty实例化为 pts/0,第二个终端tty实例化为 pts/1 ,第三个终端tty实例化为 pts/2 ,如果我们现在用Xshell远程连接,那么Xshell终端tty实例化为 pts/3。

    你在每个终端输入的命令,都是属于该 pts 下面的。

    如果我们的 pts/0 想在 pts/3 的屏幕上输入文字

    write pts/3的用户名  pts/3
    ctrl+d #结束

    如果我们想把pts/3的终端给踢掉

    pkill -kill -t pts/3

     

    展开全文
  • Shell bash和sh区别

    万次阅读 多人点赞 2019-07-16 16:02:08
    Shell 中文意思贝壳,寓意类似内核的壳。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是...

    Shell 中文意思贝壳,寓意类似内核的壳。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

    Shell 脚本(shell script)是一种为 shell 编写的脚本程序。常说的shell通常都是指 shell 脚本,但shell和shell script是两个不同的概念。通常说“shell编程”都是指 shell 脚本编程,不是指开发 shell 自身。

    sh(Bourne Shell)是一个早期的重要shell,1978年由史蒂夫·伯恩编写,并同Version 7 Unix一起发布。

    bash(Bourne-Again Shell)是一个为GNU计划编写的Unix shell。1987年由布莱恩·福克斯创造。主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,是各种Linux发行版标准配置的Shell,在Linux系统上/bin/sh往往是指向/bin/bash的符号链接。

    dash (Debian Almquist shell)一种 Unix shell。它比 Bash 小,只需要较少的磁盘空间,但是它的对话性功能也较少。它由 NetBSD版本的Almquist shell (ash)发展而来,于1997年由赫伯特·许(Herbert Xu)移植到Linux上,于2002年改名为 dash。

    含义:

    #!是一个特殊标记,说明这是一个可执行的脚本。除了第一行,其他以#开头的都不再生效,为注释。

    #!后面是脚本的解释器程序路径。这个程序可以是shell,程序语言或者其他通用程序,常用的是bash、sh。

    #!/bin/bash
    
    #!/bin/sh

    查看:

    cat /etc/shells    查看系统可使用的shell类型
    
    cat /etc/passwd    查看当前默认设置,一般在第一行:
    root:x:0:0:root:/root:/bin/bash
    
    ll /bin/sh    查看当前sh状态
    lrwxrwxrwx 1 root root 4 3月  31  2018 /bin/sh -> dash*

    区别:

    sh 遵循POSIX规范:“当某行代码出错时,不继续往下解释”。bash 就算出错,也会继续向下执行。

    POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )。POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统上编译执行。

    sh 脚本:
    
    #!/bin/sh
    source err
    echo "test sh"
    
    结果为:
    testsh.sh: 2: testsh.sh: source: not found
    bash 脚本:
    
    #!/bin/bash
    source err
    echo "test sh"
    
    结果为:
    testsh.sh: 2: testsh.sh: source: not found
    test sh

    sh 跟bash的区别,实际上是bash有没开启POSIX模式的区别。

    简单说,sh是bash的一种特殊的模式,sh就是开启了POSIX标准的bash, /bin/sh 相当于 /bin/bash --posix。

     

    在Linux系统上/bin/sh往往是指向/bin/bash的符号链接

    ln -s /bin/bash /bin/sh

     

    展开全文
  • 修改 zsh shellbash shell命令为 chsh -s /bin/bash 修改bash shell为zsh shell命令为 chsh -s /bin/zsh

    修改 zsh shell为bash shell命令为

    chsh -s /bin/bash

    修改bash shell为zsh shell命令为

    chsh -s /bin/zsh

     

    展开全文
  • 最近在工作中遇到一个很奇葩的问题,就是一个嵌入式的SDK编译,它里面执行shell命令的时候,使用的dash shell来解析,而通常我们默认用的是bash shell来解析;我按照bash shell那样照常编写脚本,大部分的脚本是没有...
  • Ubuntu的shellbash和dash

    千次阅读 2013-08-20 17:25:20
    Ubuntu的 shell 默认安装的是 dash,而不是 bash。 运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个: $ls -al /bin/sh dash 比 bash 更轻,更快。但 bash 却更常用。 如果一些命令、脚本等总不...
  • shell是一个抽象概念,shell的一切操作都在计算机内部,负责处理人机交互,执行脚本等...如果想换shell的程序,可以修改/etc/passwd,把里面的/bin/bash换成你想要的shell,或者用chsh命令来切换 shell与终端的关系...
  • bourne shellbash区别

    千次阅读 2013-04-07 16:24:39
    源自... bourne shell级系统中使用的sh ...bash即bourne again shell 区别:  bash是增强版     BOURNE SHELL BASH
  • shellbash

    2015-09-18 17:20:58
    1. 什么是shellshell程序就是包在操作系统外面的那层外壳程序,就是命令终端。人与shell交互,shell再与系统内核交互,shell就像个翻译,你直接输入cd 命令系统是看不懂的,系统内核只看得懂二进制语言,这就需要...
  • 终端、shellbash区别联系

    千次阅读 2017-12-02 10:36:20
    shellShell就是用户操作系统之间的壳,中介,GUICLI都算是Shell,登陆终端可以是登陆了Bash也可能是Csh或者Dash;是操作系统与用户交互用的接口,在命令终端里可以使用shellshell将用户输入翻译为操作系统能...
  • Mac OS X 执行shell以及bash shell区别

    千次阅读 2017-06-08 15:07:24
    shell脚本的第一行中,必须写#!/bin/bash吗?带着这个问题,我今天在百度上搜索了一下, 发现在一个贴子中讨论了这个问题,觉得各个跟贴者在回答这个问题时,都解释的很有道理,现摘记如下,以便学习。  ------...
  • 切换到bash 输入命令:chsh -s /bin/bash 切换到zsh 输入命令:chsh -s /bin/zsh 注意需要重启终端生效(强制退出后再打开) 遇到个问题:无法正常使用/usr/...bash是Mac OS默认的shell 什么是shell? 点击查看 ...
  • BASH_EOURCE和BASH_SOURCE[0]的作用都是一样的,就是取得当前执行的shell脚本的相对路径 如果希望获得,当前执行脚本的绝对路径,可以采用以下方式: DIR_T="$( cd "$(dirname "${BASH_SOURCE[0]}&...
  • 一、先说说bin/sh与bin/bash区别吧(来自网络) 原文链接: http://blog.csdn.net/jackalfly/article/details/7571616 原文节选如下: 在shell脚本的第一行中,必须写#!/bin/bash吗?发现在编写脚本的时候...
  • 编程语言没有编译型解释型的区别,只能说某个语言常见的执行方式为编译成新代码执行或解释器解释执行 编译器的输入是A语言的源代码,而输出是B语言;比如C++,被编译成汇编语言; 解释器的输入是A语言的源代码,它...
  • 什么是shellbashbash的特点

    千次阅读 2019-11-21 14:17:24
    什么是shellshell是系统计算机硬件交互时使用的中间介质,是系统的一个工具。在shell和计算机硬件之间还有一个系统内核。用户直接面对的不是计算机...可以将shell看作是一种语言名称,具体的语法遵循bash等的规...
  • Linux 中kernel, shell和bash

    千次阅读 2016-03-18 14:18:10
    kernel shell bash简介   kernell的中文意思是“核心”, 顾名思义,是Linux系统的内核, 也就是系统的核心部分,用于管理存储器、文件、外设系统资源等。  shell的中文意思是“外壳”, 这个外壳...
  • 在众多Linux发行版中bash shell 可谓是随处可见。作为众多发行版的首选shell,对于bash shell的学习对我们来说,显得格外重要。在学习bash sh...
  • Shell 中文意思贝壳,寓意类似内核的壳。Shell是指一种应用程序,这个应用程序提供了一个...常说的shell通常都是指 shell 脚本,但shell和shell script是两个不同的概念。通常说“shell编程”都是指 shell 脚本编程.
  • 这里提供了一种判断接收参数为空不空处理的巧妙方法,我用来打印指定时间的tomcat out日志 parm=$2 timeout ${parm:-5} tail -f $Tomcat_Home/logs/catalina.out.`date +%Y-%m-%d` 执行时,传入时间则打印...
  • Linux中的ShellBash的关系**Linux中"Shell"与"Bash"的关系**1、认识Shell2、认识Bash3、ShellBash关系 Linux中"Shell"与"Bash"的关系 此文属于我在学习Linux中的学习记录,便于回头查找相应文档使用,大多数解释...
  • 在学习bash shell的过程中,bash、sh、source及英文输入状态下的点号经常交替出现,他们看起来作用都差不多,但是深究下去,他们也有着不小的区别与联系。下面就让我们以具体实验来看一下它们之间的区别与联系吧! ...
  • 修改 ubuntu dash shellbash shell

    千次阅读 2010-12-10 09:28:00
    <br />从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。 ubuntu edgy是第一个将dash作为默认shell来发行的版本,...
  • #注意,linux shell脚本中,首行不用指定bash类型也是可以的哦,默认就是bash,但一般是要标明bash类型的; #即:bash命令sh命令一般是等效的; [root@centos76 ~]#cat b.sh a="a b" echo $a [root@centos76 ~]#...
  • 修改Ubuntu dash shellbash shell

    千次阅读 2010-09-25 09:03:00
    从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。 ubuntu edgy是第一个将dash作为默认shell来发行的版本,这似乎...
  • shell是你(用户)Linux(或者更准确的说,是你Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。 shell 是一个命令语言解释器(command-language interpreter)。...
  • 通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入显示输出,Linux 系统还提供了一个叫做终端模拟器的程序...
  • Linux默认shellbash shell的优点

    千次阅读 2015-08-23 22:33:45
    在Linux操作系统中,...shell的概念很广泛,它并不是Kernel的一部分,shell本身是一个用C程序编写的程序,它可以作为一种命令语言或一种程序设计语言,是一种脚本语言,根据语法执行方面不同,其解释器也不同,常用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 424,532
精华内容 169,812
关键字:

shell和bash的区别