删除文件 rm -f (force)
删除目录 rm -rf(r递归)
移动 mv 同目录下移动实际就是重命名
删除 :1,10d
设置自动缩进 set smartindent
显示行号 set nu,set number
查找 find -name “ “
echo "<pre>";
ls -Shl
文件大小排序
计数:ls -l | wc -l
ps -ef 查看全格式的全部进程
-e显示全部进程 -f全格式
df -h
磁盘大小
Mac VSCODE
复制当前文件路径:Command + Option + C
撤销上一步:command + z
撤销下一步:command + shift + z
mac电脑谷歌浏览器全屏显示选项卡:command + shift + f
mac google恢复关闭选项卡:command + shift + t
VS Code格式化代码:Shift + Option + F
任务管理器:Command + Option(Win系统的Alt)+Esc
注释/* */:Shift + Option + A
向下复制一行:Shift + Option + Down
删除当前行:Shift + Command + K
剪贴当前行:Command + X
在 Vscode 扩展商店中搜索koroFileHeader,点击安装。
mac:ctrl+cmd+i
文件头部注释:
在当前编辑文件中使用快捷键:
window:ctrl+alt+I mac:ctrl+cmd+I,
word文档回到第一页:fn+command+左/右箭头
函数注释:
将光标放在函数行或者将光标放在函数上方的空白行
使用快捷键window:ctrl+alt+t,mac:ctrl+cmd+t,
Command+Option+Shift+Esc强制退出当前程序
Root模式:sudo su –
Git
git add syncAction.php
git commit -m "tieba-8556"
列出本地已经存在的分支: git branch
查看所有分支列表,包括本地和远程: git branch -a
创建分支(仍停留在当前分支): git branch dev
切换分支: git checkout dev
分支存在切换|分支不存在创建并切换: git checkout -b dev
删除dev分支: git branch -d dev
强制删除dev分支: git branch -D dev
查看本地分支对应的远程分支: git branch -vv
分支重命名: git branch -m oldName newName
查看帮助: git checkout --help
git push origin HEAD:refs/for/wap-mobile-mowsenior_1-0-2838_BRANCH
git stash
git pull
git stash pop
git stash list
git stash drop stash@{0} + 名称 :删除(默认删除第一个)
git stash clear: 删除所有的内容
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
查看已暂存修改
git diff --cached
注意:--staged 和 --cached 是同义词
git diff --cached 等于 git diff --staged
跳到开头快捷键:ctrl+A
跳到命令结尾:ctrl+E
解压
tar zxvf pythontab.tar.gz
git reset --hard origin/master 重置
git reset --hard HEAD^ 来回退到上一次commit的状态。
git reset --hard FETCH_HEAD
FETCH_HEAD表示上一次成功git pull之后形成的commit点
git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull 则是将远程主机的最新内容拉下来后直接合并,
即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
Grep
grep -E "POST|GET" access_log.20211207* | grep -v 'hhvmmon.orp.baidu.com' | awk -F" " '{print $7}' | awk -F"?" '{print $2}' | awk -F"&" '{print $2}'| sort|uniq -c|sort -rn
grep or 操作
grep -E
grep -E 选项可以用来扩展选项为正则表达式。 如果使用了grep 命令的选项-E,则应该使用 | 来分割多个pattern,以此实现OR操作。
grep -E 'pattern1|pattern2' filename
egrep
egrep 命令等同于‘grep -E’。因此,使用egrep (不带任何选项)命令,以此根据分割的多个Pattern来实现OR操作。
egrep 'pattern1|pattern2' filename
grep -e
grep -e 选项,只能传递一个参数。在单条命令中使用多个 -e 选项,得到多个pattern,以此实现OR操作。
grep -e pattern1 -e pattern2 filename
grep and 操作
使用 -E 'pattern1.*pattern2'
grep命令本身不提供AND功能。但是,使用 -E 选项可以实现AND操作。
grep -E 'pattern1.*pattern2' filename
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename
第一个例子如下:(其中两个pattern的顺序是指定的)
$ grep -E 'Dev.*Tech' employee.txt
200 Jason Developer Technology $5,500
第二个例子:(两个pattern的顺序不是固定的,可以是乱序的)
$ grep -E 'Manager.*Sales|Sales.*Manager' employee.txt
使用多个grep命令
可以使用多个 grep 命令 ,由管道符分割,以此来实现 AND 语义。
grep -E 'pattern1' filename | grep -E 'pattern2'
grep not 操作
使用选项 grep -v
使用 grep -v 可以实现 NOT 操作。 -v 选项用来实现反选匹配的( invert match)。如,可匹配得到除下指定pattern外的所有lines。
grep -v 'pattern1' filename
在使用grep命令时出现错误Binary file (standard input) matches
解决方法 加上-a
例如原本为 grep hello
改为 grep -a hello
grep 后加单引号、双引号和不加引号的区别
单引号:
可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。
双引号:
把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。
不加引号:
不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。
使用规则:
一般常量用单引号' '括起,如果含有变量则用双引号" "括起。
最大不同:
单引号与双引号的最大不同在于双引号仍然可以保有变数的内容,但单引号内仅能是一般字元,而不会有特殊符号
使用举例:
“”号里面遇到$,\等特殊字符会进行相应的变量替换
‘’号里面的所有字符都保持原样
对于字符串,两者相同
匹配模式也大致相同
但有一些区别非常容易混淆
grep "$a" file #引用变量a,查找变量a的值
grep '$a' file #查找“$a”字符串
grep "\\" file #grep: Trailing backslash(不知原因)
grep '\\' file #查找‘\’字符
1、$ 美元符
2、\ 反斜杠
3、` 反引号
4、" 双引号
这四个字符在双引号中是具有特殊含义的,其他都没有,而单引号使所有字符都失去特殊含义
如果用双引号,查找一个\,就应该用四个\:
grep "\\\\" file 这样就对了,这样等同于:
grep '\\' file
第一条命令shell把四个\,转义成2个\传递给grep,grep再把2个\转义成一个\查找
第二条命令shell没转义,直接把2个\传递给grep,grep再把2个\转义成一个\查找
其实grep执行的是相同的命令
Sort
sort -u 去除重复行
sort -r sort默认的排序方式是升序,加-r降序,-r是默认第一列进行排序并且是降序
sort -n
10比2小的情况,出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面。
使用-n选项,来告诉sort,“要以数值来排序”!