133

I accidentally pressed Ctrl+Alt+F12 and my display turned to black... I then had to make a reboot.. What did it do to my system? Also what does Alt+ F8 to F10 do?

5
  • 2
    Related (but not a duplicate): Reverting from Ctrl - Alt - F1 Jul 26, 2014 at 23:29
  • 7
    TL;DR in case of BLACKOUT and WANT BACK to GUI: Ctrl+Alt+F7
    – andilabs
    Jun 13, 2016 at 15:38
  • 3
    Just hit Ctrl+Alt+F7 Feb 2, 2018 at 14:54
  • 2
    For Ubuntu 18.04 I pressed Ctrl+Alt+F2
    – sandip
    May 8, 2020 at 5:50
  • FYI - I accidentally hit Ctrl-Alt-F12 on Ubuntu 20.04 and got black screen(s) - dual monitors both displayed a large blinking cursor.
    – raddevus
    Oct 8, 2020 at 15:07

6 Answers 6

165

Pressing Ctrl+Alt+Fn (or just Alt+Fn when not in X11, the GUI) switches to the nth virtual console (ttyn).

Often we talk about a virtual console as a usable text console. So we often say there are six virtual consoles, accessible with Alt+F1 through Alt+F6 (holding down Ctrl too if you're in the GUI when you want to switch). And we often say that then, separately, is the GUI, which can be switched (back) to with Alt+F7.

But in fact, tty7, where the GUI typically runs, is a virtual console too. It's just not usable as a text console, because it doesn't have getty running for it. getty runs for tty1 through tty6 (by default). getty sets a virtual console up to be used like a terminal and runs login to prompt for a username and password.

You can see the getty commands that are running by filtering the output of ps:

ek@Kip:~$ ps ax | grep -v grep | grep getty
 1127 tty4     Ss+    0:00 /sbin/getty -8 38400 tty4
 1150 tty5     Ss+    0:00 /sbin/getty -8 38400 tty5
 1171 tty2     Ss+    0:00 /sbin/getty -8 38400 tty2
 1172 tty3     Ss+    0:00 /sbin/getty -8 38400 tty3
 1175 tty6     Ss+    0:00 /sbin/getty -8 38400 tty6
11231 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1

Since tty7 is the first virtual console that is not set up to behave like a terminal (i.e., no getty is running for it), that's the one X11 (which provides the GUI) uses.

Virtual consoles higher than tty7 exist also. It's just that, ordinarily, they neither have getty running for them, nor do they have X11 using them. The first 12 virtual consoles are accessible with the key combinations described above using function keys (because a keyboard typically has only 12 numbered function keys). They are accessible even if nothing is happening on them.

Thus, when you press Ctrl+Alt+F12, you get a blank screen because you are now on tty12, which has nothing at all running on it.

As an interesting exercise, you might try running:

sudo /sbin/getty -8 38400 tty12

Then press Alt+F12 (or Ctrl+Alt+F12 if you're in the GUI rather than one of the first 6 virtual consoles).

This will bring you to tty12, which now has a login screen and is usable as a terminal.

(If you wanted to permanently create usable text-based consoles on higher-numbered virtual consoles, then you should configure init to run getty for them automatically. When getty is run manually as above, or even if you were to add that line to a startup script, you won't get the ability to login again after logging out on the virtual console, because getty won't automatically run again. Furthermore, there are some other problems running getty in that way for production use--for example, bash job control might not be available in your login shell, after you log in. If you want to make more virtual consoles usable as text-based terminal emulators, I recommend asking a separate question about that.)

2
  • It would be interesting to know, how (non-getty) virtual consoles like 9-12 are removed, so Ctrl+Alt+F9-12 can be used as keyboard shortcuts
    – ford04
    Jul 14, 2020 at 10:40
  • Are these shortcuts configurable?
    – PRouleau
    Apr 2 at 21:32
61

Here is a brief explanation:

The following Keys are for going to the Terminal (The black background, white letters way):

Ctrl+Alt+F1 - Will send user to tty1 or 1st Terminal

Ctrl+Alt+F2 - Will send user to tty2 or 2nd Terminal

Ctrl+Alt+F3 - Will send user to tty3 or 3rd Terminal

Ctrl+Alt+F4 - Will send user to tty4 or 4th Terminal

Ctrl+Alt+F5 - Will send user to tty5 or 5th Terminal

Ctrl+Alt+F6 - Will send user to tty6 or 6th Terminal

For GUI Terminals (Where X is typically running, or better said, where you land when Unity appears and everything looks good. The default one where you start the GUI would be F7):

Ctrl+Alt+F7 - Will send user to the 1st GUI Terminal

Ctrl+Alt+F8 - Will send user to the 2nd GUI Terminal

Ctrl+Alt+F9 - Will send user to the 3rd GUI Terminal

Ctrl+Alt+F10 - Will send user to the 4th GUI Terminal

Ctrl+Alt+F11 - Will send user to the 5th GUI Terminal

Ctrl+Alt+F12 - Will send user to the 6th GUI Terminal

The thing to note here is that you can go from one terminal to the other by pressing the corresponding keys. You should also note that, since you are running one instance of the X server (one Unity running) you will only have F7 working for the GUI Terminals. If you open another X Server session, it will start in F8 and you can switch between both by pressing the correct keys. You can keep doing this for a total (default) of 6 times which would be F7 up to F12.

7
  • 2
    Can there be more than 6 GUI terminals of which some are inaccessible?
    – nanofarad
    Aug 15, 2013 at 16:42
  • @hexafraction I can imagine the user typing in the terminal something like "sudo xinit -- :4 vt14" where 4 would be the session number and the 14 would be the virtual terminal. Aug 15, 2013 at 19:34
  • I know it's possible to issue a command, just not sure if it will render if switched into by software,
    – nanofarad
    Aug 15, 2013 at 19:41
  • Ok I tried and it works but the problem I think will be how to switch to it using the keyboard ;). I mean CTRL+ALT+F21?? Aug 15, 2013 at 19:55
  • 1
    No, my question is whether X.Org cuts off VTs at 12 or has keyboard-inaccessible ones past there available for software access.
    – nanofarad
    Aug 15, 2013 at 19:57
10

You can come back to any of normal GUI in Ubuntu from any of the TTY screens by hitting:
Ctrl+Alt+F7

3
  • 1
    Could you please add an answer to the question? Your answer is giving a solution which will work, but the user has asked what does alt-f8, alt-f...
    – pim
    Nov 14, 2017 at 10:16
  • 1
    Not work for me in Ubuntu 18.04
    – CodeBy
    Sep 4, 2018 at 8:27
  • 6
    Ctrl+Alt+F1 worked for me
    – Sai Nikhil
    Apr 23, 2020 at 18:51
4

While these other answers are correct, in my case I was unable to switch back or do a typical SSH connection to my machine when this occurred. I couldn't figure out what Ctrl+Alt+F12 was, but whatever it was, it made my screens go black and my input die completely (even from changing back to tty1-tty7). I'm not sure if my case is a one-off situation or if this is a common issue.

I was able to SSH with the -T flag to disable "pseudo terminal emulation" and it was pretty painful to work with (I forgot a world without bash .. or any sh), however I did get this from the /var/log/kern.log before at least gracefully rebooting it:

Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369331] BUG: unable to handle kernel NULL pointer dereference at 0000000000000a62
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369334] IP: [<ffffffff9cb4015e>] _raw_spin_lock_irqsave+0x1e/0x39
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369335] PGD 0 
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369335] Oops: 0002 [#1] SMP
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369353] Modules linked in: ctr ccm rfcomm ip6table_filter ip6_tables iptable_filter ip_tables x_tables tun efi_pstore pci_stub vboxpci(OE) vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) bnep hp_wmi sparse_keymap intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm binfmt_misc irqbypass crct10dif_pclmul crc32_pclmul nls_iso8859_1 ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd intel_cstate uvcvideo videobuf2_vmalloc intel_rapl_perf arc4 videobuf2_memops videobuf2_v4l2 videobuf2_core videodev efivars joydev media iwlmvm mac80211 serio_raw btusb sg btrtl btbcm btintel bluetooth iwlwifi cfg80211 snd_seq_midi snd_seq_midi_event snd_hda_codec_hdmi snd_rawmidi rtsx_pci_ms snd_hda_codec_realtek snd_hda_codec_generic snd_seq rfkill memstick snd_hda_intel snd_hda_codec snd_seq_device snd_hda_core snd_hwdep lpc_ich snd_pcm shpchp snd_timer snd battery ac soundcore hp_accel mei_me hp_wireless lis3lv02d input_polldev mei tpm_infineon evdev parport_pc ppdev lp parport efivarfs autofs4 ext4 crc16 jbd2 fscrypto mbcache hid_microsoft hid_generic usbhid hid rtsx_pci_sdmmc mmc_core crc32c_intel psmouse wmi i915 video i2c_algo_bit thermal button drm_kms_helper fjes syscopyarea sysfillrect sysimgblt fb_sys_fops e1000e rtsx_pci ptp pps_core ahci libahci drm
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369368] CPU: 1 PID: 1110 Comm: Xorg Tainted: G           OE   4.8.2-040802-generic #201610161339
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369369] Hardware name: Hewlett-Packard HP EliteBook 840 G2/2216, BIOS M71 Ver. 01.16 08/26/2016
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369369] task: ffff9e0535b25500 task.stack: ffff9e05349f0000
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369371] RIP: 0010:[<ffffffff9cb4015e>]  [<ffffffff9cb4015e>] _raw_spin_lock_irqsave+0x1e/0x39
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369372] RSP: 0018:ffff9e05349f3a70  EFLAGS: 00010046
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369372] RAX: 0000000000000000 RBX: 0000000000000246 RCX: 0000000000000008
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369373] RDX: 0000000000000001 RSI: 0000000000000003 RDI: 0000000000000a62
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369373] RBP: 0000000000000000 R08: 0000000000000438 R09: 0000000000000898
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369374] R10: 0000000000000780 R11: 0000000000000898 R12: 0000000000000a62
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369374] R13: 0000000000000000 R14: ffff9e053986a800 R15: 0000000000000003
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369375] FS:  00007f76b8175a00(0000) GS:ffff9e054f440000(0000) knlGS:0000000000000000
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369376] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369376] CR2: 0000000000000a62 CR3: 0000000435136000 CR4: 00000000003406e0
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369377] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369377] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369377] Stack:
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369379]  000000000000000e ffffffff9c4a9dfd 0000004800000000 0000078000024414
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369380]  00000000faa01f96 ffff9e0534d02a58 ffffea000b023400 ffff9e0534d02a60
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369382]  ffff9e0534d02a5c ffff9e053986a800 ffff9e0534879000 ffffffff9cb3d9de
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369382] Call Trace:
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369385]  [<ffffffff9c4a9dfd>] ? try_to_wake_up+0x3d/0x350
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369387]  [<ffffffff9cb3d9de>] ? __ww_mutex_lock+0x7e/0xa0
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369401]  [<ffffffffc03308d7>] ? drm_modeset_lock+0x47/0xd0 [drm]
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369411]  [<ffffffffc033107d>] ? drm_atomic_get_connector_state+0x2d/0x170 [drm]
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369417]  [<ffffffffc0458681>] ? __drm_atomic_helper_set_config+0x271/0x340 [drm_kms_helper]
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369422]  [<ffffffffc045ab1a>] ? drm_fb_helper_pan_display+0x17a/0x280 [drm_kms_helper]
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369424]  [<ffffffff9c4ec7ba>] ? __internal_add_timer+0x1a/0x50
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369444]  [<ffffffffc0577876>] ? intel_fbdev_pan_display+0x16/0x60 [i915]
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369446]  [<ffffffff9c7e2459>] ? fb_pan_display+0xc9/0x150
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369447]  [<ffffffff9c7dcb0a>] ? bit_update_start+0x1a/0x40
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369448]  [<ffffffff9c7d9c3d>] ? fbcon_switch+0x49d/0x610
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369450]  [<ffffffff9c863da5>] ? redraw_screen+0x165/0x240
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369451]  [<ffffffff9c865f6a>] ? vc_allocate+0x2a/0x1c0
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369453]  [<ffffffff9c85ad9a>] ? complete_change_console+0x3a/0xd0
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369454]  [<ffffffff9c85b505>] ? vt_ioctl+0x6d5/0x1260
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369462]  [<ffffffffc031798b>] ? drm_ioctl+0x1db/0x460 [drm]
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369473]  [<ffffffff9c84fa30>] ? tty_ioctl+0x340/0xc30
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369474]  [<ffffffff9c7e1c6b>] ? brightness_store+0x5b/0x70
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369475]  [<ffffffff9c5c3bb8>] ? handle_mm_fault+0x898/0x1350
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369477]  [<ffffffff9c62901f>] ? do_vfs_ioctl+0x9f/0x600
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369478]  [<ffffffff9c6295f4>] ? SyS_ioctl+0x74/0x80
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369479]  [<ffffffff9cb401f6>] ? entry_SYSCALL_64_fastpath+0x1e/0xa8
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369492] Code: 98 ff 48 89 d8 5b c3 66 0f 1f 44 00 00 0f 1f 44 00 00 53 9c 58 0f 1f 44 00 00 48 89 c3 fa 66 0f 1f 44 00 00 31 c0 ba 01 00 00 00 <f0> 0f b1 17 85 c0 75 05 48 89 d8 5b c3 89 c6 e8 7e 94 98 ff 66 
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369493] RIP  [<ffffffff9cb4015e>] _raw_spin_lock_irqsave+0x1e/0x39
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369494]  RSP <ffff9e05349f3a70>
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.369494] CR2: 0000000000000a62
Oct 23 09:02:52 BC-LINPC-02 kernel: [11410.375145] ---[ end trace 27ab810be96982ee ]---

