折叠展开

Linux命令

grep

  1. 排除查找 grep -v grep

  2. 忽略大小写 grep -i

  3. 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目录。
    
  4. 显示前后行 ​ -A, 显示匹配后N行 ​ -B, 显示匹配前N行 ​ -C, 显示匹配前后N行

  5. 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

  1. 本地分支无commit,git pull

    1. 若无冲突,则会把本地分支 同步更新到最新远端分支。
    2. 若本地修改文件与远端分支的更新有冲突,则会拉取失败。
    3. 通过git stash缓存本地修改,
    4. 通过git pull 拉取最新远端分支。
    5. 通过git stash pop 来patch刚才的本地修改缓存。遇到冲突 修改后 git add file即可。
  2. 本地分支有commit,若直接用git pull 拉取,(fetch+merge) 一定会多一条merge log,且影响git log graph 美观

    优点是保留了自己开发commit的所有时间线开发历史。

  3. 本地分支有commit,git rebase origin/dev/4a (rebase 变基)

    1. git fetch 更新git
    2. git log origin/dev/4a -1 查看对应的远端分支是否有更新
    3. 无更新,可直接git push;
    4. 若有更新,则通过git rebase origin/dev/4a,使本地分支变基到远端分支的最新节点
    5. 有冲突则通过git add file git rebase --continue来解决冲突,也可以通过git rebase --abort来终止rebase过程。
  4. 麻烦 ,一条命令搞定? git pull --rebase

    1. 若本地有修改文件,未stash或者未commit ,会报错;推荐先git stash 暂存一下。后面pop出来。

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
  1. 查看本地分支标签:
git tag

git show <tagname>查看标签信息
  1. 查看远程所有标签
git ls-remote --tags
  1. 给当前分支打标签
git tag v1.1.0
  1. 给特定的某个commit版本打标签
git tag v1.0.0 039bf8b
或者可以添加注释
git tag v1.0.0 039bf8b -m "add tags information"
  1. 删除本地标签
git tag -d v1.1.0
  1. 删除远程的某个标签
git push origin -d v1.0.0
或者
git push origin :v1.0.0
  1. 将本地标签一次性推送到远程
git push origin --tags
  1. 将本地某个特定标签推送到远程
git push origin v1.0.0

stash

stash
git stash show -p stash@{1}  查看某个stash
git stash -p  指定文件stash
git stash -- 指定文件

其它

other
  1. 根据某个commit创建分支 git checkout 039bf8b -b newBranch

  2. git merge 和 git merge –no-ff Alt text

    Git flow 模式 master分支 肯定推荐用–no-ff 这样feature分支不会污染master

  3. 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