晴明的博客园 GitHub      CodePen      CodeWars     

[linux] linux vim pm2 常用命令

terminal

Tab:tab键是比较常用的一个快捷键,它的作用是补全文件名或者路径。

变换目录:cd
回到上一级目录: cd ..
回到上一次目录: cd - (可以穿越多层)
cd /xx 只可以在顶层用
其它层只能 cd xx

显示当前所在目录:pwd
建立新目录:mkdir
删除『空』的目录:rmdir
查看文件夹里的文件:ll

创建文件
echo > xx.js
echo 'xx' > xx.js

档案与目录的显示:ls
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件

移除档案或目录:rm
移动档案与目录,或更名:mv
取得路径的文件名与目录名:basename,dirname

cat:concatenate (只查看)
该命令用于查看文本文件的内容,后接要查看的文件名,
通常可用管道与more和less一起使用,从而可以一页页地查看数据。
cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文件的内容
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作

rm -rf 删除路径下所有文件
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
rm [命令开关..] [文件 | 目录]
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
rm -rf dir1/* 删除dir下的所有内容,而不删除文件夹本身

mv [-f] [-i] 原名称 新名称
mv dir1 new_dir 重命名/移动 一个目录

cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp ./ -a /tmp/dir1 复制当前工作目录内容到指定目录
cp -a dir1 dir2 复制一个目录

ps 命令用于查看当前正在运行的进程。
grep 是搜索
例如: ps -ef | grep java
表示查看所有进程里 CMD 是 java 的进程信息
ps -aux | grep java
-aux 显示所有状态

kill 命令用于终止进程
例如: kill -9 [PID]
-9 表示强迫进程立即停止
通常用 ps 查看进程 PID ,用 kill 命令终止进程

man xx 某些命令会有说明

clear
刷新屏幕,本质上只是让终端显示页向后翻了一页,
如果向上滚动屏幕还可以看到之前的操作信息。

reset
完全刷新终端屏幕,之前的终端输入操作信息将都会被清空

可以直接vi+文件名创建文件
也可以touch+文件名创建文件,然后vi编辑内容
或者echo+内容 > 文件名创建文件

pageUp
pageDown 翻页

删除
ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dl
ctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dh
ctrl + k 删除光标后面所有字符相当于VIM里d shift+$
ctrl + u 删除光标前面所有字符相当于VIM里d shift+^
ctrl + w 删除光标前一个单词相当于VIM里db
ctrl + y 恢复ctrl+u上次执行时删除的字符
ctrl + ? 撤消前一次输入
alt + r 撤消前一次动作
alt + d 删除光标所在位置的后单词

移动
ctrl + a 将光标移动到命令行开头相当于VIM里shift+^
ctrl + e 将光标移动到命令行结尾处相当于VIM里shift+$
ctrl + f 光标向后移动一个字符相当于VIM里l
ctrl + b 光标向前移动一个字符相当于VIM里h
ctrl + 方向键左键 光标移动到前一个单词开头
ctrl + 方向键右键 光标移动到后一个单词结尾
ctrl + x 在上次光标所在字符和当前光标所在字符之间跳转
alt + f 跳到光标所在位置单词尾部

替换
ctrl + t 将光标当前字符与前面一个字符替换
alt + t 交换两个光标当前所处位置单词和光标前一个单词
alt + u 把光标当前位置单词变为大写
alt + l 把光标当前位置单词变为小写
alt + c 把光标当前位置单词头一个字母变为大写
oldstrnewstr 替换前一次命令中字符串

历史命令编辑
ctrl + p 返回上一次输入命令字符
ctrl + r 输入单词搜索历史命令
alt + p 输入字符查找与字符相接近的历史命令
alt + > 返回上一次执行命令

其它
ctrl + s 锁住终端
ctrl + q 解锁终端
ctrl + l 清屏相当于命令clear
ctrl + c 另起一行
ctrl + i 类似TAB健补全功能
ctrl + o 重复执行命令
alt + 数字键 操作的次数

GNOME桌面环境下兼容UTF-8的文本编辑器
gedit xx

vim

vi(查看和编辑):

v:可视模式(选多个内容)
ctrl+v: 可视块
shift+v: 可视行

按v进入visual状态,选择多行,用shift+>或shift+<缩进或缩出
通常根据语言特征使用自动缩进排版:
在命令状态下对当前行用== (连按=两次),
或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行

i 插入
insert: 插入/替换模式

冒号:: command模式。 再输入 w 保存文件
esc:退出模式

空格键 向右移动一格

p:复制之前删除的行。

x 删除后面的字符 X 删除前一个字符 删除3个字符就是3x

dd:删除一行
D 删除到行尾的文本

caw:改写单词 c 相当于 d 变为编辑模式

J:删除换行符,使下一行并上来。
nJ:连接后面的n行

u:撤销上一次操作
U:撤销当前行的所有修改

ctrl+r:对撤消的撤消

yy复制游标所在行整行。或大写一个Y。
2yy或y2y复制两行。 ㄟ ,请举一反三好不好! 😃
y^复制至行首,或y0。不含游标所在处字元。
y$复制至行尾。含游标所在处字元。
yw复制一个word。
y2w复制两个字(单词)。
yG复制至档尾。
y1G复制至档首。
p小写p代表贴至游标后(下)。
P大写P代表贴至游标前(上)。

: 命令模式

:w
保存编辑后的文件内容,但不退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中。

:w!
强制写文件,即强制覆盖原有文件。如果原有文件的访问权限不允许写入文件,例如,原有的文件为只读文件,则可使用这个命令强制写入。但是,这种命令用法仅当用户是文件的属主时才适用,而超级用户则不受此限制。

:wq
保存文件内容后退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中,然后退出vim编辑器。另外一种替代的方法是用ZZ命令。

:wq!
强制保存文件内容后退出vim编辑器。这个命令的作用是把内存缓冲区中的数据强制写到启动vim时指定的文件中,然后退出vim编辑器。

ZZ
使用ZZ命令时,如果文件已经做过编辑处理,则把内存缓冲区中的数据写到启动vim时指定的文件中,然后退出vim编辑器。否则只是退出vim而已。注意,ZZ命令前面无需加冒号“:”,也无需按Enter键。

:q
在未做任何编辑处理而准备退出vim时,可以使用此命令。如果已做过编辑处理,则vim不允许用户使用“:q”命令退出,同时还会输出下列警告信息:
No write since last change (:quit! overrides)

:q!
强制退出vim编辑器,放弃编辑处理的结果。如果确实不需要保存修改后的文件内容,可输入“:q!”命令,强行退出vim编辑器。

:w filename
把编辑处理后的结果写到指定的文件中保存

:w! filename
把编辑处理后的结果强制保存到指定的文件中,如果文件已经存在,则覆盖现有的文件。

:wq! filename
把编辑处理后的结果强制保存到指定的文件中,如果文件已经存在,则覆盖现有文件,并退出vim编辑器。

命令模式下,按/,然后输入要查找的字符,Enter。
/的区别是,一个向前(下)找,一个向后(上)。
*可以查找当前光标下的word(完全符合),
g*则部分符合,
以#代替*即g#表示向后(上)找。

n查找下一个匹配单词,按N查找上一个匹配单词。

pm2

Options:

-h, --help                           output usage information
-V, --version                        output the version number
-v --version                         get version
-s --silent                          hide all messages
-m --mini-list                       display a compacted list without formatting
-f --force                           force actions
-n --name <name>                     set a <name> for script
-i --instances <number>              launch [number] instances (for networked app)(load balanced)
-l --log [path]                      specify entire log file (error and out are both included)
-o --output <path>                   specify out log file
-e --error <path>                    specify error log file
-p --pid <pid>                       specify pid file
-k --kill-timeout <delay>            delay before sending final SIGKILL signal to process
--max-memory-restart <memory>        specify max memory amount used to autorestart (in megaoctets)
--restart-delay <delay>              specify a delay between restarts (in milliseconds)
--env <environment_name>             specify environment to get specific env variables (for JSON declaration)
-x --execute-command                 execute a program using fork system
-u --user <username>                 define user when generating startup script
--hp <home path>                     define home path when generating startup script
-c --cron <cron_pattern>             restart a running process based on a cron pattern
-w --write                           write configuration in local folder
--interpreter <interpreter>          the interpreter pm2 should use for executing app (bash, python...)
--interpreter-args <arguments>       interpret options (alias of --node-args)
--log-date-format <momentjs format>  add custom prefix timestamp to logs
--no-daemon                          run pm2 daemon in the foreground if it doesn't exist already
--skip-env                           do not refresh environmnent on restart/reload
--source-map-support                 force source map support
--only <application-name>            with json declaration, allow to only act on one application
--disable-source-map-support         force source map support
--merge-logs                         merge logs from different instances but keep error and out separated
--watch [paths]                      watch application folder for changes
--ignore-watch <folders|files>       folder/files to be ignored watching, chould be a specific name or regex - e.g. --ignore-watch="test node_modules "some scripts""
--node-args <node_args>              space delimited arguments to pass to node in cluster mode - e.g. --node-args="--debug=7001 --trace-deprecation"
--no-color                           skip colors
--no-vizion                          start an app without vizion feature (versioning control)
--no-autorestart                     start an app without automatic restart
--no-treekill                        Only kill the main process, not detached children
--no-pmx                             start an app without pmx
--no-automation                      start an app without pmx

Basic Examples:

Start an app using all CPUs available + set a name :
$ pm2 start app.js -i 0 --name "api"

Restart the previous app launched, by name :
$ pm2 restart api

Stop the app :
$ pm2 stop api

Restart the app that is stopped :
$ pm2 restart api

Remove the app from the process list :
$ pm2 delete api

Kill daemon pm2 :
$ pm2 kill

Update pm2 :
$ npm install pm2@latest -g ; pm2 update

More examples in https://github.com/Unitech/pm2#usagefeatures

Deployment help:

$ pm2 deploy help
    list		list all processes
    ls			(alias) list all processes
    l			(alias) list all processes
    status		(alias) list all processes
posted @ 2016-08-11 16:42  晴明桑  阅读(1114)  评论(0编辑  收藏  举报