1. 为oldboy.txt增加内容为“I am studying linux.” 

解答:    

  • 方法一:#vim /data/oldboy.txt

              I am studying linux.

  • 方法二:# echo "hello oldboy linux" >>/data/oldboy.txt      

                                                         == >> ##追加内容到oldboy.txt             

  •  方法三:#cat >>/data/oldboy.txt<<EOF

                >I am studying linux.

                >hello oldboy linux

                >I am study

                >EOF

          [root@server1 ~]# cat /data/oldboy.txt 

           I am studying linux.

           hello oldboy linux

           I am study


2. 已知文件test.txt内容为:

test

liyao

oldboy 

请给出 输出test.txt文件 内容时,不包含 oldboy 字符串的命令。

解答:

  • 方法一 : # grep "oldboy"  /data/test.txt 

                    oldboy

                     [root@server1 ~]#grep -v  "oldboy"  /data/test.txt 

                    test

                    liyao


  • #方法二: # head -n2 /data/test.txt 

                     test

                     liyao

                      [root@server1 ~]# head -2 /data/test.txt 

                     test

                     liyao


  •  #方法三: [root@server1 ~]# sed '/oldboy/d'  /data/test.txt 

                      test

                      liyao


  •  #方法四:  # awk '/oldboy/' /data/test.txt 

                      oldboy

                        [root@server1 ~]# awk '!/oldboy/' /data/test.txt 

                       test

                       liyao


3. 已知 /tmp 下已经存在 test.txt文件,如何执行命令才能把 文件 /mnt/test.txt 拷贝到 /tmp 下覆盖掉 /tmp/test.txt ,而让系统不提示是否覆盖(root权限下)。

解答:

  • #方法一:使用 \cp 

         [root@server1 ~] # \cp /mnt/test.txt /tmp/


  • #方法二.使用命令cp 的全路径(绝对路径)

          [root@server1 ~] # which cp 

           alias cp='cp -i'

           /bin/cp

           [root@server1 ~]# /bin/cp /mnt/test.txt /tmp/


4. 只查看 ett .txt文件(共 100 行)内第 20 到第 30 行的内容。

解答:[root@server1 ~]# seq 100 >/data/ett.txt     ==>创建100行内容

  • #方法一: # head -30 /data/ett.txt |tail -11

              20

              21

              22

              23

              24

              25

              26

              27

              28

              29

              30

  •  #方法二:# sed -n '20,30p' /data/ett.txt       ===>>  -n 取消默认输出

              20

              21

              22

              23

              24

              25

              26

              27

              28

              29

              30

 #方法三:# awk 'NR==20,NR==30'  /data/ett.txt 

              20

              21

              22

              23

              24

              25

              26

              27

              28

              29

              30

                # awk 'NR>=20 && NR<=30' /data/ett.txt 

              20

              21

              22

              23

              24

              25

              26

              27

              28

              29

              30

  • #方法四:# grep -A10 "20" /data/ett.txt             ## -A10, 20之后的十行

            20

            21

            22

            23

            24

            25

            26

            27

            28

            29

            30

              # grep -B 10 "30" /data/ett.txt               ## -B 10,30之前的十行

            20

            21

            22

            23

            24

            25

            26

            27

            28

            29

            30

            # grep -C 5 "25" /data/ett.txt ##-C 5,  25左右五行

            20

            21

            22

            23

            24

            25

            26

            27

            28

            29

            30


5. 为什么运行cp命令的时候 会提示你 ?执行cp命令的时候,就相当于执行了 cp -i (mv -i ; rm -i )

   

★linux设置别名。

  •  查看别名:[root@server1 ~]# alias 

     alias cp='cp -i'

     alias l.='ls -d .* --color=auto'

     alias ll='ls -l --color=auto'

     alias ls='ls --color=auto'

     alias mv='mv -i'

     alias rm='rm -i'

     alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'        

  •   取消别名:[root@server1 ~]# unalias cp

 

例子:执行rm命令时,显示do not use rm command 

###第一个里程碑-如何显示这行文字

      [root@server1 ~]# echo do not use rm command

     do not use rm command


###第二个里程碑-配置别名

       [root@server1 ~]#  alias cp                   //看别人是如何配置的

       alias cp='cp -i'

       [root@server1 ~]# alias rm='echo do not use rm command'


###第三个里程碑-测试

         [root@server1 ~]# rm  /data

         do not use rm command /data

          [root@server1 ~]# rm -rf /data

         do not use rm command -rf /data


###第四个里程碑-让别名永久生效-/etc/profile 

          [root@server1 ~]# tail -1 /etc/profile

           alias rm='echo do not use rm command'

          

###第五个里程碑-让别名的配置生效

            [root@server1 ~]# source /etc/profile

 

###第六个里程碑-排坑 -vim /root/.bashrc

            [root@oldboyedu37 ~]# cat /root/.bashrc 

            # .bashrc

            

            # User specific aliases and functions

            

            #alias rm='rm -i'                        //注释rm 这行

            alias cp='cp -i'

            alias mv='mv -i'

            

            # Source global definitions

            if [ -f /etc/bashrc ]; then

            . /etc/bashrc

            fi

6、把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含./hostlists.txt(oldboy)的字符串全部替换为../idctest_iplist(oldgirl)。

  

 ###创建测试文件

    [root@server1 ~]# mkdir -p /oldboy/test

         [root@server1 ~]# cd /oldboy

         [root@server1 oldboy]# echo "oldboy">test/del.sh

         [root@server1 oldboy]# echo "oldboy">test.sh

         [root@server1 oldboy]# echo "oldboy">t.sh

         [root@server1 oldboy]# touch oldboy.txt

         [root@server1 oldboy]# touch alex.txt

         [root@server1 oldboy]# tree /oldboy/

         /oldboy/

         ├── alex.txt

         ├── oldboy.txt

         ├── test

         │?? └── del.sh

         ├── test.sh

         └── t.sh

         

         1 directory, 5 files

 

       ###第二个里程碑:如何找出要处理的文件

   [root@server1 ~]# find /oldboy/ -type f

         /oldboy/alex.txt

         /oldboy/test.sh

         /oldboy/t.sh

         /oldboy/oldboy.txt

         /oldboy/test/del.sh

         [root@server1 ~]# find /oldboy/ -type f -name "*.sh"

         /oldboy/test.sh

         /oldboy/t.sh

         /oldboy/test/del.sh


  ###第三个里程碑:sed命令修改文件的内容 

   #sed 's#找谁#替换成什么#g' 文件

        [root@server1 ~]# sed 's#oldboy#oldgirl#g' /oldboy/t.sh 

       oldgirl

   #修改文件内容

        [root@server1 ~]# sed -i 's#oldboy#oldgirl#g' /oldboy/t.sh 

        [root@server1 ~]# cat /oldboy/t.sh 

       oldgirl 

 




联系qq:2632886623