(3)重定向 | 時間相關指令 | 文件查找 | 打包與壓縮

Ⅰ . 初始重定向

01 輸出重定向 >

在上一節中我們為了方便講解?head?和?tail?指令,我們用到了?>?去生成了一千行文本。

通過?>?將生成的一千行文本寫入到了?large.txt?中……

我們現在來正式介紹一下:

$ echo "內容" > [目標]    

本來應該寫入到顯示器的內容,把他寫入到文件中,我們稱之為?輸出重定向?。

注意事項:?>?會清空原始的文件內容,進行重新寫入。

02 追加重定向 >>

輸出重定向?>?會清空原始內容,如果你不想清空原始內容呢?

我們可以使用 " 追加重定向?>>?" ,可以做到在原有內容后?"追加" :

說明:追加重定向不會清空原始內容,而是在原始文件的結尾進行新增式的寫入。

$ echo "內容" >> [目標]

03 輸入重定向 <

在這之前我們先來補充一下?cat?后面什么都不加:

$ cat

cat?后面什么都不加,cat?就會默認從鍵盤(標準輸入):

輸入重定向:將本來應該從鍵盤中讀取的方式,改成從指定的文件中讀取。

04 Linux 下一切皆文件

Linux 操作系統有自己的設計哲學,它認為所有的東西都可以當作文件,

甚至你所看到的鍵盤、顯示器、顯卡等外設,都可以當作文件。

現階段還沒有去講解系統方面的知識,至于底層是如何做到的我們暫時不深入講解。

我們把磁盤、顯示器、網卡、顯卡、鍵盤、鼠標等設備(我們統稱之為外設),

都看作文件,以同樣的方式看待這些設備。

注意事項:

Linux 是不把 CPU 看成文件的,因為 CPU 是要幫你完成 "一切皆文件" 的設計理念的。

Ⅱ . 時間相關的指令

01 date 指令

在 Linux 中我們可以直接輸入?date?去查看當前的時間:

date      # 顯示時間

指令功能?:?顯示時間

在顯示方面,Linux 也是可以設定格式去顯示時間的。

date +%Y:%m:%d      # date 指定格式顯示時間

date?標記列表:格式設定為一個加號后接數個標記,其中常用的標記列表如下:

  • %H : 小時(00..23)
  • %M : 分鐘(00..59)
  • %S : 秒(00..61)
  • %X : 相當于 %H:%M:%S %d : 日 (01..31)
  • %m : 月份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相當于 %Y-%m-%d

我們就可以通過這種方式去控制格式,顯示我們想要顯示的:

02 時間戳

概念:自 1970 年 1 月 1 日午夜開始,到現在為止所累積的秒數,即為時間戳。

date +%s    # 查看當前時間戳

那么問題來了,時間戳有什么用途呢?

它可以作為日志的一部分,如果一個項目比較大,必須得有日志的能力。

因為時間戳是不斷遞增的,遞增值有很強的唯一性,所以在做日志信息歸檔的時候很方便。

日志我們一般從尾部看,時間 + 錯誤信息。日志,具有排查錯誤的能力!

03 cal 指令

在 Linux 中輸入?cal?就顯示出一個日歷:

cal

指令功能?:用于查看日歷等時間信息。

如果只有一個參數,則表示年份(1-9999),如有兩個參數,則表示月份和年份。

cal [參數][月份][年份]

常用選項:

  • -3? 顯示系統前一個月,當前月,下一個月的月歷

  • -j? ?顯示在當年中的第幾天(一年日期按天算,從1月1號算起,默認顯示當前月在一年中的天數)
  • -y??顯示當前年份的日歷

思考:Linux 命令的時間和日歷存在的意義是什么?

有些語言是基于 Linux 命令組成起來的語言,比如 shell 。因為腳本也是要打日志的,所以腳本也是需要有時間的。現在用命令行看時間的人很少,但是如果把時間倒退到 40 年前,就會有人去拿命令行去查看時間。

Ⅲ . 文件查找

01 find 指令

 find 路徑 -[選項]

指令功能?:用于在文件樹中查找文件,并作出相應的處理(可能訪問磁盤)。

指令介紹:

  • Linux 下?find?命令在目錄結構中搜索文件,并執行指定的操作。
  • Linux 下?find?命令提供了相當多的查找條件,功能很強大。由于?find?具有強大的功能,所以它的選項也很 多,其中大部分選項都值得我們花時間來了解一下。
  • 即使系統中含有網絡文件系統(NFS),find?命令在該文件系統中同樣有效,只要你具有相應的權限。
  • 在運行一個非常消耗資源的?find?命令時,很多人都傾向于把它放在后臺執行,因為遍歷一個大的文件系統可能會花費很長的時間?(這里是指30G字節以上的文件系統)

