Solaris 有很多方面都用這和以前不大一樣,下面講Solaris中Shell的一些問題和解決方案。
Solaris的預設Shell是sh,即命令列提示符為(root使用者):#
而在用Linux命令列的提示符中既有使用者名稱,還有主機名稱以及當前路徑的名稱。這樣可以給人一目瞭然的感覺。不過Linux下一般預設Shell是bash,而不是sh。如果只想在當前的使用中切換Shell的話,方法很簡單,可以在命令列中輸入:
$ bash
bash-3.00$ csh
david% sh
$
如果要永久性的改變預設的shell,則需要修改/etc/passwd檔案。開啟passwd,第一行記錄的是root使用者的相關資訊,該行內容為:
root:x:0:0:Super-User:/:/sbin/sh
其中,最後一個冒號後面即為root使用者的預設shell,我們將其修改為bash的路徑:
root:x:0:0:Super-User:/:/usr/bin/bash
當然,我們也可以使用stty 命來修改, 具體參考blog:
stty 命令
http://blog.csdn.net/tianlesoftware/archive/2010/03/15/5381984.aspx
Shell 和 Shell Script 的說明:
DOS 的 COMMAND.COM 就是一種 shell,負責解譯你所下的指令並執行它。同樣
的,UNIX 上也有這個,它是在你成功 login 以後由系統自動啟動的。
UNIX 上有不少種 shell,sh, csh, ksh, tcsh, bash 等,一般都是用csh,login shell 可用 ypchsh 命令改變,但你必須Crowdsourced Security Testing道你要換的新殼子在那個目錄下。tcsh 有類似 DOSKEY 的功能。
DOS 中有所謂的批次檔,用以方便處理一些例行工作。UNIX 也有批次處理,它就叫做 Shell Script,而且比 DOS 的批次檔強很多,寫法幾乎是一個高階語言。Shell Script 是個文字檔,但其地位和其它的命令或可執行檔是完全相同的,只要用 chmod 指令將 Shell Script 存取權設為可執行即可。$home 目錄下的 .login 檔就是一個典型的 Shell Script,類似 DOS 的autoexec.bat。
儲存檔案passwd,退出。
這樣,就可以實現用Tab鍵補全命令列的輸入和上下箭頭實現輸入命令的曆史回放,而sh卻沒有這樣的功能。但是,僅僅這一點修改,並不能實現命令列提示符中出現象Linux提示符中既有使用者名稱,又有主機名稱和當前路徑名。
需要另外編輯檔案。即在$HOME下建立檔案.profile,如果檔案存在的話就在裡面新增內容。由於是root使用者,所以$HOME的路徑為根目錄/。在根目錄下建立檔案.profile,並在其中添加如下內容:
PS1='[/u@/h:$PWD]#'
export PS1
儲存退出該檔案,並重啟系統。進入系統後,開啟一個終端,則命令列提示符為:
[root@solaris:/]#
執行命令:
[root@solaris:/]#echo $SHELL //查看系統預設的shell
/usr/bin/bash
執行命令:
[root@solaris:/]#cd home
則命令列變為:
[root@solaris:/home]#
其中,root是指使用者名稱,solaris是主機名稱,/home為當前路徑。
當然,如果習慣使用csh,可以先將shell切換至csh。然後可以輸入命令:
#set filec
這樣,可以在csh下實現命令列補全。不過,補全輸入使用的不是Tab鍵,而是ESC鍵
我們在編寫shell 指令碼的時候, 必須在第一行加上“#!/bin/ksh”。這個就是指出要用哪個程式來執行指令碼中的行。
註: 整理自網路