鸟哥Linux私房菜基础学习篇学习笔记1

第三章

  • 主导分区(MBR),当系统在开机的时候会主动去读取这个区块的内容,必须对硬盘进行分区,这样硬盘才能被有效地使用。

    • 所谓的分区只是针对64Bytes的分区表进行设置。
    • 分区的最小单位为柱面(cylinder)。
    • 扩展分区记录区也叫作逻辑分区。
    • BIOS是写入到主板上的固件,开机时计算机会主动执行的第一个程序。
  • 引导加载程序(Boot loader): 一支可读取内核文件来执行的软件。
  • 文件系统与目录树的关系(挂载):
    • 所谓挂载就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下。
  • NAT(达到路由器的功能): Linux通过NAT服务达到路由器。
  • Web(www服务器),www服务器几乎是所有网络都会安装的一个功能,www链接和网络主机上面的软件功能。
  • Proxy(代理服务器),Proxy将有效地解决带宽不足的问题。
  • FTP(文件传输服务器)进行网络数据传输。

第五章

  • 基础命令的操作:

    • 显示日期与时间的命令: date;

      • date +%Y/%m/%d格式化日期。
      • date +%H:%M格式化时间。
    • 显示日历的命令: cal;
    • 简单好用的计算器: bc;
  • 重要的热键;
    • TAB键进行补齐,包括文件补齐和命令补齐。
    • Ctrl+C这个组合键是中断当前程序。
    • Ctrl+d这个组合键代表键盘输入结束(End Of File)。
  • 在线求助man page 与info page:
    • man后面的数字的含义:

      • 1表示用户在shell环境中可以操作的命令或可以执行的文件。
      • 2表示系统内核可调用的函数与工具。
      • 3表示一些常用的函数与函数库(大部分是C的函数库)。
      • 4表示设备文件,在/dev文件夹下。
      • 5表示配置文件或者是某些文件的格式。
      • 6表示游戏(games).
      • 7表示惯例与协议,诸如Linux文件系统、网络协议,ASCII code等。
      • 8系统管理员所用的管理命令。
      • 9表示与kernel有关的文件。
    • man page中的查询:
      • /string向下查询string字符串;
      • ?string向上查询string字符串;
      • n继续向下查询,N继续向上查询;
      • q结束这次man page。
  • 正确的关机方法:
    • 查看系统的使用状态:

      • 查看网络联机状态: netstat -a;
      • 查看后台执行的程序: ps -aux;
      • 将数据写入硬盘中: sync
      • 惯用的关机命令: shutdown
        • shutdown -h now;
      • 重启和关机: reboot, halt, poweroff
  • root权限的密码忘记了,该怎么办?
    • 使用grub引导装载程序。

第六章

  • Linux的文件权限与目录配置

    • linux是一个多用户、多任务的操作系统,将文件分为3个类别: owner/group/others,且有read、write、execute的权限。
  • 用户与用户组:
    • 每个账号都可以有多个用户组的支持。
    • 王大毛的家就是用户组,王氏三兄弟就是用户。
    • 在Linux中的任意一个文件都具有User,Group及Others;
    • root权限就是万能的天神;
  • 账户信息都记录在/etc/passwd这个文件中,个人密码记录在/etc/shaow文件中,所有的组名都记录在/etc/group内。
  • 文件所有者的权限,同组用户的权限,其他非本用户组的权限。
  • 多少文件名连接到此节点(i-node)。
    • 所有者,所属用户组,文件大小,修改日期,文件名。
  • 如何改变文件属性与权限:
    • chgrp,改变文件所属用户组;
    • chown, 改变文件所有者;
      • 将目录下的所有子目录或文件同时更改所有者,需要添加一个-R选项。
      • chmod root:root install.log将install.log的所有者和用户组都改为root。
    • chmod,改变文件的权限。
      • r的值是4,w的值为2,e执行的值为1;
      • u代表user,g代表group,o代表others,a代表all。
      • +是加入, -是去除,=是设置。
  • Linux目录配置标准:FHS:
    • /usr软件放置处;
    • /etc配置文件;
    • /opt第三方软件;
    • /boot开机与内核文件;
    • /bin在单用户维护模式下还能被操作的命令;
    • /dev任何设备与接口都会存在于这个目录下;
    • /lib系统开机会用到的库函数;
    • /media中放置的是可删除的设备;
    • /mnt挂载额外的设备;
    • sbin给root用户的系统设置;
    • srv网络服务的数据目录;
    • tmp是用户或程序暂时放置文件的地方;
    • /var可变动的文件。
    • /lost+found当文件系统发生错误时, 将一些丢失的片段放到这个目录中。
    • /proc这是一个虚拟文件系统(virtual filesystem),它放置的数据都是在内存当中,系统内核,进程,网络状态,设备状态,本身不会占用磁盘空间;
      • /proc/cpuinfo, /proc/dma, /proc/interrupts。
    • /sys也是一个虚拟文件系统,主要记录与内核相关的信息;
      • 目前加载到内核中的内核模块;
      • 内核监测到的硬件设备信息;
  • 与开机相关的目录不能与根目录放到不同的分区中。

