ubuntu 设置默认shell_ubuntu设置默认shell - 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 修改默认 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 。 /...

    如果拥有 root 权限,可以直接修改 /etc/passwd 文件。找到用户 ID 起始的行
    user:x:1000:112:user,,,:/home/user:/bin/bash
    最后一个字段为登录后的默认 Shell, /bin/bash 是程序 bash 的主程序路径。 fish 主
    程序的路径通常为 /usr/bin/fish 。
    /etc/shells 中列出系统中所有可用 Shell( /bin/false 代表禁用 Shell)
    也可以使用如下命令更改默认 Shell
    chsh -s /usr/bin/fish
    (需要输入密码)
    Tip:可以使用 whereis xxx 命令,来查找 xxx 程序的安装位置.

    展开全文
  • 平时写的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

    千次阅读 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切换默认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在启动的时候会运行...
  • 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修改默认的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切换默认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 终端默认的背景色RGB

    万次阅读 2016-05-23 11:32:18
    ubuntu 终端默认的背景色RGB为44,0,30
  • ubuntu dash shell 改为 bash

    千次阅读 2014-06-30 13:45:59
    ubuntu dash shell 下国
  • Win10 Terminal更换默认Shell

    千次阅读 2019-09-27 10:09:18
    win10的terminal很好用, 就是每次打开的时候模式是power shell, 想换成ubuntu 1804得手动切换或者使用快捷键, 如果一打开就是ubuntu 1804就方便多了, 只需三步就能改变terminal的默认shell 第一步, 打开"设置" 第二...
  • 系统:ubuntu 9.04 一linux教材中说:“在登陆后,键入 chsh 并按可以改变默认 shell。根据系统的不同,您可能被要求输入您登陆的密码与将要使用的 shell 的名字。请输入将要使用的 shell 的完整路径,比如输入 /...
  • Ubuntu中如何双击后运行shell脚本

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

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

    万次阅读 2014-02-27 15:47:13
    在 linux shell 脚本中经常需要做一些延时处理。 所以经常要用到 sleep 或 usleep 函数。 下面来说一下 sleep 和 usleep 的区别: sleep : 默认以秒为单位。 usleep : 默认以微秒为单位。 1s = 1000ms = 10
  • 主要目的:创建新用户组,并在组中创建用户,但是使用这些账户登录时候遇到了,无法使用 sudo命令,无法使用 shell相关,类似。补全,高亮等问题。 首先创建命令: groupadd 2001 useradd -g 2001 zwb 修改zwb...
  • -r 表示创建系统用户 -m表示创建用户home目录 -s指定登录shell 可以使用 passwd user1 设置用户密码 修改用户的 Shell如果你没有管理员权限, 那么你只能修改自己的 Shell, 输入 chsh 命令.$ chsh 这时你会获得...
  • Ubuntu 下mongodb的shell常用命令

    万次阅读 2017-12-29 22:14:28
    输入mongo命令,进入shell交互界面mongoshow dbs # 显示数据库列表 show collections #显示所有的集合 show users #显示所有的用户名 use 数据库的名称 #切换数据库 创建数据库mongodb中没有创建数据库的命令。如果...
1 2 3 4 5 ... 20
收藏数 56,009
精华内容 22,403
关键字:

ubuntu 设置默认shell