折叠展开
Linux命令
grep
-
排除查找
grep -v grep
-
忽略大小写
grep -i
-
grep 排除目录和文件
grep -R --exclude-dir=pki myfreax /etc
折叠展开
-r或-R选项之间的主要区别在于,当使用大写字母R运行grep命令时,它将追踪所有符号链接文件。 grep命令的--exclude-dir选项允许排除多个文件与目录。排除目录的路径是相对于搜索的起始目录。 例如命令grep -R --exclude-dir=pki myfreax /etc将会在/etc目录中搜索包含字符串myfreax的文件,但不包括/etc/pki目录。
-
显示前后行 -A, 显示匹配后N行 -B, 显示匹配前N行 -C, 显示匹配前后N行
-
grep -E -o 'api\[.{0,30}?\]' ./202309180000 |sort|uniq -c
结果去重,且统计出现次数,
-E
是正则,-o
开关告诉grep仅显示匹配960 api[xxx_bp_aaa] 3 api[xxx_bp_ccc]
find
Find / -type f -name “abc*”
type f - 普通文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
find . ! -type d 在当前目录下查找除目录以外的所有类型的文件
sed
修改文件内容:
sed -ie '1,2s/2/1/g' hk.txt 1-2行
sed -ie 's/2/1/g' hk.txt 整个txt
vim
1、h(←) j(↓). K(↑) l(→)
2、向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键
3、[Ctrl] + [f]。相当于 [Page Down]按键 屏幕『向下』移动一页
4、[Ctrl] + [b]。相当于 [Page Up] 按键 屏幕『向上』移动一页
5、+ 。光标移动到非空格符的下一列
6、0 或功能键[Home].移动到这一行的最前面字符处
7、$ 或功能键[End],移动到这一行的最后面字符处
8、:1,$s/word1/word2/gc. 替换加确认。
| dG | 删除光标所在到最后一行的所有数据 |
| ---- | ------------------------------------ |
| d$ | 删除游标所在处,到该行的最后一个字符 |
10、u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次
| 区块选择的按键意义 | |
| ------------------ | -------------------------------------- |
| v | 字符选择,会将光标经过的地方反白选择! |
| V | 行选择,会将光标经过的行反白选择! |
| [Ctrl]+v | 区块选择,可以用长方形的方式选择资料 |
| y | 将反白的地方复制起来 |
| d | 将反白的地方删除掉 |
15、
| 多档案编辑的按键 | |
| ---------------- | --------------------------------- |
| :n | 编辑下一个档案 |
| :N | 编辑上一个档案 |
| :files | 列出目前这个 vim 的开启的所有档案 |
| 多窗口情况下的按键功能 | |
| ------------------------ | ------------------------------------------------------------ |
| :sp [filename] | 开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示)。 |
| [ctrl]+w+ j [ctrl]+w+↓ | 按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下箭头键),则光标可移动到下方的窗口。 |
| [ctrl]+w+ k [ctrl]+w+↑ | 同上,不过光标移动到上面的窗口。 |
| [ctrl]+w+ q | 其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+w+↓ 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+w+q 啊! |
| Ctrl+w w 遍历切换窗口 | |
17、**分屏打开多个文件:**使用-o 参数
:sp[lit] {file} 水平分屏
:vs[plit] {file} 垂直分屏
18、zz: 将当前行移动到屏幕中央。
zt: 将当前行移动到屏幕顶端。
zb: 将当前行移动到屏幕底端。
bash
1、strace -f ./main 2>&1 | grep 'connect'
2、lsof -i:22
3、$scp localpath ID@host:path
echo "Hello World\!" | nc -4u 192.168.31.65 2055
tcpdump -i ens160 -nn -vv -X udp port 2055
4、echo 12345 | tr '0-9' '9876543210' //替换
5、cat 12345| tr -d '0-9' // 删除所有数字
6、lsof -p 23295 //查询指定进程 打开的文件
7、top
P:根据CPU使用百分比大小进行排序。
M:根据驻留内存大小进行排序。
8、1, $s / old / new / g
9、nohup command > myout.file 2>&1 &
10、git checkout -b gm_1.0.1.24 origin/gm_1.0.1.24
11、cat /proc/cpuinfo |grep "processor"|sort -u|wc -l [sort -u ,unique.独一无二]
12、查看指定进程情况: top -p 31497 -d 3 查看进程运行状态,每隔3秒输出
13、du -h --max-depth=1
14、du -h -d 1 / | sort -hr 分析磁盘占用
du -s -h * | sort -nr | head
15、sed -n '70,75p' date.log 输出第70行到第75行的内容
16、git push origin feature-branch:feature-branch 本地先开好分支然后推送到远程
16、git push origin --delete Chapater6 可以删除远程分支Chapater6
17、command+shift+G 前往访达的具体路径
18、$grep -C 10 ‘123’ test.log//打印匹配行的前后10行
19、$ grep -A 10 -B 10 ‘123’ test.log //打印匹配行的前后
20、git blame -L 10,+11 main.go 查看文件的每部分是谁改的。
21、git show commit 展示某个提交
22、sar -n DEV 1
23、echo -n "hello"|md5sum
24、git revert -n 版本号
25、git cherry-pick commit
26、go env -w GOPROXY=https://goproxy.cn,direct
27、发送:tar cfz - * | nc 10.0.1.162 9995
28、接收:nc -l 9995 | tar xfvz -
29、 ss -tnap
30、 go vet -copylocks ./main.go
31、curl -fsSL | curl -oL
32、 git push origin -d dev/1
33、 git branch -d dev/1
34、 for i in `seq 10`; do echo $i;done
35、ssh-keygen -t ed25519 -C "82222@qq.com"
36、nohup ./bin/ccs-agent > start.log 2>&1 &
37、sbin/nginx -p /home/data1/orp/webserver
eval `ssh-agent`
ssh-add ~/.ssh/id_ed25519_hk
Mac 命令
option+command+esc。 调出“强制退出应该程序”界面
Git相关
账号 | 测试位置 | 路径 |
---|---|---|
18713593730@163.com | work@43.138.51.78 | /home/work/Learn_PR |
qq827435393@qq.com | root@101.43.196.57 | /root/git_project/Learn_PR |
远程分支有commit时
详细
远端分支origin/dev/4a (master)
本地分支dev/4a
远程分支有新commit
-
本地分支无commit,
git pull
:- 若无冲突,则会把本地分支 同步更新到最新远端分支。
- 若本地修改文件与远端分支的更新有冲突,则会拉取失败。
- 通过
git stash
缓存本地修改, - 通过
git pull
拉取最新远端分支。 - 通过
git stash pop
来patch刚才的本地修改缓存。遇到冲突 修改后git add file
即可。
-
本地分支有commit,若直接用
git pull
拉取,(fetch+merge) 一定会多一条merge log,且影响git log graph 美观优点是保留了自己开发commit的所有时间线开发历史。
-
本地分支有commit,
git rebase origin/dev/4a
(rebase 变基)git fetch
更新gitgit log origin/dev/4a -1
查看对应的远端分支是否有更新- 无更新,可直接git push;
- 若有更新,则通过
git rebase origin/dev/4a
,使本地分支变基到远端分支的最新节点 - 有冲突则通过
git add file
git rebase --continue
来解决冲突,也可以通过git rebase --abort
来终止rebase过程。
-
麻烦 ,一条命令搞定?
git pull --rebase
- 若本地有修改文件,未stash或者未commit ,会报错;推荐先
git stash
暂存一下。后面pop出来。
- 若本地有修改文件,未stash或者未commit ,会报错;推荐先
rebase缺点:会更改本地commit时间线。
这里补充一点:rebase 做了什么操作呢?
首先,git 会把 feature1 分支里面的每个 commit 取消掉;
其次,把上面的操作临时保存成 patch 文件,存在 .git/rebase 目录下;
然后,把 feature1 分支更新到最新的 master 分支;
最后,把上面保存的 patch 文件应用到 feature1 分支上;
merge
merge
git merge --no-commit
如果需要提交就 git commit
如果后悔了不提交就 git merge --abort
tag
tag
- 查看本地分支标签:
git tag
git show <tagname>查看标签信息
- 查看远程所有标签
git ls-remote --tags
- 给当前分支打标签
git tag v1.1.0
- 给特定的某个commit版本打标签
git tag v1.0.0 039bf8b
或者可以添加注释
git tag v1.0.0 039bf8b -m "add tags information"
- 删除本地标签
git tag -d v1.1.0
- 删除远程的某个标签
git push origin -d v1.0.0
或者
git push origin :v1.0.0
- 将本地标签一次性推送到远程
git push origin --tags
- 将本地某个特定标签推送到远程
git push origin v1.0.0
stash
stash
git stash show -p stash@{1} 查看某个stash
git stash -p 指定文件stash
git stash -- 指定文件
其它
other
-
根据某个commit创建分支
git checkout 039bf8b -b newBranch
-
git merge 和 git merge –no-ff
Git flow 模式 master分支 肯定推荐用–no-ff 这样feature分支不会污染master
-
aaa
Iterm2
Iterm2 快捷键
1、command+; 历史命令
2、command+d:垂直分割;
3、command+shift+d:水平分
4、ctrl+k 从光标处删至命令行尾
5、command + t 新建标签
6、切换屏幕:command + [ 或 command + ]
ADB
ADB 快捷键
ADB常见命令:
1、adb shell 进入模拟器控制台
2、adb push src dest
3、adb pull
4、adb devices 查看在线设备
5、adb kill-server ;adb start-server
6、adb install -r .apk
7、adb logcat
Gif录制
Gif 快捷键
Gif:
录制:option+comman+R
全屏录制:option+comman+A
空格开始录制,command+esc 结束录制。
option+command+k 启动台
devcloud vue 刷新同步, +vue.config.js + host
...