vim、用户相关、特殊权限、压缩减压、rpm、yum、

 ## 1 vim

```python
# yum install vim -y
# 普通模式、编辑模式、命令模式
# 普通模式:
-上下翻
-yy 复制一行
-p 粘贴
-dd 剪切
-p 把上面剪切的粘贴上
# 编辑模式
-i:insert插入
-a:append追加
-o:换行
-正常写就可以了
-esc回到普通模式

# 命令模式:
-不能从编辑模式直接进,只能先到普通模式按 : 进入命令,退出命令模式esc
-w 表示保存
-q 退出
-! 强制退出
-修改了文件后保存: wq wq!
-修改了不想保存退出: q q!
-:set nu 显示行号
-:set nonu 不显示行号
-/字符串 搜索这个字符串
-:%s#sbin#test#g #替换整个文本文件中包含sbin的替换为test
```


## 2 用户相关

```python
#1 id 查看当前用户信息
uid=0(root) gid=0(root) groups=0(root)
#2 用户信息保存在 cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
#3 密码存放路径 cat /etc/shadow
#4 约定不同用户的uid属于某个范围(了解)
# 5 用户的增,删,改
-useradd(一个用户只能属于一个主组,属于多个附加组)
-groupadd sa 新增一个组
-groupadd sa1 新增一个组
-groupadd students 新增一个组
-useradd -u 5001 -g students -G sa,sa1 -c "2020 new student" -s /bin/bash lqz1
-创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
useradd mysql -M -s /sbin/nologin
-usermod
-usermod -c "2019 new student" -md /bgx -s /bin/sh -l change_bgx bgx
-usermod -L change_bgx #锁定后会无法登陆系统
-usermod -U change_bgx
-userdel
-userdel egon # 删除用户,不删家目录
-userdel -r egon1 # 删除用户,删家目录

#6 改密码
-passwd root
#7 组增删改
-groupadd no_gid 新增组
-groupmod -g 1111 student 改组id号
-groupmod student -n new_student 改组名字
-groupdel new_student 删除组(组下没有人,把人删除,再删)

# 8 su 和sudo
-su 切换用户
-su - jack:打开新的shell,会加载自己的环境变量
-su jack:不打开新的shell,不会加载它的环境变量
-sudo 普通用户可以有一些超级用户的权限,不需要输入密码
usermod jack -G wheel # 把jack用户加入到了wheel组
-你这个用户没有权限,你尝试 sudo mkdir ll试一下,不行,超级管理员没有给你配这个权限
```

## 3 特殊权限:权限属性chattr

```python
#选项: + 增加权限 -减少权限 =等于某个权限
# a:让文件或目录仅可追加内容
# i:不得任意更动文件或目录
# 给某个文件或者文件夹加特殊权限
-chattr +i lqz.text
-chattr -i lqz.text
```

## 4 压缩解压

```python
#1 Windows的压缩包与Linux的压缩包能否互通
windwods:rar,zip
linux:tar.gz,zip互通,不支持rar
# 2 gzip (只能压一个文件,不能压文件夹,会把原来的删除)
-gzip file
-gzip -d file
-有什么用?
-cd /etc/yum.repos.d/
#3 zip的压缩和解压
-yum install zip unzip -y
-zip filename.zip filename # 压单个文件
-zip -r home.zip /home/ #把home文件夹压缩
-unzip home.zip #解压
-unzip -l home.zip # 不解压,看内容
-unzip home.zip -d /opt/ # 把当前路径下的home.zip 解压到opt

# 4 tar打包与压缩
-tar -czf 文件 ---》tar.gz
-tar -xf xx.tar.gz --->解压xx.tar.gz

tar -xzvf xx.tar.gz :解压tar.gz,详细过程列出来

-tar -czf home.tar.gz dd/ lqz1 lqz2 /home/

-tar czf etc.tar.gz --exclude=etc/services etc/ # 排除文件
-tar xf /etc/local.tar.gz -C /tmp # -C指定解压到哪个路径

```

## 5 软件管理:rpm

```python
#1 红帽的软件安装包(windows的:exe,mis)
#2 mount /dev/cdrom /mnt 把光盘挂在到 /mnt文件夹
#3 Linux中除了rpm安装软件,是否还有安装软件方式
-源码安装-->官网下源码--》编译安装---》最新
-rpm包,预先编译打包,安装简单,yum安装,本质就是rmp安装--》稍微老一些
-二进制包:绿色包

-安装rpm的软件:rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
-强制安装:rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm

-rpm -q :查看这个软件是否安装********
-rpm -qa |grep tr :列出所有安装的软件
-rpm -ql :查询指定软件包所安装的目录、文件列表rpm -ql unzip *****
-rpm -qc unzip:查看这个软件的配置文件位置
-rpm -qf /etc/pam.d/vsftpd :查看配置文件属于哪个软件
-rpm -qlp trace-cmd-2.6.0-10.el7.x86_64.rpm :查看该软件包安装后会释放哪些文件

-使用远程地址安装:rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.8-2.el7.x86_64.rpm

-rpm -Uivh 升级软件需要用 U
-rpm -e zabbix-agent

```


## 6 yum仓库,源

```python
# 1 Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装

# 2 cd /etc/yum.repos.d/ 路径下有xx.repo 文件---》yum源

# 3 换阿里云的源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 4 配置其他源
-wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
-yum install nginx

-yum provides ipconfig # 通过命令查软件,这个命令属于哪个软件

-rpm -qf `which ifconfig` # 查命令属于哪个软件,前提是该软件安装了
```


# 补充

```python
# psutils
# django channels
# websocket:https://www.cnblogs.com/liuqingzheng/p/10151572.html

# paramiko
import paramiko

#

ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='10.0.0.100', port=22, username='root', password='123')

# 执行命令
stdin, stdout, stderr = ssh.exec_command('yum install vim -y')
# 获取命令结果
result = stdout.read()
print(result.decode('utf-8'))
# 关闭连接
ssh.close()
```
原文地址:https://www.cnblogs.com/0B0S/p/13618704.html