华清远见嵌入式学习day03——Linux文件系统及shell脚本编程

                                                                         Linux文件系统

一、文件系统
1.文件系统的类型:
    通过文件系统存储的位置划分
    磁盘文件系统:存放在磁盘上的
    网络文件系统:NFS  存放在服务器
    虚拟文件系统:存放在内存上的
2.文件系统的逻辑结构(层次结构)
    Linux文件组织模式像一个倒置的树
3.文件系统的目录结构:
    有文件层次标准规定
    windows:目录属于分区
    Linux:分区属于目录
4.文件系统相关命令
    pwd   查看当前所处的路径
    ls   列举当前目录下的内容
         -a:显示所有文件,包括隐藏文件
         -l:使用列表的形式来显示  
         -h:以人类更好理解的语言显示
           d                  rwx       rwx            r-x          15           linux          linux       4.0K Jan 25 05:55 A53
     文件类型 所属用户权限 同组用户 其他用户          文件所属用户  文件所属组
文件类型:
bcd-lsp
b:块设备文件
c:字符设备文件
d:目录
-:普通文件
l:链接文件
s:套接字文件
p:管道文件
chmod u/g/o
u:用户  +/- rwx
g:组
o:其他
cd:切换目录
绝对路径:起始是根目录
相对路径:其实是当前目录:.
.   : 当前目录
..  :上级目录
~ :家目录
- : 上一次执行的目录


二、创建链接文件
1.硬链接
    特点:源文件删除后,还可以访问到该文件
    ln  创建链接文件
    ln 源文件名 链接文件名
    不可以对目录创建硬链接
2.软链接
    使用绝对路径常见软链接
    源文件删除后不能访问源文件内容


三、文件打包压缩
压缩工具:     解压工具      文件扩展名
gzip          gunzip           .gz
bzip2        bunzip2          .bz2
zip            unz                .zip
zip压缩源文件还在
zip 生成的.zip文件名(生成多个) 源文件名(可以是多个)
归档压缩:
重点:
tar:
用于将若干个文件或目录合并成一个文件,以便备份和压缩。
-czf xxx.tar.gz xxx
-cjf xxx.tar.bz2 xxx
解压:
-xvf xxx.tar.gz/bz2
-c:创建新的归档文件
-z:由gz压缩
-j:由bzip2压缩
-v:显示归档和释放信息
-f:用户指定归档文件的文件名
-x:解压

四、网络配置

    1. 网络配置内容
    
        [1]. 本机的IP地址
        [2]. 网关地址
        [3]. 子网掩码
        [4]. DNS(域名解析器)
    
    2. 网络配置的方法
    
        [1]. 图形化界面配置
        
            a.动态分配
            
                DHCP(Dynamic Host Configuration Protocol):动态主机配置协议
                
            b.静态指定ip地址


2配置文件配置网络
动态分配
auto eth0
#动态分配
iface eht0 inet dhcp
静态制定
ifconfig     查看网络状况
/etc/network/interface
auto eth0
iface eth0 inet static
#静态指定ip地址
address
netmask
gateway
2.配置DNS服务器
/etc/resolv.conf
nameserver 8.8.8.8
3.开机自启动脚本
/etc/rc.local
4.重启网络
sudo /etc/init.d/networking restart
五、shell脚本编程
本质是shell命令的有序集合,属于解释性语言(不用编译)由shell来解释    (bash)
除了给执行权限还可以直接用bash解析
bash+脚本名
shell脚本编写
1。创建一个脚本文件
  xxx。sh
2.编写shell脚本文件
    1.说明性语句
     #!/bin/bash
     2.shell中的变量
没有数据类型
变量名=变量值
变量的四种类型:
1.自定义变量
2.位置变量(命令行参数)$0----${n}   $@  $*  
3.预定义变量
$# 命令行参数个数
$? 前一个命令推出状态
$$ 进程的id号
4.环境变量


【3】.shell程序语句
1.说明性语句
#! #说明   ---注释
2.功能性语句
1.read
格式:read 变量名..(可以有多个变量名)
2.expr 算术运算
加(+)、减(-)、乘(\*)、整除(/)和求模(%)
    expr 3 + 2 \* 5
3.test 测试
对象:字符串 整数 文件属性 
字符串:
=          !=      -z 字符串为空   -n 字母串不为空
整数:
-eq:
-ne:
-gt:大于 great than
-lt:
-ge:大于等于
-le:

                        文件的属性:
                        
                            -d name      测试name 是否为一个目录
                            -e name      测试一个文件是否存在
                            -f name      测试name 是否为普通文件
                            -L name         测试name 是否为符号链接
                            -r name      测试name 文件是否存在且为可读
                            -w name      测试name 文件是否存在且为可写
                            -x name      测试name 文件是否存在且为可执行
                            -s name      测试name 文件是否存在且其长度不为0
                            f1 -nt f2      测试文件f1 是否比文件f2 更新
                            f1 -ot f2      测试文件f1 是否比文件f2 更旧
3.结构性语句
条件语句
if【  表达式  】
    then
fi
=========================
if   [ 表达式 ]
                         
                         then  命令表
                         
                         elif [ 表达式 ]
                         
                         then  命令表
                         
                         elif [ 表达式 ]
                         
                         then  命令表
                         
                         else 
                               命令表
                         fi
=================
多路分支
case 字符串变量 in
    模式1)
命令表1
;;
模式2 | 模式3)
命令表2;;
。。。
esac
循环:

for…do…done 循环语句
            
        for 变量名 in  单词表
        do
            命令表
        done

        从单词表中取出一个单词赋值给变量,执行一次命令表,循环直到单词表单词遍历结束
        
        循环次数由单词表的单词个数决定
        
    
    while循环:
    
        while 表达式或命令
        do
            命令表
        done

循环控制:

辅助控制语句:
    
    break & continue
    
    
    shell函数:
    
        在shell程序中, 常常把完成固定功能、且多次使用的一组命令(语句)封装在一个函数里,
        每当要使用该功能时只需调用该函数名即可。
        
        定义方式:
        
        1. 
        
            函数名()
            {
                命令集合
            }
            
        2. 
            function 函数名()
            {
                命令集合
            }
    


3.执行shell脚本
 1. bash xxx。sh
  2。修改文件权限,增加可执行权限

猜你喜欢

转载自blog.csdn.net/UemTuBXuR/article/details/88403111