共計 4569 個字符,預計需要花費 12 分鐘才能閱讀完成。
這篇文章主要介紹“Linux 磁盤管理和 Shell 編程知識點有哪些”,在日常操作中,相信很多人在 Linux 磁盤管理和 Shell 編程知識點有哪些問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux 磁盤管理和 Shell 編程知識點有哪些”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
磁盤管理
Linux 磁盤管理常用三個命令為 df、du 和 fdisk。
列出文件系統的磁盤使用狀況
列出文件系統的磁盤使用狀況 –「df」。
文件系統 容量 已用 可用 已用 % 掛載點 udev 1.9G 0 1.9G 0% /dev tmpfs 393M 6.3M 386M 2% /run /dev/sda1 19G 13G 5.5G 69% / tmpfs 2.0G 300K 2.0G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup tmpfs 393M 4.0K 393M 1% /run/user/108 tmpfs 393M 60K 393M 1% /run/user/1000 /dev/sr0 1.6G 1.6G 0 100% /media/maoli/Ubuntu 16.04.6 LTS amd64
磁盤分區表操作
磁盤分區表操作 –「fdisk」。
maoli@ubuntu:~$ sudo fdisk -l [sudo] maoli 的密碼: Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xdc219461 設備 啟動 Start 末尾 扇區 Size Id 類型 /dev/sda1 * 2048 39942143 39940096 19G 83 Linux /dev/sda2 39944190 41940991 1996802 975M 5 擴展 /dev/sda5 39944192 41940991 1996800 975M 82 Linux 交換 / Solaris
磁盤分區工具
磁盤分區工具 –「parted」。
格式化文件系統
格式化文件系統 –「mkfs」。
maoli@ubuntu:~$ mkfs -t ext4 -v /dev/sdb
-t – 指定文件系統的類型。
-c – 創建文件系統時檢查磁盤損壞情況。
-v – 顯示詳細信息。
文件系統檢查
文件系統檢查 –「fsck」。
轉換或拷貝文件
轉換或拷貝文件 –「dd」。
掛載 / 卸載
掛載 / 卸載 –「mount」/「umount」。
創建 / 激活 / 關閉交換分區
創建 / 激活 / 關閉交換分區 –「mkswap」/「swapon」/「swapoff」。
參考菜鳥教程:“https://www.runoob.com/linux/linux-filesystem.html”
Shell
Shell 是一個連接用戶和操作系統的應用程序,它提供了人機交互的界面(接口),用戶通過這個界面訪問操作系統內核的服務。Shell 腳本是一種為 Shell 編寫的腳本程序,我們可以通過 Shell 腳本來進行系統管理,同時也可以通過它進行文件操作。
互聯網上有大量關于 Shell 腳本的相關知識,我不打算再此對 Shell 腳本做一個全面系統的講解,我們通過下面的代碼來感性的認識下 Shell 腳本就行了。
新建 Shell 腳本
打開文本編輯器(可以使用 vi/vim 命令來創建文件),新建一個文件 test.sh,擴展名為 sh(sh 代表 shell)。
maoli@ubuntu:~$ vim test.sh #!/bin/bash echo Hello World !
輸入一個 echo Hello World !,這個語法和 php 很相似。運行一個 sh 需用 chmod + x 腳本具有執行權限
maoli@ubuntu:~$ chmod +x ./test.sh maoli@ubuntu:~$ ./test.sh Hello World !
變量
變量名不加美元符號($,PHP 語言中變量需要)。比如在 shell 中 定義變量 name = Runsen,而在 php 就是 $name = Runsen 使用一個定義過的變量,只要在變量名前面加美元符號即可,如:$name 或者 ${name}。變量名外面的花括號是可選的,加不加都行。
變量支持字符串類型,浮點等類型,常見有這 3 個前綴:
unset:刪除變量
readonly:標記只讀變量
export:指定全局變量
#!/bin/bash # 定義普通變量,沒有特殊字符或者空格,可以不用引號 CITY=Dongguan # 定義全局變量 export NAME=Runsen # 定義只讀變量 readonly AGE=20 # 打印變量的值 echo $CITY echo $NAME echo $AGE # 刪除 CITY 變量 unset CITY # 不會輸出 Dongguan echo $CITY
預定義變量
預定義變量常用來獲取命令行的輸入,有下面這些:
$0 :腳本文件名 $1-9 :第 1-9 個命令行參數名 $# :命令行參數個數 $@ :所有命令行參數 $* :所有命令行參數 $? :前一個命令的退出狀態,可用于獲取函數返回值 $$ :執行的進程 ID
一個例子:
#!/bin/bash echo \$0 = $0 echo \$1 = $1 echo \$2 = $2 echo \$# = $# echo \$@ = $@ echo \$* = $* echo \$$ = $$ echo \$? = $?
執行./hello.sh 1 2 3 4 5 的結果:
# 程序名 $0 = ./hello.sh # 第一個參數 $1 = 1 # 第二個參數 $2 = 2 # 一共有 5 個參數 $# = 5 # 打印出所有參數 $@ = 1 2 3 4 5 # 打印出所有參數 $* = 1 2 3 4 5 # 進程 ID $$ = 9450 # 之前沒有執行其他命令或者函數 $? = 0
if 語句
「sh 的流程控制不可為空」
#!/bin/bash read VAR # 下面這兩種判斷方法都可以,使用 [] 注意左右加空格 #if test $VAR -eq 10 if [ $VART -eq 10 ] then echo true else echo false fi
read 的方法就 python 中的 input,寫成一行(適用于終端命令提示符):
if [ $VART -eq 10 ]; then echo true else echo false fi
for 循環
for 循環和 Python 沒有什么區別,挺簡單的
# 普通 for 循環 for ((i = 1; i = 3; i++)) do echo $i done # loop 依次代表每個元素 for loop in 1 2 3 4 5 do echo The value is: $loop done # VAR 依次代表每個元素 ,{}產生連續數字 for VAR in {1..3} do echo $VAR done # 也可以寫成一行,方便在命令行直接運行,注意空格和; 號: maoli@ubuntu:~$ for VAR in {1..3}; do echo $VAR; done 1 2 3
printf 打印
printf 命令模仿 C 程序庫 (library) 里的 printf() 程序,這里補充 - e 開啟轉義 \c 不換行,其他和 Python 一樣。
maoli@ubuntu:~$ echo It is a test It is a test maoli@ubuntu:~$ echo -e OK! \n OK! maoli@ubuntu:~$ printf %-10s %-8s %-4s\n 姓名 性別 體重 kg 姓名 性別 體重 kg maoli@ubuntu:~$ printf %-10s %-8s %-4.2f\n Runsen 男 65 Runsen 男 65.00
test 檢查
Shell 中的 test 命令用于檢查某個條件是否成立,它可以進行數值、字符和文件三個方面的測試。
比如下判斷兩個字符串是否相同 t
num1= Runsen num2= Runsen if test $num1 = $num2 then echo 兩個字符串相等! else echo 兩個字符串不相等! fi 兩個字符串相等!
Shell 函數
shell 中函數的定義格式如下:
#!/bin/bash demoFun(){ echo 這是我的第一個 shell 函數! } echo ----- 函數開始執行 ----- demoFun echo ----- 函數執行完畢 ----- ----- 函數開始執行 ----- 這是我的第一個 shell 函數! ----- 函數執行完畢 -----
shell 實例
求和
例子 1:輸入兩個整數 m 和 n,計算從 m 到 n 的整數求和的結果。
#!/usr/bin/bash printf m = read m printf n = read n a=$m sum=0 while [ $a -le $n ] do sum=$[ sum + a ] a=$[ a + 1 ] done echo 結果: $sum
創建文件夾和文件
例子 2:自動創建文件夾和指定數量的文件。
#!/usr/bin/bash printf 輸入文件名: read file printf 輸入文件數量(1000): read num if [ $num -ge 1000 ] then echo 文件數量不能超過 1000 else if [ -e $dir -a -d $dir ] then rm -rf $dir else if [ -e $dir -a -f $dir ] then rm -f $dir fi fi mkdir -p $dir index=1 while [ $index -le $num ] do if [ $index -lt 10 ] then pre= 00 elif [ $index -lt 100 ] then pre= 0 else pre= fi touch $dir / $file _ $pre$index index=$[ index + 1 ] done fi
到此,關于“Linux 磁盤管理和 Shell 編程知識點有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!