Linux系統編程Day2-- Linux常用操作

一、Linux 基本命令概覽

? ? ? ? 以下是一些常用的Linux命令操作,后續我們會對其每個單獨如何使用進行講解。

操作類型

常用命令示例

文件/目錄操作

ls,?cd,?cp,?mv,?rm,?mkdir,?rmdir

查看文件內容

cat,?less,?more,?head,?tail

查找操作

find,?grep,?locate,?which

權限管理

chmod,?chown,?chgrp

軟件安裝

apt,?yum,?dnf,?zypper,?snap,?flatpak

系統管理

ps,?top,?htop,?df,?du,?free,?uptime

用戶管理

adduser,?passwd,?su,?sudo,?whoami

網絡管理

ping,?ifconfig,?ip,?curl,?wget

打包壓縮

tar,?gzip,?zip,?unzip


二、Linux命令行基礎操作

1、pwd命令

pwd?是 “Print Working Directory” 的縮寫,顯示當前用戶所在的路徑

pwd/root

路徑的類型:絕對路徑和相對路徑

1. 絕對路徑
  • 從根目錄?/?開始

  • 不依賴于當前工作目錄

cd /etc
cd /home/user/Documents
pwd
/Users/junye/Desktop #絕對路徑
2. 相對路徑
  • 相對于當前工作目錄

  • 更靈活但可能不直觀

  • 常見相對路徑符號:

符號

含義

.

當前目錄

..

上一級目錄

~

當前用戶主目錄

-

上一個訪問的目錄


2、?ls命令

????????ls?是 Linux 中最常用的命令之一,用于列出目錄中的文件和子目錄,類似于 Windows 中的“查看文件夾內容”。

?顯示當前路徑下的文件或者目錄名稱

[root@iZwz9b70mwpeltilcusk8bZ ~] ls
Linux_commands

最常用選項整

命令

功能說明

ls

顯示當前目錄下的文件名(按列排布)

ls -l

詳細信息(long format),顯示權限、擁有者、大小等

ls -a

顯示所有文件,包括以.開頭的隱藏文件

ls -h

與?-l?一起使用,顯示人類可讀的文件大小(如 KB, MB)

ls -t

修改時間排序,最新的排最上面

ls -r

倒序排列(與其他排序一起使用)

ls -S

文件大小排序(默認從大到小)

ls -d */

只列出目錄

ls -R

遞歸列出所有子目錄內容

ls --color=auto

顯示彩色輸出(區分目錄、可執行文件等)

ls -lh

常用組合:詳細信息 + 人類可讀大小

ls -alh

顯示全部文件,詳細信息,大小可讀 ——?最常用組合之一!


拓展:配合通配符使用

ls *.txt ? ? ? ? ?# 顯示所有 txt 文件
ls dir*/ ? ? ? ? ?# 顯示所有以 dir 開頭的目錄
ls [a-z]*.sh ? ? ?# 顯示以小寫字母開頭的 .sh 文件


3、cd?切換目錄

????????cd?是 “change directory” 的縮寫,用于切換當前工作目錄,即進入另一個文件夾。

cd .. ? ? ? ? # 返回上一級
cd ./folder ? # 進入當前目錄下的 folder
cd ~/Desktop ?# 進入用戶的桌面目錄
cd - ? ? ? ? ?# 回到上一個工作目錄

命令

功能說明

cd

切換到當前用戶的主目錄(/home/用戶名)

cd ~

同上,~?代表主目錄

cd /path/to/dir

切換到指定的絕對路徑目錄

cd ..

切換到上一級目錄

cd .

停留在當前目錄(通常用于命令測試)

cd -

返回上一次所在的目錄

cd ~/Downloads

切換到主目錄下的 Downloads 子目錄

cd ../folder

相對于當前目錄,切換到上級目錄的 folder 子目錄

注意事項:
  1. cd?只能進入“目錄”,不能進入“文件”。

  2. 如果目錄不存在,會提示錯誤:

  3. 如果路徑中帶有空格,需加引號或用轉義符:

