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。
      下面是效果图
      这里写图片描述
    展开全文
  • 平时写的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 默认shell修改

    2019-08-08 09:53:16
    1. 支持的shell # /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash /usr/bin/screen ------------------------------------------------------------------------------------ 2. cat /...

    1. 支持的shell

    # /etc/shells: valid login shells
    /bin/sh
    /bin/bash
    /bin/rbash
    /bin/dash
    /usr/bin/screen

    ------------------------------------------------------------------------------------

    2. cat /etc/passwd

      1 root:x:0:0:root:/root:/bin/bash                                                                 
      2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
      3 bin:x:2:2:bin:/bin:/usr/sbin/nologin
      4 sys:x:3:3:sys:/dev:/usr/sbin/nologin
      5 sync:x:4:65534:sync:/bin:/bin/sync
    ......

     55 river:x:1009:1009::river:/bin/bash

    段意义:

    账户:密码:UID:GID:描述:home目录:默认shell

    历史原因, 该文件不存放具体密码了, 故填写x.

    具体密码在/etc/shadow文件中

    --------------------------------------------------------------------------------

    3. cat /etc/shadow

    root:$6$uM96FYmf$ZJoHpKWyPCon1G9TpHOGnhbv4hmPvnWCtkWT/FkMpz1E.xWRrU1w7vOTs2zaP2B5EICEo4c6P8m2yhhcfpS3n.:17956:0:99999:7:::

    river:$6$sm7XYjr5$8cKFT0WAPqbDnez6vksaBSOgWsr8Ke8K2bjfbeCa5CDik.E6WhEkApla7Z/EUR2FmnsnGISOMwm3a
    muRCbINO1:18102:0:99999:7:::

    账户密码等相关信息.

    加密方式如下:

    $6$ - SHA-512;

    $1$ - MD5;  

    $2$ - Blowfish;

    $5$ - SHA-256;

    -----------------------------------------------------------------------------------

    4. 如何更改默认shell

    sudo usermod -s /bin/bash river

     

    2019.08.08

     

    展开全文
  • 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

    万次阅读 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 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修改默认的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为bash

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

    千次阅读 2019-06-24 13:01:30
    一、查看所有的shell 使用:命令查看 cat /etc/shells 此处我已近安装了会显示zsh,如果你没有安装,会没有显示。 二、安装zsh zsh的安装:打开终端(快捷键Ctrl+shit+T) sudo apt-get install git //先安装git ...
  • UBUNTU更改shell

    千次阅读 2013-02-02 11:08:07
    §安装csh。 Unbuntu系统没有csh,默认为bash,因此需先安装csh。 §首先,以root身份登录,打开终端:  sudo apt-get install csh ... 提示:正在更改root的SHELL  请输入新值,或直接敲回车键以使用
  • 查看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
  • linux 修改用户默认shell(转)

    万次阅读 2015-04-23 11:24:47
    因为使用 useradd 添加用户时, 默认配给用户的是最原始的 sh 而不是常用的 bash, 所以很多命令都不能使用, 下面提供相关的修改方法.修改用户的 Shell如果你没有管理员权限, 那么你只能修改自己的 Shell, 输入 chsh ...
  • 修改系统默认shell为bash

    千次阅读 2014-05-15 08:59:50
     从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash ...ubuntu edgy是第一个将dash作为默认shell来发行的版本,这似乎是受了debian的影响。wiki 里面有官方的解释,https://wiki.ubuntu.com/Das
  • ubuntu 添加管理员账号

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

    千次阅读 2011-12-18 23:53:41
    1、输入一个系统不认识的...comein61@ubuntu:~$ ig -bash: ig: command not found comein61@ubuntu:~$ 2、#echo $0 (适用:sh/ksh)  comein61@ubuntu:~$ echo $0 -bash comein61@ubuntu:~$ 3、#echo
  • Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,...
  • Ubuntu 设置下载路径

    千次阅读 2017-11-14 10:25:54
    Ubuntu的中文环境中,默认的桌面文件夹是“$HOME/桌面”,默认的下载文件夹是“$HOME/下载”,其他文件夹也是类似的 包含中文的文件夹名,使得我们在使用Shell操作的时候,很不方便。因而最好是文件夹的名称中不...
  • Ubuntu-修改用户的默认目录

    千次阅读 2017-06-12 01:51:32
    个人技术博客地址:http://songmingyao.com/ Ubuntu-修改用户的默认目录
  • Ubuntu里设置python默认版本为python3

    千次阅读 2018-05-06 17:03:49
    Ubuntu默认python为2.7,如何修改为python3版本呢? 可以利用alternatives机制更改py3为默认shell里执行以下命令即可: sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 ...
1 2 3 4 5 ... 20
收藏数 23,238
精华内容 9,295
关键字:

ubuntu 改变默认shell