Linux云自动化运维第三课

一、正则表达式

1.匹配符

* ###匹配0到任意字符

? ###匹配单个字符

[[:alpha:]] ###匹配单个字母

[[:lower:]] ###匹配单个小写字母

[[:upper:]] ###匹配单个大写字母

[[:digit:]] ###匹配单个数字

[[:alnum:]] ###匹配单个数字或字母

[[:punct:]] ###匹配单个符号

[[:space:]] ###匹配单个空格

eg:[kiosk@foundation42 study]$ touch class{1..2}{a..b} ###新建文件class*

[kiosk@foundation42 study]$ touch class{1..2}{A..B}

[kiosk@foundation42 study]$ touch class{a..b}{A..B}

[kiosk@foundation42 study]$ ls

class1a  class1b  class2a  class2b  classaA  classbA

class1A  class1B  class2A  class2B  classaB  classbB

[kiosk@foundation42 study]$ rm -fr * ###*0到匹配任意字符,删除所有文件

[kiosk@foundation42 study]$ ls ###目录列表为空,class*文件都被删除

[kiosk@foundation42 study]$ touch class{1..2}{a..b}

[kiosk@foundation42 study]$ touch class{1..2}{A..B}

[kiosk@foundation42 study]$ touch class{a..b}{A..B}

[kiosk@foundation42 study]$ ls

class1a  class1b  class2a  class2b  classaA  classbA

class1A  class1B  class2A  class2B  classaB  classbB

[kiosk@foundation42 study]$ rm -fr class?A ###?匹配单个字符,删除文件class?A文件,第6个字符为任意字符

[kiosk@foundation42 study]$ ls ###class{1..2}A,class{a..b}A文件被删除

class1a  class1b  class1B  class2a  class2b  class2B  classaB  classbB

[kiosk@foundation42 study]$ rm -fr class1[[:alpha:]] ###删除class1[[:alpha:]]文件,第7个字符为任意字母

[kiosk@foundation42 study]$ ls ###class1{a..b},class1{A..B}文件被删除

class2a  class2b  class2B  classaB  classbB

[kiosk@foundation42 study]$ rm -fr class[[:lower:]]B ###删除class[[:lower:]]B文件,第5个字符为任意小写字母

[kiosk@foundation42 study]$ ls ###class{a..b}B文件被删除

class2a  class2b  class2B

[kiosk@foundation42 study]$ rm -fr class2[[:upper:]] ###删除class2[[:upper:]]文件,第7个字符为任意大写字母

[kiosk@foundation42 study]$ ls ###classa{A..B}文件被删除

class2a  class2b

[kiosk@foundation42 study]$ rm -fr class[[:digit:]]a ###删除class[[:digit:]]a文件,第6个字符为任意单个数字

[kiosk@foundation42 study]$ ls ###class2a被删除

class2b

[kiosk@foundation42 study]$ rm -fr class[[:alnum:]][[:alnum:]] ###删除class[[:alnum:]][[:alnum:]]文件,第6个字符、第7个字符分别为单个数字或字母

[kiosk@foundation42 study]$ ls ###class2b被删除

[kiosk@foundation42 study]$ touch class@3 class" "9 ###新建文件名称分别带有符号和空格的文件

[kiosk@foundation42 study]$ ls

class@3  class 9

[kiosk@foundation42 study]$ rm -fr class[[:punct:]]? ###删除文件名称第6个字符是符号的文件

[kiosk@foundation42 study]$ ls ###文件class@3被删除

class 9

[kiosk@foundation42 study]$ rm -fr class[[:space:]]? ###删除文件名称第6个字符是空格的文件

[kiosk@foundation42 study]$ ls ###文件class 9被删除

[kiosk@foundation42 study]$

2.{}表示不存在的或者存在的

{1..9} ###1-9

{a..f} ###a-f

{A..F} ###A-F

{1,3,5} ###1,3,5

{a,c,e} ###a,c,e

{1..3}{a..c} ###1a,1b,1c,2a,2b,2c,3a,3b,3c

