作者:George
归档:学习笔记
2017/12/28
本章正题:了解硬链接数、 echo的参数、date的参数、PATH、开关机、 vim快捷键
1.1 第三关剩余练习题
1.1.1 取出ip地址,awk 指定多把分割符,用 |
[[email protected] oldboy]# ifconfig eth0 | awk -F "addr:| Bc" 'NR==2{print $2}'
10.0.0.203
1.1.2 找出网卡配置文件中IPADDR的行
方法一:
[[email protected] oldboy]# grep -i 'ipaddr' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.203
注: -i #进行过滤不区分大小写 == igone
方法二:
[[email protected] oldboy]# sed -n '/^IPADDR/p' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.203
方法三:
[[email protected] oldboy]# awk '/IPADDR/' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.203
方法四:
[[email protected] ~]$ egrep '^I.*[0-9.]{1,3}' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.203
方法五:
[[email protected] ~]$ awk --re-interval '/^I.*[0-9]{1,3}/' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.203
注:awk 默认不认识 {} , 需要--re-interval 参数的辅助
方法六:
[[email protected] ~]$ sed -nr '/^IP.*[0-9]{1,3}/p' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.203
注:sed 默认不认识扩展正则的符号,需要 -r 参数的辅助
1.1.3 linux下通过mkdir创建一个新目录/oldboy/ett,ett的连接数是为多少,为什么?
例1:
[[email protected] oldboy]# ls -ldi /oldboy/ett
261648 drwxr-xr-x. 2 root root 4096 Dec 28 08:58 /oldboy/ett
[[email protected] oldboy]# ls -ldi /oldboy/ett/.
261648 drwxr-xr-x. 2 root root 4096 Dec 28 08:58 /oldboy/ett/.
注:1. . 表示当前目录,所以他的Inode号和ett目录本身一样
2. ls -a 查看隐藏文件和目录
例2:
[[email protected] oldboy]# ls -ldi /oldboy/
261636 drwxr-xr-x.3 root root 4096 Dec 28 08:58 /oldboy/
[[email protected] oldboy]# ls -ldi /oldboy/ett/..
261636 drwxr-xr-x. 3 root root 4096 Dec 28 08:58 /oldboy/ett/..
注:他的子目录里面都包含一个.. 表示上一级没有,也就是oldboy 所有Inode号一样
1.1.4 请给出redhat默认情况eth0网卡配置文件的路径及客户端DNS的路径
[[email protected] oldboy]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件
[[email protected] oldboy]# vim /etc/resolv.conf DNS配置文件
1.1.5 【企业案例】:查找当前目录下所有文件,并把文件中的www.etiamtian.org字符串替换换成www.oldboyedu.com
方法一:
[[email protected] oldboy]# find -type f | sed 's#www.etiantian.org#www.oldboyedu.com#g' -i
方法二:
[[email protected] ~]$ sed 's#www.etiantian.org#www.georgekai.com#g' $(find -type f) -i
1.1.6 企业案例:企业网站中病毒
从发现到解决的过程:
1、运营人员、网站用户发现问题,网站有弹窗广告。
2、运营人员报给开发人员,开发联系运维人员。开发和运维共同解决。
3、开发发现的问题原因就是所有站点目录被嵌入了一段JS代码。
4、运维人员解决问题:
a) 备份原始出问题的原始文件。
b) 历史备份覆盖。
c) find+sed替换。
5、详细查看日志,寻找问题发生来源。
6、提供亡羊补牢解决方案
1.1.7 echo 常用的参数 -n \n \t
例1; -n 表示取消了默认的回车,可以在一行显示
[[email protected] oldboy]# echo -n "oldboy"
oldboy[[email protected] oldboy]#
例2:\n 表示回车键(换行) , -e 表示使echo能识别转义 符号系列(\n \t)
[[email protected] oldboy]# echo -e "a\nb"
a
b
例3: \t 表示加一个tab键
[[email protected] oldboy]# echo -e "a\nb\tc"
a
b c
1.1.8 问题:请给出如下格式的 date 命令
例:11-02-26。在给出实现按周输出 比如:周六输出为 6,请分别给出命令。
例1:显示年-月-日
[[email protected] ~]# date +%F
2017-12-28
注:1. date + 表示按什么格式来显示,如date +%F ,表示年月日 == date +%Y-%m-%d
2. man date 一般格式都在最后面
例2:显示时:分:秒
[[email protected] ~]# date +%T
10:14:56
注:1. date +%T === date +%H:%M:%S
例3:显示时-分-秒_星期
[[email protected] ~]# date +%F_%w
2017-12-28_4
注; 1. man date 后面有显示,0 代表周日
例4:显示当前日期的10天之前是哪一天
[[email protected] ~]# date -d "-10day" +%F
Wed Dec 27 10:29:16 CST 2017
注:1. -d 安装你的描述显示日期
2. +%F 不能放到-d 和"-10day"中间
例5:显示3天前的日期,格式为:年-月-日_小时_星期
[[email protected] ~]# date +%F_%H_%w -d "-3day"
2017-12-25_10_1
注:建议使用%H显示小时就可以了,%T会显示冒号,避免与其他特殊字符冲突
1.1.9 修改当前时间
例1:临时修改时间
[[email protected] ~]# date -s "20171212 12:12:12"
Tue Dec 12 12:12:12 CST 2017
例2:自动向时间服务器更新时间
[[email protected] ~]# ntpdate ntp1.aliyun.com
28 Dec 10:44:39 ntpdate[5955]: step time server 182.92.12.11 offset 1377013.589035 sec
注:1. ntp1.aliyun.com 是阿里云的时间服务器
2. pool.ntp.org 国外的官方时间服务器
3. 如果时区不对,时间也是不一样的, PTS 世界标准时间,CUT 中央标准时间
例3:如果时间不对,使用下面俩条命令查看/etc/service
修改时区的配置, 用sz rz 将其他虚拟机的配置文件替换一份。
[[email protected] ~]# file /etc/services
/etc/services: ASCII English text
[[email protected] ~]# ls -lh /etc/services
-rw-r--r--. 1 root root 626K Mar 22 2017 /etc/services
date命令总结:
1. 按照制定格式显示时间
#%F 年月日
#%T 时分秒
#%w 星期
2. 按照你说的说明显示日期 -d
3. 临时修改时间,自动同步时间,修改时区
1.2 问题:当从 root 用户切到普通用户时,执行 ifconfig 会提示。
1.2.1 临时——修改PATH环境变量
[[email protected] ~]# export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
注:1. 这些只是外部命令,内置命令还可以使用
2. 有些命令即属于外部命令,也属于内部命令。如echo
1.2.2 永久——修改PATH环境变量
注:将临时修改的命令放在最后面,然后用source /etc/profile 使配置文件生效即可
[[email protected] ~]# vim /etc/profile
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
1.3 下列路径的内容是做什么的?
/var/log/messages 系统默认的日志
/var/log/secure 用户登录信息
/etc/fstab 开机自动挂载 (在开机的时候设备对应什么入口)
/etc/hosts 解析主机名 (ip地址与主机名的对应关系)
注:man hosts 还可以查看系统的配置文件使用方法
/etc/profile 存放环境变量(PS1 PATH)、别名
/var/spool/cron/root 定时任务的配置文件
1.4 用命令找出ifconfig的全路径。
例1:which
[[email protected] ~]# which ifconfig
/sbin/ifconfig
例2:find
[[email protected] ~]# find / -type f -name "ifconfig"
/sbin/ifconfig
例3:whereis 可以找出命令的位置和相关信息
[[email protected] ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
例4:locate 根据名字找出文件所在的位置,会根据数据库查找,所以很慢
[[email protected] ~]# locate ifconfig
/sbin/ifconfig
/usr/sbin/pifconfig
/usr/share/man/de/man8/ifconfig.8.gz
注:uodatedb 更新数据库 (不常用,因为很慢,消耗比较大)
1.5 关机和重启服务器的命令
1.5.1 重启
例1:shudown -r now
[[email protected] ~]# shutdown -r now
注:1. -r 重启
2. now 立刻,马上
3. 建议使用,不会立马重启
4. -r 后面加10 ,表示10分钟后重启
例2:reboot
[[email protected] ~]# reboot
例3:init 6
[[email protected] ~]# init 6
注:有可能丢失数据
1.5.2 关机
例1:shutdown -h now
[[email protected] ~]# shudown -h now
注:1. -h 关机
2. now 立刻,马上
3. -h 后面加 10 ,表示10分钟后关机
4. 建议使用,不会立马关机
例2:poweroff
[[email protected] ~]# poweroff
例3:init 0
[[email protected] ~]# init 0
注:有可能丢失数据
例4:halt
[[email protected] ~]# halt
注:关闭系统,不会关闭电源,风扇还会转
1.6 linux命令行的快捷键
Ctrl + a 把光标移动到行首
Ctrl + e 把光标制动到行尾
Ctrl + c 中断当前命令的执行, 特殊情况yum install 中,需要连续多按几次
Ctrl + d 退出当前用户 / 删除光标所在位置后一个字符
Ctrl + l 清屏
Ctrl + u 把光标所在位置到行首的内容剪切
Ctrl + k 把光标所在位置到行尾的内容剪切
Ctrl + y 粘贴
Ctrl + r 查找历史命令,相当于 history | grep
Ctrl + s 锁屏
Ctrl + q 解锁
Ctrl + → 向右移动单词的宽度
Ctrl + ← 向右移动单词的宽度
1.7 vi /vim 快捷键
移动:
G 移动到文件的最后一行
gg 移动到文件的第一行
$ 把光标移动到行尾
0或^ 把光标移动到行首
编辑:
o 在当前行下一行插入空行并进入编辑模式
O 在行前行上一行插入空行并进入编辑模式
C 把光标所在位置到行尾的内容删除并进入编辑模式
复制剪切粘贴:
yy 复制当前行的内容
p 粘贴 paste
dd 删除当前整行内容
100gg 移动第100行
操作:
u 撤销
ctrl+ r 恢复
特殊符号:
:set nu 显示行号
:set nonu 取消显示行号
/george 默认向下搜索,继续往下搜索 n , 继续向上搜索 N
?george 默认向上搜索
:noh 取消高亮显示
原文地址:http://blog.51cto.com/13055758/2055683