探索Linux世界:初次接觸和基本指令(文件操作)


文章目錄

  • 1.基本介紹和準備
  • 2.基本指令和Linux的基本操作
  • 3.幾個重要基本指令
    • 3.1 `ls` - 列出文件和目錄
      • 3.1.1文件的知識
      • 3.1.2 `.和..`文件
    • 3.2`pwd` - 顯示當前工作目錄
      • 3.2.1路徑知識
    • 3.3 `cd` - 切換目錄
    • 3.4 `touch` - 創建文件或更新時間戳
    • 3.5`mkdir` - 創建新目錄
    • 3.6`rm` - 刪除文件或目錄
    • 3.7`man` - 顯示命令手冊頁面
      • 3.7.1手冊介紹
    • 3.8`cp` - 復制文件或目錄
      • 3.8.1nano介紹
    • 3.9`mv` - 移動或重命名文件或目錄


1.基本介紹和準備

Linux是一種開源、免費的類Unix操作系統內核,其開發始于1991年,由芬蘭計算機科學家Linus Torvalds主導。Linux內核是操作系統的核心部分,而完整的操作系統則包括了Linux內核以及眾多的軟件工具和應用程序,形成了各種不同的Linux發行版(Distribution,簡稱"distro")

我們最為熟知的操作系統是Windows,它有著完整的圖形界面化操作,而Linux則是使用各種指令(很有程序員的感覺)

這里我學習使用的是云服務器+xshell的組合:

  • 云服務器:市面上有很多,大家可按需選擇。這里我使用的操作系統是CentOS 7.6(基于Linux內核的一個操作系統發行版)
  • xshell:Xshell 是一款 Windows 下的強大的終端模擬器和 SSH 客戶端。它主要用于遠程登錄和管理服務器

Linux的歷史發展也是極為龐大,這里我便不在繼續贅述,更多空間留給知識的介紹


2.基本指令和Linux的基本操作

  1. 指令ssh root@[ip地址]:通過 SSH(Secure Shell)協議連接到遠程服務器的命令

    • 輸入后按下回車再輸入密碼就好啦
  2. 指令whoami:就是Who am I? 它用于顯示當前登錄用戶的用戶名

請添加圖片描述

  1. 指令who顯示當前登錄到系統的用戶信息。這個命令的輸出包括登錄用戶的用戶名、終端、登錄時間等

指令12

  • 第一列就是用戶名,我這里是root
  • 第二列是第二列是終端(tty 表示物理控制臺,pts 表示偽終端,通常是通過SSH登錄的)
  • 第三列是登錄時間
  • 第四列可能顯示IP地址或主機名,表示從哪里登錄的
  1. 指令clear:除當前終端或控制臺上的屏幕內容,將終端窗口滾動至頂部(人如其名,就是clear)

  2. 復制:Ctrl + insert

    粘貼:Shift + insert

    終止當前命令:Ctrl + C

    XShell全屏:Alt + Enter

  3. 利用上下鍵跳轉之前輸入的指令

指令13

3.幾個重要基本指令

3.1 ls - 列出文件和目錄

用法:ls [選項] [目錄]

  • -a:列出目錄下的所有文件,包括以 . 開頭的隱含文件。隱含文件通常是系統文件或配置文件,以 . 開頭表示隱藏。
  • -d:將目錄本身像文件一樣顯示,而不是顯示其下的文件。比如 ls -d 指定目錄 將只顯示指定目錄的信息,而不會列出目錄下的文件。
  • -l:以長格式(詳細信息)列出文件。這將顯示文件的權限、所有者、所屬組、文件大小、創建或修改時間等詳細信息。
  • -n:用數字的 UID(用戶標識)和 GID(組標識)代替名稱。這對于顯示文件所有者和組的數字標識符而不是用戶名和組名很有用。
  • -R:列出所有子目錄下的文件,即遞歸顯示目錄結構。
  • -1:一行只輸出一個文件。這個選項通常用于在命令行中以一列的形式列出文件。
  • -t:以時間排序。文件和目錄按照它們的修改時間進行排序,最新的文件會顯示在前面。
  • -s:在文件名后輸出該文件的大小。這將以塊為單位顯示文件的大小。
  • -F:在每個文件名后附上一個字符,表示文件的類型。例如,* 表示可執行的普通文件,/ 表示目錄,@ 表示符號鏈接,| 表示 FIFOs(命名管道),= 表示套接字(sockets)

