技術ノート Linux Linux の Bash シェルでテキストをコピーして貼り付ける方法

Linux の Bash シェルでテキストをコピーして貼り付ける方法

重要なポイント

  • グラフィカル アプリケーションでコピー アンド ペーストするためによく使用される Ctrl+C および Ctrl+V は、Bash シェル コマンド プロンプトでは機能しません。
  • Bash シェル コマンド プロンプトでコピーして貼り付けるには、Ctrl+Shift+C および Ctrl+Shift+V を使用するか、マウスで右クリックしてコンテキスト メニューから [コピー] および [貼り付け] を選択します。
  • マウスの中ボタンを押して、選択したテキストをカーソルの位置に自動的に貼り付けることもできます。

Bash シェルのコマンド ラインでコピーして貼り付けたいですか?キーボードを使うかマウスを使うかに関係なく、複数のテクニックを紹介します。これらは、グラフィカル デスクトップを使用している場合でも、従来のテキスト ベースの TTY を使用している場合でも機能します。

コピーして貼り付けるための通常のキーボード ショートカットが機能しない

テキストのコピーと貼り付けは、コンピューターを使用する上で欠かせない作業です。 Windows 環境出身か macOS 環境出身かに関係なく、Linux コンピューターを初めて数回使用する人は、ターミナル ウィンドウ内でコピー アンド ペーストしようとして混乱することがよくあります。

Windows では、 Ctrl+C を使用して強調表示されたテキストのセクションをコピーし、 Ctrl+V 使用して貼り付けます。 macOS では、 Command+C 使用してコピーし、 Command+V 使用して貼り付けます。これらは、コピーには C 、挿入には V という同じ規則に従います。

これらとまったく同じキーストロークは、エディター gedit LibreOffice オフィス スイートなど、ほとんどの Linux グラフィカル アプリケーションで機能します。 Ctrl+C で強調表示されたテキストをコピーし、 Ctrl+V でカーソルに貼り付けます。 Linux の初心者は、これらの規則がこれらのアプリケーションに引き継がれているという事実についてはおそらく考えてもいません。彼らは筋肉の記憶に基づいたキーストロークを使用して、作業を進めます。

新人がターミナル ウィンドウを開いて Bash シェル コマンド プロンプトにコピー アンド ペーストしようとすると、すべてが変わります。 Ctrl+C Ctrl+V コピーと貼り付けが考えられるずっと前から機能として割り当てられていました。実際、これらのキーストロークは、グラフィカル シェルが発明されるずっと前、 テレタイプ (TTY) が物理的なものであった頃に採用されました。

Linux の Bash シェルでテキストをコピーして貼り付ける方法

TTY での Ctrl+C および Ctrl+V

TTY が物理デバイスだったときは、信号を生成するための便利なキーの組み合わせとして Ctrl+C が選択されていました。その信号は SIGINT で、現在のプロセスに終了を指示します。ターミナル ウィンドウはエミュレートされた TTY であるため、そのキーストロークの組み合わせ (およびその他の多くの組み合わせ) がエミュレーションで保存および複製されます。エミュレーションは端末ウィンドウであることに注意してください。 Bash シェルは、エミュレートされた TTY で実行されるプログラムです。

Ctrl+C Ctrl+V に割り当てられている機能を簡単に確認できます。次のコマンドを入力して「Enter」を押したとします。

 ls -R /

-R (再帰) オプションを使用しているため、 ls コマンドはルート ディレクトリから始めてすべてのファイルとディレクトリの一覧表示を開始します。しばらくして、これが望んでいたものではないことに気づき、 Ctrl+C を押してプロセスを終了します。

 Ctrl+C

ls プロセスが終了します。 Ctrl+C を押した痕跡がスクリーンショットで強調表示されています。 ^C と表示されます。

Ctrl+V キーの組み合わせは、「逐語的挿入」を呼び出します。これにより、キーの効果を取得するのではなく、入力内容にキーの表現を入力することができます。これを確認するには、次のコマンドを試してください (カンマは入力しないでください)。 (たとえば、最初の方法を試すには、Ctrl+V を押してから Enter を押します。)

 Ctrl+V、Enter

 Ctrl+V、PgDN

 Ctrl+V、右矢印

Ctrl+V、Esc