eg:[kiosk@foundation42 study]$ touch class{1..9} ###建立文件class1-class9

[kiosk@foundation42 study]$ ls

class1  class2  class3  class4  class5  class6  class7  class8  class9

[kiosk@foundation42 study]$ rm -fr *

[kiosk@foundation42 study]$ touch class{a..f} ###建立文件classa-classf

[kiosk@foundation42 study]$ ls

classa  classb  classc  classd  classe  classf

[kiosk@foundation42 study]$ rm -fr *

[kiosk@foundation42 study]$ touch class{A..F} ###建立文件classA-classF

[kiosk@foundation42 study]$ ls

classA  classB  classC  classD  classE  classF

[kiosk@foundation42 study]$ rm -fr *

[kiosk@foundation42 study]$ touch class{1,3,5} ###建立文件class1,class3,class5

[kiosk@foundation42 study]$ ls

class1  class3  class5

[kiosk@foundation42 study]$ rm -fr *

[kiosk@foundation42 study]$ touch class{a,c,e} ###建立文件classa,classc,classe

[kiosk@foundation42 study]$ ls

classa  classc  classe

[kiosk@foundation42 study]$ rm -fr *

[kiosk@foundation42 study]$ touch class{1..3}{a..c} ###建立文件*1a,*1b,*1c,*2a,*2b,*2c,*3a,*3b,*3c

[kiosk@foundation42 study]$ ls

class1a  class1b  class1c  class2a  class2b  class2c  class3a  class3b  class3c

[kiosk@foundation42 study]$

3.[]表示存在的

[a-D] ###a,A,b,B,c,C,d,D

[a-d] ###a,A,b,B,c,C,d

[1-4] ###1,2,3,4

[14] ###1,4

[!abc][^abc] ###除了a,b,c

eg:[kiosk@foundation42 study]$ touch {a..d}

[kiosk@foundation42 study]$ touch {A..D}

[kiosk@foundation42 study]$ touch {1..4}

[kiosk@foundation42 study]$ ls

1  2  3  4  a  A  b  B  c  C  d  D

[kiosk@foundation42 study]$ rm -fr [a-c] ###删除文件a,A,b,B,c

[kiosk@foundation42 study]$ ls

1  2  3  4  C  d  D

[kiosk@foundation42 study]$ touch {a..d}

[kiosk@foundation42 study]$ touch {A..D}

[kiosk@foundation42 study]$ ls

1  2  3  4  a  A  b  B  c  C  d  D

[kiosk@foundation42 study]$ rm -fr [a-C] ###删除文件a,A,b,B,c,C

[kiosk@foundation42 study]$ ls

1  2  3  4  d  D

[kiosk@foundation42 study]$ touch {a..d}

[kiosk@foundation42 study]$ touch {A..D}

[kiosk@foundation42 study]$ ls

1  2  3  4  a  A  b  B  c  C  d  D

[kiosk@foundation42 study]$ rm -fr [1-3] ###删除文件1,2,3

[kiosk@foundation42 study]$ ls

4  a  A  b  B  c  C  d  D

[kiosk@foundation42 study]$ touch {1..4}

[kiosk@foundation42 study]$ ls

1  2  3  4  a  A  b  B  c  C  d  D

[kiosk@foundation42 study]$ rm -fr [14] ###删除文件1,4

[kiosk@foundation42 study]$ ls

2  3  a  A  b  B  c  C  d  D

[kiosk@foundation42 study]$ rm -fr [!abc] ###删除除了文件a,b,c之外的所有文件

[kiosk@foundation42 study]$ ls

a  b  c

[kiosk@foundation42 study]$ rm -fr [^ac] ###删除除了文件a,c之外的所有文件

[kiosk@foundation42 study]$ ls

a  c

[kiosk@foundation42 study]$

4.~当前用户家目录

~ ###当前用户家目录

~username ###指定用户家目录

~+ ###当前目录

~- ###当前目录所在目录

. ###当前目录

.. ###当前目录上一级

eg:[root@foundation42 ~]# pwd ###当前目录/root

/root