常用選項:

  • name?按照文件名查找文件

用法演示:在家目錄下查找所有?.c?文件

02 grep 命令(行文本過濾工具)

在我們之前形成的有一千行的大文本?large.txt?中,

如果我想把其中的 123?關鍵字的行拎出來,我們就可以使用?grep?命令:

$ grep '123' large.txt    # 顯示large.txt中帶有123的行

grep [選項] 搜尋字符串 文件

指令功能?:在文件中搜索字符串,將找到的行打印出來。

常用選項:

  • -i? ?忽略大小寫的不同,所以大小寫視為相同。
  • -n? 順便輸出行號。
  • -v??反向選擇(反選),凡是具有關鍵字的文本行,去掉并保留沒有匹配關鍵字的行。

注意事項:

①?只要某行存在你要找的關鍵字,整行都會被保留顯示出來,所以稱?grep?為行文本過濾工具。

②?grep?匹配時是明確大小寫的?,如果想忽略大小寫,須加?-i?選項。

操作演示

①??-v?反向選擇? |??-iv?忽略大小寫并反向選擇

②??-n?選項,將查找的結果帶上匹配行所在行號

Ⅳ . 打包與壓縮

01 zip 指令

為了方便講解,我們先準備如下操作:

zip [壓縮文件.zip] [目錄或文件]

指令功能?:將目錄或文件壓縮成 zip 格式

常用選項:

  • -r??遞歸處理,將指定目錄下的所有文件和子目錄一并處理。

操作演示:

02 unzip 指令

那么如何解壓呢?

unzip [目標]     # 解壓目標文件

操作演示:我們可以使用?zip?指令對應的?unzip?指令對它進行解壓操作:

先把之前的 tar_package 移走

此時我們?cd?到?tar_package?文件中,卻發現什么都沒有

原來我們一開始就壓了個寂寞,

只是把目錄打包了,里面的 file 文件都沒打包進去,相當于你只打包了個文件夾!

注意事項:直接?zip?目錄,是打包不了目錄里面的東西的!

正確做法是 —— 對于目錄的打包,如果你想打包目錄里的東西:

$ zip -r [壓縮包名稱] [壓縮對象]    # 遞歸壓縮

操作演示:使用?zip?-r?去打包目錄

用 unzip 解壓:

注意事項:unzip?解壓出來的原始數據,都會被放在當前路徑下。

如果你想指定解壓到指定目錄下,可以在?unzip?-d?后加上路徑。

思考:我為什么要打包壓縮?

① 節約空間,壓縮一下可以節約空間。

② 我們下載下來的軟件是壓縮包,曾經提供軟件的人,上傳的是壓縮包。

所有的軟件寫好之后,不是只有一個文件的!所有的互聯網公司后臺都是 Linux 系統,開發人員開發的軟件,將來都是要部署在 Linux 系統上的,所以所有的軟件開發好之后都要打包壓縮上載到 Linux 上,進行安裝部署。所以 Linux 必須支持解包解壓。

03 tar 指令

一般一個壓縮包是需要有兩個步驟的:① 打包? ? ② 壓縮。

我們還要講一種壓縮方式,這種壓縮方式也是 Linux 中最常見的一種 ——?tar?指令。

tar [-cxtzjvf] 文件與目錄 .... 參數

指令功能?:打包 / 解包(不打開它,直接看內容)

常用選項:

  • -c ? 建立一個壓縮文件的參數指令(create 的意思)。
  • -x ? 解開一個壓縮文件的參數指令!
  • -t ? ?查看 tarfile 里面的文件!
  • -z ? 是否同時具有 gzip 的屬性?以及是否需要用 gzip 壓縮?
  • -j ? ?是否同時具有 bzip2 的屬性?以及是否需要用 bzip2 壓縮?
  • -v ? 壓縮的過程中顯示文件!這個常用,但不建議用在背景執行過程!
  • -f ? 使用檔名,請留意,在 f 之后要立即接檔名!不要再加參數!
  • -C ?解壓到指定目錄。

操作演示:打包?tar?czf?和壓縮?tar?xzf?都可以用?tar?指令去完成:

操作演示:tar?zcvf?、tar?xzvf?在壓縮過程中顯示文件

操作演示:-C?選項,解壓到指定目錄下:

Ⅴ . 其他常見指令

01 bc 指令

Linux 下,我們可以用?bc?命令很方便地進行浮點運算:

echo " [計算內容] " | bc

02 uname -r 指令

不同的平臺下對應的指針大小是不一樣的,在 VS32 位下指針對應的大小是 4 個字節,

在64位下系統,我們的指針大小就是 8 字節。我們該怎么知道當前系統的體系結構信息呢?