如果在使用 ls 命令時不指定目錄或文件名,它將默認列出當前工作目錄下的文件和子目錄,相當于ls .

示例:ls -l

在這里插入圖片描述

total 4 表示當前目錄下所有文件的總塊數。這個總塊數是當前目錄下所有文件所占用磁盤空間的總和,以塊(block)為單位

3.1.1文件的知識

指令15

這樣的一個大小為0的文件,是不是就說明沒有占用空間呢?

在Windows上創建一個文本文件,即使文件大小為0KB,實際上也會占用一些磁盤空間。這是因為文件系統會為每個文件分配一個簇(Cluster)作為存儲單位,而簇的大小通常是4KB。即便文件內容為空,文件系統也需要至少一個簇來存儲文件的元數據和分配信息

文件 = 文件屬性 + 文件內容,我們對文件的操作要么對文件內容進行操作,要么對文件屬性進行操作

  1. 文件屬性: 包括文件的元數據,如文件名、大小、創建時間、修改時間、權限等。這些屬性描述了文件的基本信息和特征。
  2. 文件內容: 是文件的實際數據,通常是以二進制形式存儲的。這是文件的實際內容,可以是文本、圖像、音頻等不同類型的數據。

在進行文件操作時,我們可以執行以下兩類主要操作:

  • 對文件內容的操作: 包括讀取、寫入、追加等操作,實際上是對文件中的二進制數據進行處理。這是我們通常所說的文件讀寫操作。
  • 對文件屬性的操作: 包括修改文件名、更改權限、設置時間戳等。這類操作更多地關注文件的元數據。

3.1.2 .和..文件

Linux和Unix系統中,隱藏文件以 . 開頭,例如 .example.txt。這樣的文件在默認情況下不會被 ls 命令列出。如果想要顯示所有文件,包括隱藏文件,可以使用 ls -a 命令,其中 -a 選項表示顯示所有文件,包括以 . 開頭的隱藏文件

指令16

  1. .(當前目錄):
    • . 代表當前目錄。在命令行或文件系統中,使用 . 表示當前所在的目錄。例如,如果你執行 ls .,它將列出當前目錄下的文件和子目錄。這對于明確指定當前工作目錄是很有用的。
  2. ..(上級目錄):
    • .. 代表上一級目錄。在文件系統中,使用 .. 表示當前目錄的父目錄。例如,如果你執行 cd ..,它將把當前目錄切換到上一級目錄。這在導航文件系統時很有用

3.2pwd - 顯示當前工作目錄

語法: pwd

功能pwd (print working directory)命令用于顯示當前工作目錄的完整路徑

在這里插入圖片描述

3.2.1路徑知識

  1. 絕對路徑

絕對路徑是從文件系統的根目錄開始描述文件或目錄的路徑。在Linux中,根目錄用斜杠 / 表示,而在Windows中,每個驅動器都有自己的根目錄,例如 C:\。絕對路徑可以唯一地標識文件系統中的某個位置,不受當前工作目錄的影響。

/home/user/documents/file.txt
  1. 相對路徑

相對路徑是相對于當前工作目錄或其他已知位置的路徑。相對路徑不包含根目錄信息,而是描述如何從當前位置導航到目標文件或目錄。在相對路徑中,使用 . 表示當前目錄,使用 .. 表示上級目錄

../images/picture.jpg

