shell常用命令

1. 普通时间与时间戳之间的转换 - date

时间戳->普通时间

有时候,java程序输出的是毫秒数(如使用System.currentTimeMillis()),这样写程序方便,但是可读性差。shell中有一条命令可以方便的进行转换:
date -d 'utc 1970-01-01 xxxx seconds'
其中xxx为秒数(需要将毫秒数后三位舍去),如程序输出是123456789,则这里的xxx是123456。
运行效果如下:

普通时间->时间戳

date -d '2015-10-10 10:00:00' +%s


2.发邮件 - mail

有时候需要写脚本分析数据,然后发送邮件给相关人员,shell脚本提供了发邮件的功能:
cat file |mail -s 'test' xxx@xxx.com
其中-s参数指定了邮件的标题。还有其他参数,比如指定发件人、指定编码等等,可以通过man mail命令查看。

3.比较并输出两个文件的差异 - comm

有时候需要比较两个文件之间的差异,shell中有个命令很方便:
# comm命令
# 在a中不在b中的
comm a b -2 -3 > 1
# 在b中不在a中的
comm a b -1 -3 > 2
# 在a中也在b中的
comm a b -1 -2 > 3
comm命令会比较两个文件并生成三列,第一列是在第一个文件中但不在第二个文件中的;第二列是在第二个文件中但不在第一个文件中的;第三列是两个文件都有的。命令中-1就表示减去第一列,以此类推。

4.局域网传文件 - nc

在局域网中,传输文件可以使用nc命令方便的传输,而不需要拿着移动硬盘拷来拷去~
# 发送方
nc -l [port] < file
# 接收方,host为发送方的ip
nc [host] [port] > file
其中port为端口号,如2345等等。

5.sudo权限写文件

想把某个命令的输出结果写入到文件中,但是只有sudo才能写文件,无法直接使用重定向。
可以使用tee命令,tee名令会从标准输入读取数据,将其内容输出到标准输出,同时保存成文件。
xxx | sudo tee [filename] >/dev/null


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值