#Linux基础(三)

#Linux基础(三)
###vi/vim的特点

  • vi/vim是一种纯文本编辑工具,它不像world可以排版,可以调整字体大小,可以改变字体颜色。
  • vi/vim正是一个文本编辑工具,只能对文本的内容进行操作,比如新增内容、修改内容、删除内容等等。
  • 全屏显示
    ###vi/vim的三种编辑模式
  • 命令模式
  • 输入模式
  • 末行模式
    | 编辑模式 | 作用 |
    | :-------- |--------|
    | 命令模式 | 用户执行命令,vi/vim的三种编辑模式比如复制行、粘贴行等等 |
    | 输入模式 | 用于输入文本、修改文本等等 |
    | 末行模式 | 用于查找文本、保存修改等等 |
    ###vi/vim的三种编辑模式间转换的方式
  • 命令模式–>输入模式
    i:insert,在当前光标所在字符的前面,转为输入模式
# Run the Setup Agent on first boot
-- INSERT 

I:大写的i,在当前光标所在行的行首转换为输入模式

(I)#version=RHEL8
# Use graphical install
graphical

a:append,在当前光标所在字符的后面转换为输入模式

%end

%(a)naConda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
-- INSERT --

A:在当前光标所在行的行尾转换为输入模式

pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty()
%end
-- INSERT -

o:open,在当前光标所在行的下方新建一行并转为输入模式

%end
()
-- INSERT -

O:大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式

()
%end

-- INSERT -- 

输入模式–>命令模式
ESC


%end


命令模式–>末行模式
:

%end

:     

末行模式–>命令模式
ESC ESC
###打开文件方式

  • 文件打开后默认处于命令模式下
    vim filename //打开文件
[root@localhost ~]# vim anaconda-ks.cfg 

vim +n filename //打开文件并定位到第n行

[root@localhost ~]# vim +2  anaconda-ks.cfg

vim +/pattern filename //打开文件并定位到第一次被/pattern匹配到的内容行首

#version=RHEL8
# Use graphical install
graphical

###关闭文件方式

命令意义
q退出
wq保存并退出
q!不保存退出
w保存但不退出
w!强行保存
wq!强行保存并退出
x强行保存并退出
###关闭文件方式
命令模式下关闭文件
ZZ
###移动光标的方式
移动光标方式移动方法
:----------------:
逐字符移动h,l,j,k,#h,#l,#j,#k
以单词为单位移动w,e,b,#w,#e,#b
行内跳转0,^,$
行间跳转gg,G,#gg,#G
翻屏ctrl+f,ctrl+b,ctrl+d,ctrl+u
###字符编辑
字符编辑
编辑命令意义
:----------------
x删除光标所在处的单个字符
#x删除光标所在处及其向后共#个字符
xp交换光标所在处的字符及其后面字符的位置
  • x
()end
           
  • #x
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
(                                                                       )
end

  • xp
(%ad_dukmp --enable --kkkkkrkkkkkkkkekserve-mb='auto')


###删除命令:d

  • 命令模式下d命令常与跳转命令组合使用,如
    d$:表示删除当前光标所在位置到行尾的内容
%packages
@(我的第一个笔记本)
kexec-tools

d^:表示删除当前光标所在位置到第一个行首非空白字符位置的内容

# Keyboard layouts
(        )
# System language

d0:表示删除当前光标所在位置到绝对行首的内容

( )boot --enable