第七章

  • rmdir删除一个空的目录;
  • 关于执行文件路径的变量: $PATH;
    • $PATH中那个目录先被查询,就会先被执行这个目录下的命令。
  • basename就是取得最后的文件名;
    • dirname就是取得目录名。
  • 文件内容查阅:
    • cat由第一行显示文件内容;
    • tac从最后一行开始显示,是cat的倒写形式;
    • nl显示的时候随便输出行号;
    • more一页一页地显示文件内容;
      • 空格键(space)向下翻一页;
      • Enter向下滚动一行;
      • /string,向下查找string的字符串;
      • :f立即显示出文件名以及目前显示的行数;
      • q离开more,不再显示该文件内容;
      • b对文件往回翻页;
    • lessmore类似,但比more更好的是它可以往前翻页;
    • head只看头几行;
    • tail只看尾几行;
    • od以二进制的方式读取文件内容。
  • 修改文件时间或创建新文件: touch命令。
  • 文件与目录的默认权限与隐藏权限:
    • 文件默认权限: umask;

      • 与一般权限有关的是后面三个数字;
      • umask -S(Sybolic)以符号类型的方式来显示出权限。
    • 文件隐藏属性: chattr, lsattr;
      • lsattr命令显示文件隐藏属性;使用chattr设置后,利用lsattr来查看隐藏属性;
  • 查看文件类型: file命令;
    • 脚本文件名的查询,which这个命令查询执行文件;
    • 文件名的查找,whereis,寻找特定文件;
      • Linux系统的所有文件都记录在一个数据库文件里;
    • locate查找查找文件的部分名称;
      • -i忽略大小写的差异;
      • -r后面可接正则表达式的显示方式。
    • find命令:
      • find [PATH] [option] [action]
      • find的功能就是能够进行额外的动作(action);
      • 不但可以指定查找的目录,并且还可以利用额外的参数来找到最正确的文件名。
  • 权限与命令间的关系
    • 让用户进入某目录称为"可工作目录"的基本权限是什么:

      • 可使用的命令,cd;
      • 目录所需权限,至少需要具有x的权限;
      • 利用ls命令还需要r权限;
    • 让一个用户可以创建一个文件的基本权限是需要w;
  • 文件特殊权限: SUID, SGID, SBIT:
    • SUID只能用于二进制程序上,不能用在shell script上面;
    • SGID(Set GID),对二进制程序有用, 程序执行者对该程序来说要具有x的执行权限;
      • 执行者在执行的过程中将获得该程序用户组的支持;
    • SBIT(Sticky Bit)只针对目录有效;
    • 4位SUID,2位SGID,1为SBIT。

