一、如何学习Linux

1. Linux基础知识

(1) 计算机概论与硬件相关知识。

(2) 先从Linux的安装与命令学起。

(3) Linux操作系统的基础技能。如用户/用户组、权限、程序等概念。

(4) 务必学会vi文本编辑器。

(5) 学习shell脚本。包括“正则表达式”、“管道命令”、“数据流重定向”等。

(6) 一定要会软件管理。包括Tarball/RPM/DPKG等软件管理员的安装方式。

(7) 网络基础。如IP、路由等概念。

2. 陈皓给出的Linux技术练级攻略:

(摘自coolshell上陈皓的博客《程序员技术练级攻略》http://coolshell.cn/articles/4990.html )

入门:

(1) 文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …

(2) 学会使用一些文本操作命令 sed/awk/grep/tail/less/more …

(3) 学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd…

(4) 了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息

(5) 了解正则表达式,使用正则表达式来查找文件。

进阶:

(1) 用这些系统知识操作一下文件系统,用户(实现一个可以拷贝目录树的小程序)

(2) 用fork/wait/waitpid写一个多进程的程序,用pthread写一个多线程带同步或互斥的程序。多进程多进程购票的程序。

(3) 用signal/kill/raise/alarm/pause/sigprocmask实现一个多进程间的信号量通信的程序。

(4) 学会使用gcc和gdb来编程和调试程序(参看我的《用gdb调试程序》)

(5) 学会使用makefile来编译程序。(参看我的《跟我一起写makefile》)

(6) IPC和Socket的东西可以放到高级中来实践。

二、主机规划与磁盘分区

1. 在Linux下,每个设备都被当成一个文件来对待。

2. 硬盘分为传统硬盘(HDD)、固态硬盘(SSD)、混合硬盘(HHD)三种。其中传统硬盘HDD又分为IDE(Integrated Drive Electronics,即“电子集成驱动器”)、SATA(Serial Advanced Technology Attachment,又称“串口硬盘”)、SCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)几种。

3. 磁盘的记录整个磁盘的两个重要信息:主引导分区(Master Boot Record, MBR)、分区表(partition table)。其中,主引导分区是安装引导加载程序的地方,有446bytes。分区表则记录整块磁盘分区状态,有64bytes,总共分为四组记录区,每组记录区记录该区段的开始与结束的柱面号码。

4. 磁盘分区

(1) 其实所谓的“分区”只是针对哪64bytes的分区表进行设置而已。

(2) 硬盘默认的分区表仅能写入四组分区信息。

(3) 这四组分组信息我们成为主(Primary)分区或扩展(Extended)分区,扩展分区最多只能有1个,主分区和扩展分区最多可以有4个。

(4) 逻辑分区是由扩展分区持续切割出来的分区。

(5) 分区的最小单位为柱面(cylinder)。

5. 分区的原因

(1) 隔离数据,提高数据的安全性。

(2) 将相关数据集中在某个柱面的区段,有助于数据读取的速度和性能。

6.从开机到操作系统运作之前的流程

(1) 开机时计算机会主动执行BIOS,BIOS会去分析计算机里面有哪些存储设备,根据用户的设置去取得能够开机的存储设备(如硬盘、光驱或USB等),并且到该设备里面去读取第一个扇区的MBR位置。

(2) MBR内的引导加载程序(Boot loader)会加载内核文件。

(3) 内核文件开始操作系统的功能。

7. Boot Loader的主要任务

(1) 提供菜单。使得用户可以选择不同的开机选项。

(2) 载入内核文件。直接指向可开机的程序区段来开始操作系统。

(3) 转交其他loader。将引导加载功能转交给其他loader来负责。

