linux基础day09
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础day09相关的知识,希望对你有一定的参考价值。
vim文本编辑器
什么是vim
vi
和 vim
命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数。
vim
编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成。
vim
其实是vi
的升级版
为什么要使用vim
vim
是学习linux最重要的命令之一
vim和vi的区别
vim 能高亮显示
vi 不能高亮显示
其他功能一样
vim的三种模式
命令模式
# 光标跳转
gg # 跳转文本行首
G # 跳转文本行末
Ngg # N代表数字 跳转文本第n行
例: 1gg 跳转至第一行
2gg 跳转到第二行
^ # 跳转至行首
$ # 跳转至行末
# 复制粘贴
yy # 复制光标所在位置的一行
Nyy # N代表数字 复制光标所在行及后N行
p # 粘贴复制内容至光标所在下一行(小写)
P # 粘贴复制内容至光标所在上一行(大写)
# 剪切
dd # 删除或者剪切 可以通过p粘贴
Ndd/dNd # 删除/剪切光标所在行及后N行 N代表数字
dG # 删除光标所在行至结尾
x # 删除光标所在字符(小写)
X # 删除光标所在前的一个字符(大写)
# 撤销
u # 撤销上一步操作
r # 替换光标所在字符
R # 持续替换直到按下ESC
ctrl + r # 恢复撤销,回滚
编辑模式
# 进入编辑模式命令模式的快捷键全部失效
i # 在光标前进入编辑模式
I # 进入编辑模式,光标跳转至行首
a # 光标往后退一格,进入编辑模式
A # 进入编辑模式,光标跳转到行末
o # 跳转至光标下一行,进入编辑模式
O # 跳转至光标上一行,进入编辑模式
s # 把光标下的字符删除,并进入编辑模式
S # 删除整行并进入编辑模式
末行模式
:wq # 保存退出
:w # 保存
:q # 退出
:wq! # 强制保存退出
:q! # 强制退出
:w! # 强制保存
:x # 保存退出
shift+zz # 保存退出
:number # 数字!!,跳转到第n行
例 :1 跳转至第一行
:2 跳转至第二行
:3 跳转至第三行
:set nu # 显示行号
:set ai # 自动缩进
:set ic # 不区分大小写
:set list # 显示制表符,显示结尾符号和TAB符号
:set hl # 高亮
:set no命令 # 取消命令
末行模式的查找和替换
/关键字 # 使用/匹配关键字
# 替换
%s/root/xxx/g
s search 查询
g global 全局
% 代替所有行
视图模式
ctrl + v
# 集体注释
ctrl + v
shift + g (G)移动至末行
shift +i (I)光标移至行首进入编辑模式
shift +3 (#)
ESC ESC
#群体取消注释
x
vim环境变量优化
~/.vimrc 个人环境变量(优先级高) /etc/vimrc 全局环境变量
# vim ~/.vimrc
syntax on
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
set number
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set ruler
set incsearch
set showmatch
set matchtime=10
set ignorecase
set cursorline
set t_Co=256
colorscheme molokai
#语法检查及高亮
syntax on
#设定默认解码
set?fenc=utf-8?
set?fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
#显示行号
set?number?
#vim使用自动对齐,也就是把当前行的对齐格式应用到下一行
set?autoindent?
#依据上面的对齐格式,智能的选择对齐方式
set?smartindent?
#设置tab键为4个空格
set?tabstop=4?
#设置当行之间交错时使用4个空格
set?shiftwidth=4?
#设置在编辑过程中,于右下角显示光标位置的状态行
set?ruler?
#设置增量搜索,这样的查询比较smart
set?incsearch?
#高亮显示匹配的括号
set?showmatch?
#匹配括号高亮时间(单位为?1/10?s)
set?matchtime=10?
#在搜索的时候忽略大小写
set?ignorecase?
#禁止生成临时
#set?nobackup?
#当前行高亮
set?cursorline?
#支持256色
set?t_Co=256?
#使用molokai颜色模板
#colorscheme molokai
//如果个人vim环境没有配置, 则使用全局vim环境变量配置。
//如果个人vim环境和全局环境变量产生冲突, 优先使用个人vim环境变量。
vim拓展
# 同时编辑两个文件
# 水平分割编辑两个文件
vim -o 1.txt 2.txt
# 垂直分割编辑两个文件
vim -O 1.txt 2.txt
#切换
ctrl +ww
# 对比两个文件
vimdiff file1 file2
# 以光标在第n行进入文件
vim +n 文件
linux基础day11
用户管理拓展
用户创建流程
# 过滤用户登录配置文件不包含以#开头及空行的内容
[root@localhost ~]# cat /etc/login.defs |grep -vE ^#|^$
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
/etc/login.defs文件讲解
# 过滤用户登录配置文件包含以大写字母开头的内容
[root@localhost ~]# grep ^[A-Z] /etc/login.defs
# 创建用户的时候会创建用户相关邮件所在的路径
MAIL_DIR /var/spool/mail
# 密码最长使用天数
PASS_MAX_DAYS 99999
# 密码最少使用天数
PASS_MIN_DAYS 0
# 密码最少长度
PASS_MIN_LEN 5
# 密码到期前7天会提醒
PASS_WARN_AGE 7
# 普通用户最小UID 1000
UID_MIN 1000
# 普通用户最大UID 60000
UID_MAX 60000
# 系统用户最小UID 201
SYS_UID_MIN 201
# 系统用户最大UID 999
SYS_UID_MAX 999
# 普通用户最小GID 1000
GID_MIN 1000
# 普通用户最大GID 60000
GID_MAX 60000
# 系统用户最小GID 201
SYS_GID_MIN 201
# 系统用户最大GID 999
SYS_GID_MAX 999
# 创建家目录
CREATE_HOME yes
# umask
UMASK 077
# 创建用户的时候,同时创建该用户的同名用户组
USERGROUPS_ENAB yes
# 密码加密格式 SHA512
ENCRYPT_METHOD SHA512
/etc/default/useradd
## USERGROUPS_ENAB no的情况下才会读取以下配置文件
# useradd defaults file
# 组的GID 100
GROUP=100
# 家目录的位置
HOME=/home
# 账号过期后都不会停止使用 -1=不开启
INACTIVE=-1
# 账号不过期
EXPIRE=
# 创建用户的默认shell
SHELL=/bin/bash
# 普通用户的环境变量存储位置
SKEL=/etc/skel
# 创建用户时,是否创建邮件文件
CREATE_MAIL_SPOOL=yes
用户密码管理
passwd
# 给当前登录用户设置密码
passwd
# 给普通用户设置密码
passwd user(用户名)
# root用户设置密码可以无视密码长度
# 普通用户设置密码必须遵守8位数
# 交互
类似挤牙膏,动一下挤一下
# 免交互
可以免除交互,不需要一个个点
# 安装expect(自动化交互套件)
yum install -y expect
# 生成密码
mkpasswd -l 10 -d 3 -c 4 -C 2 -s 1
-l 密码长度
-d 密码数字个数
-c 小写英文个数
-C 大写英文个数
-s 特殊符号
组的基本管理
# 组信息
/etc/group
ggg:x:1006:fff
第一列 用户名
第二列 密码占位符
第三列 组的gid
第四列 附加组,基本成员不显示
# 组密码信息
/etc/gshadow
ggg:!::fff
第一列 组名
第二列 组密码 !为空
第三列 组管理员
第四列 仅显示附加组成员,不显示基本成员
group管理
增
# 添加组
groupadd
# 语法
groupadd 选项 参数
# 选项
-g 指定gid
groupadd -g 555 qqq
qqq:x:555:
-r 创建系统组
# 创建系统组,gid从201-999
[root@localhost ~]# groupadd -r sys_group
[root@localhost ~]# tail -1 /etc/group
sys_group:x:996:
改
# 修改组的信息
groupmod
# 语法
groupmod 选项 参数
# 选项
-n 修改组名
groupmod -n lollol lol
-g 修改原有组的gid
groupmod -g 777 lol
# 参数
组名:指定要修改的工作的组名。
删
# 删除组,可以删除没有用户作为主组的组,如果只是附加组,删除时不会提示
groupdel
# 语法
groupdel 参数
# 参数
组:要删除的工作组名。
查
cat /etc/group
使用 gpasswd
设置组密码[了解即可]
[root@zls ~]# groupadd devops
[root@zls ~]# gpasswd devops
Changing the password for group devops
New Password:
Re-enter new password:
使用 newgrp
命令切换基本组身份[了解即可]
//检查账户信息
[root@docker ~]# useradd zls
[root@docker ~]# id zls
uid=1069(zls) gid=5005(zls) groups=5005(zls)
//切换普通用户
[root@docker ~]# su - zls
//创建新文件,并验证权限
[zls@docker ~]$ touch file_roots
[zls@docker ~]$ ll
-rw-rw-r-- 1 zls zls 0 Jun 13 10:06 file_roots
//切换组信息
[zls@docker ~]$ newgrp devops
Password:
//建立文件,检查权限
[zls@docker ~]$ touch file_test
[zls@docker ~]$ ll
total 0
-rw-rw-r-- 1 zls zls 0 Jun 13 10:06 file_roots
-rw-r--r-- 1 zls devops 0 Jun 13 10:08 file_test
修改命令提示符
vim /etc/motd
/**
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣴⣶⣶⣶⣶⣶⠶⣶⣤⣤⣀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⣤⣾⣿⣿⣿⠁⠀⢀⠈⢿⢀⣀⠀⠹⣿⣿⣿⣦⣄⠀⠀
⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⠿⠀⠀⣟⡇⢘⣾⣽⠀⠀⡏⠉⠙⢛⣿⣷⡖⠀
⠀⠀⠀⠀⠀⣾⣿⣿⡿⠿⠷⠶⠤⠙⠒⠀⠒⢻⣿⣿⡷⠋⠀⠴⠞⠋⠁⢙⣿⣄
⠀⠀⠀⠀⢸⣿⣿⣯⣤⣤⣤⣤⣤⡄⠀⠀⠀⠀⠉⢹⡄⠀⠀⠀⠛⠛⠋⠉⠹⡇
⠀⠀⠀⠀⢸⣿⣿⠀⠀⠀⣀⣠⣤⣤⣤⣤⣤⣤⣤⣼⣇⣀⣀⣀⣛⣛⣒⣲⢾⡷
⢀⠤⠒⠒⢼⣿⣿⠶⠞⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⣼⠃
⢮⠀⠀⠀⠀⣿⣿⣆⠀⠀⠻⣿⡿⠛⠉⠉⠁⠀⠉⠉⠛⠿⣿⣿⠟⠁⠀⣼⠃⠀
⠈⠓⠶⣶⣾⣿⣿⣿⣧⡀⠀⠈⠒⢤⣀⣀⡀⠀⠀⣀⣀⡠⠚⠁⠀⢀⡼⠃⠀
⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣷⣤⣤⣤⣤⣭⣭⣭⣭⣭⣥⣤⣤⣤⣴⣟⠁
*/
# 保存退出
:wq
# 资源网址
https://www.bootschool.net/ascii-art/cartoons?pageNO=2
以上是关于linux基础day09的主要内容,如果未能解决你的问题,请参考以下文章