[root@foundation42 ~]# cd ~kiosk ###跳转到kiosk用户的家目录/home/kiosk

[root@foundation42 kiosk]# pwd

/home/kiosk

[kiosk@foundation42 Desktop]$ pwd ###当前目录/home/kiosk/Desktop

/home/kiosk/Desktop

[kiosk@foundation42 Desktop]$ cd ~ ###跳转到当前用户的家目录/home/kiosk

[kiosk@foundation42 ~]$ pwd

/home/kiosk

[kiosk@foundation42 ~]$ cd ~- ###跳转到当前用户之前所在目录/home/kiosk/Desktop

[kiosk@foundation42 Desktop]$ pwd

/home/kiosk/Desktop

[kiosk@foundation42 Desktop]$ cd ~+ ###跳转当前目录/home/kiosk/Desktop

[kiosk@foundation42 Desktop]$ cd . ###跳转当前目录/home/kiosk/Desktop

[kiosk@foundation42 Desktop]$ cd .. ###跳转当前目录的上一级目录/home/kiosk

[kiosk@foundation42 ~]$ pwd

/home/kiosk

[kiosk@foundation42 ~]$

二、man命令

1.man命令基本用法

man --manual ###man是手册manual的缩写

man man ###查看man命令的帮助

man passwd ###查看passwd命令的帮助

2.man的级别

1 系统命令

2 系统接口

3 函数库

4 特殊文件,比如设备文件

5 文件

6 游戏

7 系统的软件包

8 系统管理命令

9 内核

man 5 passwd ###查看/etc/passwd文件的帮助

man 1 passwd ###查看passwd命令的帮助

eg:[kiosk@foundation42 ~]$ man -k passwd

passwd (1)           - update user's authentication tokens ###passwd命令

passwd (5)           - password file ###passwd文件

3.man页面的快捷方式

上下键 ###向上或向下一行

pageup|pagedown ###向上一个屏幕或向下一个屏幕

d|u ###向下或者向上半个屏幕

G|gg ###跳转到页面到man的最下面或最上面

/关键字 ###搜索关键字,关键字会高亮显示,n向下匹配,N向上匹配

q ###退出帮助页面

三、管理输入输出

1.在linux系统中,正确输出的编号为1,错误输出的编号为2

2.在系统中用普通用户执行“student”

eg:[kiosk@foundation42 Desktop]$ find /etc -name passwd ###student用户权限有问题,会有以下输出

find: ‘/etc/pki/CA/private’: Permission denied ###没有进入权限,报错

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

/etc/passwd ###正确输出

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission denied

find: ‘/etc/audit’: Permission denied

/etc/pam.d/passwd ###正确输出

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/grub.d’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/virt-who.d’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd >file ###重定向正确输出

find: ‘/etc/pki/CA/private’: Permission denied ###显示的都是报错信息

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission denied

find: ‘/etc/audit’: Permission denied

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/grub.d’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/virt-who.d’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

[kiosk@foundation42 Desktop]$ cat file ###正确输出在文件file中

/etc/passwd

/etc/pam.d/passwd

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd 2>file ###重定向错误输出

/etc/passwd ###显示的都是正确信息

/etc/pam.d/passwd

[kiosk@foundation42 Desktop]$ cat file ###报错信息在file中

find: ‘/etc/pki/CA/private’: Permission denied

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission denied

find: ‘/etc/audit’: Permission denied

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/grub.d’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/virt-who.d’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd &>file ###重定向所有输出

[kiosk@foundation42 Desktop]$ cat file ###所有输出都输出到文件file中

find: ‘/etc/pki/CA/private’: Permission denied

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

/etc/passwd

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission denied

find: ‘/etc/audit’: Permission denied

/etc/pam.d/passwd

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/grub.d’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/virt-who.d’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

[kiosk@foundation42 Desktop]$ >file ###清空file,ps:>,2>,&>都会覆盖源文件内容

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd >>file ###追加正确输出

find: ‘/etc/pki/CA/private’: Permission denied ###显示错误输出

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission denied

find: ‘/etc/audit’: Permission denied

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/grub.d’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/virt-who.d’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

