一、 vi 文本编辑器
使用yum在线安装vi的升级版本vim,安装前要确保虚拟机能上网
ping www.baidu.com 正常执行时,执行下面命令
yum -y install vim*
1.vi/vim概念:
在CentOS中,常用的文本编译器是vi编译器和它的升级版本vim编译器。 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。vi也是Linux中最基本的文本编辑器,学会它后,将在Linux的世界里畅行无阻。
2.vi/vim的三种模式及各个模式之间的转换关系
基本上vi可以分为三种状态,分别是命令模式(上图中的一般模式) (command mode)、 插入模式(Insert mode)和底行模 式 (last line mode)
1) 命令行模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。
3. 模式切换操作步骤
(1)如果想退出 vi,则需要先切换到底行模式;
(2)在插入模式下,先按ESC键,然后按下:键,则切换到底行模式;
(3)如果想保存当前编辑的内容,在:后输入wq! ,即 :wq! ,这样就将文本保存了.然后退出了vi编 辑器。
(4)如果不想保存当前编辑的内容,在:后输入q! ,即 :q! ,这样放弃本次编辑直接退出了vi编辑器。 ;
4.编辑命令和快捷方式:
插入命令:(一般模式进入到插入模式)
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
定位命令:
:set nu 显示行号
:set nonu 取消行号
:n 到文本的第n行
gg 到文本的第一行
G 到文本的最后一行
替换和取消命令(一般模式下):
u undo,取消上一步操作(windows下ctrl+z)
ctrl + r redo,返回到undo之前 (windows下ctrl+y)
r 替换光标所在处的字符
R 从光标所在处开始替换,按Esc键结束
删除命令:
x 删除光标所在处字符
nx 删除光标所在处后的n个字符
dd 删除光标所在行。
ndd 删除n行
dG 删除光标所在行到末尾行的所以内容
D 删除光标所在处到行尾的内容
:5,7d 删除指定范围的行
常用快捷键:
Shift+ zz 保存退出,与“:wq”作用相同
v 进入字符可视模式
V 或 Shift + v 进入行可视模式
Ctrl + v 进入块可视模式
ctrl+b:屏幕往后移动一页
ctrl+f:屏幕往前移动一页
按"$"符号将光标移动到行尾
按"^"将光标移到行头
yy:复制光标所在行到缓冲区。
nyy:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。
用"/"加上要查找的内容.例如"/hello"或者是"?hello"也是可以的.
替换:在底行模式下使用“s/原字符/新字符/g” 代表当前行所有 如果想全局替换,s变为%s
ctrl+z 非正常退出 会有备份文件,需要删除备份文件才会正常进入
产生交换文件后,解决办法
ls -a /path
rm -rf .xxxx.swp 删除交换文件 如果多个 rm -rf xxx.sw*
二、用户权限管理,组管理和时间管理
2.1 用户管理
1)保存用户信息的文件:/etc/passwd
文件详解: root:x:0:0:root:/root:/bin/bash
用户名 用户登陆系统的用户名
密码 密码位
UID 用户标示号
GID 默认组标示号
描述信息 存放用户的描述信息
宿主目录 用户登陆系统的默认目录,默认是在/home/下
命令解析器 用户使用的Shell,默认是bash
2)保存用户密码信息的文件:/etc/shadow
root:$6$t9/xsbuGPTNn.TEo$915S0CmKqu/dz5B5zEkQ7TbFzs91ZFfU0Ct6Sdr91sB0leAqc4Ffse3SDm.Gvlu5jd1KTbHoGrLdEcHZMGUvQ/::0:99999:7:::
文件详解:
用户名 登陆系统的用户名
密码 加密密码
最后一次修改时间 用户最后一次修改密码距现在的天数,从1970-1-1起
最小时间间隔 两次修改密码之间的最小天数
最大时间间隔 密码有效天数
警告时间 从系统警告到密码失效的天数
账号闲置时间 账号闲置时间
失效时间 账号失效的绝对天数(从1970-01-01开始)
标志 保留字段
3)用户分类:
超级用户:(root,UID=0)
普通用户:( centos7UID在1000到60000) centos6(500-6000)
伪用户:( centos7UID在1到999) centos6(1-499)
系统和服务相关的:bin、daemon、shutdown等
进程相关的:mail、news、games等
伪用户不能登陆系统
4) 添加用户命令:useradd
-u 指定用户ID(uid)
-g 指定所属的组名(gid) 主组
-G 指定多个组,用逗号“,”分开(Groups) 其他组
-c 用户描述(comment) ;
-e 失效时间(expire date)
创建:
useradd -u 1888 -g users -G sys,root -c "描述信息" uqy142a
useradd uqy142b
useradd uqy142c
useradd uqy142d
useradd uqy142e
(centos 7之前的版本,伪用户从1-999 centos7之后伪用户使用1-999 当前版本普通用户ID应该是1000到60000)
设置密码:
passwd uqy142a //密码设置两次
passwd uqy142b
切换用户 su
su -l uqy142a
su -l uqy142b
su -l uqy142a
su -l root
超级用户向普通用户切换不需要密码,普通用户向其他普通用户或者root用户切换都必须要密码
5)修改用户命令:usermod(user modify)
-l 修改用户名 (login)usermod -l a b(b改为a)
usermod -l uqy142cc uqy142c
-g 添加组 usermod -g sys tom
groups uqy142a
usermod -g root uqy142a
groups uqy142a
-G 添加多个组 usermod -G sys,root tom
usermod -G sys,users uqy142a
groups uqy142a
–L 锁定用户账号密码(Lock)
usermod -L uqy142b //锁定b用户,普通用户即使被锁定,root依然可以登录
su -l uqy142a
su -l uqy142b //发现密码正确,依然提示鉴定故障 因为被锁定
–U 解锁用户账号(Unlock)
su -l root //切换到root 解锁
usermod -U uqy142b
su -l uqy142a
su -l uqy142b //发现密码正确,就切换用户了
6)删除用户命令:userdel(user delete)
-r 删除账号时同时删除目录(remove)
userdel uqy142d //只是删除用户信息
tail -5 /etc/passwd
ls /home
userdel -r uqy142e
tail -5 /etc/passwd
ls /home
2.2 组管理
1)保存用户组的文件:/etc/group
文件详解:
组名 用的所在的组
组密码 密码位,一般不使用
GID 主标示号
组内用户列表 属于该组的用户列表(从组)
2)添加组:groupadd
-g 指定gid
groupadd -g 16666 groupa
groupadd groupb
groupadd groupc
tail /etc/group //显示文件后10行
3)修改组:groupmod
-n 更改组名(new group)
groupmod -n groupaa groupa //把groupa的名称改为groupaa
tail /etc/group
4)删除组:groupdel
groupdel groupaa //删除组
tail /etc/group
5) groups 显示用户所属组
groups 用户名
groups uqy142a
6) 其他组相关命令
chgrp 改变目录或者文件所属组(只改组)
用法:
ll |grep aaa //查看aaa所属组
chgrp groupb aaa 改变aaa原来所属组root 改为groupb
ll |grep aaa //查看aaa所属组
chown 改变目录或者文件 所属用户及所属组
ll |grep aaa //查看aaa所属用户及组
chown uqy142a:groupc aaa //改变aaa目录的所属用户及所属组
ll aaa
ll aaa/bbb/ //发现子孙目录没有变化
chown -R uqy142a:groupc aaa // 子孙目录都改变
ll aaa
ll aaa/bbb/ //发现子孙目录都变化
3 Sudo命令
一般用在非root用户下,临时提升非root用户的权限。
第一步:必须要在/etc/sudoers中配置非root用户
第二步:执行命令sudo reboot,输入user1 的密码,成功重启。
ls /sbin|grep reboot
ls /sbin|grep shutdown 这些命令都是root用户才有权限执行的。
su -l uqy142a
sudo shutdown -h now //提示uqy142a不在sudoers文件中 无权执行
su -l root
vim /etc/sudoers
:100
复制100 修改用户名
su -l uqy142a
sudo reboot // 重启了
其他任何普通用户不能执行命令,都可以这么做。。。。
4 时间管理
GMT Greenwich Mean Time 格林尼治标准时间
CST 中国时区
CST可视为美国、澳大利亚、古巴或中国的标准时间。
CST:Central Standard Time (USA) 中部标准时间(美国) UTC -6:00
CST:Central Standard Time (Australia) 中部标准时间(澳大利亚) UTC 9:30
CST:China Standard Time 中国标准时间(北京时间) UTC 8:00
CST:Cuba Standard Time 古巴标准时间 UTC -4:00
UTC 世界统一时间、世界标准时间、国际协调时间
DST 夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。
PDT (Pacific Daylight Time)太平洋夏季时间。
列出所有时区:timedatectl list-timezones
查看当前系统时间:timedatectl
设置系统时区为上海: timedatectl set-timezone Asia/Shanghai
查看当前时间:date
查看硬件时间:hwclock -r or --show
修改当前时间:date MMDDhhmmYYYY
date '121212122020'
date -s '2011-07-07 11:11:11'
用系统时间同步硬件时间:hwclock -w or --systohc
用硬件时间同步系统时间:hwclock -s or --hctosys
使用ntpd服务同步网络时间:(centos7默认没有该服务,需要安装)
yum -y install ntp ntpdate 安装ntp ntpdate服务
查看启动状态 ntp(network time protocol) ntpd 网络时间协议服务:(centos7下默认没有该服务)
service ntpd status
手动同步:
ntpdate cn.pool.ntp.org
启动:
service ntpd start
设置开机启动(chronyd时间服务和ntpd冲突)
systemctl disable chronyd
systemctl enable ntpd //设置开机启动
ntpq -p 查看 同步间隔
结果详细解释如下:
ntpq -p 命令列出了所有作为时钟源校正过本地NTP服务器时钟上层NTP服务器的列表,每一列的含义分别如下:
remote:响应请求的NTP服务器的名称(IP地址或域名),带“*”的表示本地NTP服务器与该服务器同步
refid:远程NTP服务器使用的上一级ntp服务器的IP地址
st:远程NTP服务器的级别,由于NTP是层级结构,有顶端的服务器,多层的Relay Server再到客户端。所以服务器从高到低,级别可以设定为1~16级。为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器。
t:本地NTP服务器与远程NTP服务器的通信方式。u:单播;b:广播;I:本地
when:上次成功请求后到现在的秒数
poll:本地NTP服务器与远程NTP服务器同步的时间间隔。
reach:这是一个八进制的值,用来测试衡量前八次查询是否成功和服务器连接。377表示都成功,0表示不成功
delay:网络延时,单位为微秒(μs)
offset:本地NTP服务器与远程NTP服务器的时间偏移,单位为毫秒(ms)。offset越接近于0,主机与NTP服务器的时间越接近
jitter:查询偏差的分布值,用于表示远程NTP的网络延时是否稳定,单位为微秒(μs)。