ubuntu 默认的shell_ubuntu 默认 shell - CSDN
精华内容
参与话题
  • 平时写的Shell都是bash,在Ubuntu上写Shell有些不习惯。因为buntu6.10已将先前默认的bashshell更换为了dash。其表现是/bin/sh链接到了/bin/...在现在的Ubuntu中,/bin/sh默认是指向dash,不是传统的bash shell。das...

    平时写的Shell都是bash,在Ubuntu上写Shell有些不习惯。因为buntu6.10已将先前默认的bashshell更换为了dash。其表现是/bin/sh链接到了/bin/dash而不是传统的/bin/bash。

    $ cd /bin
    $ ll
        sh  -> dash*
    

    在现在的Ubuntu中,/bin/sh默认是指向dash,不是传统的bash shell。dash是为了执行脚本而出现,并不是为了交互,dash速度更快,但功能较少。语法严格遵守POSIX标准。

    这意味着如果用 sh 运行我们写的脚本。会调用dash shell。

    我们现在把它修改成默认的bash。

    方法一

    尝试

    $ sudo ln -s /bin/bash /bin/sh
        ln: failed to create symbolic link '/bin/sh': File exists

    然后,当然也可以直接运行下面的代码,上面代码只是尝试。

    $ sudo rm /bin/sh
    $ sudo ln -s /bin/bash /bin/sh
    
        

    然后查看是否成功

    $ cd /bin
    $ ll
        sh -> /bin/bash*

     

    方法二

    sudo dpkg-reconfigure dash

    这会弹出一个选项卡,把“dash设为默认shell”选择no。 然后查看是否成功。

    $ cd /bin
    $ ll
        sh -> /bin/bash*

    这样就把Ubuntu的默认dash shell 修改成了 bash shell。

    即使不修改默认shell,也可以用bash 执行 我们的shell文件。

    $ bash your_shell_file.sh

    另外,需要给shell文件增加执行权限,这个shell文件在自己执行的时候会读取第一行带#号的代码。类似

    #!/bin/bash

    给文件增加执行权限,如果没有增加成功自己找原因。可能文件所在的文件系统不支持。

    $ chmod +x your_shell_file.sh
    $ ll
        -rwxr-xr-x your your ================== your_shell_file.sh

    然后就可以下面这样调用我们的shell

    $ ./your_shell_file.sh

     

    展开全文
  • Ubuntu切换默认sh为bash或者dash

    万次阅读 2016-08-06 15:07:25
    1 bash与dash从Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the GNUBourne-Again Shell).但Login Shell还是bash. 原因是dash更快、更高效,而且它符合POSIX规范。Ubuntu在启动的时候会运行...

    1 bash与dash


    从Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the GNUBourne-Again Shell).

    但Login Shell还是bash. 原因是dash更快、更高效,而且它符合POSIX规范。Ubuntu在启动的时候会运行很多shell脚本,使用dash可以加快启动速度。

    1.1 什么是bash ?


    Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shell Script通常可以在很多种Shell上使用

    1.2 什么是dash ?


    dash is the standard command interpreter for the system. The current

    version of dash is in the process of being changed to conform with the

    POSIX 1003.2 and 1003.2a specifications for the shell.

    2 切换bash和dash


    2.1 查看与使用


    先用命令ls -l /bin/sh看看

    /bin/sh -> dash

    默认sh为dash

    我们会发现Ubuntu默认采用的是 dash

    2.2 切换sh为bash


    如果要修改默认的sh,可以采用命令

    sudo dpkg-reconfigure dash

    修改默认sh为bash

    然后选择

    修改默认sh为bash

    成功后再执行

    ll /bin/sh

    结果是: /bin/sh -> bash

    默认是修改为bash

    修改成功!

    2.3 切换sh为dash


    当然我们也可以使用

    sudo dpkg-reconfigure dash

    把sh修改回去

    3 链接


    Dash与Bash的语法区别

    展开全文
  • ubuntu默认sh为bash

    千次阅读 2018-06-03 14:23:30
    ubuntu默认sh为dash,有很多命令不能用,我就把默认sh改成了bash,方便使用:使用命令sudo dpkg-reconfigure dash然后弹出选择框,选择no,就可以把默认shell改成bash...

    ubuntu默认sh为dash,有很多命令不能用,我就把默认sh改成了bash,方便使用:

    使用命令

    sudo dpkg-reconfigure dash

    然后弹出选择框,选择no,就可以把默认shell改成bash

    展开全文
  • 修改Ubuntu默认Shell

    千次阅读 2015-09-24 14:35:27
    奇怪的错误在linux下的shell脚本中,第一行一般会指明该脚本的执行程序名,以便为该脚本拥有执行权限时可以通过脚本名直接运行。 我在控制台上一般通过 sh 命令执行shell脚本,如sh xxx.sh;所以有次我新建一个shell...

    奇怪的错误

    在linux下的shell脚本中,第一行一般会指明该脚本的执行程序名,以便为该脚本拥有执行权限时可以通过脚本名直接运行。
    我在控制台上一般通过 sh 命令执行shell脚本,如sh xxx.sh;所以有次我新建一个shell脚本时,脚本第一行写的是#!/bin/sh,如下所示:

    #!/bin/sh
    ####################################################################################
    #File Name      : xchmod.sh
    #Author         : Li Jinmiao
    #Mail           : beikejinmiao@gmail.com
    #Created Time   : 2015-08-31 09:40:32
    #Description    : 'chmod +x' for python's file and  shell script for given path
    ####################################################################################
    
    path=$1
    if [ -z "${path}" ]; then
        path=`pwd`      ##若没指定目录,则默认为当前工作目录
    fi
    
    ##判断目录存在性
    if [ ! -d ${path} ]; then
        echo "'${path}' is not exist Or '${path}' is not a directory!"
        exit 1
    fi
    
    ##判断目录操作权限
    if [ ! -x ${path} -o ! -w ${path} ]; then
        echo "You have no right to operate the directory of '$path'!"
        exit 1
    fi
    
    reg=".(py|sh)$"
    rlt=1
    for file in ${path}/*
    do 
        if [ ! -x ${file} ]; then 
            if [[ ${file} =~ $reg ]]; then
                `chmod +x ${file}` && echo "chmod +x" \"${file}\"
                rlt=$?
            fi
        fi
    done
    
    [ $rlt -eq 1 ] && echo "Nothing to do."
    echo "Done."

    执行结果如下:
    这里写图片描述
    瞬间懵逼了。
    看错误提示应该是32行的问题。
    这里写图片描述
    但32行是一个正则判断,确确实实没问题啊。
    还是Google好,一下子就找到问题所在。

    问题所在

    原来是因为ubuntu默认的shell是dash,我也只是听说过一点点而已,因为大家都用bash,我就一直用了bash。
    没想到dash和bash下shell脚本的语法有些差距,我正好给撞上了。dash和bash还有很多不同,有些命令使用也不太相同。这有篇文章介绍的不错:[转]Dash与Bash的语法区别
    把脚本第一行换成 #!/bin/bash 就没事了。或者修改系统的默认shell。

    修改Ubuntu默认shell

    有两种方式

    • ln -s
      强制把/bin/sh的软链接改到bash中: sudo ln -s /bin/bash /bin/sh
    • dpkg-reconfigure dash
      在Ubuntu中建议使用这个方法:sudo dpkg-reconfigure dash,弹出来个选择项,把“dash设为默认shell”选择no。
      下面是效果图
      这里写图片描述
    展开全文
  • ubuntu 修改默认 shell

    万次阅读 2010-10-01 12:54:00
    找到用户 ID 起始的行 user:x:1000:112:user,,,:/home/user:/bin/bash 最后一个字段为登录后的默认 Shell, /bin/bash 是程序 bash 的主程序路径。 fish 主 程序的路径通常为 /usr/bin/fish 。 /...
  • Ubuntu切换默认sh

    万次阅读 2020-05-06 14:55:15
    Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the GNU Bourne-Again Shell). 但Login Shell还是bash。原因是dash更快、更高效,而且它符合POSIX规范。Ubuntu在启动的时候会运行很多shell...
  • ubuntu gnome shell 主题安装

    万次阅读 2012-11-07 12:59:42
    安装了gnome shell后对默认的主题不怎么满意,不喜欢带圆角的gnome shell主题,果断换 安装了gnome tweak tools之后,发现shell theme不可选,显示一个黄色的三角图标。 搜了一下,解决办法是进下面的网站: ...
  • ubuntu dash shell 改为 bash

    千次阅读 2014-06-30 13:45:59
    ubuntu dash shell 下国
  • Linux Shell中的延时函数 sleep

    万次阅读 2014-02-27 15:47:13
    在 linux shell 脚本中经常需要做一些延时处理。 所以经常要用到 sleep 或 usleep 函数。 下面来说一下 sleep 和 usleep 的区别: sleep : 默认以秒为单位。 usleep : 默认以微秒为单位。 1s = 1000ms = 10
  • 查看linux系统的默认shell

    万次阅读 2016-12-31 11:49:25
    方式一: 使用命令行:echo $SHELL ... 由此可知系统默认shell是bash 方式二: 通过查看系统创建用户时使用的shell来查看: [root@localhost Desktop]# grep root /etc/passwd root:x:0:0:r
  • ubuntu修改默认的bash为zsh

    千次阅读 2018-09-11 00:58:01
    显示存在的bash cat /etc/shells ...取代bash,设为默认shell sudo usermod -s /bin/zsh username 或者 chsh -s /bin/zsh 或者 chsh -s `which zsh` 如果要切换回去bash chsh -s /bin/bash 当然你实在不愿...
  • ubuntu 终端默认的背景色RGB

    万次阅读 2016-05-23 11:32:18
    ubuntu 终端默认的背景色RGB为44,0,30
  • ubuntu 14.04下配置terminal为zsh默认环境

    万次阅读 多人点赞 2017-04-27 16:02:17
    经常在Ubuntu下工作,不可避免地常常使用terminal终端。虽然这个默认终端已经很简洁方便了,但是还是有诸多的不变,比如分屏,快速复制粘贴等等….所以就像着在不安装其它终端的前提下,配置terminal环境,然后 就...
  • Ubuntu修改默认sh为bash

    千次阅读 2019-05-28 09:17:11
    现在的Ubuntu版本默认sh都是使用的dash,用起来实在是别扭,所以找了一下,发现可以通过设置,修改为原来的bash。 首先查看系统的/bin/sh $ ls -al /bin/sh /bin/sh -> dash 切换sh为bash $ sudo dpkg-...
  • Ubuntu 下mongodb的shell常用命令

    万次阅读 2017-12-29 22:14:28
    输入mongo命令,进入shell交互界面mongoshow dbs # 显示数据库列表 show collections #显示所有的集合 show users #显示所有的用户名 use 数据库的名称 #切换数据库 创建数据库mongodb中没有创建数据库的命令。如果...
  • 系统:ubuntu 9.04 一linux教材中说:“在登陆后,键入 chsh 并按可以改变默认 shell。根据系统的不同,您可能被要求输入您登陆的密码与将要使用的 shell 的名字。请输入将要使用的 shell 的完整路径,比如输入 /...
  • Win10 Terminal更换默认Shell

    千次阅读 2019-09-27 10:09:18
    win10的terminal很好用, 就是每次打开的时候模式是power shell, 想换成ubuntu 1804得手动切换或者使用快捷键, 如果一打开就是ubuntu 1804就方便多了, 只需三步就能改变terminal的默认shell 第一步, 打开"设置" 第二...
  • 修改 ubuntu dash shell为bash shell

    千次阅读 2010-12-10 09:28:00
    ubuntu edgy是第一个将dash作为默认shell来发行的版本,这似乎是受了debian的影响。wiki 里面有官方的解释,https://wiki.ubuntu.com/DashAsBinSh,主要原因是dash更小,运行更快,还与POSIX兼容。 但...
  • ubuntu 添加管理员账号

    万次阅读 2012-11-20 10:52:18
    Ubuntu 默认只有安装时候的那个账号是系统管理员账号,也不会给出root用户权限。 在管理员账号下,用passwd命令给root一个密码,就可以使用root了。 但是,使用useradd时候,如果不加参数,添加的为普通账号。 ...
  • 主要目的:创建新用户组,并在组中创建用户,但是使用这些账户登录时候遇到了,无法使用 sudo命令,无法使用 shell相关,类似。补全,高亮等问题。 首先创建命令: groupadd 2001 useradd -g 2001 zwb 修改zwb...
1 2 3 4 5 ... 20
收藏数 56,070
精华内容 22,428
关键字:

ubuntu 默认的shell