sed与vim

sed工具

简介

Stream EDitor, 行编辑器

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等

用法:

sed[option]… 'script' inputfile…

常用选项:

-n:一般情况下,所有来自STDIN的数据都会显示到屏幕上,加上-n后,则只有经过sed特殊处理的哪一行才被列出来。

-e: 多点编辑

-f /PATH/TO/SCRIPT_FILE: 从指定文件中读取编辑脚本

-r: 支持使用扩展正则表达式

-i: 原处编辑,慎用,危险

地址命令script:

地址定界:(1) 不给地址:对全文进行处理

(2) 单地址:#: 指定的行

[root@localhost ~]# sed -n 2p f2

apple is my favorite food.!

/pattern/:被此处模式所能够匹配到的每一行

[root@localhost ~]# sed -n /this/p f2

this dress doesn't fit me.!

However, this dress is about $ 3183 dollars.!

 (3) 地址范围:#,#

[root@localhost ~]# sed -n 2,3p f2

apple is my favorite food.!

Football game is not use feet only.!

#,+#

[root@localhost ~]# sed -n 2,+3p f2

apple is my favorite food.!

Football game is not use feet only.!

this dress doesn't fit me.!

However, this dress is about $ 3183 dollars.!

/pat1/,/pat2/

[root@localhost ~]# sed -n '/feet/,/clear/p' f2

Football game is not use feet only.!

this dress doesn't fit me.!

However, this dress is about $ 3183 dollars.!

GNU is free air not free beer.!

Her hair is very beauty.!

I can't finish the test.!

Oh! The soup taste good.!

motorcycle is cheap than car.!

This window is clear.!

#,/pat1/

[root@localhost ~]# sed -n '3,/clear/p' f2

Football game is not use feet only.!

this dress doesn't fit me.!

However, this dress is about $ 3183 dollars.!

GNU is free air not free beer.!

Her hair is very beauty.!

I can't finish the test.!

Oh! The soup taste good.!

motorcycle is cheap than car.!

This window is clear.!

(4) ~:步进1~2 奇数行

[root@localhost ~]# nl f1 |sed -n '1~2p'

     1      "Open Source" is a good mechanism to develop programs.

     3      Football game is not use feet only.

     5      However, this dress is about $ 3183 dollars.

     7      Her hair is very beauty.

     9      Oh! The soup taste good.

    11      This window is clear.

    13      Oh! My god!

    15      You are the best is mean you are the no. 1.

    17      I like dog.

    19      goooooogle yes!

    21      # I am VBird

2~2 偶数行

[root@localhost ~]# nl f1 |sed -n '2~2p'

     2       apple is my favorite food.

     4       this dress doesn't fit me.

     6       GNU is free air not free beer.

     8       I can't finish the test.

    10       motorcycle is cheap than car.

    12       the symbol '*' is represented as start.

    14       The gd software is a library for drafting programs.

    16       The world <Happy> is the same with "glad".

    18       google is the best tools for search keyword.

    20       go! go! Let's go.

编辑命令:

d: 删除模式空间匹配的行

[root@localhost ~]# sed  '/^a/d' f2

"Open Source" is a good mechanism to develop programs.!

Football game is not use feet only.!

p: 显示模式空间中的内容

[root@localhost ~]# sed  '/^a/!d' f2

apple is my favorite food.!

[root@localhost ~]# sed -n  '/^a/p' f2

apple is my favorite food.!

2a\字符串:在第2行后面追加文本;支持使用\n实现多行追加

[root@localhost ~]# sed  '2a\xxx' f2

"Open Source" is a good mechanism to develop programs.!

apple is my favorite food.!

xxx

Football game is not use feet only.!

 

[root@localhost ~]# sed  '/^a/a\xxx' f2

"Open Source" is a good mechanism to develop programs.!

apple is my favorite food.!

xxx

Football game is not use feet only.!

2i \字符串:在第2行前面插入文本;支持使用\n实现多行插入

[root@localhost ~]# sed  '/^a/i\xxx' f2

"Open Source" is a good mechanism to develop programs.!

xxx

apple is my favorite food.!

 

[root@localhost ~]# sed  '2i\xxx' f2

