Linux sed 之G、H、g、h使用命令详解

Linux sed 之G、H、g、h使用命令详解,第1张

1.把文本第1行读入到内存 模式空间(pattern space),相当于放到流程水线上处理吧

2.把处理好的结果存放到另一个内存空间(hold space)相当于临时的仓库吧

3.输出处理结果,循环处理第2行,覆盖清空(pattern space)、(hold space)至最后一行

由于各种各样的原因,比如用户希望在某个条件下脚本中的某个命令被执行,或者希望模式空间得到保留以便下一次的处理,都有可能使得sed在处理文件的时候不按照正常的流程来进行。这个时候,sed设置了一些高级命令来满足用户的要求。

sed命令:

不管是大写还是小写g、h都是在pattern space、hold space相互拷贝

区别是 小写代表清空原来数据,大写是保留原来数据在后面追加新数据

案例

图解分析过程

P:Pattern Space

H:Hold Space

蓝色:Hold Space中的数据

绿色:Pattern Space中的数据

案例

参考链接:

https://www.cnblogs.com/fhefh/archive/2011/11/22/2259097.html

分类: 电脑/网络 >> *** 作系统/系统故障

解析:

增加用户帐号后

新建用户的命令十分简单,在命令行下使用 useradd 命令:

useradd david

该命令做了下面几件事:1)在 /etc/passwd 文件中增添了一个入口;2)在 /home 目录下创建新用户的主目录,并将 /etc/skel 目录中的文件拷贝到该目录中去;3)。但是使用了该命令后,新建的用户依然不能登录,因为还没有设置口令,需要再用 passwd 命令为其设置口令后,才能登录。用户的 UID 和 GID 是 useradd 自动选取的,它是将 /etc/passwd 文件中的 UID 加 1,将 etc/group 文件中的 GID 加 1。

useradd 命令中还有许多选项,它们的功能如下表:

选项

说明

-u

手工设置

UID

-g

手工设置

GID

-d

设置新用户的主目录

-G

使用户成为其他组的成员

3.2 理解 /etc/passwd 文件

/etc/passwd 文件是系统的主要文件之一。该文件中包含了所有用户登录名清单;为所有用户指定了主目录;在登录时使用的 shell 程序名称等。该文件还保存了用户口令;给每个用户提供系统识别号。

/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式:

name:password:uid:gid:ment:home:shell

它们的含义如下:

说明

name

用户登录名

password

用户口令。此域中的口令是加密的。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。

uid

指定用户的

UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户。

gid

GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。

ment

用来保存用户的真实姓名和个人细节。

home

指定用户的主目录的绝对路径。

shell

如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。

3.3 建立新组

与建立新用户帐号十分类似,建立新组的命令是 groupadd:

useradd group-name

可以使用 -g 选项设定新组的 GID。0 到 499 之间的值留给 root、bin、mail 这样的系统帐号,因此最好指定该值大于 499。如果新组名或者 GID 已经存在,则返回错误信息。

3.4 理解 /etc/group 文件

/etc/group 文件文件的格式和 /etc/passwd 文件格式类似,它也是一个纯文本文件,定义了每个组中的用户。每行的格式是:

group_name:passwd:GID:user_list

它们的含义如下:

说明

group_name

组名

password

组口令。此域中的口令是加密的。如果此域为空,表明该组不需要口令。

gid

指定

GID。

user_list

该组的所有用户,用户名之间用逗号隔开。

3.5 用户管理

添加新用户后,如果对新用户的种种设置不满意,则可以通过 usermod 命令进行修改。

usermod 命令的一般格式为:

usermod -选项 相关内容 用户名

请参看下表:

命令

说明

usermod –s newshell path username

改变用户登录时使用的

shell。该 shell 应该是列入 /etc/shells 中的 shell。如果指定的 shell 或者程序名没有列入 /etc/shells,该用户将不能登录。注意,普通用户也能使用该命令。

usermod –d new home dic username

改变用户的主目录

usermod –u UID username

修改用户的

UID

usermod –g GID username

修改用户的默认组

usermod –e MM/DD/YY

修改用户帐号的有效期

除了 usermod 命令以外,还有一些修改用户信息的命令,比如修改口令的 passwd,修改个人信息的 chfn 等。

对于组的修改要相对简单一些,类似的使用 groupmod 命令,比如:

groupmod -n new-group current-group:改变组名;

groupmod -g new-GID groupname:改变 GID。

删除一个用户,使用类似的命令:userdel,其格式是:

userdel username

Linux查看剩余可用内存用free

-m命令,-m选项表示用MB为单位显示容量(如果是以GB为单位就换成-g选项),显示的结果里面used那一列是已经使用的量,free那一列就是剩余内存大小了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7328969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存