[Linux]Linux_os_overview_1

第一章 嵌入式Linux操作系统简介

1.1 操作系统

1.1.1 操作系统的基本概念

1.1.2 操作系统的主要组成

1.2 嵌入式操作系统与通用PC系统的不同

1.3 嵌入式操作系统

1.4 嵌入式Linux基础

1.4.1 Linux发展概述

1.4.2 Linux作为嵌入式操作系统的优势

1.4.3 Linux发行版本

1.5 Linux系统安装

1.5.1 文件系统和硬盘分区的概念

1.5.2 安装准备

1.5.3 安装过程

1.6 安装虚拟机工具

1.7 配置vim编辑环境

第二章 Linux操作系统的使用

2.1 认识shell

  • shell:贝壳

  • Linux中的Shell是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。Linux系统结构详解
    在这里插入图片描述

  • 命令:
    用户向系统内核发出控制请求,与之交互的文本流

  • Shell

    • shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,从而实现用户与操作系统的交互
    • 同时Shell为操作系统提供了内核之上的功能,直接用来管理和运行系统
  • Shell脚本
    将这些命令结合在一起,加入一定的控制语句,编辑成为shell脚本文件
    在这里插入图片描述

  • Linux所支持的Shell脚本

    • Bourne Shell(sh)
    • C Shell(csh)
    • Korn Shell(ksh)
    • Bourne Again Shell(bash):增强版

2.2 shell命令的格式

2.2.1 命令提示符

username@hostname:direction$
  • username:用户名
  • hostname:主机名
  • direction:目录名
    • /表示当前在根目录
    • ~表示当前在家目录(工作目录/用户主目录)

2.2.2 命令格式

$ Command [-Options] Argument1 Argument2
  • $:表示当前用户是普通用户,若为#,表示当前用户为超级用户
  • Command:命令名称,Shell命令或程序,严格区分大小写
  • Option:命令选项,用于改变命令所执行动作的类型,由“-”引导,有的命令可以同时带有多个选项
  • Argument:命令参数,指出命令作用的对象或目标,有的命令允许带多个参数
  • 注意
    • 命令的三要素之间要以空格隔开
    • 若将多个命令书写在一行,用分号(;)隔开
    • 若一条命令在一行未结束,在行尾用反斜杠(\)标明该条命令未结束

2.3 Linux命令

2.3.1 用户系统相关命令

  1. 用户切换命令:su
  2. 系统管理命令:ps和kill
  3. 磁盘相关命令:fdisk
  4. 磁盘挂载命令:mount

