Day16 linuxC高级(存储类型 linux命令 shell命令)

文章目录

  • C补充
    • 标识常量
    • 存储类型
      • 1.auto // 自动型
      • 2.static:修饰变量和函数 // 静态型
      • 3.extern:外部引用
      • 4.register:寄存器类型
  • LinuxC高级
    • 简介:
    • 嵌入式系统(将软件嵌入到硬件里面)
    • Linux起源
    • 查看操作系统版本
    • 内核系统架构
    • 系统关机或重启命令
    • linux下的软件安装
      • 两种软件包管理机制:
      • 软件包的管理工具:dpkg apt
        • 1)dpkg
        • 2)apt
    • 配置虚拟机联网
    • 换镜像站点源
      • 1>找到虚拟机保存源的文件,将文件内的源替换新的源
      • 2>网上查找对应ubuntu版本新的源。
      • 3>更新源,新换的源生效
    • shell的基本命令
      • shell - 贝壳 外在保护工具
      • 用户、shell、内核、硬件之间的关系
      • 解析器的分类:
        • Bourne Shell(简称sh):
        • C Shell(简称csh):
        • Bourne Again Shell(简称bash):
      • shell命令格式
      • history - 历史记录查询
    • shell中的特殊字符
      • 通配符

C补充

标识常量

宏定义

存储类型

auto static extern register

1.auto // 自动型

修饰变量,一般会省略时认为是auto

2.static:修饰变量和函数 // 静态型

修饰变量:

1)变量的存放位置在全局区
如果静态变量有初值,存放.data 区,没有初值存放在 .bss 区
2)生命周期为整个程序
3)限制作用域:
修饰局部变量:和普通的局部变量的作用域没有区别,但是生命周期被延长为整个程序
修饰全局变量,限制在本文件中使用
4)只初始化一次,初值赋值为0
修饰函数:
static 修饰函数,限制在本文件中使用

3.extern:外部引用

通过 extern 可以引用其他文件中的全局变量或函数

// extern.c
#include <stdio.h>int a = 10;
void fun()
{printf("hello");
}// main.c
#include <stdio.h>extern int a;
extern void fun();
int main(int argc, char const *argv[])
{printf("%d\n", a);fun();return 0;
}编译: gcc main.c extern.c
执行:./a.out

4.register:寄存器类型

由于寄存器数量比较少,申请不到空间和 auto 一样

LinuxC高级

简介:

linux:软件安装、用户管理、进程管理、shell通用、硬链接和软连接、解压和压缩、
shell脚本、功能性语句、结构性语句、分文件编程、条件编译、make工具

C高级:函数指针、指针函数、函数指针数组

嵌入式系统(将软件嵌入到硬件里面)

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
家用电子设备
医疗设备
军工
智能交通

Linux起源

#Linux历史

在这里插入图片描述

UNIX和linux的区别:
1)linux是开发源代码的自由软件.而unix是对源代码实行知识产权保护的传统商业软件。
2)UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上

了解不同操作系统的内核:
windows - NT
ubuntu - linux
Android - linux
macOs ios - unix

查看操作系统版本

lsb_release -a/-r
cat /etc/issue --> 文件中查看
查看内核的版本:
uname -a/-r
cat /proc/version --> 文件中查看

内核系统架构

应用层:app、shell命令
| |shell解析器
C库 |
|
----------------系统调用---------------
内核层:五大功能
内存管理
文件管理
设备管理
网络管理
进程管理
-------------------------------------------
硬件层:鼠标、键盘

C库:标准库,所有操作系统都可以使用的函数接口
系统调用:内核提供的用于输入输出的函数接口,不同的操作系统调用函数接口不同。

基于 32 位操作系统:
产生进程:有 0 - 4G虚拟内存空间。每个进程 0 - 3G 私有虚拟内存空间,3-4G 公用的内核空间

系统关机或重启命令

关机:
sudo shutdown -h now:立即关机
sudo shutdown -h 时间 “提示语句”:定时关机 min 为单位
重启:
sudo shutdown -r now:立即重启
sudo shutdown -r 时间:定时重启
sudo reboot now:立即重启

linux下的软件安装

两种软件包管理机制:

debian linux:deb软件包 —> ubuntu是这个
redhat linux:rpm软件包

deb软件包分为两种:
二进制软件包(deb): deb — 安装软件的软件包
源码包(deb-src): dsc
软件包命名:

在这里插入图片描述

软件包的管理工具:dpkg apt

