[Linux] Vim編輯器 Linux輸入輸出重定向

Vim編輯器?

Vim模式

  • command模式:該模式下鍵盤中的字母有特殊含義。如:G是跳轉到最后一行;gg是跳轉到第一行。

  • edit模式:在command模式下按i進入該模式。在該模式可以輸入內容。在該模式下按esc返回command模式。

  • extended command模式:在command模式下按:,進入該模式。在該模式下,可以保存文件(:w),強制退出編輯(:q!),報錯并退出(:wq)

  • visual edit模式:在command模式下按v(單個字符選中),V(整行選中)或ctrl+v(按矩形選中)進入該模式。在該模式下,用于選中文件,隨后可以復制或刪除選中的內容

命令行模式快捷鍵

定位文件內容:

  • 單個字符移動,方向鍵↑↓←一→和鍵盤字母(h j k l)

  • w,向后1個word(word開頭);b,向前1個word(word開頭);

  • e,向后1個word(word結尾);

  • ^,行首第一個字母;$,行尾最后一個字母;數字0,行首第一個字母。

  • (,上一個句子頭部;),下一個句子尾部。

  • {,上一個段落頭部;},下一個段落尾部。

  • gg,文章第一行;G,文章最后一行。

  • 45G,跳轉到45行。

插入模式:

  • i,當前位置插入。

  • 1,行首插入。

  • a,當前位置追加。

  • A,行末追加。

  • o,向下新開一個空白行

  • O,向下新開一個空白行

復制:yy,復制1行,相當于y1y。以此類推y2y y2w y2b。

粘貼:p當前位置后粘貼;P當前位置前粘貼。

刪除:

  • X,刪除當前單個字符。5x,刪除當前字符和后續4個字符。

  • dw,刪除1個word,以此類推d5w d3b d2d d$

  • D,從當前刪除到最后,相當于d$

回退:

  • u,回退一個操作。

  • U,回退當前行所有操作。

前進:ctrl+r,前進一個操作,與u相對。

修改,相當于刪除后插入:

  • S,刪除當前字符,并進入編輯模式。

  • S,刪除當前行,并進入編輯模式。

  • c,代表替換動作,例如cw,刪除1個word,并進入編輯模式。

  • C,從當前刪除到最后,并進入編輯模式。

替換:

  • r,替換單個字符后回退到命令行模式。

  • R,替換模式,一直替換直到按EsC返回命令行模式。

擴展命令行模式

  • :1,10d,刪除1到10行

  • :%s/10.5.5/10.1.8/g,將所有行中10.5.5替換為10.1.8

  • :5,$d,刪除第5行到最后一行

  • :w /path/to/file另存為/path/to/file。

  • :! date,執行date命令。

查找

  • /string,查看string字符串

  • /STRING\c,忽略大小寫查找string字符串

Linux輸入輸出重定向?

輸出重定向到文件

|通道名稱|描述|默認鏈接|用法| |-|-|-|-| |stdin|標準輸入|鍵盤|僅讀取| |stdout|標準輸出|終端|僅寫入| |stderr|標準錯誤|終端|僅寫入| |filename|其他文件|無|讀取/寫入|

輸入/輸出(I/O)重定向可更改進程獲取其輸入或輸出的方式。進程可以執行文件讀取或寫入,而不從鍵盤獲取輸入,也不將輸出和錯誤發送到終端。通過重定向,您可以將消息保存到文件,而不在終端上顯示輸出。

|用法|說明| |-|-| |> file|重定向stdout以覆蓋文件| |>> file|重定向stdout以附加到文件| |2> file|重定向stderr以覆蓋文件| |2> /dev/null|將stderr錯誤信息重定向到/dev/null,從而將它丟棄|

獨立輸出

查找/etc目錄下文件名是passwd的所有文件

find /etc -name 'passwd'

將找到的文件名覆蓋寫入passwd.list中

find /etc -name 'passwd' 1>passwd.list
#1>passwd.list可以省略1寫為passwd.list
#1和>之間不能有空格cat passwd.list

將找到的文件名追加到passwd.list中

find /etc -name 'passwd' >> passwd.list

將錯誤信息覆蓋寫入到passwd.err

find /etc -name 'passwd' 2>passwd.err
#如果不用root用戶會有權限不足的報錯

將錯誤信息扔掉

find /etc -name 'passwd' 2>dev/null

