歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Debian上把/bin/sh指向dash

Debian上把/bin/sh指向dash

日期:2017/2/28 16:22:04   编辑:Linux教程

  GNU/Linux 操作系統中的 /bin/sh 是 bash(Bourne-Again Shell)的符號鏈接,但鑒於 bash 過於復雜,有人把 ash 從 NetBSD 移植到 Linux 並更名為 dash(Debian Almquist Shell),並建議將 /bin/sh 指向它,以獲得更快的腳本執行速度。Ubuntu 號稱自從他們在 6.10 版裡這樣做了以後,系統啟動速度有了明顯的提升。Debian 計劃在下一個發行版(代號 lenny)中也將 dash 作為默認的 /bin/sh。

  按照慣例(以及很多寫腳本的規范),標記為“#!/bin/sh”的腳本不應使用任何 POSIX 沒有規定的特性(使用 bash 特性的腳本要使用“#!/bin/bash”),所以在理論上,這樣應該沒有任何副作用。但是現實中,Linux 下的很多(不規范的)腳本有所謂 bashism,卻在文件頭標記為“#!/bin/sh”。有人把腳本失敗歸咎於 Ubuntu 而不是自己的腳本,這是不公平的。

  剛才在 Debian (testing)下嘗試用 dash 作為 /bin/sh,並重啟了一下系統,好像快了那麼一點點(心理作用?)不過我想它節約的那點時間也許比掛載我的兩個 reiserfs 分區用的時間還要少……

  遇到的問題:自己的兩個腳本掛了,把“#!/bin/sh”改為“#!/bin/bash”;自己的一個帶 bashism 的 Makefile 掛了,加上“SHELL=/bin/bash”。

  在 Debian 下,先安裝軟件包 dash,然後 dpkg-reconfigure dash,回答 Yes 即可。

  在 Ubuntu 下這已經是默認,如果因為某些原因需要改回到 bash,也是用 dpkg-reconfigure dash。

Copyright © Linux教程網 All Rights Reserved