• magedu-第一、二周作业


    第一周作业

    1. 总结Linux常用命令,选项,及使用示例
    • echo 将参数写入到标准输出,常用选项有: -e,-E

    root@node01:~/data/tools# echo -e “hello\nworld”
    hello
    world
    root@node01:~/data/tools# echo -E “hello\nworld”
    hello\nworld

    • ls 列出指定目录下面的文件或文件夹,常用选项有:-a,-l,-h,-S,–sort

    root@node01:~/data/magedu# ll -a -hS # 按照文件大小倒排序
    total 64K
    drwxr-xr-x 3 root root 4.0K Sep 12 11:17 ./
    drwxr-xr-x 12 root root 4.0K Aug 28 17:22 …/
    drwxr-xr-x 2 root root 4.0K Sep 10 11:44 test/
    -rwxr-xr-x 1 root root 1.1K Sep 4 22:00 system_info.sh*
    -rwxr-xr-x 1 root root 1.1K Sep 12 11:17 httpd.sh*
    -rwxr-xr-x 1 root root 707 Sep 10 01:08 BMI.sh*
    -rwxr-xr-x 1 root root 510 Sep 9 00:02 score.sh*
    -rwxr-xr-x 1 root root 406 Sep 10 19:27 9x9.sh*
    -rwxr-xr-x 1 root root 405 Sep 10 10:07 bmi.sh*
    -rwxr-xr-x 1 root root 341 Sep 5 22:42 rm.sh*
    -rwxr-xr-x 1 root root 325 Sep 6 09:55 chook_rabbit.sh*
    -rwxr-xr-x 1 root root 233 Sep 10 11:44 test.sh*
    -rw-r–r-- 1 root root 218 Sep 9 00:13 a.txt
    -rwxr-xr-x 1 root root 192 Sep 6 09:10 color.sh*
    -rw-r–r-- 1 root root 107 Sep 5 09:24 -f
    -rw-r–r-- 1 root root 6 Sep 1 09:20 d.txt~

    • 其他常用命令:cat、grep、head、tail、sort、uniq、、wc、tr
      各命令的常用选项有:
    cat -n # 显示内容行号
    grep -i -E -c  [patten] filename	 # 使用扩展正则表达式搜索内容,并区分大小写
    grep -A10   [patten] filename # 匹配内容后10行
    grep -B10  [patten] filename  # 匹配内容前10行
    grep -C10  [patten] filename  # 匹配内容前后各10行
    head -n10 # 显示前十行
    tail -f 
    tail -n+2 # 从第二行(包括第二行)显示内容
    cut -d" " -f3,6  # 以空格分割,显示第3、6列
    sort -nr # 倒排序
    sort -t" " -k3 # 以空格分割后,用第三列数据排序
    uniq -c # 统计重复行出现的次数
    wc -l # 统计行数
    tr -s" " "%" # 将重复的空格列合并成一个,并已%替换
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    1. 总结Linux各版本安装

    2. 使用命令帮助找到用户添加命令的,-s, -m, -C, -d, -M选项的含义,并使用测试用户证明选项生效。

    useradd --help 或man useradd
    -s: 指定用户默认的shell终端(如果不指定,则默认取/etc/default/useradd文件中的SHELL指)
    -d: 指定用户的家目录
    -m: 命令执行时创建用户的家目录
    -M: 命令执行时不创建用户的家目录

    举例:

    #不创建家目录
    root@node01:~/data/magedu# useradd -d /home/guest -s /bin/bash -M guest
    root@node01:~/data/magedu# su - guest
    su: warning: cannot change directory to /home/guest: No such file or directory
    guest@node01:/root/data/magedu$

    #创建家目录
    root@node01:~/data/magedu# useradd -d /home/guest -s /bin/bash -m guest
    root@node01:~/data/magedu# su - guest
    guest@node01:~$ pwd
    /home/guest

    第二周作业

    1. 总结vim的三种模式切换,配置vimrc实现写脚本自动生成注释。
    # ~/.vimrc脚本
    syntax on
    set nu
    set ts=4
    set expandtab
    set shiftwidth=4
    autocmd BufNewFile *.sh exec ":call SetTitle()"
    func SetTitle()
            if expand("%:e") == 'sh'
            call setline(1, "#!/bin/bash")
            call setline(2, "#")
            call setline(3, "#***********************************")
            call setline(4, "#Author:       fgk")
            call setline(5, "#Mail:         fkg@126.com")
            call setline(6, "#")
            call setline(7, "#Date:         ".strftime("%Y-%m-%d"))
            call setline(8, "#FileName:     ".expand("%"))
            call setline(9, "#Descrption:   The test script")
            call setline(10, "#***********************************")
            call setline(11, "")
            endif
    endfunc
    autocmd BufNewFile * normal G
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    1. 使用grep/sed实现获取/etc/sysconfig/network-script/ifcfg-eth0目录的/etc/sysconfig/network-script/。或获取目录的ifcfg-eth0

    我的服务器没有此目录,自由发挥(取出ifconfig命令中本机的ipv4地址)

    ifconfig | grep -E "inet " | sed -nr ‘s/.inet (.) netmask.*/\1/p’
    172.20.0.1
    172.17.0.1
    172.18.0.1
    192.168.0.190
    127.0.0.1

    1. 完成编程题,可以让用户选择当前主机的所有网卡,选中网卡后,获取ip,网段,掩码。通过ping命令检测在线的主机,打印在线的主机,写入一个文件中。当ip的结尾是奇数时,在目标主机或当前主机,批量添加user1到user100用户,否则添加group1到group100,并生成对应的用户user1到user100,让用户的过期时间在1天之后。
    #!/bin/bash
    #
    #***********************************
    #Author:        fengguangke
    #Mail:          fengguangke2010@126.com
    #
    #Date:          2022-09-12
    #FileName:      chooseNetCardAndCreateUser.sh
    #Descrption:    The test script
    #***********************************
    ifconfig | grep flags= | cut -d: -f1 | cat
    read -p "请选个一个网卡:" NETCARD
    IP=`ifconfig ${NETCARD} | sed -nr 's/.*inet (.*) netmask.*/\1/p'`
    NETMASK=`ifconfig ${NETCARD} | sed -nr 's/.*netmask (.*) broadcast.*/\1/p'`
    echo "IP: ${IP}, NETMASK: ${NETMASK}"
    LAST_NUM=`echo ${IP} |cut -d. -f4`
    if [ $[${LAST_NUM}%2] -eq 1 ]; then
        echo user{1..100} | xargs -n1 useradd -e `date +%F -d +1day` 
    else
        for i in {1..100}
        do
            groupadd group$i -e `date +%F -d +1day` &>/dev/null
            useradd user$i -g group$i -e `date +%F -d +1day` &>/dev/null
        done
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
  • 相关阅读:
    遥感图像云检测数据集CHLandsat8
    GBase8s数据库INTO EXTERNAL 子句
    Linux 操作技巧
    DBeaver连接本地MySQL
    智云通CRM:客户说“手头紧”,如何应对才能让他下定决心购买?
    HackMyVM-Alzheimer
    【布里渊现象】光纤布里渊温度和应变分布同时测量系统研究
    数组与链表算法-单向链表算法
    记 QT => ubuntu下QT可编译通过不可以运行图形界面
    【Redis】3.详解分布式锁
  • 原文地址:https://blog.csdn.net/fengguangke/article/details/126816913