第 1 题 :请执行命令取出 linux 中 eth0 的 IP 地址 请用 cut ,有能力者也可分别用 awk,sed 命令答
    思路
    1.定位 取出第 2 行
    2.取出你要的 ip 地址
    方法一:awk命令

    1. [root@oldboyedu ~]# ifconfig eth0
    2. eth0 Link encap:Ethernet HWaddr 00:0C:29:77:33:68
    3. inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
    4. inet6 addr: fe80::20c:29ff:fe77:3368/64 Scope:Link
    5. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    6. RX packets:32664 errors:0 dropped:0 overruns:0 frame:0
    7. TX packets:18889 errors:0 dropped:0 overruns:0 carrier:0
    8. collisions:0 txqueuelen:1000
    9. RX bytes:17086125 (16.2 MiB) TX bytes:2316079 (2.2 MiB)
    10. # 取出第 2 行
    11. [root@oldboyedu ~]# ifconfig eth0|awk NR==2
    12. inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
    13. [root@oldboyedu ~]# ifconfig eth0|awk 'NR==2' |awk -F"[ :]" '{print$13}'
    14. 10.0.0.200
    15. # 理解连续出现 理解 []+
    16. [root@oldboyedu ~]# ifconfig eth0|awk 'NR==2' |awk -F"[ :]+" '{print$4}'
    17. 10.0.0.200
    18. # 最终结果
    19. [root@oldboyedu ~]# ifconfig eth0|awk -F"[ :]+" 'NR==2{print$4}'
    20. 10.0.0.200

    方法二:sed命令

    1. [root@oldboyedu ~]# ifconfig eth0|sed -n '2p'
    2. inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
    3. [root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*:##g'
    4. 255.255.255.0
    5. [root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*dr:##g'
    6. 10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
    7. # sed+sed+sed命令
    8. [root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*dr:##g'|sed 's# Bc.*$##g'
    9. 10.0.0.200
    10. # sed 命令的后向引用
    11. #原则 先把你想 要的内容保护起来,然后在后面使用
    12. [root@oldboyedu ~]# ifconfig eth0| sed -n '2p'
    13. inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
    14. [root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*dr:##g'
    15. 10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
    16. [root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*dr:(.*) Bc.*$##g'
    17. inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
    18. [root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed -r 's#^.*dr:(.*) Bc.*$#\1#g'
    19. 10.0.0.200
    20. # 注:\1为子串匹配标记,对于匹配到的第一个子串就标记为 \1,依此类推匹配到的第二个结果就是 \2
    21. # echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'
    22. # this is 7 in a numbe
    23. # 命令中 digit 7,被替换成了 7。样式匹配到的子串是 7,\(..\) 用于匹配子串,对于匹配到的第一个子串就标
    24. # 记为 \1,依此类推匹配到的第二个结果就是 \2
    25. # sed命令最终版:
    26. [root@oldboyedu ~]# ifconfig eth0| sed -nr '2s#^.*dr:(.*) Bc.*$#\1#gp'
    27. 10.0.0.200

    第 2 题:如何取得 /etc/hosts 文件的权限对应的数字内容,如 -rw-r—r— 为 644 ,要求使用命令取得 644 或 0644 这样的数字。
    注:stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。

    1. [root@oldboyedu ~]# stat /etc/hosts
    2. File: `/etc/hosts'
    3. Size: 158 Blocks: 8 IO Block: 4096 regular file
    4. Device: 803h/2051d Inode: 915740 Links: 2
    5. Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
    6. Access: 2020-04-12 00:34:31.008987157 +0800
    7. Modify: 2020-03-25 12:28:25.139302810 +0800
    8. Change: 2020-03-25 12:28:25.139302810 +0800
    9. # 方法 1 awk
    10. [root@oldboyedu ~]# stat /etc/hosts|awk -F '[(/]' 'NR==4{print$2}'
    11. 0644
    12. # 方法 2 sed
    13. [root@oldboyedu ~]# stat /etc/hosts|sed -nr '4s#^.*\(([0-9]+).*$#\1#gp'
    14. 0644
    15. # 方法 3 stat 命令的参数
    16. [root@oldboyedu ~]# stat -c%a /etc/hosts
    17. 644

    第 3 题:如何把文件中的空行过滤掉?

    1. # 文件内容
    2. [root@oldboyedu oldboy]# cat test.txt
    3. oldboy
    4. xizi
    5. xiaochao
    6. # 方法一 :grep
    7. [root@oldboyedu oldboy]# grep -v '^$' test.txt
    8. oldboy
    9. xizi
    10. xiaochao
    11. # 方法二,awk
    12. [root@oldboyedu oldboy]# awk '/^$/' test.txt # 取出空行。
    13. [root@oldboyedu oldboy]# awk '!/^$/' test.txt # 不要空行。!是取反的意思。
    14. oldboy
    15. xizi
    16. xiaochao
    17. # 方法 3 sed 删除
    18. [root@oldboyedu oldboy]# sed '/^$/d' test.txt
    19. oldboy
    20. xizi
    21. xiaochao

    第 4 题:请用grep、egrep正则匹配的方式匹配出前两行。

    1. # 文件内容
    2. [root@oldboyedu oldboy]# cat ett.txt
    3. oldboy
    4. olldboooy
    5. test
    6. # 方法一:egrep
    7. [root@oldboyedu oldboy]# egrep 'o+y' ett.txt
    8. oldboy
    9. olldboooy
    10. # 方法二:awk
    11. [root@oldboyedu oldboy]# awk '/o+y/' ett.txt
    12. oldboy
    13. olldboooy
    14. # 方法 3 sed
    15. [root@oldboyedu oldboy]# sed -nr '/o+y/p' ett.txt
    16. oldboy
    17. olldboooy

    小结:
    1.sed awk
    如何实现过滤类似 grep/egrep
    2.awk定位的方法
    awk ‘NR==1’
    awk ‘NR==1,NR==10’ # 第一到十行。
    awk ‘//‘
    3.sed定位
    sed -n ‘1p’
    sed -n ‘1,10p’
    sed -n ‘10,$p’
    sed -n ‘//p’

    第 5 题 :linux 下 通过 mkdir 命令创建一个新目录 /alexdir alexdir 的硬链接数是多少,为什么?
    然后在 alexdir 下面又创建了一个目录 /alexdir/ 问alexdir 的硬链接数量是多少?
    图片.png

    第 6 题 请给出默认情况 eth0 网卡配置文件的路径及客户端 DNS 的路径。
    /etc/sysconfig/network scripts/ifcfg eth0
    配置 系统配置 网络 脚本 /if(c f g )eth0
    DNS 的配置
    1./etc/resolv.conf
    2. 网卡配置文件
    3. 网卡配置文件里面的 DNS 优先

    第 7 题:查找当前目录下所有文件,并把文件中的 www.etiantian.org 字符串替换成 www.oldboyedu.com
    假设现在在 /oldboy
    find /oldboy type f name “*.txt”

    1. 方法 1
    2. find /oldboy -type f -name "*.txt"|xargs sed 's#www.etiantian.org#www.oldboyedu.com#'
    3. 方法 2 (与第一种一样,只是加入$()后命令反过来)
    4. sed 's#www.etiantian.org#www.oldboyedu.com#g' $(find /oldboy -type f -name "*.txt")
    5. 方法 3
    6. find /oldboy -type f -name "*.txt" -exec ls -l {}

    第 2.8 题: 请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。
    echo “oldboy”;echo “oldboy”
    ; ====
    分号表示分隔多条命令
    ls;pwd;hello

    1. [root@oldboyedu01nb ~]# echo -n "oldboy";echo "oldboy"
    2. oldboyoldboy
    3. [root@oldboyedu01nb ~]# # n 表示取消输出每一行结尾的换行符号
    4. [root@oldboyedu01
    5. nb ~]# echo -e "a nb"
    6. a
    7. b
    8. [root@oldboyedu01
    9. nb ~]# echo -e "a nb n tc" >echo.txt
    10. [root@oldboyedu01
    11. nb ~]# cat echo.txt
    12. a
    13. b
    14. c
    15. [root@oldboyedu01 nb ~]# cat -A echo.txt
    16. a$
    17. b$
    18. ^Ic$

    第 2.9 题:请给出如下格式的 date 命令。例:11 02 26 。
    再给出实现按周输出比如:周六输出为 6 ,请分别给出命令。

    1. [root@oldboyedu ~]# date +%F
    2. 2020-04-12
    3. [root@oldboyedu ~]# date +%Y-%m-%d
    4. 2020-04-12
    5. [root@oldboyedu ~]# date +%w
    6. 0 # 周末默认是0,周一是1。
    7. # 显示当前的日期以年-月-日_周几
    8. [root@oldboyedu ~]# date +%F_%w
    9. 2020-04-12_0
    10. [root@oldboyedu ~]# date +%T
    11. 02:02:53

    date命令按照格式显示日期小结
    1.date +格式
    2.%F %Y—%m —%d 年 月 日
    %T %H:%M:%S 时 分 秒
    %w 周几
    3.查看都有哪些命令:[root@oldboyedu ~]# man date

    1. [root@oldboyedu ~]# date -d '+1day' # 一天之后的日期。
    2. Mon Apr 13 02:11:43 CST 2020
    3. [root@oldboyedu ~]# date -d '-1day' # 一天之前的日期。
    4. Sat Apr 11 02:11:48 CST 2020
    5. [root@oldboyedu ~]# date -d '-1day' +%F
    6. 2020-04-11
    7. [root@oldboyedu ~]# date -s "20200424 18:21:55" # 修改日期
    8. Fri Apr 24 18:21:55 CST 2020
    9. [root@oldboyedu ~]# date +%F
    10. 2020-04-24
    11. [root@oldboyedu ~]# date -s "1hour" # 调整时间到一小时之后。
    12. Fri Apr 24 19:25:00 CST 2020
    13. [root@oldboyedu ~]# date -s "-1hour" # 调整时间到一小时之前。
    14. Fri Apr 24 18:25:04 CST 2020

    自动修改系统时间
    时间服务器
    pool.ntp.org
    ntp1.aliyun.com
    ntpdate pool.ntp.org

    1. [root@oldboyedu ~]# ntpdate pool.ntp.org # 自动修改时间设置成功。
    2. 24 Apr 18:28:10 ntpdate[29874]: step time server 199.182.204.197 offset -40.386441 sec
    3. [root@oldboyedu ~]# date +%F # 查看当前时间
    4. 2020-04-24

    2.11问题:【 Centos 5.x 】 当从 root 用户切到普通用户 oldboy 时,执行ifconfig 会提示。
    command not found.
    1.Linux运行命令过程
    输入命令、linux会在 PATH 里面进行查找、运行、报错
    2.PATH环境变量
    图片.png

    第 12 题 :请描述下列路径的内容是做什么的?
    图片.png

    第 13 题 如何快速查到 ifconfig 的全路径,请给出命令。

    1. 方法 1 which ( PATH 环境变量
    2. [root@oldboyedu ~]# which ifconfig
    3. /sbin/ifconfig
    4. [root@oldboyedu ~]# which sed
    5. /bin/sed
    6. 方法 2 find
    7. [root@oldboyedu ~]# find / -type f -name 'sed'
    8. /bin/sed
    9. 方法 3 whereis 找出命令相关的 帮助 man
    10. [root@oldboyedu ~]# whereis sed
    11. sed: /bin/sed /usr/share/man/man1/sed.1.gz /usr/share/man/man1p/sed.1p.gz
    12. [root@oldboyedu ~]# whereis -b sed
    13. sed: /bin/sed
    14. 方法 4 locate 根据名字 找出文件的路径
    15. 文件名字与文件路径表格 数据库
    16. [root@oldboyedu ~]# locate oldboy.txt
    17. /oldboy/oldboy.txt
    18. /root/data/oldboy.txt.bak

    第 14 题 请给出 查看当前哪些用户在线的 linux 命令。
    用户在线==========远程连接 到服务器的用户
    远程登录的用户======通过 xshell 或 SecureCRT 连接服务器

    方法 1 w
    [root@oldboyedu ~]# w
     19:13:03 up 1 day, 13:17,  5 users,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1     -                25Mar20 30days  0.04s  0.04s -bash
    root     pts/0    10.0.0.1         12Apr20 44:23   0.17s  0.17s -bash
    root     pts/1    10.0.0.1         18:54    0.00s  0.23s  0.00s w
    root     pts/2    10.0.0.1         19:12   32.00s  0.06s  0.06s -bash
    root     pts/3    10.0.0.1         12Apr20 12days  0.36s  0.36s -bash
    远程登录的用户        从哪里登录的         什么时候连接入系统        这个用户在做什么        
    系统的负载------系统繁忙程度:如果负载接近 服务 cpu 的核心总数
    
    
    方法 2 last 谁在什么时间连接到系统 连接了多久
    
    
    方法 3 lastlog 显示系统中所有用户的最近一次的登录信息
    

    第 15 题 :请给出正确的关机和重 起服务器的命令。
    重启

    init 6            # 尽量少用
    reboot
    
    shutdown -r 1        # 系统将在一分钟后重启。
    shutdown -r now ===== reboot
    shutdown -c            # 取消重启。或者按ctrl+c也可以。
    
    关机
    init 0
    poweroff
    halt             # 需要手动关闭电源
    shutdown -h 1    # 系统将在一分钟后关机
    shutdown -h now
    

    2.16:请写出下面 linux 命令行快捷键的功能?

    • Ctrl + a 把光标移动到《行首》

    Ctrl + e 把光标移动到《行尾》
    Ctrl + c 取消 当前的操作 cancel
    Ctrl + d logout命令(当前行没有任何内容,退出当前用户)
    Ctrl + l (小写字母 L 清除屏幕内容 clear
    Ctrl + u 剪切光标所在位置到行首的内容
    Ctrl + k 剪切光标所在位置到行尾的内容
    ctrl + y 粘贴
    ctrl + → 把光标向右移动一个单词
    ctrl + ← 把光标向左移动一个单词
    Ctrl + r search 搜索历史命令 ,继续搜索
    history |grep awk

    • linux快捷键练习

    命令行输入 oldboyedu
    然后让光标移动到行首 加上注释符号和 I am studying
    然后让光标移动到行尾,加上 linux.site:www.oldboyedu.com;
    剪切,这一行内容。
    粘贴 3 次。

    2.17 vi/vim快捷键初级
    移动光标:
    ↑k
    ←h →l
    ↓j
    两边左右 hl 中间是上下
    移动到文件的第一行 gg :1 1G
    移动到文件的最后一行 G :$
    快速到达文件的第100 行 100gg 100G :100
    移动光标到行首 0 ^
    移动光标到行尾 $

    编辑
    在当前行下一行插入一个空行并进入到编辑模式 o( 小写字母 O)
    剪切光标所在位置到行尾的内容,然后进入编辑模式 C( 大写字母 C)
    删除当前行的内容到行尾 dG
    撤销上一次的操作 u
    恢复上一次的操作 ctrl+r

    复制粘贴剪切:
    删除光标所在位置的内容到行尾D
    复制当前行 yy
    剪切
    删除 当前行 dd
    粘贴 p

    搜索:
    /你要找的内容 继续向下搜索 n 继续向上搜索 N

    vim查询帮助
    :h :wq
    :h G