Linux 基礎入門操作 前言 linux操作指令介紹

1 linux 目錄介紹

Linux 文件系統采用層次化的目錄結構,所有目錄都從根目錄 / 開始

1.1 核心目錄

/ (根目錄)

整個文件系統的起點、包含所有其他目錄和文件

/bin (基本命令二進制文件)

存放系統最基本的shell命令:如 ls, cp, mv, rm, cat 等,所有用戶都可使用。

/sbin (系統二進制文件)

存放系統管理命令,如 fdisk, ifconfig, reboot 等,通常需要 root 權限才能執行

/boot (引導加載程序文件)

包含 Linux 內核、初始 RAM 磁盤映像和引導加載程序配置文件。如 vmlinuz, initrd.img, grub/

/dev (設備文件)

包含所有設備文件,如 /dev/sda (硬盤), /dev/tty (終端), /dev/null (空設備)

/etc (系統配置文件)

包含系統和應用程序的配置文件,如 /etc/passwd (用戶賬戶), /etc/fstab (文件系統表)

/home (用戶主目錄)

普通用戶的個人目錄,每個用戶通常有自己的子目錄,如 /home/username

/lib (系統庫文件)

存放系統最基本的共享庫和內核模塊,如 /lib/modules/ (內核模塊)

1.2 重要系統目錄

/media (可移動媒體掛載點)

自動掛載的可移動設備,如 U 盤、光盤

/mnt (臨時掛載點)

用于臨時手動掛載文件系統

/opt (可選應用程序)

第三方應用程序的安裝位置

/proc (虛擬文件系統)

包含系統進程和內核信息的虛擬文件系統,如 /proc/cpuinfo (CPU 信息), /proc/meminfo (內存信息)

/root (root 用戶主目錄)

超級用戶 root 的主目錄

/run (運行時數據)

存儲系統運行時的臨時數據,如 /run/lock (鎖文件)

/tmp (臨時文件)

存放臨時文件,系統重啟后通常會被清空

1.3 系統資源目錄

/usr (用戶程序)

包含用戶應用程序和文件

1.3.1 重要子目錄:

  1. /usr/bin: 用戶命令

  2. /usr/sbin: 系統管理命令

  3. /usr/lib: 庫文件

  4. /usr/local: 本地安裝的軟件

  5. /usr/share: 共享數據

/var (可變數據)

存放經常變化的文件

重要子目錄:

  1. /var/log: 系統日志

  2. /var/cache: 應用程序緩存

  3. /var/spool: 隊列數據

  4. /var/www: Web 服務器目錄 (常見)

1.4 特殊目錄

/sys (虛擬文件系統)

提供內核數據結構接口, 用于配置設備和內核參數

/srv (服務數據)

包含特定服務提供的數據, 如網站數據、FTP 數據等

/lost+found (恢復文件)

文件系統修復后找到的丟失文件

2 常見shell 指令

Shell 是 Linux/Unix 系統的命令行界面,是與操作系統交互的主要方式。以下是常用的 Shell 指令分類介紹:

2.1 文件和目錄操作

2.1.1 ls - 列出目錄內容

ls          # 列出當前目錄內容
ls -l       # 詳細列表(長格式)
ls -a       # 顯示隱藏文件(以.開頭)
ls -lh      # 人類可讀的文件大小顯示

2.1.2 cd - 切換目錄

cd /path/to/dir  # 切換到指定目錄
cd ~             # 切換到用戶主目錄
cd ..            # 切換到上級目錄
cd -             # 切換到上一個工作目錄

2.1.3 pwd - 顯示當前工作目錄

pwd  # 打印當前目錄的完整路徑

2.1.4 mkdir - 創建目錄

mkdir dirname      # 創建單個目錄
mkdir -p dir1/dir2 # 創建多級目錄

2.1.5 rm - 刪除文件或目錄

rm file.txt        # 刪除文件
rm -r dirname      # 遞歸刪除目錄
rm -f file.txt     # 強制刪除,不提示

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

mv file1 file2     # 重命名
mv file1 dir/      # 移動文件

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

touch file.txt  # 創建空文件或更新訪問時間

2.2 文件查看和編輯

2.2.1 cat - 查看文件內容

cat file.txt      # 顯示文件內容
cat -n file.txt   # 顯示行號

2.2.2 less/more - 分頁查看文件

less file.txt  # 可前后翻頁
more file.txt  # 只能向下翻頁

2.2.3 head/tail - 查看文件開頭/結尾

head -n 5 file.txt  # 查看前5行
tail -f logfile     # 實時查看日志更新

2.2.4 grep - 文本搜索

grep "pattern" file.txt      # 搜索包含pattern的行
grep -i "pattern" file.txt   # 忽略大小寫
grep -r "pattern" /path      # 遞歸搜索目錄

2.3 系統信息

2.3.1 ps - 查看進程

ps aux       # 查看所有運行中的進程
ps -ef       # 另一種格式顯示進程

2.3.2 top/htop - 動態查看系統狀態

top          # 動態顯示進程和資源使用
htop         # 更友好的交互式top(需安裝)

2.3.3 free - 查看內存使用

free -h      # 以人類可讀格式顯示內存信息

2.3.4 df - 查看磁盤空間

df -h        # 顯示磁盤使用情況(人類可讀)

2.3.5 uname - 顯示系統信息

uname -a     # 顯示所有系統信息

2.4 網絡相關

2.4.1 ping - 測試網絡連接

ping example.com  # 測試到example.com的連接

2.4.2 ifconfig/ip - 網絡接口配置

ifconfig      # 顯示網絡接口信息(較舊)
ip addr       # 顯示網絡接口信息(新版)

2.4.3 netstat/ss - 網絡統計

netstat -tuln # 顯示監聽端口(較舊)
ss -tuln      # 顯示監聽端口(新版)

2.4.5 wget/curl - 下載工具

wget http://example.com/file  # 下載文件
curl -O http://example.com/file

2.5 權限管理

2.5.1 chmod - 修改文件權限

chmod 755 file.sh   # 設置權限(rwxr-xr-x)
chmod +x file.sh    # 添加執行權限

2.5.2 chown - 修改文件所有者

chown user:group file.txt  # 修改所有者和組

2.5.3 sudo - 以超級用戶權限執行

sudo command  # 以root權限執行命令

2.6 壓縮和解壓

2.6.1 tar - 打包和解包

tar -czvf archive.tar.gz dir/  # 創建gzip壓縮包
tar -xzvf archive.tar.gz       # 解壓gzip包

2.6.2 zip/unzip - ZIP壓縮/解壓

zip archive.zip file1 file2   # 創建zip壓縮包
unzip archive.zip             # 解壓zip包

2.6.3 gzip/gunzip - GZIP壓縮/解壓

gzip file.txt        # 壓縮文件(生成file.txt.gz)
gunzip file.txt.gz   # 解壓文件

2.7 其他實用命令

2.7.1 find - 查找文件

find /path -name "*.txt"  # 按名稱查找
find . -type f -size +1M  # 查找大于1M的文件

2.7.3 which/whereis - 查找命令位置

which ls      # 顯示ls命令的路徑
whereis ls    # 顯示命令及其手冊頁位置

2.7.4 alias - 創建命令別名

alias ll='ls -alF'  # 創建ll別名

2.7.5 history - 查看命令歷史

history       # 顯示命令歷史
!n            # 執行歷史記錄中第n條命令

2.7.6 man - 查看命令手冊

man ls        # 查看ls命令的手冊頁

2.7.7 echo - 輸出文本

echo "Hello"  # 輸出文本
echo $PATH    # 輸出環境變量

2.7.8 date - 顯示或設置日期時間

date          # 顯示當前日期時間
date +"%Y-%m-%d"  # 格式化輸出
sudo date -s "2024-03-15 14:30:00"

3 Shell 腳本

Shell 腳本是 Linux/Unix 系統中自動化任務和系統管理的重要工具。以下是 Shell 腳本開發的全面指南:

3.1 初步了解

第一行 #!/bin/bash 稱為 shebang,指定解釋器

#!/bin/bash
# 這是一個注釋
echo "Hello, World!"

3.2 運行方式

chmod +x script.sh  # 添加執行權限
./script.sh         # 直接執行bash script.sh      # 指定解釋器執行
sh script.sh        # 使用 sh 解釋器執行
source script.sh    # 在當前 shell 環境中執行

3.3 變量定義與使用

name="Alice"        # 定義變量
echo $name          # 使用變量
echo ${name}        # 推薦使用大括號readonly PI=3.14    # 只讀變量
unset name          # 刪除變量

3.4 特殊變量

$0       # 腳本名稱
$1-$9    # 腳本參數
$#       # 參數個數
$*       # 所有參數
$@       # 所有參數(推薦)
$?       # 上條命令的退出狀態
$$       # 當前進程PID
$!       # 最后一個后臺進程PID

3.5 字符串操作

