笔试上机部分:
2.1请执行命令取出linux中eth0的IP地址(请用cut,有能力着也可分别用awk,sed命令)
思路:
1.定位-取出第二行
2.取出你要的ip地址
方法1-awk+awk+awk方法:
[root@hkping oldboy]# ifconfig eth0 | awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@hkping oldboy]# ifconfig eth0 | awk 'NR==2' | awk '{print $2}' | awk -F ':' '{print $2}'
10.0.0.200
方法2-awk+awk方法:
[root@hkping oldboy]# ifconfig eth0 | awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@hkping oldboy]# ifconfig eth0 | awk 'NR==2' | awk -F "[: ]" '{print $13}'
10.0.0.200
[root@hkping oldboy]# ifconfig eth0 | awk 'NR==2' | awk -F "[: ]+" '{print $4}'
10.0.0.200
方法3-awk
#预备姿势—通过awk取出 ifconfig eth0结果中的 第二行的第二列
[root@hkping ~]# ifconfig eth0 | awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@hkping ~]# ifconfig eth0 | awk 'NR==2' | awk '{print $2}'
addr:10.0.0.200
awk ‘找谁{干啥}’
#最终结果
[root@hkping ~]# ifconfig eth0 | awk -F "[: ]+" 'NR==2{print $4}'
10.0.0.200
方法4:sed+sed+sed
[root@hkping ~]# ifconfig eth0|sed -n "2p"|sed 's#^.*dr:##g'|sed 's# Bc.*$##g'
10.0.0.200
方法5:sed后向引用
#原则—先把你要的内容保护起来,然后在后面使用
[root@hkping ~]# ifconfig eth0|sed -n "2p"|sed -r 's#^.*dr:(.*) Bc.*$#\1#g'
10.0.0.200
方法6:
#预备姿势—ifconfig eth0第二行的inet替换为oldboy
理解:
1.1235方法
2.了解6
3.awk指定多个连续的分隔符,sed的反向引用
第2题:
#如何取得/etc/hosts文件的权限对应的数字内容,如-rw-r--r--为644,要求使用命令取得644或者8644这样的数字。
方法1:awk
stat /etc/hosts|awk -F "[(/]" 'NR==4 {print $2}'
0644
方法2:sed
stat /etc/hosts|sed -nr '4s#^.*\(([0-9]+).*$#\1#gp'
0644
方法3:stat命令的参数
[root@hkping ~]# stat -c%a /etc/hosts
644
小结:
1.sed awk的方法 awk方法指定分隔符
2.3 已知/oldboy/test.txt文件内容为
oldboy
xizi
xiaochao
请问如何把文件中的空行过滤掉(要求命令行事项)
方法1:grep
[root@hkping oldboy]# grep -v "^$" oldboy2.txt -v表示排除 ^$表示空行
oldboy
xizi
xiaochao
方法2:awk
[root@hkping oldboy]# awk '!/^$/' oldboy2.txt !表示不要 //表示awk查找
oldboy
xizi
xiaochao
方法3:sed
[root@hkping oldboy]# sed '/^$/d' oldboy2.txt d表示删除
oldboy
xizi
xiaochao
小结:
1.通过awk sed表示排除
2.awk !
3.sed d
2.4 ett.txt过滤
oldboy
olldboooy
test
#如何通过sed awk实现过滤 ===grep/egrep
#egrep 'ol+dbo+y' ett.txt
oldboy
olldboooy
[root@hkping oldboy]# sed -nr '/ol+dbo+y/p' ett.txt
oldboy
olldboooy
# awk '/ol+dbo+y/' ett.txt
oldboy
olldboooy
小结:
1.sed awk如何实现过滤类似于grep/egrep
2.awk定位的方法
# awk 'NR==1' ett.txt
# awk 'NR==1,NR==10' ett.txt
#awk '//'
3.sed定位
sed -n '1p'
sed -n '1,10p'
sed -n '//p’
2.5linux下通过mkdir命令创建一个新目录/oldboy/ett.txt ett的硬链接数是多少,为什么?
2.6请给出默认情况eth0网卡配置文件的路径及客户端DNS的路径。
/etc/sysconfig/network-scripts/ifcfg-eth0
/配置/系统配置/网络-脚本/if(c f g)-eth0
DNS的配置
1./etc/resolv.conf
2.网卡配置文件
3.网卡配置文件里面的DNS优先
2.7找出当前目录下所有文件,并把文件中的www.etiantian.org字符串替换为www.oldboyedu.com
假设现在在/oldboy
方法1:
find /oldboy -type f -name "*.txt"|sed ''|xargs sed 's#www.etiantian.org#www.oldboyedu.com#g'
方法2:
#预备姿势
ls -l `which mkdir`
-rwxr-xr-x. 1 root root 50056 Mar 23 2017 /bin/mkdir
#最终结果
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;pwd
# echo -n "oldboy";echo "oldboy" -n取消每行结尾的换行符号
[root@hkping ~]# date
Mon Jan 1 17:59:26 CST 2018
# date +%F
2018-01-01
# date +%w
1
# date +%T
18:05:57
date命令安装格式显示日期小结:
1.date +格式
2.%F %Y-%m-%d 年-月-日
%T %H:%M:%S 时:分:秒
%w 周几
按照说明显示日期
[root@hkping ~]# date -d "1day"
Tue Jan 2 18:12:14 CST 2018
[root@hkping ~]# date -d "-1day"
Sun Dec 31 18:12:17 CST 2017
#显示七天前的时间日期格式年-月-日_周几
# date -d "-7day" +%F_%w
2017-12-25_1
修改日期-慎用
data -s "20181111"
自动修改系统时间
时间服务器
pool.ntp.org
ntp1.aliyun.com
# ntpdate pool.ntp.org
2.11centos5.x,当从root用户切换到普通用户oldboy时,执行ifconfig会提示:command not found
PATH环境变量的
1.linux运行命令过程
输入命令
linux会在path里面进行查找
运行
报错
修改PATH环境变量
##临时
#export /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
##永久
把环境变量配置命令追加到/etc/profile中
export /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
#生效
# source /etc/profile
小结:
1.什么是PATH环境变量
2.如何修改PATH环境变量
2.12 请描述下列路径的内容是做什么?
/var/log/messages 系统默认日志
/var/log/secure 用户的登录信息
/etc/fstab linux开机的时候自动挂载的列表 开机的时候每个磁盘分区对应着什么入口
/etc/profile 配置环境变量和别名
/var/spool/cron/root 定时任务的配置文件
/etc/hosts 解析主机名
/etc/hosts 主机名----->ip地址
DNS解析 域名--->ip过程
2.13如何快速查到 ifconfig 的全路径,请给出命令。
方法1:which 在PATH环境变量中找
# which ifconfig
/sbin/ifconfig
方法2:find
# find / -type f -name "ifconfig"
/sbin/ifconfig
方法3:whereis 找出命令相关的 帮助 man
# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
方法4:locate 根据名字 找出文件路径
2.14 请给出查看当前哪些用户在线的linux命令。
用户在线=====远程连接到服务器的用户
远程登录的用户=====通过xshell与SecureCRT连接服务器
方法1:w命令
# w
22:42:58 up 6:05, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 10.0.0.1 17:50 0.00s 0.06s 0.00s w
远程登录的用户 从哪里登录 什么时候进入系统 这个用户在做什么
系统的负载----系统的繁忙程度
如果负载接近-服务cpu的核心总数
方法2:last 谁在什么时间连接到系统 连接了多久
方法3:lastlog 显示系统中所有用户最近一次的登录信息
2.15 请给出正确的关机和重起服务器命令
##重启
1.init 6
2.shutdown -r 1 一分钟后重启
shutdown -r now reboot
shutdown -c 取消重启
##关机
1.init 0
2.poweoff
3.halt #需要手动关闭电源
4.shutdown -h 1
shutdown -h now
2.16 请写出下面linux命令行快捷键 的功能?
ctrl + a 移动到行首
ctrl + e 移动到行尾
ctrl + c 取消当前操作
ctrl + d logout命令
ctrl + l 清除屏幕内容clear
ctrl + u 剪贴光标所在位置到行首的内容
clrl + k 剪贴光标所在位置到行尾的内容
ctrl + y 粘贴
ctrl + → 把光标移动到下一个单词
ctrl + ← 把光标移动到上一个单词
history|grep awk
ctrl + r 搜索历史命令,继续搜索
2.17vi /vim快捷键
移动光标:
移动到文件的第一行 gg
移动到文件的最后一行 G
移动到文件第100行 100gg
移动光标到行首 0 ^
移动光标到行尾 $
搜索
/你要搜索的内容 继续向下搜索n 继续向上搜索N
vim查询帮助