嵌入式学习——Shell——day19

1. shell的定义和功能

1.1 定义

        shell是运行在终端中的文本互动程序

        bsh是linux中常用的shell

1.2 功能

        1. 保护linux内核

        2. 命令解释器

2. 文件类型

        b        块设备文件

        c        字符设备文件

        d        目录文件

        -        普通文件

        l        符号连接文件

        s        套接字文件

        p        管道文件

3. shell命令

3.1 基本命令

        ls        ll        cd        touch        rm        mkdir        rmdir        cp        cd        mv

3.2 文件查找命令

        1.  whereis

        2. find        find 路径  -name  filename

                find /home -name demo_01.sh

3.3 文件查看命令

        cat

        head

        tail        

        more

        less

3.4 用户管理命令

        修改文件权限        chmod

        chmod +/-r/w/x 文件名

        chmod 0777 文件名(打开全部权限)

3.5 压缩解压命令

3.5.1 压缩文件类型

           tar.gz     .tar.bz2  

3.5.2.tar.gz
        1.归档
            tar -cvf 文件名.tar 目录/*
        2.压缩
            gzip -c 文件名.tar > 文件名.tar.gz 
        
        3.解压
            gunzip 文件名.tar.gz 
        4.解除归档
            tar -xvf 文件名.tar
        
        5.归档压缩:
            tar -zcvf 文件名.tar.gz 目录/*
        6.解除压缩:
            tar -zxvf 文件名.tar.gz 
        
3.5.3. tar.bz2
        1.归档
            tar -cvf 文件名.tar 目录/*
        2.压缩
            bzip2 -k 文件名.tar 
        
        3.解压
            bunzip2 文件名.tar.bz2
        4.解除归档
            tar -xvf 文件名.tar 
        5.归档压缩
            tar -jcvf 文件名.tar.bz2 目录/*
        6.解除压缩:
            tar -jxvf 文件名.tar.bz2 

3.6 补充

        1. 重定向和追加重定向

                >        覆盖重定向

                >>        追加重定向

        2. 通配符

                *

                匹配任意长度,任意字符的文件名

4. shell编程

4.1 步骤

        1. 编写程序以.sh结尾

        2. 添加执行权限     chmod +x filename.sh

        3. ./filename.sh

4.2 shell中引号的使用

        ""        将引号中的值,按照变量对应的值完成打印 ——“$a”

        ''        将引号内部的内容原封不动打印

        ``      将引号中的内容按照命令执行 a=`ls` echo $a  

                

4.3 shell中的变量

        1. 环境变量

                PATH:存放程序运行目录信息的环境变量

                PWD:进程当前所在目录的绝对路径环境变量

                HOME:存放登录用户家目录的环境变量

        2. 位置变量——$

                需要读出变量值时使用——$a

                $1 传入的第一个参数

                $2 传入的第二个参数

4.4 输入和输出

        输入——read

        输出——echo

4.5 流程控制

4.5.1  if—else

        1. if—else 

                     if 条件
                then
                    语句
                else
                    语句
                fi    

#!/bin/bash
a=20
b=50

if [ $a -ge $b  ]
then
    echo "a>=b"
else 
    echo "a<b"
fi

        2. if

#!/bin/bash
a=20
b=50

if [ $a -ge $b  ]
then
    echo "a>=b"
fi

        3. if—else—if

#!/bin/bash
a=20
b=20

if [ $a -gt $b  ]
then
    echo "a>b"
elif [ $a -lt $b ]
then 
    echo "a<b"
else 
    echo "a==b"
fi

4.5.2. case(c语言中的switch)

                 case $num in 
                    9)语句
                        ;;
                    8|||)语句
                       ;;
                    7)语句
                        ;;
                    *)语句
                        ;;
                esac       

#!/bin/bash 

echo '请输入一个数字'
read num 

case $num in 
    9)
        echo "9"
        ;;
    1|2|3)
        echo "1-3"
        ;;
    4)
        echo "4"
        ;;
    *)
        echo "other"
        ;;
esac

#!/bin/bash 
echo '请输入一个数字'
read num 
if [ $num -lt 0 -o $num -gt 100 ]
then 
    echo "输入错误"
    exit 
fi

num=`expr $num / 10 ` 
case $num in 
    9|10)
        echo "A"
        ;;
    8)
        echo "b"
        ;;
    7)
        echo "c"
        ;;
    6)
        echo "d"
        ;;
    *)
        echo "e"
        ;;
esac

4.5.3. for

#!/bin/bash 

for num in `seq 1 50`//num从1取到50
do
   echo "$num"

done

#!/bin/bash 

for num in `ls ./`   //num依次取到当前目录下的所有文件信息
do
   echo "$num"

done

4.5.4 while 

            while [  条件    ]
            do
                语句
                ...
            done

#!/bin/bash 
num=0

while [ $num -lt 100 ]
do 
    echo "$num"
    num=`expr $num + 1`
done

4.5.5. until

#!/bin/bash 
num=0

until [ $num -eq 30 ]//与while相反,不满足条件时继续循环,满足条件循环终止
do 
    echo "$num"
    num=`expr $num + 1`
done

4.6 逻辑运算符

        ==        -eq

        !=         -ne

        >          -gt

        >=        -ge

        <           -lt

        <=         -le

        &&        -a

        ||           -o

        

        

        

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值