2017-11-01 biezhi
背景 我是个 Java 开发者,做过非常多开源软件,经常会有在终端下提供命令行帮助程序的这种小需求,一般大家实现这个需求也就这么几种办法。 编写批处理或者 Shell(Windows 和 Linux需要写两次) 使用编程语言解决(golang、python都是不错的跨平台选择) 继续阅读 »
2017-08-29 biezhi
服务端的系统设置中经常会和底层协议打交道,我们有必要重温一下曾经那些“听过”却不熟悉的名词。 今天聊的话题是 KeepAlive,在实际应用中又是怎么使用的? more 为什么有Keepalive? 大家都做过电梯吧,假设电梯来了你先进去,你朋友还没进来,过一段时间电梯门就会自动关闭, 你应该没遇到过哪个电梯会一直等你朋友来了才关门的。如果真是那样,那别的楼层的小姐姐们会炸了~ 继续阅读 »
2017-08-22 biezhi
让我很无奈的是使用Java编写命令行程序是比较麻烦的,好在NodeJs干这事很方便, 在接下来的30分钟里我将教你编写一个有趣的终端程序并将它发布到npm仓库中,赶紧GET吧~ more 我实在想不到起什么名字了,就叫 lowb 吧。。。我们实现好的程序是这样的: 继续阅读 »
2017-08-10 biezhi
这篇文章翻译自 http://www.thegeekstuff.com/2010/11/50-linux-commands{:target="_blank"} 这些都是一些很常用的命令,这篇文章中每个命令都有一些简单的示例说明它的用法, 对于想学习Unix/Linux的人,这些命令基本上都是需要掌握的。 继续阅读 »
2017-08-08 biezhi
asciinema 是一个在终端下非常棒的录制分享软件,基于文本的录屏工具,对终端输入输出进行捕捉, 然后以文本的形式来记录和回放!这使其拥有非常炫酷的特性:在 播放 过程中你随时可以暂停, 然后对“播放器”中的文本进行复制或者其它操作!实际效果可以点击下方的播放按钮查看。支持各个操作系统(哦。。没有windows) 继续阅读 »
2017-08-07 biezhi
作为一名后端开发,经常会遇到SSH登录,Git 提交等事务,而当你有很多服务器的时候使用密码可能不是一个好的选择了, 就像我要登录自己的服务器、公司各个环境的服务器,虽然有工具可以帮我们做这些,但我习惯在命令行下操作。 下面我带你了解一下免密登录的原理和如何实现。 继续阅读 »
2017-07-21 biezhi
Adblock Plus 已被超过 1 亿台设备使用,是世界上最受欢迎的广告拦截软件。 商店地址{:target="_blank"} 继续阅读 »
2016-08-10 biezhi
从CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。 1、原来的 service 命令与 systemctl 命令对比 | daemon命令 | systemctl命令 | 说明 | | ------------- | ------------- | ------------- | | service [服务] start | systemctl start [unit type] | 启动服务 | | service [服务] stop | systemctl stop [unit type] | 停止服务 | | s 继续阅读 »
2015-09-15 biezhi
Entry.css Entry.css是一个可配置的、更适合阅读的中文文章样式库,可以用来快速搭建中文博客主题或是用于项目文档的样式。 支持浏览器:IE 9+,Chrome 14+,Firefox 4+,Safari 5+,Opera 11+,Mobile Safari(iOS 5+) 项目地址:https://github.com/zmmbreeze/Entry.css more 为什么要有Entry.css? 作为一个前端工程师,有时朋友会让你帮忙整一整他们博客文章或是项目文档的样式。有时我们在自己博客使用了一个非常漂亮的主题,应用到自己博客上时却变的很难看(因为原主题针对的是英文)。 虽然我自己对设计也是一窍不 继续阅读 »
2015-09-15 biezhi
在这篇文章中我将向你演示如何使用Java8中的foreach操作List和Map 1. Foreach操作Map 1.1 正常方式遍历Map ```java Map items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); items.put("D", 40); items.put("E", 50); items.put("F", 60); for (Map.Entry entry : items.entrySet()) { System.out.println("Item : " + entry.getK 继续阅读 »