当前位置: 首页 > news >正文

学习嵌入式第二十四天

文章目录

  • Linux系统
    • 1.Linux系统概述
    • 2.Linux系统简介
  • shell命令
    • 1.常用shell命令
    • 2.shell脚本

Linux系统

1.Linux系统概述

  1. 世界上第一款操作系统:Unix
  2. 操作系统的功能:为了屏蔽底层不同的硬件平台,为上层提供统一的接口
  3. 林纳斯:重写了Unix操作系统(Linux),也叫类Unix操作系统
  4. Linux应用场景:服务器、嵌入式
  5. GNU:Linux,Apache,Mysql,Python,LAMP

2.Linux系统简介

  • 常见的Linux系统:Ubuntu、Debian、Redhat、CentOS……

  • Linux操作系统是操作系统的核心,也就是内核,内核的主要功能为:

    • 内存管理
    • 多任务管理
    • 文件系统管理
    • 多任务间的通信
    • 网络管理
  • shell是操作系统的外壳,主要作用为:

    • 保护Linux内核,防止用户直接操作内核导致的异常问题
    • 命令解释器的作用,用户可以通过命令给到shell,并转换为对应内核代码实现功能
  • shell命令操作流程

    用户输入shell命令,shell将命令转换为内核中的c语言,内核再控制硬件,最后反馈给用户

shell命令

