Linux快速入門(三)Linux文件管理

来源:https://www.cnblogs.com/Timesi/archive/2022/08/29/16636492.html
-Advertisement-
Play Games

Linux文件操作 head head命令用於顯示文件的前幾行內容,可以通過-num參數展示文件前num行的內容。 root@ubuntu:~# ls bb.txt cc.txt snap root@ubuntu:~# head cc.txt Hello Ubuntu add test root@u ...


Linux文件操作

head命令用於顯示文件的前幾行內容,可以通過-num參數展示文件前num行的內容。

root@ubuntu:~# ls
bb.txt  cc.txt  snap
root@ubuntu:~# head cc.txt 
Hello
Ubuntu
add test
root@ubuntu:~# head -2 cc.txt 
Hello
Ubuntu

tail

tail命令用於顯示文件的後幾行內容,可以通過-num參數展示文件後num行的內容。

root@ubuntu:~# tail cc.txt 
Hello
Ubuntu
add test
root@ubuntu:~# tail -2 cc.txt 
Ubuntu
add test

more

如果一個文件的內容過多,需要分成好幾頁顯示的時候,就可以使用more命令,預設會顯示第一頁的內容,可以通過enter鍵查看下一行,空格鍵查看下一頁,b查看上一頁,q鍵退出查看。

cp

cp命令用於複製文件或者文件夾,複製的同時也可以進行改名操作,如:cp XXX YYY表示將XXX複製為YYY,如果不需要改名,那麼YYY只需要寫到具體路徑即可,XXXYYY可以是文件名也可以是一個路徑。
將文件1.txt複製為2.txt

root@ubuntu:~# ls
1.txt  snap
root@ubuntu:~# cp 1.txt 2.txt
root@ubuntu:~# ls
1.txt  2.txt  snap

將文件1.txt複製到Music文件夾下且不重命名,這是只需要寫具體路徑Music/即可:

root@ubuntu:~# ls
1.txt  Music  snap
root@ubuntu:~# cp 1.txt Music/
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
1.txt

將文件1.txt複製到Music文件夾下同時重命名為2.txt

root@ubuntu:~# ls
1.txt  Music  snap
root@ubuntu:~# cp 1.txt ./Music/2.txt
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
2.txt

mv

mv命令用於移動文件,mv XXX YYY表示將XXX移動到YYY,這裡的移動類似於windows下的剪切操作,XXXYYY和上面的cp操作一樣可以是路徑也可以是文件名,如果是路徑則表示,將XXX路徑下的文件移動到YYY路徑下,這裡將/root目錄下的文件1.txt移動到Music目錄下且不重命名:

root@ubuntu:~# pwd
/root
root@ubuntu:~# ls
1.txt  Music  snap
root@ubuntu:~# mv 1.txt Music/
root@ubuntu:~# ls
Music  snap
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
1.txt

/root目錄下的文件1.txt移動到Music目錄下且重命名為2.txt

root@ubuntu:~# pwd
/root
root@ubuntu:~# ls
1.txt  Music  snap
root@ubuntu:~# mv 1.txt Music/2.txt
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
2.txt

除此之外,mv還可以實現文件重命名的效果,只需要將當前路徑下的文件移動到當前文件夾下並重命名就可以實現:

root@ubuntu:~# ls
1.txt  Music  snap
root@ubuntu:~# mv 1.txt 3.txt
root@ubuntu:~# ls
3.txt  Music  snap

tar

tar命令用於打包文件。
常用的兩個命令分為兩組:
(1) tar -zcvftar -zxvf
tar -zcvf用於將文件打成tar包並壓縮為.gz文件。
tar -zxvf用於對打包後的壓縮包文件進行解壓。

  • 參數詳解:
    z參數用於表示使用gzip格式壓縮或者解壓一個文件
    c參數用於創建一個壓縮文件
    v參數用於顯示壓縮或者解壓的詳細過程
    f參數用於指定壓縮或者解壓的文件名

(2) tar -jcvftar -jxvf
這一組命令與上一組命令唯一不同的地方在於這裡使用的參數是jj參數是指壓縮或者解壓的格式是bzip2格式。