1)dpkg
特点:安装时需要软件包存在,不需要从镜像站点获取软件包。不需要网络,不能检查软件之间的依赖关系
dpkg命令:sudo dpkg -i 软件包的完整名称:安装软件sudo dpkg -r 软件名:卸载软件sudo dpkg -s 软件名:查看软件的安装状态sudo dpkg -P 软件名:完全卸载sudo dpkg -L 软件名:列出软件目录信息

共享文件夹的路径:/mnt/hgfs/共享文件夹的名字

2)apt
特点:安装时不需要软件包存在,需要从镜像站点获取软件包
需要网络,能检查软件之间的依赖关系apt-get:sudo apt-get install 软件名:下载并安装软件sudo apt-get remove 软件名:卸载软件sudo apt-get --purge remove 软件名:完全卸载sudo apt-get clean:清除下载的软件包/var/cache/apt/archives  --> 安装软件的安装包默认存放路径sudo apt-get update:更新源sudo apt-get upgrade:更新安装软件sudo apt-get download:下载软件包sudo apt-get source:下载源码包
apt-cache:sudo apt-cache show 软件名:获取二进制包的描述信息sudo apt-cache policy 软件名:查看软件的安装状态sudo apt-cache depends 软件名:查看依赖的软件sudo apt-cache rdepends 软件名:查看谁依赖我		

ping 网址/IP地址 --> 查看虚拟机是否可以上网

配置虚拟机联网

自动获取ip
设置虚拟机桥接网络

编辑 -> 虚拟网络编辑器 -> vmnet0 -> 桥接模式 -> 自动 -> 确定
在这里插入图片描述

虚拟机 -> 设置 -> 网络适配器 -> 桥接模式
在这里插入图片描述
2.设置自动获取ip
右上角进入 Eidt… 设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

换镜像站点源

1>找到虚拟机保存源的文件,将文件内的源替换新的源

 sudo gedit /etc/apt/source.list注:修改之前先备份--》sudo  cp  /etc/apt/sources.list    /etc/apt/sources.list.config	   

2>网上查找对应ubuntu版本新的源。

 网址:https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

3>更新源,新换的源生效

sudo apt-get update

shell的基本命令

shell - 贝壳 外在保护工具

shell是命令解析器

在这里插入图片描述

用户、shell、内核、硬件之间的关系

用户在命令行提示符下输入命令文本,开始与shell进行交互。
接着,shell将用户的命令或者按键转换成内核能够理解的指令
控制操作系统作出响应,直到控制相关的硬件设备。
然后,将输出结果通过shell提交给用户

在这里插入图片描述

解析器的分类:

Bourne Shell(简称sh):

Bourne Shell由AT&T贝尔实验室的S.R.Bourne开发,也因开发者的姓名而得名。它是Unix的第一个Shell程序,早已成为工业标准。目前几乎所有的Linux系统都支持它。不过Bourne Shell的作业控制功能薄弱,且不支持别名与历史记录等功能。目前大多操作系统是将其作为应急Shell使用。

C Shell(简称csh):

C Shell由加利福尼亚大学伯克利分校开发。最初开发的目的是改进Bourne Shell的一些缺点,并使Shell脚本的编程风格类似于C语言,因而受到广大C程序员的拥护。不过C Shell的健壮性不如Bourne Shell。
Korn Shell(简称ksh):Korn Shell由David Korn开发,解决了Bourne Shell的用户交互问题,并克服了C Shell的脚本编程怪癖的缺点。Korn Shell的缺点是需要许可证,这导致它应用范围不如Bourne Shell广泛。

Bourne Again Shell(简称bash):

Bourne Again Shell由AT&T贝尔实验室开发,是Bourne Shell的增强版。随着几年的不断完善,已经成为最流行的Shell。它包括了早期的Bourne Shell和Korn Shell的原始功能,以及某些C Shell脚本语言的特性。此外,它还具有以下特点:能够提供环境变量以配置用户Shell环境,支持历史记录,内置算术功能,支持通配符表达式,将常用命令内置简化。

shell命令格式

通常一条命令包含三个要素:命令名称、选项、参数。其中命令名称是必须的,选项和参数根据实际情况进行填写
Command [-Options] Argument1 Argument1 ……

Commandshell命令名称,严格区分大小写
Optionsshell命令选项,每一个参数都需要添加"-"进行引导
Argument1shell命令参数,一条命令的参数大于等于0个,且多个参数的情况需要利用空格进行隔开

格式:命令名称 [选项] [参数] …
细节:
1.一条命令的三要素之间用空格隔开
2.若一行要书写多个命令,需要使用分号( ; ),进行隔开
3.如果一条命令不能再一行内写完,需要在行尾使用反斜杠 () 表明该命令未结束

在这里插入图片描述

history - 历史记录查询