I see some intel'y stuff in there, and some virtual-box'y stuff in there (it's not a VM but hosts a couple on occasion). Not sure what the problem is exactly. 4.8.2 kernel, KDE neon, intel graphics i915.

My guess is this was an isolated case with my configuration - but thought it was worth mentioning in case this does occur more widely.

From another box:

ssh -T [user]@[host]
sudo -S reboot

The -S is necessary, but it won't mask your password as you type it.

3
  • Could this askubuntu.com/q/992987/446253 be an instance of the same problem? Jan 6, 2018 at 16:29
  • Something similar happened to me. After many key combinations and nothing changing, I accidentally typed the Lock screen key combination (CTRL-ALT-L by default), and then finally the screen was working again. So if someone out there is stuck, try that! Mar 15, 2018 at 23:57
  • @XavierStuvw I realize this is an ancient comment, but from what I recall of this problem, it sounds very similar to that post. I wonder if the guy (EDIT: you! lol) was able to SSH into it, because that was the part that REALLY baffled me. I couldn't open any shell at all - ssh (I believe) would just hang unless I did that -T flag. I think most other services (HTTP, etc) was working ok, but anything that ran under my user context with a shell was a problem I think. Jul 26, 2019 at 6:00
4

On my system, I accidentally hit Ctrl-Alt-F11, and it brought me to a TTY terminal. I tried hitting Ctrl-Alt-F7, but it did not bring me back to my GUI.

I then tried Ctrl-Alt-F1, and it brought me back to my GUI.

So, the list in the answer by Luis Alvarado may not apply to all systems.

2
  • This just worked for me on Ubuntu 20.04. Mar 24, 2021 at 17:33
  • 1
    On Ubuntu 22.04 Ctrl-Alt-F1 brings me to the login screen, while Ctrl-Alt-F2 brings me to what ever I was doing before entering a TTY.
    – Eyjafl
    Jul 27, 2023 at 14:35
0

I've had several system freezes recently, mostly when running wine applications. CTRL+ALT+F12 is the only key combination that lets me do a warm reboot.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .