Linux-6 三剑客命令

news2024/9/27 15:22:06

Linux-6 三剑客命令

  • awk(取列)

    将系统的IP地址打印出来

    [root@destiny ~]# yum install net-tools -y
    #分析:
    	#1.肯定是需要拿到IP地址,仅看某一个特定的网卡;ifconfig
    	#2.先想办法过滤出数据的那一行; ###行
    	#3.然后掐头去尾,取中间;	###列
    
    image-20221223181440622
    [root@destiny ~]# ifconfig ens32 | grep "inet"
            inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
            inet6 fe80::b511:c46f:6799:880  prefixlen 64  scopeid 0x20<link>
    [root@destiny ~]# ifconfig ens32 | grep "inet "
            inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
    [root@destiny ~]# ifconfig ens32 | grep "inet " | awk '{print $2}'
    10.0.0.100
    
    #纯awk方法:
    [root@destiny ~]# ifconfig ens32 | awk 'NR==2'
            inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
    [root@destiny ~]# ifconfig ens32 | awk 'NR==2' | awk '{print $2}'
    10.0.0.100
    [root@destiny ~]# ifconfig ens32 | awk 'NR==2 {print $2}'
    10.0.0.100
    
    #grep 过滤行级别;
    #awk 过滤列级别;
    
    #练习:打印 /etc/passwd 中 用户名称,以及用户的UID;第一列和第三列,需要以:为分隔符;
    	#默认awk是以空格作为分隔符
    	#如何自行指定字段分隔符	-F ':'
    [root@destiny ~]# awk -F ':' '{print $1,$3}' /etc/passwd
    
  • grep命令

    • #————grep 过滤文件内容
      [root@destiny ~]# grep "root" /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      operator:x:11:0:operator:/root:/sbin/nologin
      
      #过滤以root开头的
      [root@destiny ~]# grep "^root" /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      
      #过滤以/bin/bash结尾的
      [root@destiny ~]# grep "/bin/bash$" /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      
      # -i 不区分大小写
      [root@destiny ~]# grep -i "root" /etc/passwd
      # -v 除了包含关键字的不要,别的都要;取反
      [root@destiny ~]# grep -v "root" /etc/passwd
      
      #包含多个关键字
      [root@destiny ~]# egrep "root|sshd" /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      operator:x:11:0:operator:/root:/sbin/nologin
      sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
      [root@destiny ~]# grep -E "root|sshd" /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      operator:x:11:0:operator:/root:/sbin/nologin
      sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
      
      #匹配文件中包含/bin/bash结尾或root字符串的
      [root@destiny ~]# grep -Ei "/bin/bash$|root" /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      operator:x:11:0:operator:/root:/sbin/nologin
      # -n 取行号
      [root@destiny ~]# grep -n "." /etc/passwd
      # .在grep中表示任意单个字符;即所有
      
      # grep -n -A 2 "Failed" /var/log/secure  #匹配/var/log/secure文件中Failed字符串,并打印它的下2行
      [root@destiny ~]# grep -n -A 2 "/bin/bash$" /etc/passwd
      1:root:x:0:0:root:/root:/bin/bash
      2-bin:x:1:1:bin:/bin:/sbin/nologin
      3-daemon:x:2:2:daemon:/sbin:/sbin/nologin
      # grep -n -B 2 "Failed" /var/log/secure  #匹配/var/log/secure文件中Failed字符串,并打印它的上2行
      [root@destiny ~]# grep -n -B 2 "adm" /etc/passwd
      2-bin:x:1:1:bin:/bin:/sbin/nologin
      3-daemon:x:2:2:daemon:/sbin:/sbin/nologin
      4:adm:x:3:4:adm:/var/adm:/sbin/nologin
      # grep -n -C 2 "Failed" /var/log/secure  #匹配/var/log/secure文件中Failed字符串,并打印它的上下2行
      [root@destiny ~]# grep -n -C 2 "adm" /etc/passwd
      2-bin:x:1:1:bin:/bin:/sbin/nologin
      3-daemon:x:2:2:daemon:/sbin:/sbin/nologin
      4:adm:x:3:4:adm:/var/adm:/sbin/nologin
      5-lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
      6-sync:x:5:0:sync:/sbin:/bin/sync
      
  • sed替换

    • # 把/etc/selinux/config里的enforcing替换成disabled
      [root@destiny ~]# sed 's#enforcing#disabled#g' /etc/selinux/config
      # s表示开始,g代表全局
      #默认情况下,sed的替换不会修改文件的本身;
      #只有在添加 -i 的情况下,才会真的替换
      [root@destiny ~]# sed -i 's#enforcing#disabled#g' /etc/selinux/config
      
      #明确替换某一行的内容,例如第8行
      [root@destiny ~]# sed '8s#enforcing#disabled#g' /etc/selinux/config
      #指明替换某一行就替换某一行,不指明就是全局
      
      #高级一点
      	#-n 指的是取消默认的输出
      [root@destiny ~]# ifconfig ens32
      ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
              inet6 fe80::b511:c46f:6799:880  prefixlen 64  scopeid 0x20<link>
              ether 00:0c:29:81:8e:7b  txqueuelen 1000  (Ethernet)
              RX packets 1970  bytes 148837 (145.3 KiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 803  bytes 99898 (97.5 KiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      [root@destiny ~]# ifconfig ens32 | sed '2p'
      ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
              inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
              inet6 fe80::b511:c46f:6799:880  prefixlen 64  scopeid 0x20<link>
              ether 00:0c:29:81:8e:7b  txqueuelen 1000  (Ethernet)
              RX packets 2014  bytes 152549 (148.9 KiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 827  bytes 103682 (101.2 KiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      [root@destiny ~]# ifconfig ens32 | sed -n '2p'
              inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
      
      #纯sed方法实现获取ens32中的ip地址
      [root@destiny ~]# ifconfig ens32
      ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
              inet6 fe80::b511:c46f:6799:880  prefixlen 64  scopeid 0x20<link>
              ether 00:0c:29:81:8e:7b  txqueuelen 1000  (Ethernet)
              RX packets 2232  bytes 168202 (164.2 KiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 868  bytes 108030 (105.4 KiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      #分析:
      	#1.先拿到关键字的行;(缩小范围)
      	[root@destiny ~]# ifconfig ens32 | sed -n '2p'
              inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
      	#2.掐头去尾留中间
      	[root@destiny ~]# ifconfig ens32 | sed -n '2p' | sed -r 's#(^.*et) (.*) (net.*$)# \2 #g'
       10.0.0.100  
      #第一个括号匹配到前面的所有内容
       	#.表示任意单个字符  *表示重复前面字符0次或多次 
       	# ^.*et 表示以任意单个字符开始,重复一次或多次,然后当碰到et后终止匹配
      #第二个括号要匹配到需要的内容
      	#.表示任意单个字符  *表示重复前面字符0次或多次 
      #第三个括号匹配到结尾
      	# net.*$表示net后的字符直到结尾
      #三个括号间的空格加不加都可以
      # \2 表示引用第2个括号的内容
      

      image-20221230174521290

      #使用grep结合awk方法实现获取ens32中的ip地址
      [root@destiny ~]# ifconfig ens32 | grep "netmask" | awk '{print $2}'
      10.0.0.100
      #使用grep结合sed方法实现获取ens32中的ip地址
      [root@destiny ~]# ifconfig ens32 | grep "netmask" | sed -r 's#(^.*et) (.*) (net.*$)# \2 #g'
       10.0.0.100  
      #使用纯awk方法实现获取ens32中的ip地址
      [root@destiny ~]# ifconfig ens32 | awk 'NR==2 {print $2}'
      10.0.0.100
      
  • 文件类型

    • Linux一切皆文件;文件是否需要区分类型?

    • [root@destiny ~]# ll -d /etc/hosts /tmp /bin/ls /dev/sda /dev/ttyl /etc/grub2.cfg /dev/log /run/dmeventd-client
      -rwxr-xr-x.  1 root root 117608 Aug 20  2019 /bin/ls
      srw-rw-rw-.  1 root root      0 Dec 31 08:11 /dev/log
      brw-rw----.  1 root disk   8, 0 Dec 31 08:11 /dev/sda
      crw--w----.	 1 root tty    4, 1 Dec 31 08:11 /dev/ttyl
      lrwxrwxrwx.  1 root root     22 Dec  6 16:55 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
      -rw-r--r--.  1 root root    158 Jun  7  2013 /etc/hosts
      prw-------.  1 root root      0 Dec 31 08:11 /run/dmeventd-client
      drwxrwxrwt. 52 root root   4096 Dec 31 08:12 /tmp
      
      #说明
      -	#普通文件(文本,二进制,压缩,图片,日志等)
      	#实际情况,大家都会遵循一定的规范来进行文件的命名
      	#比如:视频文件:xx.mp4
      	#脚本文件:xx.sh   xx.pu
      	#如果不遵循命名的后缀规范,可以使用file查询这个文件究竟是什么类型;
      [root@destiny ~]# file file.txt
      file.txt: ASCII text
      
      d	#目录文件
      b	#设备文件(块设备)存储设备 硬盘,U盘,SD卡 /dev/sda,
      c	#设备文件(字符设备) 键盘,终端 /dev/ttyl
      s	#套接字文件,进程与进程之间的一种通信方式(socket)
      	#同一台服务器,两个不同的进程,需要相互调用时,可以走socket协议;不同服务器中,要走网络协议,例如TCP,不能走socket协议;
      l	#链接文件;通常是软链接;在Windows系统中叫做快捷方式;
      
  • 文件属性

    [root@destiny ~]# ll
    total 86820
    -rw-r--r--. 1 root root 16955 Mar  6 16:58 access_log
    
    #总共九列:
    -rw-r--r--	# 第一列:权限(权限管理)
    1			# 第二列:硬链接数
    root		# 第三列:文件的拥有人;(用户管理)
    root		# 第四列:文件的拥有组;(用户管理)
    16955		# 第五列:文件的大小
    Mar  6 16:58# 第六七八列:文件的时间;修改时间;
    access_log	# 第九列:文件名称;
    
    #
    
  • 文件链接

    • 文件存储

      • 文件有文件名和数据,在Linux上被分成两个部分:数据(data)与文件元数据(metadata)。

        1. 数据(data block),也叫Block,数据块是用来记录文件真实内容的地方,我们也将其称为Block;
        2. 元数据(metadata),也叫inode,用来记录文件大小,创建时间,所有者等信息。需要注意:inode并不包含文件名称;
      • inode包含文件的元信息,具体来说有以下内容:

        • 文件的字节数
        • 文件的User ID Group ID
        • 文件的读,写,执行权限
        • 文件的时间戳
        • 链接数,即有多少文件名指向这个inode
        • 文件数据block的位置
      • 每个inode都有一个编号,我们的Linux系统是通过inode来识别文件的。对于系统来说,文件名指示inode编号的一个别名,或者绰号,(便于我们人识别)。表面上,用户是通过文件名打开的文件;实际上,系统用内部这个过程分为三步:

        1. 首先,系统找到这个文件名对应的inodde编号
        2. 其次,通过inode编号,获取inode信息
        3. 最后,根据inode信息,找到文件数据所在的block,读出数据
      • 真正存储文件时,会将文件名称——映射到对应的Inode值——保存文件的权限,创建时间,属性等信息——文件存储的内容在磁盘的哪个block上;

      • 读取时,文件名称——inode编号——获取block存储的位置——从磁盘中拿到数据

      • 为什么cd.是当前目录,而cd…是上级目录?

        • [root@destiny ~]# ll -a -i
          33574977 dr-xr-x---.  2 root root  189 Dec 23 17:09 .
                64 dr-xr-xr-x. 19 root root  250 Dec 22 16:02 ..
          [root@destiny ~]# ll -d /root -i
          33574977 dr-xr-x---. 2 root root 189 Dec 23 17:09 /root
          #.和/root使用的是同一个inode,而.和/root只是别名
          
          [root@destiny ~]# cd /usr/local/
          [root@destiny local]# ll -d -i /usr/
          33630947 drwxr-xr-x. 13 root root 155 Dec  6 16:54 /usr/
          [root@destiny local]# ll -a -i
          total 0
          50332074 drwxr-xr-x. 12 root root 131 Dec  6 16:54 .
          33630947 drwxr-xr-x. 13 root root 155 Dec  6 16:54 ..
          
          #.和当前目录的Inode是一样的
          #..和上一级目录的Inode是一样的
          #.和..在你创建一个文件的时候,系统默认就有了
          
    • 软链接(soft link)

      • 软链接相当于Windows系统的快捷方式,软连接文件会将inode指向源文件block,当我们访问这个软链接文件时,其实访问的是源文件本身。

      • image-20221231093357006

      • [root@destiny ~]# ln -s file2.txt file3.txt
        [root@destiny ~]# ll
        total 16
        -rw-r--r--. 1 root root   20 Dec 23 17:09 file2.txt
        lrwxrwxrwx. 1 root root    9 Dec 31 09:43 file3.txt -> file2.txt
        -rw-r--r--. 1 root root   25 Dec 23 16:31 file.txt
        [root@destiny ~]# ll -i file2.txt file3.txt
        33579966 -rw-r--r--. 1 root root 20 Dec 23 17:09 file2.txt
        34281383 lrwxrwxrwx. 1 root root  9 Dec 31 09:43 file3.txt -> file2.txt
        [root@destiny ~]# cat file2.txt
        abc
        123
        abc
        123
        456
        [root@destiny ~]# cat file3.txt
        abc
        123
        abc
        123
        456
        [root@destiny ~]# rm -f file2.txt
        [root@destiny ~]# cat file3.txt
        cat: file3.txt: No such file or directory
        
      • 软链接其实就是建立一个快捷方式

        • 源文件本身——Inode——Block
        • 软链接——Inode与源文件不一样,但是指向的Block是同一个
        • 创建软链接的方式:ln -s 源文件 链接文件;
      • 软链接的使用场景:

        1. 代码发布时;
        2. 版本升级时
        • /data/qq
          • /data/qq-v1.1
          • /data/qq-v1.2
      • 软链接实战

        #1.准备网站1.1版本代码
        [root@destiny ~]# mkdir /data/rainbow-v1.1 -p
        [root@destiny ~]# echo "123" > /data/rainbow-v1.1/index.html
        #2.创建软链接
        [root@destiny ~]# ln -s /data/rainbow-v1.1/ /data/raionbow
        [root@destiny ~]# ll /data/
        #3.检查网站程序
        [root@destiny ~]# cat /data/rainbow/index.html
        123
        #4.新更新一个网站的程序代码
        [root@destiny ~]# mkdir /data/rainbow-v1.2
        [root@destiny ~]# echo "456" > /data/rainbow-v1.2/index.html
        #5.升级
        [root@destiny ~]# rm -f /data/rainbow &&ln -s /data/rainbow-v1.2/ /data/rainbow
        [root@destiny ~]# cat /data/rainbow/index.html
        456
        #6.退回
        [root@destiny ~]# rm -f /data/rainbow &&ln -s /data/rainbow-v1.1/ /data/rainbow
        [root@destiny ~]# cat /data/rainbow/index.html
        123
        
    • 硬链接(hard link)

      • 硬链接类似于超市有多个门,无论从哪个门进入,看到的内容都是一样的。如果关掉一扇门,那影响进入超市?回到系统中,我们对硬链接的解释,不同的文件名指向同一个inode,简单地说,就是指向同一个真实的数据。
      • image-20221231102503071
      • 硬链接与软链接的区别:
        1. ln命令创建硬链接, ln -s创建软链接
        2. 目录不能创建硬链接,并且硬链接不可以跨越分区系统
        3. 目录软链接特别常用,并且软链接支持跨域分区系统
        4. 硬链接文件与源文件inode相同,软链接文件与源文件inode不相同
        5. 删除软链接文件,对源文件及硬链接文件无任何影响
        6. 删除文件的硬链接文件,对源文件及链接文件无任何影响
        7. 删除链接文件的源文件,对硬链接无影响,会导致软链接失效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5)Django Admin管理工具,Form组件,Auth

目录 一 Django Admin管理工具 激活管理工具 使用管理工具 复杂模型 自定义表单 内联(Inline)显示 列表页的显示 二 django Form组件 局部钩子和全局钩子 三 Django 用户认证&#xff08;Auth&#xff09;组件 一 Django Admin管理工具 Django 提供了基于 web 的管理…

年终报告撰写小技巧,你学会了吗?

年年岁岁花相似&#xff0c;岁岁年年人不同。 临近年底&#xff0c;又到了一年一度的年终报告时段了。同事间见面最让人头疼的问候&#xff0c;莫过于&#xff0c;“你的年终报告写了吗&#xff1f;” 有的人东拼西凑、应付了事&#xff0c;汇报内容乏善可陈&#xff0c;领导…

美美的圣诞树画出来-CoCube

2022年圣诞节到来啦&#xff0c;很高兴这次我们又能一起度过~ CSDN诚邀各位技术er分享关于圣诞节的各种技术创意&#xff0c;展现你与众不同的精彩&#xff01;参与本次投稿即可获得【话题达人】勋章【圣诞快乐】定制勋章&#xff08;1年1次&#xff0c;错过要等下一年喔&#…

尚医通-上传医院接口实现(十八)

目录&#xff1a; &#xff08;1&#xff09;上传医院接口-基础类的创建 &#xff08;2&#xff09;数据接口-上传医院接口-初步实现 &#xff08;3&#xff09;上传医院接口-最终实现 &#xff08;1&#xff09;上传医院接口-基础类的创建 复制相关的工具类&#xff1a;这…

Redis Windows版安装和使用

下载地址&#xff0c;亲已测试可放心使用 https://github.com/tporadowski/redis/releases Redis安装和基本使用&#xff08;windows版&#xff09; 1.Redis简介 完全开源免费的高性能的key-value的数据库 支持数据的持久化&#xff0c;可以将内存中的数据保存在磁盘中&…

【函数】一篇文章带你看懂控制流、递归、高阶函数

目录 控制流 条件语句 迭代语句 示例&#xff1a;质因数分解 递归 示例&#xff1a;阶乘 示例&#xff1a;斐波那契数列 示例&#xff1a;判断奇偶数 高阶函数 lambda 表达式 设计函数 示例&#xff1a;累加计算 示例&#xff1a;柯里化 Lab 1: Functions, Control …

个人能用的短信平台有哪些?看这一篇就够了

对于程序员个人来说&#xff0c;在做开发或者是接项目的时候&#xff0c;常常会用到发送短信功能模块&#xff0c;而自己写这个模块会要相当多的精力和时间&#xff0c;去找短信平台来解决问题&#xff0c;已经成了不少程序员的共识。 但市面上的短信平台确实很杂&#xff0c;鱼…

服务注册与发现原理

一、什么是服务注册与发现&#xff1f; 服务注册与发现就是一套管理微服务的组件&#xff0c;方便各拆分的服务平滑上线和下线&#xff0c;以及某个服务出现故障自动剔除。其实质就是维护一张记录各在线服务的表。让消费服知道服务在线可以请求。。。。。。 二、服务注册与发现…

SQL限制

SQL限制目录概述需求&#xff1a;设计思路实现思路分析1.URL管理参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge Survive. happy…

PLL实验

PLL实验 开发板上面只有一个200MHz时钟输入&#xff0c;对于其它频率的时钟怎么办&#xff1f; 介绍 其实在很多 FPGA 芯片内部都集成了 PLL &#xff0c;其他厂商可能不叫 PLL &#xff0c;但是也有类似的功能模块&#xff0c;通过 PLL 可以倍频分频&#xff0c;产生其他很…

pytorch搭建yolov3网络

yolov3的整体网络结构 主要包含了两个部分。左边的Darknet-53主干特征提取网络主要用于提取特征。右边是一个FPN金字塔结构。 主干特征提取网络&#xff08;提取特征&#xff09; import math from collections import OrderedDict import torch.nn as nn#------------------…

MySQL事务相关知识

实践阅读&#xff1a;一文彻底读懂MySQL事务的四大隔离级别 1、什么是事务&#xff1f; 数据库事务&#xff08;简称&#xff1a;事务&#xff09;&#xff0c;是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成&#xff0c;这些操作要么全…

AcWing 4645. 选数异或(预处理小区间 + 二分优化找)

题目如下&#xff1a; 题解 or 思路 在 [l,r][l, r][l,r] 区间内找到两个数 a,ba, ba,b 使得 a ^ b x 通过异或的性质&#xff1a; a ^ b ^ b x ^ b > a x ^ b 我们可以通过 b 可以迅速找到 a, a x ^ b 我们可以现预处理出所有小区间(大区间可以不需要&#xff0c;因为…

win11怎么分回c盘空间

有网友反映自己的win11系统有多个分区&#xff0c;c盘分区的空间比较小&#xff0c;便想通过win11分盘功能&#xff0c;将临近的磁盘空间分给c盘。那么win11怎么分回c盘空间&#xff1f;下面就教下大家win11将其他盘空间分回c盘的方法步骤。 工具/原料&#xff1a; 系统版本&am…

最近几年-基于深度学习自然语言处理的推荐系统-必读论文整理分享

基于内容的推荐&#xff08;Content-based Recommendation&#xff09;是信息过滤技术的延续与发展&#xff0c;它是建立在项目的内容信息上作出推荐的&#xff0c;而不需要依据用户对项目的评价意见&#xff0c;更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用…

02-JVM堆里面的分区:Eden,survival (from+ to),老年代,各自的特点?

1.模型 堆里面分为新生代和老生代&#xff08;java8 取消了永久代&#xff0c;采用了 Metaspace&#xff09;&#xff0c;新生代包含 EdenSurvivor 区&#xff0c;survivor 区里面分为 from 和 to 区. 内存回收时&#xff0c;如果用的是复制算法&#xff0c;从 from 复制到 to…

项目实战之旅游网(十三)前台产品详情 前台收藏

目录 一.前台产品详情 1.查询产品 2.收藏按钮 二.前台收藏 本章的代码会统一放到最后。 一.前台产品详情 1.查询产品 即点击“查看详情”即可得到这个产品的详细描述。 并且项目运行起来之后&#xff0c;可以在后台新建新的产品&#xff0c;在前台可以实时查询到。 2.…

C工程与寄存器封装

目录 一、C语言工程简介 二、启动代码分析 三、C语言实现LED 四、寄存器的封装方式 五、寄存器操作的标准化 六、流水灯 一、C语言工程简介 先将工程模板解压 include里是.h文件 src里是.c文件 start里面是.s启动文件 ## NAME interface CROSS_COMPILE arm-no…

Fusion360 外壳开孔零件居中对齐的方法

DIY时需要根据从市场上采购的成品盒子进行开孔&#xff0c;通过3维软件进行开孔设计是比较方便的。Solidworks由于版权问题不易采用&#xff0c;Fusion360的个人版由于软件差异不像Solidworks方便约束定位。我通过尝试找到了适用方法。 先看成果。在一块板上居中位置开孔以便安…

电子学会2020年9月青少年软件编程(图形化)等级考试试卷(三级)答案解析

目录 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 二、判断题&#xff08;共10题&#xff0c;每题2分&#xff0c;共20分&#xff09; 三、编程题【该题由测评师线下评分】&#xff08;共3题&#xff0c;共30分&#xff09; 青少年软件…