這個示例中,.. 表示上級目錄,因此路徑指向當前目錄的上一級目錄下的 images 目錄中的 picture.jpg 文件

  1. 文件路徑和目錄路徑

路徑可以是文件路徑或目錄路徑,具體取決于路徑的最后一部分是指向文件還是目錄。

  1. 分隔符

在Linux中,路徑分隔符是正斜杠 /,而在Windows中,路徑分隔符是反斜杠 \。大多數現代操作系統和文件系統能夠接受使用正斜杠或反斜杠表示的路徑。

  1. 絕對路徑 vs. 相對路徑
  • 絕對路徑:
    • 完整指定文件或目錄的位置,不依賴于當前工作目錄。
    • 在不同系統上通常具有更好的可移植性。
    • 更適合用于腳本和程序中,確保穩定性。
  • 相對路徑:
    • 相對于當前工作目錄或其他已知位置,更簡潔。
    • 在文件移動或項目結構變化時可能更易維護。
    • 相對路徑可能會受到當前工作目錄的變化而產生影響。
  1. 特殊目錄表示法
  • . 表示當前目錄。
  • .. 表示上級目錄

3.3 cd - 切換目錄

語法:cd 目錄名

功能:改變工作目錄。將當前工作目錄改變到指定的目錄下(絕對和相對路徑都行)

指令18

Linux的目錄結構是一個多叉樹

指令19


3.4 touch - 創建文件或更新時間戳

語法:touch [選項] 文件

功能:touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的文件

  • -a 或 --time=atime 或 --time=access 或 --time=use:只更改文件的訪問時間。
  • -c 或 --no-create:不建立任何文檔。
  • -d:使用指定的日期時間,而非當前時間。
  • -f:此參數將忽略不予處理,僅負責解決BSD版本 touch 指令的兼容性問題。
  • -m 或 --time=mtime 或 --time=modify:只更改文件的修改時間。
  • -r:把指定文檔或目錄的日期時間,設成和參考文檔或目錄的日期時間相同。
  • -t:使用指定的日期時間,而非當前時間

3.5mkdir - 創建新目錄

語法:mkdir [選項] dir_name

功能:在當前目錄下創建一個名為 dir_name的目錄

  • -p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄

在這里插入圖片描述

  1. 創建單個目錄:

    mkdir new_directory
    
  2. 創建多個目錄:

    mkdir dir1 dir2 dir3
    
  3. 遞歸創建目錄及其父目錄:

    mkdir -p parent_directory/child_directory
    

3.6rm - 刪除文件或目錄

語法:rm [選項] [dir_name/dir]

功能:刪除文件或目錄

  • -f 即使文件屬性為只讀(即寫保護),亦直接刪除

  • -i 刪除前逐一詢問確認

  • -r 刪除目錄及其下所有文件(r代表遞歸)

示例:

  1. 刪除單個文件:

    rm file.txt
    
  2. 刪除多個文件:

    rm file1.txt file2.txt
    
  3. 遞歸刪除目錄及其內容:

    rm -r directory
    
  4. 強制刪除,不提示:

    rm -f file.txt
    

指令111

3.7man - 顯示命令手冊頁面

語法: man [選項] 命令

功能:Linux的命令有很多參數,我們不可能全記住,我們可以通過查看聯機手冊獲取幫助

  • -k 根據關鍵字搜索聯機幫助

  • num 只在第num章節找

  • -a 將所有章節的都顯示出來,比如 man printf 它缺省從第一章開始搜索,知道就停止,用a選項,當按下q退出,他會繼續往后面搜索,直到所有章節都搜索完畢

3.7.1手冊介紹

