ubuntu學習day2

linux常用命令

3.文件查看及處理命令

3.1查看文件內容

cat+[選項]+[文件]
-b 對非空輸出行編號
-E 在每行結束處顯示$
-n 對輸出的所有行編號
-s 不輸出多行空行

標準輸入、標準輸出和標準錯誤

在 Linux 中,每個進程默認有三個文件描述符:

  • 標準輸入(stdin):文件描述符為 0,用于向程序提供輸入。
  • 標準輸出(stdout):文件描述符為 1,用于輸出正常信息。
  • 標準錯誤(stderr):文件描述符為 2,用于輸出錯誤信息。
重定向標準輸出
cat file1 >file3 #將file1內容復制到file3文件中

注意:重定向標準輸出會把原文件內容覆蓋掉。

echo helo >file 
cat file #輸出hello
echo world >file
cat file #輸出world

避免此類問題可以使用添加輸出
格式:>>

echo world >>file
重定向標準輸入

command < input_file

sort < names.txt #將 names.txt 文件的內容作為 sort 命令的輸入,并輸出排序結果。
錯誤重定向

2>錯誤重定向用于將標準錯誤輸出重定向到文件或與其他輸出合并。

grep "error" log.txt 2> error.log#將 grep 命令的錯誤信息保存到 error.log 文件中。
錯誤和信息重定向

將標準輸出和標準錯誤同時重定向到同一個文件。
command &> output_file

ls -l * &> all_output.txt
#ls -l * 會列出所有文件,如果某些文件不存在,會產生錯誤信息。
#&> 將標準錯誤輸出重定向到標準輸出,因此錯誤信息也會被保存到 all_output.txt
linux 中創建空文件的四種方式
  • echo a.txt
  • touch b.txt
  • cat > c.txt(按ctrl+c退出)
  • vi d.txt (:wq 退出)

3.2 顯示文件內容的前幾行

head - n +行數值+文件名

3.3 顯示文件的后幾行

tail –n +行數值 +文件名

3.4 單頁瀏覽文件

more或者less(很雞肋。查看大文件使用)、

3.5 對文件內容進行排序

sort+文件名

3.6 查看文件內容類型

file +文件名 (根據文件內容,判別文件類)

3.7 報告或刪除文件中重復的行

uniq +文件名
-c 在輸出行前面加上每行在輸入文件中出現的次數。
-d 僅顯示重復行。
-u 僅顯示不重復的行

3.8 統計指定文件中的行數、字數、字節數

wc +文件名
-c 統計字節數。
-l 統計行數。
-m 統計字符數。這個標志不能與 -c 標志一起使用。
-w 統計字數。一個字被定義為由空白、跳格或換行字符分隔的字符串

3.9 漢字編碼轉換

iconv -f+原始編碼+-t+目標編碼

iconv -f utf-8 -t gb2312 hanzi>hanzi1
#將hanzi文件內容以utf-8編碼轉化為gb2312編碼并保存到hanzi1文件中

3.10 搜索文件內容 grep

grep+[選項]+[關鍵字或查找模式]+[文件名 1,文件名 2,……]
^ 以什么開頭 ,例如 ls –l | grep ^d 顯示當前目錄下的所有子目錄的詳細信息。
$ 以什么結尾 。例如 ls –l | grep c$ 顯示當前目錄下以 c 結尾的文件。

  • 常用的參數:
    -F 每個模式作為固定的字符串對待
    -c 只顯示匹配行的數量。
    -i 比較式不區分大小寫。
    -n 在輸出前加上匹配串所在的行號。
  • grep 通配符
    • .*一個或任意多個字符
    • .一個字符
    • []范圍

4. 其他命令

4.1 管道與命令替換

管道:是重定向的一種,就像一個導管一樣,將一個程序或命令的輸出作為另一個程序或命令的輸入

ls -l /etc| wc -l #統計etc目錄下個數(原理ls輸出該目錄下每個文件占一行的詳細信息,wc統計有多少行數因此知道有多少個文件)

4.2 文件或目錄的創建掩碼

umask 是一個掩碼值,用于限制新創建的文件和目錄的默認權限。它的作用是通過減法的方式,從文件或目錄的初始權限中“屏蔽掉”某些權限。

  • 假設當前的 umask 值為 002
    • 文件的初始權限:666
    • 屏蔽的權限:002
    • 最終權限:666 - 002 = 664
  • 對于目錄:
    • 目錄的初始權限:777
    • 屏蔽的權限:002
    • 最終權限:777 - 072 = 775
  • umask 的作用
    • 安全性:通過限制新文件和目錄的默認權限,防止不必要的訪問。
    • 一致性:確保所有用戶在創建文件和目錄時遵循統一的權限規則。

4.3 文檔管理

