读书目的:了解linux操作系统主要功能框架,为运用这些功能打基础
读书收获:一个操作系统最基本的功能就是要可以使用上面的文件,所以对操作系统的运用必然要学习磁盘管理文件管理,如果事务繁多可以利用脚本自动处理功能,然后就是账号管理软件安装,其他功能若非系统管理员稍微了解即可。试想作为一个windows用户,经常使用的功能不就是上面几种吗

心得:对于一个庞大的系统,必须:明确目的抓重点,再去学习

文件、目录、磁盘格式

1.文件权限&目录配置

对文件的操作不外乎执行创建删除几种操作,而文件权限就是对文件的这几种操作的权限

1.1文件权限:

  • 属主、属组、其他用户的可读(4)可写(2)可执行(1)权限
  • 文件默认权限:umask
  • 文件隐藏属性:chattr lsattr
  • 文件特殊权限:SUID(4) SGID(3) SBIT(1)

1.2文件配置:

  • /bin
  • /boot(内核引导位置)
  • /dev(设备目录)
  • /etc(配置文件及脚本)
  • /home(普通用户主目录)
  • /lib(函数库、内核模块)
  • /media
  • /mnt(临时挂载)
  • /opt(第三方软件)
  • /root(root用户主目录)
  • /sbin
  • /srv(服务数据目录)
  • /tmp(进程暂时放置文件的目录)
  • /proc(虚拟文件系统,存放进程信息)
  • /sys(虚拟文件系统,记录与内核相关的信息)
  • /usr(系统数据,类似Windows下C:\Windows\和C:\Program files\的综合体)
  • /var(缓存、日志文件)

2.文件&目录管理

一切皆文件,对文件的管理操作不外乎查看(r)修改(w)创建删除查询;文件权限是对文件可管理的程度

2.1文件目录管理

  • ls cp rm mv basename dirname

2.2文件内容查询

  • cat head tail od

2.3查看文件类型

  • file

2.4文件位置查询:

  • which(寻找执行文件)
  • whereis(寻找普通文件)
  • find(寻找普通文件):find [path] [option] [action]

3.磁盘管理&文件系统管理

磁盘结构:bootsector+n个(superblock+inode+blocks)
磁盘管理即分区管理,分区信息存入bootsector中
文件系统即superblock+inode+blocks
文件系统是在格式化后产生的,挂在后才能使用

3.1磁盘管理

  • 分区:parted
  • 格式化:mkfs.ext4 mkswap(启动swap:swapon [dev];查看swap:swapon -s)
  • 检验:fsck(检验文件系统是否出错) badblocks(检验硬盘扇区坏块)
  • 挂载&卸载:mount&umount
  • 设置开机挂载:/etc/fstab
  • 磁盘参数修改
    • mknod:改变设备类型
    • e2label :修改卷标
    • tune2fs :读块数据、文件系统转换、改卷标

3.2文件系统管理

  • 文件系统结构

    • superblock:记录此文件系统的整体信息(inode/block总量、使用量、剩余量、文件系统格式相关信息)
    • inode:记录文件属性和数据所在的block号码
    • block:记录文件内容
  • 文件系统管理
    • 查询容量:df(磁盘使用量)、du(文件大小)
    • 文件链接:ln [目标文件] [链接文件]

4.文件打包压缩&文件系统备份

打包压缩节省文件占用空间,便于传输;备份即完全拷贝

4.1压缩、查看、解压

  • tar -jcv -f filename.tar.bz2 [目标文件]
  • tar -jtv -f filename.tar.bz2
  • tar-jxv -f filename.tar.bz2 -C [路径]

4.2备份

  • dd:备份完整的分区或磁盘

shell与shell script

5.bash

shell作为一个内核与用户交互的平台,提供内置命令(也可以使用外部命令)来与内核交互

5.1bash shell的功能

  • 命令记忆history
  • 命令&文件名补全
  • 命令别名alias
  • 作业控制、前后台控制
  • 程序脚本shell script
  • 通配符

5.2变量

  • 环境变量:用一组符号替换一串保留的数据,定义在配置文件中(全局变量)
  • 自定义变量:通过export定义的变量(局部变量)