[kiosk@foundation42 Desktop]$ cat file ###正确输出在file中

/etc/passwd

/etc/pam.d/passwd

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd 2>>file ###追加错误输出

/etc/passwd ###显示正确输出

/etc/pam.d/passwd

[kiosk@foundation42 Desktop]$ cat file ###错误输出追加到源文件内容之后,不覆盖源文件

/etc/passwd

/etc/pam.d/passwd

find: ‘/etc/pki/CA/private’: Permission denied

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission denied

find: ‘/etc/audit’: Permission denied

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/grub.d’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/virt-who.d’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd &>>file ###追加所有输出

[kiosk@foundation42 Desktop]$ cat file ###所有输出追加到源文件内容之后,不覆盖源文件

/etc/passwd

/etc/pam.d/passwd

find: ‘/etc/pki/CA/private’: Permission denied

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission denied

find: ‘/etc/audit’: Permission denied

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/grub.d’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/virt-who.d’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

find: ‘/etc/pki/CA/private’: Permission denied

find: ‘/etc/pki/rsyslog’: Permission denied

find: ‘/etc/dhcp’: Permission denied

find: ‘/etc/lvm/archive’: Permission denied

find: ‘/etc/lvm/backup’: Permission denied

find: ‘/etc/lvm/cache’: Permission denied

find: ‘/etc/selinux/targeted/modules/active’: Permission denied

/etc/passwd

find: ‘/etc/polkit-1/rules.d’: Permission denied

find: ‘/etc/polkit-1/localauthority’: Permission denied

find: ‘/etc/audit’: Permission denied

/etc/pam.d/passwd

find: ‘/etc/firewalld’: Permission denied

find: ‘/etc/grub.d’: Permission denied

find: ‘/etc/ipsec.d’: Permission denied

find: ‘/etc/libvirt’: Permission denied

find: ‘/etc/audisp’: Permission denied

find: ‘/etc/virt-who.d’: Permission denied

find: ‘/etc/sudoers.d’: Permission denied

ps:>>,2>>,&>>不会覆盖源文件内容,会把相应的输出字符放到文件的最后

3.|管道,管道的作用是将前一条命令的输出变成管道之后命令的输入

ls /bin | wc -l ###统计ls /bin 命令输出的行数

tee ###复制输出到指定位置

date |tee file |wc -l ###tee命令复制date命令的输出到file中,并统计输出行数

ps:系统中错误的输出是无法通过管道的。用2>&1可以错误的输出编号由2变成1.

eg:[kiosk@foundation42 Desktop]$ ls /bin | wc -l ###统计ls /bin命令输出的行数

1903

[kiosk@foundation42 Desktop]$ sdjksljf | wc -l ###系统中错误的输出是无法通过管道的

bash: sdjksljf: command not found...

0

[kiosk@foundation42 Desktop]$ sdjksljf 2>&1 | wc -l ###用2>&1可以错误的输出编号由2变成1

1

[kiosk@foundation42 Desktop]$ date |tee file |wc -l ###tee命令复制date命令的输出到file中,并统计输出行数

1

[kiosk@foundation42 Desktop]$ cat file ###文件file中是命令date的输出

Tue Mar 21 13:36:46 CST 2017

四、vim

1.vim的命令模式

在vim的命令模式下可以配置vim的工作方式

:set nu ###行号添加

:set nonu ###取消行号

:set mouse=a ###添加鼠标选择

:set cursorline ###行线显示

ps:以上设定都是临时的,永久设定方式:

vim /etc/vimrc ###此文件为vim的配置文件,在此文件最后加上以上参数,加到文件中的参数不需要:

[root@foundation42 ~]# echo set nu  >>/etc/vimrc ###永久设定行号添加

2.vim命令模式下关键字搜索

/关键字

n向下匹配

N向上匹配

3.vim命令模式下字符的管理

1)字符的复制

yl ###复制一个字母

y3l ###复制3个字母

yw ###复制一个单词

y3w ###复制3个单词

yy ###复制一行

y3y ###复制3行

