diskmanagementLinuxdiskmanagementcommonlyusedthreecommandsaredf,duandfdisk.ListdiskusageforfilesystemsListdiskusageforfilesystems-'df'.Filesystemcapacityusedavailable%mountpointudev1.9G01.9G0%/devtmpfs393M6.3M386M2%/run/dev/sda119G13G5.5G69%/tmpfs2.0G300K2.0G1%/dev/shmtmpfs5.0M4.0K5.0M1%diskPartitionTableManipulationDiskPartitionTableManipulation-"fdisk".maoli@ubuntu:~$sudofdisk-l[sudo]maoli'spassword:Disk/dev/sda:20GiB,21474836480bytes,41943040sectorsUnits:sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisklabeltype:dosDiskidentifier:0xdc219461设备启动Start末尾扇区SizeId类型/dev/sda1*2048399421433994009619G83Linux/dev/sda239944190419409911996802975M5扩展/dev/sda539944192419409911996800975M82Linux交换/Solaris磁盘分区工具磁盘分区工具-「parted」。FormattingafilesystemFormattingafilesystem-"mkfs".maoli@ubuntu:~$mkfs-text4-v/dev/sdb-t-specifiesthetypeofthefilesystem.-c-Checkfordiskcorruptionwhencreatingafilesystem.-v-Displayverboseinformation.文件系统检查文件系统检查-“fsck”。转换或复制文件转换或复制文件-“dd”。挂载/卸载挂载/卸载-“挂载”/“卸载”。创建/激活/停用交换分区创建/激活/停用交换分区-“mkswap”/“swapon”/“swapoff”。参考菜鸟教程:《https://www.runoob.com/linux/linux-filesystem.html》ShellShell是连接用户和操作系统的应用程序。它提供了人机交互的接口(interface)。通过这个接口访问操作系统内核的服务。Shell脚本是为Shell编写的脚本程序。我们可以使用Shell脚本来进行系统管理和文件操作。网上有很多关于Shell脚本的知识。我不打算在这里对Shell脚本做一个全面系统的解释。我们可以通过下面的代码来感性的理解Shell脚本。新建一个Shell脚本打开一个文本编辑器(可以使用vi/vim命令新建一个文件),新建一个文件test.sh,扩展名为sh(sh代表shell)。maoli@ubuntu:~$vimtest.sh#!/bin/bashecho"HelloWorld!"输入一个echo"HelloWorld!",这个语法和php非常相似。运行一个sh,需要使用chmod+x脚本获得执行权限maoli@ubuntu:~$chmod+x./test.shmaoli@ubuntu:~$./test.shHelloWorld!变量变量名不加美元符号($,在PHP语言中变量需要)。比如在shell中定义了变量name=Runsen,在PHP中使用$name=Runsen来使用定义的变量,只需在变量名前加一个美元符号即可,如:$name或${name}.变量名两边的花括号是可选的,你可以加也可以不加。变量支持字符串类型、浮点数等类型,常见的前缀有三种:unset:删除变量readonly:标记只读变量export:指定全局变量#!/bin/bash#定义普通变量,不带特殊字符或空格,不能用引号CITY=Dongguan#定义全局变量exportNAME=Runsen#定义只读变量readonlyAGE=20#打印变量echo$CITYecho$NAMEecho$AGE的值#删除CITY变量unsetCITY#不会输出Dongguanecho$CITY预定义variable预定义变量常用于获取命令行输入,如下:$0:脚本文件名$1-9:第1-9个命令行参数名$#:命令行参数号$@:所有命令行参数$*:所有命令行参数$?:上一条命令的退出状态,可用于获取函数的返回值$$:执行的进程ID例子:#!/bin/bashecho"\$0=$0"echo"\$1=$1"回声"\$2=$2"回声"\$#=$#"回声"\$@=$@"回声"\$*=$*"回声"\$$=$$"回声"\$?=$?"./hello.sh12345执行结果:#程序名$0=./hello.sh#第一个参数$1=1#第二个参数$2=2#一共5个参数$#=5#打印出来allparameters$@=12345#打印出所有参数$*=12345#进程ID$$=9450#之前没有执行过其他命令或函数$?=0ifstatement"sh'sflowcontrolcannotbeempty"#!/bin/bashreadVAR#可以使用下面两种判断方式,使用[]注意左右加空格#iftest$VAR-eq10if[$VART-eq10]thenecho"true"elseecho"false"fireread是input中的输入python,写成一行(用于终端命令提示符):if[$VART-eq10];thenecho"true";elseecho"false";fifor循环for循环和Python没有有什么区别,很简单#普通的for循环for((i=1;i<=3;i++))doecho$idone#loop依次代表每个元素forloopin12345doecho"Thevalueis:$loop"done#VAR代表中的每个元素转元素,{}产生连续数为VAR在{1..3}doecho$VARdone#也可以写在一行中,方便直接在命令行运行,注意空格和;数字:maoli@ubuntu:~$forVARin{1..3};doecho$VAR;done123printfprintprintf命令仿C库(library)中的printf()程序,这里加-e使转义\c不换行,其他同Pythonmaoli@ubuntu:~$echo"itisatest"itisatestmaoli@ubuntu:~$echo-e"OK!\n"OK!maoli@ubuntu:~$printf"%-10s%-8s%-4s\n"姓名性别体重kg姓名性别体重kgmaoli@ubuntu:~$printf"%-10s%-8s%-4.2f\n"Runsenmale65Runsenmale65.00testCheckShell中的测试命令用于检查某个条件是否成立,可以进行三个值的测试,字符和文件。比如判断两个字符串是否相同tnum1="Runsen"num2="Runsen"iftest$num1=$num2thenecho'两个字符串相等!'elseecho'两个字符串不相等!'fi两个字符串相等!Shell函数函数在shell中的定义格式如下:#!/bin/bashdemoFun(){echo"Thisismyfirstshellfunction!"}echo"-----函数开始执行-----"demoFunecho"-----FunctionCompleted-----"-----FunctionStarted-----Thisismyfirstshellfunction!-----FunctionCompleted--shell示例总结例1:输入两个整数m和n,计算m到n的整数相加的结果。#!/usr/bin/bashprintf'm='readmprintf'n='readna=$msum=0while[$a-le$n]dosum=$[sum+a]a=$[a+1]doneecho'结果:'$sum创建文件夹和文件例2:自动创建文件夹和指定数量的文件。#!/usr/bin/bashprintf'Inputfilename:'readfileprintf'Inputfilenumber(<1000):'readnumif[$num-ge1000]thenecho'文件个数不能超过1000'elseif[-e$dir-a-d$dir]thenrm-rf$direlseif[-e$dir-a-f$dir]thenrm-f$dirfifimkdir-p$dirindex=1while[$index-le$num]doif[$index-lt10]thenpre='00'elif[$index-lt100]thenpre='0'elsepre=''fitouch$dir'/'$file'_'$pre$indexindex=$[index+1]donefi[编辑推荐]为什么没人告诉我Android手机还能用有线上网吗?2020年还在用Windows8.1?事实上,操作系统并不老套。Microsoft通过这些新的攻击检测工具增强了Linux的安全性。代码不限|想赢得海外市场?Google随时为您提供帮助!Morethancode|谷歌带你体验科技带来的无限可能