tar +[主選項+輔選項] +目標文檔源文件或目錄
c:創建新的檔案文件。
r: 要把存檔的文件追加到檔案文件的末尾。
x:從檔案文件中釋放文件。
f:使用檔案文件或設備。
v:在歸檔過程中顯示處理的文件。
z:用 gzip 來壓縮/解壓縮文件,后綴名為.gz,加上該選項后可以將檔案文件進行壓縮。
需要注意,在linux系統下“打包”與“壓縮”是兩個操作步驟。

示例 1:創建一個未壓縮的歸檔文件
tar -cvf archive.tar file1 file2 directory1
  • -c:創建歸檔文件。
  • -v:顯示詳細信息。
  • -f:指定歸檔文件的名稱為 archive.tar。(需注意第一個是目標文件,后面跟的是打包文件)
  • file1file2directory1:要歸檔的文件和目錄。
    (僅歸檔不壓縮,相當于拿大箱子裝了一堆文件,一般來說箱子占內存要略大于總文件和)
示例 2:創建一個 gzip 壓縮的歸檔文件
tar -czvf archive.tar.gz file1 file2 directory1
  • -z:使用 gzip 壓縮。
示例 3:解壓未壓縮的歸檔文件
tar -xvf archive.tar
  • -x:解壓歸檔文件

示例 4 :解壓 gzip 壓縮的歸檔文件

tar -xzvf archive.tar.gz
  • -z:使用 gzip 解壓。

4.4 scp 遠程 copy 文件命令

scp -r filename username@ip:path
filename:文件名稱
username:copy 到的目標主機的用戶名
ip:目標主機 IP
path:目標主機路徑

scp -r file3 king@192.168.4.52:~/ #從本機 copy 到其他機器
scp -r king@192.168.4.52:~/file3 . #從其他機器 copy 到本機 ,注意最后要加.表示下載當前文件夾

4.5 ssh遠程登錄

ssh 用戶名@IP

4.6 用來查看和配置網絡設備

ifconfig 查看網絡信息。
ifconfig 網卡名 down關閉網絡
ifconfig 網卡名 up開啟網絡

4.7 查看設置路由

route當網絡不通時,通過執行 route 查看路由,查看網關配置是否正確。

5.vim編輯器

5.1 命令狀態和編輯狀態

vim剛進入時默認為命令狀態,鍵盤對應的按鍵為命令,需要輸入關鍵命令才能進入編輯狀態。
新增:
a 從光標后面開始添加文本。
A 從光標所在行的末尾開始添加文本。
插入:
i 從光標前面開始插入文本。(最常用)
I 從光標所在行的開始處插入文本。
在命令模式中輸入 gg=G 可以自動對齊

5.2 刪除與修改

x 刪除光標處的字符。
dd 刪除光標所在的整行。
3dd 刪除光標所在行以及下面的兩行(刪除 3 行)。
D 刪除光標到行尾的文本,常用語刪除注釋語句 (d$)。
yy 復制光標所在的整行。
[n]yy 從光標開始往下復制n行,[n]表示一個整數。
p 將復制后的文本粘貼到光標處。
u 撤銷上次操作。

5.3 光標移動

^ 光標移動到行首
$ 光標移動到行尾
Ctrl+d向下翻半頁
Ctrl+f 向下翻一頁
Ctrl+u向上翻半頁
Ctrl+b 向上翻一頁
gg 光標定位到文檔頭
G 光標定位到文檔尾
H 光標定位到當前頁首
L 光標定位到當前頁的最后一行的行首
w 光標往后移一個字
b 光標往前移一個字
[n]+光標向后移動 n 行,[n]表示一個整數 10+
[n]-光標向前移動 n 行,[n]表示一個整數
[n]G10-光標定位到第 n 行行首, [n]表示一個整數 20G

5.4 查找與替換

/[str]查找字符串 str,[str]表示要查找的字符串回車后會加亮顯示所有找到的字符串,接著命令 n 移動到下一個找到的字符串。shift+n移動到上一個匹配字符串
:s /[str1]/[str2]把str1字符串替換為str2字符串。 /i忽略大小寫 /g 全部匹配

  • 部分替換
    :3,6 s/[src]/[dst]/ig(3-6 行中找src換成dst)
  • 全部替換
    :%s/[src]/[dst]/g 將文檔中所有 src 的字符串替換為 dst 字符串
    :%s/^ //g 將文檔每一行的行首的空格去掉

5.5 塊操作

v可視化塊選擇狀態,選中塊之后,可以對塊進行刪除(d),復制(y),剪切(x),撤銷(u)
Ctrl +v 豎向選擇模式,主要用于批量注釋代碼,輸入步驟如下:

  • 首先按 ctrl+v,豎選選中要注釋的行
  • 輸入 I(注意是大寫的 I),然后輸入//
  • 再輸入 esc,就會看到選中的行被注釋了。

