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


作者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

时间: 2024-08-25 15:02:18

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

windows开关机时间记录

1. 开机时间记录批处理文件,kai.bat 1 @echo off 2 3 echo %date% %time% 开机 >>D:\开关机记录\开关机时间.txt 2. 关机时间记录批处理文件,guan.bat @echo off echo %date% %time% 关机 >>D:\开关机记录\开关机时间.txt 3. 打开“运行”对话框(Win+R组合键或者在win7系统的搜索框中)输入gpedit.msc,打开“组策略编辑器”,依次展开“计算机配置→windows设置→脚本(

PHP date函数参数

$t=time(); echo date("Y-m-d H:i:s",$t); a - "am" 或是 "pm"  A - "AM" 或是 "PM"  d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"  D - 星期几,三个英文字母; 如: "Fri"  F - 月份,英文全名; 如: "January&quo

PHP date函数参数详解

PHP date函数参数详解 作者: 字体:[增加 减小] 类型:转载 time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,很奇怪吧 不过这样方便计算, 要找出前一天的时间就是 time()-60*60*24; 要找出前一年的时间就是 time()*60*60*24*365 那么如何把这个数字换成日期格式呢,就要用到date函数了 $t=time();  echo date("Y-m-d H:i:s",$t); 第一个参数的格式分别表示: a -

new Date()的参数

前两天发现手机页面的倒计时在Android上正常显示,在iPhone却不能显示. 后来又发现在ff和ie里也不显示.(以前只在chrome里看过,显示正常). 后来同事改了new Date()里字符串的格式,就都正常显示了. 我们知道Android和chrome都是webkti内核,难道和这个有关? 于是打开控制台,分别测试了不同浏览器对Date()参数的反应. 首先是chrome的: 只要是字符串,这三种格式都能正常解析,非字符串"/"月份多加1,这个问题本身存在. 然后是ff: 字

gcc -l参数和-L参数

-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了 好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.

hibernate防止sql注入对参数赋值传参数的例子

来源于:https://my.oschina.net/u/1754093/blog/707083 1.按参数名称绑定 在HQL语句中定义命名参数要用":"开头,形式如下: Query query=session.createQuery("from User user where user.name=:customername and user:customerage=:age ");  query.setString("customername"

我爱Python之位置参数、关键字参数、默认参数

1.位置参数: >>> def check_web_server(host, port, path): print .... >>> check_web_server('www.python.org', 80, '/') 三个参数的顺序必须一一对应,且少一参数都不可以 2.(函数调用里的)关键字参数: 可以让函数更加清晰.容易使用,同时也清除了参数的顺序需求,关键字参数通过“键-值”形式加以指定,用于函数调用 >>> check_web_server(

在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?

Linnux 中有些命令的功能非常强大,主要是因为它支持的命令选项比较多.如:[ip]命令可以配置IP地址.路由条目的配置管理操作非常完善,该命令就可以完成[ifconfig]和[route]命令实现的所有功能.函数是单独的功能模块,如果函数能够接收选项参数,那么该函数的功能就变得丰富,且灵活.脚本也是一样. 那么linux中命令的格式又是怎么样的呢? [[email protected] ~]# command   [optons parameter1 | parameter2]...  pa

【C++编译】gcc的-l参数和-L参数

今天在编译服务的时候,出现了一个错误: /usr/bin/ld: cannot find -lxxx 于是查了一下,这个错误是因为链接程序ld在指定目录里找不到libxxx.so这个库. 那么,上面所说的"指定目录"是哪些目录,以及 -l的作用是什么呢? -l参数:用来指定程序要链接的库,-l参数紧接着就是库名.这里的库名并非真正的库文件名.以库名为math的库为例,他的库文件名是libmath.so或者libmath.a(Linux下的库文件都要以lib开头,其中.so是动态库,.a