Skip to content

Ctrl+C Ctrl+V Not Working in Terminal? Here’s Why (Linux)

Ctrl+C Ctrl+V not working in terminal is one of the most common points of confusion for anyone new to Linux — and if it’s happening to you, you are not doing anything wrong. This is not a bug. It’s a deliberate design decision that predates the keyboard shortcuts you’re used to by about 20 years.

This article explains exactly why Ctrl+C and Ctrl+V don’t work in the terminal, what they do instead, the correct shortcuts to use, and how to remap them if you really want the familiar Windows-style behaviour.


The real reason — it’s not a bug, it’s older than Windows

In every graphical application — your browser, your text editor, your file manager — Ctrl+C means copy and Ctrl+V means paste. That convention is so universal it feels like a law of computing. But the terminal is not a normal application. It’s a text interface to the shell, and that interface uses Ctrl+C for something it was assigned decades before copy-paste shortcuts existed.

Ctrl+C sends an interrupt signal (SIGINT) to whatever program is currently running in the terminal. This convention goes back to Unix terminal sessions in the 1970s — long before Windows or the modern copy-paste shortcut convention existed. When you press Ctrl+C in a terminal, you are telling the currently running command to stop immediately. This is genuinely useful: if a script is stuck in an infinite loop, or a command is taking too long, or a server you started is hogging your terminal, Ctrl+C kills it.

If Ctrl+C also triggered “copy” in the terminal, every time you tried to interrupt a running process, you would risk accidentally overwriting your clipboard instead — or worse, the terminal would have no reliable way to stop a runaway command at all. The terminal can’t safely give you both behaviours on the same shortcut, so it keeps the older, more critical one: interrupting a process.

Ctrl+V has a similar story, though slightly different. Both Ctrl+C and Ctrl+V are legitimate characters that can be typed directly into a Unix TTY (which is what the terminal emulates), so the standard graphical-application key presses are not available for copy and paste in that context. The terminal needs to preserve these key combinations for their original, lower-level purposes.


What actually happens when you press Ctrl+C in the terminal

bash

ping google.com

If you run this command, it will keep running indefinitely, printing a new line every second. Press Ctrl+C, and it stops immediately. That is SIGINT doing exactly its job — interrupting the foreground process.

If you instead try to use Ctrl+C expecting it to copy a line of text you’ve selected, nothing gets copied — but if there’s a command currently running, it gets killed.


What to use instead — the correct shortcuts

Most modern terminal emulators (GNOME Terminal, Konsole, the default terminal apps in Ubuntu, Fedora, Linux Mint, and most other distros) use a modified version of the familiar shortcuts:

ActionShortcut
Copy selected textCtrl+Shift+C
PasteCtrl+Shift+V
Interrupt running processCtrl+C
Cut (in some terminals)Ctrl+Shift+X

Adding Shift to the combination avoids clashing with the terminal’s existing use of Ctrl+C and Ctrl+V for shell control signals, while keeping the shortcut close enough to the familiar pattern to remember easily.

A simpler alternative that works almost everywhere: select text with your mouse, then right-click and choose Copy from the context menu, or simply middle-click to paste the most recently selected text (this works in most Linux terminal emulators by default, inherited from the X11 selection clipboard).


Why some terminals seem to behave inconsistently

If you’ve noticed that copy-paste sometimes works with plain Ctrl+C/Ctrl+V and sometimes doesn’t, here’s what’s actually happening: it usually depends on whether a foreground process is currently running and waiting for input.

If your terminal is sitting at an idle prompt with nothing running, some terminal emulators are more forgiving and may let Ctrl+C through as a copy command if you have text selected. But the moment a command is actively running, Ctrl+C reverts to its job of sending SIGINT — because that’s the priority use case the terminal has to protect.

This inconsistency is exactly why relying on plain Ctrl+C as “copy” in a terminal is risky. You might get away with it nine times, and the tenth time it kills the script you needed to keep running.


How to remap Ctrl+C and Ctrl+V in your terminal (if you really want to)

If the Shift-modified shortcuts genuinely don’t work for you — this is a legitimate need for some users with mobility limitations or muscle memory built over decades of Windows use — most terminal emulators let you remap the shortcuts.

GNOME Terminal (Ubuntu, Fedora default terminal):

  1. Open the terminal
  2. Go to Edit → Preferences → Shortcuts
  3. Find Copy in the list, click it, and press your preferred key combination
  4. Find Paste, click it, and do the same
  5. Close the preferences window — the new shortcuts take effect immediately

Important warning before you remap Ctrl+C specifically: if you reassign Ctrl+C to mean “copy” in your terminal preferences, you lose the ability to use Ctrl+C to interrupt running commands via that exact key combination in that terminal profile. This will be confusing the first time you cannot stop a stuck command the way every Linux tutorial tells you to. For this reason, most experienced Linux users strongly recommend leaving Ctrl+C alone and either learning Ctrl+Shift+C, or remapping copy-paste to a different key combination entirely — function keys, or Ctrl+Insert / Shift+Insert, which some terminals support by default.

