TTY1-7: CTRL+ALT+F1-7

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
anth
Inlägg: 512
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

TTY1-7: CTRL+ALT+F1-7

Inlägg av anth »

Jag har lärt mig att man kan trycka CTRL+ALT+F1 och skärmen ska bli ett svart terminalfönster som heter TTY1, samma sak med F2-F6, medan F7 används för att komma tillbaka till GUI:et.

(jag vet att tty är en nödlösning om Ubuntu skulle krascha. Jag använder normalt den grafiska terminalen via CTRL+ALT+T)

Min Ubuntu fungerar lite annorlunda:
F3-F6: öppnar en TTY (gissnigsvis tty3-tty6?)
F1: Ubuntu-inloggning
F2: Ubuntu-skrivbord
F7: ger en svart skärm utan markör, men med texten: /dev/sda5: clean, 199330/19505152 files, 3512852/70011136 blocks

När jag försökte googla hittade ett forumssvar som i stort sätt konfirmerade min upplevelse och att det ändrades i Ubuntu 17.10:
https://askubuntu.com/questions/66195/w ... cess-a-tty

Fråga 1: vad är F7?
(jag förstår vad texten betyder, men jag förstår inte varför den visas)

Fråga 2: finns det någon länk till Ubuntu-dokumentationen av TTY?
(Jag HAR googlat, men det enda jag hittar är länken ovan, som går till StackExchange.)
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Osprey »

På den gamla goda tiden när man körde Unix på vanliga textterminaler så stod "tty" för en vanlig terminal. Unix var ofta ett fleranvändarsystem där flera användare loggade in och den första fick då "tty1" ("/dev/tty1"), den andra fick "tty2" också vidare.

Själva ordet "tty" är egentligen en förkortning av "teletype" som från början egentligen var en ännu äldre typ av teminal. Det vi kallar för "en terminal" idag är egentligen en "videoterminal" alltså en liten "tv-skärm" som bara kan visa text och ett tangentbord.

Ännu längre tillbaka så hade man ingen liten skärm, utan använde istället en skrivare, där terminalen alltså skrev direkt på ett papper. Rätt kul att sitta och editera på en sådan faktiskt... ;D

På den tiden kördes alltså nästan alla kommandon från en terminal (förutom det som kördes av t.ex "cron" och så alltså) och alla användare var inloggade på en terminal, så terminalen var ett mycket centralt begrepp på den tiden.

Detta följde med över till Linux också, som från början inte hade så mycket som man kan kalla för grafiskt gränssnitt. När sedan de grafiska gränssnitten kom till Linux (X11 är faktiskt äldre än Linux, men inte äldre än Unix), så följde begreppet med terminaler "tty" med in i detta, eftersom det var så centralt i operativsystemet.

Som det är nu så kör man sällan Linux som fleranvändarsystem även om det är möjligt, förutom i viss mån då man använder sig av en server.

Därför går det fortfarande att komma åt "tty" eller alltså en eller flera terminaler i Linux och när man är inne på en sådan, så ligger man närmare operativsystemet än när man kör i fönster. Det är också därför som man kan gå in med en terminal och fixa saker, även om hela det grafiska systemet och alla fönster har kraschat.

Vad som är igång på dina terminaler (tty1-tty7) kan du se med:

Kod: Markera allt

ps -ef | grep tty | grep -v grep | sort -k 6
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
anth
Inlägg: 512
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av anth »

Förtydligande: det skulle inte falla mig in i att arbeta i TTY om jag inte verkligen måste, det är lite som Windows safe mode. Ska jag arbeta i terminal så är det CTRL+ALT+T.

Jag hänger med på vad du säger.
Det närmaste jag kommer en klassisk terminal är om jag jobbar med en Debian-server som inte har grafiskt gränssnitt, eller SSH:ar till Debian-servern från min Windows-dator med PuTTY (och TTY i PuTTY syftar just på en teletype-terminal).

