【Linux】基本指令詳解(二) 輸入\輸出重定向、一切皆文件、認識管道、man、cp、mv、echo、cat

文章目錄

  • 一、man指令
  • 二、輸入/輸出重定向(echo、一切皆文件)
  • 三、cp指令
  • 四、mv指令
  • 五、cat指令
  • 六、more/less指令
  • 七、head/tail指令
  • 八、管道初見


一、man指令

Linux的指令有很多參數,我們不可能全記住,可以通過查看聯機手冊獲取幫助。
man 指令就可以用來查看指令的信息,查看完畢按q退出。

在這里插入圖片描述

man手冊一共分為9個章節,指令后面不跟選項的話默認查第一章,如果第一章找不到,就會去第二章找,我們最主要了解前兩個就行了,后面的幾乎用不到。

在這里插入圖片描述

直徑章節查找指令如下:

在這里插入圖片描述

二、輸入/輸出重定向(echo、一切皆文件)

這里小編想先補充一個理論:Linux系統下一切皆文件
下面小編會嘗試以指令角度證明這個觀點。
首先小編先介紹一個指令echo,它類似printf,它可以打印數據到顯示器,只不過printf支持格式化輸出:%d %c …

在這里插入圖片描述

既然數據可以被打印到顯示器上,那顯示器就可以理解為一個文件,我們把數據寫入顯示器,同理,后面我們介紹從鍵盤讀取數據時,鍵盤也可以理解成一個文件。
下面我們再來看一個指令:

在這里插入圖片描述

這里我們echo指令如果不加后面的東西,會默認寫入顯示器文件,而這里卻寫入到了文本文件test.txt,這里其實發生了輸出重定向,我們在后面加上“>"和文件名就會把輸出文件由顯示器文件更改到目標文件。(cat指令是打印文件的內容,后面會細講)
輸出重定向有兩個特點:
1、若輸出重定向的文件不存在,會自動新建一個文件。
2、在輸出重定向寫入文件前,會先將原始文件的內容清空再寫入新內容。
上面我們已經展示了第一個特點的,下面是第二個特點的示例:

在這里插入圖片描述

所以我們可以根據第二個特點清空文件:

在這里插入圖片描述

如果是兩個>>符號就就不會清空test,txt的原始數據,這就是追加重定向

在這里插入圖片描述
在這里插入圖片描述

輸入重定向: 輸入重定向相對更難理解,小編這里先畫一幅圖來方便大家理解:

在這里插入圖片描述

cat可以類比scanf,當我們使用默認cat指令時,它會等待用戶寫入數據,用戶再按回車時就會把用戶輸入的數據顯示到顯示器上,而我們輸入重定向后它會直接從文件讀數據然后顯示。

在這里插入圖片描述

這里有的讀者朋友可能有疑問,cat test,txt 和 cat < test,txt 有什么區別,它們倆本質是不同的,這里小編不能細講,因為牽涉到后面的知識,這里先埋個伏筆,等待后面小編以后更新的博客吧。

下面小編再以終端為例演示一下一切皆文件:(終端是Xshell登陸遠端服務器時顯示的界面,如下所示:)

在這里插入圖片描述

一般終端文件會被放在 /dev/pts 目錄下,我們現在打開了一個終端,該目錄下其中的文件名為0的文件就是終端文件,ptms目前不用管,那我多打開幾個終端是不是該目錄的文件個數就會變多呢?
這是當然,示例如下:

在這里插入圖片描述

在這里插入圖片描述

那么我們已經知道終端是文件了,那我們拿到終端的文件路徑后就可以輸出重定向到對應的終端文件,那終端上就會顯示我們輸出的數據,這也可以進一步證明Linux下一切皆文件。

在這里插入圖片描述

三、cp指令

(copy)
這是一條拷貝指令。可以拷貝普通文件也可以拷貝目錄,拷貝目錄因為要遞歸拷貝,所以最好加上選項 -rf 格式如下:
拷貝普通文件:cp src(原) dst(目標)
拷貝目錄: cp -rf src(原) dst(目標)
這里的src 和 dst 可以是絕對路徑,也可以是相對路徑。

