国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Linux|Centos|Ubuntu|系統(tǒng)進(jìn)程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務(wù)器之家 - 服務(wù)器系統(tǒng) - Linux - 一篇帶給你Linux磁盤管理和Shell編程

一篇帶給你Linux磁盤管理和Shell編程

2020-11-24 23:52Python之王小sen Linux

Shell是一個(gè)連接用戶和操作系統(tǒng)的應(yīng)用程序,它提供了人機(jī)交互的界面(接口),用戶通過這個(gè)界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。Shell腳本是一種為Shell編寫的腳本程序,我們可以通過Shell腳本來進(jìn)行系統(tǒng)管理,同時(shí)也可以通過它進(jìn)行文件

一篇帶給你Linux磁盤管理和Shell編程

 磁盤管理

Linux磁盤管理常用三個(gè)命令為df、du和fdisk。

列出文件系統(tǒng)的磁盤使用狀況

列出文件系統(tǒng)的磁盤使用狀況 - 「df」。

  1. 文件系統(tǒng)        容量  已用  可用 已用% 掛載點(diǎn) 
  2. udev            1.9G     0  1.9G    0% /dev 
  3. tmpfs           393M  6.3M  386M    2% /run 
  4. /dev/sda1        19G   13G  5.5G   69% / 
  5. tmpfs           2.0G  300K  2.0G    1% /dev/shm 
  6. tmpfs           5.0M  4.0K  5.0M    1% /run/lock 
  7. tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup 
  8. tmpfs           393M  4.0K  393M    1% /run/user/108 
  9. tmpfs           393M   60K  393M    1% /run/user/1000 
  10. /dev/sr0        1.6G  1.6G     0  100% /media/maoli/Ubuntu 16.04.6 LTS amd64 

磁盤分區(qū)表操作

磁盤分區(qū)表操作 - 「fdisk」。

  1. maoli@ubuntu:~$ sudo fdisk -l 
  2. [sudo] maoli 的密碼:  
  3.  
  4. Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors 
  5. Units: sectors of 1 * 512 = 512 bytes 
  6. Sector size (logical/physical): 512 bytes / 512 bytes 
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes 
  8. Disklabel type: dos 
  9. Disk identifier: 0xdc219461 
  10.  
  11. 設(shè)備       啟動    Start   末尾   扇區(qū)  Size Id 類型 
  12. /dev/sda1  *        2048 39942143 39940096   19G 83 Linux 
  13. /dev/sda2       39944190 41940991  1996802  975M  5 擴(kuò)展 
  14. /dev/sda5       39944192 41940991  1996800  975M 82 Linux 交換 / Solaris 

磁盤分區(qū)工具

磁盤分區(qū)工具 - 「parted」。

格式化文件系統(tǒng)

格式化文件系統(tǒng) - 「mkfs」。

  1. maoli@ubuntu:~$ mkfs -t ext4 -v /dev/sdb 
  • -t - 指定文件系統(tǒng)的類型。
  • -c - 創(chuàng)建文件系統(tǒng)時(shí)檢查磁盤損壞情況。
  • -v - 顯示詳細(xì)信息。

文件系統(tǒng)檢查

文件系統(tǒng)檢查 - 「fsck」。

轉(zhuǎn)換或拷貝文件

轉(zhuǎn)換或拷貝文件 - 「dd」。

掛載/卸載

掛載/卸載 - 「mount」 / 「umount」。

創(chuàng)建/激活/關(guān)閉交換分區(qū)

創(chuàng)建/激活/關(guān)閉交換分區(qū) - 「mkswap」 / 「swapon」 / 「swapoff」。

參考菜鳥教程:“https://www.runoob.com/linux/linux-filesystem.html”

Shell

Shell是一個(gè)連接用戶和操作系統(tǒng)的應(yīng)用程序,它提供了人機(jī)交互的界面(接口),用戶通過這個(gè)界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。Shell腳本是一種為Shell編寫的腳本程序,我們可以通過Shell腳本來進(jìn)行系統(tǒng)管理,同時(shí)也可以通過它進(jìn)行文件操作。

互聯(lián)網(wǎng)上有大量關(guān)于Shell腳本的相關(guān)知識,我不打算再此對Shell腳本做一個(gè)全面系統(tǒng)的講解,我們通過下面的代碼來感性的認(rèn)識下Shell腳本就行了。

新建Shell腳本

打開文本編輯器(可以使用 vi/vim 命令來創(chuàng)建文件),新建一個(gè)文件 test.sh,擴(kuò)展名為 sh(sh代表shell)。

  1. maoli@ubuntu:~$ vim test.sh 
  2.  
  3. #!/bin/bash 
  4. echo "Hello World !" 