5.3数据流重定向

  • 通过> 2> <之类的符号将输出的信息转到其他文件或设备中去

5.4管道命令

  • 选取:grep
  • 排序:sort
  • 双向重定向:tee
  • 字符转换:tr
  • 切割:split
  • 参数代换:xargs(用于不支持管道的命令使用管道功能)

6.正则表达式

一套搜索文本字符串的规则,通过grep、sed、vim等工具实现,用于查找、删除、替换文本中的字符串,以行或段(awk)为单位

6.1正则表达式

  • 处理字符串的方法(以行为单位),通过符号辅助实现查找、删除、替换特定字符串的功能

6.2正则表达式&通配符

  • 正则表达式用于文本文件中的字符串处理,通配符用于shell 命令行中的字符串处理

6.3常用的正则表达式工具:grep、sed、vim

  • grep

    • 查询:grep [-A] [-B] [-n] [–color=auto] ‘字符串’ filename
  • sed(加-i参数会直接修改源文件内容)
    • 删除:sed ‘2, 5d’ filename
    • 增加:sed ‘2a hello world’ filename
    • 替换:sed ‘s/old/new/g’ filename

6.4文件格式化处理

  • awk(以段为单位,将数据重新整理输出)

    • awk ‘condition1 {action1} condition2 {action2} … ’ filename

7.shell script

shell脚本属于解释型语言,语言结构不外乎四部分(数据类型、运算符、流程控制、函数封装),shell自带脚本编译器

7.1数据类型

  • 字符串类型
  • 数值型

7.2运算符

  • 普通运算符
  • $[ ]用于运算数值
  • $( )用于提取变量值
  • 文件类型判断
    • -e 文件名是否存在
    • -f 文件名是否存在且为文件
    • -d 文件名是否存在且为目录
    • -b -c -S -p -L
  • 文件权限判断
    • -r -w -x
    • -u -g -k (SUID SGID SBIT)
    • -s 文件名是否存在且有内容
  • 文件比较
    • -nt new than
    • -ot old than
    • -ef equal file(判断硬链接)
  • 整数判断
    • -eq ==
    • -ne !=
    • -gt >
    • -lt <
    • -ge >=
    • -le <=
  • 字符串判断(可以用于整数判断)
    • ==
    • !=

7.3流程控制

  • 分支
#if分支if [ $A -lt $B ]; thenecho "$A < $B"elif [ $a -gt $B ]; thenecho "$A > $B"elseecho "$A =$B"
#case分支case $A in"hello")echo hello;;"hi")echo hi;;*)echo "input hello or hi"esac
  • 循环
#while循环while [ $1 -ne 55 ]; doecho "input a number again"doneecho "you guess it"
#for循环for $I in 1 2 3 4 5 6 7 8 9doecho $Idone
#================================================for ((I=1; I<10; ++I));doecho $Idone

7.4函数或封装

    function printit() {echo -n "your choice is "}case $1 in"one")printit; echo $1 | tr 'a-z' 'A-Z';;"two")printit; echo $1 | tr 'a-z; 'A-Z';;*)echo "$(basename $0) {one|two}";;esac

linux使用者管理

8.账号管理&ACL权限设置

管理账号无非新建、修改、删除
账号:具有对文件不同的访问权限
用户组:为了扩展对文件的访问权限
ACL:进一步扩展用户对文件的访问权限

8.1账号&用户组

  • UID

    • 0 系统管理员
    • 1-499 系统账户
    • 500-65535 普通账户
  • /etc/passwd(账号名:密码:UID:GID:信息说明:主文件夹:shell)
  • /etc/shadow(账号名:密码:密码修改时间:密码不可变天数:密码更改周期:密码到期提前警告天数:密码过期宽限时间:账号失效日期:保留)
  • /etc/group(用户组名:用户组密码:GID:组内账号名)
  • /etc/gshadow

8.2账号管理

  • 新增用户:useradd [-u UID] [-g init用户组] [-G 次要用户组] [-r系统用户] [-s shell] 账号名
  • 修改用户:usermod [-ugG] 账号
  • 删除用户:userdel [-r删除主文件夹] 账号
  • 新增用户组:groupadd [-g GID] [-r系统用户组] 组名
  • 修改用户组:groupmod [-g GID] [-n 组名]
  • 删除用户组:groupdel 组名

