zoukankan      html  css  js  c++  java
  • 第一章练习题

    ###3.4 把oldboy.txt拷贝(复制)到/tmp下。

    #copy ----cp
    [root@oldboyedu-01 ~]# cp /data/oldboy.txt /tmp/
    [root@oldboyedu-01 ~]# ls -l /tmp/
    total 4
    -rw-r--r--. 1 root root 140 Sep 20 01:29 oldboy.txt
    -rw-------. 1 root root 0 Sep 18 15:40 yum.log

    #操作前备份 操作后检查
    [root@oldboyedu-01 ~]# cp /data/oldboy.txt /data/oldboy.txt.bak
    [root@oldboyedu-01 ~]# ls -l /data/oldboy.txt
    -rw-r--r--. 1 root root 140 Sep 20 01:12 /data/oldboy.txt
    [root@oldboyedu-01 ~]# ls -l /data/
    total 12
    -rw-r--r--. 1 root root 10 Sep 20 01:15 num.txt
    -rw-r--r--. 1 root root 140 Sep 20 01:12 oldboy.txt
    -rw-r--r--. 1 root root 140 Sep 20 01:31 oldboy.txt.bak

    [root@oldboyedu-01 ~]# cp /data/ /tmp/
    cp: omitting directory `/data/'

    [root@oldboyedu-01 ~]# cp -r /data/ /tmp/
    [root@oldboyedu-01 ~]# ls -l /tmp/
    total 8
    drwxr-xr-x. 2 root root 4096 Sep 20 01:35 data
    -rw-r--r--. 1 root root 140 Sep 20 01:29 oldboy.txt
    -rw-------. 1 root root 0 Sep 18 15:40 yum.log

    1.排版哥
    2.ppt哥
    3.三剑客 三哥
    4.演讲哥
    5.画图哥


    ###3.5 把 /data 移动到 /root目录下面
    #移动----搬家---move-mv
    [root@oldboyedu-01 ~]# mv /data/ /root/
    [root@oldboyedu-01 ~]# ls -l /root/
    total 40
    -rw-------. 1 root root 1052 Sep 18 15:44 anaconda-ks.cfg
    drwxr-xr-x. 2 root root 4096 Sep 20 01:31 data
    -rw-r--r--. 1 root root 21736 Sep 18 15:44 install.log
    -rw-r--r--. 1 root root 5890 Sep 18 15:43 install.log.syslog

    [root@oldboyedu-01 ~]# ls -l /data
    ls: cannot access /data: No such file or directory


    vmware 给你虚拟机拍摄快照

    ###3.6 进入/root目录下的data目录,删除oldboy.txt文件

    [root@oldboyedu-01 tmp]# rm data/
    rm: cannot remove `data/': Is a directory
    [root@oldboyedu-01 tmp]# rm -r data
    rm: descend into directory `data'? y
    rm: remove regular file `data/oldboy.txt'? n
    rm: remove regular file `data/.oldboy.txt.swp'? n
    rm: remove regular file `data/num.txt'? n
    rm: remove regular file `data/oldboy.txt.bak'? n
    rm: remove directory `data'? n
    [root@oldboyedu-01 tmp]# rm -rf data/
    [root@oldboyedu-01 tmp]# ls -l
    total 4
    -rw-r--r--. 1 root root 140 Sep 20 01:29 oldboy.txt
    -rw-------. 1 root root 0 Sep 18 15:40 yum.log

    ##find命令
    [root@oldboyedu-01 tmp]# find /root/ -type f -name "oldboy.txt"
    /root/data/oldboy.txt
    [root@oldboyedu-01 tmp]# #find /root/ -type f -name "oldboy.txt"
    [root@oldboyedu-01 tmp]# #find 在哪里找 找什么类型的 找什么名字

    -type 找什么类型的
    f file 文件
    d directory 目录

    ##管道 |

    [root@oldboyedu-01 tmp]# find /root/ -type f -name "oldboy.txt"
    /root/data/oldboy.txt
    [root@oldboyedu-01 tmp]#
    [root@oldboyedu-01 tmp]#
    [root@oldboyedu-01 tmp]# find /root/ -type f -name "oldboy.txt"|xargs ls -l
    -rw-r--r--. 1 root root 0 Sep 20 02:27 /root/data/oldboy.txt

    找出以.txt结尾的文件
    [root@oldboyedu-01 tmp]# find /root/ -type f -name "*.txt"
    /root/data/oldboy.txt
    /root/data/num.txt

    ###3.7 接第6题,退出到上一级目录删除data目录。(原来在/root/data)
    [root@oldboyedu-01 ~]# cd /root/data/
    [root@oldboyedu-01 data]# pwd
    /root/data
    [root@oldboyedu-01 data]# cd ..
    [root@oldboyedu-01 ~]# pwd
    /root
    [root@oldboyedu-01 ~]# #进入当前目录的上一级目录
    [root@oldboyedu-01 ~]# cd ..
    [root@oldboyedu-01 /]# cd ../../../

    [root@oldboyedu-01 ~]# rm data/ -fr
    [root@oldboyedu-01 ~]# ls data
    ls: cannot access data: No such file or directory

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


    创建测试文件:
    mkdir /data
    cat >/data/test.txt<<EOF
    test
    liyao
    oldboy
    EOF

    #方法1-grep
    [root@oldboyedu-01 ~]# cd /data/
    [root@oldboyedu-01 data]# cat test.txt
    test
    liyao
    oldboy
    [root@oldboyedu-01 data]# #过滤 在文件中找到你想要的内容
    [root@oldboyedu-01 data]# grep "oldboy" test.txt
    oldboy
    [root@oldboyedu-01 data]# grep "ol" test.txt
    oldboy
    [root@oldboyedu-01 data]# #排除
    [root@oldboyedu-01 data]# grep -v "oldboy" test.txt
    test
    liyao

    #方法2-head
    [root@oldboyedu-01 data]# head test.txt
    test
    liyao
    oldboy
    [root@oldboyedu-01 data]# head -n2 test.txt
    test
    liyao
    [root@oldboyedu-01 data]# head -2 test.txt
    test
    liyao

    [root@oldboyedu-01 data]# tail test.txt
    test
    liyao
    oldboy
    [root@oldboyedu-01 data]# tail -2 test.txt
    liyao
    oldboy
    [root@oldboyedu-01 data]# tail -1 test.txt
    oldboy

    #方法3-awk
    [root@oldboyedu-01 data]# awk '/oldboy/' test.txt
    oldboy
    [root@oldboyedu-01 data]# grep "oldboy" test.txt
    oldboy
    [root@oldboyedu-01 data]# grep -v "oldboy" test.txt
    test
    liyao
    [root@oldboyedu-01 data]# awk '!/oldboy/' test.txt
    test
    liyao
    [root@oldboyedu-01 data]# #awk中 !表示取反 非

    #方法4-sed
    [root@oldboyedu-01 data]# sed '/oldboy/d' test.txt
    test
    liyao

    小结:
    1.grep 过滤 ******
    2.head tail ******
    3.sed awk 了解

    ##3.9 请用一条命令完成创建目录/oldboy/test,即创建/oldboy目录及/oldboy/test

    [root@oldboyedu-01 data]# mkdir /oldboy/test
    mkdir: cannot create directory `/oldboy/test': No such file or directory

    No such file or directory错误排查过程
    1.ls 命令一层一层查看
    2.查看每一层目录/文件是否存在


    [root@oldboyedu-01 data]# mkdir -p /oldboy/test
    [root@oldboyedu-01 data]# ls /oldboy/
    test
    [root@oldboyedu-01 data]# ls -l /oldboy/
    total 4
    drwxr-xr-x. 2 root root 4096 Sep 25 10:28 test

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


    [root@oldboyedu-01 data]# cp /mnt/test.txt /tmp/
    cp: overwrite `/tmp/test.txt'? ^C
    #方法1 撬棍
    [root@oldboyedu-01 data]# cp /mnt/test.txt /tmp/

    #方法2 使用命令的绝对路径 全路径

    [root@oldboyedu-01 data]# which cp
    alias cp='cp -i'
    /bin/cp
    [root@oldboyedu-01 data]# which mkdir
    /bin/mkdir

    [root@oldboyedu-01 data]# ls -l /bin/cp
    -rwxr-xr-x. 1 root root 122896 Mar 23 2017 /bin/cp
    [root@oldboyedu-01 data]# /bin/cp /mnt/test.txt /tmp/

    #提示你是否覆盖? 是否删除?

    #为何我们执行cp的时候就相当于cp -i
    #为何我们执行rm的时候就相当于rm -i

    ###linux别名
    ##小名 昵称 爱称 外号

    ##目标
    ###1.防止运行危险命令******
    ###2.省事 简化命令

    ##如何设置一个别名

    ###第一个里程碑-查看系统中的别名

    [root@oldboyedu-01 data]# alias rm cp mv
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    ###第二个里程碑-模仿
    #执行rm命令的时候提示 do not use rm
    root@oldboyedu-01 data]# echo do not use rm
    do not use rm
    [root@oldboyedu-01 data]# alias rm='echo do not use rm'
    [root@oldboyedu-01 data]# alias rm
    alias rm='echo do not use rm'
    [root@oldboyedu-01 data]# rm /tmp/test.txt
    do not use rm /tmp/test.txt
    [root@oldboyedu-01 data]# rm -f /tmp/test.txt
    do not use rm -f /tmp/test.txt
    [root@oldboyedu-01 data]# rm -fr /tmp/test.txt
    do not use rm -fr /tmp/test.txt
    ###第三个里程碑-永久生效
    #/etc/profile
    #vim 快捷键
    ##移动光标到文件的最后一行 G
    ##移动光标到文件的 第一行 gg
    ##在光标所在位置的下一行插入一个空行 并进入编辑模式 o(小写字母)
    [root@oldboyedu-01 ~]# tail -1 /etc/profile
    alias rm='echo do not use rm'

    [root@oldboyedu-01 ~]# source /etc/profile
    [root@oldboyedu-01 ~]# alias rm
    alias rm='echo do not use rm'

    ###第四个里程碑-填坑
    编辑 /root/.bashrc
    把 alias rm='rm -i'这一行前面加上一个注释#

    小结:
    1.配置别名
    2.临时取消别名 cp rm

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

    seq 100 >/oldboy/ett.txt

    ###方法1-sed
    [root@oldboyedu-01 ~]# #sed 默认输出 sed命令会把文件的内容 默认都显示出来
    [root@oldboyedu-01 ~]# sed -n '20p' /oldboy/ett.txt
    20
    [root@oldboyedu-01 ~]# sed -n '20,30p' /oldboy/ett.txt
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    ###方法2-head + tail
    [root@oldboyedu-01 ~]# head -30 /oldboy/ett.txt |tail -11
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    ###方法3-awk
    [root@oldboyedu-01 ~]# awk 'NR==20' /oldboy/ett.txt
    20
    #NR表示行号
    #== 表示等于
    [root@oldboyedu-01 ~]# awk 'NR==20,NR==30' /oldboy/ett.txt
    [root@oldboyedu-01 ~]# sed -n '20,30p' /oldboy/ett.txt

    ###方法4-grep
    [root@oldboyedu-01 ~]# grep "20" /oldboy/ett.txt
    20
    [root@oldboyedu-01 ~]# #文件的内容 ====等于这一行的行号
    [root@oldboyedu-01 ~]# grep -A10 "20" /oldboy/ett.txt
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    小结:
    1.取出文件中的某一行,或者连续的几行
    2.sed,head+tail
    3.awk-了解

    ##3.12 把/oldboy目录及其子目录下所有以扩展名 .sh结尾的文件中,文件包含oldboy的字符串全部替换为oldgirl
    创建测试环境:
    mkdir -p /oldboy/test
    cd /oldboy
    echo "oldboy">test/del.sh
    echo "oldboy">test.sh
    echo "oldboy">t.sh
    touch oldboy.txt
    touch alex.txt

    #第一个里程碑-找出你要的文件
    [root@oldboyedu-01 oldboy]# find /oldboy/ -type f
    /oldboy/t.sh
    /oldboy/oldboy.txt
    /oldboy/test.sh
    /oldboy/test/del.sh
    /oldboy/ett.txt
    /oldboy/alex.txt
    [root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"
    /oldboy/t.sh
    /oldboy/test.sh
    /oldboy/test/del.sh

    #第二个里程碑-oldboy替换为oldgirl 处理一个文件
    [root@oldboyedu-01 oldboy]# cat /oldboy/t.sh
    oldboy
    [root@oldboyedu-01 oldboy]# #sed 's#找谁#替换为什么#g' /oldboy/t.sh
    [root@oldboyedu-01 oldboy]# #替换
    [root@oldboyedu-01 oldboy]# sed 's#oldboy#oldgirl#g' /oldboy/t.sh
    oldgirl
    [root@oldboyedu-01 oldboy]# cat /oldboy/t.sh
    oldboy
    [root@oldboyedu-01 oldboy]# #sed修改文件的内容
    [root@oldboyedu-01 oldboy]# sed -i 's#oldboy#oldgirl#g' /oldboy/t.sh
    [root@oldboyedu-01 oldboy]# cat /oldboy/t.sh
    oldgirl

    #第三个里程碑-把find命令找到的文件交给sed命令处理
    [root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"
    /oldboy/t.sh
    /oldboy/test.sh
    /oldboy/test/del.sh
    [root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs ls -l
    -rw-r--r--. 1 root root 7 Sep 25 11:59 /oldboy/test/del.sh
    -rw-r--r--. 1 root root 7 Sep 25 11:59 /oldboy/test.sh
    -rw-r--r--. 1 root root 8 Sep 25 12:08 /oldboy/t.sh
    [root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g'
    oldgirl
    oldgirl
    oldgirl
    [root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' -i
    [root@oldboyedu-01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat
    oldgirl
    oldgirl
    oldgirl

    小结:
    1.find 与|xargs
    2.ls -l rm sed
    3.sed名进行替换 修改文件内容

    第一关练习题-命令与征服
    1.一大波命令
    2.三剑客 grep sed使用
    3.别名
    4.find命令查找出文件 与 其他命令配合

  • 相关阅读:
    搭建环境遇到的几个问题
    webservice
    Eclipse 反编译 阅读class 文件
    设置navigationBar上面的item
    自定义的UITabbar上面的按钮的x坐标的计算方法
    UIToolbar自定义背景及按钮设置
    UITabBar实现自定义背景及UITabBarItem自定义图片和字体
    IOS APP圆形图片的实现
    如果AlertView输入框为空,则禁止点击确定按钮
    两种局部刷新UITableView的方法的使用条件
  • 原文地址:https://www.cnblogs.com/MouseCat/p/10704231.html
Copyright © 2011-2022 走看看