zoukankan      html  css  js  c++  java
  • 24.centos7基础学习与积累-010-上机考核命令练习

    从头开始积累centos7系统运用

    大牛博客:https://blog.51cto.com/yangrong/p5

    1.创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然后在文件lodboy.txt里写入内容

    “inet addr:10.0.0.8” Bcast:10.0.0.255 Mask:255.255.255.0"(不包括引号)。

    [root@python01 ~]# mkdir /data/oldboy -p

    用sed过滤行

    [root@python01 ~]# ip a|sed -n '9p'
        inet 192.168.50.200/24 brd 192.168.50.255 scope global eth0

    用grep过滤指定字符

    [root@python01 ~]# ip a|grep 192     
        inet 192.168.50.200/24 brd 192.168.50.255 scope global eth0

    [root@python01 ~]# ip a|grep 192 >/data/oldboy/oldboy.txt

    [root@python01 ~]# cat /data/oldboy/oldboy.txt
        inet 192.168.50.200/24 brd 192.168.50.255 scope global eth0

    2.讲题1中的oldboy.txt文件内容通过命令过滤只输出如下内容:

    10.0.0.8 10.0.0.255 255.255.255.0

    多个分隔符用中括号括起来

    [root@python01 ~]# awk -F "[ :]+" '{print $1$3}' /data/oldboy/oldboy.txt

    正确答案:当只有一个分隔符时

    [root@python01 ~]# awk -F " " '{print $2" "$4}' /data/oldboy/oldboy.txt  
    192.168.50.200/24 192.168.50.255

    3.将题1的oldboy目录移动到/tmp目录下,并将/etc/passwd文件复制到/tmp/oldboy下。

    [root@python01 ~]# mv /data/oldboy  /tmp/
    [root@python01 ~]# ls /tmp/oldboy/
    oldboy.txt

    [root@python01 ~]# cp /etc/passwd /tmp/oldboy/
    [root@python01 ~]# ls /tmp/oldboy/
    oldboy.txt  passwd

    4.在题3的基础上使用awk取passwd文件的地10行到20行的第三列重定向到/tmp/oldboy/test.txt 文件里面。

    [root@python01 oldboy]# awk '9<NR && NR<21{print }' passwd |cat -n
         1  operator:x:11:0:operator:/root:/sbin/nologin
         2  games:x:12:100:games:/usr/games:/sbin/nologin
         3  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
         4  nobody:x:99:99:Nobody:/:/sbin/nologin
         5  systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
         6  dbus:x:81:81:System message bus:/:/sbin/nologin
         7  polkitd:x:999:998:User for polkitd:/:/sbin/nologin
         8  sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
         9  postfix:x:89:89::/var/spool/postfix:/sbin/nologin
        10  chrony:x:998:996::/var/lib/chrony:/sbin/nologin
        11  ntp:x:38:38::/etc/ntp:/sbin/nologin

    [root@python01 oldboy]# awk -F ":" '{if(9<NR && NR<21)print $3}' passwd    
    11
    12
    14
    99
    192
    81
    999
    74
    89
    998
    38

    [root@python01 oldboy]# awk -F ":" '9<NR && NR<21{print $3}' passwd
    11
    12
    14
    99
    192
    81
    999
    74
    89
    998
    38

    [root@python01 oldboy]# awk -F ":" '9<NR && NR<21{print $3}' passwd >test.txt
    [root@python01 oldboy]# ls
    oldboy.txt  passwd  test.txt
    [root@python01 oldboy]# cat test.txt
    11
    12
    14
    99
    192
    81
    999
    74
    89
    998
    38

    5.在题3的基础上要求用命令rm删除文件时提示如下禁止使用rm的提示,并是该效果永久生效。

    [root@python01 oldboy]# rm -f passwd

    Do not use rm command

    别名临时生效:

    [root@python01 oldboy]# alias rm='echo Do not use rm command.'

    [root@python01 oldboy]# rm passwd
    Do not use rm command. passwd

    别名永久生效:

    [root@python01 oldboy]# ls /etc/profile /etc/bashrc
    /etc/bashrc  /etc/profile

    追加到属性文件:

    [root@python01 oldboy]# echo "alias rm='echo Do not use rm command.'" >> /etc/bashrc

    [root@python01 oldboy]# echo "alias rm='echo Do not use rm command.'" >> /etc/profile

    6.在题3的基础上,删除/tmp/oldboy/下除passwd以外的其他文件。

    取正

    [root@python01 oldboy]# find /tmp/oldboy/ -type f -name "*.txt"

    取反

    [root@python01 oldboy]# find /tmp/oldboy/ -type f ! -name "passwd"

    删除查找到的文件目的是屏蔽别名

    [root@python01 oldboy]# find /tmp/oldboy/ -type f ! -name "passwd"|xargs m -f

    7.在题3的基础上,请打印/etc/passwd 文件中的第2-5行(不低于三种方法)

    [root@python01 oldboy]# sed -n '2,5'p /etc/passwd
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    [root@python01 oldboy]# awk '1<NR && NR<6' /etc/passwd  
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    [root@python01 oldboy]# head -5 /etc/passwd|tail -4
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    8.在题3的基础上,使用命令调换passwd文件里root位置和/bin/bash位置?即将所有的第一列和最后一列位置调换?

    例:

    root:x:0:0:root:/root:/bin/bash

    /bin/bash:x:0:0:root:/root:root

    [root@python01 oldboy]# awk -F ":" 'NR==1{print $7":"$2":"$3":"$4":"$5":"$6":"$1}' /etc/passwd
    /bin/bash:x:0:0:root:/root:root
    [root@python01 oldboy]# awk 'NR==1{print $0}' /etc/passwd                                     
    root:x:0:0:root:/root:/bin/bash

    [root@python01 oldboy]# awk -F ":" '{print $7":"$2":"$3":"$4":"$5":"$6":"$1}' /etc/passwd 

    [root@python01 oldboy]# sed ir 's#(.*):x(.*)#321#g' /tmp/oldboy/passwd

    9.把/data目录及其子目录下所有以拓展名.txt结尾的文件中包含oldgirl的字符串全部替换为oldboy.

    结果是一样的: -n 1是表示分组有区别的

    [root@python01 oldboy]# find /data -type f -name "*.txt" |xargs cat

    [root@python01 oldboy]# find /data -type f -name "*.txt" |xargs -n 1 cat

    [root@python01 oldboy]# echo "oldgir1" >/data/{1..99}.txt
    -bash: /data/{1..99}.txt: ambiguous redirect
    [root@python01 oldboy]# echo "oldgir1" >/data/1.txt      
    [root@python01 oldboy]# echo "oldgir1" >/data/2.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/3.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/4.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/5.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/6.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/7.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/8.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/9.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/10.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/11.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/12.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/13.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/14.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/15.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/16.txt
    [root@python01 oldboy]# echo "oldgir1" >/data/17.txt

    将文件中的内容替换成要求的

    [root@python01 oldboy]# find /data -type f -name "*.txt" |xargs sed -i 's#oldgir#oldboy#g'

     最近8条命令的截取

    history |cut -c 8-

    10.查找/oldboy下所有七天以前的以log结尾的大于1M的文件移动到/emp目录下。

    [root@python01 oldboy]# mkdir -p /data/oldboy

    [root@python01 oldboy]# pwd
    /data/oldboy

    制造大文件执行10次下面的命令

    [root@python01 oldboy]# cat /var/log/dmesg >>123.log

    [root@python01 oldboy]# cat /var/log/dmesg >>456.log

    将系统日期往后推9天,今天是20190709,就可以查看7天以前的文件了

    [root@python01 oldboy]# date -s 20190718

    [root@python01 oldboy]# stat 123.log

    [root@python01 oldboy]# find /data/oldboy/ -type f -name "*.log" -size +1M -mtime +7
    /data/oldboy/123.log
    /data/oldboy/456.log

    后面的 ;是exec的固定参数

    [root@python01 oldboy]# find /data/oldboy/ -type f -name "*.log" -size +1M -mtime +7 -exec mv {} /tmp ;

    [root@python01 oldboy]# mv `find /data/oldboy/ -type f -name "*.log" -size +1M -mtime +7` /tmp

    [root@python01 oldboy]# find /data/oldboy/ -type f -name "*.log" -size +1M -mtime +7 |xargs -i mv {}  /tmp

    博客参考:https://blog.51cto.com/oldboy/1750481

    [root@python01 oldboy]# find /data/oldboy/ -type f -name "*.log" -size +1M -mtime +7 -exec cp {} /tmp ;

    此处用xargs不行:删除时可以用xargs

    [root@python01 oldboy]# find /tmp -type f -name "*.log" -size +1M -mtime +7 |xargs m

    11.什么是linux的运行级别,请描述linux的运行级别不同数字的含义?

    7已经没有那么多运行级别了。

    [root@python01 oldboy]# cat /etc/inittab

    # multi-user.target: analogous to runlevel 3
    # graphical.target: analogous to runlevel 5

    # systemctl set-default TARGET.target

    7.里面默认的是 3

    6.里面的运行级别:

    0  halt

    1  Single user mode

    2  Multiuser,wittout NFS

    3  Full multiuser mode

    4  unused

    5  X11

    6  reboot

    12.请描述buffer 和 cache的区别?

    写入到内存的缓存叫buffer

    从硬盘读取到内存的叫cache

    13.请说出你知道的下列字符在linux里可以代表的意义。

    ~  root家目录

      [root@python01 oldboy]# cd ~
      [root@python01 ~]# ls
      anaconda-ks.cfg  epel-release-latest-7.noarch.rpm  test

    `   上一次所在的目录

      [root@python01 ~]# cd -
      /data/oldboy

    .  当前目录

    ..  上一级目录

    |  管道符

      [root@python01 oldboy]# ip addr|sed -n '9p'
          inet 192.168.50.200/24 brd 192.168.50.255 scope global eth0

    >  输入重定向

      [root@python01 oldboy]# seq 10 >abc.txt
      [root@python01 oldboy]# cat abc.txt
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

    >>  追加输入重定向

    <  输出重定向

      [root@python01 oldboy]# xargs -n 3 <abc.txt
      1 2 3
      4 5 6
      7 8 9
      10

    <<  追加输出重定向

    [root@python01 oldboy]# cat >>abc.txt <<EOF
    > DFJSAKLFDJ
    > DFJKSLAJF
    > FJDSKLAFJ
    > EOF

  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/ericchengge677/p/11152385.html
Copyright © 2011-2022 走看看