5.6 文檔保存及退出

結束編輯:
:q 在未修改文檔的情況下退出
:q! 放棄文檔的修改,強行退出
:w 文檔存盤
:wq 文檔存盤退出
其他:
:help查看該命令的幫助提示(不常用,當不小心按 F1時,通過:q 進行退出)
ctrl+s鎖死vim面板,需要按ctrl+q來恢復。

6.sed

sed: 管道查找替換程序
s/舊內容/新內容/選項

  • -i 選項表示直接修改文件內容,而不是將結果輸出到標準輸出(如終端)。如果沒有 -ised 會將結果輸出到終端,而不會修改文件。
  • s 表示替換操作。
  • g 表示全局替換
cat a.txt | sed 's/aa/bb/' > b.txt
#將 a.txt 中的 aa 替換成 bb 并重定向輸出到 b.txt 中。
sed -i "s/printf/puts/g" *.c
#對當前目錄下所有以 .c 結尾的文件進行批量替換操作
find . -name "*.c" |xargs sed -i "s/puts/printf/g"
# 遞歸查找當前目錄及其子目錄中所有以 .c 結尾的文件,并將這些文件中的 puts 替換為 printf,同時直接修改文件內容。

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

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

相關文章

項目中引入 Redis 及 常用五種數據類型

在平常的開發過程中&#xff0c;我們經常會用到緩存的技術。比如&#xff0c;驗證碼60秒后過期、計數器的實現、商品信息存儲在緩存中快速展示等。那么&#xff0c;項目中經常會使用到的便是 redis 緩存。redis 在內存中操作&#xff0c;讀寫快。Redis 常用的數據類型有五種&am…

Spark-SQL簡介及核心編程

Spark-SQL概述&#xff1a;是Spark用于結構化數據處理的模塊&#xff0c;前身是Shark。Shark基于Hive開發&#xff0c;使SQL-on-Hadoop性能大幅提升&#xff0c;但對Hive依賴制約了Spark發展。SparkSQL汲取Shark優點并重新開發&#xff0c;在數據兼容、性能優化和組件擴展上優勢…

奇趣點播系統測試報告

1.項目簡介 本項目旨在搭建一個視頻共享點播系統&#xff0c;服務器支持用戶通過前端瀏覽器訪問服務器&#xff0c;獲取展示與觀看和操作的界面&#xff0c;最終實現視頻的上傳以及觀看和刪改查等基礎管理功能。讓用戶擁有良好的觀看體驗和分享視頻的快捷方式&#xff0c;此外…

【Web API系列】WebSocketStream API 深度實踐:構建高吞吐量實時應用的流式通信方案

前言 在當今的 Web 開發領域&#xff0c;實時通信已成為許多應用的核心需求。無論是即時聊天、實時數據儀表盤&#xff0c;還是在線游戲和金融交易系統&#xff0c;都需要高效的雙向數據傳輸能力。傳統的 WebSocket API 為此提供了基礎支持&#xff0c;但在處理大規模數據流、…

基于LangGraph的智能報告生成平臺項目分析

前言 不知道你是否知道或者了解OpenAI and Gemini Deep Research。他們是一種能夠根據輸入問題進行規劃、結合網絡搜索獲取信息并最終呈現結果的研究工具或技術。那這樣research是如何實現的呢?最近剛好看到一個實現類似功能的開源項目: open_deep_search。本文將基于該項目進…

Redis 常見的集群架構

Redis 常見的集群架構 以下是 Redis 常見的集群架構及其核心模式詳解&#xff0c;結合其設計原理、適用場景和優缺點進行綜合說明&#xff1a; 一、主從復制模式 架構原理 角色劃分&#xff1a;包含一個主節點&#xff08;Master&#xff09;和多個從節點&#xff08;Slave&…

面試寶典(C++基礎)-01

文章目錄 1. C++基礎1.1 C++特點1.2 說說C語言和C++的區別1.3 說說 C++中 struct 和 class 的區別1.4 include頭文件的順序以及雙引號""和尖括號<>的區別1.5 說說C++結構體和C結構體的區別1.6 導入C函數的關鍵字是什么,C++編譯時和C有什么不同?1.7 C++從代碼…

快速獲得ecovadis認證的方法,如何提升ecovadis認證分數,有效期是多久

快速獲得EcoVadis認證的方法 EcoVadis認證是企業社會責任&#xff08;CSR&#xff09;和可持續發展能力的國際評估標準&#xff0c;被廣泛應用于供應鏈管理&#xff08;如蘋果、微軟、聯合利華等巨頭要求供應商通過EcoVadis評估&#xff09;。以下是快速獲得認證的關鍵步驟&am…

ubuntu 安裝samba