兩組命令的使用場景:
(1)如果壓縮文件是以.tar.gz結尾使用tar -zxvf命令進行解壓。
(2)如果壓縮文件是以.tar.bz2結尾使用tar -jxvf命令進行解壓。
如果想將文件解壓到指定的目錄下可以再添加-C參數。

文件檢索

find

find命令用於按照指定的條件查找文件,一般使用格式為find 查找路徑 [可選參數] 查找文件
可選參數:
-name指定需要查找的文件名。
-size匹配指定文件大小的文件,比如查找大於100KB的文件使用參數+100,小於100KB的文件使用參數為-100
在當前目錄下查找文件名為4.txt的文件,如果存在則會顯示文件名,不存在則不顯示:

root@ubuntu:~# ls
1.txt  2.txt  3.txt  4.txt  Music  snap
root@ubuntu:~# find . -name "4.txt"
./4.txt
root@ubuntu:~# find . -name "5.txt"
root@ubuntu:~# 

grep

grep命令用於在某個文本中使用關鍵詞進行搜索,一般使用格式為find [可選參數] 目標文本 查找的文件名
可選參數:
-n用於顯示查找到的文本在文件的第幾行。

root@ubuntu:~# cat 1.txt 
aaaaaaaaa
bbbbbbbb
ccccccc
dddddd
eeeee
ffff
ggg
hh
i
root@ubuntu:~# grep ddd 1.txt 
dddddd
root@ubuntu:~# grep -n ddd 1.txt 
4:dddddd

wc

wc命令用於統計文件中的行數或者單詞數,命令分別為wc -l 文件名wc -w 文件名

root@ubuntu:~# cat 1.txt 
first line
second line
aaaa
bbbb
ddd
ff
root@ubuntu:~# wc -l 1.txt 
6 1.txt
root@ubuntu:~# wc -w 1.txt 
8 1.txt

tree

tree命令用於以樹狀圖的方式展示指定目錄下的文件結構,命令格式為tree 指定目錄
使用此命令前需要先進行安裝,我這裡使用的是Ubuntu 20,所以使用的命令是sudo apt-get install tree,如果是Centos則可以使用yum install tree命令進行安裝。

root@ubuntu:~# pwd
/root
root@ubuntu:~# tree
.
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
├── Music
└── snap
    └── firefox
        ├── 1540
        ├── 1747
        ├── common
        └── current -> 1747

7 directories, 4 files

Linux文件許可權

chmod

在說文件許可權之前,先介紹一下Linux下關於文件的一些知識:

root@ubuntu:~# ll
total 48
drwx------  6 root root 4096 Aug 29 15:29 ./
drwxr-xr-x 19 root root 4096 Jul 18 21:50 ../
-rw-------  1 root root   76 Aug 29 10:06 .bash_history
-rw-r--r--  1 root root 3106 Oct 15  2021 .bashrc
drwx------  3 root root 4096 Jul  8 03:01 .cache/
-rw-------  1 root root   20 Jul  8 03:08 .lesshst
-rw-r--r--  1 root root  161 Jul  9  2019 .profile
drwx------  2 root root 4096 Jul  8 02:41 .ssh/
-rw-------  1 root root 2713 Aug 29 15:29 .viminfo
-rw-r--r--  1 root root   40 Aug 29 15:29 1.txt
-rw-r--r--  1 root root    0 Aug 29 15:22 2.txt
-rw-r--r--  1 root root    0 Aug 29 15:06 3.txt
-rw-r--r--  1 root root    0 Aug 29 15:22 4.txt
drwxr-xr-x  2 root root 4096 Aug 29 15:18 Music/
drwx------  3 root root 4096 Jul  8 03:05 snap/

我們使用ll查看文件的時候,可以看到文件的詳細信息,文件詳細信息的第一列是文件的格式,d表示該文件是一個目錄,-表示該文件是一個普通文件,c表示為串列埠設備,如鍵盤滑鼠等。
詳細信息中的第二到第四個字元是文件所有者對該文件擁有的許可權,r表示讀許可權,通常使用數字4表示,w表示寫文件,通常使用數字2表示,x表示執行許可權,通常使用數字1表示,如果擁有對應許可權就會有對應的字元,如果是-表示沒有對應許可權。
接下來的三個字元是當前用戶所在組對該文件擁有的許可權,再接著的三個字元是其他用戶對該文件的許可權。