輸入一個(gè)echo "Hello World !",這個(gè)語法和php很相似。運(yùn)行一個(gè)sh需用 chmod +x腳本具有執(zhí)行權(quán)限

  1. maoli@ubuntu:~$ chmod +x ./test.sh 
  2. maoli@ubuntu:~$ ./test.sh  
  3. Hello World ! 

變量

變量名不加美元符號($,PHP語言中變量需要)。比如在shell中 定義變量name = Runsen,而在php就是$name = Runsen使用一個(gè)定義過的變量,只要在變量名前面加美元符號即可,如:$name或者${name}。變量名外面的花括號是可選的,加不加都行。

變量支持字符串類型,浮點(diǎn)等類型,常見有這 3 個(gè)前綴:

  • unset:刪除變量
  • readonly:標(biāo)記只讀變量
  • export:指定全局變量
  1. #!/bin/bash  
  2.  
  3. # 定義普通變量,沒有特殊字符或者空格,可以不用引號 
  4. CITY=Dongguan 
  5.  
  6. # 定義全局變量 
  7. export NAME=Runsen 
  8.  
  9. # 定義只讀變量 
  10. readonly AGE=20 
  11.  
  12. # 打印變量的值 
  13. echo $CITY 
  14. echo $NAME 
  15. echo $AGE 
  16.  
  17. # 刪除 CITY 變量 
  18. unset CITY 
  19. # 不會輸出 Dongguan 
  20. echo $CITY 

預(yù)定義變量

預(yù)定義變量常用來獲取命令行的輸入,有下面這些:

  1. $0 :腳本文件名 
  2. $1-9 :第 1-9 個(gè)命令行參數(shù)名 
  3. $# :命令行參數(shù)個(gè)數(shù) 
  4. $@ :所有命令行參數(shù) 
  5. $* :所有命令行參數(shù) 
  6. $? :前一個(gè)命令的退出狀態(tài),可用于獲取函數(shù)返回值 
  7. $$ :執(zhí)行的進(jìn)程 ID 

一個(gè)例子:

  1. #!/bin/bash  
  2. echo "\$0 = $0" 
  3. echo "\$1 = $1" 
  4. echo "\$2 = $2" 
  5. echo "\$# = $#" 
  6. echo "\$@ = $@" 
  7. echo "\$* = $*" 
  8. echo "\$$ = $$" 
  9. echo "\$? = $?" 

執(zhí)行./hello.sh 1 2 3 4 5 的結(jié)果:

  1. # 程序名 
  2. $0 = ./hello.sh 
  3. # 第一個(gè)參數(shù) 
  4. $1 = 1 
  5. # 第二個(gè)參數(shù) 
  6. $2 = 2 
  7. # 一共有 5 個(gè)參數(shù) 
  8. $# = 5 
  9. # 打印出所有參數(shù) 
  10. $@ = 1 2 3 4 5 
  11. # 打印出所有參數(shù) 
  12. $* = 1 2 3 4 5 
  13. # 進(jìn)程 ID 
  14. $$ = 9450 
  15. # 之前沒有執(zhí)行其他命令或者函數(shù) 
  16. $? = 0 

if語句

「sh的流程控制不可為空」

  1. #!/bin/bash  
  2. read VAR 
  3. # 下面這兩種判斷方法都可以,使用 [] 注意左右加空格 
  4. #if test $VAR -eq 10 
  5. if [ $VART -eq 10 ] 
  6. then 
  7.     echo "true" 
  8. else 
  9.     echo "false" 
  10. fi 

read 的方法就python中的input,寫成一行(適用于終端命令提示符):

  1. if [ $VART -eq 10 ]; then echo "true"else echo "false";fi 

for 循環(huán)

for 循環(huán)和Python沒有什么區(qū)別,挺簡單的

  1. # 普通 for 循環(huán) 
  2. for ((i = 1; i <= 3; i++)) 
  3. do 
  4.     echo $i 
  5. done 
  6.  
  7. # loop 依次代表每個(gè)元素  
  8. for loop in 1 2 3 4 5 
  9. do 
  10.     echo "The value is: $loop" 
  11. done 
  12.  
  13. # VAR 依次代表每個(gè)元素 ,{}產(chǎn)生連續(xù)數(shù)字 
  14. for VAR in {1..3} 
  15. do 
  16.     echo $VAR 
  17. done 
  18.  
  19. #也可以寫成一行,方便在命令行直接運(yùn)行,注意空格和;號: 
  20. maoli@ubuntu:~$ for VAR in {1..3}; do  echo $VAR; done 

printf打印

