嵌入式学习(Day 19:Linux系统编程___SHELL)

1.shell的定义和功能

    1.1 定义

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

               bsh是linux中常用的shell

    1.2 功能

               1.保护linux内核;           2. 命令解释器

2.Linux中的文件类型(共7种)

test  -X 
        -b            块设备文件   test -b /dev/usb0
        -c            字符设备文件
        -d            目录文件
        -f             普通文件
        -l (小写L)         链接文件
        -s             套接字文件
        -p            管道文件

  3. shell 命令

    3.1 基本命令

        ls                ll        cd        touch        rm        mkdir        rmdir        cp        cd        mv 

               使用示例:

                    1.ls -l -a -F -h
                    2.touch 1.c
                    3.rm -f -r  -i
                    4.mkdir 
                    5.rmdir 123
                    6.cd    .. ../../../..  - ~   /home/linux/20190214
                    7.cp   cp 1 2 -av
                    8.mv  1 2 

 3.2 文件查找命令

       find 路径 -name filename        如:find /home-name -1.txt 

        1.查找文件
              find
        find 目录 -name 文件名
        find / -name 文件名        
        find . -name '*.c'  \*.c

        全盘查找
            2.文件中查找内容
      grep
        grep 字符串 文件名
        grep 'main' ./20170408/sec3/01socket/ser.c -n
        
            3.查找二进制文件
      whereis    
      在系统路径path下查找文件
      whereis vim
      whereis ls                                              

   3.3  文件查看命令:
                cat       如:cat 1.txt 
      
  3.4.压缩和解压命令:
    1..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 
        
    2..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.5操作符:
    1.管道
              |
        将前面命令的输出作为后面命令的输入
        cat /etc/passwd |less 
        cat /etc/passwd |grep new -n
    
    2.重定向
        >        覆盖重定向
        >>        追加重定向
        cat t1 t2
        cat t1 t2> t3
        cat t1 t2 >> t3
        
    3.6. 修改文件的权限
        rwx     
        rwx   rwx    rwx   r-x
        110   111    111   101
                7     7    5
                r-- r-- r-- 
                100 100 100
                
        chmod +r/w/x 文件名
        chmod 666 文件名

              rw- rw- rw-
            chmod 777 文件名   (打开全部权限)
            1.修改文件所属用
        chown
        chown zhangsan 文件名
           2.修改文件所属组
        chgrp
        chgrp 组名    文件名

4.shell脚本编程
    bash shell gnu  
    c shell  csh
    k shell  ksh ash
    ...
    shell脚本的本质就是一系列shell命令的集合    
    4.1   shell脚本编写流程:
        
1.vim XX.sh  #!/bin/bash       //shell脚本编程以.sh结尾,头文件
        2.编写脚本
        3.chmod +x XX.sh                //添加执行权限
        4. ./XX.sh                       ​​​​​​​      //运行

        注意:shell中引号的使用

                   "":打印字符串,遇到$变量则打印变量中的值 ———— "$a"
                  '':打印字符串,遇到$变量依然打印$变量
                  ` `:将中间的字符串按照命令打印———  a='mk'
     4.2.shell变量
        1.环境变量: env
            PATH:存放当前工作的默认路径
            PWD:当前所在的工作路径
            HOME:当前登录用户的家目录
            ...
        main(int argc,char* argv[])
        4.2.位置变量:  —— $

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

                $1 传入的第一个参数

                $2  传入的第二个参数
         4.3.shell脚本输入输出
            输入———read                     如: read a 
            输出———echo                     如:echo '$a'
5.分支语句:
    5.1 if语句
        if 条件
        then
            语句
        else
            语句
        fi

如:

    if []
    then
    
    elif []
    then 
    elif []
    then
    else 
    
    fi
    
    
    if []
    then
    fi;


    man test 
    -a and 
    -o or 
    test    -eq        相等   test 10 -eq $i     [ $i -eq 10 ]      if( a == 10)
            -ne        不相等
            -gt        大于
            -lt        小于
            -ge        大于等于
            -le     小于等于
            [ $i ge 0  -a $i lt 59 ]
 

        test 
        -b            块设备文件   test -b /dev/usb0
        -c            字符设备文件
        -d            目录文件
        -f             普通文件
        -L            链接文件
        -S             套接字文件
        -p            管道文件

        从终端输入一个文件名,判断该文件的类型

    5.2  case语句 (c语言中的switch)
        case $num in 
            9)语句
                ;;
            8|||)语句
                ;;
            7)语句
                ;;
            *)语句
                ;;
        esac
            
        
6.循环语句
    while [  条件    ]
    do
        语句
        ...
    done

    for
    
    until 

        

          

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值