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

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

重要なポイント

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

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

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

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

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

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

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

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

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

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

ls -R /

ls -R / ターミナルウィンドウ内

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

Ctrl+C

ターミナル ウィンドウで Ctrl+C

プロセスlsは終了します。目に見える証拠がCtrl+Cスクリーンショットで強調表示されています。と表示されます^C

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

Ctrl+V, Enter Ctrl+V, PgDn Ctrl+V, RightArrow Ctrl+V, Esc

ターミナルウィンドウで Ctrl+V、Enter

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

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

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

これらは対応するものと非常に似ており、 と を直接置き換えることができるため、簡単にCtrl+Shift+C覚えられCtrl+Shift+V ます。Ctrl+CCtrl+V

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

Ctrl+Shift+C

ターミナル ウィンドウで Ctrl+Shift+C

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

Ctrl+Shift+V

ターミナル ウィンドウで Ctrl+Shift+V

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

ターミナル ウィンドウから gedit エディターに貼り付ける

そして、反対方向に進むこともできます。内のテキストを強調表示しgeditて を押しCtrl+C、それを を使用して端末ウィンドウに貼り付けることができますCtrl+Shift+V

gedit エディターからコピーしてターミナル ウィンドウに貼り付ける

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

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

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

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

コンテキスト メニューとコピーが強調表示されたターミナル ウィンドウ

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

コンテキスト メニューと貼り付けが選択されたターミナル ウィンドウ

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

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

コピー&ペーストによってディレクトリが変更されたターミナルウィンドウ

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

マウスの使用: 中ボタン

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

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

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

テキストが強調表示されたターミナル ウィンドウ

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

コマンド ラインに強調表示されたテキストが貼り付けられたターミナル ウィンドウ

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

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

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

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

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

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

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

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

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

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

Ctrl+Alt+F3 tty

ターミナルウィンドウのtty3

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

ls -l file_to_delete.txt

ターミナル ウィンドウでの ls -l file_to_delete.txt

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

ターミナルウィンドウのコマンド履歴から取得したコマンド

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

ターミナルウィンドウでの Ctrl+K の効果

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

ターミナルウィンドウでバックスペースで行をクリアする

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

ターミナルウィンドウでrm

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

ターミナル ウィンドウでの Ctrl+Y の効果

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

ターミナル ウィンドウにエラー メッセージが表示されずにファイルが削除されました

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

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

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

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 traceroute ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です