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

这篇具有很好参考价值的文章主要介绍了Day16 linuxC高级(存储类型 linux命令 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历史

Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,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
软件包命名:

Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux

软件包的管理工具: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 -> 桥接模式 -> 自动 -> 确定
Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux

虚拟机 -> 设置 -> 网络适配器 -> 桥接模式
Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux
2.设置自动获取ip
右上角进入 Eidt… 设置

Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux
Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux
Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux

换镜像站点源

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是命令解析器

Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux

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

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

Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux

解析器的分类:

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 ……

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

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

Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux

history - 历史记录查询

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

修改环境变量的值:
export HISTSIZE=20 临时修改,只有在本次打开的终端有效
家目录文件 .bashrc 中修改就是永久修改,修改完生效,从新打开的终端生效
Day16 linuxC高级(存储类型 linux命令 shell命令),华清远见培训,linux

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 的其他文件文章来源地址https://www.toymoban.com/news/detail-803420.html

到了这里,关于Day16 linuxC高级(存储类型 linux命令 shell命令)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端TypeScript学习day03-TS高级类型

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)            目录 TypeScript 高级类型 class 类 class继承  extends implements  类成员可见性  public  protected  private   readonly 兼容性 类型兼容性 接口兼容性  函数兼容性  TypeScri

    2024年02月08日
    浏览(27)
  • Linux Shell高级话题

    预计更新 1: 基础知识 简介和安装 基本命令 变量和环境变量 2: 流程控制 条件语句 循环语句 函数 3: 文件处理 文件读写 文件权限和所有权 文件搜索和替换 4: 网络和进程 网络通信 进程管理 信号处理 5: 文本处理 正则表达式 文本分析和处理 生成报告和日志 6: 用户界面 命令行

    2024年02月12日
    浏览(36)
  • 【Linux高级篇】什么是shell脚本,什么是shell变量

    目录 🍁什么是shell 🍂什么是shell脚本 🍂shell脚本能做什么 🍂学习shell需要哪些知识 🍂shell基本规范 🍂shell脚本五种运行方式 🍁shell变量 🍂变量命名规范 🍂shell变量定义的方式 🍃自定义变量 🍃系统环境变量 🍃预定义变量 🍃位置变量 🍃补充变量 🍂shell变量赋值 🍂

    2023年04月25日
    浏览(39)
  • 【Linux】shell脚本: 基本语法 和 高级特性

    Shell脚本是一种用Shell语言编写的程序,它可以实现自动化的任务,如批量处理文件、监控系统状态、定时备份等。本文包括: Shell脚本的定义和作用:介绍什么是Shell脚本,它有哪些优点和缺点,它可以用来做什么。 Shell脚本的基本语法:介绍Shell脚本的结构、变量、运算符

    2024年02月12日
    浏览(33)
  • 【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令

    上篇文章 bash shell 基础命令 中,介绍了一些与目录、文件相关的 shell 命令,本文继续介绍其他与进程、磁盘、排序、归档相关的命令,读者可以在自己的Linux系统下,实操这些命令,进而收悉并掌握这些命令。本文是一篇学习笔记,很多内容是参考了《Linux命令行与shell脚本

    2024年02月11日
    浏览(42)
  • 【Linux | Shell】bash shell 基础命令

    很多 Linux 发行版的默认 shell 是 GNU bash shell。本文将介绍 bash shell 的基本特性,比如 bash 手册、命令行补全以及如何显示文件内容等。 GNU bash shell 是一个程序,提供了对 Linux 系统的交互式访问。它是作为普通程序运行的,通常是在用户登录终端时启动。系统启动的 shell 程序

    2024年02月11日
    浏览(46)
  • 【Linux | Shell命令】Linux 环境变量

    Linux 系统中,很多程序和脚本通过环境变量来获取系统信息、存储临时数据和配置信息,了解去哪里设置相应的环境变量很重要。 本文总结了Linux 环境变量:它们存储在哪里、如何使用,以及如何创建自己的环境变量,最后会以数组变量的用法作结。 环境变量允许在内存中

    2024年02月12日
    浏览(46)
  • linux shell比较命令

    1 比较运算 2 awk 3 正则表达式 4 %,[@]用法 举例如下:

    2024年02月15日
    浏览(26)
  • Linux shell常用命令

    我们都知道不管是Linux系统还是windows系统,它们都有命令行模式,这项技术使得我们可以通过一些相关字符去操作当前的操作系统。字符操作也是操作系统最原始的操作方式,图形化界面操作虽然降低了学习成本,更方便操作,但大多数时候操作效率还是没有命令行操作效率

    2024年02月05日
    浏览(26)
  • Linux/shell基础命令

    菜鸟教程-Linux linux shell脚本-入门到实战 Linux常用命令大全 Linux下查看压缩文件内容的 10 种方法 shell是操作系统的用户界面,提供了用户和内核进行交互操作的一种接口,实际上就是一个命令解释器,它接受、解释用户输入的命令并把它送到内核执行。 这里第一节有目录每部

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包