余談ですが、 Enter は ^M で表されることに気づくかもしれません。先ほど、 Ctrl+C ^C として表示されることを確認しました。 ^ Ctrl を表すようです。したがって、 Ctrl+M おそらく Enter と同じ意味です。ということは、 Ctrl+M を入力してEnterを入力できるということですか?ターミナル ウィンドウで試してください。そうであることがわかります。

したがって、明らかに、 Ctrl+C Ctrl+V には、古くからある機能がすでに割り当てられている場合、テキストのコピーと貼り付けを実行することは期待できません。では、何が使えるのでしょうか?

Linux の Bash シェルでテキストをコピーして貼り付ける方法

Ctrl+Shift+C および Ctrl+Shift+V

Ctrl+Shift+C Ctrl+Shift+V は、対応するものと非常に似ているため覚えやすく、 Ctrl+C Ctrl+V を直接置き換えることができます。

ターミナル ウィンドウでマウスを使用してテキストを強調表示し、 Ctrl+Shift+C キーを押すと、そのテキストがクリップボード バッファにコピーされます。

 Ctrl+Shift+C

Ctrl+Shift+V を使用して、コピーしたテキストを同じ端末ウィンドウまたは別の端末ウィンドウに貼り付けることができます。

 Ctrl+Shift+V

gedit などのグラフィカル アプリケーションに貼り付けることもできます。ただし、ターミナル ウィンドウではなくアプリケーションに貼り付ける場合は、 Ctrl+V 使用する必要があることに注意してください。

そして、別の道に進むこともできます。 gedit でテキストを強調表示して Ctrl+C を押し、 Ctrl+Shift+V を使用してターミナル ウィンドウに貼り付けることができます。

キーの組み合わせ Ctrl+Insert Ctrl+Shift+C と同じであり、 Shift+Insert 組み合わせは Ctrl+Shift+V と同じです。ここでの注意点は、これらは同じターミナル ウィンドウ内でのみ使用できるということです。

Linux の Bash シェルでテキストをコピーして貼り付ける方法

マウスの使用: 右クリック

マウスを使用して、ターミナル ウィンドウにコピーして貼り付けることができます。コピーするテキストを強調表示するにはマウスを使用する必要があります。そのため、マウスを使用してコピーと貼り付けの操作を実行してみてはいかがでしょうか。

テキストを強調表示したら、マウスを右クリックしてコンテキスト メニューから [コピー] を選択します。

コピーしたテキストを貼り付けるには、もう一度マウスで右クリックし、コンテキスト メニューから「貼り付け」を選択します。

テキストはコマンド ラインのカーソルの位置に貼り付けられます。この例では、相対パスが間違って指定されているため、Bash はディレクトリを変更できません。ユーザーはパスの先頭にある「~/」を見逃しました。 「~/」を入力し、前回のパスの残りの部分をコピーして、2 番目のコマンド ラインに貼り付けました。

Enter キーを押すと、ディレクトリに移動します。

この例では、同じターミナル ウィンドウに貼り付ける方法を示しましたが、この右クリック手法を使用して、別のターミナル ウィンドウに貼り付けることもできます。この方法を使用して、グラフィカル アプリケーションに貼り付けることもできます。

Linux の Bash シェルでテキストをコピーして貼り付ける方法

マウスの使用: 中ボタン

マウスに中ボタンがある限り、マウスを使用してコピー アンド ペーストするさらに高速な方法があります。スクロール ホイールを (優しく!) 押し下げてカチッという音が鳴れば、中ボタンが表示されます。

ターミナル ウィンドウでテキストを強調表示し、中ボタンを押します。強調表示されたテキストがコマンド ラインのカーソル位置に貼り付けられます。コピーとペーストは同時に行われます。

そこで、いくつかのテキストを強調表示します。

次に、中央のボタンを押します。

この方法を使用すると、異なる端末ウィンドウ間で貼り付けたり、グラフィカル アプリケーションに貼り付けたりすることもできます。テキストを強調表示し、他の端末ウィンドウまたはアプリケーションに移動して、中央のボタンを押すだけです。

Linux の Bash シェルでテキストをコピーして貼り付ける方法

オールドスクール – マウスなし

マウスがない場合はどうすればよいでしょうか?テキストをハイライト表示できない場合、どうやってコピーして貼り付けることができますか?

Linux サーバーは多くの場合 、グラフィカル デスクトップ環境 (GDE) なしで構成されています。つまり、マウスにアクセスできません。 GNOME などのグラフィカル デスクトップ環境を実行している Linux コンピューター上でマウスを使用している場合でも、マウスを使用してテキストを強調表示できない場合があります。

たとえば、追加の TTY の 1 つに切り替えた可能性があります。最新のディストリビューションでは、これらは Ctrl+Alt+F3 (TTY3) から Ctrl+Alt+F6 (TTY6) にあります。 ( Ctrl+Alt+F2 押すと GDE セッションに戻り、 Ctrl+Alt+F1 GDE のログイン画面に移動します。)

おそらく、純正のハードウェア TTY デバイスを使用して Linux または Unix コンピュータに接続している可能性もあります。

いずれにせよ、これらのテクニックは役に立ちます。ここで覚えておくべき点は、これはコピー アンド ペーストではなく、切り取り、コピー、貼り付けであり、現在のコマンド ラインからのみ切り取りとコピーができるということです。もちろん、矢印キーを使用して履歴をスクロールし、切り取り、コピー、貼り付け元のコマンド ラインを見つけることもできます。

使用できるキーストロークは次のとおりです。

  • Ctrl+W : カーソルの前の単語を切り取り、クリップボード バッファに追加します。
  • Ctrl+K : カーソルの後の行の部分を切り取り、クリップボードのバッファーに追加します。カーソルが行の先頭にある場合は、行全体が切り取られてコピーされます。
  • Ctrl+U : カーソルより前の行の部分を切り取り、クリップボードのバッファーに追加します。カーソルが行末にある場合は、行全体が切り取られてコピーされます。
  • Ctrl+Y : 切り取ってコピーした最後のテキストを貼り付けます。

TTY3 に移動しましょう。 (後でデスクトップに戻るには、Ctrl+Alt+F1 を使用します。)

 Ctrl+Alt+F3

てぃ

削除したいファイルがあるので、ここにあることを確認してみましょう。

 ls -l 削除するファイル.txt

上矢印キーを使用すると、コマンド履歴から最後に使用したコマンドが呼び出されます。この行を編集することもできますが、目的は切り取り、コピー、貼り付けを示すことなので、少し時間をかけてファイルを削除するタスクを完了します。

カーソルをファイル名の最初の文字に移動し、 Ctrl+K を押します。これにより、行のその部分が削除され、テキストがクリップボード バッファにコピーされます。

線が消えるまで Backspace キーを押します。

rm と入力してファイルを削除します。

これで、 Ctrl+Y を押して行の残りの部分を貼り付けることができます。

これでコマンドは完了です。Enter キーを押してファイルを削除できます。

このタイプの切り取り、コピー、および貼り付けは、追加の TTY 間では使用できません。たとえば、TTY3 と TTY4 の間では、切り取り、コピー、および貼り付けを行うことはできません。

追加の TTY は、並んで配置されている一連の物理 TTY として考えるのが最も適切です。異なる物理端末間でカット アンド ペーストする方法はなく、これらのエミュレーションでもカット アンド ペーストする方法はありません。

Linux の Bash シェルでテキストをコピーして貼り付ける方法

コピー・ザット、コントロール

Linux コンピューターを使用するときにどのような状況に陥っても、コピーして貼り付ける方法があります。選択肢はあります。中には奇妙なオプションもありますが、少なくともオプションはあります。

Linuxコマンド

ファイル

tar pv cat tac chmod grep diff sed ar man pushd popd fsck testdisk seq fd pandoc cd $PATH awk join jq fold uniq journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · パッチ · 変換 · rclone · シュレッド · srm · scp · gzip · chattr · カット · 検索 · umask · wc · tr

プロセス

エイリアス · スクリーン · トップ · ナイス · renice · 進行状況 · strace · systemd · tmux · chsh · 履歴 · at · バッチ · フリー · what · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · タイムアウト · ウォール · はい · キル · スリープ · sudo · su · タイム · groupadd · usermod · グループ · lshw · シャットダウン · 再起動 · 停止 · パワーオフ · パスワード · lscpu · crontab · 日付 · bg · fg · pidof · nohup · pmap

ネットワーキング

netstat ping ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

「 Linux の Bash シェルでテキストをコピーして貼り付ける方法」に関するベスト動画選定!

【初心者向け】シェルスクリプト書き方編【前編】
bashシェルでログの必要なところだけ抽出しよう!【linux】【インフラエンジニア】【LPIC101】【セキュリティエンジニア】【LPIC101】【コマンド】