文档章节

101 条命令行

疯狂的兔子
 疯狂的兔子
发布于 2015/04/20 17:52
字数 1146
阅读 14
收藏 0

查看 postgresql 当前运行日志

 tail -f pg_log/`ls -al pg_log/| tail -n 1| awk '{print $9}'`

一个一次性的编辑器

有时候只是想临时保存个东西,又不想存文件,可以这样:

在终端里:

cat >/dev/null

然后把文本拷贝粘贴终端屏幕上。用完之后 ctrl-c,东西就没了。

让程序及时刷新stdout

有时候写个脚本:

nohup test.sh > my.log 2>&1 &

之后,因为在后台,标准输出(stdout)刷新不是很及时,于是你

tail -f my.log

经常会一阵阵的输出日志,不够及时,在 shell 里如何弄呢?
可以这样:

nohup unbuffer test.sh > my.log 2>&1 &

或者

nohup stdbuf -i 0 -o0 -e 0 test.sh > my.log 2>&1 &

按空格分隔逐个遍历

for i in ` cat somefile` ; do echo $i ; done

一次一行读取输入遍历

cat somefile | while read line ;  do echo $line ; done

一次一行读取输入,不逃逸输入中的反斜杠

read -r

可以免于逃逸输入中的反斜杠:

cat somefile | while read -r line ; do $echo $line; done

获取度假IOS app所有GID

 cat b2c.ios.access.log.page1 | grep '"dep":"北京"' |awk -F '=' '{print $3}'  | while read -r line ; do echo $line | json_xs|grep '"gid" :' ; done

命令行上的日历

审批报销的时候,经常需要看月历,Unix 系统有非常优秀的 cal 命令可以看月历:

bash-4.2$ cal
      十月 2013     
日 一 二 三 四 五 六
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

加上年份:

bash-4.2$ cal 2013
                               2013                               

        一月                   二月                   三月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
       1  2  3  4  5                   1  2                   1  2
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9
13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16
20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23
27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30
                                              31
        四月                   五月                   六月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
    1  2  3  4  5  6             1  2  3  4                      1
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30
        七月                   八月                   九月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
    1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30

        十月                  十一月                 十二月       
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
       1  2  3  4  5                   1  2    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
27 28 29 30 31         24 25 26 27 28 29 30   29 30 31

命令行上的计算器

bc 命令:

bash-4.2$ echo '0.99*0.99*0.99'| bc -l
.970299

命令行上对一个有序文件进行乱序处理

简单的逻辑就是:我们对随机数进行排序,那么出来的“顺序”就是乱的,因此,如果我要对一个有序的文件进行乱序操作,基本逻辑就是给每行都附加一个随机数,然后我们把随机数排列成有序的,那么原来的数据就乱序了:

for line in `cat tt.txt | awk $'{print $2 }' ` ; do echo $RANDOM $line ; done | sort -k 1 -n

shuf

现代 Linux 都内置了一个叫 shuf 的命令,专门对文件进行乱序处理:

time cat tt.txt | shuf

命令行上对文件的某一列求和

用 awk 最简单,比如对文件第二列的数字求和

cat some_file | awk '{SUM += $2} END {print SUM}'

命令行上对文件的倒数第二列求和

用 awk 的 $NF 变量,可以这么做:

cat some_file | awk '{SUM += ($(NF-1))} END {print SUM}'

当然,倒数第几列是可以控制的拉。

命令行上对文件的倒数第二列求平均

cat some_file | awk '{SUM += ($(NF-1)); CNT += 1 } END {print SUM/CNT}'


© 著作权归作者所有

共有 人打赏支持
疯狂的兔子
粉丝 34
博文 178
码字总数 101541
作品 0
北京
后端工程师
私信 提问
Ubuntu 14.04 安装 Java JDK (6步)

从Oracle下载JDK最新版,附下载地址 下载后得到文件jdk-8u101-linux-x64.tar.gz(文件名可能不同,下载扩展名为.tar.gz的即可), 在命令行输入以下代码解压文件到当前目录,会得到一个名为jdk1.8....

残月的影
2017/06/29
0
0
从PHP客户端看MongoDB通信协议

MongoDB 的 PHP 客户端有一个 MongoCursor 类,它是用于获取一次查询结果集的句柄(或者叫游标),这个简单的取数据操作,内部实现其实不是那么简单。本文就通过对 MongoCursor 类一些操作进...

鉴客
2012/05/24
724
4
按照比例分发信息给相应人员

有A,B,C三个或者以上用户,现设置接收信息的权重为A=5,B=3,C=2,A接收5条信息,B接收三条,C接收2条按照这种比例分发信息内容。当第101条内容来了要分发给谁

Wss_绍铖
2016/08/16
159
4
ansible-playbook 通过cmdb获取动态inventory

随着cmdb上记录的增多,每次都需要修改ansible的hosts文件, 实属麻烦。此次通过动态获取inventory的方法,这样可以省去配置ansible服务端的hosts。 动态inventory脚本必须支如下两个命令行参...

yaoliang833
2017/12/07
0
0
shell 写登录跳板机

准备3台机器 1.linux-node1 ip:10.89.3.108 (跳板机) 2.weblamp ip:10.89.3.100 3.weblnmp ip:10.89.3.101 3台系统环境如下: [jump@linux-node1 ~]$ cat /etc/redhat-release CentOS relea......

ahtornado
2017/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

推荐转载连接

https://www.cnblogs.com/ysocean/p/7409779.html#_label0

小橙子的曼曼
17分钟前
0
0
雷军亲自打造的套餐了解下:用多少付多少

12月28日消息,小米科技创始人兼CEO雷军微博表示,小米移动任我行套餐方案,原则上就是明明白白消费,用多少付多少,不用不花钱!上网、电话和短信都是一毛钱,上网0.1元/M,电话0.1元/分钟,...

linuxCool
28分钟前
0
0
协议简史:如何学习网络协议?

大学时,学到网络协议的7层模型时,老师教了大家一个顺口溜:物数网传会表应。并说这是重点,年年必考,5分的题目摆在这里,你们爱背不背。 考试的时候,果然遇到这个问题,搜索枯肠,只能想...

Java干货分享
37分钟前
3
0
雷军亲自打造的套餐了解下:用多少付多少

12月28日消息,小米科技创始人兼CEO雷军微博表示,小米移动任我行套餐方案,原则上就是明明白白消费,用多少付多少,不用不花钱!上网、电话和短信都是一毛钱,上网0.1元/M,电话0.1元/分钟,...

linux-tao
今天
2
0
在 Ubuntu 上为 CentOS 编译 Rust 程序

现在 CentOS 8 还没出来,最新的是 CentOS 7.6,上面搭载的 glibc 版本是 2.17,都已经是 2012 年那时候的版本了。 现在开发者比较常用的桌面 Linux 系统,比如 Ubuntu / Debian / Mint / A...

helloclia
今天
18
3

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部