Unix/Linux 系統手冊頁的八個主要部分的簡要說明:

  1. 第一章(1):普通命令
  • 包含了系統中可供一般用戶使用的常規命令的手冊頁。這包括各種常見的命令,如 lscpmv 等。
  1. 第二章(2):系統調用
  • 包含了系統調用的手冊頁,系統調用是應用程序與操作系統內核之間的接口。這些手冊頁通常提供有關如何使用系統調用以及調用所需的頭文件信息。
  1. 第三章(3):庫函數
  • 包含了 C 庫函數的手冊頁,這些函數由標準 C 庫提供。這包括如 printfscanfmalloc 等函數的詳細信息。
  1. 第四章(4):特殊文件
  • 包含有關特殊文件(通常在 /dev 目錄下)的手冊頁。這些文件代表設備,手冊頁描述了如何與這些設備文件進行交互。
  1. 第五章(5):文件格式
  • 包含有關文件格式的手冊頁。這包括配置文件、數據文件等,如 /etc/passwd,其中說明了文件中各字段的含義。
  1. 第六章(6):游戲
  • 預留給游戲使用,包含了與游戲相關的手冊頁。
  1. 第七章(7):附錄和雜項
  • 包含一些附加信息,如全局變量的說明,以及一些其他雜項。
  1. 第八章(8):系統管理命令
  • 包含了僅供系統管理員(root 用戶)使用的系統管理命令的手冊頁。這包括諸如 ifconfigmountshutdown 等命令的詳細信息。

每個章節都包含了對應類型的手冊頁,通過 man 命令可以方便地訪問和閱讀這些手冊頁,以獲取有關命令、函數、文件和系統的詳細信息

3.8cp - 復制文件或目錄

語法:cp [選項] 源文件或目錄 目標文件或目錄

功能: 復制文件或目錄

  • cp指令用于復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,

    則它會把前面指定的所有文件或目錄復制到此目錄中。若同時指定多個文件或目錄,而最后的目的地并非一個已存

    在的目錄,則會出現錯誤信息

  • -f 或 --force 強行復制文件或目錄, 不論目的文件或目錄是否已經存在

  • -i 或 --interactive 覆蓋文件之前先詢問用戶

  • -r遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理

  • -R 或 --recursive遞歸處理,將指定目錄下的文件及子目錄一并處理

指令112

  • 我們還可以進行重命名

在這里插入圖片描述

3.8.1nano介紹

nano - 文本編輯器

用法:nano [選項] 文件名

常用選項:

  • -c,–const:禁用控制鍵位。
  • -r,–restricted:限制訪問,避免執行危險操作。
  • -w,–nowrap:禁用自動換行。

基本操作:

  • Ctrl + O:保存文件。
  • Ctrl + X:退出編輯器。
  • Ctrl + G:獲取幫助。

示例:

  1. 打開或創建文件進行編輯:

    nano filename.txt
    
  2. 保存文件并退出:

    • Ctrl + O,然后按 Enter 保存文件。
    • Ctrl + X 退出編輯器。

nano 是一個簡單易用的文本編輯器,適用于終端環境。它提供了基本的編輯功能,適合快速查看和編輯文本文件

3.9mv - 移動或重命名文件或目錄

mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。

語法: mv [選項] 源文件或目錄 目標文件或目錄

功能:

  1. 視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中

  2. 第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。

  3. 當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。

  • -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋

  • -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋

  • 移動

指令114

  • 改名

指令115


這次Linux就先到這里啦,也是開始學Linux啦,關心大家支持!!!

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

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

相關文章

leetcode熱題100學習計劃-鏈表-反轉鏈表

思路 使用頭插法逆轉鏈表 注:鏈表一般為操作方便,頭結點不存值,是一個虛擬節點 代碼 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val)…

深入了解 Android 中的 FrameLayout 布局

FrameLayout 是 Android 中常用的布局之一&#xff0c;它允許子視圖堆疊在一起&#xff0c;可以在不同位置放置子視圖。在這篇博客中&#xff0c;我們將詳細介紹 FrameLayout 的屬性及其作用。 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/androi…

【數據結構和算法初階(C語言)】帶環鏈表問題詳解(快慢指針的燒腦應用)