"Open Source" is a good mechanism to develop programs.!

xxx

apple is my favorite food.!

2c \字符串:替换第2行为单行或多行文本

[root@localhost ~]# sed  '/^a/c\xxx' f2

"Open Source" is a good mechanism to develop programs.!

xxx

Football game is not use feet only.!

 

[root@localhost ~]# sed  '2c\xxx' f2

"Open Source" is a good mechanism to develop programs.!

xxx

Football game is not use feet only.!

w /path/to/somefile: 保存模式匹配的行至指定文件

[root@localhost ~]# sed  '/^a/w /testdir/love.txt' f2

[root@localhost ~]# cat /testdir/love.txt

apple is my favorite food.!

r /path/from/somefile:读取指定文件的文本至模式空间中匹配到的行后

[root@localhost ~]# sed  '/^a/r /etc/issue' f2

"Open Source" is a good mechanism to develop programs.!

apple is my favorite food.!

CentOS release 7.8 (Final)

Kernel \r on an \m

Mage Education Learning Services

http://www.magedu.com

Football game is not use feet only.!

=: 为模式空间中的行打印行号

[root@localhost ~]# sed  '/^a/=' f2

"Open Source" is a good mechanism to develop programs.!

2

apple is my favorite food.!

Football game is not use feet only.!

!: 模式空间中匹配行取反处理

 [root@localhost ~]# sed  '/^a/!a\s' f2

"Open Source" is a good mechanism to develop programs.!

s

apple is my favorite food.!

Football game is not use feet only.!

s

s/string1/string2/查找替换,支持使用其它分隔符,s@@@s###

[root@localhost ~]# sed  's/apple/APPLE/' f2

"Open Source" is a good mechanism to develop programs.!

APPLE is my favorite food.!

Football game is not use feet only.!

 

[root@localhost ~]# sed 's/[[:upper:]]\+/jagger/' f2

[root@localhost ~]# sed -r 's/[[:upper:]]+/jagger/' f2

"jaggerpen Source" is a good mechanism to develop programs.!

apple is my favorite food.!

jaggerootball game is not use feet only.!

this dress doesn't fit me.!

jaggerowever, this dress is about $ 3183 dollars.!

jagger is free air not free beer.!

jaggerer hair is very beauty.!

jagger can't finish the test.!

jaggerh! The soup taste good.!

motorcycle is cheap than car.!

jaggerhis window is clear.!

the symbol '*' is represented as start.!

jaggerh!      My god!

jaggerhe gd software is a library for drafting programs.!

jaggerou are the best is mean you are the no. 1.!

jaggerhe world <Happy> is the same with "glad".!

jagger like dog.!

google is the best tools for search keyword.!

goooooogle yes!

go! go! jaggeret's go.!

# jagger am VBird

替换标记:

g: 行内全局替换

[root@localhost ~]# sed -r 's/[[:upper:]]+/jagger/g' f2

"jaggerpen jaggerource" is a good mechanism to develop programs.!

apple is my favorite food.!

jaggerootball game is not use feet only.!

this dress doesn't fit me.!

jaggerowever, this dress is about $ 3183 dollars.!

jagger is free air not free beer.!

jaggerer hair is very beauty.!

jagger can't finish the test.!

jaggerh! jaggerhe soup taste good.!

motorcycle is cheap than car.!

jaggerhis window is clear.!

the symbol '*' is represented as start.!

jaggerh!       jaggery god!

jaggerhe gd software is a library for drafting programs.!

jaggerou are the best is mean you are the no. 1.!

jaggerhe world <jaggerappy> is the same with "glad".!

jagger like dog.!

google is the best tools for search keyword.!

goooooogle yes!

go! go! jaggeret's go.!

# jagger am jaggerird

p: 显示替换成功的行

w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中

sed示例

sed‘2p’ /etc/passwd显示文件"passwd"中的内容,并打印第二行,因此第二行多显示一次

sed–n ‘2p’ /etc/passwd仅显示第二行

sed–n ‘1,4p’ /etc/passwd仅显示第一到第四行

sed–n ‘/root/p’ /etc/passwd仅显示匹配到的字符串‘/root/’的行

