Vim—编辑模式的基础操作
Vim三种模式:编辑模式或输入模式、命令模式、末行模式
Vim编辑器的使用:
使用vim打开文件
Vim xxx(文件名)
使用vim保存文件
按ctrl+c进入末行模式,并且输入:wq!代表保存并且退出
输入:q!则是不保存文件内容并且强制退出
vim相关基础命令
gg 移动光标到首行
G 移动光标到末行
Ctrl+b 向上翻屏
Ctrl+f 向下翻屏
Ctrl+u 向上翻半屏
Ctrl+d 向下翻半屏
yy 复制当前行
P 粘贴
dd 剪切当前行
:set nu 显示行号
Vim编辑文件时不是正常退出,会产生临时文件,但是没办法直接看到,使用ls -a可以查看隐藏文件,这是服务器自己进行对文件的备份。
系统是在硬件上建立的,软件是建立在有操作系统以及硬件的设施上才可以进行使用。我们常常使用虚拟机的linux系统时不好对文件进行操作,所以我们使用xshell(命令行解释器)也是一个app
相对路径:相对于当前目录的路径(上一级..)
绝对路径:从根开始描述的路径
创建文件使用命令mkdir
mkdir -pv /home/{xiayingying}/{dir1.111}.nihao}
-v | 显示创建过程 |
-f | 强制 |
以“.”开始的文件都是隐藏文件 | |
* | 不可匹配隐藏文件 |
用户以及组的基本概念和作用,信息存储文件:
记录账户信息【etc/passwd】passwd的结构:用户名:密码:uid:gid:描述:home:shell(命令解释器)
配置文件都在etc中
用户1,用户2=>组
用户密码信息文件/etc/shadow
组名,组密码,组id,多一个文件来装用户的邮件在/var里
创建用户useradd xxx
看用户id id xxx
更改用户密码 passwd xxx
指定用户家目录useradd xxx -d /userxxx
指定uid useradd xxx -u 111
2、组信息文件/etc/group
通过明文密文进行密码破解:例如密文853,密码-333,解密后明文520
登录名又由加密方式和内容组成
创建组用户groupadd xxx
会有邮件/var/spool/mail/root
创建组并加组号groupadd xxx -g 组号(111)
删除组groupdel xxx
组的类型:基本组和附加组
-g | 制定基本组 |
-G | 制定附加组 |
Usermod aaa -g ccc | 用户aaa的基本组为ccc |
Usermod aaa -G ccc | 用户aaa的附加组为ccc |
3、最后一次修改时间指的是从1970-1-1开始算起
4、最小时间间隔
5、最大时间间隔0:99999密码有效期无限
6、警告时间
7、不活动时间
8、失效时间
9、保留
权限问题:
System系统是最大权限,不可删除,甚至比超级管理者的权限都大
Centos7以后通过uid号可以区别用户
0 特权用户
1-499 系统用户
1000+ 普通用户
(中间500-1000的也为是设计者送给系统的uid)
Internet database center 互联网数据中心,ups不间断供电系统,每台服务器都是双电(ups+市电)油机发电机会给ups进行供电,但是在立即停电以后是ups和市电进行供电,但是ups的电并不是无限的,所以同时会使用发电机对ups进行供电,使服务器不因为停电而停止运作
密码过期:
需成功输入用户名和密码
提示过期并且修改密码
输入两次新密码
登陆成功
文件操作
查看目录 ls
文件内容 cat vim more head tail grep
删除用户 userdel -r xxx
只有根用户才可以更改别的用户的密码<root>
Usermod -s /sbin/nologin niuniu修改登录shell(/nologin是不准登录)
提权(进行了解)
普通用户无特权su:
尽量少用root
需执行特殊指令可使用sudo切换到root
永久提权switching users with su
临时提权running commands as root with sudo(sudo仅次于su)
配置文件/etc/sudoers 107行
%wheel普通用户直接将普通用户-G加入附加组进入特权组(解决提权)
基本权限:权限对象、权限类型
权限对象:属主:u、属组:g、其他用户:o
特殊对象:所有人a(u+g+o)
权限类型:读:r=4、写:w=2、执行:x=1
写文件vim xxxx mkdir xxxx:wq(写一个文件)bash 1.txt 可运行<文件变程序>
授权:u+r 用户得到读的权限
g+x 组得到执行的权限
U=5=4+1 读+执行
G=6=4+2 读+写
U=7=4+2+1 读+写+执行
更改权限chmod u+r xxxx(可以用+-=,=指的是覆盖原先文件的权限)
通过数字权限进行授权chmod 760 file.txt
Chown=change owner更改属主
Chown user group /xxx/xxx/xxx(更改属主 用户 组 绝对路径)
Chgrp group /xxx/xxx/xxx(更改属组 组 绝对路径)
Chmod | 更改权限 | 更改文件夹不会影响文件夹中的文件,-R才会更改文件以及文件夹内部的文件,-R递归使目录下所有目录和文件同意 |
Chown | 更改属主 | |
Chgrp | 更改属组 |
基本权限ACL:
ACL | 设置不同用户,不同基本权限,对象数量不同 |
UGO | 只设置一个用户,一个组和其他人 |
删除用户 Setfacl -x u:xxx
Setfacl -m u/g:名:授权 xxx 设置对象名和权限
查看权限getfacl xxxx(acl权限后在查文件后有+说明除了人外还有别的权限)
删除文件setfacl -d xxx
特殊权限:
Suid 针对文件所设置特殊权限,使调用文件用户临时有属主能力(谁访问就把谁当属主,但是不要随便进行设置)
Chatter文件属性
Watch -n1 ‘getfacl xxx’ 查看属性
Chattr -i xxx增加属性(有i以后就锁定属性,超管都无法更改,删掉属性以后才可以更改名字)
+a 只允许追加 +c 往磁盘存会压缩
进程掩码umask,创建文件默认644,创建目录默认755,umask影响系统默认权限(755=777-0022、644=755-111)umask配合计算机系统运算
权限有四个位,分别为特别位suid 属主 属组 其他
进程:一个程序运行起来就叫做进程
静态查看ps(process status)
动态查看top
程序结构:
%MEN内存占有率
vs2占用虚拟内存
Kss占用实际内存
TTY进程运行终端
Ps | a | 终端所有程序 |
u | 以用户为主 | |
x | 不以终端机区分 | |
-ef | 父子进程关系 | |
axo xxx | 写啥出啥 |
Top动态进程查看<实时任务管理>
上半部分性能,下半部分进程状态,优先级越大占用cpu大
Top -d 3三秒刷新一次
Top -d 3 -p xxx(pid) 查看某个进程3s刷新一次
使用信号控制进程,kill -l 列出所有支持的信号
Kill -1 8878 8878这个程序配置重新读
Kill -15 xxxx 不用你了,你自己退出(正常关闭某个进程)
进程优先级nice,值越大,优先级越低;值越小,优先级越高
修改nice值 renice -20 xxxxx(创建睡眠示例程序)
起优先级nice -n -5(优先级) sleep 7000(不加-n不能识别负数)
Proc虚拟文件系统(数字为进程信息)
Cpu信息文件地址/proc/cpuinfo
内存/proc/meminfo
内核/proc/cmdline
FD文件描述(作用:为了省去冗长的绝对路径)
0 标准输入
1 标准正确输出
2 标准错误输出
3+ 是文件可读可写
重定向管道
重定向“>”“>>”
‘>’覆盖原来文件的内容
‘>>’追加在原来文件的内容里
管道“|”
1、进程管道piping
tee管道(交给另外一程序进行处理)
邮件mail -s “xxxx” alice(账号)然后开始编写再加个.
mail则是查看第几条按几并且回车
输入重定向可发送邮件,先写文件vim xxxx
Mail ip < xxx.txt可登录账号进行查看
磁盘管理
Linux中分为SATA(串口)和IDE(并口,已经不怎么用了)
/dev/sda(s:sata;d:disk;a:第一块)
/dev/sdb(s:sata;d:disk;b:第二块)
磁盘分区用MBR(常用)和GPT
MBR:最大容量小于2TB主引导记录,超过四个分区需要放弃主分区,改为扩展分区和逻辑分区
GPT:大于2TB硬盘,全局唯一表示分区表
MBR分区:
分区
查看硬盘ll /dev/sd*
启动分区工具fdisk /dev/sdb n分区 p主分区 e扩展分区 选择数字(分区号)
起始扇区(划分多少到多少的的分区)
刷新分区表partprobe /dev/sdb(分区准备)
格式化
mkfs.ext4 /dev/sdb1 文件系统进行格式化
挂载
一个分区一个挂载点,mount是临时挂在并不是永久挂载
创建挂载文件mkdir /mnt/disk1
挂载文件mount -t ext4 /dev/sdb1/ /mnt/disk1/
查看挂载df -hT
查看文件占了多少占比lsblk
启动分区工具-进入会话模式-刷新分区-查看分区结果-格式化-创建挂载文件-手动挂载
交换分区管理(swap)提升内存容量,类似于虚拟内存,补充内存使用,推荐设置为内存的2倍
查看交换分区free -m
文件放在/dev/fstab下为永久挂在(但是不要用,因为可能会导致虚拟机在起不来)
逻辑卷LVM
用于磁盘扩张并且随意扩张,因为文件磁盘空间是有限的,不便于管理,所以通过逻辑卷可以解决这个问题
PV:物理卷physical volume
VG:卷组volume group
LV:逻辑卷logical volume
普通分区 | 逻辑卷分区 |
买物理磁盘 | 买物理磁盘 |
格式化 | 变物理卷 |
分区 | 加入卷组 |
挂载 | 卷组中抽调空间制造逻辑卷 |
基本管理 | 格式化 |
| 挂载 |
| 基本管理 |
创建物理卷pvcreate /dev/sdf
创建卷组vgcreate xxxx /dev/sdf
创建逻辑组lvcreate -L(多大200m) -n xxx+组名(是从卷组中拿)
mkfs.ext4 /dev/vg1/lv1(先卷组后逻辑卷)
Mkdir /mnt/lv1
Mount /dev/vg1/lv1 /mnt/lv1
卷组无空间需要进行管理,卷组有空间直接扩容
查看可以使用pvs、vgs
Lv扩 | Vgs-lvextend -L +4g /dev/vg1/lv2 |
fs扩 | df -hT - resize2fs /dev/vg1/lv2 |
文件系统详解
前边我们说的格式化指的是将文件分成4096字节大小的一块一块,目的是创建文件系统,相当于超市门前的储物柜一样,我们将东西存在柜子,一个柜子格子相当于一个4096字节,然后我们在查找文件的时候,会通过索引将找到柜子格而后对文件进行管理,挂载相当于一个文件柜子的入口
文件系统ext4
Node类型:索引文件系统
系统限制:4096字节为一个整体(block“块”)存储实际数据
记录块的“小票”:相当于索引,一个索引占用128个字节
超级块儿=block+innode(块+索引)
RAID
为了保障数据的安全性,提高读写速度,我们会使用RAID进行自动备份数据,并且解决磁盘冗余的问题
<RAID1>需要两块磁盘,镜像卷,有百分之50的容量,读写一般,容错,不过盘越多读写速度就越快,利用率n-1/n
<RAID5>至少需要三块大小相同的磁盘,不过数据盘有n-1个,剩下一个为校验盘,如果再加一块,则这块磁盘为热备盘,如果坏了一块盘,热备盘直接上岗顶替,也不会发生数据丢失,因为数据盘和校验盘都是通过计算机算法得出的,相同的也可以反推回去重新恢复坏掉的磁盘的数据
<RAID0>2块以上磁盘,读写快,容量百分之百但是不容错
【硬RAID】需要raid卡
【软RAID】直接可以进行配置
软RAID配置:
准备4块硬盘(3块数据盘+1块校验盘)
创建RAID mdadm -c /dev/xxx -l5(级别) -n3(数量) -x(热备盘) | /dev/sd?硬盘
格式化,挂载
mkfs.ext4 /dev/xxx
mkdir /mnt/raid5
Mount /dev/xxx /mnt/raid5
查看创建的raid mdadm -a /dev/xxx
文件查找,打包文件及压缩
Which:命令查找
Find:文件查找,针对文件名
Locate:文件查找,依赖数据库(updatedb更新数据库)
Find /etc -name “xxx” 命令+路径+选项+名字 | |
-iname | 区分大小写(名字) |
-size | 文件大小 |
-maxdepth | 根据文件路径的级别 |
-user | 属主xxx的文件 |
-group | 属组xxx的文件 |
-type f/d | 文件类型 |
-perm | 文件权限 |
文件打包:通常对文件目录进行打包
Tar -f xxx.tar /etc 命令+选项+包名+打包对象 | |
-xf | 解压 |
-cfz | gz压缩打包 |
-cjf | bz压缩打包 |
-cJf | Xz压缩打包 |
从快到慢,文件压缩后大到小排序tar>gz>bz>xz
软件安装:
Yum install -y 安装包的名字
Yum的配置文件在/etc/yum.repos.d
[dvd]库名称
name=dvd库描述
Baseurl=file:///mnt/cdrom下载库的具体位置
Gpgcheck=0(此处未关闭,包检验)
日志管理rsyslogd系统日志管理
观察rsyslogd程序 ps aux | grep rsyslogd
系统主日志文件/var/log/messages
认证、安全/var/log/secure
Yum /var/log/yum.log
邮件有关日志/var/log/maillog
和系统启动相关/var/log/dmesg
配置文件/etc/rsyslogd.conf(说明+开关)
<RULES>
程序+级别+日志文件配置
*任何级别
Emerg 最高级日志
Alert 报警级别
Crit 致命行为
Systemctl start httpd打开http
网络管理
配置文件打开
ONBOOT=yes(网卡,是否启用该设备)
BOOTPROTO=none手动(none/static或自动dhcp)
ss -tnl 查看端口号
企业服务(网站,文件发放,域名解析)
1、FTP 2、NFS 3、SSH
FTP(文本传输协议)vsftp
控制端口command21 data20
安装软件
准备将要发送的文件
打开ftp服务
关闭防火墙
通过客户端
安装工具yum -y install lftp
访问服务器
下载目录mirror pub
下载文件get abc.txt
NFS(网络文件系统)nfs-utils
安装软件
创建文件存储网站代码mkdir /webdata
放置测试页面echo “x” > /webdata/index.html
Nfs配置文件vim /etc/exports
/webdata ip 发布资源的目录
Exportfs -v 查看发布的文件
Web进行手动挂载 mount -t nfs ip /webdata /var/www/html
通过客户端
安装工具
查看存储端共享
手动挂载
网站
网站分为静态网站和动态网站
B/S架构指的是浏览器和服务器的架构
Html:超级文本标记语言
网页:使用html、php、java等语言格式书写的文件
主页:网页中呈现给用户第一个页面
网站:多个网页组合而成一台网站服务器