目錄 1.鋪墊-----帶環鏈表基本了解 2. 題目&#xff1a;環形鏈表 3.環形鏈表|| ?編輯 3.1題解1 3.2 題解2 4.總結 1.鋪墊-----帶環鏈表基本了解 環形鏈表題目啟迪&#xff1a; 環形鏈表特點&#xff1a;遍歷鏈表會出現一模一樣的地址 2. 題目&#xff1a;環形鏈表 給…

數字化轉型導師鵬:政府數字化轉型政務服務類案例研究

政府數字化轉型政務服務類案例研究 課程背景&#xff1a; 很多地方政府存在以下問題&#xff1a; 不清楚標桿省政府數字化轉型的政務服務類成功案例 不清楚地級市政府數字化轉型的政務服務類成功案例 不清楚縣區級政府數字化轉型的政務服務類成功案例 課程特色&#x…

基于C語言實現內存型數據庫(kv存儲)

基于C語言實現內存型數據庫(kv存儲) 文章目錄 基于C語言實現內存型數據庫(kv存儲)1. 項目背景1.1 Redis介紹1.2 項目預期及基本架構 2. 服務端原理及代碼框架2.1 網絡數據回環的實現2.2 array的實現2.3 rbtree的實現2.4 btree的實現2.5 hash的實現2.6 dhash的實現2.7 skiplist的…

XV4001KC數字輸出 車載用(piezoman)

EPSON的XV4001KC角速度傳感器是為滿足汽車行業對高精度和高可靠性需求而設計的。它不僅提供了高級的運動監測特性&#xff0c;高精度的角速度測量和溫度監測功能&#xff0c;而且其緊湊的設計6.04.83.3mm尺寸對于空間受限的車載環境來說&#xff0c;是一大優勢&#xff0c;使得…

二十篇esp345

from machine import I2C,Pin from ssd1306 import SSD1306_I2C i2c I2C(sdaPin(“Y8”), sclPin(“Y6”)) oled SSD1306_I2C(128, 64, i2c, addr0x3c) oled.text(“Hello World!”, 0, 0) oled.text(“MicroPython”, 0, 20) oled.text(“By 01Studio”, 0, 50) oled.show()…

vue 中在子頁面中使用watch監聽父頁面數據而導致接口多次調用

