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 -llistar 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
chshistället för att manuellt redigerapasswd - @Michael det finns ungefär 5 (POOMA) olika sätt att ändra skalet i
/etc/passwdJag 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_profileeller på annat sätt kommer bash att utföra sig i en slinga: bash tar~/.profileom~/.bash_profileinte ' 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 $SHELLför att ta reda på vad ditt nuvarande skal är./bin/shbetyder inte ' t så mycket att ' är vanligtvis en symlänk till något annat. Jag ' d typls -l /bin/shfö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å.bashsom/bin/shinaktiverar många bash-funktioner (det går till POSIX-efterlevnadsläge).