Linux就该这么学-学习笔记

目录

  • 第二章Linux命令
    • 常用系统命令
    • 系统状态检测命令
    • 工作目录切换命令
    • 文本编辑命令
    • 文件目录管理命令
    • 打包压缩和搜索命令
  • 第三章.管道符、重定向与环境变量
    • 输入与输出重定向
    • 管道命令符
    • 命令行通配符 *
    • 转义字符
    • 重要的环境变量
  • 第四章.Vim编译器与Shell命令脚本
    • Vim文本编辑器
    • Shell
    • 计划任务服务程序
  • 第五章.用户身份与文件权限
    • 用户身份与能力
    • 文件权限与归属
    • 文件的特殊权限
    • 文件隐藏属性
    • 文件访问控制列表ACL
    • su命令与sudo服务
  • 第六章.存储结构与磁盘划分
    • 物理设备命名规则
    • 文件系统与数据资料
    • 挂载硬件设备
    • 添加交换分区
    • 磁盘容量配额
    • 软硬方式链接
  • 第七章.使用RAID与LVM磁盘陈列技术
    • RAID 独立冗余磁盘阵列
    • LVM逻辑卷管理器
  • 第八章.iptables与firewall防火墙
    • iptables
      • 策略与规则链
      • iptables命令
      • firewall
    • 服务的访问控制列表

第二章Linux命令

常用系统命令

  • echo : 相当于cout,在终端上输出
  • data : 获取当前系统时间
  • reboot :重启
  • powoff : 关闭系统
  • wget : 从终端中下载网络文件
  • ps : 查看系统进程
  • top :相当于任务管理器, 查看进程运行状态
  • pidof : 查看某个进程的ipd
  • kill : 杀死某个pid进程
  • killall : 终止某个服务对应的进程

系统状态检测命令

  • ifconfig : 获取网卡和网络状态信息
  • uname : 查看系统内核和版本信息
  • uptime : 显示系统负载信息
  • free : 查看内存使用信息
  • who : 查看当前登录用户信息
  • last : 查看系统登录记录
  • history : 查看执行命令记录, 用![序号]执行某个序号命令

工作目录切换命令

  • pwd : 显示当前路径

文本编辑命令

  • cat : 查看较少文本信息, -n显示行号
  • more : 查看较多文本信息
  • head : 查看前n行, 与-n搭配
  • tail : 查看后n行
  • tr : 替换文本信息, tr [原始字符] [目标字符] ,用cat + 管道搭配
  • wc : 统计文本行数, 字数, 字节数
  • stat : 查看文件具体存储信息和时间等信息
  • cut : 按列提取数据
  • diff : 查看两文件差异

文件目录管理命令

  • touch : 创建空文件或设置文件时间
  • mkdir : 创建空目录
  • cp : 复制文件或目录
  • mv : 剪切或将文件重命名
  • rm : 删除文件
  • dd : 按指定大小和个数数据来复制文件内容
  • file : 查看文件文件类型

打包压缩和搜索命令

  • tar : 打包或压缩,一般压缩tar -czvf 名称.tar.gz, 解压tar -xzvf 名称.tar.gz
  • grep : 文本中执行关键词搜索
  • find : 按条件查找文件,

第三章.管道符、重定向与环境变量

输入与输出重定向

输入重定向 : 把文件导入到命令中
标准输入重定向STDIN,文件描述符为0,默认从键盘输入,也可从其他文件或命令输入
Linux就该这么学-学习笔记_第1张图片

输出重定向 : 把原本要输出到屏幕的数据信息写入指定文件
标准输出重定向STDOUT,文件描述符为1, 默认输出到屏幕
错误输出重定向STDERR,文件描述符为2,默认输出到屏幕
Linux就该这么学-学习笔记_第2张图片

管道命令符

A命令 | B命令 : 把前一个命令输出到屏幕的数据作为B命令的标准输入

命令行通配符 *

代表匹配0个或多个字符, ?表示单个字符, [0-9]代表匹配0-9单个数字的字符,[abc]表示匹配abc三个字符中任意一个字符
如: ll -l /etc/abc
则会列出所有abc开头的文件

转义字符

Linux就该这么学-学习笔记_第3张图片

重要的环境变量

Linux中变量一般都是大写的
命令在Linux的执行步骤

  • 判断用户是绝对路径还是相对路径方式输入命令, 绝对路径就直接执行
  • 检查是否是别名命令
  • Bash解释器判断输入的是内部还是外部命令, 内部命令是解释器内部指令,会直接执行; 外部命令交由下一步
  • 系统在多个路径中寻找用户输入的命令文件, 定义这些路径叫PATH, 告诉Bash解释器待执行命令存放位置,然后Bash解释器会在这些位置逐个寻找

Linux就该这么学-学习笔记_第4张图片

第四章.Vim编译器与Shell命令脚本

Vim文本编辑器

三种模式

  • 命令模式
  • 输入模式
  • 末行模式
    Linux就该这么学-学习笔记_第5张图片
    Linux就该这么学-学习笔记_第6张图片
    Linux就该这么学-学习笔记_第7张图片

Shell

接受参数 ./example.sh A0 A1 A2 …
则在example.sh中可用 $0 $1 $2 …来使用
$? 表示上一次命令的返回值

条件测试语句 [空格 条件表达式 空格] 成功返回1 失败返回0
Linux就该这么学-学习笔记_第8张图片
Linux就该这么学-学习笔记_第9张图片
Linux就该这么学-学习笔记_第10张图片
流程控制

if  [空格 条件表达式 空格]  ;  then 
  xxxxx
elif [条件] ;  then 
 xxx
else 
 xxxx
fi

for 循环

for 变量名 in 取值列表
do
   	命令序列
done

while循环

while 条件
do
	  操作
done

case


计划任务服务程序

  • 一次执行计划
    只执行一次,临时作用,
at -l 显示所有计划
at 11.05  在11.05执行, 之后输入执行内容, ctrl + D结束
也可以利用管道直接输入到计划中
echo "test" | at 11.05
删除计划atrm [序号]
  • 周期性执行任务
    创建计划crontab -e , 查看当前计划 -l, 删除 -r
    Linux就该这么学-学习笔记_第11张图片

第五章.用户身份与文件权限

用户身份与能力

管理员UID为0: 系统的管理员用户
系统用户UID为1-999
普通用户UID从1000开始
用户组: 为组内用户提供统一权限或任务

创建用户userad [选项] 用户名
默认用户家目录为/home, 默认Shell解释器为/bin/bash, 默认创建于用户同名的基本用户组
Linux就该这么学-学习笔记_第12张图片

groupadd创建用户组

usermod命令
修改用户属性,Linux万事万物皆为文件,那么修改用户就是修改用户文件
Linux就该这么学-学习笔记_第13张图片
Linux就该这么学-学习笔记_第14张图片

passwd [选项] [用户名]
修改用户密码,过期时间,认证信息等
普通用户只能修改自己的密码, 而root管理员可以修改任何人密码而且不需要验证旧密码
Linux就该这么学-学习笔记_第15张图片

userdel [选项] [用户名]
删除用户
Linux就该这么学-学习笔记_第16张图片

文件权限与归属

Linux的文件类型字符
Linux就该这么学-学习笔记_第17张图片

目录的读写执行, 可读取目录列表, 可在目录新增删除文件, 能进入文件
文件的rwx, 读4 写2 执行1
Linux就该这么学-学习笔记_第18张图片
Linux就该这么学-学习笔记_第19张图片

文件的特殊权限

SUID, 对二进制程序设置的特殊权限, 让程序执行者拥有所属者的权限
x位变成s或S

SGIN

  • 让执行者临时拥有文件所属组权限,对拥有执行权限的二进制程序进行设置
  • 在某个目录中创建的文件自动继承该目录的用户组

chmod 设置文件或目录权限
chown 设置文件或目录所属组, 对于目录加 -R表示递归处理

SBIT
确保用户只能删除自己的文件
当目录被设置后执行部分都为t/T
chmod o+t 表示设置SBIT位

文件隐藏属性

chattr [参数] 文件
如果要添加隐藏参数 +参数, 某个隐藏参数移除 -参数
Linux就该这么学-学习笔记_第20张图片
Linux就该这么学-学习笔记_第21张图片

lsattr [参数] 文件
显示文件隐藏权限