vue 中在子頁面中使用watch監聽父頁面數據而導致接口多次調用 解決方式 debounce function debounce(func, delay) {let timerId;return function(...args) {clearTimeout(timerId);timerId setTimeout(() > {func.apply(this, args);}, delay);}; }watch中 watch:{監聽值…

AIGC 知識:機器學習中的“微調“和“遷移學習“有什么區別?

以下是關于**微調 (fine-tuning)和遷移學習 (Transfer learning)**的區別&#xff0c;涉及到機器學習和深度學習的上下文&#xff1a; 遷移學習&#xff1a; 概述&#xff1a;遷移學習涉及使用預訓練模型作為新任務或領域的起點。目標&#xff1a;利用預訓練模型在大型數據集上…

政務瀏覽器——打通信創閉環最后一公里

當前&#xff0c;信創建設工作主要集中在芯片、操作系統、數據庫以及pc整機&#xff0c;這些領域基本可用&#xff0c;或者達到了市場主流水平。但是&#xff0c;政務辦事場景下的信創落地仍然困難重重&#xff0c;很多地方不得不裝雙系統或買兩臺設備來來平衡日常業務和信創考…

Qt:基于QQuickFramebufferObject顯示QImage到QML中

GItHub地址 簡介 本倉庫實現了一個在QML框架中&#xff0c;顯示QImage數據的QML控件&#xff0c;取名為JQImageItem 本控件針對的場合是需要顯示并且頻繁修改QImage的場景&#xff0c;例如視頻顯示。 提供了2個實現版本&#xff0c;一個是基于QQuickFramebufferObject&…

STM32CubeIDE基礎學習-軟件安裝,環境搭建

STM32CubeIDE基礎學習-軟件介紹及環境搭建步驟 文章目錄 STM32CubeIDE基礎學習-軟件介紹及環境搭建步驟前言第1章 STM32CubeIDE 介紹1.1 軟件描述1.2 軟件支持的功能及特點 第2章 STM32CubeIDE 軟件安裝2.1 STM32CubeIDE 軟件獲取方法2.2 STM32CubeIDE 軟件安裝步驟2.2.1 錯誤安…

C++模板完整版

顧得泉&#xff1a;個人主頁 個人專欄&#xff1a;《Linux操作系統》 《C從入門到精通》 《LeedCode刷題》 鍵盤敲爛&#xff0c;年薪百萬&#xff01; 一、泛型編程 如何實現一個通用的交換函數呢&#xff1f; void Swap(int& left, int& right) {int temp left…

抖店入駐費用是多少?新手入駐都有哪些要求?2024費用明細!

我是電商珠珠 我做電商做了將近五年&#xff0c;做抖店做了三年多&#xff0c;期間還帶著學員一起做店。 今天&#xff0c;就來給大家詳細的講一下在抖音開店&#xff0c;需要多少費用&#xff0c;最低需要投入多少。 1、營業執照200元左右 就拿個體店舉例&#xff0c;在入…

hook函數——useReducer

目錄 1.useReducer定義2.useReducer用法3.useState和useReducer區別 1.useReducer定義 const [state, dispatch] useReducer(reducer, initialArg, init?) reducer&#xff1a;用于更新 state 的純函數。參數為 state 和 action&#xff0c;返回值是更新后的 state。state …

這波操作看麻了!十億行數據,從71s到1.7s的優化之路。

節期間關注到了一個關于 Java 方面的比賽&#xff0c;很有意思。由于是開源的&#xff0c;我把項目拉下來試圖學&#xff08;白&#xff09;習&#xff08;嫖&#xff09;別人的做題思路&#xff0c;在這期間一度讓我產生了一個自我懷疑&#xff1a; 他們寫的 Java 和我會的 Ja…

解鎖軟件管理新篇章,Allegro許可證使用規定全解

在數字化經濟的時代&#xff0c;軟件已經成為企業運營的關鍵要素。然而&#xff0c;軟件的使用往往伴隨著一系列的合規性問題&#xff0c;導致企業面臨潛在的風險和成本。Allegro許可證作為業界領先的軟件解決方案提供商&#xff0c;為企業提供全面的許可證使用規定&#xff0c…

每日一題——LeetCode1576.替換所有的問號

方法一 3個字母原則 把&#xff1f;替換為和他左右都不相等的字符&#xff0c;那么找3個字符abc&#xff0c;&#xff1f;總能替換為abc中的一個字符&#xff0c;遍歷字符串找到所有&#xff1f;&#xff0c;再遍歷abc把&#xff1f;替換為abc中的一個字符 var modifyString …

解析 openGauss 的 AutoVacuum 機制及優化策略

前言 在 openGauss 數據庫中&#xff0c;AutoVacuum 機制是一個關鍵的自動化功能&#xff0c;用于管理表的空間和性能。AutoVacuum 通過定期清理過時數據和更新統計信息&#xff0c;幫助數據庫管理員維護數據庫的性能和穩定性。 為什么需要 AutoVacuum&#xff1f; 了解AutoV…

JAVA內存模型與JVM內存結構

注意區分Java內存模型&#xff08;Java Memory Model&#xff0c;簡稱JMM&#xff09;與Jvm內存結構&#xff0c;前者與多線程相關&#xff0c;后者與JVM內部存儲相關。本文會對兩者進行簡單介紹。 一、JAVA內存模型(JMM) 1. 概念 說來話長&#xff0c;由于在不同硬件廠商和…