str="Hello World"# 字符串長度
echo ${#str}        # 11# 子字符串
echo ${str:0:5}     # Hello# 替換
echo ${str/World/Bash}  # Hello Bash# 大小寫轉換
echo ${str^^}       # 轉大寫
echo ${str,,}       # 轉小寫

3.6 數組

# 定義數組
fruits=("Apple" "Banana" "Orange")# 訪問元素
echo ${fruits[0]}   # Apple
echo ${fruits[@]}   # 所有元素# 數組長度
echo ${#fruits[@]}  # 3# 遍歷數組
for fruit in "${fruits[@]}"; doecho $fruit
done

3.7 條件判斷

if [ $a -eq $b ]; thenecho "a等于b"
elif [ $a -gt $b ]; thenecho "a大于b"
elseecho "a小于b"
fi

3.8 # 定義函數

greet() {local name=$1    # 局部變量echo "Hello, $name"
}# 調用函數
greet "Alice"# 返回值
add() {return $(($1 + $2))
}
add 3 5
echo $?             # 8

4 綜合案例

4.1 備份腳本

#!/bin/bash
# 簡單備份腳本BACKUP_DIR="/backup"
SOURCE_DIR="/home/user"
DATE=$(date +%Y%m%d)if [ ! -d "$BACKUP_DIR" ]; thenmkdir -p "$BACKUP_DIR"
fitar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$SOURCE_DIR" && \
echo "備份成功完成" || echo "備份失敗"

4.2 系統監控腳本

 #!/bin/bash
# 系統資源監控echo "=== 系統監控 ==="
echo "當前時間: $(date)"
echo "主機名: $(hostname)"
echo "=== 系統負載 ==="
uptime
echo "=== 內存使用 ==="
free -h
echo "=== 磁盤空間 ==="
df -h

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

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

相關文章

Chrome開發者工具實戰:調試三劍客

在前端開發的世界里,Chrome開發者工具就是我們的瑞士軍刀,它集成了各種強大的功能,幫助我們快速定位和解決代碼中的問題。今天,就讓我們一起來看看如何使用Chrome開發者工具中的“調試三劍客”:斷點調試、調用棧跟蹤和…

函數柯里化(Currying)介紹(一種將接受多個參數的函數轉換為一系列接受單一參數的函數的技術)

文章目錄 柯里化的特點示例普通函數柯里化實現使用Lodash進行柯里化 應用場景總結 函數柯里化(Currying)是一種將接受多個參數的函數轉換為一系列接受單一參數的函數的技術。換句話說,柯里化將一個多參數函數轉化為一系列嵌套的單參數函數。 …

torch.nn中的非線性激活介紹合集——Pytorch中的非線性激活

1、nn.ELU 基本語法: class torch.nn.ELU(alpha1.0, inplaceFalse)按元素應用 Exponential Linear Unit (ELU) 函數。 論文中描述的方法:通過指數線性單元 (ELU) 進行快速準確的深度網絡學習。 ELU 定義為…

Databend Cloud Dashboard 全新升級:直擊痛點,釋放數據價值

自 Databend Cloud 上線以來,我們一直致力于為用戶提供高效的數據處理與可視化體驗。早期,我們在工作區的“圖表”區域推出了輕量級可視化功能,支持積分卡、餅圖、柱狀圖和折線圖四種展示方式。這些功能簡單易用,基本滿足了用戶對…

Android Fresco 框架擴展模塊源碼深度剖析(四)

Android Fresco 框架擴展模塊源碼深度剖析 一、引言 在 Android 開發領域,圖片處理一直是一個重要且具有挑戰性的任務。Fresco 作為 Facebook 開源的強大圖片加載框架,在圖片的加載、緩存和顯示等方面已經提供了非常完善的功能。然而,為了滿…

藍橋杯最后十天沖刺 day 2 雙指針的思想

雙指針思想介紹 雙指針(Two Pointers)是一種在數組或鏈表等線性結構中常用的算法技巧,通過使用兩個指針(索引或引用)以不同的速度或方向遍歷數據結構,從而高效解決問題。雙指針通常用于優化暴力解法&#…

Axure 使用筆記

1.Axure如何制作頁面彈窗 https://blog.csdn.net/SDTechnology/article/details/143948691 2.axure 怎么點擊按鈕打開新頁面 (1)新建交互 (2)單擊是觸發 (3)選擇打開鏈接 (4)選擇…

STM32實現一個簡單電燈

新建工程的步驟 建立工程文件夾,Keil中新建工程,選擇型號工程文件夾里建立Start、Library、User等文件夾,復制固件庫里面的文件到工程文件夾工程里對應建立Start、Library、User等同名稱的分組,然后將文件夾內的文件添加到工程分組…

html5炫酷圖片懸停效果實現詳解

html5炫酷圖片懸停效果實現詳解 這里寫目錄標題 html5炫酷圖片懸停效果實現詳解項目介紹技術棧核心功能實現1. 頁面布局2. 圖片容器樣式3. 炫酷懸停效果縮放效果傾斜效果模糊效果旋轉效果 4. 懸停文字效果5. 性能優化6. 響應式設計 項目亮點總結 項目介紹 本文將詳細介紹如何使…

Playwright與Browser Use:領略AI賦能UI自動化測試的魔法魅力

目錄 Browser Use是什么? Playwright簡介 框架設計的核心目標與原則 Playwright 在 UI 自動化測試中的優勢 如何高效攔截錯誤 實現視頻錄制 UI自動化框架設計的挑戰 測試框架的結構與模塊化設計 自動化測試不是銀彈 走進Browser Use 橫空出世的背景與意義…

Uniapp 實現微信小程序滑動面板功能詳解

文章目錄 前言一、功能概述二、實現思路三、代碼實現總結 前言 Uniapp 實現微信小程序滑動面板功能詳解 一、功能概述 滑動面板是移動端常見的交互組件,通常用于在頁面底部展開內容面板。本文將介紹如何使用 Uniapp 開發一個支持手勢滑動的底部面板組件&#xff0…

【FAQ】HarmonyOS SDK 閉源開放能力 —Push Kit(12)

1.問題描述: pushdeviceid的長度是固定的嗎? 解決方案: 在鴻蒙系統中,設備ID的長度是固定的。 2.問題描述: 通過REST API三方推送IM類消息,如何實現應用處于前臺時不展示三方推送通知。 解決方案&…

【小兔鮮】day02 Pinia、項目起步、Layout

【小兔鮮】day02 Pinia、項目起步、Layout 1. Pinia2. 添加Pinia到Vue項目3. 案例:Pinia-counter基礎使用3.1 Store 是什么?3.2 應該在什么時候使用 Store? 4. Pinia-getters和異步action4.1 getters4.2 action如何實現異步 1. Pinia Pinia 是 Vue 的專…

Android學習之計算器app(java + 詳細注釋 + 源碼)

運行結果: 基礎的四則運算: 可能會出現的問題以及解決方法: 問題1:出現多個操作符。 例子:12 解決方法: 在用戶點擊操作符之后,去檢查之前的最后一位,如果最后一位也是操作符的話…

GMap.NET + WPF:構建高性能 ADS-B 航空器追蹤平臺

ADS-B 簡介 ADS - B(Automatic Dependent Surveillance - Broadcast,廣播式自動相關監視)是一種先進的航空監視技術。它依靠飛機上的機載設備,自動收集諸如飛機的位置、高度、速度、航向等關鍵數據,并周期性地以廣播的…

關于testng.xml無法找到類的問題

問題:testng.xml添加測試類的時候飄紅 解決辦法: 1.試圖通過自動生成testng.xml插件去解決,感覺也不是這個問題,沒有嘗試; 2.以為是創建包的方式不對,重新刪除后新建--還是找不到 想新建類的時候發現從m…

數據在內存中存儲(C語言)

文章目錄 前言一、整數在內存中的存儲1.1 計算機存儲數據的基本單位示例代碼 1.2 無符號整數的存儲1.3 有符號整數的存儲(補碼)示例代碼 二、大小端字節序和字節序判斷2.1 什么是大小端?示例代碼 2.2 為什么會有大小端?2.3 字節序…

Python爬蟲第2節-網頁基礎和爬蟲基本原理

目錄 一、網頁基礎 1.1 網頁的組成 1.2 網頁的結構 1.3 節點樹及節點間的關系 1.4 選擇器 二、爬蟲的基本原理 2.1 爬蟲概述 2.2 能抓怎樣的數據 2.3 JavaScript 渲染頁面 一、網頁基礎 使用瀏覽器訪問網站時,我們會看到各式各樣的頁面。你是否思考過&…

python-leetcode 64.在排序數組中查找元素的第一個和最后一個位置

題目: 給一個按照非遞減順序排列的整數數組nums,和一個目標值target,請找出給定目標值在數組中的開始位置和結束位置。 如果數組中不存在目標值target,返回[-1,-1] 方法一:二分查找 直觀的思路肯定是從前往后遍歷一遍。用兩個變量記錄第一次和最后一次…

分享一些新版GPT-4o使用方式!能多模態生圖!

目前GPT-4o的整體測評,真的很驚艷。 不知道又有多少人因為OpenAI的這次更新而失業,當然只要AI用得好,會有更多人因之而受益!很多人表示不知道怎么用,對于門外漢來說,4o似乎有點高端。 今天就給大家介紹幾…