文档章节

101 条命令行

疯狂的兔子
 疯狂的兔子
发布于 2015/04/20 17:52
字数 1146
阅读 13
收藏 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
711
4
按照比例分发信息给相应人员

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

绍铖_TT_OO
2016/08/16
139
4
推荐一个叫Full Source的IE功能扩展

一直以为国人比较喜欢比来比去,什么Windows vs linux、.NET vs java、IE vs firefox等等。原来老外也有无聊到一定水平的,这不发现原来"101件Mozilla 浏览器能而IE 不能做的事"一文的始作俑...

唐玄奘
2017/12/19
0
0
bootstrap分页问题

就是现在我用了SSM框架做的数据报表,报表是用boostrap的。就是我再查数据的时候,后台是查了所有的数据然后填充到报表里面生成页数的。现在我是想这样,比如一页放一百条数据,那我点击第一...

小绝绝
2017/06/07
79
1

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之高级类型的多态的 this类型

转发 TypeScript基础入门之高级类型的多态的 this类型 高级类型 多态的this类型 多态的this类型表示的是某个包含类或接口的子类型。 这被称做F-bounded多态性。 它能很容易的表现连贯接口间的...

durban
24分钟前
0
0
tomcat中的几种log catalina localhost

体会 catalina.out catalina.log 是tomcat的标准输出(stdout)和标准出错(stderr) cataliana.{yyyy-MM-dd}.log和localhost.{yyyy-MM-dd}.log 是通过logging.properties配置的tomcat自己运行的......

onedotdot
45分钟前
1
0
Oracle return exit continue

常在循环体中看到下面3种语句: return exit continue 举例说明 啥都没有 -- none begin for i in 1 .. 10 loop if i < 5 then dbms_output.put_line('i < 5, i = ' || to_char......

taadis
今天
3
0
JSONObject 转换时出错 InvocationTargetException

JSONObject 转换时出错java.lang.reflect.InvocationTargetException 一时看不出来是什么问题。 挺奇怪的。 百度参考了一下这个 网页的解决方案 说是类型不对,空? 仔细查看代码,果然是有一...

之渊
今天
3
0
no such module 'pop'问题

在github上 clone 了一个 swift 项目,编译时提示"no such module 'POP'"错误,查了一下居然是因为podfile中指定的最低版本是iOS 11.0,大于我测试手机的iOS版本10.3.3,将Podfile中的最低版...

yoyoso
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部