(三)Linux vi 文本编辑器,用户管理,组管理,Sudo命令,时间管理

具体内容

1.1 vi 文本编辑器

使用yum在线安装vi的升级版本vim,安装前要确保虚拟机能上网
ping www.baidu.com 正常执行时,执行下面命令
yum -y install vim* vim为后面课程做准备,配置文件非常大,修改时更醒目

1.1.1 vi/vim概念:

在CentOS中,常用的文本编译器是vi编译器和它的升级版本vim编译器。 vi编辑器是所
有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。vi也
是Linux中最基本的文本编辑器,学会它后,将在Linux的世界里畅行无阻。

1.1.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.3 模式切换操作步骤

(1)如果想退出 vi,则需要先切换到底行模式;
(2)在插入模式下,先按ESC键,然后按下:键,则切换到底行模式;
(3)如果想保存当前编辑的内容,在:后输入wq! ,即 :wq! ,这样就将文本保存了.然后退出了vi编 辑器。
(4)如果不想保存当前编辑的内容,在:后输入q! ,即 :q! ,这样放弃本次编辑直接退出了vi编辑器。 ;

3.1.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*

1.2 用户权限管理,组管理和时间管理

1.2.1 用户管理

1)保存用户信息的文件:/etc/passwd

文件详解: root❌0:0:root:/root:/bin/bash
用户名 用户登陆系统的用户名
密码 密码位
UID 用户标示号
GID 默认组标示号
描述信息 存放用户的描述信息
宿主目录 用户登陆系统的默认目录,默认是在/home/下
命令解析器 用户使用的Shell,默认是bash

2)保存用户密码信息的文件:/etc/shadow

root: 6 6 6t9/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

1.3.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/    //发现子孙目录都变化

综合练习:
1:在linux系统创建三个用户 admin1 admin2 admin3,admin1和2 同属于groupa组 admin3 属于groupb组
2:使用root登录创建/home/test目录,并将目录所属组指定为groupa组,给test目录赋权限770
3: 使用admin1登录,进入test目录成功,使用admin2登录,进入test目录成功,使用admin3登录,进入test目录失败

1.3.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 // 重启了
其他任何普通用户不能执行命令,都可以这么做。。。。

1.3.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)。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杵意

谢谢金主打赏呀!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值