vim编辑器

vim是从vi发展出来的一个文本编辑器。是一款程序开发工具。补全代码,编译及错误跳转等方便编程的功能特别丰富,被广泛运用。

三中使用模式

基本上,基于vi/vim会有三种命令模式:命令模式,输入模式,底线命令模式

命令模式:


点击回车,用户刚刚启动vi/vim,便进入了命令模式,如下图:
命令模式状态下,不可编辑文件内容,敲击键盘会被vim识别为命令,而非字符,比如我们敲击 ‘i’,该字符不会出现在命令行上,而会进入输入模式,才可以编辑。以下是常用命令:

  • i --进入输入模式,编辑文件
  • x --删除当前光标所处的字符
  • :–切换到底线命令模式,在最后一行输入命令
    命令模式只有一些最基本的命令,仍然要靠输入模式和底线命令模式来进行操作。

输入模式

在命令模式下敲击’i’就会进入输入模式
在输入模式下,除了可以编辑内容外,可以使用以下按键:

按键 作用
HOME/END 移动到行首/行尾
pageup/pagedown 上下翻页
ecs 退出输入模式
方向键 在文本中移动光标

底线命令模式

在命令模式下按‘:’(英文冒号)就可以进入底线命令模式,底线命令模式可以输入单个或者多个字符,可用的命令非常多,基本的命令如下(已省去冒号):

  • w–保存文件
  • q–退出程序
  • 按ecs键回到一般模式,wq存储离开vim

以下是三种模式的关系图:

vim其他按键说明

1.一般模式可用的光标移动,复制粘贴,搜索

移动光标
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)
G 移动到这个档案的最后一行(常用)
gg 移动到这个档案的第一行,相当于 1G 啊!(常用)
n< Enter> n 为数字。光标向下移动 n 行(常用)
搜索替换
/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
?word 向光标之上寻找一个字符串名称为 word 的字符串。
n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
删除复制与粘贴
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
dd 删除游标所在的那一整行(常用)
ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用)
u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)

2.一般模式切换到编辑模式的按键说明

进入输入模式或者取代输入模式
i, I 进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用)
a, A 进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
o, O 进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』;O 为在目前光标所在处的上一行输入新的一行!(常用)
r, R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
[Esc] 退出编辑模式,回到一般模式中(常用)

3.一般模式切换到指令模式的按键

指令行的存储,离开等指令
:w 将编辑的数据写入硬盘档案中(常用)
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!

账号管理

简介

Linux系统是一个多用户任务的分时操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
实现用户的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加,删除与修改
  • 用户口令的管理
  • 用户组的管理

用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加,修改和删除。

useradd–添加用户账号

参数说明:

  • -c comment,指定一段注释性描述
  • -d 指定用户目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
  • -g 指定用户所属的用户组
  • -G 指定用户所属的附加组
  • -m 使用者目录如不存在,则自动创建
  • -s shell文件,指定用户登录shell
    测试:
    新增的用户数据在/etc/passwd的文件中查看:

Linux下如何切换用户

切换用户的命令为:su 用户名
在终端输入 ctrl+d,可以退回原来的用户,相当于执行exit的命令
在切换用户后,如果想要使用切换后的新用户的工作环境,可以在 su 和用户名之间加上-,例如:su - root

删除账号

userdel为删除用户账号,常用的参数为-r,它的作用是将随之创建的主目录也一起删除,也就是说/etc/passwd, /etc/shadow, /etc/group等里的记录也随之删除。

修改账号

修改账号就是修改用户的有关属性,如户号,主目录,用户名,登录shell,等,修改已有的账户的命令为:usermod 选项 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
此命令将用户wcj的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

用户口令管理

