Linux命令-2

一vim

一.安装vim

yum -y install vim

Linux命令-2_第1张图片

出现以下就是安装成功

Linux命令-2_第2张图片

vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。

vim的这些优势主要体现在以下几个方面:

1.vim拥有所有vi命令功能;

2.vi只能在Unix / Linux,vim可以在Unix / Linux,windows系统上使用

3.vim编辑器,自动根据文件你内容显示不同的颜色

二使用方法

进入方式 vim filename

进入编辑模式 i

Linux命令-2_第3张图片

从编辑模式退出 按esc 再输入:wq 单击回车键

Linux命令-2_第4张图片

基本上vim可以分为三种状态,分别是命令模式 (command mode)、插入模式 (Insert mode) 和底行模 式 (last line mode).

命令行模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last )

插入模式:也称为编辑文本模式 只有在Insert mode下,才可以做文字输入,按 「ESC」键可回到命令行模式。

底行模式: 将文件保存或退出vi,也可以设置编辑环境,如搜索、替换、保存、退出、撤销、高亮等等

不过一般我们在 使用时把vi简化成两个模式,就是将底行模式 (last line mode)也算入命令行模式command mode)。

可以显示颜色

Linux命令-2_第5张图片

在最底部set nu

三插入命令

i 在光标前插入

I 在光标当前行开始插入

a 在光标后插入

A 在光标当前行末尾插入

o 在光标当前行的下一行插入新行

O 在光标当前行的上一行插入新行

四定位命令

:set nu 显示行号

Linux命令-2_第6张图片

:set nonu 取消行号

Linux命令-2_第7张图片

gg 到文本的第一行

G 到文本的最后一行

:n 到文本的第n行

$ 当前行的最后一个字符

Linux命令-2_第8张图片

五常用快捷键

Shift+ zz 保存退出,与“:wq”作用相同

v 进入字符可视模式

V 或 Shift + v 进入行可视模式

Ctrl + v 进入块可视模式

六替换和取消命令

u 取消上一步操作 Ctrl+r 返回到undo之前

r 替换光标所在处字符

R 从光标所在处开始替换,按esc结束

七快捷键

Linux中vi编辑器的使用详解,下面的引号和括号不算啊

光标的移动除了键盘上的上下左右键.也可以是小写模式下,按键盘上的"h,j,k,l",

"ctrl+b":屏幕往后移动一页

"ctrl+f":屏幕往前移动一页

"ctrl+u":屏幕往后移动半页

"ctrl+d":屏幕往前移动半页

输入任何一个整数,然后输入"shift+G" 就可以到这一页的开头了.

按键盘上的大写"G"移动到文章的最后.

按"$"符号将光标移动到行尾

"^"将光标移到行头

"w":将光标移到下一行头

b":跟"w"相反.移到上一行行头

"e":将光标移到下一行尾.

如果想让文本显示行号.就在【命令行】 模式下,在文本最后输入":set nu"命令.就可以了

八复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。

将缓冲区内的字符贴到光标所在位置。

注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴 功能。

九查找

用"/"加上要查找的内容.例如"/hello"或者是"?hello"也是可以的.

替换

「r」:替换光标所在处的字符。 ,按一下"r"然后输入要即可.

「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

十恢复上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。

按多次"u"可以执行多次恢复.就相当于"CTRL +Z"的操作.

替换

在命令模式下使用“s/原字符/新字符/g” 代表当前行所有

如果想全局替换,s变为%s

十一文件内全部替换:

:%s#abc#123#g (如文件内有#,可用/替换,:%s/abc/123/g)

--注:把abc替换成123

(或者: %s/str1/str2/g 用str2替换文件中所有的str1)

十二文件内局部替换:

:20,30s#abc#123(如文件内有#,可用/替换,:%s/abc/123/g)

--注:把20行到30行内abc替换成123

二用户权限管理和时间

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个惟一的用户名和各自的密码。

用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。

要想实现用户账号的管理,要完成的工作主要有如下几个方面:

用户账号的添加、删除、修改以及用户密码的管理。

用户组的管理。

注意三个文件:

/etc/passwd 存储用户的关键信息

Linux命令-2_第9张图片

/etc/group 存储用户组的关键信息

Linux命令-2_第10张图片

/etc/shadow 存储用户的密码信息

Linux命令-2_第11张图片

显示当前登录的用户: whoami

Linux命令-2_第12张图片

用户管理

查看用户信息

使用cat命令来查看一下保存用户信息的文件 ,保存用户信息的文件保存在 /etc/passwd文件里面

cat /etc/passwd

Linux命令-2_第13张图片

: 号代表含意:

yyl:x:1000:1000:yyl:/home/yyl:/bin/bash

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命令-2_第14张图片

为什么需要伪用户:没有用户登录时,linux系统依然要运行,有很多进程在跑着,所以必须需要一些伪用户来执行那些命令

root:$6$SZEY4if7AdQloPZp$qCYvpjK9DQedV.vA/Da7oWciD7BvMJ.gMc7VJ7bDBrIrsawuGAOKZS1CqWQA0Gm3.G45J6iNiALw2Ypu5k422.::0:99999:7:::

用户名:密码:更改密码的日期:密码不可被更改的天数(0随时可以更改):密码需要更新的时间:

提前几天进行提醒