2.3.2 文件、目录相关命令

  1. cd
    (1) 作用:改变工作目录
    (2) 格式:cd [路径]
    (3) 回到前次工作目录:cd -:
    (4) ./:代表当前目录
    (5) ../:代表上级目录

  2. ls
    (1) 作用:列出目录的内容
    (2) 格式:ls [选项] [文件]
    (3) 常见参数

    选项参数含义
    -l一行输出一个文件
    -a列出包括隐藏文件的所有文件
    -d将目录名和其他文件一样列出,而不是只列出目录下的内容
    -l除文件名外,显示文件类型、权限、硬连接数、所有者名、组名、大小及时间
    -la显示文件名、显示文件类型、权限、硬连接数、所有者名、组名、大小及时间
  3. mkdir
    (1) 作用:创建一个目录
    (2) 格式:mkdir [选项] 路径
    (3) 常见参数

    选项参数含义
    -m对新建目录设置存取权限
    -p若此创建目录的路径中有某些路径不存在,此选项可自动创建
  4. cat
    (1) 作用:连接并显示指定的一个或多个文件的有关信息
    (2) 格式:cat [选项] 文件1 文件2
    (3) 常见参数

    选项参数含义
    -n由第一行开始对所有输出的行号编号
    -b与“-n”一样,对空白行不编号

    (4) 相关指令

    • head:从头输出十行
    • head -n:从头输出n行
    • tail:从尾输出十行
    • tail -n:从尾输出n行
    • more:按照百分比的格式显示文件
    • less:默认将终端当作文件的显示器,q退出
  5. cp、mv和rm

    • cp
      (1) 作用:将给出的文件或目录复制到另一个文件或目录中去
      (2) 格式:cp [选项] 源文件或目录(若源文件为目录加-a) 目标文件或目录
      (3) 常见参数
    • mv
      (1) 作用:为文件或目录改名或将为念有一个目录移入另一个目录中
      (2) 格式:mv [选项] 源文件或目录 目标文件或目录
      (3) 常见参数
    • rm
      (1) 作用:删除一个目录中的一个或者多个文件或目录
      (2) 格式:rm [选项] 源文件或目录 目标文件或目录
  6. chmod
    (1) 作用:改变文件的权限
    (2) 格式:chmod可使用符号标记和八进制两种形式进行修改

    • 文件的访问权限可表示为:-rwxrwxrwx
      • -表示文件的属性

        属性名文件类型
        -普通文件
        d目录文件
        b块设备文件(存储设备)
        c字符设备文件(按字符流)
        l链接文件(符号链接:软链接)
        s套接字文件
        p管道文件 (有名管道)
      • r表示可读

      • w表示可写

      • x表示可执行

    • 符号标记:
      • chmod u+x 文件名
        • u:用户
        • g:用户组
        • o:其他用户组
        • a:全部
    • 八进制标记:
      • chmod 777 文件名
  7. grep
    (1) 作用:在指定文件中搜索特定的内容,并将含有这些内容的行标准输出
    (2) 格式:grep [选项] 格式 [文件及路径](其中格式是指要搜索的内容格式,若 缺省“文件及路径”则默认表示在当前目录搜索)
    例如:grep “hello” -r:表示在当前目录下所有文件中搜索“hello”
    (3) 常见参数

    选项参数含义
    -c只输出匹配行的计数
    -i不区分大小写(只适用于单字符)
    -h查询多文件时不显示文件名
    -n显示行号
    -v显示不包含匹配文件的所有行
  8. find
    (1) 作用:在指定目录中搜索文件
    (2) 格式:find [路径] [选项] [描述]
    路径为文件搜索路径,描述为匹配表达式
    (3) 常见参数
    [选项]主要参数:

    选项参数含义
    -depth使用深度级别的查找方式
    -mount不在其他文件系统(如msdos、vfat)的目录和文件中查找

    [描述]主要参数:

    选项参数含义
    -name支持通配符
    -user搜索属于用户名的文件
    -print输出搜索结果并打印
  9. ln
    (1) 作用:用于在文件之间建立链接,其中包括软链接和硬链接
    (2) 格式:ln [选项] 源文件或目录、目标文件或目录
    (3) 使用:

    • 软链接:ln -s (绝对路径/相对路径)源文件 目标文件(软链接文件相当于指向源文件的一条路径,创建的时候一般用绝对路径创建,此时不管链接文件如何移动删除,都可以执行)
      • 软链接不管是用绝对路径还是相对路径的软链接文件,它们的编号和源文件均不同,三个文件占据三片不同的空间
      • 修改三个文件中任意一个文件的内容,其他两个文件内容跟着变化
      • 对于使用绝对路径创建的软链接文件,更改软链接文件位置后,软链接文件依然生效;对于使用相对路径创建的软链接文件,更改软链接文件位置后,软链接文件会失效,重新移动回去,软链接文件继续生效
      • 删除源文件之后,绝对软链接文件和相对软链接文件都会失效,重新恢复源文件之后,链接生效,但是软链接文件的内容会与源文件内的最新内容保持一致
    • 硬链接:ln (绝对路径/相对路径)源文件 目标文件(硬链接文件相当于是对源文件的拷贝)
      • 源文件与相对硬链接文件、绝对硬链接文件编号一致,三者共用同一片空间
      • 修改三个文件中任意一个文件的内容,其他两个文件内容跟着变化
      • 移动源文件,对其他两个链接文件的使用没有影响
      • 删除源文件,另外两个文件不会删除,也不会失效,当修改源文件内容时,另外两个链接文件的内容会与首先链接的源文件内容一致
  10. wc
    (1) 作用:统计文件的行数、单词数和字符数
    (2) 格式:wc 文件名
    (3) 主要参数

    选项参数含义
    -c统计文件所占字节数
    -m统计字符数
    -l统计行数
    -L统计最长行的长度
    -w统计字母数
  11. echo
    (1) 作用:输出内容,类似c语言的printf
    (2) 格式:

    • 不加单引号和双引号
      • 对于环境变量:输出环境变量的内容
      • 对于普通字符串:原样输出
      • 对于空格和反斜杠(\):不管有多少空格,只会输出一个空格,当有一个反斜杠时,反斜杠不输出,有多个反斜杠是,两个反斜杠配对输出一个,剩最后一个反斜杠也不输出
    • 加单引号(硬转义)
      • 对于环境变量:原样输出单引号里的东西
      • 对于普通字符串:原样输出
      • 对于空格和反斜杠(\):原样输出
    • 加双引号(软转义)
      • 对于环境变量:输出环境变量的内容
      • 对于普通字符串:原样输出
      • 对于空格和反斜杠(\):空格原样输出,反斜杠转义
    • 在这里插入图片描述

