Linux C语言高级学习第一天(Linux操作系统与操作)
Linux系统&C语言高级
(3+5)天
Linux系统
操作系统的发展简史(命令行交互-->鼠标交互-->触摸屏交互-->语音交互)
内核
:7个组件
shell
shell命令
通配符
管道符
输入输出重定向符
文件系统
inode(重点)
C语言高级
函数
指针
结构体
Make工程管理器
Linux系统(3天)
历史:
差分机-->打孔纸带----历史上第一个计算机程序(12月10日,程序员节)
第一台计算机——使用继电器
软件层面的发展:AT&T公司贝尔实验室 伯克利分校(二者的合作)为打造能让人偷懒的工程
1970年0月0日0时0分0秒,所有计算机系统的计时0点
为什么C语言叫C语言??
:因为Dennis Ritchis 完成语言后的改版,A语言到B语言,最后才完成了C语言
Linux 发明:Linus Benedict Torvalds (1969年~
1991年4月,自己搞了一套操作系统 Linux 开源免费
GNU:革奴计划
stallman 1983 *软件联盟 铃牛
Linux操作系统结构:
主要包括:系统资源、Kernel、shell、文件系统
安装包 和 Apt
※Debian系统首次提出了“软件包”的管理机制---deb软件包
※Redhat系统---rpm软件包
如何来安装一个软件包--apt
可以在线安装软件
工作原理———>镜像服务器(每24小时更新一次,每一个镜像服务器都有一个索引表)
e.g :apt-get install PUBG-->APT访问服务器(先访问索引表-->将软件和软件的依赖全打包)-->下载到本地(软件包和以来文件)
apt-get 可选项 软件包名
install 安装
remove 卸载
autoremove 自动卸载
.....
sl--小火车 cmatrix--弹幕矩阵 xchat--在线聊天室 cowsay--老牛说 xcowsay--图形化老牛说 fortune-zh--唐诗三百首
Linux内核的七大组件
1.系统调用:操作系统给程序员提供的编程接口
2.进程管理器:进程的开辟、调度、消亡、等等……
3.虚拟文件系统:不是文件系统,是管理文件系统的文件系统,不管理文件(第四门课进行详细讲解)
4.内存管理器:有关于内存的管理(指针)(进程)
5.网络协议栈:
6.Arch:匹配底层硬件,把所有的不一样的硬件处理都统一化(在第二期课程:系统移置)
7.驱动管理器:专门管理驱动的管理器(二期学习)
shell
作用:保护内核,提供操作窗口,应用软件只能跟shell进行交互
起源于命令行的年代
(简答题)
如何播放一首音乐:音乐文件,音乐播放器,声卡驱动,声卡
1.Bourne Shell
2.C Shell
3.Korn Shell
4.Bourne Again Shell(BASH)
(重点)通配符、管道符、输入输出重定向符
1.通用匹配符号(正则表达式)
* 匹配多个字符
? 匹配一个字符
[] 匹配方括号里的一个字符一个字符一个字符 [1234]
[1-4]匹配方括号方位内的字符
[^] 匹配一个除了方括号里的内容[^24]
2.管道符 |
上一个命令的输出作为下一个命令的输入
fortune-zh | cowsay
ls | wc -w //查询这个文件夹下有多少个文件
cat text.c | Wc -l //查询这个text.c有多少行
last | grep linux //在最近登陆中,把Linux的登陆信息筛选出来
cat text.c | grep printf //显示textt.c中的 printf(grep -v printf 除了带有printf的都输出)
echo $PATH | cut -d ':' -f 5 //以:为分割符,取第五段(5- 表示第五段之后的)
grep : 查找关键字 grep -v : 舍弃关键字
环境变量:env 查看环境变量(第三天详细讲)
$PATH:当前shell默认搜索位置
cut:切割字符串 -d:指定分隔符 -f:切割之后输出第几片段
3.输入输出重定向符
> 输出重定向(新建模式)相当于覆盖原文件
>> 输出重定向(追加模式)
< 输入重定向
2> 错误重定向 把错误内容定向写入某个文件里
PS :less/more : 分屏显示文件内容
head/tail : 显示文件开头/结尾
sort : 将文件内容排序后输出
-r: 反序
-R:随机顺序
uniq :省略文件中相邻的重复行
-c:统计重复行的出现次数
-d:报告出现的重复行
-u:只会输出未重复的行
diff:比较两个文件 若两个文件都是文本文件则会输出两个不同的文本,没有差异就不会输出;若两个都是目录,则会输出两个目录内文件的差异
file:判定文件类型
echo :显示文本
-n:输出文字不换行
-e:开启转义字符(可以使用\t :水平制表符、\v :垂直制表符、\n :换行符)
date:显示时间/设置系统时间
-u:UTC:世界协调时-->1900年前世界时间用格里尼治时间,0°经线(本初子午线),为什么会出24个时区,①地球不透明②自转;美国跨四个时区,中国跨五个时区;;1900年之后,用铯原子钟的时间,不受任何因素的影响,北京时间-->铯原子钟时间+8(中国国家授时中心:西安)
结合基础篇第一天学习:https://blog.****.net/nan_lei/article/details/80975470
上一篇: CMake