用户管理的一项重要内容是用户口令管理。用户刚创建的时候没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
语法:
passwd 选项 用户名
可使用的选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。
    若当前用户为普通用户登录时,修改自己的登录密码时,必须要先若当前登录号的原先密码,才能重置新密码,若为root用户时,可以任意修改用户的登陆密码:(特别注意的是,Linux中输入密码时,它是不显示的,你正常输入后敲击回车就行
    另外:passwd -d wcj (将wcj用户的口令删除)当wcj用户下一次登陆的时候,系统不再允许该用户登录
    passwd -l wcj(将wcj用户锁住,使其不能登录)

用户组管理

每一个用户都有一个用户组,系统可以对一个用户组里的成员集中管理,不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

增加一个用户组–groupadd

groupadd选项 用户组
可以使用的选项有:

-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
在etc/group下查看

修改用户组—groupmod

常用的选项有:

  • g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字

删除用户组——groupdel

切换用户组–newgrp

如果一个用户同时属于多个用户组,那么用户可以在多个用户组之间来回切换,以便具有其他组的权限,

查看用户管理的一些文件

/etc下的部分目录存放了我们添加的用户名和密码的重要记录,这些文件包括:/etc/passwd,etc/shadow,etc/group等。
/etc/passwd文件是用户管理的工作涉及的一个重要文件。
Linux系统中每一个用户都在/etc/passwd文件中有一个对应的记录,它记录这个用户的一些基本属性,这个文件对所有用户是可读的,它的内容如下:
从上面的记录可以看出来每一行的记录对应着每一个用户,每行记录又被冒号(:)隔开,具体格式如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

1)同户名:代表用户账号的字符串。
通常长度不能超过8个字符,
并且由大小写字母或者/或者数字组成,不能有:(冒号),因为冒号是分隔符

2)口令:存放着加密后的用户口令字符。
虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。
3)“用户标识符”:他是一个整数,系统内部用来标识用户
一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。

通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

4)组标识号:记录着用户所属的用户组
它对应着/etc/group文件中的记录。

5)注释性描述: 记录着用户的个人情况
例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。

6)主目录:创建用户时所在的目录
它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。

7)登录shell:用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。

Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。
系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。
用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。
利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。

伪用户概念

当你查看etc/passwd的内容时,会发现已经存在了一些用户记录,但是不能登录,因为他们的shell为空,他们的存在主要是方便系统管理,满足相应的系统进程对文件的属主的要求。
常见的伪用户如下:

伪 用 户 含 义
bin 拥有可执行的用户命令文件
sys 拥有系统文件
adm 拥有帐户文件
uucp UUCP使用
lp lp或lpd子系统使用
nobody NFS使用

etc/shadow中的记录行与shadow/passwd中一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生
其内容格式如下:

其所对应的格式如下:

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

1)登录名:与/etc/passwd文件中的登录名相一致的用户账号

2)口令:加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。

3)最后一次修改时间:从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。

4)"最小时间间隔"指的是两次修改口令之间所需的最小天数。

5)"最大时间间隔"指的是口令保持有效的最大天数。

6)"警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

7)"不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。

8)"失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

etc/group
用户组的所有信息都存放在etc/group文件中

其格式如下:

组名:口令:组标识号:组内用户列表
  1. 组名:"组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

2)口令:"口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。

3)"组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。

4)"组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

磁盘管理

常用命令:
du:检查磁盘空间使用量
df:列出文件系统的整体磁盘使用量

df

检查文件系统的磁盘空间占用情况,可以利用该命令来获取硬盘占用了多少空间,目前还剩下多少空间等。

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示
    测试:


du


选项与参数

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;
  • -S :不包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;
    与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。

磁盘挂载与卸除

磁盘挂载语法:

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n]  装置文件名  挂载点

磁盘卸载语法:

[root@www ~]# umount /dev/hdc6

至此为止,vim的使用以及用户账号的管理已经讲述完毕。