直接 history 显示HISTSIZE 条历史记录
history n -> 只显示n条命令
echo $HISTSIZE --> 在终端显示环境变量 HISTSIZE 的值
家目录下隐藏文件 .bash_history,保存历史记录的。HISTFILESIZE 条
终端关闭,终端上执行的命令刷新到文件中

修改环境变量的值:
export HISTSIZE=20 临时修改,只有在本次打开的终端有效
家目录文件 .bashrc 中修改就是永久修改,修改完生效,从新打开的终端生效
在这里插入图片描述

shell中的特殊字符

通配符

当用户需要用命令处理一组文件,例如 file1.txt、file2.txt、file3.txt、file4.txt ……,用户不必输入所有文件名。可以使用shell通配符。

通配符含义
*匹配任意长度的字符
匹配一个长度的字符
[…]匹配其中指定的一个字符
[-]匹配指定一个字符范围
[^n]除了其中指定的字符均可以

实例:
●用 file_*.txt,匹配 file_aa.txt、file_bb.txt、file_abcd.txt 能匹配到的,file1_cc.txt则匹配不到(命令后面 单独使用 * 表示全部,如:rm * :表示删除全部文件)
●用 file_?.txt,匹配 file_1.txt、file_2.txt、file_3.txt是可以匹配到的,file_11.txt则匹配不到
●用 file_[abc].txt 只能匹配 file_a.txt、file_b.txt、file_c.txt
●用 file_[a-c].txt 能匹配 file_a.txt、file_b.txt 直到 file_c.txt
●用 file_[^abc].txt 除了 file_a.txt、file_b.txt、file_c.txt 的其他文件

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

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

相关文章

CSDN COC西安城市开发者社区2023年度线下聚会

1. 活动背景 CSDN始终致力于促进城市区域内尖端新型技术开发者交流&#xff0c;提供开放自由的切磋平台。在这个充满挑战和机遇的一年即将结束之际&#xff0c;通过本次聚会&#xff0c;汇聚西安本地各行各业的开发者朋友&#xff0c;回顾过去一年城市社区的成就和收获&#x…

Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)

目录 Spring&#xff08;概述特点IOC原理IOC并操作之bean的XML管理操作&#xff09;概述Spring是轻量级的开源的JavaEE框架Spring可以解决企业应用开发的复杂性Spring有两个核心部分ioc,aopSpring特点 loc(概念和原理)什么是 IOCIOC 底层原理IOC 过程图 IOC&#xff08;接口&am…

MySQL的一些综合运用

一些基本的语句&#xff1a; USE dept_emp; CREATE TABLE dept ( deptno INT(2) NOT NULL COMMENT 部门编号, dname VARCHAR (15) COMMENT 部门名称, loc VARCHAR (20) COMMENT 地理位置 ); -- 添加主键 ALTER TABLE dept ADD PRIMARY KEY (deptno); -- 添加数据 INSE…

前端转鸿蒙的就业前景如何?有必要学鸿蒙么?

学习鸿蒙开发是否有必要&#xff0c;取决于多个因素&#xff1a; 一、个人兴趣与职业规划&#xff1a; 如果你对华为鸿蒙操作系统&#xff08;HarmonyOS&#xff09;感兴趣&#xff0c;并且希望将这个平台作为你的职业发展的方向&#xff0c;那么学习鸿蒙开发是非常有意义的。…

MSG3D

论文在stgcn与sta-lstm基础上做的。下面讲一下里面的方法&#xff1a; 1.准备工作 符号。这里是对符号进行解释。 一个人体骨骼图被记为G(v,E) 图卷积&#xff1a; 图卷积定义 考虑一种常用于处理图像的标准卷积神经网络 (CNN)。输入是像素网格。每个像素都有一个数据值向…

x-cmd pkg | speedtest-cli - 网络速度测试工具

目录 简介首次用户功能特点竞品和相关作品进一步探索 简介 speedtest-cli 是一个网络速度测试工具&#xff0c;用于测试计算机或服务器与速度测试服务器之间的网络连接速度。 它使用 speedtest.net 测试互联网带宽&#xff0c;可以帮助用户获取网络的上传和下载速度、延迟等参…

【复现】SpringBlade SQL 注入漏洞_22

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 SpringBlade 是由一个商业级项目升级优化而来的SpringCloud微服务架构&#xff0c;采用Java8 API重构了业务代码&#xff0c;完全…

【C++初阶】第二站:类与对象(上) -- 下部分

前言&#xff1a; 本章知识点&#xff1a; 类对象模型、 this 指针 专栏&#xff1a; C初阶 目录 类对象模型 如何计算类对象的大小 类对象的存储方式猜测 结构体内存对齐规则 this指针 this指针的引出 this指针的特性 C语言和C实现Stack的对比 C语言实现 C实现 类对象模型 …

