个人觉得很好用的maven命令

maven 常用命令 创建一个简单的maven项目 mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-site \ -DgroupId=com.mycompany.app \ -DartifactId=my-app-site

Published
Categorized as tool

gcc 编译基础与make

gcc 编译基础 gcc common variable -l/path 是加入某个library,库的前缀lib和扩展名(.a或.so)不需要写 -I/path 后面接的路径就是设置要去搜索相关的include文件的目录. -Wall 编译的时候输出警告信息 -O 在编译的时候,依据操作系统环境,对程序进行优化 gcc default linux 默认是将函数库放置在/lib与/usr/lib当中.gcc默认会链接这两个路径下的函数库. 同理,gcc编译会默认会搜索/usr/include目录下的头文件. 通常称-Wall或者-O这些非必要的参数为标志FLAGS,当使用c语言的时候,也可能简称这些标志为CFLAGS

Published
Categorized as tool

my usual vim command

command 常用的命令 shortcuts J 将下一行拼接到当前行 i + ctrl + j 分割成两行 y 复制到寄存器 p 从寄存器粘贴 yy 复制当前行到寄存器 n+yy 复制从当前行开始的n行到寄存器 x del X del before dd 删除当前行 ^ 光标移动到行首 $ 光标移动到行末 gg 光标移动到文件头 GG 光标移动到文件末行 u undo ctrl+r redo :q quit :q! quit forcely :wq save and quit ZZ save and quit . replace last command… Continue reading my usual vim command

Published
Categorized as tool

linux 进程

进程 根据维基百科的定义,进程(Process)是计算机中已运行程序的实体。用户下达运行程序的命令后,就会产生进程。进程需要一些资源才能完成工作,如CPU使用时间、存储器、文件以及I/O设备,并且依序逐一进行.也就是每个CPU核心任何时间内仅能运行一项进程。 PID=1 有一个PID为1的进程是由内核创建的init进程,其他子进程都是由它衍生出来,进程号为1的进程并没有PPID 创建 操作系统通过POSIX定义的fork和exec接口创建起一个POSIX进程,这个进程就可以使用通用的IPC、信号等机制。 原来普通进程运行时默认会绑定TTY(虚拟终端),关闭终端后系统会给上面所有进程发送TERM信号,这时普通进程也就退出了。当然还有些进程不会退出,这就是后面将会提到的守护进程。 Nohup 的原理也很简单,终端关闭后会给此终端下的每一个进程发送SIGHUP信号,而使用nohup运行的进程则会忽略这个信号,因此终端关闭后进程也不会退出。 IPC全称Interprocess Communication,指进程间协作的各种方法,当然包括共享内存,信号量或Socket等。 FD 每个进程操作系统都会分配三个文件资源,分别是标准输入(STDIN)、标准输出(STDOUT)和错误输出(STDERR)。 Linux中“一切皆文件”,进程的一切运行信息(占用CPU、内存等)都可以在文件系统找到 go run 通过 go run 每次都会启动一个新的Go虚拟机来执行进程。 因为 go run 会启动进程重新编译、链接和运行程序,因此每次运行的进程名都不相同,而编译出来的程序有明确的名字, 进程锁 其实要实现一个进程锁很简单,通过文件就可以实现了。例如程序开始运行时去检查一个PID文件,如果文件存在就直接退出,如果文件不存在就创建一个,并把当前进程的PID写入文件中。 特殊的进程 孤儿进程 根据维基百科的解释,孤儿进程指的是在其父进程执行完成或被终止后仍继续运行的一类进程。 在现实中用户可能刻意使进程成为孤儿进程,这样就可以让它与父进程会话脱钩,成为后面会介绍的守护进程。 僵死进程 一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。 进程间通信 管道(Pipe) 管道是进程间通信最简单的方式,任何进程的标准输出都可以作为其他进程的输入。 信号(Signal) 信号Signal,注意信号只是告诉进程发生了什么事件,而不会传递任何数据。 消息队列(Message) 和传统消息队列类似,但是在内核实现的。 共享内存(Shared Memory) 信号量(Semaphore) 信号量本质上是一个整型计数器,调用wait时计数减一,减到零开始阻塞进程,从而达到进程、线程间协作的作用。 套接口(Socket) 通过网络来通信,这也是最通用的IPC,不要求进程在同一台服务器上。 信号 进程发给进程,也可以是内核发给进程 kill -l # HUP INT QUIT ILL TRAP… Continue reading linux 进程

香港阿里云ip路由

深圳阿里云到香港阿里云 要经过美国线路… 香港阿里云到深圳阿里云 看起来像走的内网到浙江阿里云 深圳阿里云到香港阿里云 [root@xxxxx ~]# traceroute 47.52.xx.xx traceroute to 47.52.xx.xx (47.52.xx.xx), 30 hops max, 60 byte packets 1 * * * 2 11.219.126.105 (11.219.126.105) 6.572 ms 11.219.127.109 (11.219.127.109) 6.830 ms 11.219.126.105 (11.219.126.105) 6.833 ms (美国) 3 11.219.127.154 (11.219.127.154) 5.981 ms 11.219.127.146 (11.219.127.146) 5.663 ms 11.219.126.154 (11.219.126.154) 5.612 ms 4 11.177.232.122 (11.177.232.122) 1.963 ms… Continue reading 香港阿里云ip路由