sed–n ‘2,/root/p’ /etc/passwd2行开始匹配字符串‘/root/’的行,并仅显示匹配到的行

sed-n ‘/^$/=’ file仅显示空行行号并打印行号

sed–n –e ‘/^$/p’ –e ‘/^$/=’ file仅显示文件"file"中的空行,并打印行号

sed‘/root/a\superman’ /etc/passwd行后。在匹配字符串‘/root/’的行后面追加内容"superman"

sed‘/root/i\superman’ /etc/passwd行前。在匹配字符串‘/root/’的行前面追加内容"superman"

sed‘/root/c\superman’ /etc/passwd代替行。将匹配字符串‘/root/’替换成superman

sed‘/^$/d’ file删除文件"file"中的空行

sed‘1,10d’ file删除文件"file"中的1到10行

nl/etc/passwd| sed‘2,5d’ 显示文件"passwd"中的第2到第5行;(nl相当于cat -b)

nl/etc/passwd| sed‘2a tea’2a后面有空格就不用加/在文件"passwd"中的第2后面追加内容"tea"

sed's/test/mytest/g' example将匹配到的字符串"test"替换成"mytest" (g:为全局替换)

sed–n‘s/root/&superman/p’ /etc/passwd单词后。将匹配到的字符串"root"替换成"rootsuperman",并仅显示匹配到的行 (&:引用被替换的内容)

sed–n‘s/root/superman&/p’ /etc/passwd单词前。将匹配到的字符串"root"替换成"supermanroot",并仅显示匹配到的行

sed-e ‘s/dog/cat/’ -e ‘s/hi/lo/’ pets将匹配到的字符串"dog"替换成"cat",将匹配到的字符串"hi"替换成"lo"

sed–i.bak ‘s/dog/cat/g’ pets(-i.bak备份)将匹配到的字符串"dog"替换成"cat",并在替换之前将文件备份成pets.bak

练习

1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符

[root@localhost ~]# sed 's@^[[:space:]]\+@@g' /etc/grub2.cfg

2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符.

[root@localhost ~]# sed 's@^#[[:space:]]\+@@p' /etc/fstab

3、在/root/install.log每一行行首增加#

sed ‘s/^/#/g'  /root/install.log

4、在/etc/fstab文件中不以#开头的行的行首增加#

sed s'/^[^#]/#/g'  /etc/fstab

5、处理/etc/sysconfig路径,使用sed命令取出其目录名和基名

取目录名:

[root@centos7 ~]# echo "/etc/fst/sd/" |sed -r 's#[^/] +/?$##'

     :该种方法是从取基名的方法,衍生而来。“取出“基名,就可以得到目录名了。这里将基名用空替换。锚定行尾($),有"/"或者无"/"(/?),前面第一个"/"之后([^/])的内容(+)

取基名:

[root@centos7 ~]# echo "/etc/fst/sd/" | sed -r 's#^.*\<##'

 

取基名

[root@centos7 ~]# echo "/etc/fst/sd/" | sed -r 's@(.*)/([^/]+/?)@\2@'

取目录名——将该方法的\2,修改为\1

[root@centos7 ~]# echo "/etc/fst/sd/" | sed -r 's@(.*)/([^/]+/?)@\1@'

:将目录名部分和基名部分(基名表示方法,同方法1中的普通表示方法),分别分组表示。除了基名,其他部分,就都是目录名了。(.*)

6、利用sed 取出ifconfig命令中本机的IPv4地址

[root@centos7 ~]#ifconfig | sed -n "2p"| sed -e "s/.*inet//" -e "s/netmask.*//"

7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数

[root@centos6 Packages]#ls /media/CentOS_6.8_Final/Packages/*.rpm | sed -r 's#.*\.(.*)\.rpm#\1#'|sort | uniq -c | sort -n

高级编辑命令:

h: 式空间中的内容覆盖至持空间中

H:把模式空间中的内容追加至保持空间中

g: 持空间取出数据覆盖至式空间

G:从保持空间取出内容追加至模式空间

x: 把模式空间中的内容与保持空间中的内容进行互换

n: 读取匹配到的行的下一行覆盖至模式空间

N:读取匹配到的行的下一行追加至模式空间

d: 删除模式空间中的行

D:删除当前模式空间开端至\n的内容(不在传至标准输出),放弃之后的命令,但是对剩余模式空间重新执行sed

sed示例 

sed -n 'n;p' FILE显示偶数行

sed '1!G;h;$!d' FILE逆向显示文件内容

sed '$!N;$!D' FILE取出文件后两行;

sed '$!d' FILE取出文件最后一行;

sed ‘G’ FILE每行后面添加一行空白行

sed ‘g’ FILE 全是空行

sed ‘/^$/d;G’ FILE将空白行去重,仅显示一行

sed 'n;d' FILE显示奇数行

sed -n '1!G;h;$p' FILE逆向显示文件中的每一行

vim编辑器

1.简介

vi: Visual Interface,文本编辑器

文本:ASCII, Unicode

文本编辑种类:

行编辑器: sed

全屏编辑器:nano, vi

Vim=Vi Improved

其他编辑器:

gedit一个简单的图形编辑器

gvim一个Vim编辑器的图形版本

2.打开文件

# vim [OPTION]… FILE…

+#: 打开文件后,直接让光标处于第#行的行首

+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首

vim + file 直接打开file,光标在最后一行

vim b file 二进制方式打开文件

vim d file1 file2 比较多个文件

vim -m file 只读打开文件

    ex file vim –e 直接进入ex模式

如果该文件存在,文件被打开并显示内容

如果该文件不存在,当编辑后第一次存盘时创建它

3.vim编辑器模式

击键行为是依赖于vim的的“模式”

三种主要模式

命令模式(默认):移动光标,剪切/粘贴文本

插入(编辑)模式:修改文本

扩展命令模式:保存,退出等

Esc键退出当前模式

EscEsc键总是返回到命令模式

4.模式转换

1).命令模式–> 插入模式

i: insert, 在光标所在处输入

I:在当前光标所在行的行首输入

a: append, 在光标所在处后面输入

A:在当前光标所在行的行尾输入

o: 在当前光标所在行的下方打开一个新行

O:在当前光标所在行的上方打开一个新行

2).插入模式—-> 命令模式

ESC

3).命令模式—-> 扩展命令模式

:

4).扩展命令模式—-> 命令模式

ESC

5).锁定和解锁:CTRL+s,Ctrl+q

5.命令模式

1.光标跳转

1).字符间跳转:

h: l: j: k:

#COMMAND:跳转由#指定的个数的字符;

40h  30j  20k  10l

2).单词间跳转:

w:下一个单词的词首

e:当前或下一单词的词尾

b:当前或前一个单词的词首

#COMMAND:由#指定一次跳转的单词数

3).当前页跳转:

H:页首head

M:页中间行middle

L:  页底low

4).行首行尾跳转:

^: 跳转至行首的第一个非空白字符;

0: 跳转至行首

$: 跳转至行尾

5).行间移动:

#G或者扩展模式下:# :跳转至由#指定行

G:最后一行

1G或者gg: 第一行

6).句间移动:

):下一句 (:上一句

7).段落间移动:

}:下一段 {:上一段

2.翻屏操作

Ctrl+f: 向文件尾部翻一屏

Ctrl+b: 向文件首部翻一屏

Ctrl+d: 向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏

3.关闭命令模式:

ZZ: 保存退出

ZQ:不保存退出

4.编辑操作

1).字符编辑:

x: 删除光标处的字符;

#x: 删除光标处起始的#个字符

xp: 交换光标所在处的字符及其后面字符的位置

~:转换大小写

2).替换命令(r, replace)

r: 替换光标所在处的字符

R:切换成REPLACE模式,替换字符

3).删除命令:

d: 删除命令,可结合光标跳转字符,实现范围删除;

d$: 删除到行尾

d^:删除到非空行首

d0:删除到行首

dw:删除单词,删除光标处到单词结尾的字符

de: 删除单词,删除光标处到单词结尾的字符

db: 删除单词,删除光标处到单词词首的字符

#COMMAND

dd: 删除光标所在的行

#dd:多行删除

D:从当前光标位置一直删除到行尾,留空行,等同于d$

4).复制命令(y, yank)

y: 复制,行为相似于d命令

y$:复制行尾

y0:复制到行首