:号的含义

  1. 帐号名称:由于密码也需要与帐号对应啊~因此, 这个档案的第一栏就是帐号,必须要与 /etc/passwd 相同才行!
  2. 密码:这个才是真正的密码,而且是 经过编码过的密码啦!
  3. 最近更动密码的日期:这个栏位记录了‘更动密码的那一天’的日期, 不过,这里展示的是数字18492 那是因为计算 Linux 日期的时间是以 1970 年 1 月 1 日作为 1 ,而 1971 年 1 月 1 日则为 366 啦! 所以这个日期是累加的那么2020年8月19日就是18492
  4. 密码不可被更动的天数: 第四个栏位记录了这个帐号的密码需要经过几天才可以被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!如果设定为 20 天的话,那么当你设定了密码之后, 20 天之内都无法改变这个密码!
  5. 密码需要重新变更的天数: 由于害怕密码被某些‘有心人士’窃取而危害到整个系统的安全,所以有了这个栏位的设计。 你必须要在这个时间之内重新设定你的密码,否则这个帐号将会暂时失效。 而如果像上面的 99999 的话,那就表示,呵呵,密码不需要重新输入啦! 不过,如果是为了安全性,最好可以设定一段时间之后,严格要求使用者变更密码呢!
  6. 密码需要变更期限前的警告期限:当帐号的密码失效期限快要到的时候, 就是上面那个‘必须变更密码’的那个时间时, 系统会依据这个栏位的设定,发出‘警告’言论给这个帐号,提醒他‘再过 n 天你的密码就要失效了,请尽快重新设定你的密码呦!’,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。
  7. 密码过期的恕限时间:如果用户过了警告期限没有重新输入密码, 使得密码失效了,也就是说,你在‘必须变更密码的期限前,并没有变更你的密码!’ 那么该组密码就称为‘失效的密码’啰~怎么办?没关系,还有这个栏位的天数设计啊 意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。 而如果在这个天数后还是没有变更密码,那么您的帐号就失效了!无法登入!
  8. 帐号失效日期:这个日期跟第三个栏位一样,都是使用 1970 年以来的总日数设定。这个栏位表示: 这个帐号在此栏位规定的日期之后,将无法再使用。 这个栏位会被使用通常应该是在‘收费服务’的系统中, 你可以规定一个日期让该帐号不能再使用啦!

保留:最后一个栏位是保留的,看以后有没有新功能加入。

保存用户组的文件:/etc/group

保存用户组密码的文件:/etc/gshadow

用户配置文件:/etc/default/useradd

1.添加用户组

常用语法:#groupadd [选项] 用户组名

常用选项:

-g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字,如果自己不指定,则默认从1000之后递增;

案例:使用groupadd指令创建一个新的用户组,命名为xxx

groupadd xxx

Linux命令-2_第15张图片

Linux命令-2_第16张图片

Linux命令-2_第17张图片

2.更改组名称

groupmod [选项] 组名

常用选项:

-g:类似用户修改里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字

-n:类似于用户修改“-l”,表示设置新的用户组的名称

案例:修改Administrators用户组,将组ID从502改成520,将名称改为admins

groupmod -g 520 -n admins Administrators

Linux命令-2_第18张图片

Linux命令-2_第19张图片

改组名字

Linux命令-2_第20张图片

Linux命令-2_第21张图片

联合使用

Linux命令-2_第22张图片

Linux命令-2_第23张图片

3.删除组

groupdel 组名

注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移出所有用户。

Linux命令-2_第24张图片

4.修改用户的组

usermod -g 用户组 用户名

注:-g–gid,修改用户的gid,该组一定存在

多组:

usermod -G 组名,组名 用户名

usermod -G test,root yyl

5.给文件授权到组

-- change group premission

chgrp 组名 文件名

chgrp g1 /home/test

6.设置文件权限

chmod 770 /home/test

750

用数字来表示权限(r=4,w=2,x=1,-=0)

1.添加用户

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

注意:查看用户的主组可以查看passwd文件,查看附加组可以查看group文件。

Linux命令-2_第25张图片

Linux命令-2_第26张图片

组合使用

Linux命令-2_第27张图片

2.修改用户

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 用户名 --- 用户所在的组

3.修改用户密码

Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。

passwd 用户名

案例:设置yuyongli用户的密码

设置密码之后在shadow文件中能够看出用户是否有密码。

在设置用户密码之后可以登录帐号,例如此处需要登录yuyongli

4.切换用户

切换用户命令:su [用户名] (switch user)

Linux命令-2_第28张图片

从root往普通用户切换不需要密码,但是反之则需要root密码;

5.删除用户

常用语法:userdel [选项] 用户名

常用选项: -r:表示删除用户的同时,删除其家目录;

案例:删除yuyongli用户

注意:已经登录的yuyongli用户删除的时候提示删除失败,但是没有登录的lisi用户可以正常删除

如果想要删除yuyongli这个用户可以强制删除

a. ps -ef|grep yuyongli

b. kill -9 xxx

提示:所有跟用户操作的命令(除passwd外)只有root超级管理员有权限执行。

Linux命令-2_第29张图片

Linux命令-2_第30张图片

6.查看用户有谁

ls /home

7.锁定用户:

usermod -L 用户名

Linux命令-2_第31张图片

usermod -L yyl

8.解锁用户:

usermod -U 用户名

三.时间

查看当前时间

[root@localhost ~]# date

Linux命令-2_第32张图片

格式化当前的时间

[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S"

2021-02-21 21:57:00

Linux命令-2_第33张图片

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

Linux命令-2_第34张图片

你可能感兴趣的:(linux)