目录
该文章适合初学并且已经学过一次的同学进行查缺补漏,全是干货,没有过的花哨的注释及扩展,有的全是精华,也是我个人觉得比较全面的复习资料,怕遗忘就收藏着时不时翻看一下,以下内容是绝对绝对绝对会被你使用到的。
第一章 文件和用户管理:
-
Linux 目录
/ 根
bin 执行命令
boot 启动目录
dev 设备、硬件
etc 配置文件
home 用户文件
root 超级管理员
run 运行文件
sbin 超管命令
tmp 临时目录
usr 应用程序
var 日志
-
命令
ls 列出 文件类型 -普通文件
d目录文件(蓝色)
ls -l 详细列出
cd 改变目录 cd绝对路径 cd /home/aaa
cd相对路径 cd ./aaa .代表当前路径 ..代表上一级目录 ../../上二级目录
pwd 打印当前路径
touch 创建文件 touch 路径和名字
mkdir 创建目录 mkdir 路径和目录名
连创目录 mkdir -p 路径和名字 (-p 父系)
创多个目录 mkdir /home/{dir1,dir2}
cp 复制 cp -r 源文件路径 目标文件夹
mv 移动 mv 源文件路径 目标文件路径
移动并改名 mv 源文件路径 目标文件路径新名字
rm 删除 rm-rf 文件或目录的路径
cat 查看文件内容 cat 文件路径
head 查看文件内容头部 head -3 文件路径
tail 查看文件内容尾部
grep 过滤关键字
more 翻页
-
vim 修改文件内容
i切换输入模式 esc切换命令行模式 :进入末行模式 ;wq保存并退出
文件编辑命令 y 复制行 d 删除行 p 粘贴行 x 删除字符 u撤销
光标定位 0行首 $行尾 gg页首 G页尾 3G进入第三行 /abc查找字符(n下一个)
查找替换 :范围 s/原内容/新内容/全局
:1,5 s/root/adm/g 把第一到第五行的root换成adm
设置环境 :set nu 设置行号 :set nonu 取消设置行号 :set list 显示控制字符
vim未正常关闭产生的临时文件
vim /1.txt
vim /.1.txt.swp (隐藏文件)
-
命令语法
命令 选项 参数 注意空格
ls -l / 长格式显示根下的详细内容
useradd -- help 选项
第二章 用户管理:
Users snd groups 用户和组
- 概念
用户基本信息文件 /etc/passwd(冒号分割为七列字段)
root:0:0:root:/root:/bin/bash
用户名:x:uid:gid:描述:HOME:shell
uid:用户身份证号(0特权用户,1~499系统用户,1000+普通用户)gid:组号 HOME:家目录(登录系统时所在目录)shell:命令解释器 /bin/nologin禁止登陆
用户密码信息文件 /etc/shadow (8列)
root:$1$MYG2N:15636:0:99999:7: : :
用户名:口令(加密后密码)*账号被锁定!!密码已过期:最后一次修改时间(天数):最小间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留
组信息文件 /etc/group
root:x:0:
组名:组密码:组ID:组成员
-
管理
创建用户 useradd user01 -u 指定uid -d 指定家目录
查询用户 id user01
修改密码 passwd user01
删除用户 userdel -r user01
修改用户属性 usermod -s //usermod -s /sbin/nologin user01 修改登录shell
usermod -g
创建组 groupadd -g 指定用户基本组 -G指定用户附加组
删除组 groupdel
移除组成员 gpasswd -d 用户名 组名
组的类型:基本组 随用户创建,组名同用户名
附加组 用户加入的其他组
提升权限 su - root 登出 exit
sudo 权限 用户 提升部分权限
第三章 用户的权限:
-
基本权限UGO
授权的对象:UGO
权限的种类:读:r=4 写:w=2 执行:x=1
设置权限:
更改权限 chmod u+r 1.tx t chmod 777 1.txt
命令 对象加减权限 文件或目录
更改属主、属组 chown 用户名.组名 1.txt chgrp 组名 1.txt
查看文件属性 ll file1.txt
- rw-r--r--. 1 root root 0 4月 13 20:49 file1
属主 属组 其他 链接 属主 属组 大小 时间
查看文件夹属性 ls -d dir01
递归 -R 更改目录下所以文件权限
基本权限ACL access control list 访问控制列表
setfacl -m u:alice:rw /home/test.txt
-
特殊权限
特殊位suid
suid,(sgid)使用户临时具备属主(属组)权限 chmod u+s /usr/bin/cat
文件属性chattr
i (immutable) 在文件上启用这个属性时,不能更改、重命名或者删除这个文件。 chattr +i file1
进程掩码umask
系统默认文件权限644,目录755
查看当前用户的umask权限 umask 默认0022
第四章 进程管理 :
-
静态查看进程 ps aux
进程状态:R: run运行 T: stop停止 Z: zombie僵死 S: sieep睡眠
USER PID %CPU %MEM VSE RSS TTY STST START TIME COMMAND
用户 进程ID CPU占用率 内存占用率 占用虚拟内存 占用实际内存 运行的终端 状态 启动时间 占用CPU总时间 进程文件
进程排序:ps aux --sort -%cpu 降级排序
进程的父子关系: ps -ef 其中PPID为其父系进程
第五章 管道和重定向:
-
重定向 命令 fd> 文件
FD file descriptors,文件描述符/文件句柄
0 :键盘只读1,2 :终端
3~255 :文件
输出重定向——正确输出:1> 覆盖,1>> 追加 (1可以省略
错误输出:2> ,2>>
全部输出:&> &> /dev/null 输出至垃圾桶
-
输入重定向——<
管道
进程管道 Piping
管道命令可以将多条命令组合起来,一次性完成复杂的处理任务。
例:cat /etc/passwd | tail -3
tee管道
例:cat /etc/passwd | tee 88.txt | tail -1
-
参数传递xargs
特殊命令cp rm 前需加参数
第六章 磁盘管理:
-
磁盘命名方式 RHEL7 /centos7 IDE(并口)
SATA(串口) /dev/sda /dev/sdb ……
磁盘分区方式 MBR 支持最大磁盘容量<2TB,设计时分配4个分区
GPT 支持大于2TB分区
查看磁盘: ll /dev/sd*
lsblk
添加磁盘:虚拟机关机—添加磁盘—5G
-
基本分区管理:
分区(MBR/GPT)——格式化/文件系统filesystem——挂载mount
创建分区 :启动分区工具 fdisk /dev/sdb
进入会话模式 敲"n" 划分分区
敲"p" 选择分区类型 p 主分区 e 扩展分区
敲“1" 选择分区编号 MBR可分4个分区
敲”回车“ 选择起始扇区
敲"+2G" 选择Last 扇区 +扇区/+size(K,M,G)
敲"w" 保存
刷新分区表 partprobe /dev / sdb
查看分区结果 fdisk -l /dev/sdb
创建文件系统:mkfs -t ext4 /dev/sdb1
挂载mount:mkdir /mnt/disk1 创建文件夹
mount -t ext4 /dev/sdb1 /mnt/disk1 挂载
df -hT 查看挂载信息
-
逻辑卷LVM
术语:PV 物理卷 VG 卷组 LV逻辑卷
创建LVM
1、将物理磁盘转换成物理卷 pvcreate /dev/sdf
2、创建卷组 vgcreat vg1 /dev/sdf
3、创建逻辑卷 lvcreat -L 4G -n lv1 vg1
4、格式化 mkfs.ext4 /dev/vg1/lv1
5、挂载 mkdir /mnt/lv1
mount /dev/vg1/lv1 /mnt/lv1
-
VG管理:
扩大VG:创建PV pvcreat /dev/sdg1
扩展VG vgectend vg1 /dev/sdg1
查看PV空间 pvs
-
LV 扩容:
查看VG空间 vgs
扩容lv lvextend -L +2G /dev/vg1/lv1
FS扩容 resize2fs /dev/vg1/lv1
-
交换分区管理Swap:
Swap 作用:”提升“内存容量,防止OOM(Out Of Memory)
查看当前交换分区:free -m
增加交换分区:准备分区——格式化——挂载——验证
准备分区:划分分区后,将类型设置为82(按t )。 不改类型也可以
刷新 partprobe /dev/sdc
格式化:mkswap /dev/sdc1
挂载:swapon /dev/sdc1 取消挂载:swapoff /dev/sdc1
验证:free -m
第七章 文件系统:
-
EXT4文件系统:
类型:索引文件系统
inode:记录文件属性(文件的元数据),128b
block:基本存储单位,4096K
superblock
查看inode信息 ll -i 文件名
查看inode数量 df -i
-
文件链接:
创建软连接 ln -s /file1 /home/file11
创建硬链接 ln /file2 /file2-h1 硬链接只能针对文件做,只能在同分区做。
RAID 廉价磁盘冗余阵列
作用:容错、提升读写速率
类型:raid0、raid2、raid5
第八章 查找和压缩:
-
which :命令查找
find :文件查找,针对文件名
locate :文件查找,针对数据库
-
find
语法 find [path...] [options] [expression] [action]
路径 选项 表达式 动作
按名字 find /etc -name "hosts"
find /etc -iname "hosts" 文件名不用区分大小写
find /etc -name "hos*" 文件名不全
按文件大小 find /etc -size +5M 大于5M的文件
find /etc -size 5M 5M的文件
find /etc -size -5M 小于5M的文件
指定查找的目录深度 find / -maxdepth 3 -a -name "ifcfg-en* 3级目录
最大深度 和
按文件属主、属组 find /home -user jack 属主是jack的文件
find /home -group hr 属组是hr的文件
按文件类型 find /dev -type f 普通文件file
find /dev -type b 块设备文件
find /dev -type l 连接
按文件权限 find .-perm 644 -ls
找到后处理的动作ACTIONS
-ls 长格式看
-delete 删除
-ok cp -rvf {} /tem \;
连接符 大括号引用源地址 斜杠分号是结束符
-
tar
打包,压缩
语法 tar 选项 压缩包名称 源文件
tar -cf etc.tar /etc cf create file
tar -czf etc-gzip.tar.gz /etc z是gzip,压缩工具
tar -cjf etc-bzip.tar.bz /etc j是bzip
tar -cJf etc-xzip.tar.xz /etc J是xzip
解压,解包
tar -xf etc.tar
tar -xf etc.tar -C /tmp 重定向到 /tmp
第九章 软件安装:
-
RPM包管理
由Red Hat公司提出,二进制,无需编译,可以直接使用,不可以设定个人设置
示例:mysql-community-common-5.7.12-1.el7.x86_64.rpm
软件包名 版本号 发布版本 系统版本 文件后缀
YUM工具 Yum(Yellow dog Updater,Modified)
能够从指定服务器自动下载RPM包并且安装,可以自动处理依赖性关系。
(1)YUM本地源:系统安装光盘
1-观察YUM核心配置目录 /etc/yum.repos.d/
2-删除官方YUM库 mv /etc/yum.repos.d/* /tmp
rm -rf /etc/yum.repos.d/*
3-编写本地YUM库配置文件 vim /etc/yum.repos.d/dvd.repo 文件名
[dvd] 自定义库名
name=dvd 库的描述
baseurl=file:///mnt/cdrom 下载地址
gpgcheck=0 包组校验关闭 1打开
4-挂载安装光盘 把光盘放到服务器上,通电
mkdir /mnt/cdrom
vim /root/.bashrc
mount /dev/cdrom /mnt/cdrom
5-使用YUM安装和卸载程序 yum install -y httpd 安装软件
systemctl start httpd 启动软件
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 禁用防火墙
6-模拟客户机访问 打开浏览器,输入网站服务器的IP地址
http://127.0.0.1
-
使用YUM管理RPM包
2.1.安装 全新安装 yum -y install httpd vsfpd
主命令 自动确认 安装 软件包1 软件包2
重新安装 yum -y reinstall httpd
升级安装 yum -y update httpd
2.2.查询 yum list httpd 查询httpd程序,带@表示已安装
2.3.卸载 yum -y removel httpd
-
RPM工具 无法处理依赖关系
安装(i) cd /mnt/cdrom/Packages
rpm -ivh wget-1.14-15.e17.x86_64.rpm
查询 (q) rpm -q wget-1.14-15.e17.x86_64
卸载 (e) rpm -evh wget-1.14-15.e17.x86_64
-
源码包管理
source code需要经过GCC,C++编译环境编译才能运行,可以设定个人设置
示例:nginx-1.8.1.tar.gz
包名 版本号 文件后缀
获得源码包
官方网站 Apache: www.apache.org
Nginx:www.nginx.org
Tengine:tengine.taobao.org
案例:下载tengine wget http://tengine.taobao.org/download/temgine-2.3.2.tar.gz
部署tengine
1.准备编译器 yum install gcc make zlib-devel pcre pcre-devel openssl-devel
2.解压 useradd www 不必要创建用户
tar -xvf tengine-2.2.0.tar.gz
cd tengine-2.2.0
3.配置 ./configure --user=www --group=www --prefix=/use/local/nginx
安装地址
4.编译 make
5.安装 make install
-
实际生产环境
1.清理原有YUM配置 cd /etc/yum.repos.d/
mv /etc/yum.repos.d/* /tmp
2.下载官网配置 阿里巴巴开源镜像站 https://developer.aliyun.com/mirror/
下载 centos7 epel
3.更新YUM库 yum clean all && makecache
4.执行安装
第十章 计划任务:
-
一次性调度执行at <TIME>
示例:at now +1min
at> useradd uuu
at> <EOT> CTRL+D 输入完毕
查询任务 atq
-
循环调度执行cron
查看进程状态 system| status crond.service
ps aux |grep crond
示例:计划任务存储位置 ls /var/spool/cron
管理:创建计划 crontab -e
查询计划 crontab -l
删除计划 crontab -r
语法格式:* * * * * command
分时日月周 命令
*/5 * * * * /mysql_back.sh 每隔五分钟执行
0 2 1,4,6 * * /mysql_back.sh 每月1,4,6日两点零分执行
0 2 5-9 * * /mysql_back.sh 每月5-9日两点零分执行
第十一章 日志管理:
-
处理日志的程序
(1)rsyslog:系统专职日志程序
(2)httpd/nginx/mysql:各类应用程序
观察rsyslogd程序 ps aux | grep rsyslogd
-
常见日志文件
tail -10 /var/log/messages //系统主日志文件
tail -f /var/log/messages //动态查看
tailf /var/log/secure //认证安全
tail /var/log/yum.log //yum
tail /var/log/maillog //邮件postfix相关
tail /var/log/cron //crond、at
tail /var/log/dmesg //系统启动
-
rsyslogd配置
(1)安装程序 yum install rsyslog logrotate 默认已安装
(2)启动程序 systemctl start rsyslog
(3)相关文件 rpm -qc rsyslog 配置文件 -c 列出所有配置文件
/etc/rsyslog.conf (主配置文件)
/etc/sysconfig/rsyslog
/etc/logrotate/syslog
主配置文件 vim /etc/rsyslog.conf
-
日志轮转logrotate
配置文件 主配 /etc/logrotate.cof
子配 /etc/logrotate.d/*
vim /etc/logorotate.conf
全局设置
weekly //轮转周期,每周 days weekly monthly yearly
rotate 4 //保留份数
create //轮转后创建新文件
dateext //使用日期作为文件扩展名
compress //压缩
include /etc/logrotate.d //包含该目录下的子配置文件
单个设置
/var/log/wtmp{ //对某日志文件单独设置轮转规则
monthly
minsize 1 M //最小1M才轮转
create 0664 root utmp //轮转后创建新文件,并设置权限
rotate 1
}
missingok //丢失不提示
第十一章 网络管理:
-
配置IP
配置网卡参数
1、备份 cp /etc/sysconfig/network-scrits/ifcfg-ens32 .
2、 vim /etc/sysconfig/network-scrits/ifcfg-ens32
ONBOOT=yes //是否开机自启
BOOTPROTO=none //获取IP地址的方式 dhcp自动 none手动 static静态
IPADDR=192.168.142.131 //配置IP地址
NETMASK=255.255.255.0 //配置子网掩码
GATEWAY=10.18.43.1 //网关,默认路由
DNS1=8.8.8.8 //DNS,域名服务
NAME=ens33 //网卡信息
UUID=23f678bd- 863e- 4c09- b2f1- c0ba6770b00d
DEVICE=ens33
重启网络服务 systemctl restart network
查看IP地址 ip a
-
主机名
hostname //查看主机名
hostnamectl set-hostname qiamfeng.example.com //配置主机名
cat /etc/hostname //查看主机名
vim /etc/hostname //配置主机名
重启生效 init 6
-
测试工具
ip a //查看IP
ip route //查看路由
ip neigh //另一台主机ping通,查看邻居
ping 127.0.0.1
ss -tnl //查看端口号 网络服务80
-
初始化服务器
最小化安装
配置root密码
配置IP地址
配置yum源
关闭防火墙 systemctl stop firewalld
systemctl disable firewalld //关闭开机自启
systemctl status firewalld //查看状态
selinux setenforce 0 //关闭
vim /etc/sysconfig/selinux
SELINUX=disabled //永久关闭
安装常用程序 yum install -y lrzsz sysstat elinks wget net-tools bash-completion
关机快照 init 0
第十二章 网络管理实战:
-
通信模型
OSI模型 开放系统互联模型,国际标准化组织(ISO)制定
应用层 应用程序/原始数据
表示层 格式/压缩/加密
会话层 会话/全双工/半双工
传输层 分段/重组/端口号
网络层 IP地址/寻址/路由
数据链路层 MAC地址/局域网
物理层 传输介质/比特流
TCP/IP模型
应用层
传输层
网络层
数据链路层
物理层
数据单元/DU
应用层数据 AP DU 应用协议数据单元
传输层数据 segment DU 分段数据
网络层数据 packet DU 包 数据
数据链路层数据 frame DU 帧 数据
物理层数据 bit DU 比特 数据
数据封装、解封装
-
TCP/IP协议簇
应用层DNS、SMTP、FTP、HTTP、...
传输层TCP、UDP、...
网络层IP、ICMP、ARP、...
数据链路层MAC、...
-
进制转换
十进制
二进制 位权 128 64 32 16 8 4 2 1
十六进制
单位换算 比特 bit b 1/0
字节 byte B 1B=8b
-
MAC地址
48位2进制数字/12位16进制数字
交换机工作原理: 学习--广播--单播--更新
-
IP地址
五类:A类1~126 127回环地址
B类:128~191
C类:192~223
D类:224~239组播
E类:240~255科研
私有地址:10.0.0.0 172.16.0.0 192.168.0.0
-
子网掩码 简写:IP地址后加
A类:255.0.0.0 /8
B类:255.255.0.0 /16
C类:255.255.255.0 /24
判断两个IP是否属于同一网段
IP地址转换为二进制,子网掩码转换为二进制,逻辑运算得网段
例192.168.1.2 1100 0000 1010 1000 0000 0001 0000 0010
255.255.255.0 1111 1111 1111 1111 1111 1111 0000 0000
1100 0000 1010 1000 0000 0001 0000 0000
网段:192.168.1.0