cd "My Documents"
cd My\ Documents
  • 根目錄 / 是文件系統的起點

  • 所有文件、目錄、設備等都從?/?派生

  • 每個目錄可能包含子目錄或文件,構成一棵

Linux 文件系統的典型目錄樹結構(簡化圖)

/
├── bin/ ? ? ? ? ? # 系統基本命令,如 ls、cp、mv 等
├── boot/ ? ? ? ? ?# 引導系統所需的文件,如 vmlinuz、grub 等
├── dev/ ? ? ? ? ? # 設備文件,如硬盤、終端、U盤等
├── etc/ ? ? ? ? ? # 系統配置文件,如 passwd、hosts
├── home/ ? ? ? ? ?# 普通用戶的主目錄(如 /home/zhang)
│ ? ├── user1/
│ ? └── user2/
├── lib/ ? ? ? ? ? # 系統運行的共享庫(.so 文件)
├── media/ ? ? ? ? # 自動掛載外部設備(U盤、光盤)
├── mnt/ ? ? ? ? ? # 手動掛載用的掛載點
├── opt/ ? ? ? ? ? # 可選的第三方軟件
├── proc/ ? ? ? ? ?# 虛擬文件系統,存儲進程和內核信息
├── root/ ? ? ? ? ?# 超級用戶 root 的主目錄
├── run/ ? ? ? ? ? # 系統運行時的臨時文件
├── sbin/ ? ? ? ? ?# 系統管理員用的命令,如 reboot、mount
├── srv/ ? ? ? ? ? # 提供服務相關的數據
├── sys/ ? ? ? ? ? # 內核相關的系統信息(虛擬文件系統)
├── tmp/ ? ? ? ? ? # 臨時文件目錄,重啟后自動清空
├── usr/ ? ? ? ? ? # 二級程序目錄(用戶安裝的程序)
│ ? ├── bin/ ? ? ? # 一般用戶可執行程序
│ ? ├── lib/ ? ? ? # 程序庫
│ ? └── share/ ? ? # 共享資源
├── var/ ? ? ? ? ? # 經常變化的數據,如日志、緩存、郵件
└── (其他可能目錄,如 swap, lost+found, etc.)


Linux文件目錄
  • 可以將?/?理解為 “C盤根目錄”,但 Linux 只有一個樹狀結構,沒有?C:/ D:/。

  • 所有磁盤、U盤、網絡掛載都會作為一個“目錄”掛載到樹上。例如:

  • /etc

    ├── apache2

    │???├── apache2.conf

    │???└── sites-available

    ├── bash.bashrc

    ├── hostname

    └── network


  • Linux 的文件系統是樹結構,從根?/?開始向下展開

  • 沒有 Windows 的盤符(C:\ D:\),所有設備都掛載在樹的某個位置

  • 通過路徑+文件名訪問具有唯一性

  • 熟悉?/etc/、/home/、/usr/、/var/?等核心目錄非常關鍵

  • 使用?tree?命令可以更清晰地查看結構

Linux 下載tree 命令

? ? ? ? 下載tree 利用sudo權限

#輸入
sudo yum install tree

????????如果在root權限下直接利用yum即可

yum install -y tree
Macos 下載tree命令

????????利用homebrew 來安裝tree

