vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。
yum -y install vim
yum是RedHat以及CentOS中的基于RPM软件包管理器。
进入方式 vim filename
进入编辑模式 按i 可进行编辑修改
退出编辑模式 按Esc 再按 : wq 保存并退出
分别是命令模式 (command mode)、插入模式 (Insert mode) 和底行模 式 (last line mode)
命令行模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last )
插入模式:也称为编辑文本模式 只有在Insert mode下,才可以做文字输入,按 「ESC」键可回到命令行模式。
底行模式: 将文件保存或退出vi,也可以设置编辑环境,如搜索、替换、保存、退出、撤销、高亮等等
不过一般我们在 使用时把vi简化成两个模式,就是将底行模式 (last line mode)也算入命令行模式command mode)。
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
gg 到文本的第一行
G 到文本的最后一行
:n 到文本的第n行
$ 当前行的最后一个字符
u 取消上一步操作(返回上一步) Ctrl+r 返回到undo之前(取消返回上一步)
r 替换光标所在处字符(只替换一个)
R 从光标所在处开始替换,按esc结束
在:底部命令模式下使用“s/原字符/新字符/g” 代表当前行所有
如果想全局替换,s变为%s
:%s#abc#123#g (如文件内有#,可用/替换,:%s/abc/123/g)
--注:把abc替换成123
:20,30s#abc#123(如文件内有#,可用/替换,:%s/abc/123/g)
--注:把20行到30行内abc替换成123
x 删除光标所在字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到末尾行的所有内容
D 删除光标所在处到行尾的内容
:5,7d 删除指定范围的行,从第5行到第7行
Shift+ zz 保存退出,与“:wq”作用相同
v 进入字符可视模式
V 或 Shift + v 进入行可视模式
Ctrl + v 进入块可视模式
Linux中vi编辑器的使用详解,下面的引号和括号不算啊
:set nu 显示行号
:set nonu 取消行号
光标的移动除了键盘上的上下左右键.也可以是小写模式下,按键盘上的"h,j,k,l",
"ctrl+b":屏幕往后移动一页
"ctrl+f":屏幕往前移动一页
"ctrl+u":屏幕往后移动半页
"ctrl+d":屏幕往前移动半页
输入任何一个整数,然后输入"shift+G" 就可以到这一页的开头了.
按键盘上的大写"G"移动到文章的最后.
按"$"符号将光标移动到行尾
"^"将光标移到行头
"w":将光标移到下一行头
b":跟"w"相反.移到上一行行头
"e":将光标移到下一行尾.
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
字尾处表示哪一个字段 比如从光标处使用yw复制这个root
「yy」:复制光标所在行到缓冲区。
粘贴时向下插入此行
「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
将缓冲区内的字符贴到光标所在位置。
注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴 功能。
用"/"加上要查找的内容.例如"/hello"或者是"?hello"也是可以的.
替换
「r」:替换光标所在处的字符。 ,按一下"r"然后输入要即可.
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
window:单用户 多任务
linux:多用户 多任务
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的密码。
用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。
要想实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除、修改以及用户密码的管理。
用户组的管理。
注意三个文件:
/etc/passwd 存储用户的关键信息
/etc/group 存储用户组的关键信息
/etc/shadow 存储用户的密码信息
显示当前登录的用户: whoami
使用cat命令来查看一下保存用户信息的文件 ,保存用户信息的文件保存在 /etc/passwd文件里面
cat /etc/passwd
root 用户名 : x 密码:0 :0 :root :/root :/bin/bash
域分割符这个文件有7个域分别是:
用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell
用户名:创建新用户名称,后期登录的时候需要输入;
密码位:此密码位置一般情况都是“x”,表示密码的占位;
用户标示号:用户的识别符
默认组标示号:该用户所属的主组ID;
注释:用于描述用户的信息
家目录:用户登陆系统的默认目录,默认是在/home/下、
解释器:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;
根用户都是从0开始的(第三个域)
除了第一行root外,下面的都是操作系统的伪用户(除普通用户外)
超级用户:(root,UID=0)
普通用户:(UID在500到60000)
伪用户:(UID在1到499)
伪用户不能登录系统,而且没有宿主目录
为什么需要伪用户:没有用户登录时,linux系统依然要运行,有很多进程在跑着,所以必须需要一些伪用户来执行那些命令
用户名:密码:更改密码的日期:密码不可被更改的天数(0随时可以更改):密码需要更新的时间:
提前几天进行提醒
:号的含义
保留:最后一个栏位是保留的,看以后有没有新功能加入。
保存用户组的文件:/etc/group
保存用户组密码的文件:/etc/gshadow
用户配置文件:/etc/default/useradd
useradd [选项] 用户名
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认会按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义
-c comment:添加注释
案例:创建用户 yyl 不带任何选项
验证是否成功:
a. 验证/etc/passwd的最后一行,查看是否有yyl的信息;
b. 验证是否存在家目录(在Centos下创建好用户之后随之产生一个同名家目录);
注意:在不添加选项的时候,执行useradd之后会执行一系列的操作
a. 创建同名的家目录;
b. 创建同名的用户组;
创建一个用户 yzh 主组是root 附加组是yyl id是2000 注释是 yzh班级
案例:添加选项,创建用户lisi,让lisi属于501主组,附加组500,自选号666,注释是 lisi。
useradd -g 501 -G 500 -u 666 lisi
usermod [选项] 用户名
Usermod:user modify,用户修改
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义号
-l:修改用户名
案例:修改yyl用户主组为500,附加组改为501
usermod -g 500 -G 501 yyl
案例:修改yyl用户用户名,改为yuyongli
usermod -l 新的用户名 旧的用户名
#usermod -l yuyongli yyl
注意:已经登录的用户不能修改
groups 用户名 --- 用户所在的组
Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。
passwd 用户名
案例:设置yuyongli用户的密码
设置密码之后在shadow文件中能够看出用户是否有密码。
在设置用户密码之后可以登录帐号,例如此处需要登录yuyongli
切换用户命令:su [用户名] (switch user)
从root往普通用户切换不需要密码,但是反之则需要root密码;
常用语法:userdel [选项] 用户名
常用选项:
-r:表示删除用户的同时,删除其家目录;
案例:删除yuyongli用户
注意:已经登录的yuyongli用户删除的时候提示删除失败,但是没有登录的lisi用户可以正常删除
如果想要删除yuyongli这个用户可以强制删除
a. ps -ef|grep yuyongli
b. kill -9 xxx
提示:所有跟用户操作的命令(除passwd外)只有root超级管理员有权限执行。
ls /home
usermod -L 用户名
usermod -L yyl
Linux 账户锁定是一项重要的安全措施,可以协助用户防范恶意攻击。在这种机制下,如果用户的登陆行为有问题,其账号将被临时锁定,以防登录活动有异常情况出现
usermod -U 用户名
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
文件结构:
用户组名:密码:用户组ID:组内用户名
密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码;
组内用户名:表示附加组是该组的用户名称
常用语法:#groupadd [选项] 用户组名
常用选项:
-g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字,如果自己不指定,则默认从1000之后递增;
案例:使用groupadd指令创建一个新的用户组,命名为xxx
groupadd xxx
groupmod [选项] 组名
常用选项:
-g:类似用户修改里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字
-n:类似于用户修改“-l”,表示设置新的用户组的名称
案例:修改Administrators用户组,将组ID从502改成520,将名称改为admins
groupmod -g 520 -n admins Administrators
groupdel 组名
注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移出所有用户。
是主组时不能删除!!
usermod -g 用户组 用户名
注:-g–gid,修改用户的gid,该组一定存在
多组:
usermod -G 组名,组名 用户名
usermod -G test,root yyl
把zyf的组改为AAA
-- change group premission
chgrp 组名 文件名
chgrp g1 /home/test
chmod 770 /home/1.txt
750
用数字来表示权限(r=4,w=2,x=1,-=0)
[root@localhost ~]# date
[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S"
2021-02-21 21:57:00
这两个效果一样
date "+%F %T"
#date -d "-1 day" "+%Y-%m-%d %H:%M:%S"
符号的可选值:+(之后) 或者 - (之前)
单位的可选值:day(天)、month(月份)、year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
[root@localhost ~]# hwclock
Sun 21 Feb 2021 09:59:01 PM PST -0.992879 seconds
[root@localhost ~]# date -s "2024-01-11 11:21:00"
Mon Feb 22 14:00:00 PST 2021
[root@localhost ~]# hwclock --systohc
[root@localhost ~]# date && hwclock
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime