最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
const char *str = “hello world\n”;
write(fd, str, strlern(str));
close(fd);
系统调用 和 库函数
我们要回顾一下系统调用 和 库函数的概念,知道系统调用是系统提供的接口,而库函数呢?
是为了用户更好的使用对系统调用的二次封装。
其中,fopen fclose fread fwrite 都是C标准库当中的函数,我们称之为库函数(libc)。
而, open close read write lseek 都属于系统提供的接口,称之为系统调用接口。
可以认为f系列函数是对接口的二次封装。
3,4,5,6 文件描述符fd(files descration),在os层面就是一个整数,从0到n,
0:标准输入
1:标准输出
2:标准错误
本质是数组下标
os要管理文件,结构体,多个文件多个结构体,链表组织
struct file{
//文件的属性信息
//文件的缓存和存储位置
}
进程是task_struct,进程访问文件,进程对文件 1:n
struct file*fd_array [结构体指针数组],pcb有指针fs指向其中。(struct file_struct中的)
什么是文件描述符
本质是数组下标,默认从小的分配,默认从3开始
通过结构体和函数指针实现面向对象
重定向
重定向:本来应该输出到显示器上的内容,输出到了文件当中,其中,fd=1。这种现象叫做输出
重定向。常见的重定向有:>, >>, <
我们来看这一代码,我们会发现printf和fprinf打印了两次。
int main()
{
int fd = open(“log.txt”,O_CREAT | O_APPEND | O_WEONLY, 0644);
if(fd < 0){
perror("open error");
return 1;
}
const char *str = “hello world: write\n”;
const char *str1 = “hello world: print\n”;
const char *str2 = “hello world: fprint\n”;
write(1,str,strlen(str));
printf(“%s”,str1);
fprintf(stout,“%s”,str2);
fork();
fflush(stdout);
}
输出地一般有两种,
显示器,行缓冲
和文件,全缓冲
缓冲区,本质是一块内存
重定向,目的地发生变化,收缓冲影响。库函数受影响,缓冲区在库函数提供的。
用户级缓冲区,c标准库提供。(语言给我们提供的缓冲区)
先关闭1的重定向,
不关闭用dup,有dup和dup2,我们在这里学习dup2。
dup2(oldfd,newfd),内容的拷贝
dup2(fd,1)
close(fd)
数组内容的拷贝,内容的改变。
文件管理、理解文件系统
文件 = 内容 + 属性
一个文件
(1)inode{
属性集合
}
(n数据块)block{ 4kb为单位保存的
内容
}
file system{
基本情况
空间一共多大
已经被使用&&没有被使用
inode
block
group(高度概括)
方法
}
理解硬盘,里边是光盘(两面都是光的)6磁头,机械臂杆
盘面,柱面,扇区
硬盘想象成大数组,将对硬盘进行管理的问题转化为对数组进行管理的问题。
硬盘太大了,划分空间,(用文件系统)便于管理。(分区)
inode文件的属性 (个数是确定的)
Data block 数据
文件:inode: block = 1:1:n
inode id ,标识一个inode,是唯一的
目录是文件,有inode和block
怎么分配inode id
由i位图决定,多少id就是多少0 ,00000…00000,比如第五个给了,就是00001…000。
同理b位图
想象为数组
通过位图知道inode和block的使用情况。
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!