y^:复制到非空行首

ye

yw

yb

#COMMAND

yy:复制整行

#yy: 复制多行

Y: 复制整行

5).粘贴命令(p, paste)

p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面

P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面

6).改变命令(c, change)

c: 修改后切换成插入模式

c$

c^

c0

cb

ce

cw

#COMMAND

cc:删除当前行并输入新内容

#cc:

C:删除当前光标到行尾,并切换成插入模式

                                              sed与vim

7)其他命令

100iwang [ESC] 粘贴“wang”100

 

<start position><command><end position>

Command:y 复制、d 删除、gU变大写、gu变小写

例如0y$ 命令意味着: 0 →先到行头

y →从这里开始拷贝

$ →拷贝到本行最后一个字符

ye 从当前位置拷贝到本单词的最后一个字符

5.撤消更改

u:撤销最近的更改

#u:撤销之前多次更改

U:撤消光标落在这行后所有此行的更改,按Ctrl-r重做最后的“撤消”更改

. :重复前一个操作

n.:重复前一个操作n

6.扩展命令模式

按“:”进入拓展命令模式,创建一个命令提示符:,处于底部的屏幕左侧

1).命令:

:w写(存)磁盘文件

   w  /root/ff   当前状态可以存盘到ff文件里。

:wq写入并退出

:x 写入并退出

:q 退出

:q!强制退出,不存盘退出,即使更改都将丢失

:r filename 读文件内容到当前文件中,即将“filename”这个文件内容加载到光标所在行后面。

:w filename 将当前文件内容写入另一个文件

:!command 暂时离开vi到拓展命令模式下执行command的显示结果

例如::!ls/home 即可在vi当中查看/home下面以历史输出的文件信息。

r!command 读命令结果加载到光标行后面

r!ls /root

2).地址定界

:start_pos, end_pos

#: 具体第#行,例如2表示第2行;

#,#: 从左侧#表示行起始,到右侧#表示行结尾

#,+#: 从左侧#表示的行起始,加上右侧#表示的行数:2,+3 表示25

.: 当前行

$: 最后一行

.,$-1 当前行到倒数第二行

%全文, 相当于1,$

/pat1/,/pat2/从第一次被pat1模式匹配到的开始,一直到第一次被pat2匹配到的结束

#,/pat/从第#行到第一次被pat匹配到的行结束

/pat/,$从第一次被pat匹配的行到第#行结束

使用方式:后跟一个编辑命令

d删除

y复制

w file: 将范围内的行另存至指定文件中

r file:在指定位置插入指定文件中的所有内容

3).查找并替换

/PATTERN:从当前光标所在处向文件尾部查找

?PATTERN:从当前光标所在处向文件首部查找

n:与命令同方向

N:与命令反方向

s: 在扩展模式下完成查找替换操作

格式:s/要查找的内容/替换为的内容/修饰符

要查找的内容:可使用模式

替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容

修饰符i: 忽略大小写

g: 全局替换;默认情况下,每一行只替换第一次出现

gc:全局替换,每次替换前询问

查找替换中的分隔符/可替换为其它字符,例如s@/etc@/var@g或者s#/boot#/#i

练习

1、复制/etc/profile/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符

:%s/^ \+//g

2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号,原有空白字符保留。

:%s/^ /# /g

Vim寄存器

1.简介

26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享。

ab,…,z加上表示寄存器,放在数字和命令之间

如:3"tyy 表示复制3行到t寄存器中

"tp 表示将t寄存器内容粘贴

未指定寄存器的,将使用无命名寄存器

10个数字寄存器,用01,…,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到22转存到3,以此类推。数字寄存器不能在不同会话间共享

 

2.编辑二进制文件

1)以二进制方式打开文件

vim –b binaryfile

2)扩展命令模式下,利用xxd命令转换为可读的十六进制

:%!xxd

3)编辑二进制文件

4)扩展命令模式下,利用xxd命令转换回二进制

:%!xxd –r

5)保存退出

3.可视化模式

允许选择的文本块:

v面向字符

V面向行

ctrl-v 面向块

可视化键可用于与移动键结合使用:

w,),},箭头等

突出显示的文字可以被删除,复制,变更,过滤,搜索/替换等

