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 命令改變,但你必須先知道你要換的新殼子在那個目錄下。tcsh 有類似 DOSKEY 的功能。
DOS 中有所謂的批次檔,用以方便處理一些例行工作。UNIX 也有批次處理,它就叫做 Shell Script,而且比 DOS 的批次檔強很多,寫法幾乎是一個高階語言。Shell Script 是個文字檔,但其地位和其它的命令或可執行檔是完全相同的,只要用 chmod 指令將 Shell Script 存取權設為可執行即可。$home 目錄下的 .login 檔就是一個典型的 Shell Script,類似 DOS 的autoexec.bat。
保存文件passwd,退出。
這樣,就可以實現用Tab鍵補全命令行的輸入和上下箭頭實現輸入命令的歷史回放,而sh卻沒有這樣的功能。但是,僅僅這一點修改,並不能實現命令行提示符中出現象Linux提示符中既有用戶名,又有主機名和當前路徑名。
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/unix/
需要另外編輯文件。即在$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”。這個就是指出要用哪個程序來執行腳本中的行。