Ubuntu切换默认sh为bash或者dash

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

我们会发现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修改回去

3 链接



Dash与Bash的语法区别

原文地址:https://www.cnblogs.com/wwlww/p/8410174.html

时间: 2024-08-25 00:34:09

Ubuntu切换默认sh为bash或者dash的相关文章

关于sh,bash和dash

1 debian下shell脚本的执行过程 当sh xxx.sh,或则./xxx.sh时,默认是sh解释器来执行这个shell脚本的,但是sh是到bash的软连接,所以本质上还是bash来解析这shell脚本. 2 debian下使用bash而不是用dash debian下默认是dash,需要sudo  dpkg-reconfigure dash,来切换到bash.

Ubuntu下默认sh脚本 双击运行

ctrl-alt-t呼出控制台. 输入dconf-editor,无需sudo,表示为当前用户配置. (现在ubuntu 14.04包库已经提供了dconf-editor,如果没有提供可用apt-get install dconf-editor 命令来获得) 出来一个窗口,找到这个键值路径 org.gnome.nautilus.preferences,旗下有executable-text-activation这个键值,默认是display,也就是开默认文本编辑器.改为ask. 如果想改回去就点右下

ubuntu上的sh链接到dash

最近同事写的shell脚本在ubuntu上跑时总走不对if的分支.发现ubuntu上的shell默认是bash,但sh对应的是dash,这个需要注意. 1 ubuntu上sh连到dash: [email protected]:~$ uname -a Linux hostname1 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux [email 

Ubuntu下shell脚本运行异常:bash和dash的区别

Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e "\nTest\n"是不会输出"-e"的. 我就在想是什么原因,后来终于发现是Ubuntu下sh默认指向dash. echo $SHELL

bash 与 dash

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

关于Ubuntu修改默认运行级别

第一种方法:(内核级别的) Sudo vi /etc/default/grub 修改GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 为:GRUB_CMDLINE_LINUX_DEFAULT=” text” 然后运行下sudo update-grub2就可了 第二种方法:(基于upstart的”正统”方法) ubuntu的upstart的体系下,/etc/init.d里面基本上都是连接到/lib/init/upstart-job的软连接,所以,对 initscr

更改Ubuntu下默认Python版本

更改Ubuntu下默认Python版本 首先查看系统内有哪些版本的Python ls /usr/bin/python 查看当前python版本 python --version 基于用户修改默认版本 想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 alias(别名) 即可.打开该用户的 ~/.bashrc文件,添加新的别名信息来修改默认使用的 Python 版本. alias python='/usr/bin/python3.6' 一旦完成以上操作,重新登录或者

linux里source、sh、bash、./有什么区别(转)

add by zhj: 主要不同是,source是在当前shell中执行脚本,而sh, bash, ./是在当前shell的child shell中执行脚本 原文:http://www.cnblogs.com/pcat/p/5467188.html 在linux里,source.sh.bash../都可以执行shell script文件,那它们有什么不同吗? ----------- 1.source source a.sh 在当前shell内去读取.执行a.sh,而a.sh不需要有"执行权限&q

Ubuntu切换root用户权限

其实方法很简单,就是需要选对自己使用的linux系统,不同分支的系统切换root的方法不一定一样. Ubuntu切换root的方法很简单,首先一档钱管理员命令执行: sudo passwd root 然后直接执行密码修改,输入两次相同的密码即可. 然后执行命令: su root 输入密码一次就切换到了root权限. so easy~