常用命令汇总

Linux

  • 查看端口占用
    netstat -tunlp | grep 80
    
    $ netstat -tulpn | grep LISTEN
    $ netstat -tulpn | more
    
    OR filter out specific TCP port such as 443:
     $ netstat -tulpn | grep ':443'
    
    Where netstat command options are:
    -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)
  • 检查内存占用
    free -m
    
    -m 表示单位为 M,-k 表示单位为 K
  • 如何通过父进程号杀死所有子进程
    pkill -TERM -P 27888
    
    其中通过 -P 指定父进程号,excerpt from pkill man
    -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 粘贴。

  1. 在费编辑模式下点击 v,进入可视模式(View model)

  2. 然后,点击键盘箭头上下键,选择行

  3. 选择好了以后,点击 y 键,完成复制。此时,vim 会自动将光标定位到选中文本的开始的地方,并退出可视模式。

  4. 然后,将光标移动到你想要粘贴的地方,按 p 粘贴即可(注意,一定要在非编辑模式下操作)。

不过要注意的是,这个复制只能在 ssh 窗口使用,如果想要粘贴到本地文件是不可以的。

如何显示/隐藏行号

退出编辑模式,输入如下命令,回车,显示行号

:set nu

隐藏行号

:set nonu

如何消除高亮

搜索后关键字会被高亮,使用如下命令取消高亮

:noh

删除多行

退出编辑模式,输入 d<n>ddd 则是删除单行

在编辑中执行 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 的序列号。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容