第八章

  • inode、block和superblock等文件系统;

    • super block记录此文件系统的整体信息,包括inode、block的总量、使用量和剩余量,以及文件系统的格式与相关信息;
    • inode记录文件属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码;
    • block实际记录文件的内容,若文件太大时,会占用多个block。
  • 索引式文件系统(indexed allocation), FAT格式的文件系统(每个block号码都记录在前一个block当中)。
  • 在文件系统中,文件系统最前面有一个启动扇区(boot sector),这个扇区可以安装引导装载程序。
    • 数据块(data block), 用来放置文件内容的地方。

      • 每个block上最多只能放置一个文件的数据;
      • inode table(inode 表格): 每个文件都会占用一个inode而已;
      • 总额: 将直接、间接、双间接、三间接加总。
    • Superblock(超级块):Superblock是记录整个文件系统相关信息的地方,没有Superblock就没有这个文件系统了。
      • File system Description(文件系统描述说明);
      • block bitmap(块对照表);
      • inode bitmap(inode 对照表);
      • dumpe2fs [-bh] 设备文件名,dumpe2fs可以查询到非常多的信息;
      • df这个命令可以调出目前挂载的设备;
      • ls -li可以查看文件所占用的inode号码。
    • 将inode table与data block称为数据存放区域。
  • 系统会不定时地讲内存中设置为Dirty的数据写回磁盘,以保持磁盘与内存数据的一致性。
  • 挂载点(mount point)一定是目录,该目录是进入该文件系统的入口。
  • 传统文件系统,日志文件系统, 网络文件系统:
    • ls -l /lib/modules/$(uname -r)/kernel/fs --- 查看Linux支持的文件系统有哪些。
    • cat /proc/filesystems系统目前已加载到内存中支持的文件系统;
    • Linux VFS(Virtual Filesystem Switch),整个Linux的系统都是通过一个虚拟文件系统的内核功能去读取文件系统,整个Linux认识的文件系统都是VFS进行管理,VFS会帮助用户做好读取的操作。
  • 文件系统的简单操作:
    • 磁盘的目录的内容: df, du;

      • df: 列出文件系统的整体磁盘使用量;
      • dh: 评估文件系统的磁盘使用量(常用于评估目录所占容量)。
    • 连接文件: ln, 硬连接(hard link,实际连接)和软连接(symbolic link, 符号连接);
      • 文件名只与目录有关,但文件内容必须由inode的记录来指向;
      • hard link只是在某个目录下新建一条文件名连接到某inode号码的关联记录而已;
      • hard link不能跨文件系统,不能连接到目录。
      • symbolic link就是在创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件名,相当于window下的快捷方式;
      • symbolic link所创建的文件未一个独立的新文件,所以会占用掉inode与block。
      • ln -sf 源文件 目标文件
  • 磁盘的分区、格式化、检验与挂载:
    • fdisk -l 设备名称;fdisk还可以直接秀出系统内的所有分区。
    • partprobe强制让内核重新找一次分区表;
    • 磁盘格式化: 文件系统的格式化为mkfs命令;
      • mkfs -t 文件系统格式 设备文件名
    • 磁盘监测: fsck,badblocks;
      • fsck [-t 文件系统] [-ACay] 设备名称
      • badblocks -[svm] 设备名称
    • 磁盘挂载与卸载:
      • 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
      • 单一目录不应该重复挂载多个文件系统;
      • 作为挂载点的目录理论上应该都是空目录。
      • mount -amount [-t 文件系统] [-L Label名] [-o 额外选项]
      • umount [-fn] 设备文件名或挂载点
    • 磁盘参数的修改:
      • 主设备代码(major),次设备代码(minor),通过mknod命令进行设置。
      • mknod 设备文件名 [bcp] [Major] [Minor];
      • e2label命令用于修改卷标;
      • e2label 设备名称 新的Label名称
      • tune2fs -l 设备代号
      • hdparm [-icdmXTt] 设备名称
  • 开机挂载:
    • 设置开机挂载可以在/etc/fstab中进行设置,(file system table).
    • 特殊设备loop挂载:
      • mount -o loop /home/loopdev /media/cdrom
    • 内存交换空间:
      • swap的功能就是在应付物理内存不足的情况下所造成的内存扩展记录的功能。
      • free可以检查swap空间的大小。
  • 太多小文件会造成非常多的磁盘空间浪费;
  • boot sector(启动扇区)与super block是独立的,第一个block内就含有一个boot sector与superblock。
  • GUN项目的parted命令也可以用于分区;
    • parted [设备] [命令 [参数]]

