Linux 新手两板斧:用户/组权限模型 + Vim 高效编辑实战
本博客重在简单介绍用户和用户组以及Vim编辑器
用户和用户组基础概念

基本概念
用户(user)
-
计算机系统通过用户名和密码识别用户身份
-
每个用户都有唯一用户ID(UID)
-
Linux系统中,新建用户后,必须设置密码才能使用
-
密码输入时默认不可见,确保安全性
超级用户(root):
-
系统内置的最高权限用户
-
拥有对系统的完全控制权
-
默认存在,首次使用时需要设置密码
-
可以执行任何命令,修改任何文件
用户组(Group):
-
将多个用户归类管理的机制
-
每个用户组有唯一的组ID(GID)
-
便于批量设置文件权限
-
每个用户至少属于一个主组,属于多个附属组
用户类型
超级用户:
-
用户名:root
-
UID:0
-
拥有系统最高权限
普通用户:
-
安装系统时创建的用户(如 st )
-
由超级用户创建的用户
-
UID范围:1000——65535
-
权限受限制,需要 sudo (获取临时权限)
用户管理
超级用户密码设置
修改root用户密码:
sudo passwd root
操作步骤:
-
输入命令后按回车
-
系统提示输出当前用户密码(验证权限)
-
输入新的root密码(不可见)
-
再次输入确认密码
-
设置成功
注意:输入密码时无提示是正常安全机制
用户切换
普通用户切换到ROOT:
-
sudo -i 在登陆账户(st)直接切换
-
su root()(需要密码)
ROOT切换到普通用户:
-
su 用户名
查看当前用户:
whoami
用户创建
执行权限:root用户
基本语法:
sudo useradd [选项] 用户名(sudo在普通用户下需要使用)
常用选项:
-
-d : 指定用户主目录{我们可以在创建用户的同时给该用户在/home下创建一个文件夹}
-
-m : 自动创建用户
-
-g : 指定用户组
-
-G : 指定附属用户组
创建用户示例:
sudo useradd -d /home/jiamin -m jiamin(创建用户jiamin,自动创建/home/jiamin目录,因为没有指定组,此时会默认产生一个组jiamin)
sudo useradd -d /home/haodong/ -m -g jiamin haodong(创建用户haodong,自动创建/home/haodong目录,指定组为jiamin,注意要先创建好组jiamin)
sudo useradd -d /home/hange -m -g jiamin -G st,root hange``(创建用户hange,自动创建hange目录,指定主组为jiamin,附属组为st,root(附属组用逗号分隔)
用户创建完成后自动完成的操作:
-
在
/etc/password文件中添加用户信息 -
在
/etc/shadow文件中添加密码信息 -
创建用户主目录(如
/home/jiamin) -
创建同名的用户组(如
jiamin组)
用户密码管理
设置用户密码:
sudo passwd
选项说明:
-
-l : 锁定用户账号
-
-u : 解锁用户账号
-
-d : 删除用户密码
-
-e : 强制用户下次登录修改密码
用户信息查看
查看用户所属组
groups 用户名
查看所有用户信息
cat /etc/passwd(查看用户基本信息)
sudo cat /etc/shadow(查看所有信息)
用户修改
基本语法:
sudo usermod [选项] 用户名
常用选项:
-c : 修改用备注消息
-g : 修改主用户组
-G : 修改附属用户组
用户删除
基本语法:
sudo userdel [选项] 用户名
常用选项:
-
-f : 强制删除,即使用户已登录
-
-r : 同时删除用户主目录及相关文件
用户组管理
用户组创建
sudo groupadd [选项] 组名
组信息查看:
查看所有用户组:
查看组信息:
cat/etc/group
查看组密码信息:
sudo cat /etc/gshadow
查看特定组:
grep '组名' /etc/group
grtent group 组名
组修改
基本语法:
sudo ground [选项] 组名
常用选项:
-
-g :修改组ID
-
-n:修改组名
权限管理
权限类型:
-
r : 读权限,查看文件内容(cat,less,head,tail),列出目录内容(ls)
-
w : 写权限,修改文件内容(touch,vim),创建删除目录(mkdir,rmdir,rm等)
-
x : 执行权限,执行文件(./程序名),进入目录(cd等)
权限对象:
-
u: user,文件所有者
-
g: group,文件所属组
-
o: other,其他用户
权限表示法:

设置所有者和权限
设置所有者和所属组
演示示例:
修改文件所有者为jiamin :
sudo chown jiamin /home/work/demo01.c
修改文件所属组为workgroup:
sudo chown : workgroup /home/work/demo01.c
上面两个缩写为一条
sudo chown jiamin : workgroup /home/work/demo01.c
递归修改目录及其内容 , 此时所有文件所有者都是jiamin,所有组都是workgroup
sudo chown -R jiamin:workgroup /home/work
设置权限:
设置所有者对demo01.c的权限为读写执行,所属组权限为读执行,其他用户对于改文件权限为无权限《权限表示法》
sudo chmod 750 /home/st/demo01.c
递归修改目录权限一致
sudo chmod -R 750 /home/work
Vim编辑器

Vim是Vi编辑器的增强版,是Linux系统中最强大的版本编辑器之一。
Vi与Vim的区别
-
Vi : Linux系统内置的基本文本编辑器,类似于windows记事本
-
Vim :Vi的增强版,需要额外安装,功能更强大
-
语法高亮显示
-
多级撤销/重做
-
插件扩展性
-
代码折叠
-
多窗口编辑
-
正则表达式搜索
-
Vim安装与卸载
在线安装
-
更新软件源 : sudo apt-get update
-
安装Vim,请他软件安装同理,仅需换一下安装名 : sudo apt-get install vim
卸载
-
卸载vim,请他软件安装同理,仅需换一下安装名:sudo apt-get remove vim
-
彻底卸载(包括配置文件) : sudo apt-get purge vim
Vim启动与退出
启动Vim
-
仅仅启动Vim(不打开文件,不推荐) : vim
-
在Vim中打开文件 : e 文件名
-
在Vim中导入文件 : r 文件名
-
-
打开指定文件(推荐) : vim 文件路径
-
打开文件并定位到最后一行(适用于打开配置文件) : vim 文件路径 +
-
打开文件并定位到指定行(代码出现错误时修改适用) : vim 文件名 + 行号

退出Vim
#1.先按ESC确保进入命令模式 #2.进入末行模式(按下按键 ‘:’) #3.选择退出方式 :q #不保存退出 :wq #保存并退出 :q! #强制退出不保存(丢弃所有修改) :wq! #强制保存并退出(在系统提示请使用wq!进行保存时使用) :x #保存并退出 (= wq,效率更高) ZZ #命令模式下直接保存并退出(无需进入末行模式)
Vim工作模式
vim有三种工作模式

快速记忆:
-
命令模式:快捷键操作
-
输入模式:编辑文件
-
末行模式:输入指令
Vim常用指令操作
常用删除操作
| 快捷键 | 功能 | 模式 |
|---|---|---|
| x | 删除当前光标出一个字符 | 命令模式 |
| nx | 删除当前光标所在处n个字符(如6x) | 命令模式 |
| dd | 删除当前光标所在行 | 命令模式 |
| ndd | 删除当前光标开始的n行 | 命令模式 |
| :n1,n2d | 删除第n1到n2行(例如:2,12d) | 末行模式 |
常用拷贝操作
-
可视模式复制:
-
按 ESC 确保进入命令模式
-
再按v进入可视模式
-
使用方向键↑↓←→选中文本
-
按y完成拷贝
-
使用p进行粘贴
-
-
行复制:
快捷键 功能 模式 yy 复制当前行(单行复制) 命令模式 nyy 复制n行 命令模式 :n1,n2 copy dn 复制n1~n2行粘贴到dn行后如:3,6 copy 7 (copy可缩写为co) 末行模式 粘贴操作
快捷键 功能 场景 模式 p 粘贴在当前行的下方或者光标之后(字符) 配置yy,nyy,可视模式复制 命令模式
撤销操作
| 快捷键 | 功能描述 | windows快捷键 | 命令模式 |
|---|---|---|---|
| u | 撤销上一步操作 | Ctrl + z | 命令模式 |
| ctrl + r | 重做撤销操作(对撤销操作进行还原) | Ctrl + y | 命令模式 |
查找操作
1. 基本查找
| 命令 | 功能 | 查找方向 | 模式 |
|---|---|---|---|
| /string | 查找字符串 | 从当前位置向后匹配每一行第一个查找的数据 | 末行模式 |
| /string/g | 查找字符串 | 从当前位置查找每一行查找的数据 | 末行模式 |
-
查找控制

替换操作
语法:
:[范围]s/查找字符串/替换字符串/[标志]
范围说明:
-
% : 全文范围
-
n1,n2 : 第n1到第n2行
-
. : 当前行
-
$ : 最后一行
-
.,$ : 从当前行到最后一行
标志说明:
-
g : 全局替换(匹配行中所有匹配项),如int func(int a,int b);匹配所有int 。 不写匹配一行中的第一个匹配项
-
i :或略大小写,如i/I -> i + I
-
I :区分大小写,如i -> i ,I->I
示例
:%s/int/void :%s/int/void/g

更多推荐




所有评论(0)