vi的几种模式

  • 一般模式
  • 编辑模式
  • 命令行模式

vim编辑器的使用

vim程序编辑器-插入模式

  • i:在光标前插入

末行模式

  • 保存::w
  • 强制保存::w!
  • 退出::q
  • 强制退出::q!
  • 保存并退出::wq 或者 ZZ
  • 另存为filename文件::w[filename]

光标移动

  • 屏幕向下移动一页:[ctrl]+f 或 [PgDn]
  • 屏幕向上移动一页:[ctrl]+b 或 [PgUp]
  • 屏幕向下移动半页:[ctrl]+d
  • 屏幕向上移动半页:[ctrl]+u
  • 光标移至行首:0(数字)、^或[Home]
  • 光标移至行尾:$或[End]
  • 光标移至文件的最后一行:G
  • 光标移至文件的第一行:gg
  • 光标向下移动n行:n+回车
  • 移动到58行 :58
  • 光标向右移动n个字符:n+空格

查找与替换

  • 向下查找一个名称为word的字符串 :/word
  • 向上查找一个名称为word的字符串 :?word
  • 重复前一个查找操作 :n
  • “反向”进行前一个查找操作 :N
  • 将n1与n2行之间的字符串word1替换为word2: :n1,n2s/word1/word2/g

删除、粘贴与复制

  • 复制光标所在行:yy
  • 删除光标所在行:dd
  • 删除一块光标下几行区域:Ndd
  • 将已复制的数据在光标所在行的下一行粘贴:p(小写)
  • 将已复制的数据在光标所在行的上一行粘贴:P(大写)
  • 前删:x (相当于Backspace)
  • 后删:X (相当于delete)

复制粘贴文件:cp filename

  • 把整个目录复制到另一个目录
  • cp -r 源目录 指定目录
  • 例子:cp -r novel-manage /root

文件移动 mv

  • mv 文件名/文件目录 指定文件目录

文件重命名

  • mv 原文件名 更改文件名

查找文件

  • find / -name 文件名

在第一行新增一行,并插入内容:

  • 在非编辑模式下,使用键盘输入【1G】,将鼠标定位在第一行第一个字符
  • 使用键盘输入【O】(大写),便新增加一行,再次输入内容
  • 保存离开::wq

取消与重复

  • 重复前一个操作:u
  • 重复上一个操作:[ctrl] + r

块选择

  • v : 字符选择,会将光标经过的地方高亮选择
  • V :行选择,会将光标经过的行进行高亮选择
  • [ctrl] + v :块选择,可以用长方形的方式选择数据
  • y :将高亮的地方复制
  • d :将高亮的地方删除

多文件编辑

  • :n :编辑下一个文件
  • :N : 编辑上一个文件
  • :files : 列出目前vim(编辑器)打开的所有文件

环境设置参数

  • :set nu : 设置 行号
  • :set nonu : 取消行号
  • :$ : 文件底行
  • :1 : 文件首行

Linux用户与组管理

用户类型

  • 超级用户(root,UID=0)
  • 系统用户(UID=1~999)
  • 普通用户(UID=1000~60000)

用户账号配置文件

用户账号配置文件:/etc/passwd
root:x:0:0:root:/root:/bin/bash

权限管理-用户组

Linux的组分为:

  • 私有组:建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组只容纳了一个用户。
  • 系统组:系统组是Linux系统自动建立的
  • 标准组:标准组可以容纳多个用户,组中的用户都具有组所拥有的权利。

一个用户可以属于多个组,用户所在的组又有初始组和有效组之分。

  • 用户登录时属于的组叫做这个用户的初始组
  • 用户创建文件时,文件所属组称为用户的有效组。

权限管理-用户管理

  1. 添加用户命令:uesradd [选项] 用户名
  • -u:设置UID,用户ID和用户名必须是唯一的。
  • -g:指定用户所属的初始用户组(组必须存在)。
  • -G:设置用户所属的其他用户组。
  • -c:添加用户说明
  • -d:设置用户主目录路径
  • -s:设置用户登录时使用的shell
  1. 示例:
  • useradd user1
  • useradd -u 1002 -g users user1
  1. 删除用户命令
  • -r:删除用户的同时将用户主目录删除
  1. 设置用户密码命令 :password [-r] 用户名
  • -l:锁定用户(只有root用户可以操作)
  • -u:解锁用户(只有root用户可以操作)
  • 输入 “passwd 用户名”设置用户名的密码