鸟哥Linux私房菜基础学习篇学习笔记1的更多相关文章

  1. 鸟哥Linux私房菜基础学习篇学习笔记3

    鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...

  2. 鸟哥Linux私房菜基础学习篇学习笔记2

    鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *. ...

  3. 《鸟哥Linux私房菜基础学习篇》命令索引

    在学习的过程,由于很多命令平时都用不着,因此做这个索引方便需要时查找.这包括了前两部分.主要是按页码顺序. P118 date:显示日期与时间 cal:显示日历 bc:计算器 P121 [Tab]:命 ...

  4. 鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

    本文总结了Linux操作系统来管理我们的硬盘和文件系统需要使用命令.当我们在系统中增加一个硬盘驱动器.什么是我们需要去通过这个硬盘就可以真正使用步骤?下面步骤: (1)对磁盘进行分区,新建能够使用的分 ...

  5. 鸟哥linux私房菜基础篇

    1)注销:exit2)指令太长:命令太长的时候,可以使用反斜杠 (\) 来跳脱[Enter]符号,使挃令连续到下一行3)系统语言显示和设置命令:echo $LANG,显示当前系统语言:简体中文zh_C ...

  6. 学习鸟哥linux私房菜--安装centos5.6(u盘安装,中文乱码)

    题头为"学习鸟哥Linux私房菜"的内容,均为博主在看鸟哥的Linux私房菜第三版的学习经历收获.以下正文: 鸟哥第一部分讲Linux规则与安装,看到第四章正式开始讲实际安装,于是 ...

  7. 鸟哥Linux私房菜知识汇总8至9章

    一看最近<鸟哥Linux私房菜>. 这是一个基本的书,万丈高楼平地起,学. 这是我整理的一些知识点.尽管非常基础. 希望和大家共同交流. 第8章 Linux磁盘与文件系统管理 一.Linu ...

  8. 鸟哥linux私房菜第6章笔记

    鸟哥linux私房菜第6章笔记 文件权限 修改 chgrp [-R] groupname filename //修改文件所属组 chown [-R] ownername[:groupname] fil ...

  9. 《鸟哥Linux私房菜》 全套视频和PDF资料—— 老段带你学鸟哥Linux视频课程

    <鸟哥的Linux私房菜-基础篇-服务器篇(第三版)>学习Linux极为经典的入门资料,但是还是很多同学难以坚持系统的看完整本书,最终以放弃而告终. 为了帮助大家更容易入门Linux,老段 ...

随机推荐

  1. Linux 内核里的数据结构:双向链表

    原文:https://blog.csdn.net/qq_33487044/article/details/78827260 双向链表 Linux 内核自己实现了双向链表,可以在 include/lin ...

  2. Leetcode 136 Single Number 仅出现一次的数字

    原题地址https://leetcode.com/problems/single-number/ 题目描述Given an array of integers, every element appea ...

  3. VS下个人认为比较实用的插件

    懒得打字了,直接贴图

  4. Uncaught TypeError: $(…).orgcharts is not a function

    调整js顺序没有解决,最后增加NoConflict解决,注意红色部分 function initorgcharts() { var $jq = jQuery.noConflict(true); org ...

  5. 调用waitpid的SIGCHLD信号处理函数

    #include <stdio.h> #include <sys/wait.h> void sig_chld(int signo) { pid_t pid; int stat; ...

  6. Python安全 - 从SSRF到命令执行惨案

    前两天遇到的一个问题,起源是在某个数据包里看到url=这个关键字,当时第一想到会不会有SSRF漏洞. 以前乌云上有很多从SSRF打到内网并执行命令的案例,比如有通过SSRF+S2-016漏洞漫游内网的 ...

  7. MYSQL ERROR 1045 (28000) Access denied for user (using password YES)问题的解决

    我的Linux是Centos6.7的版本,本机上Mysql突然怎么连接都进不去 报错:MYSQL ERROR 1045 (28000) Access denied for user (using pa ...

  8. 迅为-IMX6开发板十层PCB制造,24小时开机测试,满负荷测试运行俩天,没有死机

    迅为-IMX6开发板——工业主板的优势 1.元器件 IMX6工业主板选料,选用经过长时间.高要求验证元器件,保证产品在复杂条件下,耐高温.抗潮湿等工业场合的需求. 2.PCB设计 IMX6工业主板采用 ...

  9. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week3, Hyperparameter tuning, Batch Normalization and Programming Frameworks

    Tuning process 下图中的需要tune的parameter的先后顺序, 红色>黄色>紫色,其他基本不会tune. 先讲到怎么选hyperparameter, 需要随机选取(sa ...

  10. CDH安装报错 Monitor-HostMonitor throttling_logger ERROR ntpq: ntpq -np: not synchronized to any server

    1 没有安装ntp同步服务 所有机器统一时区,确认所有机器配置一致  vim /etc/sysconfig/clock ntp服务器配置 ln -sf /usr/share/zoneinfo/Asia ...