vim

普通模式

 光标 :
 G 跳转至文件尾部
 gg 跳转至文件首部
 100gg 跳转至指定行数
 $ 跳转至本行尾部
 ^ 跳转至本行首部
 复制:
 y 复制选中的内容
 2yy 复制光标所在的行及下一行
 粘贴:
 P 粘贴到光标的下一行
 p 粘贴到光标的上一行
 删除:
 dd 删除所在的行
 2dd 删除2行
 D 删除光标坐在的行后的内容
 x 删除后一个字符
 X 删除上一个字符
 剪切(先删除,后粘贴):
 dd+p
 替换:
 r 替换单个字符
 R 连续替换多个字符
 撤销:
 u 撤销操作
 ​
 从普通模式切换到编辑模式
 i 直接进入编辑模式
 I 将贯标跳转至本行的首部,进入编辑模式
 a 光标往后挪动一位,进入编辑模式
 A 光标跳转至行尾,进入编辑模式
 o 在下方插入一行,进入编辑模式
 O 在上方插入一行,进入编辑模式

编辑模式

 末行模式:
 保存 w
 退出 q
 保存并退出 :wq
 强制退出 !q
 查找 /+关键字  按n向下搜索,按N向上搜索
 替换
 指定行号替换   :1,9s#old#new#g
 全文替换     :%s#old#new#g
 另存为   :w+保存到哪里
 文件内容读入
   :r /etc/hosts 读入文件至当前光标下面
   :5r /etc/hosts 指定插入文件至当前文件第五行下面

视图模式

可视块:

插入字符 ctrl+v选中 ,shift+i进入编辑模式,添加字符,esc,esc

删除字符 ctrl+v选中 ,按x删除 ,esc,esc

替换字符 ctrl+v选中,r,添加字符

可视行:

复制

shift+v选中内容,按y

删除

shift+v选中内容,按d

vim扩展

:set nu 显示行号

:set ic 搜索试时忽略大小写

:set ai 自动缩进

:set list 显示制表符(空行,tab键)

:set no 取消临时设定的变量

文件类型

 -  文件
 d  目录
 b  块设备
 c  字符设备
 s  进程间通讯 (插座)
 l  链接文件

file命令

 判断这个文件的具体类型

链接文件

 元数据 Inode      索引
 真实数据 Block    内容

软链接(类似快捷方式)

 将inode链接至block
 ln -s /data/rainbow-v1.2 /data/rainbow   将rainbow软链接至rainbow-v1.2

用户管理

passwd

root:x:0:0:root:/root:/bin/bash

shaow

root:6AIMkIk8GKBR8w4WJ$/XNO254EFnTuIBxx.bJ8hP4zPbCAsB0Ms8UanoCpS3hGZSZ5xrPk/Gx1SRzW0At0UpryVjpG/DyDNXEnwLKm7.::0:99999:7:::

用户管理

useradd 添加普通用户

usermod 添加用户

userdel 删除用户

usredel -r 连同家目录一起删除

passwd 修改密码

交互式修改

passwd 修改密码

passwd root 修改root密码

passwd+用户名 给这个用户修改密码

非交互式修改

echo "123" | passwd --stdin +用户名 设定简单密码

yum install expect -y

echo $ (mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4) | tee pass.txt | passwd --stdin +用户名 设定随机密码

系统创建用户流程

/etc/login.defs 定义了创建用户时uid划分规划,密码加密类型,是否创建家目录等

/etc/default/useradd 定义了创建家目录位置,默认用户的shell类型,默认从哪个位置拷贝环境变量,是否创建用户同名邮箱等

用户环境变量丢失后恢复

cp -a /etc/skel/.bash* ./

组相关配置文件

group文件

/etc.group

groupadd 添加组

groupadd -f 如果创建时组已存在,则提示创建成功

groupadd -g 为新组设置gid,若gid存在则提示gid已经存在

groupadd -r 创建一个系统组

groupmod 修改组

groupmod -f 如果创建时组已存在,则提示创建成功

groupmod -g 为新组设置gid,若gid存在则提示gid已经存在

groupmod -r 创建一个系统组

groupmod -n 改名为新的组

groupdel 删除组

groupdel 组名

创建实例

切换身份

su命令切换

切换身份前需要先使用shell登录

shell登录分类

