读书目的:了解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. 如何使用OSI模型排除故障
  2. 如何养成一个习惯(持续更新)
  3. 【ARM】Load Store指令
  4. SAP gateway 后台系统的 OData service 服务探测机制实现原理
  5. redux中间件的用法
  6. jeecg集成实现websocket
  7. php调用mysql加密函数_PHP MySQL应用中使用XOR运算加密算法分享
  8. php postgresql win,Windows PHP上的PostgreSQL问题
  9. [CF1137E]Train Car Selection[维护凸壳]
  10. iptables小结
  11. php 接口安全性,开发者,服务提供商
  12. 斐讯k2路由器v22.4.6.3版本刷breed刷华硕固件方法
  13. 组态王与DLT645-2007电能表通讯调试总结
  14. python调用nmap扫描局域网存活主机和端口
  15. 电磁兼容学习-电磁干扰三要素
  16. AMP Roadshow技术分享路演中国专场报名
  17. 20172328 2018-2019《Java软件结构与数据结构》第三周学习总结
  18. HOOK技术四-插件中Activity启动实战
  19. 学会计学java,Java 属于以下哪种语言?_学小易找答案
  20. 经典100句——人生与社会

热门文章

  1. linux edb使用手册,反汇编及linux下edb的下载
  2. AS400数据库事务处理机制
  3. 为什么序列存在单位根是非平稳时间序列?
  4. 一个C程序辨别系统是64位还是32位
  5. 主流电脑配置的通用引导文件,包含CLOVER与OpenCorer双引导
  6. 彩超计算机录入员招聘,招聘超声科录入员,北京朝阳急诊抢救中心
  7. 推荐计算机专业毕业好投的一些知名出版社旗下闭源期刊
  8. UPnP 体系架构和基本原理 —— Linux SDK for UPnP Devices
  9. msbuild 语法_如何通过命令行 msbuild 编译项目
  10. python类变量和实例变量的区别