Jag har även en stenåldersdator osm jag för tillfället kör MX Linux på. MX Linux bygger på Debian och där är F1-F6 TTY, medan F7 är tillbaka till det grafiska gränssnittet.
Jag förstår att Ubuntu ändrade från version 17.10, men jag hittar inte någon dokumentation om det på någon Ubuntu-sida, vilket verkar konstigt.

Jag har inget problem med Ubuntus lösning nu när jag känner till den: F1 = inloggning, F2 = GUI, F3-F6 = TTY.
Men jag förstår fortfarande inte vad F7 är för något.

Om jag trycker CTRL+ALT+F7 och sedan hoppar tillbaka med CTRL+ALT+F2, öppnar en terminal och skriver:

Kod: Markera allt

anth@OptiPlex-790:~$ ps -ef | grep tty
anth        1271    1160  0 10:48 tty2     00:00:00 /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu
anth        1273    1271  3 10:48 tty2     00:00:04 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
anth        1303    1271  0 10:48 tty2     00:00:00 /usr/libexec/gnome-session-binary --systemd --systemd --session=ubuntu
anth        2124    1982  0 10:50 pts/0    00:00:00 grep --color=auto tty
Som du ser säger den inget om TTY7.

Om jag istället gör CTRL+ALT+F3 och sedan hoppar tillbaka med CTRL+ALT+F2, öppnar en terminal och skriver:

Kod: Markera allt

anth@OptiPlex-790:~$ ps -ef | grep tty
anth        1271    1160  0 10:48 tty2     00:00:00 /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu
anth        1273    1271  1 10:48 tty2     00:00:17 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
anth        1303    1271  0 10:48 tty2     00:00:00 /usr/libexec/gnome-session-binary --systemd --systemd --session=ubuntu
root        2487       1  0 11:08 tty3     00:00:00 /bin/login -p --
anth        2589    2487  0 11:08 tty3     00:00:00 -bash
anth        2629    1982  0 11:08 pts/0    00:00:00 grep --color=auto tty
Så får jag info om TTY3.

Jag drar slutsatsen att F7 inte är någon TTY, men vad är det? Jag ser att den svarar med info om Ubuntu-partitionen /dev/sda5 - men varför gör den det? Jag får ju inte något vettigt om jag provar CTRL+ALT+F8-F12.

Jag kollade även under Settings > Keyboard Shortcuts och där fanns ingen info om CTRL+ALT+Fn (antagligen för att en vanlig användare inte kan ändra dessa).
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Osprey »

Nu var jag tvungen att läsa på lite själv för att försöka begripa hur det hänger ihop... :)

Skillnaden mellan före och efter 17.10 (inklusive 17.10) beror tydligen att det var då möjligheten kom att köra Wayland istället för Xorg (X11). Som standard i Xorg var, som sagt, tty7 det grafiska systemet, medan tty1-tty6 var terminaler.

I Wayland är det (som du säger) uppenbarligen istället tty1 och tty2 som är inloggning och det grafiska systemet.

tty3-tty6 är fortfarande terminaler, men som det ser ut av din utskrift från "ps", så har de ingen "getty" (egentligen "agetty") igång, utan den skapas förmodligen först när man trycker F[3-6] och alltså kör en "chvt [3-6]". Eventuellt körs istället en "/bin/login" direkt...

Och tty7 verkar vara reserverad för om man kör Xorg istället för Wayland, så att tty7 alltså fortfarande är det grafiska systemet då. Meningen är väl att F-tangenterna ska ha samma funktion oavsett om man kör Wayland eller Xorg.

Men när man kör Wayland så är uppenbarligen tty7 helt overksam och detsamma gäller förmodligen tty1 och tty2 när man kör Xorg.

