//磁盘挂载指令
sudo mount 设备文件名 挂载点目录
Linux并不像 Windows一样可以直接操作接入的设备。Linux下一切皆文件,需要使用一个目录文件和接入的设备建立对应关系,将接入的设备也抽象成为一个文件,通过操作挂载目录对设备进行修改。
//查看磁盘分区
sudo fdisk -l
//查看磁盘占用空间
df -h
//取消挂载文件
sudo umount 文件名
通配字符 | 说明 |
---|---|
*.png | 所有的png文件 |
file*.c | 不会包含所有的.c文件,只会包含所有以file开头的文件 |
file? | 匹配file后包含单个字符的文件 |
file[123].c | 匹配[]中的单个字符 |
file{1,2,3,4,5} | 匹配{} 中的所有字符 |
file{1…10} | 匹配1-10的文件 |
执行shell脚本的两种方式:
1.利用bash去执行shell脚本,此时不用给脚本权限
bash hello.sh
2.脚本本就是可执行文件,给与脚本执行权限,再执行脚本
chmod 777 hello.sh
./hello.sh
Shell脚本
shell脚本是一个弱语言,没有类型
shell中打印一个变量的时候,需要加上$,否则打印的就不是那个变量的值
定义变量的时候,中间不能有空格
#!/bin/bash
a=0
echo $a
shell使用的头文件为#!/bin/bash
shell中有一些已经定义好了的变量,用户只能使用不能更改
和c语言不同,函数名是作为第一个参数,shell中脚本名并不作为参数传递
shell中的输入为read,输出为echo
变量 | 含义 |
---|---|
$0 | 脚本名 |
{$1…$9} | 分别代表命令行传递的第一到第 九个参数,空格作为分割符 |
$# | 命令行参数个数 |
$$ | 进程的pid(可有ps -aux指令查看) |
$* | 所有的命令行参数 |
shell脚本中的语句
- if语句
在脚本中进行判断的时候需要利用test语句来进行判断
if 条件1
then
语句
elif 条件2
then
语句
else
语句
fi
//
shell中的test命令用于检查某个条件是否成立,它可以进行数值,字符和文件三个方面的数值测试
if test $n -eq $m
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne | 不等于为真 |
-gt | 大于为真 |
-lt | 小于为真 |
-le | 小于等于为真 |
字符串测试
参数 | 说明 |
---|---|
= | 等于为真 |
!= | 不等于为真 |
-z | 字符串长度为0则真 |
-n | 字符串长度不为0则真 |
文件测试
参数 | 说明 |
---|---|
-e | 存在为真 |
-r | 拥有读权限为真 |
-w | 拥有写权限为真 |
-x | 拥有执行权限为真 |
- for语句
//循环打印数据
for var in 1 2 3 4 5
do
语句
done
- switch语句
case $n in
1) 语句 ;;
2) 语句 ;;
*) 语句 ;;
esac
*相当于C语言中switch语句中的default
根据n的值,匹配对应的选项,如果未匹配到执行*对应的语句
- while语句
shell中不允许直接进行自增操作,需要加上符号let
i=0
while(($i<5))
do
echo $i
let i++
done
//无线循环
while true
do
command
done
shell中的运算
var1=10
var2=20
n=`expr $var1 + $var2`
m=`expr $var1 - $var2`
k=`expr $var1 \* $var2`
t=`expr $var1 / $var2`
在进行加减乘除运算的时候,首先,两个变量之间需要加上空格;第二,需要加上符号expr;第三,需要在前后加上符号``
shell中的函数
function show(){
m=$1
n=$2
k=`expr $m + $n`
return 1
}
#调用
show 23 34
#接收函数返回值
a=$?
shell中函数的调用不需要加()
定义函数的时候,function可以加,可以不加
shell中的返回值是有范围的,范围在0-255之间
函数中$1表示传递过去的第一个参数,$2同理。故m=23,n=34