在這里插入圖片描述

四、mv指令

(move)
mv 指令的格式和cp指令類似,但是它不需要加選項 -rf
(不同指令的設計者可能不同,所以無法統一標準),并且當它的目標文件或路徑是否存在時該指令所代表的含義是不同的,細節如下:

  • 若目標文件在當前目錄存在或目標路徑存在時,相當于剪切并拷貝原文件

在這里插入圖片描述

  • 若目標文件或目標路徑在當前目錄不存在或目標路徑不存在時,相當于對原文件或原目錄重命名

在這里插入圖片描述

當然剪切與重命名可以同時發生,所以我上面的描述不一定準確,mv指令最終的行為都取決于你的邏輯。

在這里插入圖片描述

五、cat指令

該指令用來查看文件的內容,和ls指令用來查看文件屬性相對應,它適合查看小文件的文件內容,一但內容過長就會導致刷屏,查看長文件推薦使用more和less,下一組指令就會講解。
它不能用來查看目錄的內容。

在這里插入圖片描述

- n選項:打印時所有行編號

在這里插入圖片描述

- b選項:打印時對非空行編號

在這里插入圖片描述

- s 打印時將多行空行改為一行

在這里插入圖片描述

這里還有一個有趣的指令,把cat倒著寫tac,這個指令可以把文件內容倒序打印出來。

在這里插入圖片描述

六、more/less指令

這兩條指令適合用來查看大文件(如日志文件),less指令實際上最常用。

more打印完一整個屏幕后會停下來,我們按回車鍵就會繼續往下打印,它只支持回車鍵向下翻,不支持上下自由查看,所以不做推薦,重點了解less指令。

在這里插入圖片描述

less打印完一整個屏幕后也會停下來,只不過它支持上下方向鍵自由查看文件內容,它還支持查找功能,輸入 /xxx 后按回車就可以向下查找到第一個帶xxx的數字,輸入 ?xxx 后按回車就可以向上查找到第一個帶xxx的數字,再按n就可以跳轉到下一個帶xxx的數字。 選項 -i 忽略搜索時的大小寫,選項 -N顯示每行的行號。查看完畢按q退出。

七、head/tail指令

head/tail指令用來查看文件的前x行。

在這里插入圖片描述
在這里插入圖片描述

八、管道初見

如果我們要提取大文件的中間部分該怎么做呢?首先linux沒有直接提供能訪問中間部分的指令,我們要實現提起中間部分需要借助head和tall指令實現,比如我們要提取test.c的5000行到5010行,先head提取前5011行到一個臨時文件,然后再tail這個文件的后11行就成功提取到我們想要的了。

在這里插入圖片描述

這樣雖然能實現我們想要的結果,但是這種左手倒右手的方式效率太低了,這里就要引入一個概念,管道
在linux系統中,存在一種可以用來連接多條指令執行結果的語法特征,叫做管道,管道也是一種文件,只不過它是一種內存級文件,不會存在磁盤中。
管道在命令行中就是一個 | (用來集連指令的豎畫線)
管道的原理我們目前還無法理解,但是可以學會理解并使用它,首先總結一下現實世界管道的特征,它一定有入口和出口,并且是用來傳輸資源的,如石油,自來水,而在計算機世界里,數據是它的資源。下面是一個利用管道的例子:

在這里插入圖片描述

所以管道就可以將我們之前所介紹的工具鏈指令集連起來,實現更多更復雜的功能。

以上就是小編分享的全部內容了,如果覺得不錯還請留下免費的贊和收藏
如果有建議歡迎通過評論區或私信留言,感謝您的大力支持。
一鍵三連好運連連哦~~

在這里插入圖片描述

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

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

相關文章

MVC HTML 幫助器

MVC HTML 幫助器 引言 MVC&#xff08;模型-視圖-控制器&#xff09;是一種流行的軟件架構模式&#xff0c;它將應用程序的邏輯分解為三個主要組件&#xff1a;模型&#xff08;Model&#xff09;、視圖&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09…