1.常用shell命令

  1. 基本的shell命令

    • ls
      • 查看文件
    • cd
      • 进入目录
    • touch
      • 创建文件
    • rm
      • 删除文件
    • mkdir
      • 创建文件夹
    • rmdir
      • 删除文件夹
    • cp
      • 拷贝文件
    • mv
      • 移动文件
  2. 文件查看命令

    • cat

      • 查看文件的内容
      cat 文件名
      
    • head命令

      • 查看文件开头内容
      head -n 行数 文件名
      
    • tail命令

      • 查看文件末尾内容
      tail -n 行数 文件名
      
  3. 通配符

    多用来搭配shell命令使用,操作多个文件

      • 匹配任意长度,任意字符的文件名
      ls file*.txt
      
    1. ?

      • 匹配一位长度,任意字符的文件名
      ls file_??.txt
      
    2. []

      • 匹配一位长度,指定字符的文件名
      ls file_[1-5].txt 	//从一至五都输出
      ls file_[^3].txt	//除了3,其余都输出
      ls file_[1,3,5].txt	//输出1,3,5的文件
      
  4. 管道

    • 将前面命令的输出作为后续命令的输入
    ./a.out | grep "字符串"
    ls file* | grep ".sh"
    
  5. 重定向

    • 将原本要输出在终端的内容定向到文件中

      • 覆盖重定向(将原来的内容覆盖)

        echo "hello" > file.txt
        
      • 追加重定向(在原来内容的末尾添加新内容)

        echo "hello" >> file.txt
        
  6. 文件查找命令

    • find命令

      • 查找文件

        find . -name 文件名
        
      • 查找包含某个字符串的文件

        find . -type f -print0 | xargs -0 grep -l "字符串"
        
    • whereis命令

      • 查找二进制可执行程序

        whereis valgrind
        
  7. 常见命令

    • echo命令

      • 在终端上显示内容

        echo "hello"
        
    • grep命令

      • 查找包含字符串对应的行并显示

        grep "字符串" 文件名
        
  8. 压缩和解压命令

    • .tar .gz格式

      • 压缩

        tar -zcvf 文件名.tar.gz 目录名/*
        
      • 解压

        tar -zxvf 文件名.tar.gz
        
    • tar.bz2格式

      • 压缩

        tar -jcvf 文件名.tar.bz2 目录名/*
        
      • 解压

        tar -jxvf 文件名.tar.bz2
        
  9. 用户管理命令

    • 新建用户

      sudo useradd 用户名
      
    • 删除用户

      sudo userdel 用户名
      
    • 修改密码

      sudo passwd 用户名
      
    • 切换用户

      su 用户exit //退出当前用户
      
    • 修改文件权限

      chmod 权限值 文件名0664
      110 110 100
      rw- rw- r--
      第一个rwx:创建该文件的用户对文件是否拥有读写执行权限
      第二个rwx:创建文件同组的用户对文件是否拥有读写执行权限
      第三个rwx:其余人是否拥有读写执行权限
      
    • 修改文件所属用户

      chown 用户名 文件名
      
    • 修改文件所属组

      chogrp 组名 文件名
      

2.shell脚本

  1. 编程语言的分类

    1. 编程型语言
      • 先编译再运行
      • 有丰富的数据类型,擅长计算
      • 执行效率高
      • 开发效率低
      • c,c++,c#,java
    2. 解释型语言
      • 边翻译边执行
      • 擅长对系统维护管理
      • 执行效率低
      • 开发效率高
      • shell,python,javascript
  2. shell脚本编程

    • 脚本的本质就是一系列shell命令的集合
    1. 编程步骤:

      1. 编写脚本文件

        vim filename.sh
        
      2. 使用chmod命令为脚本加上执行权限

        chmod + x filename.sh
        
      3. 运行脚本

        ./filename.sh
        
    2. 指定脚本对应的运行shell

      #!/bin/bash
      
    3. shell脚本的输入和输出

      1. 输入

        #从终端接收用户输入放入filename变量中
        read filename
        
      2. 输出

        #将变量filename中的内容打印在屏幕上
        echo $filename
        
    4. shell脚本的引号

      1. 单引号

        • 原封不动打印引号中的内容

          echo '$filename'
          
      2. 双引号

        • 将双引号中的变量替换为对应的值打印

          echo "$filename"
          
      3. 倒引号

        • 将引号中的内容当作命令来处理

          echo `seq 10`
          
    5. shell中的变量

      1. 环境变量

        • shell自带的一些变量,在程序运行时就已经存在

          echo "$HOME"
          echo "$PWD"
          echo "$PATH"
          
      2. 位置变量

        $0 :脚本的名称
        $1 :执行脚本时传入的参数1
        $# :传入参数的个数
        $? :上一条shell命令的运行结果
        $$ :脚本运行的进程编号
        
      3. 自定义变量

        value=0
        $value
        
    6. 分支结构

      1. if分支

        • 基本结构

          if 表达式
          then语句块
          else语句块
          fi
          
        • 比较方法

          -gt	#大于
          -lt	#小于
          -ge	#大于等于
          -le	#小于等于
          -eq	#等于
          -ne	#不等于
          -e	#检测文件是否存在
          
      2. case分支

        • 基本结构

          case 变量名 in常量1)语句;;常量2)语句;;常量3)语句;;
          esac
          
    7. 循环结构

      1. while循环

        • 基本形式

          while 表达式
          do语句块
          done
          
      2. for

        • 基本形式

          for i in 数据集
          do 语句块
          done
          
      3. until

        • 基本形式

          until 表达式
          do语句块
          done
          
    8. 数组

      #!/bin/bash
      array=("hello" "world" "how" "are" "you")
      i=0echo ================================
      for ((i = 0; i < 5; i++))
      do
      echo ${array[$i]}
      doneecho ================================
      echo "${array[*]}"
      
    9. 函数

      #!/bin/bash
      add()
      {sum=`expr $1 + $2`echo "$sum"return $sum
      }
      read num1
      read num2
      #获得函数内输出的字符串
      ret=`add $num1 $num2`
      #打印函数的运行的值
      echo "$?"
      #打印函数内输出的字符串
      echo "ret = $ret"
      
http://www.dtcms.com/a/323650.html

相关文章:

  • 【Python 语法糖小火锅 · 第 1 涮】
  • Vulnhub----Beelzebub靶场
  • 每周算法思考:栈与队列
  • 使用lightGCN完整训练用户 + 商品向量的 3 步指南
  • 在JVM调优时,你关注哪些指标?
  • 裸露土堆识别准确率↑32%:陌讯多模态融合算法实战解析
  • 20250808组题总结
  • C++11中的移动语义
  • Python训练营打卡Day27-类的定义和方法
  • 【后端】Java Stream API 介绍
  • C++11 ---- 线程库
  • 机器学习(西瓜书)学习——绪论
  • 编译技术的两条演化支线:从前端 UI 框架到底层编译器的智能测试
  • 通过MQTT实现OTA升级方案
  • Linux-Redhat9.5静默安装Oracle19.25单实例教程【参照官方文档,超级详细】
  • 【35】C#实战篇——StopRecordingTimer_Tick事件函数中,解绑函数自己,那么该函数会立即结束吗?还会继续执行该函数中剩余部分吗?
  • windows、linux应急响应入侵排查
  • Oracle数据库重启后打开异常状态的检查步骤
  • 模拟人脑处理文本——从分句到分词,从段落到时间线叙事
  • MySQL时间类型
  • windows上LM-Studio下载安装教程
  • 谷歌搜索 sg_ss 逆向分析
  • 自闭和标签形式(self-closing tags)和标准标签形式
  • [概率 DP]808. 分汤
  • C++入门学习3
  • 开漏和推挽模式的区别
  • QT第一讲- Qt初探
  • XSS攻击演示
  • 常用信号深度解析(SIGINT、SIGPIPE、SIGALRM、SIGTERM等)
  • 101-基于Python的个性化音乐推荐系统