Linux
- 查看端口占用
netstat -tunlp | grep 80
OR filter out specific TCP port such as 443:$ netstat -tulpn | grep LISTEN $ netstat -tulpn | more
Where netstat command options are:$ netstat -tulpn | grep ':443'
-t : Select all TCP ports
-u : Select all UDP ports
-l : Show listening server sockets (open TCP and UDP ports in listing state)
-p : Display PID/Program name for sockets. In other words, this option tells who opened the TCP or UDP port. For example, on my system, Nginx opened TCP port 80/443, so I will /usr/sbin/nginx or its PID.
-n : Don’t resolve name (avoid dns lookup, this speed up the netstat on busy Linux/Unix servers) - 检查内存占用
-m 表示单位为 M,-k 表示单位为 Kfree -m
- 如何通过父进程号杀死所有子进程
其中通过 -P 指定父进程号,excerpt from pkill manpkill -TERM -P 27888
不过如果父进程还存活,会看到子进程变成了僵尸进程,这个时候只要再杀死父进程即可。-P, --parent ppid,... Only match processes whose parent process ID is listed.
- 查看已输入命令历史
history [n]
- 排它性 mv
经常遇到这样的问题,同一个目录中,将某些子文件或者目录排除,将其余内容 move 到某个子目录中;而 mv 指令并没有 --excludes 参数,如何实现呢?# 将当前目录中除了 c 目录本身的其他内容迁移到 c/ 中 mv !(c) c/ # 将当前目录中除了 c 目录和 b 文件的其他内容迁移到 c/ 中 mv !(c|b) c/
vim
如何快速粘贴复制
v 进入编辑模式,y 复制,p 粘贴。
在费编辑模式下点击
v
,进入可视模式(View model)然后,点击键盘箭头上下键,选择行
选择好了以后,点击 y 键,完成复制。此时,vim 会自动将光标定位到选中文本的开始的地方,并退出可视模式。
然后,将光标移动到你想要粘贴的地方,按 p 粘贴即可(注意,一定要在非编辑模式下操作)。
不过要注意的是,这个复制只能在 ssh 窗口使用,如果想要粘贴到本地文件是不可以的。
如何显示/隐藏行号
退出编辑模式,输入如下命令,回车,显示行号
:set nu
隐藏行号
:set nonu
如何消除高亮
搜索后关键字会被高亮,使用如下命令取消高亮
:noh
删除多行
退出编辑模式,输入 d<n>d
。dd
则是删除单行
在编辑中执行 shell 命令
vim 中的时候,可以执行 shell 命令,做一些检查,首先 ESC 退出编辑模式,然后键入 <span style="color:#FF9966">:!
</span> 就可以直接输入 shell 命令了,如图所示,
通过输入 ls [filepath]
来判断文件是否存在。
如何移动至行首行尾
在非编辑模式下,
-
shift + 4
即是输入$
表示移动至行尾 -
shift + ^
即是输入^
表示引动至行首
如何移动至文本头尾
-
shift + G
移动至文本最后一行的行首。 -
shift + 0
移动至文本最后一行的行尾。 -
gg
移动至文本最开始一行的行首。
撤销 | 恢复撤销
- 撤销:u
- 恢复撤销:Ctrl + r
如何查找
进入 view 模式,输入 /
进入查找模式,然后输入要查找的内容,点击回车键即可全文检索。如果要查询下一个匹配项,按 n
键。
不能粘贴注解
好多次,使用 vim 往文件中粘贴带注解的代码,只要有一行有注解,余下的行都会被粘贴为注解,很恼人!https://stackoverflow.com/questions/3217007/how-do-you-paste-with-vim-without-code-being-commented 找到了解决方案。粘贴之前要开启 paste 模式,
:set paste
然后再按照之前的方式粘贴,I
→ edit mode → 粘贴即可。
如果要退出 paste 模式,使用下面的命令即可。
:set nopaste
Nginx 语法高亮
# wget http://nginx.org/download/nginx-1.14.2.tar.gz
# tar -xf nginx-1.14.2.tar.gz
进入到源码包解压目录
# cd nginx-1.14.2/
将相应的语法文件拷贝到对应的目录中,即可完成
# cp -r contrib/vim/* /usr/share/vim/vimfiles/
前后台切换
当编辑到一半有其它任务要做,可以 ctrl + z
将当前 vim 任务切换至后台,通过 jobs
可以查看当前窗口的任务状态,如下,
$ jobs
[1] + suspended vim tmp.txt
可以看到当前窗口有一个已经停止的任务;然后通过 fg %1 将其再次切换到前台,其中 1 对应的就是 jobs 的序列号。