1、登录shell:需要用户名与密码才能登陆(用户名+密码+IP地址)

2、非登录shell:不需要输入用户名与密码就能进入shell

环境变量配置文件

profile类文件:设定环境变量,登录前运行的脚本和命令

bashrc类文件:设定本地变量,定义命令别名

用户配置文件(局部)

~/.bash_profile

~/.bashrc

全局环境变量(全部)

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

登录式shell配置文件加载顺序:/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc

非登录式shell配置文件加载顺序:~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh

su与环境变量的关系

su - 用户名 属于登录式shell

su 用户名 属于非登录式shell

su 切换身份

优点:简单

缺点:需要root密码,风险高

sudo 提权命令

先使用root用户对该账户授权后才能对该账户进行提权,完成普通用户无法完成的事情

sudo权限分配

1、创建用户

[root@nood ~]# useradd ops1 [root@nood ~]# useradd ops2 [root@nood ~]# useradd dev1 [root@nood ~]# useradd dev2

创建密码

echo "1" | passwd --stdin ops1 220 echo "1" | passwd --stdin ops2 221 echo "1" | passwd --stdin dev1 222 echo "1" | passwd --stdin dev2

2、创建组或使用别名

User_Alias OPS = ops1,ops2

User_Alias DEV = dev1,dev2

3、设定命令集合(cp、mv == oos)

NETWORKING

SOFTWARE

SERVICES

STORAGE

PROCESSES

4、将完整的内容组织在一起,形成一条记录

sudoers配置规则

vim /etc/sudoers sudo规则详细配置

sudo命令执行流程

sudo授权实例

linux权限管理

针对文件定义了三种身份,分别是属主owner,属组group,其他人others

每种身份对应了三种权限,分别是读read,写write,执行execute

权限中r,w,x的含义

修改权限(赋予权限)

chmod 修改权限命令

UGO方式

chmod a=rwx file给文件所有人添加读写执行权限

chmod a=-rwx file 给文件所有人删除读写执行权限

chmod u=rwx,g=rw,o=- file 给属主读写执行权限,给属组读写权限,其他人无权限

chmod ug=rwx,o=r 给属主属组读写执行权限,其他人只有读权限

NUM方式(八进制方式)(r=4,w=2,x=1)

chmod 644 file 设定文件权限为644(rw-r--r--)

chmod 600 file 设定文件权限为600(rw-------)

chmod -R 755 dir 设定目录权限为755(rwxr-xr-x)(需要-R递归为目录下的所有文件修改权限)

权限修改实例

权限对文件的影响

文件与目录权限总结

修改文件所属

chown 修改文件属主和属组

chown bin /data 修改属主为bin

chown .adm /data 修改属组为adm

chown ops.dev /data 修改属主为ops,修改属组为dev

chgrp 仅能变更文件属组

修改文件所属关系场景

进程能够以一种什么样的方式去访问一个文件,取决于这个进程运行的身份对这个文件或目录有什么样的权限

特殊权限SUID

chmod u+s /usr/bin/cat

chmod 4755 /usr/bin/cat (4为在属主位上添加特殊权限)

SUID作用总结

SGID特殊权限

chmod g+s /dir

chmod 2755 /dir (为dir目录以及属组下的文件修改权限为特殊权限)

场景实例

SBIT粘滞位特殊权限

chmod 1755 /tmp

chmod o+t /tmp

SBIT作用总结

特殊权限实例

文件特殊属性

文件特殊属性属性的作用

chattr命令格式

chattr [+-=] [a/i] 文件或目录名 (a:可对文件进行追加内容,i:锁定文件)

chattr +a /etc/passwd

chattr +i /etc/passwd

文件默认权限

UMASK

UMASK判断语句

UMASK计算方法

重定向

标准输入与标准输出与错误输出

stdin 标准输入 文件描述符(0)

stdout 标准输出 文件描述符(1)

stderr 错误输出 文件描述符(2)

输出重定向

> 标准覆盖重定向 将正确的结果输出到指定文件中,并覆盖原内容

>> 标准追加重定向 将正确的结果输出到指定文件中,并追加到原内容后

2> 错误覆盖重定向 将错误的结果输出到指定文件中,并覆盖原内容

2>> 错误追加重定向 将错误的结果输出到指定文件中,并追击到原内容后