Domanda

Non mi piace ridigitare pesce ogni volta che avvio terminale. Per impostazione predefinita, desidero fish . Come posso impostare fish shell come shell predefinita su un Mac?

È stato utile?

Soluzione

Questi sono applicabili a MacOS Sierra 10.12.5 (16F73) e probabilmente ad altre versioni recenti e imminenti di MacOS.

  1. chsh non è sufficiente per cambiare la shell predefinita. Assicurati di premere Comando + , mentre il tuo terminale è aperto e cambia l'opzione "Apri shell con" in "Shell di accesso predefinita".

  2. In caso di bash, assicurati di eseguire echo $ BASH_VERSION per confermare che stai eseguendo la versione prevista di bash. bash --version non fornisce informazioni corrette.

Altri suggerimenti

1. sudo nano / etc / shells inserisci qui la descrizione dell'immagine

2. aggiungi / usr / local / bin / fish al tuo elenco di shell inserisci qui la descrizione dell'immagine

3. chsh -s / usr / local / bin / fish

Puoi utilizzare chsh per cambiare la shell di un utente.

Esegui il seguente codice, ad esempio, per cambiare la tua shell in Zsh

chsh -s /bin/zsh

Come descritto nella manpage, e da Lorin, se la shell non è nota al sistema operativo, è necessario aggiungerla alla sua lista conosciuta: / etc / shells .

Dal terminale:

  1. Aggiungi Fish a / etc / shells , che richiederà una password amministrativa:

    sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. Imposta Fish come shell predefinita con chsh :

    chsh -s /usr/local/bin/fish
    

Dalle Preferenze di Sistema:

  1. Utente e gruppi & # 8594; ctrl-clic su Utente corrente & # 8594; Opzioni avanzate ...

  2. Cambia la shell di accesso in /usr/local/bin/fish

    login shell

  3. Premi OK, esci e accedi di nuovo

Ecco un altro modo per farlo:

Supponendo che tu l'abbia installato con MacPorts, cosa che puoi fare facendo:

sudo port install fish

La tua shell si troverà in / opt / local / bin / fish .

Devi dire a OSX che questa è una shell valida. Per fare ciò, aggiungi questo percorso alla fine del file / etc / shells .

Una volta fatto questo, puoi cambiare la shell andando in Preferenze di Sistema - > Account. Fai clic su Blocca per consentire le modifiche. Fai clic con il pulsante destro del mouse sull'account e scegli " Opzioni avanzate ... " ;. Nella " Shell di accesso " campo, aggiungi il percorso per pescare.

L'unica cosa che ha funzionato per me è stata una combinazione di tutti questi metodi.

  1. Per prima cosa ho dovuto aggiungere il pesce al file / etc / shells

  2. Quindi ho eseguito chsh -s / usr / local / bin / fish

  3. Alla fine, ho digitato Comando + , e ho aggiunto / usr / local / bin / fish al percorso predefinito lì

Solo dopo aver fatto tutte e tre le cose i pesci hanno iniziato a spuntare come predefinito per le nuove finestre del terminale.

Su macOS Mojave ho dovuto fare quanto segue (usando zsh come esempio):

brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
  1. Apri il tuo terminale e premi comando + , (virgola). Questo aprirà una finestra delle preferenze.
  2. La prima scheda è "Generale".
  3. Trova l'impostazione 'Apri shell con' e scegli la seconda opzione che richiede il percorso completo della shell.
  4. Incolla il link al tuo comando fish, che generalmente è / usr / local / bin / fish .

Sto usando macOS Sierra.

il programma chsh ti permetterà di cambiare la shell predefinita. Vorrà il percorso completo dell'eseguibile, quindi se la tua shell è fish , ti chiederà di fornire l'output fornito quando digiti quale pesce .

Vedrai una riga che inizia con " Shell: " ;. Se non l'hai mai modificato, molto probabilmente dice " Shell: / bin / bash " ;. Sostituisci quel percorso / bin / bash con il percorso della shell desiderata.

Quando sei nel terminale, apri le preferenze del terminale usando Comando + , .

Nella scheda Impostazioni, selezionare uno dei temi e scegliere la scheda shell sulla destra.

Puoi impostare il comando di avvio automatico fish .

heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
 > cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >

basta cambiare quel valore (con il comando write in dscl ).

Come ottenere l'ultima versione di bash su macOS moderno (testato su Mojave).

brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)

Quindi sei pronto per ottenere il completamento della scheda stile vim che è disponibile solo su bash > = 4 (versione corrente in brew è 5.0.2

# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete

# Display a list of the matching files
bind "set show-all-if-ambiguous on"

# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"

Nel caso in cui tu abbia problemi con gli altri modi, hai lavorato su Mac Mojave ma in genere dovrebbe funzionare.

which fish

aggiungi il percorso di output a " Preferenze di Sistema > Utenti e amp; Gruppi > tasto destro del mouse utente, Opzioni avanzate " Incolla il risultato dal quale in " Shell di accesso: "

Questo lavoro per me su una nuova installazione di mac osx (sierra):

  1. Definisce l'utente corrente come proprietario delle shell
sudo chown $(whoami) /etc/shells
  1. Aggiungi Fish a / etc / shells
sudo echo /usr/local/bin/fish >> /etc/shells
  1. Imposta Fish come shell predefinita con chsh
chsh -s /usr/local/bin/fish
  1. Ridefinisci root come proprietario delle shell
sudo chown root /etc/shells
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top