我們可以用?uname?-a?查看系統中的很多信息,如果只想看內核版本,可以輸?uname?-r:

uname [選項]

指令功能?:獲取電腦和操作系統的相關信息

指令介紹:?uname?可顯示 Linux 主機所用的操作系統的版本、硬件的名稱等基本信息。

常用選項:-a?詳細輸出所有信息,依次為內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類型,硬件平臺類型,操作系統名稱。

03 常用熱鍵

什么是熱鍵?熱鍵即組合鍵,可以理解為經常使用的按鍵。

熱鍵有什么用呢?比如下面這些情況。

ctrl + C?- 令當前程序暫停(可終止失控程序)

tab?-?命令的自動補齊

Ctrl + r?- 搜索歷史命令

Ctrl + d?- 快速退出賬戶

04 關機

注意事項:如果使用的是云服務器,云服務器是不需要關機的,永遠不關機。

shutdown [選項] ** 常見選項: **

指令功能?:關機

常用選項:

  • -h??將系統的服務停掉后,立即關機。
  • -r? ?在將系統的服務停掉之后就重新啟動 -t sec :
  • -t???后面加秒數,為 "過幾秒后關機" 的意思

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

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

相關文章

DTH11測量溫濕度學習(第十一天)

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;開發者-削好皮的Pineapple! &#x1f468;?&#x1f4bb; hello 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 削好皮的Pineapple! 原創 &#x1f468;?&#x1f4…

Go語言初識--標識符 可見性

Go語言初識–標識符 可見性 和C語言相似&#xff0c;go語言的基本組成有&#xff1a; 包聲明&#xff0c;編寫源文件時&#xff0c;必須在非注釋的第一行指明這個文件屬于哪個包&#xff0c;如package main。引入包&#xff0c;其實就是告訴Go 編譯器這個程序需要使用的包&…

Python實例之畫小豬佩奇

效果圖&#xff1a;python代碼以及解釋&#xff0c;沒有運用模塊。 """ 繪制小豬佩奇 """ from turtle import *def nose(x,y):"""畫鼻子"""penup()# 將海龜移動到指定的坐標goto(x,y)pendown()# 設置海龜的方向&…

Unity筆記——事件中心

事件中心是什么事件中心是 Unity 游戲開發中常用的架構設計&#xff0c;它基于觀察者模式 或 發布-訂閱模式&#xff0c;通過委托和事件構建的一種消息管理系統。主要用于降低代碼耦合度&#xff0c;實現模塊間的松耦合通信的消息處理系統能大幅提升代碼的可維護性和擴展性&…

Java: 反射機制的 ParameterizedType(參數化類型)

在 Java 中&#xff0c;ParameterizedType 是 java.lang.reflect 包下的一個接口&#xff0c;屬于反射 API 的一部分&#xff0c;主要用于表示參數化類型&#xff08;即帶有類型參數的泛型類型&#xff09;。它是 Java 反射機制中處理泛型類型信息的關鍵接口之一。 一、什么是參…

OkHttp 與 Retrofit 完美結合:打造高效的 Android 網絡請求

前言在現代 Android 開發中&#xff0c;網絡請求是幾乎每個應用都必不可少的功能。OkHttp 和 Retrofit 作為當前最流行的網絡請求庫組合&#xff0c;為開發者提供了簡潔高效的解決方案。本文將詳細介紹如何將這兩者結合使用&#xff0c;充分發揮它們的優勢。一、OkHttp 和 Retr…

系統辨識建模

系統辨識建模 一、系統辨識建模的作用 1. 建立真實物理系統的數學模型 2. 為后續控制器/強化學習算法提供仿真環境 3. 提高控制精度和安全性 二、本文的系統辨識是怎么做的 1. 實驗采集 2. 數學建模 3. 在控制系統中的作用 三、實際用法流程(簡化版) 1. 系統辨識階段 2. 強化…

Android開發:Java與Kotlin深度對比

1. 語言特性與現代性 Java (特別是 Android 主要使用的 Java 8 及之前版本): 相對冗長&#xff1a; 需要編寫更多的樣板代碼&#xff08;如 getter/setter、findViewById 的顯式類型轉換、匿名內部類等&#xff09;。空指針異常 (NPE)&#xff1a; 類型系統默認允許 null&#…

米家打印機驅動:Wi-Fi 無線打印絲滑順暢不卡頓,從此告別對打印機干瞪眼

各位小米家居控們&#xff0c;你們有沒有過這種經歷&#xff0c;新買的打印機回家&#xff0c;結果電腦跟它像倆傲嬌的小情侶&#xff0c;死活不搭話&#xff1f;急得你想當場表演一個“打印機抱頭痛哭”&#xff1f;別急&#xff0c;今天就給你們安利個神隊友——米家打印機驅…

