bash的特性-常見的快捷鍵

一、前言

在 Linux Shell 編程和日常使用中,Bash 快捷鍵 是提升命令行操作效率的利器。熟練掌握這些快捷鍵,不僅可以節省大量輸入時間,還能顯著提升你在終端環境下的操作流暢度。

本文將帶你全面了解 Bash 中常用的快捷鍵,包括:

? 命令行編輯快捷鍵
? 歷史命令操作快捷鍵
? 光標移動與文本操作
? 任務控制與進程管理
? 實用技巧與組合鍵
? 實戰案例:快捷鍵組合提升效率
? 常見問題與解決方案

并通過完整示例幫助你快速掌握 Bash 快捷鍵的使用與配置。

二、什么是 Bash 快捷鍵?

Bash 快捷鍵是基于 Readline 庫 提供的一系列鍵盤操作命令,用于在終端中高效地編輯命令行、調用歷史命令、切換任務等。它們通常使用 CtrlAltEsc 等修飾鍵配合字母鍵實現。

三、Bash 快捷鍵分類一覽

類別快捷鍵功能
命令行編輯Ctrl + a移動光標到行首
Ctrl + e移動光標到行尾
Alt + b向左移動一個單詞
Alt + f向右移動一個單詞
Ctrl + f向右移動一個字符
Ctrl + b向左移動一個字符
Ctrl + d刪除光標處字符
Ctrl + h刪除光標前一個字符(相當于退格)
Alt + d刪除光標后一個單詞
Ctrl + w刪除光標前一個單詞
Ctrl + k刪除光標后所有內容
Ctrl + u刪除整行命令
Ctrl + y粘貼之前刪除的內容
Ctrl + t調換光標前后字符
Alt + t調換前后兩個單詞
Alt + l將當前單詞轉為小寫
Alt + u將當前單詞轉為大寫
Esc + .?或?Alt + .插入上一條命令的最后一個參數

四、歷史命令操作快捷鍵

快捷鍵功能
?或?Ctrl + p上一條歷史命令
?或?Ctrl + n下一條歷史命令
Ctrl + r逆向搜索歷史命令(輸入關鍵詞搜索)
Ctrl + s正向搜索歷史命令(需啟用)
Ctrl + o執行當前歷史命令并顯示下一條
Esc + <顯示第一條歷史命令
Esc + >顯示最后一條歷史命令

五、任務控制與進程管理快捷鍵

