如何在 Linux 的 Bash Shell 中複製和貼上文本

如何在 Linux 的 Bash Shell 中複製和貼上文本

重點

  • Ctrl+C 和 Ctrl+V 通常用於在圖形應用程式中進行複製和貼上,但在 Bash shell 命令提示字元中不起作用。
  • 要在 Bash shell 命令提示字元中複製和貼上,可以使用 Ctrl+Shift+C 和 Ctrl+Shift+V 或右鍵單擊滑鼠,然後從上下文功能表中選擇「複製」和「貼上」。
  • 您也可以按滑鼠中鍵將所選文字自動貼上到遊標位置。

想要在 Bash shell 的命令列中複製並貼上嗎?無論您喜歡鍵盤還是滑鼠,我們都會向您展示多種技術。無論您使用的是圖形桌面還是傳統的基於文字的 TTY,這些功能都適用。

通常的複製和貼上鍵盤快捷鍵不起作用

複製和貼上文字是使用電腦的主要部分。當人們第一次使用 Linux 電腦時,無論他們來自 Windows 還是 macOS 世界,當他們嘗試在終端機視窗中複製和貼上時,他們常常會感到困惑。

在 Windows 中,您可以Ctrl+C複製突出顯示的文字部分並將Ctrl+V其貼上。在 macOS 中,您可以使用Command+C複製和Command+V貼上的方式。C它們遵循相同的複製和V插入約定。

這些完全相同的擊鍵適用於大多數 Linux 圖形應用程序,例如編輯器geditLibreOffice辦公室套件。Ctrl+C複製突出顯示的文字並將Ctrl+V其貼上到遊標處。我們的 Linux 新手可能根本沒有想到這些約定已被應用到這些應用程式中。他們使用肌肉記憶中的擊鍵並繼續工作。

一旦我們的新手打開終端機視窗並嘗試在Bash shell命令提示字元下複製和貼上,一切都會改變。早在複製和貼上被想到之前就被分配了功能Ctrl+CCtrl+V事實上,這些擊鍵早在圖形 shell 發明之前就已經被採用了,當時電傳打字機 (TTY)只是物理存在。

TTY 中的 Ctrl+C 和 Ctrl+V

當 TTY 是實體設備時,Ctrl+C被選為產生訊號的便捷組合鍵。該訊號是SIGINT,它告訴當前進程終止。由於終端視窗是模擬的 TTY,因此該擊鍵組合(以及許多其他組合)已在模擬中保留和複製。請注意,終端機視窗是模擬。Bash shell 是在模擬 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 由 表示^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 無法變更目錄。用戶錯過了路徑開頭的“~/”。他們輸入了“~/”,然後複製了之前嘗試的剩餘路徑並將其貼上到第二個命令行中。

當他們按 Enter 鍵時,它們將被移動到該目錄。

透過複製和貼上更改目錄的終端窗口

此範例顯示了貼上到同一個終端視窗中,但您可以使用此右鍵單擊技術貼上到不同的終端視窗中。您也可以使用此方法貼上到圖形應用程式中。

使用滑鼠:中鍵

只要您的滑鼠有中鍵,還有一種更快的方法可以使用滑鼠進行複製和貼上。如果您按下滾輪(輕輕地!)並發出咔噠聲,您就得到了一個中間按鈕。

突出顯示終端機視窗中的一些文本,然後按中鍵。突出顯示的文字將貼上到命令列上的遊標位置。複製和貼上同時發生。

因此,突出顯示一些文字:

突出顯示一些文字的終端機窗口

然後按中間按鈕:

終端機窗口,其中突出顯示的文字貼在命令列上

您可以使用此方法在不同的終端機視窗之間貼上,也可以貼上到圖形應用程式中。只需突出顯示文本,移動到其他終端視窗或應用程序,然後按中間按鈕。

老派——沒有滑鼠

如果沒有滑鼠怎麼辦?如果無法突出顯示任何文本,如何複製和貼上它?

Linux 伺服器通常配置為沒有圖形桌面環境(GDE),這表示您無法使用滑鼠。即使在運行 GNOME 等圖形桌面環境的 Linux 電腦上並且您有滑鼠,也會存在無法使用滑鼠突出顯示文字的情況。

例如,您可能已切換到其他 TTY 之一。在現代發行版中,這些位置位於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 tty

終端機視窗中的 tty3

我們有一個要刪除的文件,讓我們檢查一下它是否在這裡。

ls -l file_to_delete.txt

在終端機視窗中 ls -l file_to_delete.txt

如果我們使用向上箭頭鍵,我們將呼叫命令歷史記錄中最後使用的命令。我們可以只編輯這一行,但目的是演示剪切、複製和貼上,因此我們將以稍微耗時的方式完成刪除文件的任務。

從終端機視窗中的命令歷史記錄中檢索命令

我們將遊標移到檔案名稱的第一個字母,然後按Ctrl+K。這將刪除該行的該部分並將文字複製到剪貼簿緩衝區。

Ctrl+K 在終端機視窗中的效果

我們將按退格鍵,直到清除該行。

在終端機視窗中使用退格鍵清除行

我們將輸入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 · p.opd · fsck · testdisk · seq · fd · pandoc · cd · $ ATHPATH _ _ _ _ _ _ _ _ uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · 查看 · 字串 · 輸入·命名 · zip ·解壓· mount · umount ·安裝· fdisk · mmdir · rm · mmdir · rm rsync · df · gpg · vi · nano · mkdir · du · ln · patch ·轉換· rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr

流程

別名 · 螢幕 · 頂部 · 不錯 · renice · 進度 · strace · systemd · tmux · chsh · 歷史記錄 · at · 批次 · 空閒 · 哪個 · dmesg · chfn · usermod · ps · chroot · xargs · tty ·小指· lsof ·小指· vmstat ·超時· wall · yes · kill ·睡眠· sudo · su ·時間· groupadd · usermod · groups · lshw · shutdown · reboot · h · poweroff · passwd · lscpu · crontab · date cron · poweroffg passwd · lscpu · cron _ pmap

聯網

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *