linux - 练习题 - 07
一、请执行命令取出 linux 中 eth0 的 IP 地址
方法一:awk + awk + awk
[root@oldboyedu01 ~]# ifconfig eth0 |awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu01 ~]# ifconfig eth0 |awk 'NR==2' |awk '{print $2}' |awk -F":" '{print $2}'
10.0.0.200
方法二:awk + awk
[root@oldboyedu01 ~]# ifconfig eth0 |awk 'NR==2' |awk -F "[: ]" '{print $13}'
10.0.0.200
[root@oldboyedu01 ~]# ifconfig eth0 |awk 'NR==2' |awk -F "[: ]+" '{print $4}'
10.0.0.200
[root@oldboyedu01 ~]# ifconfig eth0 |awk 'NR==2' |awk '{print $2}'
addr:10.0.0.200
方法三:awk
[root@oldboyedu01 ~]# ifconfig eth0 |awk 'NR==2{print $2}'
addr:10.0.0.200
[root@oldboyedu01 ~]# ifconfig eth0 |awk -F "[: ]+" 'NR==2{print $4}'
10.0.0.200
方法四:sed + sed + sed
[root@oldboyedu01 ~]# ifconfig eth0 |sed -n '2p' |sed 's#^.*addr:##g' |sed 's# Bc.*$##g'
10.0.0.200
方法五:sed + sed + \1 sed命令的后向引用
[root@oldboyedu01 ~]# ifconfig eth0 |sed -n '2p' |sed -r 's#^.*dr:(.*) Bc.*$#\1#g'
10.0.0.200
方法六:sed + \1
[root@oldboyedu01 ~]# ifconfig eth0 |sed -n '2s#inet#oldboy#gp' # 了解,替换
oldboy addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu01 ~]# ifconfig eth0 |sed -nr '2s#^.*dr:(.*) Bc.*$#\1#gp'
10.0.0.200
小结:
1.理解第 2 3 5 方法
2.了解6
3.awk指定多个连续的分隔符,sed的方向引用
二、如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644,要求 使用命令取得 644 或 0644 这样的数字
方法一:awk
[root@alice-01 data]# stat /etc/hosts |awk 'NR==4'
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
[root@alice-01 data]# stat /etc/hosts |awk -F "[(/]" 'NR==4{print $2}'
0644
方法二:sed
[root@alice-01 data]# stat /etc/hosts |sed -n '4p'
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
[root@alice-01 data]# stat /etc/hosts |sed -nr '4s#^.*\(([0-9]+).*#\1#gp'
0644
方法三:stat命令的参数
[root@alice-01 data]# stat -c%a /etc/hosts
644
小结:
1.sed反向引用
2.awk方法指定分隔符
三、已知 /oldboy/test.txt文件内容为,把文件内容的空行过滤掉
oldboy
xizi
xiaochao
方法一:grep
[root@alice-01 data]# cat test.txt
oldboy
xizi
xiaochao
[root@alice-01 data]# grep -v '^$' test.txt (-v 过滤)
oldboy
xizi
xiaochao
方法二:awk
[root@alice-01 data]# awk '!/^$/' test.txt
oldboy
xizi
xiaochao
方法三:sed
[root@alice-01 data]# sed '/^$/d' test.txt
oldboy
xizi
xiaochao
小结:
1.通awk sed表示排除
awk !
sed d
四、已知/oldboy/ett.txt 文件内容为: 请使用grep 或egrep 正则匹配的方式过滤出前两行的内容
oldboy
olldboooy
test
方法一:egrep
[root@alice-01 data]# egrep 'ol+dbo+y' ett.txt
oldboy
olldboooy
方法二:sed
[root@alice-01 data]# sed -nr '/ol+dbo+y/p' ett.txt
oldboy
olldboooy
方法三:awk
[root@alice-01 data]# awk '/ol+dbo+y/' 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'
五、 linux 下通过 mkdir 命令创建一个新目录/alexdir,alexdir 的硬链 接数是多少,为什么? 然后在 alexdir 下面又创建了一个目录 /alexdir/test,问 alexdir 的硬链接数量是多少?
硬链接数为2, alexdir/ alexdir/.
[root@alice-01 data]# ls -ld alexdir/
drwxr-xr-x. 2 root root 4096 Sep 12 20:20 alexdir/
[root@alice-01 data]# ls -ld alexdir/ alexdir/.
drwxr-xr-x. 2 root root 4096901011 Sep 12 20:16 alexdir/
drwxr-xr-x. 2 root root 4096 Sep 12 20:16 alexdir/.
硬链接数为3, alexdir/ alexdir/. alexdir/test/..
[root@alice-01 data]# ls -ld alexdir/
drwxr-xr-x. 3 root root 4096 Sep 12 20:20 alexdir/
[root@alice-01 data]# ls -lid alexdir alexdir/. alexdir/test/..
392661 drwxr-xr-x. 3 root root 4096 Sep 12 20:20 alexdir
392661 drwxr-xr-x. 3 root root 4096 Sep 12 20:20 alexdir/.
392661 drwxr-xr-x. 3 root root 4096 Sep 12 20:20 alexdir/test/..
六、 请给出默认情况 eth0 网卡配置文件的路径及客户端 DNS 的路径。
/etc/sysconfig/network-scripts/ifcfg-eth0
/配置/系统配置/网络-脚本/if(cfg)-eth0
DNS的配置
1./etc/resolv.conf
2.网卡配置文件
3.网卡配置文件里面的DNS优先
七、查找当前目录下所有文件,并把文件中的www.etiantian.org字符串替换成www.oldboyedu.com
假设现在在/oldboy
find /oldboy -type f -name "*.txt"
方法一、
find /oldboy -type f -name "*.txt"|xargs sed "s#www.etiantian.org#www.oldboyedu.com#g"
方法二、
[root@oldboyedu01 oldboy]# ls -l `which mkdir`
-rwxr-xr-x. 1 root root 50056 Mar 23 2017 /bin/mkdir
[root@oldboyedu01 oldboy]# 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")
方法三、
find /oldboy -type f -name "*.txt" -exec ls -l {} \;
八、请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出
echo "oldboy";echo "oldboy"
[root@alice-01 oldboy]# echo "oldboy";echo "oldboy"
oldboy
oldboy
[root@alice-01 oldboy]# echo -n "oldboy";echo "oldboy" # -n 取消输出每行结尾的回车
oldboyoldboy
[root@alice-01 oldboy]# echo "a\nb"
a\nb
[root@alice-01 oldboy]# echo -e "a\nb" # -e 让echo命令支持\n \t 转义字符
a
b
[root@alice-01 oldboy]# echo -e "a\nb\n\tc"
a
b
c
[root@alice-01 oldboy]# echo -e "a\nb\n\tc" >echo.txt
[root@alice-01 oldboy]# ls
echo.txt
[root@alice-01 oldboy]# cat echo.txt
a
b
c
[root@alice-01 oldboy]# cat -A echo.txt #
a$
b$
^Ic$
九、问题:请给出如下格式的data命令
例:11-02-26
在给出实现按周输出 比如:周六输出为6,请分别给出命令
[root@alice-01 oldboy]# date
Tue Oct 9 19:31:25 CST 2018
[root@alice-01 oldboy]# date +%F
2018-10-09
[root@alice-01 oldboy]# date +%Y-%m-%d
2018-10-09
[root@alice-01 oldboy]# date +%w
2
[root@alice-01 oldboy]# date +%F_%w
2018-10-09_2
[root@alice-01 oldboy]# date +%T
19:42:40
[root@alice-01 oldboy]# date +%H:%M:%S
19:42:59
十、问题:扩展问题:打印三天前的日期,格式如:2011-02-26 问题:扩展问题:打印三天前的日期,格式如:2011-02-26
按照说明显示日期
[root@alice-01 oldboy]# date -d '1day' +%F # 显示一天之后
2018-10-10
[root@alice-01 oldboy]# date -d '-1day' +%F # 显示一天之前
2018-10-06
[root@alice-01 oldboy]# date +%F_%w_%T -d "-7day"
2018-10-02_2_19:58:15
[root@alice-01 oldboy]# date -s "20111111 11:11:11" # 修改系统时间
Fri Nov 11 11:11:11 CST 2011
[root@alice-01 oldboy]# date -s "1hour"
Fri Nov 11 12:12:58 CST 2011
自动修改系统时间
时间服务器
date 小结:
%F %Y-%m-%d 年-月-日
%T %H:%M:%S 时 分 秒
%w 周几
-d "" 根据描述显示日期
-s "" 根据描述修改日期
ntpdate pool.ntp.org # 根据时间服务器自动修改系统时间
十一、centos5.x 当从root用户切到普通用户oldboy时,执行ifconfig会提示command not found
PATH环境变量
临时修改 export PATH=/app/mysql/bin:/usr/bin
永久修改: 把环境变量的配置命令追加到/etc/profile中
生效: source /etc/profile
linux会在PATH里面进行查找 运行 报错
[root@alice-01 data]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@alice-01 data]# export PATH=/usr/bin # 临时修改
[root@alice-01 data]# echo $PATH
/usr/bin
[root@alice-01 data]# ls
-bash: ls: command not found
小结:
什么是PATH环境变量
如何修改PATH 环境变量
十二、请描述下列路径的内容是做什么的?
/var/log/messages # 系统的默认的日志
/var/log/secure # 用户的登录信息
/etc/fstab # 开机的时候自动挂载列表 在开机的时候每个磁盘分区对应着什么入口的列表
/etc/profile # 配置环境变量 别名
/var/spool/cron/root # 定时任务的配置文件
/etc/hosts # 解析主机名
/etc/hosts 主机名----》ip地址
DNS解析 域名------》ip过程
十三、如何快速查到ifconfig的全路径,给出命令
方法1:which
[root@alice-01 data]# which mkdir
/bin/mkdir
[root@alice-01 data]# which sed
/bin/sed
方法2:find
[root@alice-01 data]# find / -type f -name "sed"
/bin/sed
[root@alice-01 data]# find / -type f -name "mkdir"
/bin/mkdir
方法3:whereis
[root@alice-01 data]# whereis awk
awk: /bin/awk /usr/bin/awk /usr/libexec/awk /usr/share/awk /usr/share/man/man1p/awk.1p.gz /usr/share/man/man1/awk.1.gz
[root@alice-01 data]# whereis -b ls
ls: /bin/ls
方法4: locate
根据名字找出文件的路径 文件名字与文件路径表格 数据库, updatedb 更新数据库的
[root@alice-01 data]# locate oldboy
/oldboy
十四、查看哪些用户在线的linux命令
用户在线---》远程连接到服务器的用户
远程登录的用户===通过xshell或SecureCRT连接服务器
方法1:w
[root@alice-01 data]# w
19:42:33 up 51 min, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 18:52 49:52 0.04s 0.04s -bash
root pts/0 192.168.204.1 18:53 0.00s 0.27s 0.09s w
root pts/1 192.168.204.1 19:42 11.00s 0.04s 0.04s -bash(啥也没干)
root pts/2 192.168.204.1 19:42 5.00s 0.03s 0.03s -bash
(远程登录的用户,。。,从哪里登录的,什么时候来的,。。,。。,这个用户在做什么)
[root@alice-01 data]# w
19:51:15 up 59 min, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 18:52 58:34 0.04s 0.04s -bash
root pts/0 192.168.204.1 18:53 0.00s 0.23s 0.04s w
root pts/1 192.168.204.1 19:42 4.00s 0.04s 0.00s man ls
root pts/2 192.168.204.1 19:42 8:47 0.03s 0.03s -bash
系统的负载---系统繁忙程度
如果负载接近--服务cpu的核心总数
方法2:last
谁在什么时间连接到系统 连接了多久
方法3:lastlog
显示系统中多有用户的最近一次的登录信息
十五、关机重启服务器的命令
重启:
init 6 (尽量少用)
reboot
shutdown -r 1 / shutdown -c 取消(ctrl + c)
shutdown -r now ==== reboot
关机:
init 0
poweroff (会关闭电源)
halt (需要手动关闭电源)
shutdown -h 1
shutdown -h now
十六、linux命令快键键的功能?
ctrl + a 把光标移到行首
ctrl + e 把光标移到行尾
ctrl + c 撤销当前的操作 cancel
ctrl + d logout (当前行没有任何内容,退出当前用户)
删除光标所在位置后面的一个符号,文本
ctrk + l (小写字母L) 清除屏幕内容 clear
ctrl + u 剪切光标所在位置到行首的内容
ctrl + k 剪切光标所在位置到行尾的内容
ctrl + y 粘贴
ctrl + r 搜索历史记录
把光标向右移动一个单词, ctrl + 左
把光标向左移动一个单词, ctrl + 右
[root@alice-01 ~]# history |grep awk
84 stat /etc/hosts |awk 'NR==4'
85 stat /etc/hosts |awk -F "[(/]" 'NR==4{print $2}'
86 stat /etc/hosts |awk
87 stat /etc/hosts |awk 'NR==4'
十七、vi/vim快捷键初级
移动光标:
移动到文件的第一行 gg :1 1G
移动到文件的最后一行 G :$
快速到达文件的第100行 100gg 100G :100
移动光标到行首 0 ^
移动光标到行尾 $
左下右上 :
左:h
下:j
右:l
上:k
cp /etc/services .
vim services
编辑:
在当前行下一行插入一个空行并进入到编辑模式 o(小写字母o)
剪切光标所在位置到行尾的内容,然后进入编辑模式 C(大写字母C)
删除当前行的内容到行尾 dG
撤销上一次的操作 u
恢复上一次的操作 ctrl + r
复制粘贴剪切:
删除光标所在位置的内容到行尾 D
复制当前行 yy
剪切(删除)当前行 dd
粘贴 p
搜索:
/你要找的内容 继续向下搜索n 继续向上搜索N
vim 查询帮助
:h :wq
:h G
:q 退出
1
说出品牌
U
数
路数
和硬盘数量即可
2
.
Fedora
、
CentOS
、
RedHat
之间的区别
3
.
说明
swap
的作用与设置规则
注
:
说明含义与
swap
大小设置标准即可
4
.
GNU
、
GPL
是什么?
注:还要说明出
GNU
相关的软件
5
.
什么是进城与守护进程?
6
.
简述
Buffer
与
Cache
区别
7
.
远程连接排错过程
注:写出每个步骤名称和使用的命令(除了第二步)
8
.
给
rm
命令设置别名运行
rm
时候显示
command not found.
注:
(
请写出每一步配置过程
)
9
.
说明下面几个符号的含义
> >> 2>> 2> < << $ *
注:有些符号有多个含义写出一个即可
10
.
找出
/etc/
下面以
.conf
结尾的文件并显示他们的详细信息
注:别删除了就行,要小心。
11
.
创建
/oldboy/linux/exam
目录,把
/etc/services
的第
40
到第
60
定向到
/oldboy/services
中
注:创建目录要一条命令完成,定向到
/etc/services
文件中可以用多种方法
12
.
关闭防火墙的步骤
注:写出步骤及没步骤的含义
13
.
Linux
显示中文乱码如何排查与解决
注:写出详细的排查与解决过程
14
.
写出你目前常用的
Linux
快捷键和
Vim
快捷键
15
.
查找出
/oldboy
目录中以
.log
结尾的文件并把文件中的
/oldboy
替换