快捷鍵功能
Ctrl + c終止當前前臺進程
Ctrl + z掛起當前進程(可使用?bg?或?fg?恢復)
Ctrl + \強制終止當前進程(發送 SIGQUIT)
Ctrl + l清屏(等同于?clear
Ctrl + s暫停終端輸出(需按?Ctrl + q?恢復)
Ctrl + q恢復終端輸出

六、實用快捷鍵組合與技巧

? 1. 快速跳轉與編輯

$ echo "This is a long command"
  • Ctrl + a:跳轉到行首
  • Ctrl + e:跳轉到行尾
  • Alt + b/f:逐詞跳轉
  • Ctrl + w:刪除前一個單詞
  • Ctrl + k:刪除到行尾

? 2. 使用?Ctrl + r?快速查找歷史命令

$ Ctrl + r
(reverse-i-search)`': 

輸入關鍵詞,如 git,會自動匹配最近的命令:

(reverse-i-search)`git': git commit -m "update"

Enter 執行,或 Ctrl + j 插入該命令。

? 3. 快速插入上一條命令的參數

$ ls -l /home/user/documents
$ cat /home/user/documents/file.txt

在輸入第二條命令時,可以使用 Alt + . 插入上一條命令的最后一個參數:

$ cat <Alt + .>

自動補全為:

$ cat /home/user/documents

? 4. 清除當前命令行

$ echo "This is a test command"
  • Ctrl + u:刪除整行命令
  • Ctrl + a + Ctrl + k:先跳到行首,再刪除整行

? 5. 替換大小寫

$ echo hello world
  • Alt + u:將?hello?轉為大寫 →?HELLO
  • Alt + l:將?HELLO?轉為小寫 →?hello

七、實戰案例:快捷鍵組合提升效率

? 場景1:快速修改歷史命令

你之前執行過:

$ cp /var/log/syslog /backup/logs/

現在想執行:

$ cp /var/log/syslog /backup/logs/2025/

只需:

  1. ?調出上一條命令
  2. Alt + f?移動到最后一個單詞
  3. Alt + d?刪除?logs/
  4. 輸入?logs/2025/

即可完成修改,無需重新輸入整條命令。

? 場景2:快速執行遠程命令

你經常執行:

$ ssh user@192.168.1.10 "systemctl restart nginx"

可以使用 Ctrl + r 搜索 nginx,快速找到并執行該命令。

八、自定義快捷鍵與配置

你可以在 ~/.inputrc 文件中自定義快捷鍵綁定。例如:

# 設置 Tab 補全時顯示所有匹配項
set show-all-if-ambiguous on# 使用 Ctrl + Left/Right 移動光標
"\e[1;5C": forward-word
"\e[1;5D": backward-word

然后執行:

source ~/.inputrc

九、常見問題與解決方案

問題原因解決方案
Ctrl + s?無法使用默認被終端占用執行?stty -ixon?禁用流控制
Ctrl + r?搜索不生效歷史記錄為空執行幾條命令后再試
快捷鍵無反應輸入法干擾切換為英文輸入法
自定義快捷鍵未生效未 source 配置文件執行?source ~/.inputrc
快捷鍵沖突與其他軟件沖突檢查終端設置或使用?bind -P?查看快捷鍵列表

十、總結對比表:Bash 常見快捷鍵一覽

功能快捷鍵說明
移動光標到行首Ctrl + a快速定位
移動光標到行尾Ctrl + e快速定位
刪除整行Ctrl + u快速清空命令
刪除光標后內容Ctrl + k截斷命令
插入上一條參數Alt + .快速重用參數
歷史搜索Ctrl + r快速回溯命令
終止進程Ctrl + c中斷當前任務
掛起進程Ctrl + z可后臺恢復
清屏Ctrl + l等同于?clear

十一、結語

感謝您的閱讀!如果你有任何疑問或想要分享的經驗,請在評論區留言交流!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916643.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916643.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916643.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Java Web實戰】從零到一打造企業級網上購書網站系統 | 完整開發實錄(三)

&#x1f3a8; 核心功能設計 &#x1f464; 用戶管理系統 用戶管理是整個系統的基礎&#xff0c;我設計了完整的用戶生命周期管理&#xff1a; &#x1f510; 用戶注冊流程 #mermaid-svg-D0eUHWissjNhkqlB {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…

uniapp input 聚焦時鍵盤彈起滾動到對應的部分

實現效果代碼如下<template><view idapp><view class"aa"></view><iconfont name"left"></iconfont>姓氏&#xff1a;<input style"background-color: antiquewhite;" type"text" v-model&quo…

【基礎篇三】WebSocket:實時通信的革命

目錄 一、傳統HTTP的"痛點"分析 1.1 HTTP的單向通信模式 1.2 "實時"效果的痛苦嘗試 ?編輯 1.3 性能對比分析 二、WebSocket 協議詳解 2.1 WebSocket是什么&#xff1f; ?編輯 2.2 WebSocket的核心特性 2.2.1 全雙工通信&#xff08;Full-Duple…

設計模式(十八)行為型:中介者模式詳解

設計模式&#xff08;十八&#xff09;行為型&#xff1a;中介者模式詳解中介者模式&#xff08;Mediator Pattern&#xff09;是 GoF 23 種設計模式中的行為型模式之一&#xff0c;其核心價值在于通過引入一個中介者對象來封裝一組對象之間的交互&#xff0c;從而降低對象間的…

Upload-Labs通關全攻略詳細版

前端校驗繞過:pass 01 兩種思路:1.通過抓包,修改后綴 2.前端禁用js繞過前端后綴檢驗 首先寫一個木馬,改為圖片格式GIF89a<?php eval($_POST[cmd])?>抓包之后改為PHP格式: 使用蟻劍連接木馬,第一次嘗試一直是返回數據為空,原因是沒有鏈接到木馬,于是尋找木馬地址…

C#觀察者模式示例代碼

using System; using System.Collections.Generic; using System.Threading;namespace RefactoringGuru.DesignPatterns.Observer.Conceptual {// Observer觀察者 也可以叫做訂閱者 subscriberspublic interface IObserver{// Receive update from subject// 接收來自主題的更新…

電子電子架構 --- 軟件項目的開端:裁剪

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 簡單,單純,喜歡獨處,獨來獨往,不易合同頻過著接地氣的生活,除了生存溫飽問題之外,沒有什么過多的欲望,表面看起來很高冷,內心熱情,如果你身…

Open CV圖像基本操作可莉版

Open CV圖像基本操作一、處理單個像素值訪問像素值修改像素值二、處理單個ROI區域&#xff08;自選區域&#xff09;提取 ROI修改 ROI三、 處理圖像通道通道分離通道合并四、處理整體圖像縮放圖像旋轉圖像平移圖像翻轉一、處理單個像素值 圖像是由像素組成的矩陣&#xff0c;每…

k8s:將打包好的 Kubernetes 集群鏡像推送到Harbor私有鏡像倉庫

本文介紹了在離線環境中部署Harbor鏡像倉庫的完整流程。首先通過腳本創建多個Harbor項目&#xff0c;然后使用KubeKey工具將預打包的Kubernetes鏡像(kubesphere.tar.gz)推送到Harbor倉庫。接著配置containerd以支持從私有倉庫拉取鏡像&#xff0c;包括設置TLS證書和鏡像倉庫端點…

IntelliJ IDEA中管理多版本Git子模塊的完整指南

1.背景介紹項目是父子工程。父工程XXX-ZZZ-CCC。子模塊XXX-api在線上git網站管理,有多個分支版本。現在需要接收別人代碼&#xff0c;導入到本機管理。可以實現本機切換&#xff0c;修改&#xff0c;上傳。2.創建本地倉庫并拉取所有版本2.1.創建目錄在D:\ideaworkspace\midend-…

Android ADB命令之內存統計與分析

一、核心命令總覽工具 / 命令用途示例adb shell dumpsys meminfo查看設備全局內存狀態adb shell dumpsys meminfoadb shell dumpsys meminfo <package>獲取應用詳細內存分類統計adb shell dumpsys meminfo com.example.appadb shell top動態查看進程內存和 CPU 占用adb s…

算法思維進階 力扣 300.最長遞增子序列 暴力搜索 記憶化搜索 DFS 動態規劃 C++詳細算法解析 每日一題

目錄零、題目描述一、為什么這道題值得你深入理解&#xff1f;二、題目拆解&#xff1a;提取核心關鍵點三、明確思路&#xff1a;從暴力到優化的完整進化3. 進一步優化&#xff1a;動態規劃&#xff08;自底向上遞推&#xff09;4. 終極優化&#xff1a;貪心 二分查找&#xf…

圖解網絡-小林coding筆記(持續更新)

大綱 #mermaid-svg-trl6Q4B1uDO1z05w {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-trl6Q4B1uDO1z05w .error-icon{fill:#552222;}#mermaid-svg-trl6Q4B1uDO1z05w .error-text{fill:#552222;stroke:#552222;}#merm…

安寶特案例丨AR+AI+SOP?3大技術融合革新軍工航天領域

軍工、航空、航天領域存在 “小批量、多品種、依賴人工經驗裝配”的特性&#xff0c;這長期制約著生產效率與產品質量的提升。 技術融合應用案例 1 Arbigtec 裝配效率提升類&#xff1a; 某型導彈制導系統裝配&#xff1a;采用 AR 眼鏡與 AI 視覺引導系統&#xff0c;200 精…

ip link show 查看/配置網絡接口

ip link show&#xff08;或簡寫為 ip link&#xff09;是 Linux 系統中用于查看和配置網絡接口&#xff08;網卡、虛擬接口等&#xff09;的命令&#xff0c;屬于 iproute2 工具集的一部分。它是現代 Linux 系統中替代傳統 ifconfig 命令的更強大工具。命令詳解 基本語法 ip l…

電科金倉新一代數據庫一體機:以 “云數據庫 - AI 版” 引領 AI 時代數據庫變革

前言 AI時代的數據庫一體機市場&#xff0c;只能用兩個詞來形容&#xff1a;高手云集&#xff0c;戰況激烈&#xff01; 國際巨頭仍在高端市場占據主導地位&#xff0c;但在國產替代的沖擊下&#xff0c;也開始另尋突破口&#xff1b;國內科技大廠攻勢迅猛&#xff0c;通過開源…

IT運維的365天--033 跨交換機部署沒有單獨供電口的愛快AP到另一個地方去

前情提要&#xff1a;由于工作需要&#xff0c;領導要求在車間也添加一個無線網絡供員工和設備使用&#xff0c;之前公司已經有一個愛快網絡供員工使用&#xff0c;且物理隔絕部署在集團辦公樓這邊了。我一向是不喜歡碰到一個小事就拉一條網線&#xff0c;那樣不得搞的跟蜘蛛網…

Flutter開發實戰之路由與導航

第5章:路由與導航 在移動應用開發中,頁面間的跳轉是最基本也是最重要的功能之一。就像我們在現實生活中需要從一個房間走到另一個房間一樣,在App中,用戶需要在不同的界面間自由切換。Flutter提供了強大而靈活的路由系統來管理這些頁面跳轉,本章將深入探討Flutter的路由與…

Android 圖像編輯實戰指南:從基礎操作到進階效果

在移動應用中&#xff0c;圖像編輯功能已成為標配 —— 社交 APP 需要裁剪頭像&#xff0c;電商 APP 需要給商品圖加水印&#xff0c;工具 APP 需要提供濾鏡效果。看似簡單的 “裁剪”“縮放” 背后&#xff0c;實則涉及 Bitmap 像素操作、內存管理、性能優化等核心技術。很多開…

Java從入門到精通!第十八天(JDK17安裝以及網絡編程) 完結篇!!!

三、網絡編程1&#xff0e;網絡編程概述Java 是 Internet 上的語言&#xff0c;它從語言級上提供了對網絡應用程序的支持&#xff0c;程序員能夠很容易開發常見的網絡應用程序。2&#xff0e;網絡的基礎&#xff08;1&#xff09;計算機網絡把分布在不同地理區域的計算機與專門…