文件访问控制列表ACL

对某用户单独的权限访问控制

setfacl [参数] 文件名称
用户管理文件的ACL规则
对目录-R. 对普通文件 -m , 删除某文件ACL -b
Linux就该这么学-学习笔记_第22张图片
有设置ACL的在ll列举文件后 后面的.变成+

getfacl命令
查看ACL

su命令与sudo服务

su 切换用户 , su后加个 - 表示完全切到新用户,把环境变量信息也变更为新用户相应信息, 建议加上
sudo给普通用户额外权限来完成root才能完成的任务
sudo [参数] 命令
Linux就该这么学-学习笔记_第23张图片
Linux就该这么学-学习笔记_第24张图片

第六章.存储结构与磁盘划分

Linux目录Linux就该这么学-学习笔记_第25张图片
Linux就该这么学-学习笔记_第26张图片

物理设备命名规则

Linux就该这么学-学习笔记_第27张图片
系统硬盘一般以/dev/sd 开头 之后用a-p代表16个不同硬盘 , abcd是由内核识别顺序决定的而非插槽位置
关于分区,sda3不是第三分区的意思而是编号为3的分区
Linux就该这么学-学习笔记_第28张图片
/dev/sda5意思是系统识别到的第一块硬盘设备中分区编号为5的逻辑分区设备文件

硬盘由大量扇区组成, 每个扇区512字节, 第一个扇区最重要 包含主引导记录和分区表信息,结束符占2个字符
Linux就该这么学-学习笔记_第29张图片
分区表中每记录一个分区就要16个字节, 为了解决分区不够的问题,往往会拿出一个分区的大小作为指向扩展分区,那么就有3个主分区和1个扩展分区, 扩展分区也能按逻辑创造分区
Linux就该这么学-学习笔记_第30张图片

文件系统与数据资料

Linux支持数十种文件系统
Ext3: 日志文件系统, 宕机防止数据丢失,并自动修复数据不一致错误,
Ext4: 3的改进版本,能够有无限多的子目录, 能批量分配block块,极大提高读写效率
XFS: 高性能日志文件系统, 快速恢复被破坏文件

linux中有个super block 硬盘地图, linux并不是把所有文件内容直接写入到这个硬盘地图中, 而是把每个文件权限和属性记录在inode中, 每个文件占用一个独立的inode表格, 该表格大小默认为128字节,记录着如下信息Linux就该这么学-学习笔记_第31张图片

文件实际内容存在block中,大小可以是1KB,2KB,4KB, 一个inode默认大小为128B(Ext3), 记录一个block需要耗费4B, 当文件的inode写满后,linux会自动分配一个block块,专门用于像inode那样记录其他block块的信息, 这样把各个block块内容串到一起,就能让用户读到完整的文件内容

linux为了用户在读取写入时不用关心底层结构,提供VFS虚拟文件系统接口, 使用户在操作文件时就是统一对这个虚拟文件系统进行操作
Linux就该这么学-学习笔记_第32张图片

挂载硬件设备

挂载: 用户需要用到硬盘设备或分区中数据时,需要先将其与已存在的目录相关联

命令mount 文件系统 挂载目录
用于挂载文件系统,挂载是使用硬件设备前最后一步操作
Linux就该这么学-学习笔记_第33张图片
此时挂载都是暂时挂载, 重启便会失效, 如果要永久的自动关联
需要按如下格式填写在/etc/fstab文件中
Linux就该这么学-学习笔记_第34张图片
Linux就该这么学-学习笔记_第35张图片

umount [挂载点/设备文件] 撤销已挂载设备文件

fdisk命令管理磁盘分区
Linux就该这么学-学习笔记_第36张图片

du命令
查看文件数据占用量

添加交换分区

通过硬盘中预先划分一定空间,然后将内存中暂时不常用数据临时放到硬盘中, 解决内存不足问题
mkswap对新建主分区进行格式化操作

磁盘容量配额

管理员限制某个用户或用户组可以使用最大硬盘空间或最大文件个数,一旦到达最大值就不允许继续使用

可使用quota命令进行磁盘容量配额管理,从而限制用户硬盘可用或所创建的最大文件个数
还有软限制和硬限制功能
软限制:到达软限额会提示用户,但仍允许用户在限定额度内继续使用
硬限制:到达硬限额会提示用户,且强制终止用户操作