p ###复制完成后按“P”粘贴

2)字符的删除

dl ###删除一个字母

d3l ###删除3个字母

dw ###删除一个单词

d3w ###删除3个单词

dd ###删除一行

d3d ###删除3行

2)字符的剪切

cl ###剪切一个字母

c3l ###剪切3个字母

cw ###剪切一个单词

c3w ###剪切3个单词

cc ###剪切一行

c3c ###剪切3行

esc -> p ###剪切过后会进入到插入模式,在执行粘贴动作时一定要退出插入模式

4.vim的可视化模式

1)在命令模式下按“ctrl+v”进入到可视模式

2)在可视模式下可以区域选择字符,使用上下左右键

3)可视模式下批量添加字符

ctrl+v->选中要加入字符所在列->按“I”进入插入模式,写入要加入的字符->按“esc”

5.批量修改字符

:%s/原有字符/替换后字符 ###只替换每一行中出现的第一个原有字符

:%s/原有字符/替换后字符/g ###替换所有

:%s/\t//g ###把全文的tab键替去掉,\t 表示tab键

:%s/^\ *//g ###把全文行首的空格去掉,"^\ *"表示行首的空格

:%s/\ *//g ###把全文的空格去掉

:%s/^\#\ */#/g ###把全文#后的空格去掉

6.vim的分屏功能

ctrl+w s ###上下分屏

ctrl+w v ###左右分屏

ctrl+w c ###关闭光标所在屏幕

ctrl+w 上下左右 ###光标移动到指定屏幕

:sp file2 ###同时编辑当前文件和file2

7.vim光标移动

1)在命令模式下

:数字 ###移动到指定行

G ###光标移动到文件最后一行

gg ###光标移动到文件第一行

2)在插入模式下

i ###光标所在位置插入

I ###光标所在行行首

a ###光标所在字符的下一个位置

A ###光标所在行行尾

o ###光标所在行下一行

O ###光标所在行上一行

s ###删除光标所在字符插入

S ###删除光标所在行插入

8.vim的退出模式

:q ###当用vim打开文件但没有对字符作任何操作时可直接退出

:q! ###当用vim打开文件并对字符作操作,放弃所有操作退出

:wq ###保存退出

:wq! ###强行保存退出,对超级用户及文件所有人生效

9.vim手册

vimtutor ###vim的手册

:q ###退出vimtutor

五、gedit

ctrl+n ###在gedit中打开一个新的tab

ctrl+s ###保存文件

ctrl+o ###打开文件

ctrl+x ###剪切字符

ctrl+v ###粘贴字符

ctrl+c ###复制字符

yelp help:gedit ###gedit的图形手册

unit3-作业

1.用命令和正则表达式按照要求建立文件

*)用一条命令建立12个文件WESTOS_classX_linuxY(X的数值范围为1-2,Y的数值范围为1-6)

*)这些文件都包含在root用户桌面的study目录中

[root@foundation42 Desktop]# mkdir study

[root@foundation42 Desktop]# touch ./study/WESTOS_class{1..2}_linux{1..6}

[root@foundation42 Desktop]# ls ./study/

WESTOS_class1_linux1  WESTOS_class1_linux5  WESTOS_class2_linux3

WESTOS_class1_linux2  WESTOS_class1_linux6  WESTOS_class2_linux4

WESTOS_class1_linux3  WESTOS_class2_linux1  WESTOS_class2_linux5

WESTOS_class1_linux4  WESTOS_class2_linux2  WESTOS_class2_linux6

*)用一条命令建立8个文件redhat_versionX(x的范围为1-8)

*)redhat_virsionX这些文件都包含在/mnt目录中的VERSION中

[root@foundation42 Desktop]# mkdir /mnt/VERSION

[root@foundation42 Desktop]# touch /mnt/VERSION/redhat_version{1..8}

[root@foundation42 Desktop]# ls /mnt/VERSION/

redhat_version1  redhat_version3  redhat_version5  redhat_version7

redhat_version2  redhat_version4  redhat_version6  redhat_version8

2.管理刚才信建立的文件要求如下