正確信息(標準輸出)

  • 位置:直接顯示在終端(標準輸出,文件描述符 1

  • 內容find 命令找到的匹配文件路徑(如 /etc/passwd

錯誤信息(標準錯誤)

  • 位置:被重定向丟棄(2>/dev/null 表示丟棄所有錯誤)

  • 內容:權限不足、目錄不存在等錯誤(如 find: /etc/ssh: Permission denied

將錯誤信息和正確信息覆蓋寫入到相同文件

find /etc -name 'passwd' > passwd.all 2>&1

將錯誤信息和正確信息追加寫入到相同文件

find /etc -name 'passwd' >> passwd.all 2>&1

輸出重定向到程序

管道符(|)實現,將上一個命令的輸出作為標準輸入傳遞給下一個命令

例:獲取ens33網卡ip地址

ip a | grep 'ens160$' | awk '{print $2}'
#hostname -I 也可以取ip

管道符后的命令必須能夠接受標準輸入,才可以配合管道符使用。但是ls不接受管道傳遞的標準輸入。

echo /etc/passwd | xargs ls -l

tee命令

tee命令覆蓋保存到文件

find /etc -name 'passwd' 2>/dev/null | tee passwd.list
cat passwd.list

tee命令追加保存到文件

find /etc -name 'passwd' 2>/dev/null | tee -a passwd.list
cat passwd.list

標準輸入重定向給程序

cat命令標準輸入數據

cat /etc/hosts
cat < /etc/hosts

shell讀取到EOF時,代表標準輸入完成

cat << EOF
> hello
> world 
>EOF

判斷一個命令是否接受標準輸入:最簡單的方式就是將文件內容作為標準輸入重定向給程序。

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

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

相關文章

用Rust寫平衡三進制乘法器

1、平衡三進制乘法表 前面寫了平衡三進制的加法器&#xff0c;這個乘法器是在這基礎上的&#xff0c;沒看過的可以回去看看&#xff0c;說到乘法器還是要參考前蘇聯的資料的&#xff0c;平衡三進制的乘法也是很方便的&#xff0c;在平衡三進制基礎中有詳細講過&#xff0c;下圖…

解決Vue2官網Webpack源碼泄露漏洞

一&#xff1a;漏洞產生 Webpack是一個JavaScript應用程序的靜態資源打包器。大部分Vue等應用項目會使用Webpack進行打包&#xff0c;如果沒有正確配置&#xff0c;就會導致項目源碼泄露&#xff0c;可能泄露的各種信息如API、加密算法、管理員郵箱、內部功能等等。 F12查看源…

新中國風通用讀書頌詞分享PPT模版

新國風PPT模版&#xff0c;古風影視劇PPT模版&#xff0c;天青色中國風讀書頌詞分享會PPT模版&#xff0c;國風通用PPT模版&#xff0c;茶味PPT模版&#xff0c;風雪夜歸人PPT模版&#xff0c;小別離PPT模版&#xff0c;西江月茶詞PPT模版 新中國風通用讀書頌詞分享PPT模版&…

Rust自動化測試的框架

Rust實現Web自動化測試的框架 以下是10個使用Rust實現Web自動化測試的框架示例,涵蓋不同場景和工具鏈: 使用thirtyfour(基于Selenium) use thirtyfour::prelude::*;async fn example_selenium() -> WebDriverResult<()> {let caps = DesiredCapabilities::chro…

MySQL性能測試模板

引言&#xff1a;為什么MySQL性能測試如此重要&#xff1f; 你是否遇到過這些問題&#xff1a; 線上數據庫突然卡頓&#xff0c;QPS暴跌&#xff1f;業務高峰期MySQL服務器CPU 100%&#xff0c;卻找不到瓶頸&#xff1f;新功能上線后&#xff0c;數據庫性能不升反降&#xff…

第八課:大白話教你邏輯回歸

這節課咱們來聊聊 邏輯回歸(Logistic Regression),別看名字里有“回歸”,它其實是用來干 分類 的活兒的!我會用最接地氣的方式,從定義講到實戰,保證你笑著學會,還能拿去忽悠朋友! 一:邏輯回歸是啥?——當回歸想不開,轉行搞分類 1.1 定義:邏輯回歸是個“概率算命…

項目中后端如何處理異常?

為了統一管理異常&#xff0c;在項目中封裝了自定義異常類(BusinessException),全局異常處理器(GlobalExceptionHandler), 以及一些狀態碼(ErrorCode), 便于前端統一處理異常. 主要流程如下: 當項目業務發生邏輯錯誤時,會拋出BusinessException, 其中包含自定義錯誤碼和信息.…

群暉 NAS Docker 鏡像加速配置詳細教程

通過為群暉NAS的Docker配置鏡像倉庫加速服務&#xff0c;可顯著提升鏡像拉取速度與穩定性。本指南詳細介紹使用毫秒鏡像 (1ms.run) 服務的配置步驟及日常使用方法。 一、配置前準備 開始配置前&#xff0c;推薦使用毫秒鏡像的免登錄方式獲取鏡像倉庫地址。相比傳統的賬號密碼…

Deepoc行業垂直大模型作為行業知識與AI深度融合的專用工具

一、??行業專用智能診斷與預測性維護?? ??設備健康管理?? ??多源異構數據融合??&#xff1a;垂直大模型通過時序對齊算法&#xff08;如動態時間規整DTW&#xff09;整合振動&#xff08;5kHz&#xff09;、溫度&#xff08;1Hz&#xff09;、電流等多維度傳感器數…

內存泄漏系列專題分析之二十五:內存泄漏測試report Camera相機進程各種內存指標dump方式

【關注我,后續持續新增專題博文,謝謝!!!】 上一篇我們講了:內存泄漏系列專題分析之二十四:內存泄漏測試Camera相機進程內存指標分布report概述 這一篇我們開始講: 內存泄漏系列專題分析之二十五:內存泄漏測試report Camera相機進程各種內存指標dump方式 目錄 一、問…

mysql 加鎖算法 詳解

鎖 鎖分類 從鎖的操作劃分 共享鎖和排他鎖 共享鎖&#xff08;讀鎖&#xff09;和排他鎖&#xff08;寫鎖&#xff09;。對于更新語句&#xff0c;InnoDB會自動加上排他鎖&#xff1b;對于查詢語句&#xff0c;如果是快照讀&#xff0c;由于MVCC的存在&#xff0c;InnoDB不會…

使用EasyExcel導出帶下拉框選項excel模板

使用EasyExcel導出excel模版&#xff0c;表頭字段動態生成下拉框選擇&#xff0c;并且阻止輸入不符合下拉框選項的值&#xff0c;會在表格進行提示。 為了避免excel下拉框選項過多&#xff0c;導致下拉框內容不顯示&#xff0c;新建一個sheet頁&#xff0c;將下拉框內容存儲在…

自動化 UI 測試智能體在 Trae 平臺的部署體驗

我用Trae 做了一個有意思的Agent 「自動化 UI 測試」。 點擊 Trae - AI 原生 IDE 立即復刻&#xff0c;一起來玩吧&#xff01; 前言 用戶界面&#xff08;UI&#xff09;作為用戶與軟件交互的窗口&#xff0c;其質量直接影響用戶體驗和產品口碑。傳統的手動 UI 測試不僅效率…

身份證識別接口功能與應用場景-Android證件識別api集成

數字化信息高速發展的時代&#xff0c;信息的高效處理與精準識別已成為眾多行業發展的關鍵驅動力。針對聯網平臺身份核驗過程中&#xff0c;證件信息手動錄入效率低、出錯率高、用戶體驗差等問題推出了身份證識別接口&#xff0c;旨在為各行各業提供高效與便捷的身份核驗解決方…

POJ2718-Smallest Difference(窮竭搜索:全排列)

題目描述 給定一些不同的十進制數字&#xff0c;您可以通過選擇這些數字的一個非空子集并以某種順序編寫它們來形成一個整數。剩余的數字可以以某種順序寫下來形成第二個整數。除非結果整數為 0&#xff0c;否則整數可能不以數字 0 開頭。 例如&#xff0c;如果給定數字 0, 1…

銀行賬戶管理系統-交互系統

這篇博文是對上一篇(銀行賬戶管理系統)的提升,上一篇是基礎的學習,這一篇是在上一篇的基礎上做的交互系統。Tkinter基礎函數知識點點擊下面超鏈接就可以跳轉到對應的界面。希望可以幫助到你。這是則篇的框架銀行賬戶管理系統代碼解釋-CSDN博客介紹。 寫文章-CSDN創作中心h…

基于大數據的社會治理與決策支持方案PPT(66頁)

大數據引領社會治理新變革 大數據技術的興起&#xff0c;為社會治理帶來了前所未有的變革。它改變了我們認識社會的方式&#xff0c;使得社會治理更加精準、高效。通過大數據融合分析&#xff0c;實現了對社會動態的全面監控和深度挖掘。 構建城市塊數據中心 以“社會治理”…

Containerd容器技術

目錄 一&#xff0c;containerd概述 1&#xff0c;containerd 概述 2&#xff0c;containerd 的主要功能 1. 容器生命周期管理 2. 與底層基礎設施交互 3. 與上層系統集成 3&#xff0c;containerd 的核心特點 1. 輕量級與低資源消耗 2. 標準化與開放性 3. 高性能與穩定…

awk命令詳解

Shell AWK 命令詳解 一、AWK 簡介與基本語法 AWK 是一種強大的文本處理工具,名稱來源于其三位創始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的姓氏首字母。它逐行掃描文件,尋找匹配特定模式的行并執行相應操作。 基本語法結構: awk [選項] 模式 {動作} 文件名…

面試150跳躍游戲

思路 貪心算法&#xff0c;使用變量cover表示當前所能覆蓋的最大距離&#xff0c;如果cover大于等于n-1表示能覆蓋到&#xff0c;反之則不能 class Solution:def canJump(self, nums: List[int]) -> bool:if not nums:return Falsenlen(nums)cover0for i in range(n):if i…