こんにちは、InfraAcademyを運営しているryuです。
Linuxを使い始めたときに、コピーやペーストができず困ることがあります。
Windowsと同じように
Ctrl + Cを押したら、実行中のコマンドが止まってしまった。Ctrl + Vを押しても、文字が貼り付けられない。
そんな経験はありませんか?
Linuxのコピー・ペースト方法は、デスクトップ画面、ターミナル、VirtualBoxなど、使っている環境によって異なります。
この記事では、Linuxでコピー・ペーストできないときの対処方法を、環境別に解説します。
まずは文字とファイルのコピーを分けて考える¶
Linuxでコピーできないときは、何をコピーしたいのか確認しましょう。
今回の記事で説明するのは、ターミナルに表示されたコマンドや文字列のコピー・ペーストです。
ファイルやディレクトリを複製するときは、クリップボードではなくcpコマンドを使います。
cp file1.txt file2.txt
ディレクトリをコピーする場合は、-rオプションを指定します。
cp -r directory1 directory2
文字を貼り付けたいのにcpコマンドを調べてしまうと、目的と違う説明が出てきます。
まずは、文字のコピーなのか、ファイルのコピーなのかを分けて考えてください。
UbuntuのデスクトップではCtrl + CとCtrl + Vを使う¶
Ubuntuのファイル管理画面やWebブラウザ、テキストエディタでは、Windowsと同じ操作が使えます。
| 操作 | ショートカット |
|---|---|
| コピー | Ctrl + C |
| 貼り付け | Ctrl + V |
| 切り取り | Ctrl + X |
ファイル管理画面でファイルを選択し、Ctrl + CとCtrl + Vを押せばファイルをコピーできます。
テキストエディタでは、選択した文字を同じ操作でコピーできます。
それでも動かない場合は、コピーする文字やファイルが選択されているか確認しましょう。
LinuxのターミナルではCtrl + Shift + CとVを使う¶
Ubuntuのターミナルでは、通常のCtrl + CとCtrl + Vではなく、Shiftキーを組み合わせます。
| 操作 | ショートカット |
|---|---|
| コピー | Ctrl + Shift + C |
| 貼り付け | Ctrl + Shift + V |
コピーするときは、マウスで文字を選択してからCtrl + Shift + Cを押します。
貼り付けたい場所でCtrl + Shift + Vを押すと、コピーした文字が入力されます。
ターミナル上で右クリックし、コピーまたは貼り付けを選択する方法もあります。
ショートカットが分からなくなったときは、右クリックメニューから試してみてください。
なぜターミナルではShiftキーが必要なのか¶
普段のアプリでは、Ctrl + Cはコピーに使います。
しかし、ターミナルでは別の役割があります。
Ctrl + Cは、実行中の処理へ割り込みを送るために使われます。
例えば、pingコマンドを実行してみましょう。
ping 127.0.0.1
この状態でCtrl + Cを押すと、pingが終了します。
コピーしようとしてコマンドが止まったのではありません。ターミナルがCtrl + Cを中断操作として受け取っています。
そのため、ターミナルで文字をコピーするときはCtrl + Shift + Cを使います。
ショートカットが使えないときは設定を確認する¶
Ctrl + Shift + CやCtrl + Shift + Vを押しても動かない場合は、ターミナルの設定を確認します。
Ubuntuの標準ターミナルでは、メニューから設定やショートカットを開けます。
コピーと貼り付けに、別のキーが割り当てられていないでしょうか。
また、使用しているターミナルによって操作が異なることがあります。
例えば、GNOME Terminal、Konsole、xterm、Windows Terminalでは、初期設定や利用できる操作が同じとは限りません。
ショートカットが使えない場合は、右クリックメニューから貼り付けられるか確認すると、キーボード設定の問題なのか切り分けやすくなります。
VirtualBoxのUbuntuでコピーできない場合¶
WindowsやMacからVirtualBox上のUbuntuへ文字を貼り付けたい場合は、共有クリップボードの設定が必要です。
VirtualBoxの仮想マシンを起動し、上部メニューから以下を選択します。
デバイス
→ 共有クリップボード
→ 双方向
ホストOSからUbuntuへ貼り付けるだけなら、ホストからゲストを選ぶ方法もあります。
設定項目の意味は以下の通りです。
| 設定 | コピーできる方向 |
|---|---|
| 無効 | コピーできない |
| ホストからゲスト | パソコンからUbuntu |
| ゲストからホスト | Ubuntuからパソコン |
| 双方向 | どちらからでもコピーできる |
ただし、共有クリップボードを使うには、Ubuntu側にGuest Additionsが必要です。
Guest Additionsを確認する¶
共有クリップボードを双方向にしても動かない場合は、Guest Additionsが入っていない可能性があります。
VirtualBoxのメニューから、以下を選びます。
デバイス
→ Guest Additions CDイメージの挿入
画面の案内に沿ってインストールし、Ubuntuを再起動してください。
VirtualBox本体を更新したあとにコピーできなくなった場合は、Guest Additionsも入れ直すと改善することがあります。
VirtualBoxでUbuntuの画面が真っ黒になる場合は、VirtualBoxでUbuntuが黒い画面のまま起動しないときの対処法も参考にしてください。
共有クリップボードの注意点¶
双方向の共有クリップボードを有効にすると、ホストOSとUbuntuの両方からクリップボードの内容を読み書きできます。
パスワードやAPIキーなどをコピーしたままにしていると、意図せず仮想マシン側へ渡る可能性があります。
必要がないときは無効にするか、コピーする内容に注意してください。
SSH接続先へペーストできない場合¶
WindowsやMacからSSHでLinuxサーバーへ接続している場合、コピー・ペーストの操作はSSH接続先ではなく、手元のターミナルソフトに依存します。
例えば、Windows TerminalではCtrl + Vで貼り付けられる設定があります。
Tera TermやPuTTYなどでは、右クリックやShift + Insertを使う場合があります。
UbuntuのターミナルからSSH接続している場合は、通常はCtrl + Shift + Vです。
ssh user@example.com
SSH接続したあとだけ貼り付けられない場合も、まずは使用しているターミナルソフトのショートカットを確認してください。
Vimで貼り付けられない場合¶
ターミナルには貼り付けられるのに、Vimを開くと文字を入力できないことがあります。
Vimには操作モードがあり、起動直後は文字を入力するモードではありません。
iキーを押して挿入モードへ移動してから、貼り付けます。
i
画面下に-- INSERT --と表示されたら、文字を入力できる状態です。
その後、ターミナルに合ったショートカットで貼り付けてください。
貼り付けた文字のインデントが大きく崩れる場合は、Vimのペーストモードを使う方法もあります。
:set paste
貼り付けが終わったら、元に戻します。
:set nopaste
ブラウザ上のLinuxで貼り付けられない場合¶
ブラウザ上で動くLinux環境では、ブラウザのショートカットとターミナルの操作が競合することがあります。
まずはCtrl + Shift + Vを試してください。
動かない場合は、ターミナル部分を右クリックし、貼り付けを選択します。
ブラウザからクリップボードの利用許可を求められた場合は、サイトが信頼できることを確認して許可してください。
ブラウザで使えるLinux環境については、インストール不要で使えるブラウザLinuxで紹介しています。
Linuxでコピー・ペーストできないときの確認順¶
コピー・ペーストできないときは、次の順番で確認すると原因を見つけやすくなります。
- 文字とファイルのどちらをコピーしたいのか確認する
- デスクトップなら
Ctrl + CとCtrl + Vを使う - Linuxターミナルなら
Ctrl + Shift + CとCtrl + Shift + Vを使う - 右クリックメニューから貼り付けられるか確認する
- VirtualBoxなら共有クリップボードを確認する
- Guest Additionsが入っているか確認する
- SSHでは手元のターミナルソフトの設定を確認する
- Vimでは挿入モードへ移動する
Linuxでは、すべての画面で同じショートカットを使えるわけではありません。
私もLinuxを使い始めたころは、Ctrl + Cを押してコマンドを止めてしまうことがありました。
ただ、ターミナルにはターミナルの役割があると分かれば、操作の違いも覚えやすくなります。
まずは自分がどの環境を使っているのか確認し、その環境に合った方法を試してみてください。
Linuxを実際に操作しながら学びたい方へ¶
Linuxの操作は、文章を読むだけで覚えるのは難しいです。
コマンドを入力し、間違えながら操作した方が、少しずつ身についていきます。
Linuxを基礎から学びたい方は、Linux入門講座を確認してみてください。