*)用一条命令把redhat_versionX中的带有奇数的文件复制到桌面的SINGLE中

[root@foundation42 Desktop]# mkdir SINGLE

[root@foundation42 Desktop]# cp /mnt/VERSION/redhat_version[1357] ./SINGLE/

[root@foundation42 Desktop]# ls SINGLE/

redhat_version1  redhat_version3  redhat_version5  redhat_version7

*)用一条命令把redhat_versionX中的带偶数数的文件复制到/DOUBLE中

[root@foundation42 Desktop]# mkdir DOUBLE

[root@foundation42 Desktop]# cp /mnt/VERSION/redhat_version[^1357] ./DOUBLE/

[root@foundation42 Desktop]# ls DOUBLE/

redhat_version2  redhat_version4  redhat_version6  redhat_version8

*)用一条命令把WESTOS_classX_linuxY中class1的文件一动到当前用户桌面的CLASS1中

[root@foundation42 Desktop]# mkdir CLASS1

[root@foundation42 Desktop]# mv study/WESTOS_class1* CLASS1/

[root@foundation42 Desktop]# ls CLASS1/

WESTOS_class1_linux1  WESTOS_class1_linux3  WESTOS_class1_linux5

WESTOS_class1_linux2  WESTOS_class1_linux4  WESTOS_class1_linux6

*)用一条命令把WESTOS_classX_linuxY中class2的文件一动到当前用户桌面的CLASS2中

[root@foundation42 Desktop]# mkdir CLASS2

[root@foundation42 Desktop]# mv study/WESTOS_class2* CLASS2/

[root@foundation42 Desktop]# ls CLASS2/

WESTOS_class2_linux1  WESTOS_class2_linux3  WESTOS_class2_linux5

WESTOS_class2_linux2  WESTOS_class2_linux4  WESTOS_class2_linux6

3.备份/etc目录中所有名字带有数字并且以.conf结尾的文件到桌面上的confdir中

[root@foundation42 Desktop]# mkdir confdir

[root@foundation42 Desktop]# cp /etc/*[[:digit:]]*.conf confdir

[root@foundation42 Desktop]# ls confdir/

e2fsck.conf  krb5.conf  mke2fs.conf

4.删掉刚才建立或者备份的所有文件

[root@foundation42 Desktop]# rm -fr * /mnt/VERSION

5.在student用户下执行find /etc -name passwd 命令,并管理其输出要求如下:

*)显示所有正确输出,屏蔽错误输出

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd 2>/dev/null

/etc/passwd

/etc/pam.d/passwd

*)保存正确数出到/tmp/find.out,错误数出到/tmp/find.err中

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd >/tmp/find.out 2>/tmp/find.err

*)建立/tmp/find.all文件,并且保存所有输出到此文件中

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd &>/tmp/find.all

*)再次保存所有输出到/tmp/find.all中,并且保持源文件内容

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd &>>/tmp/find.all

*)屏蔽此命令的所有输出

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd &>/dev/null

*)显示此命令的所有输出并保存输出到桌面上的任意文件中

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd | tee file

*)保存正确输出到/tmp/find.out.1中,屏蔽错误输出

[kiosk@foundation42 Desktop]$ find /etc/ -name passwd >/tmp/find.out.1 2>/dev/null

6.处理文件在文件/usr/share/mime/packages/freedesktop.org.xml要求如下:

*)找到此文件中包含ich的行,并保存这些行到/root/lines中

[root@foundation42 Desktop]# cat /usr/share/mime/packages/freedesktop.org.xml |grep ich | tee /root/lines

*)用vim替换掉/root/lines中的空格,但要保持文件中原有的内容

[root@foundation42 Desktop]# vim /root/lines->命令模式下输入":%s/\ /vim/g"->按“esc”->命令模式下输入“:wq”

