第 1 题 :请执行命令取出 linux 中 eth0 的 IP 地址 请用 cut ,有能力者也可分别用 awk,sed 命令答
思路
1.定位 取出第 2 行
2.取出你要的 ip 地址
方法一:awk命令
[root@oldboyedu ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:77:33:68
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe77:3368/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32664 errors:0 dropped:0 overruns:0 frame:0
TX packets:18889 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17086125 (16.2 MiB) TX bytes:2316079 (2.2 MiB)
# 取出第 2 行
[root@oldboyedu ~]# ifconfig eth0|awk NR==2
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu ~]# ifconfig eth0|awk 'NR==2' |awk -F"[ :]" '{print$13}'
10.0.0.200
# 理解连续出现 理解 []+
[root@oldboyedu ~]# ifconfig eth0|awk 'NR==2' |awk -F"[ :]+" '{print$4}'
10.0.0.200
# 最终结果
[root@oldboyedu ~]# ifconfig eth0|awk -F"[ :]+" 'NR==2{print$4}'
10.0.0.200
方法二:sed命令
[root@oldboyedu ~]# ifconfig eth0|sed -n '2p'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*:##g'
255.255.255.0
[root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*dr:##g'
10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
# sed+sed+sed命令
[root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*dr:##g'|sed 's# Bc.*$##g'
10.0.0.200
# sed 命令的后向引用
#原则 先把你想 要的内容保护起来,然后在后面使用
[root@oldboyedu ~]# ifconfig eth0| sed -n '2p'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*dr:##g'
10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed 's#^.*dr:(.*) Bc.*$##g'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu ~]# ifconfig eth0| sed -n '2p'|sed -r 's#^.*dr:(.*) Bc.*$#\1#g'
10.0.0.200
# 注:\1为子串匹配标记,对于匹配到的第一个子串就标记为 \1,依此类推匹配到的第二个结果就是 \2
# echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'
# this is 7 in a numbe
# 命令中 digit 7,被替换成了 7。样式匹配到的子串是 7,\(..\) 用于匹配子串,对于匹配到的第一个子串就标
# 记为 \1,依此类推匹配到的第二个结果就是 \2
# sed命令最终版:
[root@oldboyedu ~]# ifconfig eth0| sed -nr '2s#^.*dr:(.*) Bc.*$#\1#gp'
10.0.0.200
第 2 题:如何取得 /etc/hosts 文件的权限对应的数字内容,如 -rw-r—r— 为 644 ,要求使用命令取得 644 或 0644 这样的数字。
注:stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。
[root@oldboyedu ~]# stat /etc/hosts
File: `/etc/hosts'
Size: 158 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 915740 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-04-12 00:34:31.008987157 +0800
Modify: 2020-03-25 12:28:25.139302810 +0800
Change: 2020-03-25 12:28:25.139302810 +0800
# 方法 1 awk
[root@oldboyedu ~]# stat /etc/hosts|awk -F '[(/]' 'NR==4{print$2}'
0644
# 方法 2 sed
[root@oldboyedu ~]# stat /etc/hosts|sed -nr '4s#^.*\(([0-9]+).*$#\1#gp'
0644
# 方法 3 stat 命令的参数
[root@oldboyedu ~]# stat -c%a /etc/hosts
644
第 3 题:如何把文件中的空行过滤掉?
# 文件内容
[root@oldboyedu oldboy]# cat test.txt
oldboy
xizi
xiaochao
# 方法一 :grep
[root@oldboyedu oldboy]# grep -v '^$' test.txt
oldboy
xizi
xiaochao
# 方法二,awk
[root@oldboyedu oldboy]# awk '/^$/' test.txt # 取出空行。
[root@oldboyedu oldboy]# awk '!/^$/' test.txt # 不要空行。!是取反的意思。
oldboy
xizi
xiaochao
# 方法 3 sed 删除
[root@oldboyedu oldboy]# sed '/^$/d' test.txt
oldboy
xizi
xiaochao
第 4 题:请用grep、egrep正则匹配的方式匹配出前两行。
# 文件内容
[root@oldboyedu oldboy]# cat ett.txt
oldboy
olldboooy
test
# 方法一:egrep
[root@oldboyedu oldboy]# egrep 'o+y' ett.txt
oldboy
olldboooy
# 方法二:awk
[root@oldboyedu oldboy]# awk '/o+y/' ett.txt
oldboy
olldboooy
# 方法 3 sed
[root@oldboyedu oldboy]# sed -nr '/o+y/p' ett.txt
oldboy
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 的硬链接数量是多少?
第 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
find /oldboy -type f -name "*.txt"|xargs sed 's#www.etiantian.org#www.oldboyedu.com#'
方法 2 (与第一种一样,只是加入$()后命令反过来)
sed 's#www.etiantian.org#www.oldboyedu.com#g' $(find /oldboy -type f -name "*.txt")
方法 3
find /oldboy -type f -name "*.txt" -exec ls -l {}
第 2.8 题: 请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。
echo “oldboy”;echo “oldboy”
; ====
分号表示分隔多条命令
ls;pwd;hello
[root@oldboyedu01nb ~]# echo -n "oldboy";echo "oldboy"
oldboyoldboy
[root@oldboyedu01nb ~]# # n 表示取消输出每一行结尾的换行符号
[root@oldboyedu01
nb ~]# echo -e "a nb"
a
b
[root@oldboyedu01
nb ~]# echo -e "a nb n tc" >echo.txt
[root@oldboyedu01
nb ~]# cat echo.txt
a
b
c
[root@oldboyedu01 nb ~]# cat -A echo.txt
a$
b$
^Ic$
第 2.9 题:请给出如下格式的 date 命令。例:11 02 26 。
再给出实现按周输出比如:周六输出为 6 ,请分别给出命令。
[root@oldboyedu ~]# date +%F
2020-04-12
[root@oldboyedu ~]# date +%Y-%m-%d
2020-04-12
[root@oldboyedu ~]# date +%w
0 # 周末默认是0,周一是1。
# 显示当前的日期以年-月-日_周几
[root@oldboyedu ~]# date +%F_%w
2020-04-12_0
[root@oldboyedu ~]# date +%T
02:02:53
date命令按照格式显示日期小结
1.date +格式
2.%F %Y—%m —%d 年 月 日
%T %H:%M:%S 时 分 秒
%w 周几
3.查看都有哪些命令:[root@oldboyedu ~]# man date
[root@oldboyedu ~]# date -d '+1day' # 一天之后的日期。
Mon Apr 13 02:11:43 CST 2020
[root@oldboyedu ~]# date -d '-1day' # 一天之前的日期。
Sat Apr 11 02:11:48 CST 2020
[root@oldboyedu ~]# date -d '-1day' +%F
2020-04-11
[root@oldboyedu ~]# date -s "20200424 18:21:55" # 修改日期
Fri Apr 24 18:21:55 CST 2020
[root@oldboyedu ~]# date +%F
2020-04-24
[root@oldboyedu ~]# date -s "1hour" # 调整时间到一小时之后。
Fri Apr 24 19:25:00 CST 2020
[root@oldboyedu ~]# date -s "-1hour" # 调整时间到一小时之前。
Fri Apr 24 18:25:04 CST 2020
自动修改系统时间
时间服务器
pool.ntp.org
ntp1.aliyun.com
ntpdate pool.ntp.org
[root@oldboyedu ~]# ntpdate pool.ntp.org # 自动修改时间设置成功。
24 Apr 18:28:10 ntpdate[29874]: step time server 199.182.204.197 offset -40.386441 sec
[root@oldboyedu ~]# date +%F # 查看当前时间
2020-04-24
2.11问题:【 Centos 5.x 】 当从 root 用户切到普通用户 oldboy 时,执行ifconfig 会提示。
command not found.
1.Linux运行命令过程
输入命令、linux会在 PATH 里面进行查找、运行、报错
2.PATH环境变量
第 12 题 :请描述下列路径的内容是做什么的?
第 13 题 如何快速查到 ifconfig 的全路径,请给出命令。
方法 1 which ( 在 PATH 环境变量
[root@oldboyedu ~]# which ifconfig
/sbin/ifconfig
[root@oldboyedu ~]# which sed
/bin/sed
方法 2 find
[root@oldboyedu ~]# find / -type f -name 'sed'
/bin/sed
方法 3 whereis 找出命令相关的 帮助 man
[root@oldboyedu ~]# whereis sed
sed: /bin/sed /usr/share/man/man1/sed.1.gz /usr/share/man/man1p/sed.1p.gz
[root@oldboyedu ~]# whereis -b sed
sed: /bin/sed
方法 4 locate 根据名字 找出文件的路径
文件名字与文件路径表格 数据库
[root@oldboyedu ~]# locate oldboy.txt
/oldboy/oldboy.txt
/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