目录
windows的cmd命令
切换盘符到D盘 | d: |
查看文件夹下文件及文件夹(ls) | dir <path> |
删除文件 | del <filename> |
强制删除文件 | del /F /S /Q <filename> |
Visual Studio的快捷键
复制当前行并粘贴到下一行 | ctrl+D |
快速注释和取消 | 选中内容,ctrl+shift+/ |
VSCode快捷键
查询工作区内文件 | ctrl+p |
查询各种插件命令 | ctrl+shift+p |
(多行)注释和取消 | ctrl+/ |
块注释和取消 | shift+alt+a(这个容易被微信QQ等工具的截图快捷键覆盖) |
向下/向上复制行 | shift+alt+↑/↓ |
VSCode功能
查看所有VSCode快捷方式 | 左下角齿轮->键盘快捷方式(Keyboards Shortcuts) |
工作区各种设置 | 文件->首选项->设置 |
增加其他文件夹到工作区 | 文件->将文件夹添加到工作区 |
重命名工作区名字 | 文件->将工作区另存为 |
Linux命令
常见
创建新文件 | touch |
创建新文件夹 | mkdir |
进入文件夹 | cd |
查看文件夹下文件或文件夹 | ls (ll等价于ls -l) |
复制粘贴 | cp |
删除 | rm |
移动/重命名 | mv |
查看当前路径 | pwd |
相对常见
以人类可读方式递归显示path下各文件大小,其中文件夹显示的大小是它本身的大小,不包括里面文件的大小 | ll -h <path> |
以人类可读方式递归显示path下各文件夹真实大小 | du -h <path> |
以人类可读方式只递归一层显示path下文件夹真实大小 | du -h <path> --max-depth=1 |
以人类可读方式显示磁盘大小和利用率 | df -h |
查看cpu占用 | top (可以自己下载安装htop等更好用的工具) |
将文件输出到屏幕 | cat |
将文件首几行输出到屏幕 | head |
将文件末几行输出到屏幕 | tail |
将文件末几行输出到屏幕,文件有新输入会将新输入输出,ctrl+c退出 | tailf |
管道,将前面的输出作为后面的输入 | |(逻辑或的符号) |
从文本文件或管道数据流中筛选出匹配的行或数据,适用各种正则表达 | grep |
列出进程 | ps |
杀死进程 | kill |
查找 | find <path> -name "<regex-filename>" |
查找 | which |
查找 | whereis |
修改file文件或目录权限为nnn(三个二进制表示为三位数的数字,一般775就足够了) | chmod <nnn> <file> |
修改文件或目录权限 | chown |
压缩 | tar |
压缩 | zip |
跨服务器传输文件 | scp |
跨服务器传输文件 | nc |
将命令结果实时输出到屏幕,常用于周期性执行命令 | watch |
创建软链接 | ln -s <target,即被指向的文件夹> <source,即当前目录的软链接名> |
查看端口是否空闲 | netstat |
少见
通过模式查找文件内容 | awk |
通过模式查找文件内容,比awk功能少且使用更简单 | sed |
vim命令
模式转换
可以参考下面两个链接
以下<n>表示数n
光标移动
普通/默认模式下
跳转到文件头 | gg |
跳转到文件末行首字符 | shift+g,即G |
跳转到当前行行首 | 0或HOME键 |
跳转到当前行非空格的第一个字符 | ^ |
跳转到当前行行末 | $或END键 |
向右移动n个单词,n忽略则为1 | <n>w |
向左移动n个单词,n忽略则为1 | <n>b |
移动到第n行非空格的第一个字符 | :<n>或<n>G |
移动到当前行中下n个指定字符x,n忽略则为1 | <n>f<x> |
向左右上下移动n个字符,n忽略则为1 向左n个 向右n个 向上n个 向下n个 | <n>h或<n>← <n>l或<n>→ <n>k或<n>↑ <n>j或<n>↓ |
在左大括号{处,移动到匹配的右大括号}处 | % |
向上翻屏 | ctrl+b或PgUp |
向下翻屏 | ctrl+f或PgDn |
删除
普通/默认模式下
剪切/删除当前行开始的n行,n忽略则为1 | <n>dd |
剪切/删除当前行光标开始的n行内容 | <n>D |
删除当前光标后面的n个字符,n忽略则为1 | <n>x |
复制粘贴
普通/默认模式下
复制当前行开始的n行,n忽略则为1 | <n>yy |
粘贴在光标所在行下一行 | p |
粘贴在光标所在行上一行 | P |
其他方式参考下面文章
vim 复制粘贴_IC learner的博客-CSDN博客_vim复制粘贴快捷键
撤销操作和还原撤销操作
普通/默认模式下
撤销 | u |
还原撤销 | ctrl+r |
查找
普通/默认模式下。斜杠、问号、冒号开头的会进入命令模式
正向模糊查找字符串string | /string |
反向模糊查找字符串string | ?string |
正向精确查找字符串the,\<匹配词首,\>匹配词尾 | /\<the\> |
反向精确查找字符串the,\<匹配词首,\>匹配词尾 | ?\<the\> |
正向模糊查找当前单词对应字符串 | g* |
反向模糊查找当前单词对应字符串 | g# |
正向精确查找当前单词 | * |
反向精确查找当前单词 | # |
在正向或反向查找基础上找下一个出现的string | n |
在正向或反向查找基础上找上一个出现的string | N |
命令模式其他命令
普通/默认模式下通过冒号进入命令模式,这部分命令应该都可以写在.vimrc中,使之在vim启动时就执行这些命令。
取消高亮 | nohl |
显示各行为第几行 | set nu |
取消显示各行为第几行 | set nonu |
各种设置编码格式 | set encodings=utf-8 set fileencoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936,gb18030,latin1 set termencoding=utf-8 |
tab替换成空格,默认8个 | set expantab |
tab替换的空格数改成4个 | set ts=4 |
空格对齐设置 | set shiftwidth=4 |
语法高亮 | syntax on |
SVN命令
“/”表示多选一,“<>”表示根据实际情况修改,“[]”表示可选项
从服务端获取整个版本库或分支或其他目录,checkout服务端项目到本地 | svn export <server_path> svn co/checkout <server_path> [--username <username> --password <password>] |
添加文件,同git add | svn add <file> |
删除文件,同git rm | svn rm/remove/del/delete <file> |
移动文件 | svn mv/move <oldfile> <newfile> |
将本地代码提交到服务端版本库(svn没有本地暂存区、版本库的概念,同git commit + git push) | svn ci/commit -m "<commit description>" |
从服务器更新到本地分支/文件夹(同git pull),猜测不会覆盖原本文件,可能产生冲突。 | svn up/update |
查看当前分支。info里有不少信息,里面URL就是当前分支。还包括了版本库根目录、版本库最后版本,当前分支/文件夹最后修改的作者、版本和时间等 | svn info |
恢复本地修改 | svn revert [-R] <path> |
查看版本状态(同git status) | svn st/stat/status [-q/-u/-v] <path> |
查看日志(同git log) | svn log <path> |
比较修改后文件和基础版本区别(同git diff) | svn di/diff <path> |
比较版本m和n的区别 | svn di/diff -r <m>:<n> <path> |
合并两个版本,一般会产生冲突(类似git merge) | svn merge -r <m>:<n> <path> |
冲突解决流程 | svn st | grep mine(不一定对) |
解决冲突 | |
svn resolved <file> | |
svn commit -m "<合并分支,解决冲突>" | |
在版本库中的文件和目录列表 | svn ls/list <path> |
创建版本控制下的新目录 | svn mkdir <path> |
本地创建分支mybranch并提交到服务端 | cd <server_path> |
svn cp/copy trunk branches/mybranch | |
[svn st/status] | |
svn ci/commit -m "创建了一个新分支mybranch" | |
直接在服务端创建分支 | svn copy <server_path>/trunk <server_path>/branches/mybranch -m "创建了一个新分支mybranch" |
切换分支到刚刚新建的分支(其实如果已经吧所有branches、tags、trunk里面分支都拉取下来了的话,就不用切换分支了,直接在对应路径下修改即可。只有只拉取了某一个分支的时候,才需要用svn switch到其他分支) | svn co/checkout/sw/switch <server_path>/branches/mybranch |
查找分支创建时的版本 | cd <server_path>/branch |
svn log --stop-on-copy (最后一个条目即创建时的版本) | |
查找分支创建时的版本(方法二) | cd trunk |
svn log -q -stop-on-copy <server_path>/mybranch | |
合并分支到主干 | cd <server_path>/trunk |
svn merge -r <mybranch version>:HEAD <server_path>/branches/mybranch | |
帮助 | svn h/?/help |
锁定/解锁某path 对该path提交前不自动解锁 | svn lock/unlock <path> svn ci -m "提交备注" --no-unlock <path> |