动态规划——炮兵回城【集训笔记】

题目描述 游戏盘面是一个m行n列的方格矩阵&#xff0c;将每个方格用坐标表示&#xff0c;行坐标从下到上依次递增&#xff0c;列坐标从左至右依次递增&#xff0c;左下角方格的坐标为(1,1)&#xff0c;则右上角方格的坐标为(m,n)。 游戏结束盘上只剩下一枚炮兵没有回到城池中&a…

ERP系统哪个好用?用友,金蝶,ORACLE,SAP综合测评

ERP系统哪个好用&#xff1f;用友&#xff0c;金蝶&#xff0c;ORACLE&#xff0c;SAP综合测评 ERP领域SAP、ORACLE相对于国内厂商如用友、金蝶优势在哪&#xff1f; SAP&#xff0c;ORACLE操作习惯一般国人用不惯&#xff1b;相对于国产软件&#xff0c;界面也很难看&#x…

AlmaLinux 9.3 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

Android学习之路(22) 从模块化到组件化

从模块化到组件化 一、从模块化到组件化 Android 应用项目 , 都存在一个应用模块 ( Application Module ) , 在 build.gradle 构建脚本中 , 第一个插件配置 com.android.application , 表明 该 Module 编译打包后的输出是 APK 安装包 ; 该项目可以直接运行 ; plugins {id co…

React进阶 - 11( 说一说 PropTypes 和 DefaultProps )

本章内容 目录 PropTypesDefaultProps 截止到上一节的内容&#xff0c;我们使用了一个 TodoList的案例&#xff0c;大概了解了 React的一些入门知识。从本节内容开始&#xff0c;我们将进入React进阶知识的学习 PropTypes 在组件拆分时&#xff0c;我们知道每个组件都有自己的…

AI快速构建中文文本蕴含深度学习模型-NeuronBlocks(一)

案例介绍 随着自然语言处理(NLP)领域研究的不断深入&#xff0c;如何让机器能够真正地理解自然语言&#xff0c;而不是仅简单地处理语句的表层信息&#xff0c;渐渐成为了许多学者面临的问题。实现对文本深层次理解&#xff0c;是自然语言处理研究最主要也是最重要的目的之一。…

2017-2021年中国城市数字经济指数

2017-2021年中国城市数字经济指数 1、时间&#xff1a;2017-2021年 2、指标&#xff1a;年份、城市名称、城市代码、城市分级、发展阶段、总得分、总排名、总排名变更、数据及信息化基础设施得分、数据及信息化基础设施排名、数据及信息化基础设施排名变更、城市服务得分、城…

c++:string相关的oj题(把字符串转换成整数、344.反转字符串、387. 字符串中的第一个唯一字符、917. 仅仅反转字母)

文章目录 1.把字符串转换成整数题目详情代码思路 2. 344.反转字符串题目详情代码1思路1代码2思路 3. 387. 字符串中的第一个唯一字符题目详情代码思路 4. 917. 仅仅反转字母题目详情代码思路 1.把字符串转换成整数 传送门 题目详情 代码 class Solution { public:int StrToI…

详解SpringCloud微服务技术栈:一文速通RabbitMQ,入门到实践

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;DockerCompose部署微服务集群 &#x1f4da;订阅专栏&#xff1a;微服务技术全家桶 希…

ELK分离式日志(2)

目录 一.FilebeatELK 部署 开台服务器&#xff08;192.168.233.50&#xff09;下载fliebeat&#xff1a; 安装nginx后查看下日志文件&#xff1a; 设置 filebeat 的主配置文件: 关闭logstash&#xff0c;检测文件&#xff1a; 在50节点上启动filebeat&#xff1a; 访问页…

SpikingJelly笔记之IFLIF神经元

文章目录 前言一、脉冲神经元二、IF神经元1、神经元模型2、神经元仿真 三、LIF神经元1、神经元模型2、神经元仿真 总结 前言 记录整合发放(integrate-and-fire, IF)神经元与漏电整合发放(leaky integrate-and-fire, LIF)神经元模型&#xff0c;以及在SpikingJelly中的实现方法…

x-cmd pkg | yq - 命令行 YAML处理工具

目录 简介首次用户支持格式转换友好的显示和操作语法与 jq 类似竞品和相关作品进一步阅读 简介 yq (YAML Query) 是一个轻量级的 YAML、JSON、XML 处理器&#xff0c;主要用于查询和提取 YAML 数据。 本 yq 的包来自 mikefarah/yq 项目&#xff0c;语法类似于 jq 。相比 kisly…