02 Linux基础知识--vim&用户管理

02 Linux基础知识–vim学习&用户管理

vim模式

  • 普通模式:浏览文件
  • 插入模式:对文件内容进行编辑,输入i
  • 命令模式:临时更改vim的工作方式,对字符批量处理,输入:
  • 视图模式
  • 选择模式
  • Ex模式

vim配置文件

vim的个人配置文件是~/.vimrc,即在家目录下的一个隐藏文件,如果这个文件不存在那么就新建一个,这个配置文件是当前用户的不会影响到其他用户,如果是想要影响所有的用户的vim配置那么就要修改/etc/vimrc文件,修改文件只需要在文件的最后添加就可以了。

  • set shiftwidth=4:配置自动缩进4个空格,当然要设自动缩进先.
  • set sts=4 :即配置softtabstop为4.输入tab后就跳了4格
  • set tabstop=4 :实际的tab即为4个空格,而不是缺省的8个Q
  • set expandtab:在输入tab后,vim用恰当的空格来填充这个tab
  • 普通模式下按g跳到文件尾

调整工作方式

  • set nu:设置行号
  • set nonu:取消行号
  • set mouse=a:设置鼠标
  • set c:显示行线

字符搜索

  • /:从上向下搜索
  • ?:从下向上搜索

复制/粘贴/删除/剪切/进入视图模式

  • y操作

    • yy:复制一行
    • y3y:复制三行
    • yl:复制字符
    • y4l:复制四个字符
    • yw:复制一个单词
    • y5y:复制五行
    • y + G:复制从光标的当前行到文件结束
  • p操作

    • p:粘贴
  • d操作:与y操作类似,删除的内容在剪切版上

    • dd:删除一行
    • d3d:删除三行
    • dl:删除字符
    • d4l:删除四个字符
    • dw:删除一个单词
    • d5d:删除五行
    • x:在视图模式下删除一个字符
    • d + G:删除光标当前行到最后
  • 命令模式

    • 5,10 move 15:移动5到10行到15行,类似剪切+复制
    • 5,10 delete:删除5到10行
  • c操作:剪切,与y操作和d操作一样,不再赘述

    • 剪切之后vim会进入插入模式,要粘贴需要按Esc退出插入模式
  • o操作:在当前行的下一行插入一个空行

  • u操作:撤销操作,在win上是Ctrl + z

  • Ctrl + r:撤销的撤销,在win上是Ctrl + y

  • vim可视化模式

    • 字符可视化:在普通模式下按小写v,并且可对选中的内容操作
    • 行可视化:在普通模式下按大写V,并且可对选中的内容操作
    • 块可视化:在普通模式下按Ctrl + v,选择块,按大写I键,输入字符,Esc退出。

字符替换

  • :%s/old/new/g:替换oldnew的全部的内容
  • :1,5s/old/new/g:替换1到5行替换
  • :1,5 s/^/words/g:在1到5行行首添加words
  • :1,5 s/$/words/g:在1到5行行尾添加words

编辑多个文件/分屏

  • sp filename:在当前的vim,打开另一个文件
  • 分屏
    • Ctrl + w v:左右分屏
    • Ctrl + w s:上下分屏
    • Crtl + 上/下:上下切屏,用于上下分屏
    • Crtl + 左/右:左右切屏,用于左右分屏
    • Ctrl + w + c:关闭当前的屏幕

光标移动

  • g:跳到文件的行尾
  • gg:跳到文件的行首
  • 命令行模式下直接输入输入,跳到指定行

插入

  • 小写i:光标所在位置插入
  • 大写I:行首插入
  • 小写o:在当前行的下一行插入一个空行
  • 大写O:在当前行的上一行插入一个空行
  • 小写a:光标所在字符的下一个字符插入
  • 大写A:光标所在行的行尾进行插入
  • 小写s:光标所在字符删除并插入
  • 大写S光标所在行删除并插入
  • D:删除当前光标所在位置到行尾

保存退出

  • q:退出
  • w:写入
  • !:强制执行命令,如果没有权限写入则不会保存。
  • x:保存并退出
  • 普通模式下按两下大写Z保存退出