這時我們想對文件的許可權進行修改時就可以通過chmod命令加上需要修改的許可權對應的數字組合進行修改,比如我想修改4.txt的屬性為只允許我自己擁有讀寫許可權,其餘人沒有任何許可權,就可以使用chomd 600 文件名,600中的64+2得來,即讀許可權+寫許可權,6對應的是前三個字元當前用戶的許可權,第二個0對應的是當前用戶所屬組的許可權,第三個0對應的是其他用戶對於這個文件的許可權。

root@ubuntu:~/Music# ll
total 12
drwxr-xr-x 2 root root 4096 Aug 29 15:37 ./
drwx------ 6 root root 4096 Aug 29 15:37 ../
-rw-r--r-- 1 root root   40 Aug 29 15:29 1.txt
-rw-r--r-- 1 root root    0 Aug 29 15:22 2.txt
-rw-r--r-- 1 root root    0 Aug 29 15:06 3.txt
-rw-r--r-- 1 root root    0 Aug 29 15:22 4.txt
root@ubuntu:~/Music# chmod 600 4.txt 
root@ubuntu:~/Music# ll
total 12
drwxr-xr-x 2 root root 4096 Aug 29 15:37 ./
drwx------ 6 root root 4096 Aug 29 15:37 ../
-rw-r--r-- 1 root root   40 Aug 29 15:29 1.txt
-rw-r--r-- 1 root root    0 Aug 29 15:22 2.txt
-rw-r--r-- 1 root root    0 Aug 29 15:06 3.txt
-rw------- 1 root root    0 Aug 29 15:22 4.txt

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文本已開啟銀杏化模式,題目難度從簡入難,非常銀杏 1.1 題目一 const promise1 = new Promise((resolve, reject) => { console.log('promise1') }) console.log('1', promise1); 先自己作答,別偷看答 ...
  • Vue中的$router 和 $route的區別 點擊視頻講解更加詳細 this.$route:當前激活的路由的信息對象。每個對象都是局部的,可以獲取當前路由的 path, name, params, query 等屬性。 this.$router:全局的 router 實例。通過 vue 根實例中 ...
  • 單例模式 本章筆記的內容主要參考《設計模式之美》 核心問題 <aside> ❓ 1.為什麼要使用單例? 2.單例存在的問題? 3.單例與靜態類的區別? 4.替代方案? </aside> 為什麼要使用單例模式 /在很多場景中,我們需要一些可以共用的對象,來統一操作一些資源。若此時,產生了多個實例,則這 ...
  • 本文不詳細介紹什麼是整潔架構以及 MVP 模式,自行查看文章結尾相關鏈接文章。 整潔架構粗略介紹 下圖為整潔架構最原始的結構圖: Entities/Models:實體層,官方說法就是封裝了企業里最通用的一部分邏輯,也可以叫 Models, 可能是只包含數據欄位的對象,也可能包含方法,具有一部分業務邏 ...
  • 一:背景 本篇是我們系列文章的最後一篇,前面的文章中大多是在 CLR Runtime 以及 OS 層面進行監控來發現各種可疑的程式問題,除了這兩個層面,其實我們還可以對 SDK 中一些類進行洞察,比如說: ArrayPool Http Socket Task 更多資料可以看下:https://doc ...
  • 寫了個shell腳本 第一行是#!/bin/bash 執行時報錯#!/bin/bash: No such file or directory 雖然不影響執行,但是每次都報這個錯誤看著很彆扭 百度了一下,因為我這個sh文件是在windows環境創建的,然後傳到linux里執行,所以編碼還是保留的win ...
  • 一款功能強大的mac文件檢索工具Find Any File推薦給大家,mac Find Any File可以讓你在本地磁碟上搜索、查找任何文件,包括本地磁碟的名稱、 創建或修改日期、 大小或類型和創建者代碼等。 詳情:Find Any File for Mac(文件搜索) 軟體簡介 Find Any ...
  • OCR Tool PRO for mac是一款簡單好用的圖片文本OCR識別工具,準確性和速度從圖像和 PDF或者任何圖片中提取文本,並複製到剪切板。 詳情:OCR Tool PRO for mac(圖片文本OCR識別工具) OCR 工具對圖像執行高級 OCR(光學字元識別),以卓越的準確性和速度從圖 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...