printf 命令模仿 C 程序庫(library)里的 printf() 程序, 這里補(bǔ)充-e開啟轉(zhuǎn)義\c不換行,其他和Python一樣。

  1. maoli@ubuntu:~$ echo "It is a test" 
  2. It is a test 
  3. maoli@ubuntu:~$ echo -e "OK! \n" 
  4. OK!  
  5.  
  6. maoli@ubuntu:~$ printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg   
  7. 姓名     性別   體重kg 
  8. maoli@ubuntu:~$ printf "%-10s %-8s %-4.2f\n" Runsen 男 65 
  9. Runsen     男      65.00 

test 檢查

Shell中的 test 命令用于檢查某個(gè)條件是否成立,它可以進(jìn)行數(shù)值、字符和文件三個(gè)方面的測試。

一篇帶給你Linux磁盤管理和Shell編程

比如下判斷兩個(gè)字符串是否相同t

  1. num1="Runsen" 
  2. num2="Runsen" 
  3. if test $num1 = $num2 
  4. then 
  5.     echo '兩個(gè)字符串相等!' 
  6. else 
  7.     echo '兩個(gè)字符串不相等!' 
  8. fi 
  9. 兩個(gè)字符串相等! 

Shell 函數(shù)

shell中函數(shù)的定義格式如下:

  1. #!/bin/bash 
  2.  
  3.  
  4. demoFun(){ 
  5.     echo "這是我的第一個(gè) shell 函數(shù)!" 
  6. echo "-----函數(shù)開始執(zhí)行-----" 
  7. demoFun 
  8. echo "-----函數(shù)執(zhí)行完畢-----" 
  9.  
  10. -----函數(shù)開始執(zhí)行----- 
  11. 這是我的第一個(gè) shell 函數(shù)! 
  12. -----函數(shù)執(zhí)行完畢----- 

shell實(shí)例

求和

例子1:輸入兩個(gè)整數(shù)m和n,計(jì)算從m到n的整數(shù)求和的結(jié)果。

  1. #!/usr/bin/bash 
  2. printf 'm = ' 
  3. read m 
  4. printf 'n = ' 
  5. read n 
  6. a=$m 
  7. sum=0 
  8. while [ $a -le $n ] 
  9. do 
  10.     sum=$[ sum + a ] 
  11.     a=$[ a + 1 ] 
  12. done 
  13. echo '結(jié)果: '$sum 

創(chuàng)建文件夾和文件

例子2:自動創(chuàng)建文件夾和指定數(shù)量的文件。

  1. #!/usr/bin/bash 
  2. printf '輸入文件名: ' 
  3. read file 
  4. printf '輸入文件數(shù)量(<1000): ' 
  5. read num 
  6. if [ $num -ge 1000 ] 
  7. then 
  8.     echo '文件數(shù)量不能超過1000' 
  9. else 
  10.     if [ -e $dir -a -d $dir ] 
  11.     then 
  12.         rm -rf $dir 
  13.     else 
  14.         if [ -e $dir -a -f $dir ] 
  15.         then 
  16.             rm -f $dir 
  17.         fi 
  18.     fi 
  19.     mkdir -p $dir 
  20.     index=1 
  21.     while [ $index -le $num ] 
  22.     do 
  23.         if [ $index -lt 10 ] 
  24.         then 
  25.             pre='00' 
  26.         elif [ $index -lt 100 ] 
  27.         then 
  28.             pre='0' 
  29.         else 
  30.             pre='' 
  31.         fi 
  32.         touch $dir'/'$file'_'$pre$index 
  33.         index=$[ index + 1 ] 
  34.     done 
  35. fi 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品一区二区久久久久久久网站 | 中文字幕一区二区三区日韩精品 | 欧美一区二区三区男人的天堂 | 久久成人免费视频 | 一级成人av| 黄色成人在线 | 91精品国产91久久久久久最新 | 一区二区成人 | 精品中文字幕一区二区三区av | 久久中文字幕一区二区 | 免费av大全 | 一区二区三区在线免费观看 | 午夜激情在线免费观看 | 国产一级视频在线观看 | 在线成人国产 | 三级黄色小视频 | 国产一级毛片电影 | 国产精品自在线 | 久久夜视频 | 欧美中文字幕一区二区三区亚洲 | 亚洲乱码国产乱码精品精软件 | 国产一区二区日韩 | 欧美在线1| 2018天天操| 欧美黄色精品 | 美日韩精品| 日韩欧美一区二区三区免费观看 | 91精品视频一区 | 中文字幕一区在线观看视频 | 色婷婷综合在线 | 成人福利视频 | 国产精品久久久久桃色tv | 一区二区在线电影 | 久草成人| 爱免费视频 | 精品一区电影 | 中文字幕一区二区三区精彩视频 | 欧美成人免费 | 久久奸 | 一区二区蜜桃 | 亚洲精品在线观看网站 |