Linux云自动化运维第三课的更多相关文章

  1. Linux云自动化运维第四课

    Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所 ...

  2. Linux云自动化运维第五课

    Linux云自动化运维第五课 一.进程定义 进程就是cpu未完成的工作 二.ps命令 ps a ###关于当前环境的所有进程 x ###与当前环境无关的所有进程 f ###显示进程从属关系 e ### ...

  3. Linux云自动化运维第八课

    第十三单元 软件安装 一.软件名称识别 [abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ###rpm结尾的适用与redhat操作系统 ||       ...

  4. Linux云自动化运维第二课

    一.Linux系统结构 1.Linux是一个倒树结构.Linux中所有的东西都是文件.这些文件都在系统的顶级目录中"/","/"是根目录."/&quo ...

  5. Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar

    一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...

  6. Linux轻量级自动化运维工具— Ansible

    Ansible 是什么 ? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配 ...

  7. [Linux]Ansible自动化运维① - 入门知识

    目录 一.Ansible 概述 1.1 Ansible 是什么 1.2 Ansible 优势 1.3 Ansible 特性 二.Ansible 入门 2.1 Ansible 架构 2.2 Ansibl ...

  8. (转)实验文档5:企业级kubernetes容器云自动化运维平台

    部署对象式存储minio 运维主机HDSS7-200.host.com上: 准备docker镜像 镜像下载地址 复制 12345678910111213141516 [root@hdss7-200 ~ ...

  9. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

随机推荐

  1. 利用享元模式来解决DOM元素过多导致的网页解析慢、卡死的问题

    我也不知道应该为本文的思路取一个什么比较恰当的标题,但是感觉符合享元模式的思路. 在一些网页应用中,有时会碰到一个超级巨大的列表,成千上万行,这时大部份浏览器解析起来就非常痛苦了(有可能直接卡死). ...

  2. 内功心法 -- Java标记接口

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------这篇博客主要来谈谈" ...

  3. css3 3d学习心得

    css3 3d学习心得 卡片反转 魔方 banner图 首先我们要学习好css3 3d一定要有一定的立体感 通过这个图片应该清楚的了解到了x轴 y轴 z轴是什么概念了. 首先先给大家看一个小例子: 卡 ...

  4. mybatis入门-新手注意问题

    参数问题 在映射文件中通过parameterType指定输入参数的类型:在映射文件中通过resultType指定输出结果的类型. 占位符和拼接符问题 #{}表示一个占位符号,#{}接收输入参数,类型可 ...

  5. 基于 GCDAsyncSocket,简单实现类似《你猜我画》的 socket 数据传输

    一.前言 Socket Socket 是对 TCP/IP 协议的封装,其中IP协议对应为网络层,TCP 协议对应为传输层,而我们常用的HTTP协议,是位于应用层,在七层模型中HTTP协议是基于 TCP ...

  6. 深入理解javaScript的深复制和浅复制

    javascript有五种基本数据类型(也就是简单数据类型),它们分别是:Undefined,Null,Boolean,Number和String.还含有一种复杂数据类型,就是对象 注意Undefin ...

  7. JAVA设计模式:单例设计

    1.单例设计Singleton的引出 单例设计,从名字上首先可以看出单---即只有一个,例---只的是实例化对象:那么单例也就是说一个类,只产生了一个实例化对象.但是我们都知道,一个类要产生实例化对象 ...

  8. 纪中集训 Day1

    今天早上起来吃饭,发现纪中伙食真的是太差了!!!什么都不热,早餐的面包还好,然后就迎来了美好的早晨= = 早上做一套题,T1T2果断秒,T3一看就是noi原题,还好看过题解会写,然后就愉快的码+Deb ...

  9. BZOJ 2463: [中山市选2009]谁能赢呢?(博弈论)

    好吧我能说这道题我是猜过去的么= =,看到只有一个数x,x=2时alice赢,就猜奇数bob赢,偶数alice赢,然后就稀里糊涂过了= = 后来找了http://www.haogongju.net/a ...

  10. WP8.1开发对图片进行裁剪(截取)一部分

    对于这个内容,我是在学习插入图片时遇到的问题,在Windows应用中可以直接用Image类和Bitmap直接实现裁剪功能, 在wp上就不行了,后来在MSDN论坛上找到了相关方法及示例,而示例太复杂了, ...