用户管理

用户查看

  • whoami:查看用户
  • id查看用户信息
    • id user:查看用户id
    • -u :查看用户UID
    • -g:查看用户GID
    • -G:查看用户所在的所有组ID
    • -n:需要和-ugG配合使用

用户切换

  • su - user
    • -:切换用户的同时切换shell
  • 只有root切换到其他用户不用输入密码,其他都需要输入密码。
  • 退出用户
    • Ctrl + d:退出当前用户
    • 输入exit退出当前用户

用户的存储

  • /etc/passwd用户信息文件

    用户名密码UIDGID用户说明用户的家目录用户的解释shell

  • /etc/group用户的组id

    组名组密码GID组成员

  • /etc/shadow用户的密码

    认证信息文件

  • /etc/gshadow用户组的密码

    登陆组认证信息

用户增/删等操作

  • useradd username:添加用户,kali如果需要创建用户需要加参数-m

    • -d:指定家目录
    • -G:指定附加组ID
    • -u:指定UID
    • -g:指定GID
    • -M:不创建家目录
    • -p:创建用户的时候设置用户登陆密码
    • -c:指定用户的说明文字,使用双引号"引起来
    • -s:指定用户的默认登陆shell
  • userdel username:删除用户默认不删除家目录

    • -r:删除用户的同时删除用户的家目录,邮箱等参数。彻底删除

    用户创建如果没有设置密码需要设置密码否则不能登陆

    passwd username:设置/修改用户的密码。

组的增/删等操作

  • groupadd:组的添加
    • -g:指定GID
    • -p:设置用户组的密码
  • groupdel:删除用户组
  • usermod:修改用户
    • -L:锁定用户
    • -U:解锁用户
    • -l:更改用户名称
    • -u:更改用户的UID
    • -g:更改用户的所属组
    • -G:更改用户的附加组
    • -G "":删除用户的所有附加组
    • -c string:指定用户说明文字
    • -md path:更改用户的shell
    • -s:更改用户的shell

用户认证信息

文件路径信息/etc/shadow

用户名称用户密码用户密码最后一次被更改的时间用户密码最短有效期用户密码最长有效期密码警告期限用户非活跃天数用户自定义列

修改用户密码

passwd :修改用户密码

  • -l:锁定用户
  • -u:解锁用户
  • -d:清空密码
  • -n:密码的最短有效期
  • -x:密码的最长有效期
  • -w:密码警告期
  • -i:用户的非活跃期
  • -e:使一个密码过期,普通用户再次登陆时需要修改密码
  • -E:设置用户密码到期时间

修改密码注意

  • 普通用户修改密码的时候必须知道永久原始密码
  • 密码不能和帐号类似
  • 密码不能是纯数字
  • 密码不能是有序的数字和字母的组合

文件属性

  • 文件类型

    • -:空文件,或者文本
    • d:目录
    • l:链接
    • b:块设备
    • s:socket文件
    • c:字符设备,鼠标键盘
  • 权限

    • 所有者权限(u):读(r)、写(w)和执行(x)

    • 所属组权限(g):读(r)、写(w)和执行(x)

    • 其他人权限(o):读(r)、写(w)和执行(x)

      文件权限

      • r:读权限,4
        • 普通文件查看文件内容
        • 目录查看目录内的文件列表
      • w:写权限,2
        • 普通文件修改文件内容
        • 目录内的文件的属性修改
      • x:执行权限,1
        • 对文件是否可以通过文件名调用文件内记录的程序
        • 对目录是否能进入
  • 文件的硬链接数

    • 文件来说是硬链接数
    • 目录来说是子目录的个数,包含...
  • 文件属者

  • 文件属组

  • 大小

    • 文件来说是文件大小
    • 目录来说记录的文件的信息,大小是位数+文件名长度
  • 最后一次被修改的时间

  • 文件名

修改文件信息

  • chmod:修改文件权限
  • chown:修改文件属主
    • -R:修改目录本身的所有者,还递归修改内部文件的所属者
  • chgrp:修改文件属组

别名

alias别名,需要添加到配置文件中,否则只会在当前shell有效