8.3ACL权限规划

  • Access Control List,针对单一用户、单一文件或目录来进行rwx权限设置

8.4用户特殊shell

  • /sbin/nologin,不能通过shell登录主机,但是可以使用主机资源

8.5PAM模块

  • 一套具有验证机制的API,只要用户将验证阶段的需求告知PAM后,PAM就能回报用户验证结果

8.6用户信息传递

  • 查询用户:who、last、lastlog
  • 用户对谈:write、mesg、wall、mail

9.磁盘配额&高级文件系统管理

磁盘可分成多个区,多个磁盘或区也可以组成一个大磁盘(逻辑卷),文件系统在格式化磁盘或分区产生,在线扩展文件系统属于高级文件系统管理

9.1磁盘配额(quota)

多个用户使用一个磁盘时,给多个用户分配可使用的空间大小

9.2软件磁盘阵列(RAID)

多个等容磁盘组合成的一个大磁盘,数据以并列方式存取(提高磁盘读写性能)

  • 创建软RAID
    mdadm –create –auto=yes /dev/md0 –level=5 \
    –raid-devices=4 –spare-devices=1 /dev/sda{1, 2, 3, 4, 5}
  • 查看软RAID
    mdadm –detail /dev/md0
  • 替换故障磁盘
    mdadm -manage /dev/md0 –add /dev/sda6 –remove /dev/sda2
  • 关闭软RAID
    mdadm –stop /dev/md0

9.3逻辑卷管理器(LVM)

  • 物理卷:磁盘或分区
    pvcreate 磁盘/分区
    pvdisplay
    pvremove 磁盘/分区
  • 卷组:由磁盘或分区组成的一个物理卷组
    vgcreate [ -s N[mgy] ] VG名 PV名
    vgdisplay
    vgextend VG名 PV名
    vgreduce VG名 PV名
    vgremove VG名
  • 逻辑卷:在卷组上分出来的逻辑上的卷
    lvcreate [ -L N[mgt] ] [-n LV名] VG名
    lvdisplay
    lvresize -l +N(PE) LV名 (增加了磁盘容量,没有增加文件系统容量)
    dumpe2fs [device] (查看文件系统信息)
    resize2fs [-f] [device] [size]
    lvremove LV名
  • 快照功能
    lvcreate -l N(PE) -s 快照PV名 PV名

10.例行性工作

每隔一定周期要办的事项,与突发性工作相对

10.1仅执行一次的工作调度

  • 启动atd服务
  • /etc/at.allow /etc/at.deny
  • at [-mldv] TIME

10.2循环执行的工作调度

  • /etc/cron.allow /etc/cron.allow
  • crontab [-u username] [-l|-e|-r]
  • /etc/crontab

10.3可唤醒停机期间的工作任务

  • anacron
  • /etc/anacron

11.程序管理&SELinux

进程处理的事项叫工作分为前后台,进程管理也包含了工作管理
进程/工作创建、进程/工作查看、进程/工作删除
SELinux:主体进程–>SELinux(策略规则)–>安全上下文(拒绝访问说明)–>目标数据

工作管理

在一个shell中进行多个任务

  • & 让命令后台执行
  • ctrl + z 将当前的工作放到后台并暂停
  • jobs 查看目前后台工作状态
  • fg %jobnumber 将后台工作拿到前台
  • bg %jobnumber 将后台暂停的工作运行
  • kill -signal %n 管理后台的工作

进程管理

  • 创建子进程 fork-and-exec流程
  • 进程查看 ps pstree top
  • 进程优先级 nice

SELinux

SELinux(Eecurity Enhanced Linux)重点在于主体进程能否访问目标文件资源,这中间涉及到策略规则,以及实际的安全上下文类型

12.系统服务

常驻内存的服务进程,用于响应请求信息
一般涉及网络请求用netstat -tlup命令查看

12.1stand alone(可单独启动的服务)

stand alone的daemon响应速度较快,常驻内存(如:httpd vsftpd)

  • service 服务名 {-start|-status|-stop} (/etc/init.d/)
  • service –status-all