xfs_quota命令
专门针对xfs文件系统来管理quota磁盘容量配额服务的命令

edquota命令
编辑用户的quota配额限制
当用户使用quota磁盘容量配额限制后,可以用edquota按需修改限额的数值

软硬方式链接

硬链接: 指向原始文件inode的指针,系统不会新分配一个inode和文件, 所以硬链接文件和原始文件其实是同一个文件,只是名字不同
每添加一个硬链接 inode就会+1. 只有inode为0的时候才算彻底删除
不能跨分区对目录文件进行链接
即使原始文件删除,也能通过硬链接连接

软链接(符号链接) : 仅仅包含所链接文件的路径名,能跨文件系统和链接分区,原始文件删除后,链接文件也失效,类似快捷方式

ln命令用来创建链接文件
ln [选项] 目标
Linux就该这么学-学习笔记_第37张图片

第七章.使用RAID与LVM磁盘陈列技术

RAID 独立冗余磁盘阵列

把多个硬盘设备组合成一个容量更大,安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到数据冗余备份效果
降低丢失数据几率,提高硬盘读写速度

LVM逻辑卷管理器

硬盘分好区域或部署为RAID磁盘阵列后,就不能修改硬盘分区大小了,这个时候就需要用LVM来对硬盘资源动态调整
在硬盘分区和文件系统之间添加逻辑层,它提供一个抽象卷组,能把多块硬盘进行卷组合并
Linux就该这么学-学习笔记_第38张图片

随着业务增加,数据量会变大,原有硬盘分区可用容量越来越少,那么可以通过部署LVM来解决上述问题,部署LVM时,需要逐个配置物理卷,卷组和逻辑卷
Linux就该这么学-学习笔记_第39张图片

第八章.iptables与firewall防火墙

在Linux中有iptables和firewall防火墙, 其实,iptables 与 firewalld 都不是真正的防火墙,
它们都只是用来定义防火墙策略的防火墙管理工具而已
iptables将配置的防火墙策略交由内核层面的netfilter 网络过滤器来处理
firewalld 服务则是把配置的防火墙策略交由内核层面的 nftables 包过滤框架来处理。

iptables

在早期的 Linux 系统中,默认使用的是 iptables 防火墙管理服务来配置防火墙

策略与规则链

防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作
并去执行匹配项中定义的行为(即放行或阻止)
因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误

防火墙策略规则的设置有两种:一种是“通”(即放行),一种是“堵”(即阻止)
当防火墙的默认策略为拒绝时(堵),就要设置允许规则(通)
如果防火墙的默认策略为允许时,就要设置拒绝规则

规则:iptables 把用于处理或过滤流量的策略条目
多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类

具体条目
Linux就该这么学-学习笔记_第40张图片

匹配到流量还需要选择采取措施
ACCEPT(允许流量通过)、REJECT(拒绝流量通过)
LOG(记录日志信息)、DROP(拒绝流量通过)
DROP是丢弃不响应,REJECT是拒绝并向对方说明情况

iptables命令

Linux就该这么学-学习笔记_第41张图片

firewall

拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。
加入区域概念,区域就是 firewalld 预先准备了几套防火墙策略集合(策略模板),用户可
以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换
Linux就该这么学-学习笔记_第42张图片

服务的访问控制列表

TCP Wrappers 服务则是能允许或禁止 Linux 系统提供服务的防火墙,从而在更高层面保护了 Linux 系统的安全运行

TCP Wrappers 服务的防火墙策略由两个控制列表文件所控制,用户可以编辑允许控制列表文件来放行对服务的请求流量,也可以编辑拒绝控制列表文件来阻止对服务的请求流量

控制列表文件修改后会立即生效
系统将会先检查允许控制列表文件(/etc/hosts.allow),如果匹配到相应的允许策略则放行流量;
如果没有匹配,则去进一步匹配拒绝控制列表文件(/etc/hosts.deny),若找到匹配项则拒绝该流量。
如果这两个文件全都没有匹配到,则默认放行流量。
Linux就该这么学-学习笔记_第43张图片

你可能感兴趣的:(Linux学习)