(#d)跳转符:删除跳转符指定范围内的#个,例如
(#dw)
(#de)
(#db)
dd:删除当前光标所在行整行

(      )autopart

(#dd):删除包括当前光标所在行在内的#行

timezone Asia(   )

D:删除当前光标所在行的内容,保留空行

%ad_dukmp --ena(    )

###删除命令:d

  • 末行模式下d命令的使用 :StartADD,EndADDd

这里的StartADD与EndADD是指一个范围,例如:
1,5d:表示删除第1到第5行

范围表示方法:

表示方法意义
.光标所在当前行
$最后一行
+#光标所在行往后#行
$-#倒数第#行
%全文
###复制与粘贴
复制命令:yy

粘贴命令:p
p:小写p

若删除或复制的为整行内容,则粘贴至光标所在行的下方
若删除或复制的为非整行,则粘贴至光标所在字符的后面

P:大写p
若删除或复制的为整行内容,则粘贴至光标所在行的上方
若删除或复制的为非整行,则粘贴至光标所在字符的前面
###替换、撤销编辑与重复编辑操作
替换:r
R:替换模式,替换多个字符
r#:将当前光标的字符替换为#,这里的#可以是任何字符

撤销编辑:u
u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
(#u):直接撤销此前的#次编辑操作
ctrl+r:还原最近一次的撤销操作

重复前一次编辑操作:.
###可视化与文本查找
视化模式:可视化模式下可以对选取的内容进行前面讲的所有编辑操作
v:按字符选取内容
V:ctrl+V按矩形块(行)选取内容

文本查找:
/pattern:从上往下查找匹配的内容
?pattern:从下往上查找匹配的内容
n:从上往下查找匹配到的内容的下一条
N:从下往上查找匹配到的内容的下一条
###查找并替换与行号控制
查找并替换:s
s命令只能在末行模式下使用,语法如下:
:ADDR1,ADDR2 s/pattern/string/gi

示例:
:1,5 s/abc/def/g 表示把第一行到第五行的所有abc替换为def

末行模式下显示或取消显示行号:
set nu:显示行号
set nonu:取消显示行号
###用户和组管理

  • 用户分类
    Linux用户分为管理员和普通用户两种:
    | 用户类别 | 用户id |
    | :-------- | --------|
    |管理员|0|
    |普通用户|1-65535|
    其中普通用户又分为系统用户和登录用户两种:
    | 用户类别 | 用户id |
    | :-------- | --------|
    |系统用户|1-999(为守护类进程获取系统资源而完成权限指派的用户|
    |登录用户|1000-60000(为了完成交互式登录使用的用户|
  • Linux安全上下文

运行中的程序:进程(process)

以进程发起者的身份运行
root:cat
tom:cat
进程所能够访问的所有资源的权限取决于进程的发起者的身份
Linux通过安全上下文的概念完成用户权限的指派。

先判断用户是否是某文件的属主
再判断用户是否属于某个组
最后定其为其他用户

  • Linux用户组类别
    | 用户类别 | 特性 |
    | :-------- | --------|
    |私有组|创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名相同的组|
    |基本组|用户的默认组|
    |附加组(额外组) |默认组以外的其它组 |

Linux用户和组相关的配置文件

  • 各配置文件说明
    | 配置文件 | 作用 |
    | :-------- | --------|
    |/etc/passwd|用户及其属性信息(名称、uid、基本组id等等)|
    |/etc/group|组及其属性信息|
    |/etc/shadow|用户密码及其相关属性|
    |/etc/gshadow|组密码及其相关属性。在用户执行基本组切换时使用|
配置文件/etc/passwd/etc/group
第一字段用户名组名
第二字段密码占位符组密码
第三字段UIDGID
第四字段GID以当前组为附加组的用户列表(分隔符为逗号)
第五字段用户的描述信息
第六字段用户家目录
第七字段用户的登录shell
配置文件/etc/passwd
第一字段登录名
第二字段
第三字段UID
第四字段加密后的密码
第五字段密码的最大使用期限
第六字段密码警告时间段
第七字段密码禁用期
第八字段帐号的过期日期
第九字段保留字段
  sync    :x       :5 :0    :sync     :/sbin   :/bin/sync 
//用户名 密码占位符 UID GID 用户描述信息 用户家目录 用户的登录shell 

ftp     :x     :50    : 
//组名  组密码   GID    以当前组为附加组的用户列表 

halt       :*             :18397              :0                    :99999 
//登录名 加密后的密码  最近一次更改密码的日期    密码的最小使用期限       密码的最大使用期限
       :7         :        :            :
 密码警告时间段 密码禁用期 账号的过期日期 保留字段 
   root      :         :           : 
// 组名    加密密码   组管理员密码   组附加用户表 

  • 密码复杂性
    密码复杂性策略:

    • 使用数字、大写字母、小写字母及特殊字符中至少3种

    • 足够长

    • 使用随机密码,不要使用有意义的单词或数字

    • 定期更换,不要使用最近曾经使用过的密码
      ###用户和组相关的管理命令

  • 用户管理
    用户创建命令useradd
    ­u UID //[UID_MIN,UID_MAX]定义在/etc/login.defs文件中

-u UID //[UID_MIN,UID_MAX]定义在/etc/login.defs文件中

[root@localhost ~]# useradd -u 1002 ll
[root@localhost ~]# id ll
uid=1002(ll) gid=1002(ll) groups=1002(ll)

-g GID //指定用户所属基本组,可为组名或GID

[root@localhost ~]# groupadd jj
[root@localhost ~]# useradd -g jj lo
[root@localhost ~]# id lo
uid=1003(lo) gid=1003(jj) groups=1003(jj)

-G groupname,… //附加组,可以有多个,用逗号隔开。组groupname必须事先存在

[root@localhost ~]# useradd -G jj vv
[root@localhost ~]# id vv
uid=1004(vv) gid=1004(vv) groups=1004(vv),1003(jj)

-c “COMMENT” //注释信息

[root@localhost ~]# cat /etc/passwd | grep yy
yy:x:1005:1005:hihi:/home/yy:/bin/bash

-d /path/to/directory //指定用户的家目录。此目录必须不能事先存在, //否则将不会从/etc/skel中复制环境设置文件

[root@localhost ~]# useradd -d /opt/tt tt
[root@localhost ~]# ll /opt/
total 28
-rw-r--r--. 1 root root 158 Jun 30 00:41 123.zip
-rw-r--r--. 1 root root   6 Jul  1 16:58 a.txt
-rw-r--r--. 1 root root   0 Jun 30 00:52 aa
-rw-r--r--. 1 root root 104 Jun 30 00:53 aa.tar.gz
-rw-r--r--. 1 root root  46 Jun 30 00:54 aaa.tar.bz2
-rw-r--r--. 1 root root  14 Jun 30 00:02 abc.bz2
-rw-r--r--. 1 root root 109 Jun 30 00:54 bb.tar.bz2
-rw-r--r--. 1 root root 160 Jun 30 00:57 cc.tar.xz
drwx------. 3 tt   tt    78 Jul  4 16:29 tt
drwxr-xr-x. 2 root root   6 Jun 30 00:39 www

-s shell //这里的shell最好使用/etc/shells里面有的shell, \ // /etc/shells指定了当前系统可用的安全shell

[root@localhost ~]# useradd -s /sbin/nologin oo
[root@localhost ~]# cat /etc/passwd |grep oo
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
setroubleshoot:x:979:979::/var/lib/setroubleshoot:/sbin/nologin
roo:x:1000:1000:root:/home/roo:/bin/bash
oo:x:1007:1007::/home/oo:/sbin/nologin

-M //创建用户时不给其创建家目录

[root@localhost ~]# useradd -M bb
[root@localhost ~]# cat /etc/passwd |grep bb
bb:x:1008:1008::/home/bb:/bin/bash

-r //添加一个系统用户

[root@localhost ~]# cat /etc/passwd |grep xx
xx:x:975:974::/home/xx:/bin/bash

-D //直接打印/etc/default/useradd文件的内容或配合其它选项 \ /(例如-s SHELL)直接修改/etc/default/useradd文件中的默认值

[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost ~]# 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值