Come faccio a far funzionare il file .profile sulla macchina Solaris?
Domanda
Questo mi ha frustrato per due giorni e sembra che dovrebbe essere una cosa molto semplice.Mi è stato appena creato un account su una macchina Solaris.Sun OS 5.10 credo.
L'impostazione predefinita è Bourne Shell che non voglio.Ho fatto un cat /etc/shells
che risulta in:
/bin/sh
/sbin/sh
/bin/ksh
/usr/bin/ksh
Sembra che il guscio Korn sia tutto ciò che posso usare.
Ho creato un .profile
file e ha scritto:
export SHELL=/usr/bin/ksh
Poi ho fatto un env
e sembra /bin/sh
è ancora elencato come la mia shell.Mi sono disconnesso, mi sono riconnesso e ora ottengo:
-sh: SHELL=/usr/bin/ksh: is not an identifier
Ho provato ad aggiungere #!/usr/bin/ksh
all'inizio del .profile
.Non ha funzionato.Ho provato ad aggiungere un punto e virgola alla fine del file export
.Non ha funzionato.Ho provato: SHELL=/bin/ksh
e neanche quello ha funzionato.
Il mio obiettivo finale è portare questo ambiente al punto in cui posso operare in modo produttivo.Sono abituato a BASH dove ho completamenti con tab, freccia su per la cronologia, ecc. E questa shell Bourne non ha nulla di tutto ciò e mi frustra a non finire.
So che deve essere semplice, ma tutte le mie ricerche su Google non servono a nulla.Qualcuno può aiutarmi?
Soluzione
/etc/shells
non è un file Solaris standard, probabilmente non dovresti fare affidamento sui suoi contenuti.
D'altra parte, bash
fa parte dell'installazione predefinita Solaris 10.Dovrebbe già essere presente come /bin/bash
(/usr/bin/bash
in realtà ma /bin
è un collegamento simbolico a /usr/bin
comunque).
Se bash
non è presente, è possibile chiedere all'amministratore di installare il pacchetto SUNWbash
dalla directory Solaris_10/Product
nel supporto di installazione.
Quindi, per aggiornare la shell, il modo regolare è avere la shell definita per il tuo account aggiornato.Se è locale, questo è l'ultimo campo nella tua voce /etc/passwd
.
In alternativa, potresti usare quell'hack alla fine del tuo .profile:
[ ! "$BASH_VERSION" -a -x /bin/bash ] && SHELL=/bin/bash exec /bin/bash
. Altri suggerimenti
In ordine decrescente di preferenza
- chiedi all'amministratore di sistema di installare bash e aggiornare /etc/shells e aggiornare la tua shell di accesso
- vedere se il
chsh
è installato un programma che ti consentirà di modificare la tua shell di accesso - chiedi all'amministratore di sistema di cambiare la tua shell di login in /usr/bin/ksh
modifica il tuo ~/.profile:
if type [[ >/dev/null; then : # this is ksh else # not ksh export SHELL; SHELL=/usr/bin/ksh exec $SHELL fi