brew install tree

    4. touch創建文件

    1. 創建空文件

    2. 修改文件的訪問時間(atime)和修改時間(mtime)

    3. 如果文件不存在就創建它,如果文件存在則更新時間戳

    touch file.txt                  # 創建空文件
    
    1、利用touch創建cpp文件
    touch test.cpp

    然后利用 vim查看并修改文件

    vim test.c

    shift+:輸入i進入修改模式,寫一個簡單的c++腳本,hello world!

    然后利用 g++ 或者 clang++ 進行文件的編譯輸出一個后綴為.out的文件

    g++ test.cpp -otest.out

    然后運行test.out文件。

    ./test.out 

    輸出描述:

    hello world!


    2、創建多個文件:
    touch a.txt b.txt c.txt

    ?3. 更新文件的時間戳(不更改內容)
    touch existing.txt

    這個命令會把?existing.txt?的“最后訪問時間”和“最后修改時間”更新為當前時間,但不更改內容

    4. 設置特定時間(使用?-t?選項)

    touch -t 202501010000 file.txt

    表示將時間設置為:2025 年 1 月 1 日 00:00

    5. 不創建文件,只修改已有文件的時間(使用?-c)
    touch -c file.txt

    6、常用選項

    選項

    含義說明

    -c

    不創建文件(如果不存在)

    -a

    只改變訪問時間(atime)

    -m

    只改變修改時間(mtime)

    -t [[CC]YY]MMDDhhmm[.ss]

    指定時間

    -r 文件名

    復制另一個文件的時間戳

    選項

    含義說明

    -c

    不創建文件(如果不存在)

    -a

    只改變訪問時間(atime)

    -m

    只改變修改時間(mtime)

    -t [[CC]YY]MMDDhhmm[.ss]

    指定時間

    -r 文件名

    復制另一個文件的時間戳

    5. mkdir 創建目錄

    5、mkdir?的基本語法

    1. 創建單個目錄
    mkdir [選項] 目錄名
    2. 一次創建多個目錄

    mkdir dir1 dir2 dir3
    3. 創建嵌套目錄(推薦使用?-p 選項)

    ????????加上?-p,如果父級目錄不存在,它會一并創建。

    mkdir -p parent/child/grandchild
    4.?使用絕對路徑或相對路徑創建目錄
    mkdir /home/user/newdir       # 絕對路徑
    mkdir ./newdir                # 當前目錄下創建
    mkdir ../siblingdir           # 在上一級目錄中創建
    5. 常用選項

    選項

    含義

    -p

    創建多層目錄結構,如目錄已存在則不報錯

    -v

    顯示每個被創建的目錄名稱(verbose 模式)

    -m

    設置目錄權限(mode)



    6、Linux 文件的三種時間戳

    時間戳類型

    含義

    英文縮寫

    可用命令查看

    修改時間

    文件內容被更改的時間

    mtime

    ls -l?or?stat

    訪問時間

    文件被讀取(或執行)時的時間

    atime

    stat

    狀態改變時間

    文件的元數據(權限、所有者等)改變的時間

    ctime

    stat

    1?? 修改時間(mtime)
    • 表示文件內容被更改的時間。

    • 舉例:使用?vim?或?echo >>?修改了文件內容,mtime?會被更新。

    • 常用于:判斷文件是否有被修改

    • 查看方式:

    ls -l file.txt
    # 或者
    stat file.txt
    2?? 訪問時間(atime)
    • 表示文件"被訪問(讀取)"的時間。

    • 舉例:使用?cat,?less,?vim?打開文件,只要讀取了內容,就會更新?atime。

    • 注意:為了性能,有些系統會禁用?atime?自動更新(尤其是 SSD),可通過掛載參數查看或設置。

    • 查看方式:

    stat file.txt
    3?? 狀態改變時間(ctime)

    ????????表示文件的元信息被修改的時間(比如權限、所有者、鏈接數等),不是內容!

    • 舉例:

      • chmod,?chown,?mv?等更改元數據都會更新?ctime, 但不一定修改了內容.

    • 不能手動更改 ctime(除非重新寫入或使用特殊工具)。

    • 查看方式:

    stat file.txt

    7、為什么時間戳那么重要?

    ?????????1. 自動化備份與同步工具的依據
    • 工具如?rsync,?make,?cron,?tar?等都會根據?mtime?判斷文件是否需要重新復制、打包或編譯

    • 舉例:rsync?默認會比較源文件和目標文件的?mtime。

    ?????????2. 日志分析與審計
    • 可以分析某個文件最近是否被訪問(atime),或者是否改動(mtime)。

    • 系統安全人員經常會查看是否有非法訪問。

    ????????3. 性能優化和 SSD 生命周期
    • atime?更新頻繁,對 SSD 磁盤有寫損耗。

    • 因此許多 Linux 系統用?noatime?或?relatime?掛載選項減少寫操作。

    ? ? ? ?4、touch?對時間戳的控制

    命令示例

    效果

    touch file.txt

    同時更新 atime 和 mtime 為當前時間

    touch -a file.txt

    僅更新 atime

    touch -m file.txt

    僅更新 mtime

    touch -t 202501011200 file.txt

    手動指定 atime 和 mtime

    touch -r another.txt file.txt

    把另一個文件的時間戳復制過來

    ? ? ? ??

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

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

    相關文章

    cs336 assignment1 作業環境配置

    代碼結構 所有的代碼寫到cs336_basics/* 下面,在adapters.py里調用自己的.py,通過所有的test。 作業資料參考 karpathy視頻倉庫: 視頻 github倉庫 測試項目運行環境 下載uv uv官網倉庫 使用命令: powershell -ExecutionPoli…

    YOLOv11來了,使用YOLOv11訓練自己的數據集和推理(附YOLOv11網絡結構圖)

    文章目錄前言一、YOLOv11代碼下載地址1.YOLOv11模型結構圖二、數據集準備1.數據集標注軟件2.voc數據集格式轉換3.數據集劃分4.修改yolo的訓練配置文件三、YOLO環境配置教程1.pytorch環境安裝2.其他依賴安裝四、YOLOv11訓練五、YOLOv11推理六、解決訓練過程中斷怎么繼續上次訓練…

    20250731在榮品的PRO-RK3566開發板的Android13下跑通敦泰的FT8206觸控芯片

    20250731在榮品的PRO-RK3566開發板的Android13下跑通敦泰的FT8206觸控芯片 2025/7/31 17:48緣起:本文前置條件:已經解決FT8206和PRO-RK3566的硬件連接。 通過i2cdect可以掃描到i2c從機地址:0x38。【8位地址為0x70】緣起:本文只分析…

    異常檢測:算法分類及經典模型概覽

    第一部分:異常檢測的核心概念 在深入算法細節之前,理解異常檢測的“語境”至關重要。 1. 什么是異常檢測? 異常檢測(Anomaly Detection 或 Outlier Detection)旨在通過數據挖掘技術,識別出數據集中與大多數…

    技術干貨 | 矢網DTF測量技術:透視線纜、天線與波導內部缺陷的“射頻X光”(二)

    無線通信、雷達等領域中,射頻組件與傳輸系統的性能至關重要,其內部微小損傷易導致信號問題甚至系統失效。傳統測試無法精確定位故障點,排查困難。DTF測量,矢網賦予的“透視眼”!它能穿透“黑箱”,精確定位線…

    【[CSP-J 2022] 上升點列】

    題目 [CSP-J 2022] 上升點列 題目描述 在一個二維平面內,給定 n 個整數點 (x i ,y i? ),此外你還可以自由添加 k 個整數點。 你在自由添加 k 個點后,還需要從 nk 個點中選出若干個整數點并組成一個序列,使得序列中任意相鄰兩點間…

    Kong API Gateway的十年進化史

    一、技術基因的誕生(2007-2015) 2007年,三位意大利開發者Augusto Marietti、Marco Palladino和Michele Orru在博洛尼亞的一個小車庫中創立了Mashape公司。 最初他們開發了一個名為Mashup的API聚合平臺,試圖通過整合第三方API為開發…

    藍牙設備配對:從機發現主機全過程

    在藍牙 paging 過程中,從設備(Slave)是通過特定的掃描機制和跳頻方式來發現主設備發送的 ID 包的,具體過程如下:從設備處于特定掃描模式:從設備需要處于 Page Scan 模式,才能夠接收主設備發送的…

    聚觀早報 | 三星獲特斯拉AI芯片訂單;小米16首發成安卓最強SOC;iPhone 17 Pro支持8倍光學變焦

    聚觀早報每日整理最值得關注的行業重點事件,幫助大家及時了解最新行業動態,每日讀報,就讀聚觀365資訊簡報。整理丨肖羽7月29日消息三星獲特斯拉AI芯片訂單小米16首發成安卓最強SOCiPhone 17 Pro支持8倍光學變焦寧德時代滑板底盤公司啟動首輪融…

    Gemini Fullstack LangGraph Quickstart(DeepSeek+Tavily版本)

    文章目錄參考資料說明Gemini Fullstack LangGraph QuickstartDeepSeek Fullstack LangGraph Quickstart項目部署完整源碼地址后端部署前端部署參考資料 DeepResearch應用開發實戰網盤課件資料 說明 本文僅供學習和交流使用,感謝賦范社區相關老師的辛苦付出&#…

    鋼筋計數誤差↓78%!陌訊多模態融合算法在建筑地產AI質檢的落地實踐

    ?摘要??針對建筑地產行業鋼筋驗收場景的高誤差痛點,本文解析陌訊視覺算法的多模態融合架構如何實現毫米級精度目標檢測。實測顯示:在Jetson Xavier NX邊緣設備上,鋼筋計數mAP0.5達??92.4%??,較基線模型提升28個百分點&…

    負載均衡 LoadBalance

    問題引入 我們一個服務可能會進行多機部署,也就說多臺服務器組成的集群共同對外提供一致的服務,那么我們的微服務的代碼就需要拷貝多份,部署到不同的機器上。 我們使用 IDEA 來開啟多個相同的服務 這里以 product-service 為例:…

    13. 若依框架中的 Sensitive 敏感字段過濾

    若依框架中有Sensitive注解,但代碼中并未使用,但該注解的實現還是比較值的學習的。該注解是一個運行時注解該注解只能應用在字段上JacksonAnnotationsInside 表示當使用Jackson序列化時,Jackson會自動識別該注解下的其他Jackson相關注解&…

    git本地倉庫,工作區和暫存區的知識

    一 git工作原理 Git 的工作原理基于分布式版本控制,通過管理文件的不同版本狀態,實現代碼的追蹤、協作和回溯。除了常見的工作區(Working Directory) 和暫存區(Staging Area/Index),核心還包括本…

    MPU6050模塊

    一:MPU6050簡介輸出一個隨姿態變化而變化的電壓,想要量化電壓,就得使用ADC轉化歐拉角偏航角(Yaw):也叫航向角,通常是繞 z 軸旋轉的角度,以 x 軸正向為起始邊,旋轉后 x 軸…

    jvm的棧和堆

    在 JVM 中,棧(Stack)和堆(Heap)是兩種核心內存區域,用于存儲不同類型的數據,它們的設計和存儲規則有明確區分,主要體現在存儲內容、生命周期和管理方式上:一、棧&#xf…

    自動駕駛車輛的敏捷安全檔案

    簡介近年來,在開發安全關鍵軟件時,敏捷開發方法的使用日益增多。敏捷方法非常適合自動駕駛汽車軟件的增量改進、運行設計域的逐步擴展以及新型智能路側單元的開發。由于車輛和智能路側單元的預期改進,未來幾年將會有新的自動駕駛車輛試驗。因…

    【時時三省】(C語言基礎)動態內存分配與它的指針變量

    山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省什么是內存的動態分配全局變量是分配在內存中的靜態存儲區的,非靜態的局部變量(包括形參)是分配在內存中的動態存儲區的,這個存儲區是一個稱為棧…

    SpringMVC的核心架構與請求處理流程

    Spring MVC 核心架構核心組件組件作用類比DispatcherServlet前端控制器,統一接收請求并協調各組件處理一個餐廳的前臺HandlerMapping根據請求URL映射到對應的處理器(Controller)路由表HandlerAdapter執行處理器方法,處理參數綁定、…

    css 不錯的按鈕動畫

    效果圖wxml <view class"{{status?active:}}"><view class"up-top btn"><text>向上</text></view><view class"up-left btn"><text>向左</text></view><view class"up-center b…