Konsole (KDE default terminal):

  1. Go to Settings → Configure Shortcuts
  2. Search for “Copy” and “Paste” in the shortcut list
  3. Assign your preferred key combinations
  4. Apply and close

Alacritty, Kitty, and other modern terminal emulators:

These are configured via text config files rather than a GUI. For example, in Kitty’s kitty.conf:

map ctrl+shift+c copy_to_clipboard
map ctrl+shift+v paste_from_clipboard

Check your specific terminal’s documentation for the exact config syntax, as it varies between emulators.


What about copying between a terminal and a graphical app, like LibreOffice or a browser?

This is a related but separate source of confusion. If copying from a graphical application and pasting into the terminal (or vice versa) isn’t working consistently, it usually comes down to Linux’s dual clipboard system:

  • The “Clipboard” selection — populated by Ctrl+C in graphical apps, pasted with Ctrl+V
  • The “Primary” selection — populated automatically whenever you select/highlight text anywhere, pasted with a middle-click

These are two genuinely separate clipboards running simultaneously. If you select text in LibreOffice, then explicitly press Ctrl+C, it goes to the Clipboard selection — and Ctrl+Shift+V in the terminal will paste it correctly. If you just highlight text without pressing Ctrl+C, it only populates the Primary selection — middle-click paste will work, but Ctrl+Shift+V might not, because nothing was sent to the Clipboard selection.

If you find copy-paste between apps unreliable, get in the habit of explicitly pressing Ctrl+C after selecting text, rather than relying on selection alone — this ensures the Clipboard selection is populated correctly and Ctrl+Shift+V will paste it reliably in the terminal.


Quick reference summary

What you want to doWhat to press
Copy text in the terminalCtrl+Shift+C
Paste text in the terminalCtrl+Shift+V
Stop a running commandCtrl+C
Paste your most recent text selectionMiddle-click
Permanently change the shortcutsTerminal → Edit/Settings → Preferences → Shortcuts

The short version: Ctrl+C in the terminal means “stop this,” not “copy this” — and that single fact explains almost everything confusing about copy-paste behaviour in the Linux terminal. Once you build the habit of adding Shift to the familiar shortcuts, it becomes second nature within a day or two.

Ctrl+C Ctrl+V Not Working in Terminal? Here's Why (And What to Use Instead)

Best Linux VPS Hosting in 2026

Best Linux VPS Hosting in 2026 (Compared for Developers)

A Linux VPS gives you your own isolated slice of a physical server — dedicated RAM, guaranteed CPU, …

Linux Kernel 7.1 Released

Linux Kernel 7.1 Released — New NTFS Driver, Intel FRED, and What’s New

Published: June 18, 2026 | Released June 14, 2026 | Covers desktop, gaming, and server impact Linux …

Secure Boot Linux 2026

Microsoft’s Secure Boot Certificates Expire June 27 — What Every Linux User Must Know

Secure Boot Linux 2026 has a deadline most users don’t know about. On June 27, 2026, Microsoft…

How to Set Up WireGuard VPN on Linux

How to Set Up WireGuard VPN on Linux (Server and Client, 2026)

Updated: May 2026 | Covers Ubuntu 26.04, 24.04, Debian, Fedora | Server + client + mobile setup Wire…

Origami Linux merges into RakuOS immutable distro

Origami Linux Is Dead — and That Might Be Great News for Immutable Linux

Published: June 2026 | Category: News & Analysis If you blinked last week, you might have missed…

How to Harden Your Linux System

How to Harden Your Linux System in 30 Minutes (Step-by-Step)

Skill level: Intermediate | Time to complete: 30–40 minutes | Tested on: Ubuntu 24.04, Debian 12, Fe…

Ctrl+C Ctrl+V not working in terminal

Best Linux Distros for IoT in 2026

Best Linux Distros for IoT in 2026: Pi 5, RISC-V, and Edge AI Tested

linux in IoT

Linux in IoT – Why Linux Is at the Heart of IoT

drauger os linux

Drauger OS Linux – Powerful distro not only for GAMERS

Drauger OS Linux is a powerful and feature-rich operating system that caters to the needs of both casual users and professionals alike. Based on the popular Linux distribution, Ubuntu, Drauger OS offers a finely-tuned and user-friendly experience that leverages the robustness and security of the Linux ecosystem. One of Drauger OS’s standout features is its… Read More »

corel linux

Once upon a time there was a COREL LINUX

In 1999, Corel officially released Corel Linux, a Debian-based operating system. Despite significant customizations to file management, the distribution was incompatible with other Linux systems and ultimately unsuccessful. The project was discontinued in 2001. The system was offered in three versions: a free version available for download from Corel’s website, a Standard version for $59.95,… Read More »