ubantu默认为shell_ubuntu 修改默认shell为sh - CSDN
精华内容
参与话题
  • 修改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切换默认shbash或者dash

    千次阅读 2016-11-14 16:14:57
    Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the GNUBourne-Again Shell). 但Login Shell还是bash. 原因是dash更快、更高效,而且它符合POSIX规范。Ubuntu在启动的时候会运行很多shell...
    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
    然后选择否
    成功后再执行
    ll /bin/sh
    结果是:/bin/sh -> bash
    修改成功!
     
    2.3、切换sh为dash
    当然我们也可以使用
    sudo dpkg-reconfigure dash
    把sh修改回去。
    展开全文
  • Ubuntu修改默认shbash

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

    现在的Ubuntu版本默认sh都是使用的dash,用起来实在是别扭,所以找了一下,发现可以通过设置,修改为原来的bash。

    首先查看系统的/bin/sh

    $ ls -al /bin/sh
    /bin/sh -> dash
    

    切换sh为bash

    $ sudo dpkg-reconfigure dash
    

    查看切换后的结果

    $ ls -al /bin/sh
    /bin/sh -> bash
    
    展开全文
  • ubuntu默认shbash

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

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

    使用命令

    sudo dpkg-reconfigure dash

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

    展开全文
  • 平时写的Shell都是bash,在Ubuntu上写Shell有些不习惯。因为buntu6.10已将先前默认的bashshell更换为了dash。其表现是/bin/sh链接到了/bin/dash而不是传统的/bin/bash。 $ cd /bin $ ll sh -> dash* 在...
  • 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 dash shell bash

    千次阅读 2014-06-30 13:45:59
    ubuntu dash shell 下国
  • ubuntu gnome shell 主题安装

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

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

    千次阅读 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 14.04下配置terminalzsh默认环境

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

    万次阅读 2016-05-23 11:32:18
    ubuntu 终端默认的背景色RGB44,0,30
  • Ubuntu中如何双击后运行shell脚本

    万次阅读 2018-03-06 15:03:19
    但是在Ubuntu下面却不是这样,或者我应该更确切地说是在Files(Nautilus)中。你可能会疯狂地大叫“运行文件,运行文件”,但是文件没有运行而是用Gedit打开了我知道你也许会说文件有可执行权限么?我会说是的。脚本...
  • 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 添加管理员账号

    万次阅读 2012-11-20 10:52:18
    Ubuntu 默认只有安装时候的那个账号是系统管理员账号,也不会给出root用户权限。 在管理员账号下,用passwd命令给root一个密码,就可以使用root了。 但是,使用useradd时候,如果不加参数,添加的普通账号。 ...
  • 修改 ubuntu dash shell为bash shell

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

    千次阅读 2019-04-27 16:05:47
    当前linux系统可用的shell都记录在/etc/shells文件中。 cat /etc/shells当前linux系统可用的shell: dejing@Ubuntu:~$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/...
1 2 3 4 5 ... 20
收藏数 56,032
精华内容 22,412
关键字:

ubantu默认为shell