2.3.3 压缩打包相关命令

  1. tar
    (1) 作用:对文件目录进行打包或解包
    (2) 格式:tar [选项][打包后文件名]文件目录列表
    • tar可自动根据文件名识别打包或解包动作,其中,打包后文件名为用户自定义的文件名称
    • 文件目录列表可以是进行打包的文件目录列表,也可以是进行解包的文件目录列表
      (3) 主要参数
      选项参数含义
      -c建立新的打包文件
      -v处理过程中输出相关信息
      -z调用gzip来压缩文件
      -j调用bzip2来压缩文件
      -f对普通文件操作
      -x从打包文件中解出文件
    (4) 示例
    • tar -cvf file.tar *.c:将当前目录下所有的.c文件打包为文件名为file.tar的打包文件
    • tar -xvf file.tar -C ../:将file.tar打包文件在上一级目录解出
    • tar -cvzf file.tar.gz *.c:使用gzip将所有后缀名为.c的文件打包压缩为文件名为file.tar.gz的压缩文件
    • tar -xvzf file.tar.gz -C ../:将file.tar.gz压缩文件在上一级目录解压解包
    • tar -cvjf file.tar.bz2 *.c:使用bzip2将所有后缀名为.c的文件打包压缩为文件名为file.tar.bz2的压缩文件
    • tar -xvzf file.tar.bz2 -C ../:将file.tar.bz2压缩文件在上一级目录解压解包
    • 一般使用bzip2压缩解压,bzip2打包压缩得到的文件大小比gzip小

2.3.4 文件比较命令diff

2.4 Linux环境变量

  1. env
    (1) 作用:显示所有环境变量

  2. export
    (1) 作用:用于将变量提升为环境变量,也可将Shell函数输出为环境变量
    (2) 格式:export [参数] [变量]
    (3) 主要参数

    选项参数含义
    -f指定函数名称
    -n删除指定的变量
    -p列出所有的环境变量

    (4) 临时修改环境变量:export PATH=文件路径:$PATH
    (5) 永久修改环境变量:vi ~/.bashrc进入该文件在文件内末尾添加export PATH=文件路径:$PATH

  3. 通配符
    (1) *:匹配任意长度
    在这里插入图片描述

    (2) ?:匹配一个长度
    在这里插入图片描述

    (3)[a-z]:匹配a-z之间的任意长度
    在这里插入图片描述

    (4)[anx]:不将[]内部的字符串看作整体,而是看作单独的字符或者数字
    在这里插入图片描述

    • 要想匹配123.c文件,使用ls [123][123][123].c命令

    (5)[^anx]:匹配除了去掉^所匹配到的文件
    在这里插入图片描述

  4. 管道
    command1 | command2
    (1) 作用:将前一个的输出当作后一个的输入
    在这里插入图片描述

    (2) 使用示例

    • 查找一个文件夹下面的文件,然后在这些文件的内容里面去搜索对应的字符(printf)
      find ./ *.c | xargs grep -n “printf”(使用管道|,此处的xargs的作用是将find命令查找到的文件格式化为一行)
      grep -n “printf” `find ./ *.c`(使用命令置换``,后一个命令得到的结果作为参数送入前一个命令)
    • 判断何时使用管道(|)何时使用命令置换(``)的方法:
      • 若一个命令需要的是参数如grep,则使用命令置换(``)
      • 若一个命令需要的是输入源,则使用管道(|)
  5. 输入输出重定向

    • 一个>表示覆盖 两个>>表示追加
      • >覆盖正确的,>>追加正确的,错误的清空
      • 2>覆盖错误的,2>>追加错误的,正确的清空
      • &>错误与正确的都能覆盖,&>>错误与正确的都能追加

第六章 Linux网络配置管理

6.1 网络基础知识

6.1.1 IP地址

6.1.2 子网掩码

6.1.3 网关

6.1.4 DNS服务器

6.2 Linux系统配置

6.2.1 Linux系统网络配置

6.2.2 修改配置文件来配置IP地址、网关、子网掩码

6.2.3 配置DNS服务器

6.3 Linux系统常用网络服务配置

6.3.1 TETP服务

6.3.2 NFS服务

第八章 Shell编程

8.1 认识Shell脚本

  • Shell脚本是Shell语句的集合
  • 每一次输入命令都需要让内核去执行,通过Shell脚本,可以将很多的命令集合在一起,然后统一交给内核一次性处理
  • 新建后缀名为.sh的Shell脚本文件

8.2 Shell脚本的基本语法

8.2.1 开头

#! /bin/bash

......

