精华内容
下载资源
问答
  • 2014-06-15 23:42:53

    在公司写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 Dash tty 、pty pts 学安全的我们,经常会听到说获得某服务器的shell,就是指获得某个服务器的操作权限。我们学习linux时,经常会遇到bashbash也是指的是某个服务器的权限。...

    目录

    shell

    shell script 

    sh

    bash

    Dash

    tty 、pty 和 pts 


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

    shell

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

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

    <

    展开全文
  • Bash和shell

    千次阅读 2019-03-06 14:55:03
    一、什么是shell,什么是bash? 管理计算机硬件的其实是内核,用户正是通过shell来跟内核通信的,从本质上说shell是一个能执行各种命令的宏处理器。而bash(/bin/bash)就是linux默认的shell。 ...

    一、相关概念

    1、什么是shell,什么是bash?

    管理计算机硬件的其实是内核,用户正是通过shell来跟内核通信的,从本质上说shell是一个能执行各种命令的宏处理器。而bash(/bin/bash)就是linux默认的shell。

    2、什么是子shell?

    子shell就是从当前shell环境中新开了一个shell环境。子shell和父shell的关系就是子进程和父进程的关系。子shell可以从父shell中继承很多环境,如变量、命令全路径、文件描述符、当前工作目录、陷阱等等。

    3、子shell如何产生?(https://www.linuxidc.com/Linux/2017-08/146606.htm)

    Linux上创建子进程的方式有三种:一种是fork出来的进程,一种是exec出来的进程,一种是clone出来的进程。(先不讨论clone)
    (1).fork是复制进程,它会复制当前进程的副本(不考虑写时复制的模式),以适当的方式将这些资源交给子进程。
    (2).exec是加载另一个应用程序,替代当前运行的进程,也就是说在不创建新进程的情况下加载一个新程序。exec还有一个动作:在进程执行完毕后,退出exec所在的shell环境。为了进程安全,如要形成新的且独立的子进程,都会fork一份当前进程,然后在fork出来的子进程上调用exec来加载新的程序。

    4、如何判断是否进入了子shell?

    执行

    [root@myp ~]# echo "$BASHPID"
    6371
    

    如果输出结果和父进程中的pid值不同则就是进入了子shell.

    5、进入子shell中的情况
    1. 执行bash内置命令时
    2. 执行脚本文件时
    3. 执行bash命令时
    4. 执行shell函数时(直接执行时不会进入子shell但是放入管道中会进入子shell)
    5. 执行非bash内置命令时
    6. 命令替换
    7. 使用括号()组合一系列命令
    8. 放入后台运行的命令
    9. 进程替换

    二、shell执行命令的过程

    1. 从终端或者shell脚本或者 bash -c "STR"中读取命令
    2. 将命令拆分成单词和运算符
    3. 将符号解析成简单或者复杂的命令
    4. 进行各种sh+ell扩展
    5. 重定向
    6. 执行命令
    7. 等待命令解释,收集结束转态
    展开全文
  • bash shell dash shell 的区别,你真的了解吗? 本文将给你解开一些答案!

    最近在工作中遇到一个很奇葩的问题,就是一个嵌入式的SDK编译,它里面执行shell命令的时候,使用的dash shell来解析,而通常我们默认用的是bash shell来解析;我按照bash shell那样照常编写脚本,大部分的脚本是没有问题的,但是偏偏就被我遇到了不一样的地方,以此文记录下。

    先说下bash shell与bash shell的关系。

    什么是bash ?

    Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等。

    GNU/Linux 操作系统中的 /bin/sh 本是 bash (Bourne-Again Shell) 的符号链接,但鉴于 bash 过于复杂,有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash (Debian Almquist Shell),并建议将 /bin/sh 指向它,以获得更快的脚本执行速度。Dash Shell 比 Bash Shell 小的多,符合POSIX标准。

    Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,它速度更快,但功能相比bash要少很多,语法严格遵守POSIX标准。

    简单来说,就是dash是bash的简化版本,没有支持那么复杂的东西。

    再看下我遇到的问题,为了好做对比,我分别写了1个脚本,分别用bash和dash去解析运行,得出不同的答案。

    脚本内容如下:

    
    result=1234
    
    if [[ "$result" == "1234" ]]; then
            echo "yes"
    else
            echo "no"
    fi
    if [ "$result" == "1234" ]; then
            echo "yes"
    else
            echo "no"
    fi
    if [[ "$result" = "1234" ]]; then
            echo "yes"
    else
            echo "no"
    fi
    if [ "$result" = "1234" ]; then
            echo "yes"
    else
            echo "no"
    fi

    OK,脚本对应的行号如下所示:

    使用/bin/bash运行,一切正常,输出4个yes

    使用/bin/dash运行,只有一个输出正常,3处报错!!!

     为何???

    原来,dash是很奇葩的:

    • if 里面的条件语句只能使用 [ ] 不能使用 [[ ]];
    • 字符串判断,只能使用 = 不能使用 ==;

    word天呐!!就是这么回事。

    我们还可以使用 ls -al /bin/sh查看下系统默认的shell解析器是什么,如下: 

    至于 [ ] 与 [[ ]] 的区别,可以参考这篇文章:Linux Shell 中的 ()、(())、[]、[[]]、{} 怎么用是不是还傻傻分不清?

    == 可用于判断变量是否相等,= 除了可用于判断变量是否相等外,还可以表示赋值。

    = 与 == 在 [ ] 中表示判断(字符串比较)时是等价的。

    今天的总结就介绍到这,有什么问题,欢迎你在评论区告诉我。

    展开全文
  • Linux之shell以及bash、dash的详解

    万次阅读 多人点赞 2018-07-17 15:47:25
    Linux之shell、sh、bash、dash详解 首先,我们先借用两张图来简单概括一下Linux系统的结构: 好的,下面我们来分别来解释其中的一些概念作用: ShellShell script 何为linux的shell? 人们总是...
  • Linux中Bash和Shell的区别

    千次阅读 2020-04-17 21:06:52
    `Bash`就是`系统自带的Shell`(App),直白点讲就是常用的`命令行窗口`。Shell包括Bash,但其他的专门指令操作,也可以集成为另一个Shell(某个命令如`man`就相当于一个应用程序,然后通过`壳程序/命令行`模式来调度...
  • 出自bash的faq,仔细看看。...C1) bash和 sh、Bourne shell的区别This is a non-comprehensive list of features that differentiate bashfrom the SVR4.2 shell. The bash manual page explains th
  • bash和shell的区别

    千次阅读 2017-12-14 08:52:02
    Linux 中的 shell 有很多类型,其中最常用的几种是: Bourne shell (sh)、C shell (csh) Korn shell (ksh), 各有优缺点。Bourne shell 是 UNIX 最初使用的 shell,并且在每种 UNIX 上都可以使用, 在 shell 编程...
  • csh和bash的语法对比

    千次阅读 2021-05-30 12:56:16
    一般来说,能用bash 语言...下面将bash和csh,做一些对比,方便将bash转变成csh. 一,关于变量设置,和环境变量设置 bash: a=`pwd` # =号两边必须无空格,命令转变量也可以用$(pwd) export b=1 # 设置环境变量 csh
  • ShellBash、Zsh这都是啥啊

    千次阅读 2022-02-04 14:05:04
    一文了解ShellBash、Zsh
  • 一,什么是shell和bash? 二,shell的基本用法 三,bash的基本用法 一,什么是sh和bash? #!/bin/sh是#!/bin/bash的缩减版 Linux系统中的/bin/sh本是bash的符号链接,鉴于bash过于复杂,有人把bash从NetBSD移植到...
  • Mac终端shell类型bash和zsh切换

    千次阅读 2021-01-04 13:47:04
    切换到bash 输入命令:chsh -s /bin/bash 切换到zsh 输入命令:chsh -s /bin/zsh 注意需要重启终端生效(强制退出后再打开) 遇到个问题:无法正常使用/usr/...bash是Mac OS默认的shell 什么是shell? 点击查看 ...
  • Shell bash和sh区别

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

    万次阅读 多人点赞 2016-04-28 20:35:09
    我们通过hsell用户通信SHELL简而言之就是只要能够操作应用程序的接口都能够称为SHELL。狭义的shell指的是命令行方面的软件,广义的SHELL则包括图形界面。SHELL的版本在鸟哥的私房菜的一书中,介绍了UNIX的版本以及...
  • Linux中"Shell"与"Bash"的关系

    千次阅读 2019-02-16 14:39:06
    Bash&quot;的关系 此文属于我在学习Linux中的学习记录,便于回头查找相应文档使用,大多数解释都为其它网站引用,也用来分享给大家做个参考, 1、认识Shell 在计算机科学中,Shell俗称壳(用来区别于核),是...
  • 本文介绍了bash shell命令行参数与命令行选项的操作方法,有关shell 命令行参数的实例教程,有需要的朋友参考下。
  • 将Linux shell改为bash

    千次阅读 2020-11-17 14:45:09
    将Linux shell改为bash 查看shell是否为bash,在终端运行如下命令 ls -l /bin/sh 如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改: 方法一:在终端运行如下命令,然后选择 no。 sudo dpkg-...
  • shell脚本bash中嵌入expect代码

    千次阅读 2021-12-15 09:46:46
    /bin/bash #push calibration file to robot adb push ./test.txt /userdata/ expect -c " spawn adb shell expect "*root*" {send "ls\\r"} interact " 代码解析: 先使用adb push 上传了文件test.txt 到 /...
  • 如果要学Bash,个人认为这是最好的教程,讲解通俗易懂,还有大量的例子,只要完整学一遍,保证能学会
  • bourne shellbash的区别

    千次阅读 2013-04-07 16:24:39
    源自... bourne shell级系统中使用的sh ...bash即bourne again shell 区别:  bash是增强版     BOURNE SHELL BASH
  • bash_shell_mock:用于BASH shellshell脚本模拟实用程序框架
  • shell 高级bash脚本编程指导 中文翻译版本 shell 高级bash脚本编程指导 中文翻译版本
  • Shell 中文意思贝壳,寓意类似内核的壳。Shell是指一种应用程序,这个应用程序提供了一个...常说的shell通常都是指 shell 脚本,但shell和shell script是两个不同的概念。通常说“shell编程”都是指 shell 脚本编程,不
  • 毫无疑问,UNIX/Linux最重要的软件之一就是shell,目前最流行的shell被称为Bash(Bourne Again Shell),几乎所有的Linux绝大部分的UNIX都可以使用Bash。作为系统与用户之间的交互接口,shell几乎是你在UNIX工作平台...
  • Linux 中kernel, shell和bash

    千次阅读 2016-03-18 14:18:10
    kernel shell bash简介   kernell的中文意思是“核心”, 顾名思义,是Linux系统的内核, 也就是系统的核心部分,用于管理存储器、文件、外设系统资源等。  shell的中文意思是“外壳”, 这个外壳...
  • bash-powerline-shell:为您的bash shell提供美观,有效有用的PS1提示
  • bash_shell_scripts 我已经完成了一些bash shell脚本。 并非总是完美的,但很有用。 JB
  • shell bash脚本With the arrival of Windows 10’s Bash shell, you can now create and run Bash shell scripts on Windows 10. You can also incorporate Bash commands into a Windows batch file or PowerShell ...
  • Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分... GNU 组织开发了很多核心软件基础库,例如 GCC 编译器、C语言标准库、文本编辑器 Emacs、进程管...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 523,546
精华内容 209,418
关键字:

shell和bash