linux命令行usage格式解释

点击量:345

经常要在Linux下面敲指令,但指令太多很多是忘了记,记了又忘。其实这些指令不用一个一个去记,每一个命令都会有帮助和提示。之前我一看到这些提示就头大,什么方括号,尖括号,省略号,杠之类的,今天静下心来专门学习这个东西,了解完之后发现还是比较简单的,这样遇到新的命令自己学习一下就知道如何使用了,不用再去一个一个查询和记忆了。

帮助的格式一般分以下几种:

方括号[]:表示可选参数,也就是说可以忽略,使用时没有方括号。

尖括号<>:表示必选参数,不能忽略,且尖括号里的输入只能是指定的option,使用时没有尖括号。

省略号…:表示重复多次的参数。

接下来我们以jstat为例,学习如何通过以上几个格式的含义一步步来学习使用一个新的指令。jstat是JDK下面一个用于监控JVM内存使用情况的轻量级工具,我们在命令行下面输入jstat时会输出以下信息,我们一行一行看。

[astd@VM_139_5_tlinux ~]$ jstat
invalid argument count【1】
Usage: jstat -help|-options【2】[……]

继续阅读

Java位操作符的一种简单应用

点击量:119

几乎每种语言都会有位操作符,左移右移、“与”“非”、“或”、“异或”等,这些操作符的意义大家肯定都知道,但是你可曾想过这些位操作符有什么实际的使用价值吗?今天来说下位操作符的一种简单应用。

在游戏开发工作中最常遇到的是对玩家状态的记录,比如奖励是否已经领取过,页面是否是否打开过等等。如果有连续的状态需要记录则他的形式大致是这样的:0100011,0表示没有,1表示有。最常见的做法是DB里使用一个varchar字段用来存储这样的状态:0100011。每次变更的时候找到那一位的状态,然后改下就好了,很直观。但其实我们也可以使用int类型来存储这种连续的状态,一个整数怎么能表示那么多的状态呢?答案是把十进制整数转换为二进制,然后通过位操作符去变更每一位二进制的状态。

问题:给定一个整数a,我们要改变她所表示的二进制的第n位的值为1。

首先构造一个特殊的二进制数,这个数第n位为1,其余都是0。代码表示就是:

int base= (int)Math.pow(2, n-1);

那如果我要改变第n位的值为1,只要将a|base即可。因为base的第n位是1,而其他位都是0,所以“或”之后第n位只能是1,而其他[……]

继续阅读

AWK统计不同列的数据

点击量:171

今天QA妹子在做数据查询的时候向我抱怨,说我们开发打的日志太不规范,导致她查询数据时相当麻烦,数据的原始格式是这样的:

1844#雄霸四方#freePhantomNum:89,armyGold:280,num:1,gold:2800,type:1
1844#雄霸四方#freePhantomNum:88,armyGold:280,num:1,gold:2800,type:1
1844#雄霸四方#freePhantomNum:87,armyGold:280,num:1,gold:2800,type:1
92673#汔丶淚。#freePhantomNum:101,armyGold:280,num:1,gold:2800,type:1
4391#曹操之后#freePhantomNum:81,num:1,armyGold:280,gold:2800,type:1
4391#曹操之后#freePhantomNum:80,num:1,armyGold:280,gold:2800,type:1
4391#曹操之后#freePhantomNum:79,num:1,armyGold:280,gold:2800,type[……]

继续阅读

乐观锁和悲观锁

点击量:369

这两个概念是非常宏观的,只是两种不同的设计思想。

一、基本概念

悲观锁:假设线程在竞争资源时肯定会发生冲突,这时就需要把这个资源锁住,只有一个线程能同时操作这些竞争资源,其他线程只能等待拥有这个锁的线程完成操作。

乐观锁:顾名思义就是假设线程在竞争资源不会发生冲突,或者说概率很小,大家都可以同时访问这个资源,只有在最终修改的那一瞬间才会去检查是否能够修改。但如果发现冲突了怎么办?回滚。

这样很明显,乐观锁加锁的时间短,在多读少写,并发的可能性较低的情况下,可以减少事务之间的锁等待和事务对锁的管理开销,能够在一定程度上提高效率。但如果在资源竞争很激烈的情况下,乐观锁就会因为频繁的回滚导致性能的下降。

乐观锁的最初概念其实是Optimistic concurrency control,最初由华人科学家H. T. Kung在1981年提出,wikipedia给出的定义非常准确:

Optimistic concurrency control (OCC) is a concurrency control method applied to transactional systems such as rela[……]

继续阅读

vim编辑器常用指令

点击量:111

vim编辑器是Linux下面非常流行的文本编辑器,它是vi的增强版。本文主要介绍一些最最基本,也是最常用的指令。

一、基本模式

新手对vim可能非常讨厌,因为不清楚整个vim编辑器的操作状态,导致文件操作混乱。其实只要弄清楚这三种状态,vim还是很好用的。

命令模式(command mode):主要是光标的移动,文本复制,撤销之类的。

插入模式(insert mode):就是实际开始编辑文本了,进入的方式有很多,最常见的是i,对光标处插入字符进入编辑模式。

底行模式(lastline mode):也可以理解为设置选项,比如设置行号,语法高亮之类的。进入的方式是在命令模式下按下冒号:。

二、常用指令

1).插入指令
o     插入当前行的下一行
O    插入当前航的前一行
i      插入当前光标所在行
b     插入当前光标所在的前一个单词
w    插入当前光标所在的后一个单词
e     插入到下一个单词的开头

2).光标移动
0    数字0,移动光标到行首
^    移动光标到当前行的第一个字母
$    移动光标到行尾
h    左
j     下
k    上
l     右
gg   到文件的开头
G    [……]

继续阅读