知識社群登入
位置: 艾鍗學院 Blog > 專業論壇 > 討論
console下無法顯示命令提示字元
1樓
想請問老師,當進入file system後,console下沒有出現命令提示字元,不知道問題原因出在哪

感謝

rcS檔內容:
#!/bin/sh

/bin/mount -a

/etc/init.d/S00devs

#for initscript in /etc/init.d/S[0-9][0-9]*
#do
#       if [ -x $initscript ] ;
#       then
#               echo "[RCS]: $initscript"
#               $initscript
#       fi
#done

S00devs內容:
#!/bin/sh

mknod /dev/ttyAMA0 c 204 64
mknod /dev/ttyAMA1 c 204 65

mknod /dev/ttyS000 c 204 64

inittab內容:
::sysinit:/etc/init.d/rcS
#::respawn:-/bin/sh
::respawn:/sbin/getty -L ttyS000 115200 vt100 -n root -I "Auto login as root ..."
#tty2::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a


2樓
 
 這行不要註解, 
 #tty2::askfirst:-/bin/sh

 另外環境變數, PS1, PS2 可用來設定prompt 
3樓
感謝老師

我把inittab中#::respawn:-/bin/sh註解拿掉,命令提示字符就出現了

可是當我下任何命令,都會出下面錯誤訊息

sh: argument expected

不知道原因何在

4樓




 /bin/sh  --> shell 有無問題? 
 
 要真得有shell存在, 是用busybox的ash, 還是bash shell ? 
 
 check 一下 shell 放在那, 

sh: argument expected " 或是直接找這段code 看,  比較快
 

 
5樓
發現不管下任何command,系統都會去跑/etc/profile

然後出現錯誤sh: argument expected "

原因仍然在摸索中..
6樓
trace code後,發現busybox會去找usr/sh,但SHELL環境變數已經指到/bin/sh

是否因為不是以root身分登入系統??

7樓
終於有進展了,不過還是有問題想請教老師

trace busybox code後,建立/proc/sys/exe檔,並把sh參數前的"-"拿掉

系統就可以順利執行sh檔了

但目前console溝通似乎有問題,下的command跟busybox收到的不一樣,如下圖:

Jan  1 00:00:02 [668]: root login on 'ttyAMA0'
^[[1;32mWelcome to HiLinux.^[[0;39m
[\u@\h \W]\$ls
Sean Found /usr/local/bin/l
Sean Found /usr/local/sbin/l
Sean Found /usr/bin/l
Sean Found /usr/sbin/l
Sean Found /bin/l
Sean Found /sbin/l
-sh: l: not found

當我下"ls",code trace出來指收到"l",調整console鮑率也沒用

紅色反白照理說因該是ANSI的顏色代碼,可是系統好像也無法辨識

不知原因何在??

感謝~