码迷,mamicode.com
首页 > 系统相关 > 详细

echo的参数、date的参数、PATH、开关机、 vim快捷键

时间:2017-12-28 23:19:02      阅读:901      评论:0      收藏:0      [点我收藏+]

标签:linux vim echo


 

作者George

归档:学习笔记

2017/12/28

 



本章正题:了解硬链接数、 echo的参数、date的参数、PATH、开关机、 vim快捷键

 

1.1 第三关剩余练习题

 

1.1.1 取出ip地址,awk 指定多把分割符,用 |

[root@georgekai oldboy]# ifconfig eth0 | awk -F "addr:|  Bc" 'NR==2{print $2}'

10.0.0.203

 

1.1.2 找出网卡配置文件中IPADDR的行

方法一:

[root@georgekai oldboy]# grep -i 'ipaddr' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

注: -i   #进行过滤不区分大小写  == igone

方法二:

[root@georgekai oldboy]# sed -n '/^IPADDR/p' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

方法三:

[root@georgekai oldboy]# awk '/IPADDR/' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

方法四:

[george@georgekai ~]$ egrep '^I.*[0-9.]{1,3}' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

方法五:

[george@georgekai ~]$ awk --re-interval '/^I.*[0-9]{1,3}/' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

注:awk 默认不认识 {}  ,  需要--re-interval 参数的辅助

方法六:

[george@georgekai ~]$ 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/ettett的连接数是为多少,为什么?

1:

[root@georgekai oldboy]# ls -ldi /oldboy/ett

261648 drwxr-xr-x. 2 root root 4096 Dec 28 08:58 /oldboy/ett

[root@georgekai 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:

[root@georgekai oldboy]# ls -ldi /oldboy/

261636 drwxr-xr-x.3 root root 4096 Dec 28 08:58 /oldboy/

[root@georgekai 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的路径

[root@georgekai oldboy]# vim /etc/sysconfig/network-scripts/ifcfg-eth0   网卡配置文件

[root@georgekai oldboy]# vim /etc/resolv.conf    DNS配置文件

 

 

1.1.5 【企业案例】:查找当前目录下所有文件,并把文件中的www.etiamtian.org字符串替换换成www.oldboyedu.com

方法一:

[root@georgekai oldboy]# find -type f | sed 's#www.etiantian.org#www.oldboyedu.com#g' -i

方法二:

[george@georgekai ~]$ 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  表示取消了默认的回车,可以在一行显示

[root@georgekai oldboy]# echo -n "oldboy"

oldboy[root@georgekai oldboy]#

 

2:\n 表示回车键(换行)  , -e 表示使echo能识别转义 符号系列(\n \t)

[root@georgekai oldboy]# echo -e "a\nb"

a

b

3: \t 表示加一个tab键

[root@georgekai oldboy]# echo -e "a\nb\tc"

a

b c


1.1.8 问题:请给出如下格式的 date 命令 

  例:11-02-26。在给出实现按周输出 比如:周六输出为 6,请分别给出命令。

1:显示年-月-日

[root@georgekai ~]# date +%F

2017-12-28

注:1. date +  表示按什么格式来显示,如date +%F ,表示年月日 == date +%Y-%m-%d

   2. man date  一般格式都在最后面

 

2:显示时:分:秒

[root@georgekai ~]# date +%T

10:14:56

注:1. date +%T  === date +%H:%M:%S

 

3:显示时-分-秒_星期

[root@georgekai ~]# date +%F_%w

2017-12-28_4

; 1. man date 后面有显示,0 代表周日

 

4:显示当前日期的10天之前是哪一天

[root@georgekai ~]# date -d "-10day" +%F

Wed Dec 27 10:29:16 CST 2017

 

注:1. -d  安装你的描述显示日期

   2. +%F 不能放到-d 和"-10day"中间

 

5:显示3天前的日期,格式为:年-月-日_小时_星期

[root@georgekai ~]# date +%F_%H_%w -d "-3day"

2017-12-25_10_1

注:建议使用%H显示小时就可以了,%T会显示冒号,避免与其他特殊字符冲突

1.1.9 修改当前时间

1:临时修改时间

[root@georgekai ~]# date -s "20171212 12:12:12"

Tue Dec 12 12:12:12 CST 2017

 

2:自动向时间服务器更新时间

[root@georgekai ~]# 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 将其他虚拟机的配置文件替换一份。

[root@georgekai ~]# file /etc/services

/etc/services: ASCII English text

[root@georgekai ~]# 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环境变量

[root@georgekai ~]# 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 使配置文件生效即可

[root@georgekai ~]# 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

[root@georgekai ~]# which ifconfig

/sbin/ifconfig

 

2:find

[root@georgekai ~]# find / -type f -name "ifconfig"

/sbin/ifconfig

 

3:whereis  可以找出命令的位置和相关信息

[root@georgekai ~]# whereis ifconfig

ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

 

4:locate   根据名字找出文件所在的位置,会根据数据库查找,所以很慢

[root@georgekai ~]# 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        

[root@georgekai ~]# shutdown -r now

注:1. -r  重启

   2. now 立刻,马上

   3. 建议使用,不会立马重启

   4. -r 后面加10 ,表示10分钟后重启

2:reboot

[root@georgekai ~]# reboot

3:init 6

[root@georgekai ~]# init 6

注:有可能丢失数据

 

1.5.2 关机

1:shutdown -h now

[root@georgekai ~]# shudown -h now

注:1. -h 关机

   2. now 立刻,马上

   3. -h 后面加 10 ,表示10分钟后关机

   4. 建议使用,不会立马关机

2:poweroff

[root@georgekai ~]# poweroff

3:init 0

[root@georgekai ~]# init 0

注:有可能丢失数据

4:halt

[root@georgekai ~]# 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  取消高亮显示

 

 


echo的参数、date的参数、PATH、开关机、 vim快捷键

标签:linux vim echo

原文地址:http://blog.51cto.com/13055758/2055683

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!