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

嵌入式学习day23-shell命令

linux软件编程学习大纲:

1.IO操作文件

2.多任务编程

3.网络编程

4.数据库编程

5.硬件设备管理


学习目标:

1.学习接口调用(第一层)

2.软件操作流程和思想(第二层)

3.软件设计思想和流程架构(第三层)


Linux系统概述:

        世界上第一款操作系统:unix

        操作系统为了屏蔽底层不同的硬件平台,为上层提供统一的接口

        GNU:GNU's Not Unix 开源 GitHub GPL协议

        林纳斯 Linux重写了unix操作系统,类Unix操作系统

        Linux应用场景:服务器、嵌入式

        GNU:Linux、Apache、Mysql、Python、LAMP

Linux系统简介:

        常见的Linux系统:Ubuntu、Deblan、Redhat、CentOS等

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

                内存管理

                多任务管理

                文件系统管理

        shell是操作系统的外壳,主要作用为:

                保护Linux内核,防止用户直接操作内核导致的异常问题

                命令解释器的作用,用户可以通过命令给到shell,并转换为对应的内核代码实现功能

shell命令的执行流程:

shell命令

        基本的shell命令:

                ls(查看文件) 

                cd(进入目录)

                touch(创建文件)

                rm(删除文件)

                makdir(创建文件夹)

                rmdir(删除文件夹)

                cp(拷贝文件)

                mv(移动文件)

        文件查看命令:

                cat:查看文件中的内容

                head:查看文件开头内容

                tail:查看文件末尾内容

        通配符:

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

                *:匹配任意长度、任意字符的文件名

ls file*.txt

                ?:匹配一位长度、任意字符的文件名

ls file_??.txt

                []:匹配一维长度,指定字符的文件名

        文件查找命令:

                find:

        查找文件

find . -name 文件名 

        查找包含某个字符串的文件

                whereis:查找二进制可执行程序

whereis valgrind

        管道:

                将前面命令的输出作为后续命令的输入

        重定向:

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

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

                        追加重定向(再远内容末尾添加新内容)   

    

        常见命令

                echo:在终端显示内容

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

                练习:使用一条shell命令,实现找到在stdio.h的后200行中找到和extern相关的内容,写入文件record.txt文件中

        压缩和解压命令

                .tar.gz

                        压缩

                        解压

                .tar.bz2

                        压缩

                        解压

        用户管理命令:
useradd:新建用户

                userdel:删除用户

                passwd:修改密码

                su:切换用户

                chmod:修改文件权限

                chown:修改文件的所属用户

                chgrp:修改文件所属组

shell脚本

        编程语言分类:

                编译型语言:

                        先编译再运行;

                        有丰富的数据类型、擅长计算;

                        执行效率高;

                        开发效率低;

                        C、C++、C#、Java;

                解释型语言:

                        边翻译边执行;

                        擅长对系统管理;

                        执行效率低;

                        开发效率高;

                        shell、Python、JavaScript;

        shell脚本编程:

                脚本的本质就是一系列shell命令的集合

                编程步骤:

                        ①编写脚本文件

vim filename.sh

                        ②使用chmod命令为脚本加上执行权限

chmod +x filename.sh

                        ③运行脚本

./filename.sh

                指定脚本对应的运行shell

#!/bin/bash

        shell脚本的输入和输出

                输入

                输出 

        shell脚本中的引号

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

                双引号:将双引号中的变量替换成对应的值打印 

   

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

        shell中的变量

                环境变量:shell自带的一些变量,在程序运行时已经存在了 

                位置变量:

                自定义变量:

        分支结构

                if分支:

                     基本结构:

                     表达式可以由test 命令实现

                      test可以通过[]来替代

                case分支 :

                        基本结构:

        循环结构:

                while循环:

                        基本形式

                until:

                        基本形式

                for:

                        基本形式

        数组

                基本形式

        函数

                基本形式

                        

http://www.dtcms.com/a/323568.html

相关文章:

  • Qdrant Filtering:must / should / must_not 全解析(含 Python 实操)
  • 【Python 高频 API 速学 ②】
  • 【线程池】压测确定线程池合适的参数
  • 【js】判断异步函数的返回值要加await
  • 使用LangGraph从零构建多智能体AI系统:实现智能协作的完整指南
  • 计算机系统设计中都有什么任务~计算密集~IO密集~逻辑密集等
  • 提示条贴合右侧边栏
  • java web项目入门了解
  • 天地图,cesium,leaflet
  • java练习题:数字位数
  • Windows下使用PyInstaller打包PyQt项目
  • 第15届蓝桥杯Scratch图形化省赛中级组2024年8月24日真题
  • 4深度学习Pytorch-神经网络--损失函数(sigmoid、Tanh、ReLU、LReLu、softmax)
  • Linux-JSON Schema
  • Java类和对象课上练习题目设计
  • LLM 的向量的方向表示语义,向量长度表示什么
  • Docker容器lnmp平台部署discuz论坛
  • 工具类-高效集合差异计算工具DiffWrapper
  • visual studio 无明显错误,但是无法编译成功解决—仙盟创梦IDE
  • C++入门自学Day7-- String类的自实现
  • Adapting Vision-Language Models Without Labels A Comprehensive Survey
  • RWKV与VRWKV
  • Filter,Interceptor拦截器-登录校验
  • visual studio 字体设置
  • 【小米比笔记本Pro15.6】>>Stasrt PXE over IPv6,Press [Esc] to EXIT...
  • 第二十天:余数相同问题
  • 信息安全简要
  • 分布式锁详解及 Spring Boot 实战示例
  • Redis 持久化策略深度剖析:从原理到实战,守护数据不丢失
  • 基于 InfluxDB 的服务器性能监控系统实战(二)