日語學習-日語知識點小記-構建基礎-JLPT-N3階段(7):自動詞 & 他動詞

日語學習-日語知識點小記-構建基礎-JLPT-N3階段&#xff08;7&#xff09;&#xff1a;自動詞 &#xff06; 他動詞1、前言&#xff08;1&#xff09;情況說明&#xff08;2&#xff09;工程師的信仰2、知識點&#xff08;&#xff11;&#xff09;自動詞 &#xff06; 他動…

深入理解設計模式:訪問者模式詳解

在軟件開發中&#xff0c;我們經常會遇到需要對一個復雜對象結構進行操作的情況。隨著需求的不斷變化&#xff0c;我們可能需要在這個對象結構上添加各種新的操作。如果直接在對象結構中添加這些操作&#xff0c;會導致類的職責過重&#xff0c;且每次添加新操作都需要修改原有…

Linux timerfd 定時器封裝

使用 timerfd epoll() 實現&#xff0c;簡潔精確。沒定義 MU_ERROR 宏的話替換為 printf 即可。mu_timer.h:#ifndef _MU_TIMER_H_ #define _MU_TIMER_H_#ifdef __cplusplus extern "C" { #endif#include <stdint.h> #include <time.h> #include <pth…

【樣式效果】Vue3實現仿制iOS按鈕動態效果

iOS開關效果定義變量&#xff1a; <style scoped lang"scss">.layout {// 按鈕寬度$button-width: 500px;// 按鈕高度$button-height: 250px;// 按鈕里面圓形直徑$circle-diameter: 200px;// 按鈕背景與里面圓形間距$button-circle-offset:calc(($button-he…

京東瘋狂投資具身智能:眾擎機器人+千尋智能+逐際動力 | AI早報

每日分享全球最新AI資訊【應用商業八卦技術】&#xff0c;&#x1f30f;&#xff1a;未來世界2099應用 1、馬斯克推出兒童AI"Baby Grok"引熱議&#xff1a;安全性能否經受考驗&#xff1f; 2、螞蟻AQ健康應用霸榜蘋果商店&#xff0c;或將聯手Apple Watch打造智能健康…

Jiasou TideFlow AIGC SEO Agent:全自動外鏈構建技術重構智能營銷新標準

AI時代SEO技術革命&#xff1a;企業如何突破流量增長瓶頸&#xff1f;隨著Google算法升級至MUM模型&#xff0c;傳統SEO工具已難以應對多模態內容優化需求。在搜索引擎日均處理120億次查詢的生態中&#xff0c;企業官網平均自然流量轉化周期長達6-8個月&#xff0c;因此諸如Jia…

Docker-compose:服務編排

Docker-compose 介紹 服務編排:按照一定的業務規則批量管理容器 在微服務架構的應用系統中,一般包含 N 個微服務,且每個微服務一般都會部署多個實例。此時,如果每個微服務都要手動啟停,維護的工作量會很大。 要從 Dockerfile build image 或者去 docker hub 拉取 image …

異地服務器備份Mysql數據

前言異地服務器備份Mysql數據即Mysql的server端與備份服務器不是同一個。Mysql服務端安裝在192.168.3.36中&#xff0c;現在需要在IP為192.168.209.129的服務器中使用mysqldump命令備份指定數據庫數據;192.168.209.129沒有裝過Mysql客戶端;1.安裝Mysql客戶端不安裝Mysql客戶端就…

NGINX 高級配置解析:`proxy_request_buffering` 使用詳解

在使用 NGINX 作為反向代理服務器時&#xff0c;處理客戶端請求體&#xff08;如上傳文件或大體積 POST 請求&#xff09;的方式會直接影響應用性能與資源使用。其中&#xff0c;proxy_request_buffering 是一個非常關鍵但容易被忽略的配置項。 本文將詳細介紹該指令的作用、典…

增加交叉驗證和超參數調優

前文中&#xff0c;只是給了基礎模型&#xff1a; PyTorch 實現 CIFAR-10 圖像分類&#xff1a;從數據預處理到模型訓練與評估-CSDN博客 今天我們增加交叉驗證和超參數調優&#xff0c; 先看運行結果&#xff1a; 在測試集上評估最終模型 最終模型在測試集上的準確率&…

解決pip指令超時問題

用pip指令&#xff0c;在安裝Django3.2時報錯&#xff0c;詢問ChatGpt后得到的解決方案pip 下載超時 —— 是 當前網絡連接到 PyPI 官方源太慢或不穩定&#xff0c;甚至可能連不上了&#xff0c;而 pip 默認的超時時間又太短&#xff0c;就導致了中途失敗&#xff1a;ReadTimeo…