文档章节

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
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
ansible-playbook 通过cmdb获取动态inventory

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

yaoliang833
2017/12/07
0
0
在vmware虚机上用iscsi协议建立多路径环境测试multipath (1)

搭建系统架构 系统网络架构图 配置虚机3的目的是为了将来测试oracle RAC,本实验可以不配。 配置虚机的linux网卡 每个虚机配3个网卡,一个通过桥接方式经vmware workstation虚拟交换机VMnet...

leesbing
2017/04/08
0
0
Spark本地安装与配置

  由于Spark是用Scala来写的,所以Spark对Scala肯定是原生态支持的,因此这里以Scala为主来介绍Spark环境的搭建,主要包括四个步骤,分别是:JDK的安装,Scala的安装,Spark的安装,Hadoo...

aichenziyu
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
今天
10
0
ios多个target

1.建立3个target,分别为heroone,heroone test,heroone dev;分别为正式环境,test环境,dev环境 2.注意取消掉autocreate以防止名字不对,分别以Duplicate的方式建立另外两个scheme 3.创建...

HeroHY
今天
5
0
php获取客户端IP

php获取客户端IP 首先先阅读关于IP真实性安全的文章:如何正確的取得使用者 IP? 「任何從客戶端取得的資料都是不可信任的!」 HTTP_CLIENT_IP头是有的,但未成标准,不一定服务器都实现。 ...

DrChenXX
昨天
0
0
. The valid characters are defined in RFC 7230 and RFC 问题

通过这里的回答,我们可以知道: Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。 具体来说,就是添加了些规则去限制HTTP头的规范性 参考这里 具体来说: org.apache.tom...

west_coast
昨天
1
0
刷leetcode第704题-二分查找

今天双十一买的算法书到货了,路上刷到有人说的这个题,借(chao)鉴(xi)一下别人的思路,这个是C++标准库里面的经典方法,思路精巧,优雅好品味 int search(int* nums, int numsSize, in...

锟斤拷烫烫烫
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部