Vraag Hoe stel ik fish in als de standaardshell?


Is er een manier om fish in te stellen als de standaardshell in ubuntu netbook remix? Ik heb mijn .bashrc geplaatst om vis te laten lopen, wat prima werkt, maar ubuntu herkent het als vis die in bash loopt, wat betekent dat wanneer ik de shell probeer te sluiten het me waarschuwt dat er nog steeds een taak loopt.

Het verschijnt niet als een nieuwe toepassing, dus ik kan het niet als een normale app in mijn balk opslaan.


94
2018-02-15 02:35


oorsprong


Van de officiële FAQ: Hoe maak ik vissen mijn standaardshell? - Dennis


antwoorden:


Je kunt fish instellen als je standaard shell door te draaien

chsh -s `which fish`

Om dit voor een andere gebruiker te doen, voegt u gewoon de gebruikersnaam aan het einde van de opdracht toe en gebruikt u sudo.

Log vervolgens uit en weer in.

(Om het terug te zetten naar bash, je moet natuurlijk de Fish-syntax gebruiken, zoals deze chsh -s (which bash))


131
2018-02-15 02:58



Dit lijkt niet voor mij te werken. Het geeft geen fout, maar het lijkt gewoon niet te werken, zelfs als ik gewoon een nieuw tabblad open. Nog ideeën? - Xodarap
Mogelijk moet u uitloggen en weer teruggaan - ik heb het net geprobeerd op een schone virtuele machine en het werkte. - ajmitch
Hoe stel je het terug? - knutole
Dat zou moeten zijn chsh -s /bin/bash. - lindhe
Voer deze opdracht niet per ongeluk uit met sudo of in plaats daarvan wijzigt u de rootshell. - Stephen Niedzielski


usermod -s /usr/bin/fish username

Moet als root worden uitgevoerd.

Hierdoor wordt de shell permanent voor de opgegeven gebruiker gewijzigd.


28
2018-02-15 09:12



Ik weet dat het geen Ubuntu is, maar ik wilde reageren: ik was op CentOS en ik kreeg een Authentication Failed fout bij het proberen om de shell te veranderen met een niet-root gebruiker en na uitgebreid te hebben geprobeerd om het uit te proberen, was dit het enige dat werkte. Bedankt! - CWSpear
Ja, het zal werken op de meeste Unix-smaken die usermod hebben en vissen op een schaal, of de shell veranderen in welke smaak je maar wilt - sweetfa
Ik deed dat en nu begint de terminal niet meer. Ik krijg de melding "Er is een fout opgetreden bij het maken van het onderliggende proces voor deze terminal", "Mislukte uitvoering van het onderliggende proces" / usr / bin / fish "(invoer- / uitvoerfout)". Hoe kan ik dat ongedaan maken? - Patrick
Voer hetzelfde commando uit als root maar gebruik bash in plaats van fish als shell. - sweetfa


Ik heb zojuist de regel toegevoegd fish tot het einde van mijn .bashrc.


14
2018-01-08 16:08



Dat is de eenvoudigste en beste oplossing, IMO;) - Ben Marten
Sorry, maar het is niet efficiënt. :) Het laadt je vissenschil maar bovenop je bash loopt. - M. Junaid Salaat
Waarom moet bash efficiënt zijn? @ M.JunaidSalaat - codenamejames
Vanaf het eerste gezicht lijkt dit een vuile hack, maar na een tijdje van het gebruik van mijn pc met fish set als de standaard shell met chsh kwam ik terug naar deze oplossing. Sommige programma's gaan ervan uit dat je bash gebruikt en zullen crashen vanwege het gebruik van bash-syntaxis op vis. Tot dusver heb ik dergelijke problemen ondervonden in i3wm en matlab. - Naheel


Ik ben het eens met de chsh is het juiste antwoord. Echter:

Als je rent chsh en krijg foutmelding

/usr/local/bin/fish: non-standard shell

voeg eenvoudig de binaire locatie van de vis toe aan /etc/shells.

gevonden hier.


12
2018-06-06 16:17





In /etc/shells, voeg toe /usr/local/bin/fish:

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish

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


0
2018-04-16 14:18