编辑后不能立即使用,要给文件设置可执行的权限,使用下面的命令:

chmod u+x filename

8.2.2 执行

  • 方法一
    ./1.sh
    
  • 方法二
    bash 1.sh
    
  • 方法三
    在任何目录都可以编译和执行shell程序文件
    export PATH=shell文件所在路径:$PATH
    1.sh
    

8.2.3 注释

  • 使用#表示注释

8.2.4 变量

  1. 用户自定义变量

    • 变量赋值时,单等号两边都没有空格
    • 变量调用时,要在变量名前加$
    • 变量名与其他文字混淆时,可加花括号{},提高醒目度,防止混淆
    • 使用unset命令可删除对变量的赋值
  2. 位置参数(即命令行参数,类似main函数传参中的指针数组char *argv[])

    • $0:指键入的第一个字符串,即执行Shell脚本的命令
    • $1-$9:分别指除去第一个执行命令外,其他第一个到第九个命令行参数
      在这里插入图片描述
  3. 预定义变量

    • 指系统已经定义好的变量,一般是$加上一个字符
      • $@:显示命令行提示符除了执行文件之外的其他内容

      • $#:统计除了执行文件之外其他内容的个数

      • $*:和$@一样

      • $?:返回上一行代码的退出状态,而不是脚本的退出状态,若上一条语句退出时没有返回值,则打印0表示正常输出,打印1表示非正常输出
        在这里插入图片描述

        在这里插入图片描述

  4. 环境变量

    • 添加:export PATH=绝对路径:$PATH
    • 在命令行输入是临时修改,在~/.bashrc里面添加是永久修改

8.2.5 Shell程序和语句

  1. 说明性语句

    • 以#开头的语句
      #! /bin/bash
      #注释
      
  2. 功能性语句

    • 键盘读入变量值

      read 变量名
      
    • 算术运算命令

      +#加 
      -#减
      \*#乘法
      /#除法
      %#取模
      
      • 只要进行算数运算,前加expr,expr有输出值的作用,下面这些例子中第七行会输出a+b的和,在不使用命令置换时,不会将单等号后的结果赋给变量c
        在这里插入图片描述
    • test命令

      • 测试整型数据,以n1 n2为例,n1、n2、选项和中括号之间必须要有空格
        [ n1 -gt n2 ]#大于
        [ n1 -lt n2 ]#小于
        [ n1 -ge n2 ]#大于等于
        [ n1 -le n2 ]#小于等于
        [ n1 -eq n2 ]#等于
        [ n1 -ne n2 ]#不等于
        
      • 测试字符串
        [ n1 = n2 ]#字符串内容是否相等
        [ n1 != n2 ]#字符串内容是否不相等
        [ -z n1 ]#字符串长度是否为零
        [ -n n1 ]#字符串长度是否不为零
        
      • 测试文件的属性
        [ -r n1 ]#测试文件是否存在并且具有可读权限
        [ -w n1 ]#测试文件是否存在并且具有可写权限
        [ -x n1 ]#测试文件是否存在并且具有可执行权限
        [ -d n1 ]#测试文件是否为目录文件(文件要存在)
        [ -L n1 ]#测试文件是否为链接文件(文件要存在)
        [ -f n1 ]#测试文件是否为普通文件(文件要存在)
        [ -s n1 ]#测试文件是否为0
        [ n1 -nt n2 ]#测试n1是否比n2新
        [ n1 -ot n2 ]#测试n1是否比n2旧
        
    • 逻辑语句

      • 与 && -a
      • 或 || -o
      • 实例
        [  a  -gt  10  -a  a  -lt   50  ]#(10<a<50)
        [  a  -gt  10  ] && [  a -lt  50  ]#(10<a<50)
        
  3. 结构性语句

    • 条件测试语句
      if else

      if  条件 
      then
          命令表
      elif 条件
      then
          命令表
          ......
      else
          命令表
      fi
      
    • 多路分支语句
      case 选项 in

      case 选项 in
      模式1)
            命令表
      ;;
      模式2)
            命令表
      ;;
      ......
      *)#和C语言中switch-case里的default一样的效果
            命令表
      ;;     
      esac
      

      在这里插入图片描述

    • 循环语句——for

      for 命令 in 命令表
      do
          命令表
      done
      

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 循环语句——while

      while 条件
      do
          命令表
      done
      
      while true   #死循环
      do
          命令表
      done
      
    • 循环控制语句

      • break:结束整个循环
      • break n:结束n层循环
      • continue:跳出一层循环,转到下一个循环
      • continue n:跳出n层循环,转到下一个循环

8.2.6 Shell函数

8.2.7 Shell脚本调用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值