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?

È stato utile?

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

  1. chiedi all'amministratore di sistema di installare bash e aggiornare /etc/shells e aggiornare la tua shell di accesso
  2. vedere se il chsh è installato un programma che ti consentirà di modificare la tua shell di accesso
  3. chiedi all'amministratore di sistema di cambiare la tua shell di login in /usr/bin/ksh
  4. modifica il tuo ~/.profile:

    if type [[ >/dev/null; then
        : # this is ksh
    else
        # not ksh
        export SHELL; SHELL=/usr/bin/ksh
        exec $SHELL
    fi
    
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top