4.多文件模式

vim FILE1 FILE2 FILE3 …

:next 下一个

:prev前一个

:first 第一个

:last 最后一个

:wall 保存所有

:qall退出所有

:wqall

5.使用多个“窗口”

多文件分割

vim -o|-O FILE1 FILE2 …

-o: 水平分割

-O: 垂直分割

在窗口间切换:Ctrl+w松手, Arrow

单文件窗口分割:

Ctrl+w,s: split, 垂直分割

Ctrl+w,v: vertical, 水平分割

ctrl+w,q:取消相邻窗口

ctrl+w,o:取消全部窗口

wqall退出

6.定制vim的工作特性

配置文件:永久有效

全局:/etc/vimrc

个人:~/.vimrc

扩展模式:当前vim进程有效

(1) 行号

显示:set number, 简写为set  nu

取消显示:set nonumber, 简写为set  nonu

(2) 括号成对匹配

匹配:set showmatch, 简写为set sm

取消:set nosm

(3) 自动缩进

启用:set ai

禁用:set noai

(4) 高亮搜索

启用:set hlsearch

禁用:set nohlsearch

(5) 语法高亮

启用:syntax on

禁用:syntax off

(6) 忽略字符的大小写

启用:set ic

不忽略:set noic

(7) 文件格式

启用:fileformat=unix

不忽略:fileformat=dos

(8) 设置文本宽度

:set textwidth=65 (vimonly)

:set wrapmargin=15

(9) : help option-list

(10):setor : set all

7.了解更多

vi/vim内置帮助:help

:helptopic

Use:qto exit help

 Vimtutorvim说明书

练习

1、如何设置tab缩进为4个字符?

vi /etc/vim/vimrc 将一个tab改为4个字符缩进set tabstop=4

 

2、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init/var/log

cp /etc/rc.d/init.d/functions /tmp

cat /tmp/functions|tr '/etc/sysconfig/init' 'var/log'

3、删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;

[root@localhost ~]# sed 's@^#[[:space:]]\+@@p' /tmp/functions

 

原创文章,作者:Jagger,如若转载,请注明出处:http://www.178linux.com/33760

(0)
上一篇 2016-08-15 12:06
下一篇 2016-08-15 12:06

相关推荐

  • N25第二周作业

    第二周作业 一、Linux上的文件管理类命令有哪些,其常用的使用方法以及相关实例演示 演示用结构  [root@centos01 yanshi]# tree -a /tmp/yanshi/   /tmp/yanshi/ ├── a │   └── 1…

    Linux干货 2016-12-14
  • 用户和组相关配置文件

    用户和组的配置文件都在/etc目录下          /etc/passwd;        内容格式:用户名;加密后密码影子(1#);UID;GID;注释;家目录,默认shell    …

    Linux干货 2016-10-23
  • 用户权限过滤练习(w4)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@keyou ~]# cp -r /etc/skel/ /home/tuser1 | chmod -R g-rwx,o-rw…

    系统运维 2016-11-20
  • 笔记整理:权限管理3-ACL

    ACL 访问控制列表,并不是所有的Linux文件系统,都支持ACL。FAT文件系统也不支持ACL   ACL文件系统中,不支持chmod等命令。同时不能更改文件权限。不存在文件权限。 问题提出 只让wang用户,对该文件不能够访问,同时不影响其他任何用户对该文件的操作。   ACL特点 针对单一用户或群组,单一文件或目录,进行rwx权限设…

    Linux干货 2016-08-05
  • if case语句练习

     1、 写一个脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息 [root@localhost bin]# cat createuser.sh #!/bin/bash # Date…

    Linux干货 2016-08-15
  • 浅谈linux基础知识(一)

    一:计算机的组成 组成: 计算机的主要组成部分为计算机硬件、软件。 计算机硬件系统包括: 主机和外部设备。 主机包括:运算器、控制器、存储器(只读ROM、随机RAM)。 外部设备主要包括:输入设备、输出设备、外存储器和其他。 软件包括: 应用软件、系统软件。 二:linux的发行版及不同发行版之间的联系和区别。 1.Debian(唯一一个无商业公司支持的社区…

    Linux干货 2016-09-18