1、Linux目录介绍
/bin 命令目录 /sbin 系统管理员目录
/home 普通用户目录 /lib 动态链接共享库
/root 管理员目录 /dev 设备管理目录
/etc 设备配置目录 /opt 安装软件存放目录
/usr 软件目录 /slinux 安全子系统
/tmp 临时文件目录 /media 外部链接目录
/usr/local 软件目录 /var 日志文件目录
/mnt 用户临时挂载别的文件系统目录
/boot 启动核心文件链接存放目录
Swap 系统运行内存
1、 Linux的目录中有且只有一个根目录
2、 Linux的各个目录存放的内容是规划好的,不用乱放文件
3、 Linux是一文件的形式管理我们的设备而,因此Linux系统,一切皆为文件
4、
2、Vim的小技巧应用
2.1、在vim里复制粘贴、删除
拷贝当前行 输入yy p粘贴
拷贝向下5行 输入5yy p粘贴
删除当前行 输入dd
删除向下5行 输入5dd
2.2、在vim中查找某个代码
命令行下输入 /+查找单词 继续查找在按下 n
2.3、在文件中加行号
命令行下模式下输入: set nu
取消行号 set nonu
2.4、快速到达文件低端、回到顶端
到达低端正常模式下输入 大写G
回到顶端正常模式下输入 小写g
2.5、撤回写出的代码
回到正常模式下输入 小写u
2.6、在vim去到指定的行数
1.显示行号 :set nu
2.输入要到达的那个行 :20
2.7、在vim中保存的文件保存到其他地方
:w
2.8、进入可视化界面
直接按V 进入可视化界面
2.9、替换字符
选项 g 替换全部
不加选项就替换第一行
:%s/替换参数/换成什么参数/选项
案例:将:号替换成空
:%s/://g
3、开机、重启、用户登录注销
shutdown -hnow 立即关机
shutdown -h -1 1分钟后关机
shutdown -r now 立即重启
reboot 立即重启
sync 保存数据(重启或关机前都应当执行此命令保存数据)
4、经常用到的命令
4.1、 pwd
显示当前路径
4.2、 ls
显示当前文件夹内容
通配符 * [ ]
4.2.1、ls -al
显示当前目录和文件包括隐藏的\
4.2.2、ls -ld
查看当前目录权限
4.3、 cd ~
Cd~回到家目录
4.3.1、cd..
回到上层目录
4.3.2、cd
cd /目录名
想去的目录
4.4、 mkdir /目录名
创建目录
4.4.1、mkdir -p /目录名/目录名
创建多层目录 rmdir /目录名
删除空目录或空
10 rm -rf /目录名
删除有内容的目录或文件
rm -rf /home/*.txt
删除带有.txt 的文件
4.5、 touch 文件名.txt
创建文件(后面继续加文件名也可以一同创建)
4.6、 cp -r复制目录
复制文件或目录
例:在当前文件夹复制1.txt并改名2.txt
cp -r 1.txt 2.txt
mv 需要更改的文件名 更改的文件名字
修改文件或目录名
mv 剪切的文件路径 要剪切到文件的路径
4.8、 cat -n(显示行号) 文件或目录名
查看文件或目录内容
4.9、 cal
显示日历信息
4.10、 echo $PATH
输出当前环境变量
4.11、 head 文件名
查看文件前10行内容
! head -n 5 文件名
查看文件前5行内容
4.12、 tail 文件名
查看文件后10行内容
! tail -n 5 文件名
查看文件后5行内容
4.13、 ln 软连接、硬链接
4.13.1、软连接
ln -s /root root1
创建目录的快捷方式
4.13.2、硬链接
ln /root /root1
4.14、 history
查看历史命令
~ history 10
查看最近执行的10个命令
!20
执行历史编号为20的命令
4.15、 date
显示当前时间
获取本月第一天、最后一天
date +"%Y%m01" #当月第一天
date -d"$(date -d"1 month" +"%Y%m01") -1 day" +"%Y%m%d" #当月最后一天
date +"%Y%m$(cal|sed 'N;${s/.* //;P;d};D')" #当月最后一天
4.16、 wc 统计命令
4.17、 过滤命令 grep
例子 查找/etc/passwd文件夹里的root信息
4.18、 touch 选项 文件名 创建隐藏文件
例:创建隐藏文件 rm-rf 删不掉隐藏文件夹(下面有例子删除隐藏文件夹)
~ touch .zhs.txt
~ touch ..zhs1.txt
例:删除隐藏文件夹
~ rm -rf /home/..zhs.txt
~ rm -rf /home/.zhs.txt
(注:删除隐藏文件夹需要先打出完整的文件名字 前面的 . 也要加上不然删除不掉)
4.19、 find搜索查找类命令
参数
1 find 搜索范围 选项1 文件名 选项2
-name(文件名查找)
-user(用户名查找)
-size(大小查找)
-type(查找类型)
-group(组查查找)
-type(文件类型查找)
-perm(文件权限查找)
-atime -n(过去n天被读取过的文件)
-ctime -n(过去n天被修改过的文件)
-mtime -n(过去n天被修改过属性的文件)
修改属性,举例 就是修改过文件的属组或者是属主的文件
-amin -n(过去n分钟被读取过的文件)
-cmin -n(过去n分钟被修改过内容的文件)
-mmin -n(过去n分钟被修改过属性的文件)
修改属性,举例 就是修改过文件的属组或者是属主的文件
选项2
找到文件后直接删除↓
find 搜索范围 选项 文件名 -delete
案例
查找/home目录下的a.txt文件
2.查找/opt下root用户的文件
3.查了Linux系统下大于20M的文件
(/(是整个系统的范围的意思))(大于用+ 小于用- 等于用=)
4.查找所有.txt文件
5.查找/etc文件夹里面的文件
6、查找到目录,并查看目录内的信息
4.20、 tty 查看当前终端号
4.21、watch 实时刷新
watch -n1 “ls-l /home” 一秒钟刷新一次ls -l /home 命令
4.22、w、who查看所有登录终端
4.23、who am i 查看当前终端
4.24、alias 增加别名
配置完后直接需要更新配置文件或者重启配置文件才能生效
source /文件路径
4.25、bash-completion 命令补全
增加命令补全
yum -y install bash-completion
4.26、source 刷新配置文件
source /文件路径
4.27、sync将内存的数据保存到磁盘中
语法: sync
主要在即将关闭服务器的时候,关闭服务器之前先执行sync这个命令,保存内存的数据,然后在关闭服务器
4.28、nohup守护后
语法:nohup 命令 & (&为放到后台运行)
案例
4.29、runlevel 查看运行级别
*4.30、$RANDOM 随机生成5位数的随机数
4.31、stat 查看文件的详细inode信息
inode 就是索引,
4.32、hdparm测试磁盘读取速率
hdparm -t /dev/sda
4.33、pstree 查看进程树
参数解释
pstree -u #显示进程数,但是不显示root账户的名称只能显示普通账户的名称
pstree -p #显示进程的ID号
pstree -a #显示进程参数
pstree -p #显示进程组的ID
4.33、sar 命令
yum -y install sysstat
sar -a -f /var/log/sa/文件名
sar -b -f /var/loa/sa/文件名
-b是查看磁盘的io速率 -f是静态查看 后面是文件的路径,文件名称是当天的日期号数比如今天是1号,就查看sa1,2号就查看sa2
注意!!-f 一定是在-b的后面
sar -u 1 3 查看系统CPU使用率
sar -r 1 3 查看内存使用情况
sar -W 1 3 查看交换分区信息
sar -b 1 3 查看磁盘IO速率
sar -d 1 3 查看磁盘使用情况
sar -v 1 3 查看系统inode的数量
4.34、fsck 检查修复文件系统命令
fsck -a 磁盘路径 #自动修复
fsck -y 磁盘路径 #关闭互动模式
fsck -p 磁盘路径 #检查所有文件系统
4.35、test判断是文件还是目录命令
4.36、TOP命令
4.37、lastlog 查看用户最近一次登陆时间
4.38、uptime 查看系统负载
4.39、ip a 查看网卡
https://zhuanlan.zhihu.com/p/35054568
4.40、timedatectl时区
timedatectl list-timezones # 列出所有时区
timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间
timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海
5、创建用户、组
5.1、配置信息
5.1.1、/etc/passwd 用户配置文件信息
5.1.2、/etc/shadow 口令配置文件
5.1.3、/etc/group 组配置文件信息
5.2、创建、删除指定UID用户
5.2.1、创建用户
useradd xx 创建用户
5.2.2、删除用户
userdel 用户名 删除用户
userdel -r 用户名 删除用户不保留家目录
5.2.3、指定用户UID和指定用户家目录
useradd user02 -u 1503 指定用户UID
useradd user03 -d /aaa 指定用户家目录
5.3、用户管理、查询切换用户
5.3.1、查询用户信息
id 用户名 查询用户信息
5.3.2、切换用户
su - 用户名
5.4、创建、删除、指定GID组
5.4.1、创建组
groupadd 组名 创建组
5.4.2、删除组
groupdel 组名 删除组
5.4.3、指定GID
groupadd 组名 -g 1504 指定用户GID
5.5、创建用户附加组
usermod -G 组名 用户名
5.5.1、例1
1创建组bbb 然后创建用户aaa ,让bbb组成为aaa用户的附加组
方法1
方法2
1.1 创建多个附加组, 指定aaa用户加入到 ccc组 使aaa组拥有bbb,ccc附加组
1.2创建组eee 然后创建用户aa 指定他的基本组为bbb 附加组为eee
5.5.2、例2
增加一个用户aa将他指定到ad组
5.6、修改用户所在基本组
usermod -g 组名 用户名 修改用户所在组
5.7、删除用户附加组
gpasswd -d 用户名 附加组名
5.7.1、例
删除aaa用户中的ccc附加组
5.8、用户提权
提权配置信息 在 /etc/soduers里面 99-107行
提权命令 usermod -G 用户名 wheel(注:这个是root系统组)
这样配置用户才能sudo命令,不然不能使用
记得配置sudo 用户密码,用sudo登录的时候就是用用户本身的密码
6、用户、组目录文件权限管理
权限管理
例
R(4)读 W(2)写 X(1)执行 drwx d代表是目录 -代表是文件
1 给abc.txt文件所属用户减去执行权限,给用户所在组增加写权限
1 chmod a-x,g+w abc.txt
2 给aaa.txt问所属用户增加读写执行功能,给用户所在组增加执行权限,给其他用户增加读写执行权限。
3 给abc.txt文件所属用户添加读写执行权限,给用户所在组增加读执行权限,给其他用户增加执行权限
3 chmod 751 abc.txt (另一种比较实用的方法)
4将kkk目录下所有的文件和子目录更改为tom用户
4 chown -R tom /home/kkk -R(所有文件跟目录) tom(要更改成的用户)/home/kkk(目录路径)
5将kkk目录下的所有文件和子目录更改ad组
5 chgrp -R ad /home/kkk
6.1、修改文件、文件夹用户拥有者
chown 用户名 文件名.txt 修改文件用户拥有者
6.1.1、例子
修改用户拥有者和修改用户组
创建一个组ad,在创建一个用户tom,将tom放在ad组,然后使用tom来创建一个文件ok.txt ,查看ok.txt的文件信息
6.2、修改文件、文件夹所在组
chgrp 组名 文件名.txt 修改文件所在组
chown .组名 文件名.txt 修改文件所在组(注意组名前面有个点)
6.2.1、案例
改变file1.txt文件用户拥有者 跟组,改成用户user01 组hr
6.3、修改目录内所有文件的用户跟组
1 chown -R 用户名.组名 目录名 修改目录内所有文件的用户跟组的权限(注意组名前面有个点)
6.4、修改目录内所有文件的权限
2 chmod -R 选项 目录名 修改目录内所有文件的权限
6.5、改变用户登录的初始目录
usermod -d 目录名 用户名 改变用户登录的初始目录
6.6、禁止用户登录
usermod -s 路径 用户名 禁止用户登录
(路径如图中红线所示,封所有用户都是一样路径)
6.7、chattr 语句用法(重要)
chattr 参数 文件名
这条命令的意思就是设置了某个权限之后就是就是设置了权限以后 ,比如设置了这个文件不能更改或者不能删除,那这个文件就不能删除跟更改,root用户也不能更改,属于强制类型
参数
6.7.1、查看文件的chattr属性
. lsattr 文件名 查看文件的charrt属性
6.7.2、案例
6.7.2.1、禁止删除此更改或者删除此abc.txt文件(root用户也不能删除)
6.7.2.2、设置此文件只能有追加信息,但是不能写入,或者更改(root也不行)
6.7.2.3、去除chattr 写入的权限属性
6.8、umask掩码用法(一般重要)
概述umask对新建的目录或者文件的权限会用影响,umask表示要减掉的权限(此权限重启后就会恢复原来的0022)
本身创建目录的权限是0777也就是说但是设置umask后创建目录就要减去0022(注0022是可以设置的)也就是创建目录后目录的权限都是755
创建文件的时候在减去原来umask设置的掩码参数后再减去0111(注:这个是不可设置的)如下图(文件是一定要减去0111)这也就是为什么每个创建文件的权限参数都是644权限的原因
6.8.1、修改umask掩码
umask 数字 修改umask掩码参数
6.8.2、案例:
修改umask的掩码为0111
此时如果在创建文件的话就是目录的权限就是666权限
此时如果在创建文件的话 文件的参数是555权限
6.9、suid临时提升文件权限
suid,(sgid)针对文件/程序时,临时提升文件、程序的权限(类似sudo)
举例说明:
就是例如此文件只有创建用户本人有读写执行的权限,组或其他人都没有权限,suid就是拥有创建文件用户所拥有的权限
语法: chmod o+s 文件名
6.9.1、案例:
创建文件suid使其他用户可以进去有读写执行权限
6.10、setfacl用户权限设置(重要)
ACL跟UGO 的区别
setfacl 选项 参数:用户、组名:设置权限 设置的文件或目录路径
选项:
-m 添加(用户或组)权限
-b 删除全部添加权限用户
-x 删除单个用户的ACL权限
参数:
-u 用户
-g 组
-o 其他用户
6.10.1、查看 文件ACL设置的权限(重要)
~
使用ls -l查看文件或目录的有显示上面这个↑+就是表示此文件有设置ACL权限,如果有设置ACL权限的话就需要用ACL的查看命令查看ACL权限,不能用ls -l查看 ,因为ACL权限不在ls -l显示所以就需要用ACL权限的命令查看
getfacl /文件、目录路径 查看文件、目录的ACL权限
6.10.2、案例:
6.10.2.1、添加单个用户的ACL权限 rwx
6.10.2.2、删除单个用户的ACL权限
6.10.2.3、删除文件的所有ACL权限
删除前
删除后
6.10.2.4、添加组ACL权限rwx
- 添加所有用户、组、其他的权限为rwx
这三条命令等于↓
7、进程管理(重要)
7.1、虚拟文件系统 /proc
7.2、 ps 命令使用
~ ps –aux 显示所有的进程信息参数
ps –aux | grep sshd 查询固定进程sshd
ps –ef | 查看父进程
ps –ef | grep sshd 查看sshd的固定的父进程号(父进程的PPID就是PID想·)
Ps -axo 显示进程的列明 自定义进程显示
7.3、动态进程监控
7.3.1、选项参数
例
7.3.2、监视特定用户
1 top 查看进程 (按q退出)
输入 u 回车在输入需要监控的用户名
按Shift+<
按Shift+> 上下翻页
7.3.3、终止指定进程
2 top 查看进程
输入k 回车 在输入要杀死的进程ID号
7.3.4、指定系统状态更新时间为5秒
3 top -d 5
7.4、进程管理、终止进程
7.4.1、kill命令和killall
~ kill 进程号
7.4.2、案例
1 踢掉某个非法登录用户
1ps –aux | grep sshd 查看远程登录的用户
2 kill 4010 踢掉远程登录的用户
2终止远程登录服务sshd ,在适当的时候再次重启sshd
1 ps –aux | grep sshd 查看sshd的进程号
2kill 3908 终止sshd进程
3 service sshd start 重启sshd服务
3终止多个gedit编辑器
3 killall gedit 杀掉gedit
7.4.3、查看进程树pstree
案例
1 用树状形式显示进程pid
1 pstree -p
2用树状形式进程id
2 pstree -u
7.5、nise 程序优先值设置
简介
系统的进程优先级序号,nice值+20后得到这个优先级序号
意思就是 设置程序的nice值,最终决定程序运行的优先级的还要减去系统(PR)+20才是程序最终在系统的运行优先级别(数字越大优先级越低,数字越小优先级越高)
语法: nice 选项 参数 进程
选项 -n设置进程参数
参数 数字 -20 19
7.5.1、案例
7.5.1.1、设置启动sleep的nice值为-15
7.5.1.2、更改现有nice进程级别
语法 renice 参数 程序PID
7.6、& 设置程序后台运行
语法 在命令的最后添加 &
7.6.1、案例
7.6.1.1、查看后台运行程序
Jobs
7.6.1.2、后台程序调用至前台运行
fg 2
7.6.1.3、杀死后台进程
Kill % 1 杀死后台进程
8、>, >>, < , | 重定向输入、输出、管道符
8.1、>和>> 案例
1 ls -l > a.txt 将ls -l 显示的内容覆盖写入到a.txt 文件中
2 ls -l >> a.txt 将ls -l 显示的内容追加写入到a.txt 文件中
8.2、输出重定向1>和2>,输出重定向
上图实例
进入vim 15889
8.2.1、案例 1>正确输出重定向
概述:就是正确输出的参数,例如,ls -l 输出的正确参数输出到另外一个终端哪里显示(注:这个也可以输出到本客户端的文件里,但是 1>不会像>一样覆盖,而是追加)
8.2.2、案例 2>错误输出重定向
2>错误输出重定向,就是命令输出错误了就会把他输出到其他文件夹,而不会输出到命令行下面()
8.2.3、案例 0<输入重定向
就是把文件的内容输入到其他地方去(文件,目录,邮箱内容)
8.2.4、案例 | 管道符
查询/home目录下的 aa.txt文件
ls -l /home | grep aa.txt
8.2.5、案例 | tee管道符
概述:就是 |tee管道符一般是单独执行管道符的内容 而不会接着后面管道符的内容
8.2.6、案例 | xargs管道符
9、磁盘管理
9.1、磁盘分区、挂载
9.1.1、 磁盘介绍
2 mbr分区
- 最多支持四个主分区
- 系统只能拿装在主分区
- 扩展分区要占一个主分区
- MBR最大致支持2TB磁盘,但拥有最好的兼容性
3 gpt分区
1. 支持无线多个主分区(操作系统可能限制 ,比如windows下最多128个分区)
2. 最大支持12EB的大容量(EB=1024PB,PB=1024TB)
3. Windows7 64位以后支持gtp
9.1.2、磁盘分区
磁盘分区,一个磁盘分主分区只能分4个主分区,如果需要更多的分区的话就只能不要掉一个主分区,把那个不要的主分区改为扩展分区,然后在扩展分区是不可存文件的,在扩展分区中在创建逻辑分区,逻辑分区可以创建多个逻辑分区(只要内存够)
fdisk磁盘分区
格式:fdisk /dev/sd*
mkfs磁盘格式化
mkfs.ext4 /dev/sdc1 格式化sdc1磁盘(方法一)
mkfs -t ext4 /dev/sdc1 格式化sdc1磁盘(方法二)
mount磁盘挂载
mount 挂载磁盘路径 挂载目录
9.1.3、磁盘逻辑分区
描述: 磁盘分区一般只能分4个主分区,如果主分区分完了还需要其他分区就需要创建扩展分区,然后在从扩展分区中创建逻辑分区,逻辑分区可以创建多个,只要还有内存就可以创建多个逻辑分区,
第一步 创建一个扩展分区
第二部 从扩展分区中创建逻辑分区
第三部 查看创建好的逻辑分区
9.1.4、 swap 系统内容扩容
简介
挂载过程
第一步新建分区
fidisk /dev/sde
第二部设置分区类型
第三部 格式化交换分区
第四部 挂载交换分区
第五步 查看挂载交换分区
9.1.5、磁盘查询命令
1 lsblk查看分区情况
查看分区情况----可以查看大小
2 lsblk –f 同上 不过可以查看的更详细
同上 不过可以查看的更详细
2 df –lh查看系统磁盘使用 情况
查看系统磁盘使用 情况
3 查看磁盘挂载信息
df -hT 查看挂载磁盘信息(方法一)
mount 查看挂载磁盘信息(方法二)
4 du 查看目录磁盘使用情况
du -adc - -max-depth =1 /目录 (查看目录使用情况)
5 free -m 查询内存使用情况
9.1.6、设置磁盘自动挂载
1 vim /etc/fstab 进入修改
3 执行 mount –a 即可生效
9.1.7、 卸载磁盘
umoun /home/newdisk
案例
磁盘挂载、磁盘自动挂载、卸载
挂在一块硬盘
1 虚拟机添加硬盘
2分区 fdisk /dev/sdb1 进去后选m ,n ,p , 1,格 ,格 ,w
3格式化硬盘 mkfs –t ext4 /dev/sdb1
4挂载 mount /dev/sdb1 /home/newdisk (/dev/sdb1挂载的盘) (/home/newdisk挂载的目录)
设置磁盘自动挂载
1 vim /etc/fstab 进入修改
3 执行 mount –a 即可生效
卸载磁盘 umoun /home/newdisk
统计文件夹个数
1统计/home文件夹下的文件个数
(“-”)以-开头的统 (wc –l) 统计
2统计/home文件夹下目录的个数
(“d” )以-开头的统 (wc –l) 统计
3统计/home文件夹下目录的个数,包括子文件夹里的
加R表示 统计包括子文件夹
5以树状显示目录结构
如果显示错误的话就是没有下载tree命令 用命令yum install tree 下载 tree命令(联网才能下载)
9.2、LVM逻辑卷、扩容逻辑卷(不建分区版)
描述: LVM逻辑卷可以随意可以随意扩容逻辑卷,是一种磁盘管理方式,与普通磁盘没有差距
创建逻辑卷步骤:↓ 扩容逻辑卷:↓
9.2.1、创建LVM逻辑卷
2.1.1、创建物理卷(pvcreate)
pvcreate 磁盘路径
2.1.2、创建卷组(vgcreate)
vgcreate 卷组名 /物理卷路径名
2.1.3、创建逻辑卷(lvcreate)
lvcreate -L 逻辑卷大小 -n 逻辑卷名字 卷组名
2.1.4、格式化逻辑卷(mkfs)
mkfs. ext4 /逻辑卷路径 格式化逻辑卷(方法1)
mkfs -t ext4 /逻辑卷路径 格式化逻辑卷(方法2)
2.1.5、挂载逻辑卷(monut)
mount /挂载逻辑卷路径 /挂载目录路径
9.2.2、LVM逻辑卷扩容
9.2.2.1、添加物理卷(pvcreate)
pvcreate /磁盘路径
9.2.2.2、把物理卷加入卷组(vgextend)
vgextend 卷组名 /物理卷路径
将sdf物理卷加入到vg1组当中
9.2.2.3、新加入的卷组挂载到需要扩容的逻辑卷中(lvextend)
Lvextend -L +大小 扩容逻辑卷路径
扩容14.99G磁盘内存,给/dev/vg1/lv1逻辑卷
9.2.2.4、刷新挂载的逻辑卷(resize2fs)
resize2fs /逻辑卷路径
刷新 /dev/vg1/lv1逻辑卷
查看 卷 命令
9.2.3.1、pvscan 查看物理卷命令情况
9.2.3.2、vgs、vgscan 查看卷组情况
vgs 卷组大小跟使用情况
vgscan 查看卷组是否存在
9.2.3.3、lvscan 查看逻辑卷情况
9.2.3.4、查看逻辑卷挂载目录使用情况
1
9.3、LVM逻辑卷(分区版)
1、创建逻辑卷
1、fdisk分区
2、创建物理卷、卷组、创建逻辑卷、格式化逻辑卷
4、挂载逻辑卷
2、逻辑卷扩容(分区版)
1、在原来的磁盘上扩容
1、fdisk分区
2、刷新分区
3、创建物理卷、添加进组、挂载到逻辑卷
4、刷新逻辑卷
这里要确认逻辑卷已经挂载到目录中,刷新这条命令才能执行
2、添加另外一个磁盘扩容
参考9.2.2、磁盘逻辑卷扩容
9.4、文件系统
概述
由索引(inode)跟块(block)组成,举个例子,文件系统就像超市外面的储物柜,储物柜的中间的显示器取票口,就是文件系统中的索引(inode),储物柜的柜子就是文件柜的块(block),由这索引跟块组成文件系统
索引:顾名思义 ,就是搜索的意思,每个文件系统里都有留出固定的空间来存储文件的索引,也就是我们买了512G的磁盘,插上电脑后往往没有512G,也就500多一点,这些少掉的空间就是给索引流出来的空间,索引里保存文件的所有东西,数据名称等等,一个文件系统可以创建多少文件,由索引(inode)决定,块有多少就能创建多少文件,如果索引满了,就不能在继续创建文件,但是,索引满了,但是磁盘没满的话就还可以往文件里写内容, 索引决定的是文件系统能创建多少文件,而不是决定文件大小,
块:系统在创建文件系统的时候会把磁盘分割成固定的块,每个块都是设置固定大小,
总结:索引决定了文件系统能创建多少文件,块就是文件系统的容量大小,
例:目录,块满了,但是索引没满,目录还可以创建文件,直到创建索引满为止
同理索引满了,但是块没满,所以,还可以往目录内写文件,直到快满
9.4.1、查询索引 inode
9.41.1、 查询目录文件索引信息
ls -li 目录名 查询目录文件索引信息
9.4.1.2、 查询分区中索引的信息
df -i 查询分区索引信息
实例
9.5、Raid磁盘阵列
9.4.1、概述
简单来说就是几块磁盘组成一个新的磁盘,这个新的磁盘里有各种不同的功能,比如加快读写速度,数据的安全能力等。。
9.4.2、软、硬RAID
9.4.3、创建RAID
9.4.3.1、创建、参数选项
-C 创建RAID
/dev/md0 第一个RAID设备
-l5 RAID5
-n RAID成员的数量
-x 热备磁盘的数量
可用空间2G
、
9.4.3.2、格式化、挂载
9.4.3.3、卸载一块磁盘
mdadm /dev/md0 -f /dev/sde -r /dev/sde
9.4.4、查看RAID mdadm -D RAID路径
9.4.5、设置RAID开机自动启动
9.6、lvm不分区扩容
1、lvm逻辑卷挂载
2、lvm逻辑卷扩容
pvresize -v /dev/sdc
lvresize -L 28G /dev/vg2/lv2
9.6、刷新磁盘分区
partprobe /dev/sdb
9.7、卸载磁盘
1、lvm逻辑卷卸载
1、卸载文件系统
2、卸载逻辑卷
3、卸载卷组
4、卸载物理卷
5、查看卸载情况
9.8、查看磁盘
1、查看磁盘块
df -i
2、查看磁盘读写性能
dd if=/dev/zero of=/data/aa.txt bs=200MB count=1
3、查看磁盘信息
fdisk -l /dev/sda3
4、查看分区信息
10、压缩和解压命令
10.1、 gzip和gunzip
~ gzip 文件名 压缩文件‘
~ gunzip 文件名.gz 解压文件
案例
1 gzip 压缩 将/home下面的hello.txt文件进行压缩
2 gunzip解压 将/home下的hello.txt文件进行解压
10.2、 zip 和unzip命令
~ zip 选项 xxx.zip 将要压缩的内容 压缩文件
~unzip 选项 xxx.zip 解压的文件‘ 解压文件
选项
~ zip的 常用选项
-r 递归压缩 即压缩目录
~ unzip的常用选项
-d <目录> 指定解压后文件存放的目录
案例
1 将/home下的所有文件压缩成mypackage.zip
2 将mypackge.zip 解压到/opt/tmp目录下
10.3、 tar指令
~ tar 选项 xxx.tar.gz 要压缩的内容 压缩解压文件‘
~ tar –zcvf xxx.tar.gz 压缩
~ tar –zxvf xxx.tar.gz 解压 如果要解压到其他目录的话后面要加-C
选项
-c tar打包文件
-v 显示详细信息
-f 指定压缩的文件名
-z 打包同时压缩
-x 解压.tar文件
案例
1 压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成 a.tar.gz
2 将/home的文件夹压缩成/myhome.tar.gz
3将 a.tar.gz 解压到当前目录
4 将myhome.tar.gz 解压到/opt目录下
(要加-C)
e11、软件包管理
复习方向
概述
YUM包下载地址库 /etc/yum.repos.d/
画的两条红线是yum包的优势
依赖关系就是,在安装A包的时候,还需要B包, A,B包就是一个依赖关系,而找到B包安装后,B包又需要C包,这样找下去就会很麻烦,yum的自动处理依赖关系就是自动处理安装包的依赖包。
cd /etc /yum.repos.d yum配置目录,目录里面的文件都是软件的官方下载地址
11.1、配置本地YUM源配置
概述
配置网络YUM源也是跟本地一样配 ,一点要在/etc/yum.repos.d目录内创建配置文件,配置的文件名后缀一点是*.repo
11.1.1、将官方的下载库剪切到其他文件夹
11.1.2、在/etc/yum.repos.d下创一个文件
11.1.3、在新创建的文件中配置系统光盘路径
11.1.4、挂载光盘
11.1.5、是否挂载成功
11.1.6、设置启动自动挂载系统光盘
11.1.7、安装一个软件验证
案例
~ yum list firefox 查看yum包
例
安装firefox(火狐)
1 yum list | grep firefox 查看yum包里的firefox包
2 yum install firefox 安装firefox
11.2、安装RPM包
11.2.1、概述
RPM与YUM想类似,不同的就在于,RPM比YUM少了可以自动处理依赖关系(依赖关系,看YUM概述)
语法 rpm -qa 查看所有安装的rpm包
rpm -qa | grep 名字 查看指定rpm包
11.2.2、安装步骤
11.2.2.1、找到安装包
rpm -qa | grep 名字 查看指定rpm包
11.2.2.2安装安装包
安装的时候需要加后缀 .rpm
rpm -ivh 软件名 安装rpm包
11.2.2.3、查询是否有安装到软件
1 rpm -q 软件名
2 yum list 软件名 查询到的带@表示已经安装
卸载软件
Rpm -evh 软件名
11.3、安装、卸载、启动、暂停,查询,软件
11.3.1、启动软件
systemctl start 软件名
11.3.2、暂停软件
systemctl stop 软件名
11.3.3、卸载软件包
yum -y remove 软件名
rpm -evh wget-1.14-15.el7.x86_64 rpm卸载的时候不需要加后缀 .rpm
11.3.4、查看软件包信息
rpm -qi 软件名
yum list 软件名
11.3.5、查询软件安装位置
rpm -ql firefox
11.3.6、查询/etc/passwd文件所属RPM包
rpm -qf /etc/passwd
11.3.7、查询YUM库包数量
11.3.8、更新YUM仓库
yum provides 命令名称
yum repolist
11.4、源码包管理
概述
11.4.1、准备编译环境
11.4.2、下载、解压源码包
火狐搜索tengine第一个下载
11.4.3、配置源码包
11.4.4、编译源码包
11.4.5、安装源码包
11.4.6、启动测试源码包
测试前需要 先关闭httpd 会有冲突
11.5、扩展内容《企业中的YUM包管理》
步骤
11.5.1、清理原有YUM配置库
11.5.2、下载阿里官方配置
1、下载系统软件包
2、下载扩展软件包
11.5.3、更新YUM仓库
1、更新YUM仓库
2、查看软件数量
11.5.4、执行安装包
11.6、错误解决!!安装epel源显示已经有epel已经安装解决方法
卸载epel*包,然后冲i性能配置一遍epel源即可
11.7、查看命令所属安装包
yum provides 命令
12、crontab、at任务调度
12.1、概述
作用: 计划任务主要是做一些周期性的任务,
目前最主要的用途是定期备份数据。
12.2、at 一次任务调度
12.2.1、语法格式
at 调度时间
at> 调度命令
at> ctrl + d 保存退出
12.2.2、atq查询任务调度
12.2.3、案例
12.3、crontab循环任务调度
配置目录
cd /var/spool/cron
这个目录保存的文件就是创建循环任务的用户保存的文件,
文件名就是创建用户的名
12.3.1、进入设置crontab任务调度
crontab -e 进入到文件
12.3.2、编辑调度时间
编辑文件输入 * * * * * ls -l /etc/ >> /home/aaaa.txt
(意思就是每小时的每一分钟执行ls -l /etc/ >> /home/aaaa.txt)代码
12.3.3、终止任务调度
cronrtab 终止任务调度
12.3.4、列出当前任务调度
crontab -l 列出当前任务调度
12.3.5、重启任务调度
service crond restart 重启任务调度
第一个 * 一小时中的第几分钟 选项0~59
第二个 * 一天中的第几个小时 选项0~23
第三个 * 一个月中的第几天 选项1~31
第四个 * 一年中的第几个月 选项1~12
第五个 * 一星期中的星期几 选项1~7
12.3.6、特殊符号说明
“,”号 代表不连续的时间比如“0 8,12,16 * * *”表示每天的8点、12点、16点执行这个命令
“-”号 代表连续的时间范围比如“0 5 * * 1-6”表示周一到周六的凌晨5点执行命令
例
1 1 1 1 1 ls -l /etc/ > /tmp/to.txt
意思就是 每年的第1月的星期一的1点1分执行这条命令
12.3.7、指定用户创建计划任务
Crontab -u 用户名
案例
“45 22 * * *” 在每天22点45分执行命令
“0 17 * * 1” 在每周一的17.0分执行命令
“0 5 1,15 * *” 在每月的1号和15号的5点0分执行命令
“40 4 * * 1-4” 每周一到周四凌晨4点40分执行命令
“10 4 * * *” 每天凌晨4点10分执行命令
“0 0 1,15 * 1” 每月的1号和15号0点0分都会执行命令
13、日志管理
复习方向整理
13.1、概述
日志管理系统工作内容是记录系统日常使用命令,
13.2、系统日志类型
13.3、rsyslog 系统日志管理
概述
13.3.1、常见的系统、进程日志文件
13.3.1.1、动态、静态查看日志文件
tail -f /var/log/messages
动态查看系统日志的话需要在打开另一个终端查看
13.3.2、日志系统配置目录
13.3.2.1、查看日志系统配置文件目录
rpm -qc rsyslog
13.3.2.2、安装日志系统
yum install -y rsyslog
13.3.2.3、启动日志系统
systemctl start rsyslog
13.3.2.4、查询日志状态
1、 systemctl status rsyslog
2、ps -aux | grep rsyslog
13.3.2.5、升级日志系统
yum update rsyslog
(可能出现的错误)日志系统崩溃、启动不了
解决方法:
更新重新下载系统
(可能出现的错误)日志系统没有启动
13.3.3、RULE主配置文件规则
概述、作用、示意图
管理、更改系统日志存放地方
程序的主配置文件都在/etc里,且后缀都是 * .conf
13.3.3.1RULE定义日志系统规则
13.3.3.1、Facility设备解释
13.3.3.2、设置日志内容获取级别
在主配置文件夹里配置的日志获取级别
13.4、logrotate日志轮转
13.4.1、简介
13.4.2、配置目录
13.4.3、主配置文件配置信息介绍
→
13.4.4、案例
查看日志找错误方法
单词
Error 筛选日志错误
Warning 查看警告
Note 查看注意
14、网络配置
14.1、概述、简介
14.2、查看网络状态
14.3、配置网络目录及文件
14.4、网络文件配置
14.4.1、注意事项
配置Centos7时先查看配置先 ls /etc/sysconfig/network-scripts查看文件夹,然后找到ens*文件,找到后先拷贝一份配置文件夹以防万一,拷贝完后在进去更改配置文件
14.4.2、配置文件参数
14.4.3、查看配置目录、找到配置文件
14.4.4、拷贝一份配置文件保存
这样做的意义是配置文件时出现错误的时候直接删掉,拿拷贝的文件来重新配置
14.4.5、更改网络配置文件
14.4.6、重启网络服务
Systemctl restart network
14.5、查看网络配置信息
14.5.1、查看ip地址
ifconfig 查看IP地址
ip a 查看IP地址
14.5.2、查看网关
ip route
14.5.3、查看邻居 类似ping功能
ip neigh
14.5.4、差看自身网卡UUID命令
nmcli con
14.5.5、查看DNS命令
cat /etc/resolv.conf
14.5.6查看端口号
ss -tnl 查看端口号
ss -anutpl 查看端口号
14.6、OSI:7层/结构/功能
14.6.1、简介、结构
结构
14.6.2、应用层
应用程序/微信/微博/QQ/等应用
协议
HTTP 超文本传输协议
SSH 远程连接/远程控制协议
FTP 文件传输协议(迅雷种子下载)
SMTP 简单邮件传输协议/Email
DNS/域名服务/www 预览网站名称
功能
将应用的信息转换为数据,以方便电脑识别以及传输
14.6.3、表示层
用户信息转换为数据,以便在网络上传输
功能
应用的表示方式功能,每个应用都有不同的数据表示方式,表示层给数据加上应用数据的标识符,数据的安全,数据的压缩等都是表示层来完成的
14.6.4、会话层
建立/管理终止会话/全双工/半双工
全双工:两部都能说话
半双工:只能一边说完另一边才能说
功能
通信的建立,通信的过程,通信的结束,这一部分都是用会话层来
14.6.5、传输层
分段/重组/端口号
协议
TCP/传输控制协议/可靠 用你妈来形容
UDP/用户数据包协议/不可靠 用你女神来形容
功能
数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接
14.6.6、网络层
IP协议/路由器/三层交换机
协议
IP/互联网协议/寻址 全球地址
ICMP/网络消息管理协议/测试 通信
功能
数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输
14.6.7、数据链路层
MAC地址-网卡/交换机/网桥()
协议
MAC协议 多路访问控制
功能
数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件地址唯一标识每一台主机。
14.6.8、物理层
集线器,网线,光纤这些硬件组成,
功能
将传输下来的帧数据转换成比特流,发送给目标物理层
14.7、TCP/IP:五层/结构/功能
14.7.1、OSI模型和TCP/IP模型的区别
14.7.2、TCP/IP:数据单元/DU
14.8、进制介绍
14.8.1、二进制
14.8.1.1、数值
0、1
14.8.2、十进制
14.8.2.1、数值
0、1、2、3、4、5、6、7、8、9
14.8.3、十六进制
14.8.3.1、数值
0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)
14.8.4、进制转换
14.8.5、单位换算
14.9、更改主机名
hostname 查看主机名
hostnamectl set-hostname 名称 更改主机名
cat /etc/hostname vim /etc/hostname 在文件里更改主机名
网络排错
15、网络实战管理
概述:主要讲解各个层的作用和功能以及如何实现传输
15.1、物理层
主要内容:传输信号、传输介质
15.1.1组成
光纤、双绞线
15.1.2、传输方式
15.1.2.1、传输介质
15.1.2.2、双绞线
15.1.2.3、光纤
15.2、数据链路层
15.2.1、组成
由(交换机)、(MAC物理地址)组成
15.2.2、地址
15.2.3、帧封装
15.2.4、交换机工作原理
学习、广播、转发、更新
1、学习(记录包含书记内的MAC地址表)
2、广播(转发数据到交换机端口上的每台设备上)
3、转发(转发数据)
4、更新(每个交换机的MAC表都会不定时更新,每次发送数据都会刷新表,如果某个端口太久没有连接,那个端口就会被表所移除,下次连接时就会再次保存)
15.2.4.1、组件局域网
15.2.4.2、划分VLAN
15.2.4.3、配置TRUNK
15.3、网络层
IP地址、子网掩码、网段、网络层封装、路由器(网关) 原理、
15.3.1、IP地址
一个主机位有2的8次方个地址 C类地址
两个主机位有2的16次方个地址 B类地址
三个主机位有2的24次方个地址 A类地址
15.3.1.1、简介
15.3.1.2、IP地址分类
15.3.1.3、私有IP地址分类
15.3.1.4、子网掩码分类
15.3.1.5、网络地址(网段)
案例(重要)
15.3.2、网络层封装
15.3.3、路由器原理
路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。
路由器的是实现网络互连,在不同网络之间转发数据单元的重要网络设备
15.3.4、配置路由器
目标,实现不同网段通信
1:准备两台PC机配置两台交换机,一台路由器(图1)
2:配置PC0 PC1 IP 网关(图2)
3:配置路由器的F0/0 F0/1端口、注意:记得点上门的启动(图3)
4:验证结果 PC0 ping PC1
图1
图二
图三
15.4、传输层
15.5、会话层
15.6、表示层
15.7、应用层
16、服务管理
16.1、监控网络服务状态 netstat (重要)
netstat -选项
选项介绍
-an 按一定的排列输出
-p 显示那个进程在调用
例
1查看系统所有的网络服务
1 netstat -anp
2查看指定网络服务状态
2 netstat -anp | grep sshd
16.2、防火墙管理
systemctl status firewalld 查看防火墙状态
systemctl start firewalld 启动防火墙
systemctl stop firewalld 临时关闭防火墙
systemctl disable firewalld 永久关闭防火墙
seLinux
getenforce 查看seLinux状态
setenforce 0 临时关闭seLinux
vim /etc/selinux/config 进入目录永久关闭seLinux
16.3、查看linux服务管理
setup 查看服务
ls -l /etc/init,.d/ 查看有哪些服务
chkconfig指令运用
chkconfig - - list 查看服务运行级别
chkconfig - -list grep sshd 查看指定服务
chkconfig ipconfig - -lilst 查看指定服务
例:
1请将sshd 服务在运行级别为5的时候不要自启动
chkconfig - -level 5 sshd off
2请显示当前系统所有服务的各个运行级别
chkconfig - -list
3查看sshd服务的运行状态’
sercice sshd status
4当运行级别为5时关闭防火墙
chkconfig -level 5 iptables off
5在所有运行级别下关闭防火墙
chkconfig iptables off
6在所有运行级别下开启防火墙
6 chkconfig iptables on
16.4、FTP服务管理
16.4.1、概述、端口
16.4.2、FTP配置
16.4.2.1、安装FTP、准备分享文件
16.4.2.2、启动服务
16.4.2.3、关闭防火墙(重要)
这一步很重要很多时候服务用不上了都是因为防火墙没关掉,把数据包拦住不让进来
16.4.2.4、设置黑、白登录名单
16.4.2.5、设置用户可以上传
16.4.3、访问FTP、下载
访问方式有三种:
1 网页直接访问下载
2 lftp访问下载
3 wget访问下载
16.4.3.1、网页访问、下载
打开网页输入
ftp://服务机IP地址
然后下载
16.4.3.2、lftp访问、下载
注意事项:lftp所下载的文件跟目录都是在进入服务机所在的那个目录,也就是你在那个目录登陆lftp下载的文件就在那个目录
16.4.3.2.1、安装lftp
16.4.3.2.2、登陆ftp服务机
使用用户名登录
lftp 用户名:密码@ftp地址:传送端口(默认21)
16.4.3.2.3、下载文件
16.4.3.2.4、下载目录
16.4.3.3、wget访问、下载
安装wget
下载文件
下载目录
下载目录多个-m参数
下载到指定目录
注:如果要下载目录到指定位置的话wget前面要加一个 -m
16.4.4、FTP上传
16.5、NFS服务管理
16.5.1、概述、作用
16.5.2、服务机安装
准备环境
关闭防火墙 firewalld setenforce
关闭setenforce
设置永久关闭
关闭firewalld防火墙
16.5.2.1、安装服务、创建分配目录、文件
yum -y install nfs-utils
16.5.2.2、配置NFS服务器
s
1、进入配置目录
2、添加配置信息
16.5.2.3、启动NFS服务、查看配置信息
1、启动服务、设置自启动
2、查看配置信息
16.5.3、客户机安装
准备环境
关闭防火墙 firewalld setenforce
关闭setenforce
设置永久关闭
关闭firewalld防火墙
16.5.3.1、安装服务、启动服务
16.5.3.2、查看服务端共享
16.5.3.3、手动挂载、查看挂载
注:前提是查看服务端共享需要能够查看到有共享如上↑
16.5.3.3.1、手动挂载
16.5.3.3.2、查看挂载
16.6、SSH服务管理
16.7、Apache网站服务
16.7.1、介绍
16.7.2、架构
Linux 系统
Apache 服务程序(http)
MySQL 数据库管理软件
PHP 中间软件
16.7.3、静态站点A(虚拟主机)
16.7.3.1、前期准备
16.7.3.2、准备网站源码(网页)目录
16.7.3.3、创建网站配置文件
16.7.3.4、检测配置文件语法、重启服务
16.7.3.5、客户机域名解析
这个步骤做了才能在客户机使用www.a.com访问服务机的网站
16.7.3.6、测试服务
16.7.4、静态站点B(其他目录创建虚拟主机)
B相对于A差别
在于A是在Apache的系统文件夹/var/www/html里创建文件,所以A只需要配置指定配置就行了
而B因为不是在/var/www/html里所以还需要在指定配置里在加一段授权目录命令
16.7.4.1、前期准备
16.7.4.2、准备网站源码目录
16.7.4.3、创建网站配置文件
16.7.4.4、检测配置文件语法、重启格式
16.7.4.5、客户机域名解析
16.7.4.6、测试服务
16.7.5、案例 LMAP架构搭建论坛
16.7.5.1、关闭防火墙
16.7.5.2、下载指定服务、启动服务
16.7.5.3、下载论坛源码
wget http://download.comsenz.com/DiscuzX/2.5/Discuz_X2.5_SC_UTF8.zip
16.7.5.4、创建源码目录、并解压
16.7.5.5、授权限
16.7.5.6、配置Apache虚拟主机、
16.7.5.7、重启服务、检测配置文件语法
16.7.5.8、进入数据库、创建数据库
16.7.5.9、添加域名解析、客户端测试
16.8、DNS服务
16.8.1、概述
16.8.2、基本概念、介绍
16.8.2.1、hosts文件
16.8.2.2、DNS域名系统
16.8.2.3、FQDN全称域名
16.8.2.4、命名空间
16.8.2.5、DNS解析流程
16.8.2.6、DNS解析域名流程解释
1、客户机输入域名→DNS解析器(hosts)(递归查询)如果有查询到相同的域名就不需要执行2、3
2、→本地服务器(最近的DNS服务器)→DNS服务器缓存在离最近区域的服务器里查找,如果查到就不需要执行3、部
3、→13台根服务器→.com顶级域服务器→找到qq.com→(ISP)DNS服务器转发回客户机→客户机访问(迭(die)代查询)
16.8.2.7、服务器类型
16.8.2.8、正向解析/反向解析
16.8.2.9、案例
扩展知识
1、‘清理内存
echo 3 > /proc/sys/vm/drop_caches
2、保存内存数据
就是当要重启或者其他事情的时候 将内存的数据保存到磁盘中
3、重新获取DHCP的IP地址
重新获取IP地址
4、对比文件
命令:diff
5、查看服务启动时间
6、清理内存
7、指定范围内得随机数
shuf -i1-60 -n1 【指定1~60内得随机数】
8、调整服务器时间跟真实时间一样
检查ntp偏差 ntpdate -d -b 11.125.0.4
调整ntp偏差 ntpdate -u 11.125.0.3
内核参数调整
https://segmentfault.com/a/1190000019864583
小命令
figlet
sl