目录
文件编辑器
vi与vim的四个模式
i #在光标所在处进入编辑模式
a #在当前光标后面进入编辑模式
o #在光标的下一行进入编辑模式
I #在光标所在处行首进入编辑模式
A #在光标所在处行尾进入编辑模式
O #在光标的上一行进入编辑模式
---------------------------------------------------------------------------
#下边视图方便记忆
O 大O在上
I行前 i字符a 行末A
o 小o在下
---------------------------------------------------------------------------
# 从编辑模式进入命令模式:ESC
命令模式
光标定位键盘:
0 $ #行首行尾
gg #页首--文本顶端
G(shift+g) #页尾--文本底部
3G #进入第三行
/string #查找字符,n下一个,N上一个 (n N 可以循环的)
?string 从文本的末尾往前找
文本编辑
yy #复制
3yy #从光标开始复制3行。 包括光标所在行
yy3 #复制三遍 (也就是粘贴的时候可以 粘贴出三行)
ygg #从当前光标复制到页首
yG #从光标开始复制到页尾 gg yG 复制全部
p #粘贴到本行 的下一行
大P #粘贴到本行的上一行
dd #删除一行 剪切
dG #从光标开始删除到页尾{了解}
3dd #从光标开始删除3行
[d$ | D] #从光标处删除到行尾
u #undo撤销
ctrl + r #多撤销了一步,用这个快捷键来恢复
r #可以用来修改一个字符 用来修改一个字符
dgg #从光标开始删除到页首 {了解}
d^ #删除当前光标之前的内容 {了解}
x #删除光标所在的字符 {了解}
扩展命令(尾行)模式:
shift+;=: #进入尾行模式(扩展命令模式)
:10 #进入第10行
:w #保存 之后加文件,可以另存为
语法----> :w 存储到当前文件
:w #另存为/tmp/aaa.txt
:1,3 w /tmp/2.txt #从1-3行的内容另存为/tmp/2.txt
:q #退出
:wq #保存并退出
:q! #不保存并退出
:wq! #强制保存退出
:x #和:wq 的效果是一样的 保存并退出
set nu #显示行号
set nonu #取消显示行号
set ts=4 #=设置table健的长度为 四个空格
set list #=查看文件所有制表符
set cursorline #=光标到哪行 就会显示行标线
set cursorcolumn #=显示列标线
:X #文件加密 取消 还是 X 两次不用输入
set mouse=a #=鼠标操作(不建议使用)
进入可视化模式
ctrl+v #进入可视块模式(暂时不常用。多练习)
加注释:
vim filename
ctrl+v===>Shift+i===>#====>ESC (可以用来全部删除)
ctrl+v #进入可视化块 移动从光标位置开始
shift+i #编辑模式 i是在当前字符前边插入
第一行前边加#
ESC推出
y是复制
d是剪切
p是复制
批量添加注释
c
:wq
shift+v #进入可视行模式
#------------------------------------------------------------------------
可视行
shift + v #进入可是行
查找替换
语法----> :范围 s/old/new/选项
:s#/etc/pass#king# #如果有反斜杠 三个一样的符号 就可以
:s/world/nice/ #替换当前光标所在行
:3s/sbin/nice/ #替换指定行
:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso
:s/sbin/nice/g #替换光标所在行
:%s/bin/soso/ #替换每行第一个
:%s/sbin/nice/g #替换行内所有关键字
注释:%表示替换所有行 结尾g表示行内所有关键字
文件基本信息(stat)
#ls -l 文件名 仅看的是文件的修改时间
ls -l passwd
-rw-r--r--. 1 root root 839 Oct 31 21:29 passwd
#使用命令 stat passwd 可以查看文件详细信息
stat passwd
File: ‘passwd’
Size: 839 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33583688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2019-10-31 21:29:40.750993492 +0800
Modify: 2019-10-31 21:29:36.449993550 +0800
Change: 2019-10-31 21:29:36.452993550 +0800
Birth: -
#访问时间:atime,查看内容
#修改时间:mtime,修改内容
#改变时间:ctime,文件属性,比如权限,mv改名
Linux用户管理
用户组
创建组
[root@qfedu ~]# groupadd hr #创建一个用户组叫hr
[root@qfedu ~]# groupadd it #创建一个用户组叫it
[root@qfedu ~]# groupadd net01 -g 2000 #创建组叫net01,并指定gid为2000
[root@qfedu ~]# grep 'net01' /etc/group #查看/etc/group中组net01信息net01:x:2000:
删除组
[root@qfedu ~]# groupdel net01 #删除组net01
[注意:用户的主组不能删除]
[root@qfedu ~]# groupmod hr -g 5000 #更改组id
/etc/group ----->查看组的文件
查看组
[root@qfedu ~]#cat /etc/group
root:x:0:user1
组名:代表组密码:gid:组员
用户
[root@qfedu ~]# useradd xiaoming //创建用户
#创建一个用户会同时创建一下内容
/etc/passwd ---->查看账户是否存在的文件
/home/ ---->用户的家目录,每创建一个用户会在/home目录下面创建对应的家目录
/etc/shadow --->用户的密码文件,影子文件(密码文件 先加密后加盐)
/var/mail/ ---->系统邮箱
/etc/group ---->同名组
/etc/passwd文件详解
[root@qfedu ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin :x :1 :1 :bin :/bin :/sbin/nologin
分隔符::
第一列:用户名
第二列:密码
第三列:用户标识号--->(uid)是一个整数,系统内部用它来标识用户。
通常用户标识号的取值范围是0~65535。
0是超级用户root的标识号
第四列:gid(组id)
第五列:描述信息。
第六列:家目录
第七列:是用户登陆到界面的第一个命令,开启一个shell。登陆shell
1.判断用户是否存在:
[root@qfedu ~]# id user01 //查看用户的uid、gid、和所在组
uid=1001(user01) gid=1003(user01) groups=1003(user01)
主组 附属组
uid 系统用来识别账户的user identify
gid 系统用来识别组的group identify
2.查看现在所使用的的账户:
#查看当前登录的终端
[root@qfedu ~]# whoami 查看我现在所使用的账户
[root@qfedu ~]# who
[root@qfedu ~]# w
可以看到有几个用户在登录这个主机
目前我是一个虚拟机 然后使用一个终端进行链接
创建用户(带有选项)
[root@qfedu ~]# useradd user02 -u 503 #指定uid为503
[root@qfedu ~]# useradd user05 -s /sbin/nologin #创建用户并指定shell
[root@qfedu ~]# useradd user07 -G it,hr #创建用户,指定附加组
[root@qfedu ~]# useradd user10 -u 4000 -s /sbin/nologin 不让他登录系统
[root@qfedu ~]# useradd xiaoli -s /sbin/nologin -M 可以不给用户创建家目录
#我们在创建一个用户的时候会默认创建一个组
删除用户
[root@qfedu ~]# userdel user02 //家目录的文件没有删除别的地方都删除了
[root@qfedu ~]# userdel -r user02 //删除用户user2,同时删除用户家目录
用户密码
[root@qfedu ~]# passwd alice #root用户可以给任何用户设置密码
[root@qfedu ~]# passwd #root用户给自己设置密码
[root@qfedu ~]# su - alice
[alice@qfedu ~]$ passwd #普通用户只能给自己修改密码,而且必须提供原密码
#当root进入普通用户 需要退回到root
#[ctrl+d|exit] 都可以推出当前用户到root
用户操作
1.修改UID
-u
[root@qfedu ~]# usermod -u new_id jack
[root@qfedu ~]# id jack
uid=1005(jack) gid=1004(jack) groups=1004(jack)
2.修改用户的登录shell
-s
[root@qfedu ~]# usermod -s /sbin/nologin user07 #修改用户的登录shell
usermod -aG 添加用户到附属组 一个人可以追加到多个附加组
usermod -g 指定主组
usermod -G 指定附加组,会覆盖其他的附加组
切换用户
su tom
# 不带系统环境变量进行切换 比如说路径
su -tom
# 带有系统环境进行切换
组成员管理
1.给组添加账户
-a
[root@qfedu ~]# gpasswd -a user10 grp2
2.同时添加多个用户到组
-M:members成员的缩写
[root@qfedu ~]# gpasswd -M tom,alice it
3.从组删除用户1
-d
[root@qfedu ~]# gpasswd -d user07 hr
[root@qfedu ~]# gpasswd -d user07 hr
将一个用户同时添加到多个组
usermod -aG t1,t2,t3,t4 king
查看某个用户属于某个组
#id [用户名]
id king
🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
-🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
–🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
—🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
----🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
-----🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
-------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 学习linux 第四天 完结撒花 -🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
--------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
----------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
-----------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
-----------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
------------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
-------------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸
--------------🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸 🌸🌸