12.2super daemon(通过xinetd统一管理的服务)

xinetd也是一个statnd alone服务,它可以管理其他服务,具有多线程处理模式和防火墙功能

  • 有客户端请求则唤醒相应服务(telnet),请求结束则关闭服务释放资源(xinetd)
  • service xinet.d {-start|-status|-stop}

13.日志文件

日志记录服务syslogd收集系统中进程发过来的信息(记录进程运行期间的状态),写入/var/log/目录的相应文件中(messages记录的信息最多)

linux系统管理员

14.启动流程、模块管理、loader

14.1启动流程

BIOS–>MBR(bootLoader)–>kernel–>init–>/etc/rc.d/rc.sysinit–>/etc/inittab(run-level)–>/etc/rc.d/rc.local–>login–>shell

14.2模块管理

加载:insmod
查看:lsmod
卸载:rmmod

14.3loader

stage1:执行boot loader主程序
stage2:主程序加载配置文件(/boot/grub/*)

  • default=0:默认启动第一项
  • timeout=5:超时时间(自动选择)
  • splashimage=(hd0,0) /grub/splash.xpm.gz:启动背景图片
  • hiddenmenu:启动隐藏菜单
  • root:内核文件放置的分区
  • kernel:内核文件及设置(vmlinuz压缩的可执行内核文件)
  • initrd:压缩的根目录文件(提供USB SATA SCSI等驱动)

15.系统设置工具&硬件检测

15.1系统设置工具setup

  • 用户身份验证设置:一个账号登陆多台主机
  • 网络配置设置
  • 防火墙设置
  • 键盘形式设置
  • 系统服务的启动设置

15.2硬件检测

  • lspci
  • lsusb
  • iostat

16.rpm、yum

安装 rpm -ivh xxx.pkg 或 yum install xxx
查看 rpm -qa 或 yum list xxx
删除 rpm -e xxx && rpm –rebuilddb 或 yum remove xxx

17.备份策略

增量备份:完整备份后,每一次备份都是基于与前一次备份的差异而备份的
差异备份:完整备份后,每一次本分都是基于与完整备份的差异而备份的
备份工具:dd cpio dump/restore

《鸟哥linux私房菜》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. python捕获异常后处理_python异常捕获处理
  2. 30+的程序猿,路在何方?
  3. 从严把控_精准把控 推动从严治党走深走实
  4. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)...
  5. 一文攻破共用体-C语言
  6. ALHLS:Apple低延迟HLS技术
  7. 1 MM配置-企业结构-定义-定义评估级别
  8. javaScript一种优化模式-初始化时分支
  9. 《C++ Primer》关于自增自减操作符的描述错误
  10. php 面向对象进阶,PHP面向对象进阶设计模式:解释器模式使用实例
  11. nas918+支持的cpu_cpu拷机软件推荐:cpu烤机用什么软件
  12. jenkins调用VS201X
  13. 【rzxt】详细了解taskmgr.exe进程的基本信息
  14. Linux内核内存管理(2):固定映射地址(fixmap)和输入输出重映射(ioremap)
  15. 最新vue实战视屏 vue2.x thinkPHP5.0后台 nodejs+mong0DB
  16. CVS投中app数据采集
  17. 2021年化工自动化控制仪表考试报名及化工自动化控制仪表新版试题
  18. NAG: Network for Adversary Generation 笔记
  19. 最优运输(Optimal Transfort):从理论到填补的应用
  20. 列主元素消去法的Matlab实现

热门文章

  1. 月活超1.5亿背后,张一鸣在用资本催熟抖音
  2. 计算机数值分析-非线性方程求根-08
  3. 远程教育在线考试系统
  4. gtp6 linux 启动_gtp6
  5. Pillow lacks the JPEG 2000 plugin
  6. java计算机毕业设计大学生学籍管理系统源码+系统+lw文档+mysql数据库+部署
  7. 语音 视频 质量测试软件,DxOMARK官方发布视频,了解如何测试手机音频质量
  8. 项目中 搭建 cscope 使用环境
  9. Veins/OMNeT/SUMO:TraCI的getRoadId()方法不能判断junction
  10. 蓝桥杯:小明用积木搭了一个城堡(积木)