【学习笔记】Linux基础(3):Linux常用命令2 ——用户权限和vi编辑器的使用
1. 用户权限
- 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。
- 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。
- Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。
- 在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。
在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统
1.1 查看当前用户:whoami
直接输入命令whoami
可以让用户查看当前系统使用账号的用户名。可通过cat /etc/passwd查看系统用户信息。
由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。
1.2 查看登录用户:who
who命令用于查看当前所有登录系统的用户信息。
命令格式为:who [-选项]
常用选项:
选项 | 含义 |
---|---|
-m或am I | 只显示运行who命令的用户名、登录终端和登录时间 |
-q或–count | 只显示用户的登录账号和登录用户的数量 |
-u | 在登录时间后显示该用户最后一次操作到当前的时间间隔 |
-u或–heading | 显示列标题 |
1.3 退出登录账户: exit
退出账户分为以下几种情景:
- 如果是图形界面,退出当前终端;
- 如果是使用ssh远程登录,退出登陆账户;
- 如果是切换后的登陆用户,退出则返回上一个登陆账号。
1.4 切换用户:su
可以通过su命令切换用户,su后面可以加 “-”。su和su–命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
常用的命令有以下几种:
命令 | 含义 |
---|---|
su | 切换到root用户 |
su root | 切换到root用户 |
su - | 切换到root用户,同时切换目录到/root |
su - root | 切换到root用户,同时切换目录到/root |
su 普通用户 | 切换到普通用户 |
su - 普通用户 | 切换到普通用户,同时切换普通用户所在的目录 |
1.5 添加、删除组,修改用户所在组
常用的命令有以下几种:
- 创建工作组:
groupadd 组名
- 删除工作组:
groupdel 组名
- 修改用户所在组:
usermod -g 组名 用户名
cat /etc/group
查看用户组
1.6 添加用户账号:useradd
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
useradd命令格式为:useradd [-选项] 新建用户账号
选项 | 含义 |
---|---|
-d <dirname> | 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录 |
-m | 自动建立目录 |
-g | 指定组名称 |
相关说明:
- Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
- 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;
- 用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;
- 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
具体的实现例子在下面的1.7有提到。
1.7 设置用户密码:passwd
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
命令格式为:passwd 用户名
1.8 删除用户:userdel
常用的命令有如下两种:
命令 | 含义 |
---|---|
userdel abc(用户名) | 删除abc用户,但不会自动删除用户的主目录 |
userdel -r abc(用户名) | 删除用户,同时删除用户的主目录 |
1.9 修改文件权限:chmod
chmod的命令格式为:chmod u/g/o/a +/-/= rwx 目录/文件
其中一些参数的解释如下:
[ u/g/o/a ] | 含义 |
---|---|
u | user,表示该文件的所有者 |
g | group,表示与该文件的所有者属于同一组( group )者,即用户组 |
o | other,表示其他以外的人 |
a | all,表示这三者皆是 |
[ ±= ] | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
rwx | 含义 |
---|---|
r | read,表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。 |
w | write,表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。 |
x | excute,表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。 |
案例一:给同组用户减去读‘r’的权限:
案例二:设置test文件的权限为
- 文件所有者:读、写、执行权限;
- 同组用户:读、执行的权限;
- 其它用户:执行的权限
1.10 修改文件所有者:chown
chown(change owner)的命令格式为:chown 用户名 文件或目录名
案例一:将e.txt的所有者mike修改为xiaoht
1.11 修改文件所属组:chgrp
chgrp(change group)的命令格式为:chgrp 用户组名 文件或目录组
案例一:将e.txt的所属组mike修改为xiaoht
2. 编译器:vi编译器
2.1 打开文件
命令格式为:vi filename
打开或新建文件,并将光标置于第一行行首,如果文件不存在,则会新建文件。
如果通过vi打开一个已经存在的文件,首先进入命令模式,此时输入的任何字符都被视为命令,不能输入内容,此时需要通过输入命令字符来操作文件。
2.2 vi的插入模式
按键 | 功能 |
---|---|
a | 光标位置右边插入文字 |
i | 光标位置当前处插入文字 |
o(字母) | 光标位置下方开启新行 |
O(字母) | 光标位置上方开启新行 |
I | 光标所在行首插入文字 |
A | 光标所在行尾插入文字 |
2.3 vi的退出
按键 | 功能 |
---|---|
ZZ(shift+z+z) | 保存退出 |
:wq | 保存退出 |
:x(小写) | 保存退出 |
:w filename | 保存到指定文件 |
:q | 退出,如果文件修改但没有保存,会提示无法退出 |
:q! | 退出,不保存 |
:!命令 | 暂时离开vi,执行命令 |
2.4 vi的修改和删除功能
按键 | 功能 |
---|---|
[n]x | 删除光标后 n 个字符 |
[n]X | 删除光标前 n 个字符 |
D | 删除光标所在开始到此行尾的字符 |
[n]dd | 删除从当前行开始的 n 行(准确来讲,是剪切,剪切不粘贴即为删除) |
[n]yy | 复制从当前行开始的 n 行 |
p | 把粘贴板上的内容插入到当前行 |
dG | 删除光标所在行开始到文件尾的所有字符 |
J | 合并两行 |
. | 执行上一次操作 |
u | 撤销前一个命令 |
2.5 vi的定位功能
按键 | 功能 |
---|---|
Ctrl + f | 向前滚动一个屏幕 |
Ctrl + b | 向后滚动一个屏幕 |
gg | 到文件第一行行首 |
G(大写) | 到文件最后一行行首,G必须为大写 |
: $ | 到文件最后一行行首 |
nG或ngg | 到指定行,n为目标行数 |
/内容 | 查找指定内容 |
2.6 vi的文本查找功能
按键 | 功能 |
---|---|
/字符串 | 查找指定字符串 |
n | 寻找下一个 |
N | 回到前一个 |
/^字符串 | 查找以字符串开始的行 |
/字符串$ | 查找以字符串结尾的行 |
2.7 vi的替换功能
按键 | 功能 |
---|---|
r | 替换当前光标字符 |
:r 文件名 | 在光标当前位置下一行载入另一个文件 |
: s/p1/p2/g | 将当前行中所有p1均用p2替代 |
:g/p1/s//p2/g | 将文件中所有p1均用p2替代 |
:n1,n2s/p1/p2/g | 将n1到n2行中所有p1均用p2替代 |
2.8 vi的set指令
按键 | 功能 |
---|---|
:set ic | 搜寻时不区分大小写 |
:set noic | 搜寻时区分大小写 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
相关文章:
【学习笔记】Linux基础(1)
【学习笔记】Linux基础(2):Linux常用命令1——查看帮助文档和文件管理命令