LInux:vim的使用以及用户账号的管理相关推荐

  1. Linux系统用户账号的管理技巧

    用户账号的管理工作主要涉及到用户账号的添加.修改和删除. 添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号.用户组.主目录和登录Shell等资源.刚添加的账号是被锁定的,无法使用. 1. ...

  2. Linux Vim插件管理器Vundle安装和使用

    Vundle是vim的一个插件管理器, 同时它本身也是vim的一个插件.插件管理器用于方便.快速的安装.删除.Vim更新插件.vim Vundle插件官方地址:https://github.com/V ...

  3. RHCSA——Linux文件以及用户与组的管理

    ZY目录 Linux操作系统讲解: 一.文件管理 1.1 查找文件的路径--find 1.2 复制,移动文件--cp/mv 1.2.1.cp命令: 1.2.2.mv命令 1.3 文件的打包和压缩--z ...

  4. linux系统用户,组和权限的管理

    PS: {最近一直在做毕业设计,前面博客也记录过我的一些过程.其中需要在Ubuntu上搭建一个FTP服务器,此处我选择Vsftpd,但是在我对vsftpd的配置文件vsftpd.conf设置正确后(对 ...

  5. Linux系统之高级用户组和权限管理

    Linux系统之高级用户组和权限管理 一.用户的密码策略设置 1.用户的密码文件 2.用户的密码期限配置 ①查看用户密码期限 ②修改密码期限 ③强制用户下一次修改密码 ④用户到期时间设置 3.查看当前 ...

  6. Linux 使用本地yum源及软件包管理

    Linux 使用本地yum源及软件包管理 2016-12-18 10:09 by 宋跃杰, 5 阅读, 0 评论, 收藏, 编辑 [root@node130 rh]# pwd /opt/rh [roo ...

  7. Linux、UNIX下磁带机的管理和使用

    一.磁带机简单介绍 目前市场上有很多自称是"完美的系统备份选择"的设备,包括磁带机,便携式磁盘驱动器,甚至还有一些神秘的Internet备份系统.对于备份操作来说,还是磁带机提供了 ...

  8. Linux云计算架构-设置计划任务与管理日志

    文章目录 Linux云计算架构-设置计划任务与管理日志 1. 计划任务 2. 一次性计划任务(at) 3. 周期性计划任务(crontab) 4. 日志系统 5. rsyslog日志服务 6. 自定义 ...

  9. vim autoformat php,Linux Vim代码格式化/美化插件vim-autoformat安装

    vim-autoformat是Vim的一款代码自动化格式插件,vim-autoformat会根据文件的后缀,自动调用相应的相应命令进行代码格式化.所以,安装vim-autoformat的同时,还需要安 ...

最新文章

  1. 计算机考试上传照片教程,电脑照片传到iPhone手机的详细步骤【图文】
  2. Java——标签组件:JLabel
  3. Android 面试常问七道题
  4. 从零基础入门Tensorflow2.0 ----七、35. 文本生成之---1.数据处理
  5. MS SQL Server对表的设计修改时不允许保存
  6. 黑龙江省黑河市谷歌高清卫星地图下载
  7. Virtualbox 桥接网卡 详细教程
  8. zemax中非序列添加相位面_zemax非序列照明技巧汇编
  9. 电驴emule使用教程
  10. 手机打开html没有图片,网页看不到图片怎么办?图片打不开的解决办法
  11. Git Re-Basin: Merging Models modulo Permutation Symmetries解读
  12. 【Web基础】用户登录注册案例
  13. 缺少dll文件的终极解决办法!
  14. 运放-运算放大器经典应用电路大全-应用电路大全-20种经典电路
  15. 微信小程序、uniapp、H5——发送、显示emoji表情
  16. Golang【sgg】
  17. win10定时关机c语言,win10定时关机怎么设置,win10设置定时关机设置方法-电脑怎么定时开关机...
  18. 技术所带来的生产率提升,将会大大提高资本要素回报率
  19. 6-2 读文章(*) (10分)
  20. 2.6 自定义srv python

热门文章

  1. 怎么使用手机来抠图?这几种抠图方法手机就能操作
  2. 是不是年龄大的人就不能找到一份好工作?
  3. 有哪些不起眼却非常赚钱的行业?
  4. python按位取反的问题
  5. 西乡中学2021艺体生高考成绩查询,2019年深圳西乡中学中招体育、艺术特长生合格名单公布...
  6. pytorch搭建cnn报错:RuntimeError: size mismatch, m1: [10 x 43264], m2: [10816 x 2] at C...
  7. KDZR-10A三相直流电阻测试仪
  8. 浅聊JavaScript中的回调函数
  9. Excel求和斜杠/之后的数字
  10. 多项式乘法运算终极版