Jag kör aldrig någon TTY direkt heller, förutom när något krånglar eller jag ska in och felsöka på kraschade datorer och så. Däremot håller jag en hel del på med CTRL+ALT+T och så. PuTTY har jag däremot inte använt på ett litet tag och gammal klassisk terminal har jag nog inte använt på sådär 20 år... ;)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Gunnar Hjalmarsson
Inlägg: 3030
Blev medlem: 08 aug 2010, 13:49
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Göteborg

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Gunnar Hjalmarsson »

Jag tror (med betoning på tror) att det handlar mer om GNOME än Wayland.

Det var ju två stora förändringar med Ubuntu 17.10: Dels ersattes Unity av GNOME, dels öppnades möjligheten att köra under Wayland. Det senare var t o m standard i Ubuntu 17.10, men fr o m 18.04 och tills vidare har Ubuntu valt att köra under X som standard.

Hursomhelst, det där med att Ctrl+Alt+F1 öppnar inloggingsskärmen och att Ctrl+Alt+F2 öppnar den aktuella grafiska sessionen gäller oavsett om man kör under X eller Wayland.

Någon förklaring till att Ctrl+Alt+F7 avviker från F3-F6 har jag inte.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Osprey »

Gunnar Hjalmarsson skrev:Hursomhelst, det där med att Ctrl+Alt+F1 öppnar inloggingsskärmen och att Ctrl+Alt+F2 öppnar den aktuella grafiska sessionen gäller oavsett om man kör under X eller Wayland.

Någon förklaring till att Ctrl+Alt+F7 avviker från F3-F6 har jag inte.
Jag kör Xorg under 18.04 på den här datorn och Ctrl+Alt+F1 öppnar en terminal, liksom Ctrl+Alt+F2 (och F3-F6). Medan Ctrl+Alt+F7 återvänder till det grafiska....
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Gunnar Hjalmarsson
Inlägg: 3030
Blev medlem: 08 aug 2010, 13:49
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Göteborg

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Gunnar Hjalmarsson »

Osprey skrev:
Gunnar Hjalmarsson skrev:Hursomhelst, det där med att Ctrl+Alt+F1 öppnar inloggingsskärmen och att Ctrl+Alt+F2 öppnar den aktuella grafiska sessionen gäller oavsett om man kör under X eller Wayland.

Någon förklaring till att Ctrl+Alt+F7 avviker från F3-F6 har jag inte.
Jag kör Xorg under 18.04 på den här datorn och Ctrl+Alt+F1 öppnar en terminal, liksom Ctrl+Alt+F2 (och F3-F6). Medan Ctrl+Alt+F7 återvänder till det grafiska....
Jo, men jag hade för mig att du kör Mint eller nå't. Jag pratar om standard-Ubuntu, dvs. med GNOME.

Att det funkar på det gamla vanliga sättet utan GNOME är vi överens om.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Osprey »

Gunnar Hjalmarsson skrev:Jo, men jag hade för mig att du kör Mint eller nå't.
Jag bytte till Mint (i någon form av panik) när Ubuntu införde Unity som standard och Gnome3 som enda alternativ. Både Mate (vidareutveckling av Gnome2) och Cinnamon var mycket trevligare...

Numera kör jag för den delen mest LXDE, men har blivit kvar i Mint för att jag inte funnit tillräckliga anledningar för att gå tillbaka. Mint är ju trots allt baserat på Ubuntu och ligger väldigt nära, största nackdelen är bara att det inte uppdateras lika ofta och inte alltid har senaste Ubuntu-versionen som grund...
Gunnar Hjalmarsson skrev:Att det funkar på det gamla vanliga sättet utan GNOME är vi överens om.
I grunden så finns det 64 stycken tty (tty0-tty63).

Av dessa så är det bara 7 stycken (tty1-tty7) som har någon aktiv funktion i operativsystemets standardutförande. Att de är "aktiva" beror endast på att det finns någon process startad som använder dem. En tty utan aktiv process är bara en overksam (heldöd) tecken-fil (character special file), där man kan läsa tecken för tecken i motsats till diskar (block special file) där man kan läsa hela block (av prestandaskäl).

De 7 aktiva tty är knutna till F-tangenterna F1-F7 genom att F-tangenterna exekverar ett "chvt"-kommando, med 1-7 som argument.

Traditionellt har F7 varit knuten till X11-processen (Xorg), medan F1-F6 har haft en getty-process (agetty) snurrande mot sig och genom det alltså har varit möjliga att logga in på via F-tangenterna eller chvt.

I Ubuntu 17.10 skedde en förändring genom att -något- lade beslag på F1 (tty1) och F2 (tty2), så att dessa inte längre gick att logga in på. Det är mycket möjligt att det var GNOME...

Om Wayland också var inblandat i detta vet jag inte säkert, men däremot så verkar det som om F7 fortfarande är reserverad. Kanske för Xorg (X11) om man kör det och kanske för Wayland. Jag vet inte riktigt, men hur som helst så verkar den vara upptagen, eller åtminstone reserverad.

Så numera är det "bara" F3-F6 som man kan vara säker på att de är tillgängliga som "console-terminaler". Men det är för den delen väääldigt sällan man behöver fler än 4 stycken.

Men om man har lust, så kan man ju alltid mappa F8-F12 mot chvt [8-12] och sedan se till att starta upp getty-processer mot dem, så går det ju att logga in även där.... ;D
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Osprey »

Och dessutom så är "/dev/tty", "/dev/tty0" och "/dev/console" numera ungefär samma sak....
  • /dev/tty är alltid den egna terminalen, dvs. om du skriver "echo foo > /dev/tty" så kommer det upp på din egen terminal....
    .
  • /dev/tty0 är ungefär samma sak, men rättigheterna är lite annorlunda och den används på ett annat sätt...
    .
  • /dev/console är historiskt sett lite annorlunda, men motsavar nu /dev/tty och /dev/tty0
Om man vill leka med "tty" så kan man alltid köra "cp filnamn /dev/tty", istället för att använda "cat"... ungefär som "pip ti:=filnamn/sr" i RSX alltså....
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Gunnar Hjalmarsson
Inlägg: 3030
Blev medlem: 08 aug 2010, 13:49
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Göteborg

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Gunnar Hjalmarsson »

Jag testade med att byta ut GDM mot LightDM i standard-Ubuntu (groovy), och då fungerade det också som vanligt. Dvs. Ctrl+Alt+{F1-F6} öppnar en TTY, och Ctrl+Alt+F7 återvänder till den grafiska sessionen.

Den komponent, som 'kidnappar' F1 och F2 på det sätt som anth beskriver i inledningen av tråden, är alltså visningshanteraren GDM.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Osprey »

Tack vare Gunnars efterforskningar så hittade jag en del av förklaringen till det:
GDM's behavior was changed in 3.16 so that instead of running one X server on the login screen which is then transformed into the user's session, we now start a new X session from within the user's session, which means that we need to start the user's session on another TTY/VT.

Note that when using fast user switching, you effectively got this behavior as well, with each user on a different TTY/VT. We just extended it to the first user to log in as well.
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Osprey »

Ursprunget till begreppet "tty" var alltså "Teletype" och modellen det gällde var Teletype Model 33...

Anledningen till att man valde den var att vid den tiden Unix skapades (början av 70-talet) så var en "vanlig" dataterminal svindyr, medan däremot Teletypes Model 33 låg rätt bra till i pris.

Så Ken Thompson och Dennis Ritchie valde därför denna som standardterminal i det Unix som de höll på att skapa.
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: TTY1-7: CTRL+ALT+F1-7

Inlägg av Osprey »

Gjorde förresten en kul upptäckt när jag satt och testade lite...

F8-F12 är redan mappade mot chvt [8-12], så allt man behöver göra för att kunna logga in även på dem, är att starta en getty-process mot tty8-tty12....

:D
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Skriv svar

Återgå till "Terminalforum"