ubuntu 版本&#xff1a;Ubuntu 24.04.2 LTS 1. 保證連網 2. 安裝samba sudo apt install samba 在安裝結束以后&#xff0c;我們可以使用下面的命令來查看安裝&#xff1a; apt list | grep samba freeipa-client-samba/noble 4.11.1-2 amd64 ldb-tools/noble 2:2.8.0samba…

基于SpringBoot的寵物健康咨詢系統(源碼+數據庫+萬字文檔)

502基于SpringBoot的寵物健康咨詢系統&#xff0c;系統包含三種角色&#xff1a;管理員、用戶&#xff0c;顧問主要功能如下。 【用戶功能】 1. 首頁&#xff1a;查看系統主要信息和最新動態。 2. 公告&#xff1a;瀏覽系統發布的公告信息。 3. 顧問&#xff1a;瀏覽可提供咨詢…

人工智能驅動的科研新范式及學科應用研究

人工智能&#xff08;AI&#xff09;驅動的科研新范式通過數據、算力、算法的深度耦合深度嵌入科學研究的全過程&#xff0c;引發科研流程、思考邏輯和組織模式的深刻變革。文章系統總結了AI驅動科研新范式的主要特征與形式&#xff0c;提出AI驅動科研新范式的演化方向由“科研…

代碼生成工具explain的高級用法

修改 explain.cpp 中的模板部分&#xff1a; // 添加自定義頭文件 cout << "#include \"CustomLib.h\"\n"; 生成支持日志的記錄代碼&#xff1a; cout << "Logger::init();\n"; // 自動插入初始化代碼其他匯總 Magnet 多線程控制…

Vue3+elementPlus中 樹形控件封裝

1.組件 <template><div class"selection"><el-select placeholder"請選擇" v-model"nameList" clearable clear"handleClear" ref"selectUpResId" style"width: 100%"><el-option hidden :…

輝視監獄廣播對講系統:SIP協議賦能智慧監管新生態

一、全域互聯&#xff1a;構建監獄安防設備協同生態 基于SIP協議的輝視廣播對講系統&#xff0c;以"通信中樞"角色打破設備壁壘。其強大的兼容性可無縫對接監獄現有監控、門禁、報警等異構設備&#xff0c;支持GB/T 28181國標協議&#xff0c;實現跨品牌、跨系統的數…

信息系統項目管理師-工具名詞解釋(上)

本文章記錄學習過程中,重要的知識點,是否為重點的依據,來源于官方教材和歷年考題,持續更新共勉 本文章記錄學習過程中,重要的知識點,是否為重點的依據,來源于官方教材和歷年考題,持續更新共勉 數據收集 頭腦風暴 在短時間內獲得大量創意,適用于團隊環境,需要引導者…

C++之二叉搜索樹

目錄 ?叉搜索樹的概念 二叉搜索數的性能分析 二叉搜索樹的模擬實現 定義二叉樹節點結構 二叉搜索樹的插入 二叉搜索樹的查找 二叉搜索樹的刪除 中序遍歷 全部代碼 二叉搜索樹key和key/value使用場景 key搜索場景&#xff1a; key/value搜索場景&#xff1a; key/value…

數據結構——哈希詳解

數據結構——哈希詳解 目錄 一、哈希的定義 二、六種哈希函數的構造方法 2.1 除留取余法 2.2 平方取中法 2.3 隨機數法 2.4 折疊法 2.5 數字分析法 2.6 直接定值法 三、四種解決哈希沖突的方法 3.1 開放地址法 3.1.1 線性探測法 3.1.2 二次探測法 3.2 鏈地址法 3…

使用U盤安裝 ubuntu 系統

1. 準備U 盤制作鏡像 1.1 下載 ubuntu iso https://ubuntu.com/download/ 這里有多個版本以供下載&#xff0c;本文選擇桌面版。 1.2 下載rufus https://rufus.ie/downloads/ 1.3 以管理員身份運行 rufus 設備選擇你用來制作啟動項的U盤&#xff0c;不能選錯了&#xff1b;點…

RadioMaster POCKET遙控器進入ExpressLRS界面一直顯示Loading的問題解決方法

RadioMaster POCKET遙控器進入ExpressLRS界面一直顯示Loading的問題解決方法 問題描述解決方法 問題描述 有一天我發現我的 RadioMaster POCKET 遙控器進入 ExpressLRS 設置界面時&#xff0c;界面卻一直停留在 “Loading” 狀態&#xff0c;完全無法進入設置界面。 我并沒有…

計算機網絡 - 三次握手相關問題

通過一些問題來討論 TCP 協議中的三次握手機制 說一下三次握手的大致過程&#xff1f;為什么需要三次握手&#xff1f;2 次不可以嗎&#xff1f;第三次握手&#xff0c;可以攜帶數據嗎&#xff1f;第二次呢&#xff1f;三次握手連接階段&#xff0c;最后一次ACK包丟失&#xf…