小知识:一篇带给你Linux磁盘管理和Shell编程

%小知识:一篇带给你Linux磁盘管理和Shell编程-猿站网-插图

 磁盘管理

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 

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 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

%小知识:一篇带给你Linux磁盘管理和Shell编程-1猿站网-插图

比如下判断两个字符串是否相同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 
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:对Nginx支持SSL的性能进行优化的方法

2023-5-5 3:42:01

建站知识

小知识:配置Nginx服务器防止Flood攻击的方法

2023-5-5 3:51:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索