Jag blev förvånad över att jag inte hittade den här frågan redan på webbplatsen. Så idag kom $
efter att jag loggade in som en ny användare. Detta var oväntat eftersom min huvudanvändares uppmaning börjar med username@computername:~$
.
Så hur byter jag från det här annat skal att basa?
Kommentarer
Svar
Förutsatt att det okända skalet stöder körning av ett absolut kommando kan du försöka: /bin/bash
För att ändra standardskalet skulle jag använda chsh(1)
. Exempel på användning: chsh -s /bin/bash $USER
Kommentarer
- Ändrar chsh permanent skalet eller bara för den aktuella sessionen ?
- @mouche Permanent; det ändrar din post i
/etc/passwd
- @mouche,
chsh(1)
tillåter bara att ändra till ett skal som är listat i/etc/shells
(och är antagligen tillgänglig).chsh -l
listar alternativen. Var försiktig, vissa (somnologin
) är definierade för konton som aldrig ska användas för att logga in (trevligt sätt att låsa dig ut), det kan finnas lokala tillägg för speciella användningar.
Svar
Du skriver in bash
. Om du vill att detta ska vara permanent, ändra standardskalet till /bin/bash
genom att redigera /etc/passwd
.
Här ”s några utdrag från min /etc/passwd
:
avahi:x:84:84:Avahi daemon:/:/bin/false xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh postgres:x:88:88::/var/lib/postgres:/bin/zsh bob:x:1001:1001::/home/bob:/bin/bash usbmux:x:140:140:usbmux user:/:/sbin/nologin
Det allra sista fältet innehåller skalet, ändrar fältet efter det sista :
till ett giltigt eller ogiltigt skal fungerar. /bin/false
och /sbin/nologin
betyder båda användaren har inte ett riktigt inloggningsskal, men om pam inte är rätt inställt betyder det inte att de inte kan logga in (jag rapporterade ett fel på detta i Arch Linux, eftersom du kan logga in grafiskt utan att ha ett inloggningsskal). /bin/bash
och /bin/zsh
är båda giltiga skal, se /etc/shells
för en lista med giltiga skal på dina system. Här är min /etc/shells
om du är intresserad.
/bin/sh /bin/bash /bin/ksh /bin/zsh /bin/dash
Ja, du kan använda chsh
eller usermod
för att göra samma saker, kom ihåg att det bara är strukturerade textfiler och TIMTOWTDI.
Kommentarer
- Du vill antagligen använda
chsh
istället för att manuellt redigerapasswd
- @Michael det finns ungefär 5 (POOMA) olika sätt att ändra skalet i
/etc/passwd
Jag kände inte ' att inte lista någon av dem , för jag gör det alltid manuellt. chsh och usermod kan båda göra det. - Att röra sig med konfigurationsfiler är en dålig idé (TM), ett fel kan göra systemet oanvändbart. Ja, det är ofta det enda / snabbaste sättet, men gör det sedan med extrem försiktighet .
Svar
Om chsh eller manuell redigering av konfigurationen kommer inte att fungera, men ett ~ / .profile-skript körs vid inloggning, lägg till den här raden:
exec /bin/bash --login
Kommentarer
- Efter att ha tittat runt ett tag var detta den lösning jag behövde. Tack!
- Bra idé, speciellt om skalet valde källor som arkiverar vid start …
-
touch ~/.bash_profile
eller på annat sätt kommer bash att utföra sig i en slinga: bash tar~/.profile
om~/.bash_profile
inte ' finns inte.
$
kom upp snarare änusername@computername:~$
betyder inte ' t att det inte var ' t bash. Den exakta formateringen av prompten ställs in av PS1-variabeln, som kan ställas in eller anpassas på olika sätt för olika användare.echo $SHELL
för att ta reda på vad ditt nuvarande skal är./bin/sh
betyder inte ' t så mycket att ' är vanligtvis en symlänk till något annat. Jag ' d typls -l /bin/sh
för att se vad den ' är en symlänk till. I vissa fall är det en symlänk till något som förändrar dess beteende, jag tror inte ' att bash är så.bash
som/bin/sh
inaktiverar många bash-funktioner (det går till POSIX-efterlevnadsläge).