《鸟哥的Linux私房菜:基础学习篇》读书笔记之第一部分的更多相关文章

  1. 鸟哥的Linux私房菜 基础学习篇读书笔记(9):Linux磁盘与文件系统管理(2)

    上一篇文章主要从理论上分析了Linux的Ext2文件系统.这一篇主要解说怎样查看Linux的文件系统的容量以及解说Linux文件系统中的连接文件. 能够通过df和du命令来查看磁盘与文件夹的容量.df ...

  2. 人体和电脑的关系——鸟哥的LINUX私房菜基础学习篇读书笔记

    CUP=脑袋: 每个人会做的事情都不一样(指令集的差异),但主要都是通过脑袋来判断与控制身体各部分的行动 内存=脑袋中存放正在思考的数据区块: 在实际活动过程中,我们的脑袋需要有外界刺激的数据(例如光 ...

  3. 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录

    目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...

  4. 每周一书-《鸟哥的Linux私房菜基础学习篇(第四版)》台湾原版,你想要吗?

     首先说明,本周活动有效时间为2016年10月19日到2016年10月31日.   目在介绍这本书之前,首先要感谢QQ号为:1084830483(路在远方),来自哈尔滨工程大学的同学赠送给玄魂工作室的 ...

  5. 【Linux】鸟哥的Linux私房菜基础学习篇整理(一)

    最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename ...

  6. 《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)

    第2章 Linxu怎样学习         1. Linux当前的应用角色 当前的Linux常见的应用可略分为企业应用和个人应用双方面. 首先谈了企业环境的利用. 1)网络server. 2)关键任务 ...

  7. 《鸟哥的Linux私房菜-基础学习篇(第三版)》(四)

    第3章 主机规划与磁盘分区        1. Linux与硬件的搭配        首先谈了认识计算机的硬件配置. 然后谈了选择与Linux搭配的主机配置. 在Linuxserver中,内存的重要性 ...

  8. 《鸟哥的Linux私房菜-基础学习篇(第三版)》(六)

    第5章 首次登陆与在线求助man page        1. 首次登陆系统        首先谈了首次登陆CentOS 5.x界面.登陆选项中的会话是能够使用不同的图形界面来操作整个Linux系统. ...

  9. 当时学习《鸟哥的Linux私房菜-基础学习篇》记录的点

    1.当执行一个指令的时候,举例来说[ls],系统会依照PATH的设定去每个PATH定义的目录下搜寻文件名为ls的可执行文件,如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先搜寻到的同 ...

  10. 鸟哥的Linux私房菜基础学习篇(第三版)——阅读笔记(二)

    第一章 Linux是什么 1.Linux是什么 一套操作系统 早期的Linux是针对386开发的 具有可移植性 2.Unix及Linux的发展史 1973年,Unix诞生,Ritchie等人以C语言写 ...

随机推荐

  1. Turbo编码

    在做项目时,观察到师兄代码中的Turbo编码过程,不是很理解,把实现过程分享出来,原理则参考引用链接: 以512长原始数据为例,按照LTE标准的1/3码率对其编码,编码后的数据为(1548,512), ...

  2. Maven+Docker 部署

    Maven+Docker 部署 安装jdk8镜像 docker pull openjdk:8-jdk-alpine maven插件推送方式 修改/etc/docker/daemon.json文件,加入 ...

  3. JAVA的带参数的方法

    一.带参数的方法 1.1 语法:                            <访问修饰符>  返回类型  <方法名>(<形式参数列表>) { //方法的 ...

  4. [Luogu] 均分数据

    题面:https://www.luogu.org/problemnew/show/P2503 题解:https://www.zybuluo.com/wsndy-xx/note/1141736

  5. 解决Virtualbox的根分区容量不够用问题

    现在Virtualbox新建一块磁盘.容量一定要比原来的大.然后执行克隆命令. 把原来的磁盘内容克隆到新磁盘上.然后重新启动电脑. 运行相关扩容命令即可. #克隆磁盘 cd C:\Program Fi ...

  6. Asp.Net跨平台 Jexus 5.8.1 独立版

    在Linux上运行ASP.NET网站或WebApi的传统步骤是,先安装libgdiplus,再安装mono,然后安装Jexus.在这个过程中,虽然安装Jexus是挺简便的一件事,但是安装mono就相对 ...

  7. Babel7知识梳理

    Babel7 知识梳理 对 Babel 的配置项的作用不那么了解,是否会影响日常开发呢?老实说,大多情况下没有特别大的影响(毕竟有搜索引擎). 不过呢,还是想更进一步了解下,于是最近认真阅读了 Bab ...

  8. ROS indigo下Kinect v2的驱动安装与调试

    ROS indigo下Kinect v2的驱动安装与调试 一.libfreenect2源码安装与测试 github地址:https://github.com/OpenKinect/libfreenec ...

  9. spring boot jpa-java.lang.IllegalArgumentException: Not a managed type异常问题解决方法

    JPA实体类没有被扫描到,导致这样的情况有以下几种可能: 实体类没有加上@Entity注解 对应解决方法在实体类上加上@Entity即可解决问题 没有按照SpringBoot的约定,默认扫描(appl ...

  10. CDH构建大数据平台-配置集群的Kerberos认证安全

     CDH构建大数据平台-配置集群的Kerberos认证安全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 当平台用户使用量少的时候我们可能不会在一集群安全功能的缺失,因为用户少,团 ...