提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
vi/vim编辑器 用户和 组管理及 时间
一、vi文本编辑器and vim
1.安装介绍
yum -y install vim*
安装
在CentOS中,常用的文本编译器是vi编译器和它的升级版本vim编译器。 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。vi也是Linux中最基本的文本编辑器,学会它后,将在Linux的世界里畅行无阻。
2.vi的 三个模式 和各个模式之间的转换
视图
- 命令模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 - 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。 - 低行模式(Last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。 不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。
3.模式切换
进入 vim
- 退出vim 直接 esc 进入低行模式 在 shift +:
- 如果想保存当前编辑的内容,在:后输入wq! ,即 :wq! ,这样就将文本保存了.然后退出了vi编 辑器。
- 如果不想保存当前编辑的内容,在:后输入q! ,即 :q! ,这样放弃本次编辑直接退出了vi编辑器。 ;
注意 如果 不小心按 ctrl + z
会强制当前进程转为后台,并使之停止。
可以 jobs
显示当前暂停的进程
- bg %N 使第N个任务在后台运行
- fg %N 使第N个任务在前台运行
- 直接 bg 或者 fg 会对 最后一个进行进程操作
4.编辑命令
插入命令:(一般模式进入到插入模式)
- i 在光标前插入
- I 在光标当前行开始插入
- a在光标后插入
- A在光标当前尾部插入
- o在当前行的下一行插入
- O 在当前行的上一行插入
定位命令:
- set nu 显示行号
- set nonu 取消行号
- n 到文本的第n行
这两个是在普通模式直接按的 - gg 到文本的第一行
- G 最后一行
替换和取消命令(一般模式下): - u undo,取消上一步操作
- ctrl + r redo,返回到undo之前
- r 替换光标所在处的字符
- R 从光标所在处开始替换,按Esc键结束
删除命令:
- x 删除光标所在处字符
- nx 删除光标所在处后的n个字符
- dd 删除光标所在行。
- ndd 删除n行
- dG 删除光标所在行到末尾行的所以内容
- D 删除光标所在处到行尾的内容
- :5,7d 删除指定范围的行
常用快捷键:
- v 进入字符可视模式
- V 或 Shift + v 进入行可视模式
- Ctrl + v 进入块可视模式
- ctrl+b:屏幕往后移动一页 直接按 pgup
- ctrl+f:屏幕往前移动一页 直接按 pgDn
- 按"$"符号将光标移动到行尾 不如直接按 Home
- 按"^"将光标移到行头 直接按 End
- yy:复制光标所在行到缓冲区。
- nyy:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。
用"/“加上要查找的内容.例如”/hello"或者是"?hello"也是可以的.
替换:在底行模式下使用“s/原字符/新字符/g” 代表当前行所有 如果想全局替换,s变为%s
二、用户权限管理和组管理
1、用户管理
1.1、用户信息保存文件 :cat etc/passwd
文件详解: root:x:0:0:root:/root:/bin/bash
:号分割
- 用户名 用户登陆系统的用户名
- 密码 密码位
- UID 用户标示号
- GID 默认组标示号
- 描述信息 存放用户的描述信息
- 宿主目录 用户登陆系统的默认目录,默认是在/home/下
- 命令解析器 用户使用的Shell,默认是bash
1.2、用户分类:
- 超级用户:(root,UID=0)
- 普通用户:(UID在1000以后)
- 伪用户:( UID在1到999)
系统和服务相关的:bin、daemon、shutdown等进程相关的:mail、news、games等
伪用户不能登陆系统
1.3、保存用户密码信息的文件:/etc/shadow
1.4、用户文件详情
- :号分割
- 用户名 登陆系统的用户名
- 密码 加密密码
- 最后一次修改时间 用户最后一次修改密码距现在的天数,从1970-1-1起
- 最小时间间隔 两次修改密码之间的最小天数
- 最大时间间隔 密码有效天数
- 警告时间 从系统警告到密码失效的天数
- 账号闲置时间 账号闲置时间
- 失效时间 账号失效的绝对天数(从1970-01-01开始)
- 标志 保留字段
1.5、添加用户命令:useradd
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
主要
-u 指定用户ID(uid)
-g 指定所属的组名(gid) 主组
-G 指定多个组,用逗号“,”分开(Groups) 其他组
-c 用户描述(comment) ;
-e 失效时间(expire date)
创建: useradd -u 888 -g users -G sys,root -c "hr zhang" zhangsan
设置密码: passwd zhangsan
1.6、切换用户 su
name
su
参数说明
-f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
-l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。
-m, -p ,–preserve-environment:执行su时不改变环境变数。
-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
–help 显示说明文件
–version 显示版本资讯
USER:欲变更的使用者账号,
ARG: 传入新的Shell参数。
(centos 7之前的版本,伪用户从1-499 centos7之后伪用户使用1-999
当前版本普通用户ID应该是1000到60000)
1.7、修改用户命令:usermod(user modify)
- -l 修改用户名 (login)usermod -l a b(b改为a)
- -g 添加组 usermod -g sys tom
- -G 添加多个组 usermod -G sys,root tom
- –L 锁定用户账号密码(Lock)
- –U 解锁用户账号(Unlock)
锁定示范
解锁示范 注意解锁需要重新设置密码
2、组管理
保存用户组的文件:cat /etc/group
文件详解:
组名 用的所在的组
组密码 密码位,一般不使用
GID 主标示号
组内用户列表 属于该组的用户列表(从组)
- 添加组:groupadd
-g 指定gid - 修改组:groupmod
-n 更改组名(new group) - 删除组:groupdel groups 显示用户所属组
Sudo命令
一般用在非root用户下,临时提升非root用户的权限。
第一步:必须要在/etc/sudoers中配置非root用户
第二步:执行命令sudo reboot,输入user1 的密码,成功重启。
3、时间管理
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 list-timezones
查看当前系统时间:timedatectl
设置系统时区为上海: timedatectl set-timezone Asia/Shanghai
查看当前时间:date
查看硬件时间:hwclock -r or --show
修改当前时间:date MMDDhhmmYYYY == date -s ‘2011-07-07 11:11:11’
用系统时间同步硬件时间:hwclock -w or --systohc
用硬件时间同步系统时间:hwclock -s or --hctosys
使用ntpd服务同步网络时间:(centos7默认没有该服务,需要安装) yum -y install 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服务器同步的时间间隔。