linux下手工安裝ollama0.9.6

1、去下載ollama的linux版的壓縮包&#xff1a; 地址&#xff1a;https://github.com/ollama/ollama/releases2、上傳到linux中。3、解壓&#xff1a; tar zxvf ollama-linux-amd64-0.9.6.tgz -C /usr/local/4、如果僅僅是要手工執行&#xff0c;已經可以了&#xff1a; ollama…

kotlin布局交互

將 wrapContentSize() 方法鏈接到 Modifier 對象&#xff0c;然后傳遞 Alignment.Center 作為實參以將組件居中。Alignment.Center 會指定組件同時在水平和垂直方向上居中。 DiceWithButtonAndImage(modifier Modifier.fillMaxSize().wrapContentSize(Alignment.Center) )創建…

50天50個小項目 (Vue3 + Tailwindcss V4) ? | ToastNotification(推送通知)

&#x1f4c5; 我們繼續 50 個小項目挑戰&#xff01;—— ToastNotification組件 倉庫地址&#xff1a;https://github.com/SunACong/50-vue-projects 項目預覽地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 Composition API&#xff08;<script s…

學習筆記(34):matplotlib繪制圖表-房價數據分析與可視化

學習筆記(34):matplotlib繪制圖表-房價數據分析與可視化分析房價分布情況&#xff0c;通過直方圖、核密度估計和正態分布擬合來直觀展示房價的分布特征&#xff0c;并進行統計檢驗。一、房價數據分析與可視化&#xff0c;代碼分析1.1、導入必要的庫import pandas as pd import …

前端三劍客之CSS

1. CSS 簡介1) CSS 簡述CSS&#xff0c;即層疊樣式表&#xff08;英文全稱&#xff1a;Cascading Style Sheets&#xff09;&#xff0c;是一種專門用于修飾 HTML 文檔呈現樣式的計算機語言。它的功能不僅限于靜態美化網頁&#xff0c;還能與各類腳本語言配合&#xff0c;實現對…

力扣25.7.11每日一題——無需開會的工作日

Description 這題類似合并區間&#xff0c;題意你們都能看懂吧…… Solution 這道題就需要用到合并區間的方法。 答案等于 daysdaysdays 減「有會議安排的天數」。 對左端點進行排序&#xff0c;計算有會議安排的天數&#xff0c;累加每個區間的長度&#xff0c;即為有會議…

每日一SQL 【銷售分析 III】

文章目錄問題案例執行順序使用分組解決問題 案例 執行順序 SQL 語句的執行順序&#xff08;核心步驟&#xff09; 同一層級的select查詢內部, 別名在整個 SELECT 計算完成前不生效 使用分組解決 select distinct s.product_id, Product.product_name from Sales sleft join …

輕輕松松帶你進行-負載均衡LVS實戰

8. LVS部署命令介紹 8.1 LVS軟件相關信息 1.程序包&#xff1a;ipvsadm 2.Unit File: ipvsadm.service 3.主程序&#xff1a;/usr/sbin/ipvsadm 4.規則保存工具&#xff1a;/usr/sbin/ipvsadm-save 5.規則重載工具&#xff1a;/usr/sbin/ipvsadm-restore 6.配置文件&#xff1a…

C#.NET 集合框架詳解

簡介 C# 集合框架是處理數據集合的核心組件&#xff0c;位于 System.Collections 和 System.Collections.Generic 命名空間。它提供了多種數據結構來高效存儲和操作數據。 集合框架概覽 System.Collections (非泛型老版) └─ System.Collections.Generic (泛…

網絡劫持對用戶隱私安全的影響:一場無形的數據竊取危機

在互聯網時代&#xff0c;網絡劫持如同一把“隱形鐮刀”&#xff0c;悄然威脅著用戶的隱私安全。當我們在瀏覽網頁、使用社交媒體或進行在線交易時&#xff0c;看似正常的網絡連接背后&#xff0c;可能正暗藏著數據被竊取的風險。網絡劫持通過多種技術手段干預用戶與服務器的正…

