Linux的操作命令(2)&vim编辑器

一、命令

        1、权限管理命令 chmod(change the permissions mode of a file)

                功能描述:改变文件或目录权限

                语法:chmod [{ugo}{+-=}{rwx}] [文件或目录] [mode=421][文件或目录]

                r 4 读 read

                w 2 写 write

                x 1 执行 execute

                范例:$ chmod g+w file1

                赋予文件file1所属组写权限

                $chmod 777 dir1

                第一位表示文件类型。如果是—表示文件,d表示是文件夹。。。

                第2-4表示当前用户对该文件具有的权限r是read读,w是write写,x表示可以执行

                root root

                第5-7表示当前用户所在组对该文件/文件夹的权限

                第8-10表示出了这个组以外的人对该文件的权限

        2、输入重定向

                一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文

                件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。

                >:覆盖输出,会覆盖掉原先的文件内容

                >>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

                语法:#正常执行的指令 > / >> 文件的路径

                注意:文件可以不存在,不存在则新建

二、Vim编辑器

        1、安装vim

                yum -y install vim

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

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

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

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

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

Linux的操作命令(2)&vim编辑器_第1张图片

         2、使用方法        

                进入方式 vim filename

                进入编辑模式 i

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

                基本上vim可以分为三种状态,分别是命令模式 (command mode)、插入模式

                (Insert mode) 和底行模 式 (last line mode).

                命令行模式:

                在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(控制屏幕

               光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last )

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

                键可回到命令行模式。

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

                销、高亮等等

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

                命令行模式command mode)。

        3、插入命令

                i 在光标前插入

                I 在光标当前行开始插入

                a 在光标后插入

                A 在光标当前行末尾插入

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

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

        4、定位命令       

                :set nu 显示行号

Linux的操作命令(2)&vim编辑器_第2张图片

                :set nonu 取消行号

                gg 到文本的第一行

                G 到文本的最后一行

                :n 到文本的第n行

                $ 当前行的最后一个字符

        5、替换和取消命令

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

                r 替换光标所在处字符

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

        6、删除命令

                x 删除光标所在字符

                nx 删除光标所在处后n个字符

                dd 删除光标所在行,ndd删除n行

                dG 删除光标所在行到末尾行的所有内容

                D 删除光标所在处到行尾的内容

                :5,7d 删除指定范围的行,从第5行到第7行

        7、常用快捷键

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

                v 进入字符可视模式

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

                Ctrl + v 进入块可视模式

        8、快捷键

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

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

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

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

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

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

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

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

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

                "^"将光标移到行头

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

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

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

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

        9、复制

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

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

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

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

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

        10、查找

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

                替换

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

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

三、用户权限管理

        1、用户管理

                Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首

                先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

                用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统

                资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

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

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

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

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

                用户组的管理。

                注意三个文件:

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

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

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

                显示当前登录的用户: whoami

                

                查看用户信息

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

                文件里面

cat /etc/passwd

Linux的操作命令(2)&vim编辑器_第3张图片

: 号代表含意:

        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系统依然要运行,有很多进程在跑着,所以必须

        需要一些伪用户来执行那些命令

保存密码的文件:/etc/shadow

Linux的操作命令(2)&vim编辑器_第4张图片

        root:$6$SZEY4if7AdQloPZp$qCYvpjK9DQedV.vA/Da7oWciD7BvMJ.gMc7VJ7bDBrIrsa

        wuGAOKZS1CqWQA0Gm3.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.添加用户

        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文件。

        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)

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

5.删除用户

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

        常用选项:

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

        案例:删除yuyongli用户

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

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

        a. ps -ef|grep yuyongli

        b. kill -9 xxx

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

6.查看用户有谁

        ls /home

7.锁定用户:

        usermod -L 用户名

        usermod -L yyl

8.解锁用户:

        usermod -U 用户名

用户组管理

        每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系        统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建

        用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

文件结构:

        用户组名:密码:用户组ID:组内用户名

        密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码;

        组内用户名:表示附加组是该组的用户名称

1.添加用户组

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

        常用选项:

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

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

        groupadd xxx

2.更改组名称

        groupmod [选项] 组名

        常用选项:

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

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

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

        groupmod -g 520 -n admins Administrators

3.删除组

        groupdel 组名

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

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、查看当前时间

        [root@localhost ~]# date

        

        2、格式化当前的时间

                [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)

        3、查看硬件时间

                [root@localhost ~]# hwclock

                Sun 21 Feb 2021 09:59:01 PM PST -0.992879 seconds

        4、设置当前的时间

                [root@localhost ~]# date -s "2024-01-11 11:21:00"

                Mon Feb 22 14:00:00 PST 2021

        5、将系统时间同步到硬件时钟

                [root@localhost ~]# hwclock --systohc

                [root@localhost ~]# date && hwclock

        6、时间不一致的问题:

                cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

五、总结

        基础的命令

ls ll (ls -l) cd pwd cp mv rm touch mkdir find grep tar ps -ef head tail

clear kill -9

  1. vim

i 插入模式 命令模式 底行模式

:set nu

:wq

: %s/yu/new/g

G

$

        2、用户的增删改查

/etc/passwd

useradd

usermod

userdel

       3、组

/etc/group

groupadd

groupmod

groupdel

你可能感兴趣的:(linux,vim,运维)