权限管理-用户组管理

  1. 添加用户组命令:groupadd -g gid groupname
  2. 删除用户组命令:groupdel groupname
  • 如果组中有用户,应先删用户,再删组。
  • 当该组是某个用户的初始组时,不能删除
  1. 管理用户组属性
  • groups:查看用户的所属组
  • groupmod:-g指定GID,-n指定name;
  • 注意,不要随便改动GID的值
  1. newgrp命令
  • 如果一个用户同时属于多个组,用户可以在不同的用户组间进行切换
  • newgrp 用户组

Linux文件权限

文件权限-访问权限

  1. 访问权限规定三种不同类型的用户
  • 文件属主(user):文件的所有者,称为属主。
  • 同组用户(group):文件属组的同组用户
  • 可以访问系统的其他用户(other)
  1. 访问权限规定三种访问文件或目录的方式
  • 读(r):允许读取文件内容或者列目录。
  • 写(W):允许修改文件内容或者创建、删除文件
  • 可执行或查找(x):允许执行文件或者允许使用cd命令进入目录
  1. 一些命令
  • u:User,即文件或目录的拥有者
  • g:group,即文件或目录的所属集群
  • o:Other,除u和g,其他用户皆属于这个范围
  • a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
  • r:读取权限,数字代号为“4”
  • w:写入权限,数字代号为“2”
  • x:执行或切换权限,数字代号为“1”
  • -:不具任何权限,数字代号为“0”

文件权限-数字形式修改文件权限

  • 数字形式即由三位八进制数字组成,其命令格式为:
  • chmod 八进制模式 文件名

举例:
chmod 641 f1
等价于 chmod u+wr,g+r,o+x f1

文件权限-默认权限

[root@localhost ~]# umask 结果:0022

[root@localhost ~]# umask -S 结果:u=rwx,g=rx,o=rx

  • umask指定用户在新建文件和目录时候的权限默认值
  • umask值可以修改 umask 044
  • 默认情况下用户创建文件则没有可执行的权限 也即是666
    -rw-rw-rw
  • 默认情况下用户创建目录权限是777
    -rwxrwxrwx
  • 目录的权限x是指该用户能够进入到目录
  • 创建目录时默认权限 drwxr-xr-x

文件权限-特殊权限SUID

当s这个标志出现在文件所有者的x权限上时,如”-rwsr-xr-x”,就被称为Set UID,简称SUID。这个特殊权限的特殊性的作用是:

  • SUID的权限仅对二进制程序有效
  • 执行者对于该程序需要具有x的可执行权限
  • 本权限仅在执行该程序的过程中有效(run-time)。
  • 执行者将具有该程序拥有者(owner)的权限。

文件权限-特殊权限SGID

当s这个标志出现在文件所属用户组的x权限上时,如”-r-x–s–x”,就被称为Set GID,简称SGID。这个特殊权限啊的特殊性的作用是:

  • SGID对二进制程序有效
  • 程序执行者对于该程序来说,需具备x的权限。
  • SGID主要用在目录上。
  • 执行者在执行的过程中,将会获得该程序用户组的支持。

文件权限-特殊权限SBIT

Sticky Bit(SBIT)当前只针对目录有效,对文件没有效果。其对目录的作用是:

  • 在具有SBIT的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除。
  • 换句话讲:当甲用户属于A目录的group成员或属于other,且拥有 w 权限时,可以对该目录内任何人建立的目录或文件进行“删除/重命名/移动”等操作。不过,如果将A目录加上了SBIT权限,则甲用户只能针对自己建立的文件或目录进行“删除/重命名/移动”等操作。

文件权限-ACL权限

设定ACL权限的命令:setfacl 选项 文件|目录

  • -m:设定ACL权限
  • -x:设定指定的ACL权限
  • -b:删除所有的ACL权限
  • -d:设定默认的ACL权限
  • -k:删除默认的ACL权限
  • -R:递归设定ACL权限

查看ACL权限的命令:getfacl 文件|目录

  • -d:显示默认的ACL权限
  • -R:显示目录及其子目录和文件的ACL权限
  • -c:不显示文件或目录的基本信息
  • -E:不显示有效权限

CentOS7命令行与图形界面启动模式修改

  • 命令启动

    systemctl set-default multi-user.target

  • 图形界面模式

    systemctl set-default graphical.target

补充:Ctrl+c,Ctrl+d,Ctrl+z在Linux中意义

  • Ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样
  • Ctrl+c是强制中断程序的执行。
  • Ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态。
  • Ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。