使用 Helm 下載 Milvus 安裝包(Chart)指南

目錄 &#x1f4e6; 使用 Helm 下載 Milvus 安裝包&#xff08;Chart&#xff09;指南 &#x1f6e0; 環境準備 &#x1f680; 第一步&#xff1a;添加 Milvus Helm 倉庫 &#x1f50d; 第二步&#xff1a;查看可用版本 &#x1f4e5; 第三步&#xff1a;下載指定版本的 C…

EXTI 外部中斷

目錄 STM32中斷 NVIC 中斷控制器 NVIC優先級分組 EXTI 外部中斷 AFIO 復用IO口 外部中斷/事件控制器&#xff08;EXTI&#xff09;框圖 STM32中斷 在STM32微控制器中&#xff0c;共有68個可屏蔽中斷通道&#xff0c;涵蓋了多個外設&#xff0c;如外部中斷&#xff08;EXT…

WebApplicationType.REACTIVE 的webSocket

通用請求體類 Data ApiModel("websocket請求消息") public class WebSocketRequest<T> implements Serializable {private static final long serialVersionUID 1L;/*** 參考&#xff1a;com.mcmcnet.gacne.basic.service.common.pojo.enumeration.screen.AiB…

降本增效!自動化UI測試平臺TestComplete并行測試亮點

在跨平臺自動化測試中&#xff0c;企業常面臨設備投入高、串行測試耗時長、測試覆蓋率難以兼顧的困境。自動化UI測試平臺TestComplete的并行測試引擎提供了有效的解決方案&#xff1a;通過云端海量設備池與CI/CD深度集成&#xff0c;實現多平臺、多瀏覽器并行測試&#xff0c;顯…

云、實時、時序數據庫混合應用:醫療數據管理的革新與展望(上)

云、實時、時序數據庫混合應用:醫療數據管理的革新與展望 1、引言 1.1 研究背景與意義 在信息技術飛速發展的當下,醫療行業正經歷著深刻的數字化轉型。這一轉型不僅是技術層面的革新,更是關乎醫療體系未來發展方向的深刻變革。從醫療服務的提供方式,到醫療管理的模式,再…

代碼隨想錄算法訓練營十六天|二叉樹part06

LeetCode 530 二叉搜索樹的最小絕對差 題目鏈接&#xff1a;530. 二叉搜索樹的最小絕對差 - 力扣&#xff08;LeetCode&#xff09; 給你一個二叉搜索樹的根節點 root &#xff0c;返回 樹中任意兩不同節點值之間的最小差值 。 差值是一個正數&#xff0c;其數值等于兩值之差…

自增主鍵為什么不是連續的?

前言 如果一個線程回滾&#xff0c;例如唯一鍵沖突的情況回滾時&#xff0c;回滾了sql語句&#xff0c;但是并沒有把自增的值也-1。那么就會導致下一條插入的數據自增id出現了跳躍。 自增主鍵為什么不是連續的&#xff1f;前言執行時機為什么自增主鍵不是連續的為什么不回滾自…

OpenCV圖像基本操作:讀取、顯示與保存

在圖像處理項目中&#xff0c;圖像的 讀取&#xff08;imread&#xff09;、顯示&#xff08;imshow&#xff09; 和 保存&#xff08;imwrite&#xff09; 是最基礎也是最常用的三個操作。本文將詳細介紹這三個函數的功能、用法和注意事項&#xff0c;并提供一個完整示例供讀者…

.NET控制臺應用程序中防止程序立即退出

在VB.NET控制臺應用程序中防止程序立即退出&#xff0c;主要有以下幾種常用方法&#xff0c;根據需求選擇適合的方案&#xff1a; 方法1&#xff1a;等待用戶輸入&#xff08;推薦&#xff09; Module Module1Sub Main()Console.WriteLine("程序開始運行...") 這里是…