第一次寫博客,加點廢話,學習linux有一段時間,隨着學習的深入發現自己學的不夠系統,特別是遇到一些莫名的問題時,我只有各種百度,運氣好時能解決掉,差時到現在還沒解決,就算解決了還是不清楚是怎么解決的,為此打算從最接地氣的shell學起,就在圖書館借了本《Shell從入門到精通》,然后就開始研究了起來,但是學着學着又忘記了一些,然后又的查書,書本有時不太方便,所以就有了這篇博客(自嘲下,或許有一天我的博客可以出本成書);此文可以隨便轉載但必須加入連接出處
- 1. 查看系統默認shell
輸入指令:
[root@RHEL tmp]# echo $SHELL
執行結果:
[root@RHEL tmp]# echo $SHELL /bin/bash
- 2. 部分linux版本中的 sh 本質是 bash
輸入指令:
[root@RHEL tmp]# ll /bin/sh
執行結果:
[root@RHEL tmp]# ll /bin/sh lrwxrwxrwx. 1 root root 4 Apr 27 2015 /bin/sh -> bash
- 3. 查看shell版本
輸入指令
[root@RHEL tmp]# echo $BASH_VERSION
執行結果
[root@RHEL tmp]# echo $BASH_VERSION 4.1.2(1)-release
- 4. 安裝最新版本bash
4.1. 下載bash源代碼
[root@RHEL tmp]# wget http://ftp.gnu.org/gnu/bash/bash-4.3.30.tar.gz4.2. 解壓源代碼
[root@RHEL tmp]# tar xvzf bash-4.3.30.tar.gz4.3. 配置編譯環境
[root@RHEL tmp]# cd bash-4.3.30 [root@RHEL bash-4.3.30]# ./configure4.4. 測試編譯,判斷是否成功
oot@RHEL bash-4.3.30]# make4.5. 編譯bash
oot@RHEL bash-4.3.30]# make install在默認情況下,bash將被安裝到/usr/local/bin/ 下面
4.6. 查看是否安裝成功,首先切換到新版本的bash的安裝目錄
[root@RHEL bash-4.3.30]# cd /usr/local/bin/ [root@RHEL bin]# ll total 39148 -rwxr-xr-x 1 root root 2529633 Dec 12 15:57 bash -r-xr-xr-x 1 root root 6806 Dec 12 15:57 bashbug
4.7. 切換到新版本的bash,查看當前版本[root@RHEL bin]# ./bash [root@RHEL bin]# echo $BASH_VERSION 4.3.30(3)-release
4.8. 使用新版本shell
從上面的命令得知,當前的bash的版本為4.3.30.這表示新版本的bash已經編譯安裝成功。但是目前用戶還不能使用這個新的shell。因為出於安全考慮,用戶只能使用/etc/shells文件列出的shell,下面命令顯示該文件的內容:
[root@RHEL bin]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh
從上面輸出結果可知,用戶可以使用5個shell,而前面2個實質都是bash。
為了使用新版本shell,我們需要添加路徑配置,配置方法有多鍾,此處提供一種用vim修改/etc/shells,修改信息如下:
/bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /usr/local/bin/bash