罗汉堂课程学习分享:【在合作中成长】

上周二下午一整个下午参加了罗汉堂举办的 《在合作中成长》课程, 讲师:劝天。

我觉得这是一堂非常有意义的课程,在课程我过程中, 我学到了很多, 也结合自己的实际情况, 做了一些调整。(下面是剧透)

课堂一开始, 老师就让我们通过组合梭哈牌的方法来组成队伍,每个人都只能看到别人的牌, 不能知道自己的牌, 最终组合的牌最大的一组胜出。我一想首先牌比较少, 而且我也不知道自己的牌是什么牌, 要跟别人组成同花顺不是很靠谱, 于是想当下应该是4条最能明确, 我搜寻了一下, 发现旁边4个女生是4个Q,我就直接叫他们跟我组成一队了, 没想到他们也这么信任我, 就稀里糊涂跟我走鸟. 最后我们组成的队伍牌果然是最大的, 4条Q+方片A, 完美的组合啊. 后来想想, 是不是因为几个女生都不是很懂得梭哈才跟了我走呀, 哈哈. 后面选组长, 我居然成了组长, 带领5个美女, 朝着我们的目标: TO BE NO.1 前行。

在linux的alias中使用awk遇到的问题

场景很简单, 通过一个命令别名(alias)直接输出当前的机器的ip地址.

不需要使用ifconfig命令, 用ping就可以了. (更简单用 hostname -i 命令即可.)

ping -c 1 命令用来指定只ping一次, 后面是机器名或者域名.

查看机器名的命令是 hostname, 所以很简单, 直接

ping -c 1 `hostname`

就可以得到ip地址的信息了.

PING jiacheo (192.168.0.22) 56(84) bytes of data.
64 bytes from jiacheo (192.168.0.22): icmp_seq=0 ttl=64 time=0.034 ms
--- jiacheo ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0m
rtt min/avg/max/mdev = 0.034/0.034/0.034/0.000 ms, pipe 2

然后我只需要显示第一行的 (192.168.0.22)就可以了. 这时需要用到awk

ping -c 1 `hostname` | awk '{if(NR==1) pirnt $3}'

执行结果:

(192.168.0.22)

貌似没什么问题.

使用alias:

编辑~/.bashrc 文件, 最后加入

alias ip="ping -c 1 `hostname` | awk '{if(NR==1) pirnt $3}'

保存后, source ~/.bashrc 一下(或者重新登录终端)

在命令控制台敲入: ip  回车后显示

PING jiacheo (192.168.0.22) 56(84) bytes of data.

奇怪了, 开始怀疑是awk没有识别出分隔符.
后来想想, 在.bashrc里面定义的 环境变量都是可以用$var 来引用的, 这里的$是不是需要转义
在英明伟大神武牛叉轰轰的 莹莹的指导下, 果然是$符号的问题, 要转义一下就可以了. 转义的方法就是 在前面加个\

alias ip="ping -c 1 `hostname` | awk '{if(NR==1) pirnt \$3}'"

输出结果:

(192.168.0.22)

蛋疼扯了这么多, 就说明一个道理, 在定义alias的时候, 要注意特殊符号需要转义. 嗯.