5.25 linux

3.1 vi 文本编辑器

使用yum在线安装vi的升级版本vim,安装前要确保虚拟机能上网

ping www.baidu.com 正常执行时,执行下面命令

yum -y install vim* vim为后面课程做准备,配置文件非常大,修改时更醒目

3.1.1 vi/vim概念:

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

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

3.1.5 vim

vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。

vim的这些优势主要体现在以下几个方面:

1、多级撤消

我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。

2、易用性

vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。

3、语法加亮

vim可以用不同的颜色来加亮你的代码。

4、可视化操作

就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。

5、对vi的完全兼容

某些情况下,你可以把vim当成vi来使用

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

3.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

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

3.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 // 重启了

其他任何普通用户不能执行命令,都可以这么做。。。。

3.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)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值