分类目录工具

Wireshark

mac下用Wireshark抓包报错you don’t have permission to capture on that device

cd /dev
ls -la | grep bp

看到用户组所属
crw——- 1 root wheel 23, 0 6 23 23:42 bpf0
crw——- 1 root wheel 23, 1 6 23 23:42 bpf1
crw——- 1 root wheel 23, 2 6 23 23:43 bpf2
crw——- 1 root wheel 23, 3 6 23 23:42 bpf3

这样导致上述没有权限问题,需要手动修改,确保所有列表有你的用户名和admin作为用户组。
whoami 命令看你当前用户名
sudo chown 上面看到的用户名:admin bp*

test:
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice

Zookeeper

官网

https://zookeeper.apache.org/
下载包安装先修改配制文件
cp -f zoo_sample.cfg zoo.cfg
./zkServer.sh start/stop
./zkCli.sh 客户端工具,默认连接本机2181端口

建议docker pull zookeeper
https://hub.docker.com/_/zookeeper

docker run --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 -p 8080:8080 --restart always -d zookeeper

k8s卸载清理

k8s 节点删除

kubectl drain <node name> --delete-local-data --force --ignore-daemonsets
kubectl delete node <node name>
kubeadm reset

若需要重新加入 ,则再次执行 kubeadm init or kubeadm join

清理 Pods

kubectl delete node --all
rm -r /var/etcd/backups/* 删除备份。

卸载清理K8S

kubeadm reset -f
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd

WordPress 文章禁用自动保存、修订版本的两种方法

方法一、通过修改 WordPress 配置文件实现功能禁用

不得不说,WordPress 有非常多的隐藏功能都是可以通过 WordPress 安装根目录下的 wp-config.php 这个配置文件来实现功能的启用禁用等。

//禁用自动保存
define(‘AUTOSAVE_INTERVAL’, false);
//设置自动保存间隔/秒
define(‘AUTOSAVE_INTERVAL’, 120);
//禁用文章修订
define(‘WP_POST_REVISIONS’, false);
//设置修订版本最多允许几个
define(‘WP_POST_REVISIONS’, 3);

方法二、当前使用主题 functions.php 文件添加代码

  1. 禁用 WordPress 自动保存
//禁用自动保存(方法一)
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
//禁用自动保存(方法二)
add_action('wp_print_scripts', 'fanly_no_autosave');
function fanly_no_autosave() { wp_deregister_script('autosave'); }
  1. 禁用 WordPress 修订版本
//禁用所有文章类型的修订版本
add_filter( 'wp_revisions_to_keep', 'fanly_wp_revisions_to_keep', 10, 2 );
function fanly_wp_revisions_to_keep( $num, $post ) { return 0;}
//禁用某种文章类型的修订版本
add_filter( 'wp_revisions_to_keep', 'fanly_wp_revisions_to_keep', 10, 2 );
function fanly_wp_revisions_to_keep( $num, $post ) {
    if ( 'post_type' == $post->post_type ) { //引号中 post_type 改为你想禁用修订版本的文章类型
        return 0;
    }
    return $num;
}

常见 WordPress 常见默认有的文章类型有:

文章(Post Type: ‘post’)
页面(Post Type: ‘page’)
附件媒体(Post Type: ‘attachment’)
修订版本(Post Type: ‘revision’)
导航菜单(Post Type: ‘nav_menu_item’)

当然如果网站使用了自定义文章类型,那么就是自定义的名称了。

FRP

FRP 项目地址:https://github.com/fatedier/frp
https://www.cnblogs.com/sanduzxcvbnm/p/8508741.html

一键安装脚本项目地址:https://github.com/clangcn/onekey-install-shell/

下载一键部署脚本
$ wget –no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh

$ chmod 700 ./install-frps.sh 授权
这个一键部署脚本比较好用,为了提高国内用户下载安装包速度还提供了阿里云节点的安装源。整个脚本使用起来也比较简单,对一些常用的 FRP 服务端配置参数都做了交互式选择让用户可以方便的根据自己实际情况进行选择。脚本比较贴心的一点是对默认的公网地址进行了检测,省去了手动输入的麻烦。

install-frps.sh {install|uninstall|update|config}
配置 FRP $ ./install-frps.sh config
更新 FRP 服务端$ ./install-frps.sh update
卸载 FRP 服务端$ ./install-frps.sh uninstall

FRP 服务端安装完成后,一键部署脚本还提供了一个日常管理 FRP 服务端的管理脚本来进行日常的启动、重启、停止等操作,非常的方便。
frps status manage : frps {start|stop|restart|status|config|version}
新版可以直接使用不用以下配制

Usage: /etc/init.d/frps {start|stop|restart|status|config|version}

手动安装后配制成为服务启动 /etc/systemd/system# vi frps.service

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
# User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
# /root/frp_0.20.0_linux_amd64
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

#启动 frp 并设置开机启动
systemctl enable frpc
systemctl start frpc
systemctl status frpc

===

客户端下载 https://diannaobos.com/frp/
nohup ./frpc -c ./frpc.ini & 启用
jobs -l
ps -aux|grep frpc

2、修改配置文件    frpc.ini

[common]
server_addr = xxx.com
server_port = 5443

### console or real logFile path like ./frpc.log
log_file = ./frpc.log

### trace, debug, info, warn, error
log_level = info
log_max_days = 3

### for authentication
token = yourToken

### your proxy name will be changed to {user}.{proxy}
user = ser28

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 822

[http]
type = http
local_ip = 127.0.0.1
local_port = 80
subdomain = web28

[https]
type = https
local_ip = 127.0.0.1
local_port = 443
subdomain = web28

注意:访问服务端的80端口就相当于访问你本地的8080端口

3、启动

windows cmd里边进入frp客户端相应目录,启动frps.exe or frps.exe -c frpc.ini
注意保持与服务器版本一致和token的变化
# 0.17.0以前的版本 #privilege_token = yourToken
# 0.17.0以后的版本 token = yourToken
开启子域名,先设置*.xxx.com的解析,在frps.ini增加以下

subdomain_host = xxx.com

搭建ngrok服务器

apt-get install build-essential golang mercurial git     安装git 和Golang

git clone https://github.com/tutumcloud/ngrok.git ngrok

生成签名或申请SSL证书

cd ngrok

NGROK_DOMAIN=”ngrok.xxx.com”

openssl genrsa -out base.key 2048

openssl req -new -x509 -nodes -key base.key -days 10000 -subj “/CN=$NGROK_DOMAIN” -out base.pem

openssl genrsa -out server.key 2048

openssl req -new -key server.key -subj “/CN=$NGROK_DOMAIN” -out server.csr

openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

替换证书

cp base.pem assets/client/tls/ngrokroot.crt  

cp server.crt assets/server/tls/snakeoil.crt

cp server.key assets/server/tls/snakeoil.key

编译

make release-server release-client

编译成功后会在bin目录下找到ngrokd和ngrok这两个文件。其中ngrokd 就是服务端程序。

启动服务端

./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=“ngrok.xxx.com” -httpAddr=“:880” -httpsAddr=“:8443”

httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。

服务端配置

设置为系统程序,并后台运行,在/etc/systemd/system/目录下创建服务ngrok.service,内容为

[Unit]
Description=ngrok server
After=network.target

[Service]

Type=simple
ExecStart=/opt/ngrok/ngrok/bin/ngrokd -tlsKey=/myweb/ngrok/server.key -tlsCrt=/myweb/ngrok/server.crt -domain=”ngrok.xxx.com” -httpAddr=”:80″ -httpsAddr=”:443″ -log "/var/log/ngrokd.log"

Restart=on-failure

[Install]
WantedBy=multi-user.target

systemctl start ngrok.service启动服务

使用服务

sudo systemctl enable ngrokd
sudo systemctl start ngrokd
sudo systemctl status ngrokd

编译客户端

(1)windows

GOOS=windows GOARCH=amd64 make release-client

(2)mac

GOOS=darwin GOARCH=amd64 make release-client

#linux客户端
GOOS=linux GOARCH=amd64(386) make release-client
#linux服务端
GOOS=linux GOARCH=386 make release-server

客户端配置

执行对应的命令会在bin目录下生成相对应的windows、mac目录,ngrok.exe就存放在对应目录下。将对应的ngrok.exe下载到本地。

在同级目录下新建一个配置文件ngrok.cfg

server_addr: “ngrok.xxx.com:4443”

trust_host_root_certs: false

同级目录下新建一个启动脚本startup.bat

@echo on

cd %cd%

#ngrok -proto=tcp 22

#ngrok start web

ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=yjc 8080

 

客户端服务添加到 systemd 自启动服务中,保存下面内容到文件 /lib/systemd/system/ngrok.service

[Unit]
Description=ngrok client
After=network.target

[Service]
Type=simple
ExecStart=/opt/ngrok/ngrok -config "/opt/ngrok/ngrok.yml" -log "/var/log/ngrok.log" start transmission ssh
Restart=on-failure

[Install]
WantedBy=multi-user.target

ExecStart 加载了配置文件 /opt/ngrok/ngrok.ym
server_addr: ngrok.xxx.com:4443
trust_host_root_certs: false
tunnels:
  transmission:
    remote_port: 9091
    proto:
      tcp: 9091
  ssh:
    remote_port: 23333
    proto:
      tcp: 22

FYI:

Can’t load /root/.rnd into RNG

cd /root
openssl rand -writerand .rnd

ping ngrok.xxx.com 提示找不到 host, 直接把域名和 IP 写到内服务器的 /etc/hosts 文件上

gitlab安装配置使用

Docker install

gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本

$ docker pull gitlab/gitlab-ce
docker pull twang2218/gitlab-ce-zh 汉化版

sudo docker run  --name gitlab \
  -itd \
  -p 443:443 -p 80:80 -p 222:22 \
  --privileged=true \
  -v /Users/sweet/gitlab/config:/etc/gitlab:Z \
  -v /Users/sweet/gitlab/logs:/var/log/gitlab:Z \
  -v /Users/sweet/gitlab/data:/var/opt/gitlab:Z \
  gitlab/gitlab-ce

 --restart always \

sudo docker exec -it gitlab /bin/bash
You can also just edit /etc/gitlab/gitlab.rb:
sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb

# gitlab.rb文件内容默认全是注释
$ vim /home/gitlab/config/gitlab.rb

# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.199.231'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出
# 重启gitlab容器
$ docker restart gitlab

====================
sudo apt-get install -y curl openssh-server ca-certificates 依赖
sudo apt-get install -y postfix 发送邮件
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash 下载
sudo EXTERNAL_URL=“http://gitlab.example.com”apt-get install gitlab-ee 安装
首次访问时,您将被重定向到密码重置屏幕。提供初始管理员帐户的密码,您将被重定向回登录屏幕。使用默认帐户的用户名root登录

1)进入文件gitlab.rb,修改EXTERNAL_URL地址和端口号

sudo vim /etc/gir/gitlab.rb

sudo vim /etc/gitlab/gitlab.rb

EXTERNAL_URL 修改为本机服务地ip地址,并分配端口号(例如:4567)。

2)重新配置 sudo gitlab-ctl reconfigure

3)开启服务 service sshd start service postfix start

4)查看运行状态: sudo gitlab-ctl status 如果run正常,则成功
Git global setup

git config –global user.name “Administrator”
git config –global user.email “admin@example.com”

Create a new repository

git clone http://e132f243a5fe/shanpai/config.git
cd config
touch README.md
git add README.md
git commit -m “add README”
git push -u origin master

Push an existing folder

cd existing_folder
git init
git remote add origin http://e132f243a5fe/shanpai/config.git
git add .
git commit -m “Initial commit”
git push -u origin master

Push an existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin http://e132f243a5fe/shanpai/config.git
git push -u origin –all
git push -u origin –tags

ERROR

Url is blocked: Requests to the local network are not allowed
Admin area => Settings => Network ,然后点击 Outbound requests 右边 的“expand”按钮,选中Allow requests to the local network from web hooks and services

dockerfile指令说明

指令:FROM
功能描述:设置基础镜像
语法:FROM < image>[:< tag> | @< digest>]
提示:镜像都是从一个基础镜像(操作系统或其他镜像)生成,可以在一个Dockerfile中添加多条FROM指令,一次生成多个镜像
注意:如果忽略tag选项,会使用latest镜像

指令:MAINTAINER
功能描述:设置镜像作者
语法:MAINTAINER < name>

指令:RUN
功能描述:
语法:RUN < command>
RUN [“executable”,”param1”,”param2”]
提示:RUN指令会生成容器,在容器中执行脚本,容器使用当前镜像,脚本指令完成后,Docker Daemon会将该容器提交为一个中间镜像,供后面的指令使用
补充:RUN指令第一种方式为shell方式,使用/bin/sh -c < command>运行脚本,可以在其中使用\将脚本分为多行
RUN指令第二种方式为exec方式,镜像中没有/bin/sh或者要使用其他shell时使用该方式,其不会调用shell命令
例子:RUN source $HOME/.bashrc;\
echo $HOME

RUN [“/bin/bash”,”-c”,”echo hello”]

RUN [“sh”,”-c”,”echo”,”$HOME”] 使用第二种方式调用shell读取环境变量

指令:CMD
功能描述:设置容器的启动命令
语法:CMD [“executable”,”param1”,”param2”]
CMD [“param1”,”param2”]
CMD < command>
提示:CMD第一种、第三种方式和RUN类似,第二种方式为ENTRYPOINT参数方式,为entrypoint提供参数列表
注意:Dockerfile中只能有一条CMD命令,如果写了多条则最后一条生效

指令:LABEL
功能描述:设置镜像的标签
延伸:镜像标签可以通过docker inspect查看
格式:LABEL < key>=< value> < key>=< value> …
提示:不同标签之间通过空格隔开
注意:每条指令都会生成一个镜像层,Docker中镜像最多只能有127层,如果超出Docker Daemon就会报错,如LABEL ..=.. <假装这里有个换行> LABEL ..=..合在一起用空格分隔就可以减少镜像层数量,同样,可以使用连接符\将脚本分为多行
镜像会继承基础镜像中的标签,如果存在同名标签则会覆盖

指令:EXPOSE
功能描述:设置镜像暴露端口,记录容器启动时监听哪些端口
语法:EXPOSE < port> < port> …
延伸:镜像暴露端口可以通过docker inspect查看
提示:容器启动时,Docker Daemon会扫描镜像中暴露的端口,如果加入-P参数,Docker Daemon会把镜像中所有暴露端口导出,并为每个暴露端口分配一个随机的主机端口(暴露端口是容器监听端口,主机端口为外部访问容器的端口)
注意:EXPOSE只设置暴露端口并不导出端口,只有启动容器时使用-P/-p才导出端口,这个时候才能通过外部访问容器提供的服务

指令:ENV
功能描述:设置镜像中的环境变量
语法:ENV < key>=< value>…|< key> < value>
注意:环境变量在整个编译周期都有效,第一种方式可设置多个环境变量,第二种方式只设置一个环境变量
提示:通过${变量名}或者 $变量名使用变量,使用方式${变量名}时可以用${变量名:-default} ${变量名:+cover}设定默认值或者覆盖值
ENV设置的变量值在整个编译过程中总是保持不变的

指令:ADD
功能描述:复制文件到镜像中,不能用在 multistage 的场景下,ADD 命令可以完成 COPY 命令的所有功能,并且还可以完成两类超酷的功能:

  • 解压压缩文件并把它们添加到镜像中 ADD nickdir.tar.gz
  • 从 url 拷贝文件到镜像中,docker 官方建议我们当需要从远程复制文件时,最好使用 curl 或 wget 命令来代替 ADD 命令。原因是,当使用 ADD 命令时,会创建更多的镜像层,当然镜像的 size 也会更大

语法:ADD < src>… < dest>|[“< src>”,… “< dest>”]
注意:当路径中有空格时,需要使用第二种方式
当src为文件或目录时,Docker Daemon会从编译目录寻找这些文件或目录,而dest为镜像中的绝对路径或者相对于WORKDIR的路径
提示:src为目录时,复制目录中所有内容,包括文件系统的元数据,但不包括目录本身
src为压缩文件,并且压缩方式为gzip,bzip2或xz时,指令会将其解压为目录
如果src为文件,则复制文件和元数据
如果dest不存在,指令会自动创建dest和缺失的上级目录

***对于目录而言,COPY 和 ADD 命令具有相同的特点:只复制目录中的内容而不包含目录自身,如果要包含目录本身需要在目标路径中指定这个目录的名称

在使用 COPY 和 ADD 命令时,我们可以通过一些技巧来加速镜像的 build 过程。比如把那些最不容易发生变化的文件的拷贝操作放在较低的镜像层中,这样在重新 build 镜像时就会使用前面 build 产生的缓存。

指令:COPY
功能描述:复制文件到镜像中 仅仅是把本地的文件拷贝到容器镜像中,COPY 命令是最合适不过的,在 multistage 的用法中,可以使用 COPY 命令把前一阶段构建的产物拷贝到另一个镜像中
语法:COPY < src>… < dest>|[“< src>”,… “< dest>”]
提示:指令逻辑和ADD十分相似,同样Docker Daemon会从编译目录寻找文件或目录,dest为镜像中的绝对路径或者相对于WORKDIR的路径

指令:ENTRYPOINT
功能描述:设置容器的入口程序
语法:ENTRYPOINT [“executable”,”param1”,”param2”]
ENTRYPOINT command param1 param2(shell方式)
提示:入口程序是容器启动时执行的程序,docker run中最后的命令将作为参数传递给入口程序
入口程序有两种格式:exec、shell,其中shell使用/bin/sh -c运行入口程序,此时入口程序不能接收信号量
当Dockerfile有多条ENTRYPOINT时只有最后的ENTRYPOINT指令生效
如果使用脚本作为入口程序,需要保证脚本的最后一个程序能够接收信号量,可以在脚本最后使用exec或gosu启动传入脚本的命令
注意:通过shell方式启动入口程序时,会忽略CMD指令和docker run中的参数
为了保证容器能够接受docker stop发送的信号量,需要通过exec启动程序;如果没有加入exec命令,则在启动容器时容器会出现两个进程,并且使用docker stop命令容器无法正常退出(无法接受SIGTERM信号),超时后docker stop发送SIGKILL,强制停止容器
例子:FROM ubuntu <换行> ENTRYPOINT exec top -b

指令:VOLUME
功能描述:设置容器的挂载点
语法:VOLUME [“/data”]
VOLUME /data1 /data2
提示:启动容器时,Docker Daemon会新建挂载点,并用镜像中的数据初始化挂载点,可以将主机目录或数据卷容器挂载到这些挂载点

指令:USER
功能描述:设置RUN CMD ENTRYPOINT的用户名或UID
语法:USER < name>

指令:WORKDIR
功能描述:设置RUN CMD ENTRYPOINT ADD COPY指令的工作目录
语法:WORKDIR < Path>
提示:如果工作目录不存在,则Docker Daemon会自动创建
Dockerfile中多个地方都可以调用WORKDIR,如果后面跟的是相对位置,则会跟在上条WORKDIR指定路径后(如WORKDIR /A WORKDIR B WORKDIR C,最终路径为/A/B/C)

指令:ARG
功能描述:设置编译变量
语法:ARG < name>[=< defaultValue>]
注意:ARG从定义它的地方开始生效而不是调用的地方,在ARG之前调用编译变量总为空,在编译镜像时,可以通过docker build –build-arg < var>=< value>设置变量,如果var没有通过ARG定义则Daemon会报错
可以使用ENV或ARG设置RUN使用的变量,如果同名则ENV定义的值会覆盖ARG定义的值,与ENV不同,ARG的变量值在编译过程中是可变的,会对比使用编译缓存造成影响(ARG值不同则编译过程也不同)
例子:ARG CONT_IMAG_VER <换行> RUN echo $CONT_IMG_VER
ARG CONT_IMAG_VER <换行> RUN echo hello
当编译时给ARG变量赋值hello,则两个Dockerfile可以使用相同的中间镜像,如果不为hello,则不能使用同一个中间镜像

指令:ONBUILD
功能描述:设置自径想的编译钩子指令
语法:ONBUILD [INSTRUCTION]
提示:从该镜像生成子镜像,在子镜像的编译过程中,首先会执行父镜像中的ONBUILD指令,所有编译指令都可以成为钩子指令

指令:STOPSIGNAL
功能描述:设置容器退出时,Docker Daemon向容器发送的信号量
语法:STOPSIGNAL signal
提示:信号量可以是数字或者信号量的名字,如9或者SIGKILL,信号量的数字说明在Linux系统管理中有简单介绍

IntelliJ IDEA

安装激活 MAC 2019版中测试通过

最高支持到2019.3.2版本
ntelliJ IDEA 2019.3.3及以下
AppCode 2019.3.5及以下
CLion 2019.3.4及以下
DataGrip 2019.3.3及以下
GoLand 2019.3.2及以下
PhpStorm 2019.3.3及以下
PyCharm 2019.3.3及以下
Rider 2019.3.3及以下
RubyMine 2019.3.3及以下
WebStorm 2019.3.3及以下
新的 jetbrains-agent license server:http://fls.jetbrains-agent.com
/Users/sweet/.jetbrains
/Users/sweet/Library/Application Support/JetBrains/IntelliJIdea2020.1
第一步将:0.0.0.0 https://account.jetbrains.com:443 加入hosts,不需要0.0.0.0 www.jetbrains.com,不然会影响idea的某些功能
第二步 打开cmd终端,输入ipconfig /flushdns,然后回车刷新dns缓存

将下载好了的 jetbrains-agent.jar包放到 idea 的 bin 目录下
chmod 777 jetbrains-agent.jar
修改 bin 目录下的 idea.vmoptions 文件
在 idea.vmoptions 文件的最后一行添加如下的配置,根据你保存的文件名自行变更

-javaagent:../bin/jetbrains-agent.jar
修改hosts文件内的配置内容
1.在终端使用如下代码进入hosts配置
sudo vi /etc/hosts
2. 然后在文件最后添加如下内容
0.0.0.0 account.jetbrains.com
打开 idea,注册选择License server方式
地址填入:http://jetbrains-license-server

一些注意事项:
1,放入jar包,软件崩溃无法打开:建议打开mac的从任何来源安装选项或者先打开软件尝试一下没问题之后才进行操作。
2,软件失败:这个可能是多方面原因造成的,建议多尝试几次,卸载干净重新安装。
3, 如果失败,可以尝试先创建一个项目,在top栏里面依次选择Help->Edit Custom VM Options,它会提醒你是否创建,创建,然后重复上面的编辑VM操作。

错误处理

  1. idea字体模糊,需要换字体,不用那么麻烦,直接执行
    sudo apt-get remove fonts-arphic-ukai fonts-arphic-uming
    移除这两个系统字体就OK

常用插件

  1. alibaba cloud toolkit 代码部署
  2. Alibaba Java Coding Guidelines 阿里巴巴 Java代码规范插件
  3. jclasslib bytecode viewer 可视化的字节码查
  4. Codota 辅助开发神器支持智能代码自动提示支持 JDK 和知名第三方库的函数的使用方法搜索
  5. Auto filling Java call arguments调用一个函数,使用 Alt+Enter 组合键,调出 “Auto fill call parameters” 自动使用该函数定义的参数名填充。
  6. GenerateO2O、GenerateAllSetter 我们定义好从 A 类转换到 B 类的函数转换函数后,使用这两个插件可以自动调用 Getter 和 Setter 函数实行自动转换。 GenerateAllSetter 提供的功能,自动调用所有 Setter 函数(可填充默认值),然后自己再跟进实际需求设置属性值
  7. Rainbow Brackets 就是找到上下文,由于括号太多,不确定当前代码行是否属于某个代码块,此时这个插件就会帮上大忙。
  8. Maven Helper 安装后 IDEA 中打开 pom.xml 文件时,就会多出一个 “Dependency Analyzer” 选项卡。该插件支持值插件冲突的 jar 包,可以选择冲突的 jar 包将其 exclude 掉。
  9. FindBugs静态代码检查插件,可以检查你代码中的隐患,并给出原因。
  10. SequenceDiagram 可以根据代码调用链路自动生成时序图,超级赞,超级推荐!
  11. Stack trace to UML 支持根据 JVM 异常堆栈画 UML时序图和通信图。打开方式 Analyze > Open Stack trace to UML plugin + Generate UML diagrams from stacktrace from debug
  12. Java Stream Debugger 它可以将 Stream 的操作步骤可视化,非常有助于我们的学习。
  13. GsonFormat
  14. IdeaJad 选择class文件,右键 Decompile,完成反编译
  15. Lombok
  16. aiXcode 推荐使用!!!真正的提高编码效率!
  17. Kubernetes •K8s工具
  18. Iedis •Redis可视化
  19. String Manipulation •字符串工具
  20. Free Mybatis plugin •Mybatis 工具
  21. mybatis log plugin Mybatis 的日志插件,可在 IDEA 控制台看到完整可执行的 Sql 语句
  22. JUnitGenerator •单元测试测试生成工具
  23. SonarLint •代码质量检查工具
  24. Translation •中英文翻译工具
  25. Gitmoji 该插件可以让你在进行git代码提交时,弹出表情message。为体验,本人重构了下代码,然后提交时输入”refactor“,然后就弹出来了几个风骚的moji表情,选择一个果断提交。
  26. Key Promoter X 该插件可帮你记住idea所有的快捷键,每当你没有使用快捷键而进行了某项操作时,他就会弹出提示告诉你该操作其实可以使用具体的快捷键来进行操作。日子久了,快捷键也就全部记住了。
  27. markdown support markdown 文件支持
  28. CamelCase 变量风格变换 将驼峰、下划线、全大写、全小写等风格的转换。可快速装换变量风格 See Edit menu or use ⇧ + ⌥ + U / Shift + Alt + U
  29. .ignore 可以让你在提交更新到 Git 时,忽略一些文件,不进行提交,避免把一些本地的文件提交上去。

常用配制

1.修改文件头部信息

/**
 * @Author XXX
 * @Date   ${DATE} ${HOUR}:${MINUTE}.
 * Copyright (c) $YEAR  XXX TECH CO.,LTD All rights reserved.
 * @Description  XXX
 *
 */
 ````
1. 智能导包
1. 项目文件编码
1. 显示行号
1. 查看 UML 类图 ctrl+Alt+U 可以生成当前类的 UML 类图,在接收新代码时能很方便的查看类关系。
1. 配置仓库 可以将 IDEA 的所有设置保存在 Git 仓库里,不用担心每次换电脑都要重新做一大堆配置了。

[教程](https://www.w3cschool.cn/intellij_idea_doc/)

#### 快捷键

一、Ctrl 快捷键
Ctrl + F 在当前文件进行文本查找 (必备)
Ctrl + R 在当前文件进行文本替换 (必备)
Ctrl + Z 撤销 (必备)
Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)
Ctrl + X 剪切光标所在行 或 剪切选择内容
Ctrl + C 复制光标所在行 或 复制选择内容
Ctrl + D 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)
Ctrl + W 递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范围(必备)
Ctrl + E 显示最近打开的文件记录列表 (必备)
Ctrl + N 根据输入的 名/类名 查找类文件 (必备)
Ctrl + G 在当前文件跳转到指定行处
Ctrl + J 插入自定义动态代码模板 (必备)
Ctrl + P 方法参数提示显示 (必备)
Ctrl + Q 光标所在的变量 / 类名 / 方法名等上面(也可以在提示补充的时候按),显示文档内容
Ctrl + U 前往当前光标所在的方法的父类的方法 / 接口定义 (必备)
Ctrl + B 进入光标所在的方法/变量的接口或是定义处,等效于 Ctrl + 左键单击 (必备)
Ctrl + K 版本控制提交项目,需要此项目有加入到版本控制才可用
Ctrl + T 版本控制更新项目,需要此项目有加入到版本控制才可用
Ctrl + H 显示当前类的层次结构
Ctrl + O 选择可重写的方法
Ctrl + I 选择可继承的方法
Ctrl + + 展开代码
Ctrl + – 折叠代码
Ctrl + / 释光标所在行代码,会根据当前不同文件类型使用不同的注释符号 (必备)
Ctrl + [ 移动光标到当前所在代码的花括号开始位置
Ctrl + ] 移动光标到当前所在代码的花括号结束位置
Ctrl + F1 在光标所在的错误代码处显示错误信息 (必备)
Ctrl + F3 调转到所选中的词的下一个引用位置 (必备)
Ctrl + F4 关闭当前编辑文件
Ctrl + F8 在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点
Ctrl + F9 执行 Make Project 操作
Ctrl + F11 选中文件 / 文件夹,使用助记符设定 / 取消书签 (必备)
Ctrl + F12 弹出当前文件结构层,可以在弹出的层上直接输入,进行筛选
Ctrl + Tab 编辑窗口切换,如果在切换的过程又加按上 delete,则是关闭对应选中的窗口
Ctrl + End 跳到文件尾
Ctrl + Home 跳到文件头
Ctrl + Space 基础代码补全,默认在 Windows 系统上被输入法占用,需要进行修改,建议修改为 Ctrl +逗号 (必备)
Ctrl + Delete 删除光标后面的单词或是中文句 (必备)
Ctrl +BackSpace 删除光标前面的单词或是中文句 (必备)
Ctrl +1,2,3…9 定位到对应数值的书签位置 (必备)
Ctrl + 左键单击 在打开的文件标题上,弹出该文件路径 (必备)
Ctrl + 光标定位按 Ctrl 不要松开,会显示光标所在的类信息摘要
Ctrl + 左方向键 光标跳转到当前单词 / 中文句的左侧开头位置 (必备)
Ctrl + 右方向键 光标跳转到当前单词 / 中文句的右侧开头位置 (必备)
Ctrl + 前方向键 等效于鼠标滚轮向前效果 (必备)
Ctrl + 后方向键 等效于鼠标滚轮向后效果 (必备)
二、Alt 快捷键
Alt + ` 显示版本控制常用操作菜单弹出层 (必备)
Alt + Q 弹出一个提示,显示当前类的声明 / 上下文信息
Alt + F1 显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择 (必备)
Alt + F2 对于前面页面,显示各类浏览器打开目标选择弹出层
Alt + F3 选中文本,逐个往下查找相同文本,并高亮显示
Alt + F7 查找光标所在的方法 / 变量 / 类被调用的地方
Alt + F8 在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果
Alt + Home 定位 / 显示到当前文件的 Navigation Bar
Alt + Enter IntelliJ IDEA 根据光标所在问题,提供快速修复选择,光标放在的位置不同提示的结果也不同 (必备)
Alt + Insert 代码自动生成,如生成对象的 set / get 方法,构造函数,toString() 等 (必备)
Alt + 左方向键 切换当前已打开的窗口中的子视图,比如 Debug 窗口中有 Output、Debugger 等子视图,用此快捷键就可以在子视图中切换 (必备)
Alt + 右方向键 按切换当前已打开的窗口中的子视图,比如 Debug 窗口中有 Output、Debugger 等子视图,用此快捷键就可以在子视图中切换 (必备)
Alt + 前方向键 当前光标跳转到当前文件的前一个方法名位置 (必备)
Alt + 后方向键 当前光标跳转到当前文件的后一个方法名位置 (必备)
Alt +1,2,3…9 显示对应数值的选项卡,其中 1 是 Project 用得最多 (必备)
三、Shift 快捷键
Shift + F1 如果有外部文档可以连接外部文档
Shift + F2 跳转到上一个高亮错误 或 警告位置
Shift + F3 在查找模式下,查找匹配上一个
Shift + F4 对当前打开的文件,使用新 Windows 窗口打开,旧窗口保留
Shift + F6 对文件 / 文件夹 重命名
Shift + F7 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法
Shift + F8 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样
Shift + F9 等效于点击工具栏的 Debug 按钮
Shift + F10 等效于点击工具栏的 Run 按钮
Shift + F11 弹出书签显示层 (必备)
Shift + Tab 取消缩进 (必备)
Shift + ESC 隐藏当前 或 最后一个激活的工具窗口
Shift + End 选中光标到当前行尾位置
Shift + Home 选中光标到当前行头位置
Shift + Enter 开始新一行。光标所在行下空出一行,光标定位到新行位置 (必备)
Shift + 左键单击 在打开的文件名上按此快捷键,可以关闭当前打开文件 (必备)
Shift + 滚轮前后滚动 当前文件的横向滚动轴滚动 (必备)
四、Ctrl + Alt 快捷键
Ctrl + Alt + L 格式化代码,可以对当前文件和整个包目录使用 (必备)
Ctrl + Alt + O 优化导入的类,可以对当前文件和整个包目录使用 (必备)
Ctrl + Alt + I 光标所在行 或 选中部分进行自动代码缩进,有点类似格式化
Ctrl + Alt + T 对选中的代码弹出环绕选项弹出层 (必备)
Ctrl + Alt + J 弹出模板选择窗口,将选定的代码加入动态模板中
Ctrl + Alt + H 调用层次
Ctrl + Alt + B 在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口
Ctrl + Alt + M 代码抽取,填写方法名称即可抽取
Ctrl + Alt + V 快速引进变量
Ctrl + Alt + Y 同步、刷新
Ctrl + Alt + S 打开 IntelliJ IDEA 系统设置 (必备)
Ctrl + Alt + F7 显示使用的地方。寻找被该类或是变量被调用的地方,用弹出框的方式找出来
Ctrl + Alt + F11 切换全屏模式
Ctrl + Alt + Enter 光标所在行上空出一行,光标定位到新行 (必备)
Ctrl + Alt + Home 弹出跟当前文件有关联的文件弹出层
Ctrl + Alt + Space 类名自动完成
Ctrl + Alt + 左方向键 退回到上一个操作的地方 (必备)
Ctrl + Alt + 右方向键 前进到上一个操作的地方 (必备)
Ctrl + Alt + 前方向键 在查找模式下,跳到上个查找的文件
Ctrl + Alt + 后方向键 在查找模式下,跳到下个查找的文件
五、Ctrl + Shift 快捷键
Ctrl + Shift + F 根据输入内容查找整个项目 或 指定目录内文件 (必备)
Ctrl + Shift + R 根据输入内容替换对应内容,范围为整个项目 或 指定目录内文件 (必备)
Ctrl + Shift + J 自动将下一行合并到当前行末尾 (必备)
Ctrl + Shift + Z 取消撤销 (必备)
Ctrl + Shift + W 递进式取消选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展取消选中范围 (必备)
Ctrl + Shift + N 通过文件名定位 / 打开文件 / 目录,打开目录需要在输入的内容后面多加一个正斜杠 (必备)
Ctrl + Shift + U 对选中的代码进行大 / 小写轮流转换 (必备)
Ctrl + Shift + T 对当前类生成单元测试类,如果已经存在的单元测试类则可以进行选择 (必备)
Ctrl + Shift + C 复制当前文件磁盘路径到剪贴板 (必备)
Ctrl + Shift + V 弹出缓存的最近拷贝的内容管理器弹出层
Ctrl + Shift + E 显示最近修改的文件列表的弹出层
Ctrl + Shift + H 显示方法层次结构
Ctrl + Shift + B 跳转到类型声明处 (必备)
Ctrl + Shift + I 快速查看光标所在的方法 或 类的定义
Ctrl + Shift + A 查找动作 / 设置
Ctrl + Shift + / 代码块注释 (必备)
Ctrl + Shift + [ 选中从光标所在位置到它的顶部中括号位置 (必备)
Ctrl + Shift + ] 选中从光标所在位置到它的底部中括号位置 (必备)
Ctrl + Shift + + 展开所有代码 (必备)
Ctrl + Shift + – 折叠所有代码 (必备)

Ctrl + Shift + F7 高亮显示所有该选中文本,按 Esc 高亮消失 (必备)
Ctrl + Shift + F8 在 Debug 模式下,指定断点进入条件
Ctrl + Shift + F9 编译选中的文件 / 包 / Module
Ctrl + Shift + F12 编辑器最大化 (必备)
Ctrl + Shift + Space 智能代码提示
Ctrl + Shift + Enter 自动结束代码,行末自动添加分号 (必备)
Ctrl + Shift +Backspace 退回到上次修改的地方 (必备)
Ctrl + Shift +1,2,3…9 快速添加指定数值的书签 (必备)
Ctrl + Shift + 左键单击 把光标放在某个类变量上,按此快捷键可以直接定位到该类中 (必备)
Ctrl + Shift + 左方向键 在代码文件上,光标跳转到当前单词 / 中文句的左侧开头位置,同时选中该单词 / 中文句(必备)
Ctrl + Shift + 右方向键 在代码文件上,光标跳转到当前单词 / 中文句的右侧开头位置,同时选中该单词 / 中文句(必备)
Ctrl + Shift + 前方向键 光标放在方法名上,将方法移动到上一个方法前面,调整方法排序 (必备)
Ctrl + Shift + 后方向键 光标放在方法名上,将方法移动到下一个方法前面,调整方法排序 (必备)

六、Alt + Shift 快捷键
Alt + Shift + N 选择 / 添加 task (必备)
Alt + Shift + F 显示添加到收藏夹弹出层 / 添加到收藏夹
Alt + Shift + C 查看最近操作项目的变化情况列表
Alt + Shift + I 查看项目当前文件
Alt + Shift + F7在 Debug 模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入
Alt + Shift + F9 弹出 Debug 的可选择菜单
Alt + Shift + F10 弹出 Run 的可选择菜单
Alt + Shift + 左键双击 选择被双击的单词 / 中文句,按住不放,可以同时选择其他单词 / 中文句 (必备)
Alt + Shift + 前方向键 移动光标所在行向上移动 (必备)
Alt + Shift + 后方向键 移动光标所在行向下移动 (必备)

七、Ctrl + Shift + Alt 快捷键
Ctrl + Shift + Alt + V 无格式黏贴 (必备)
Ctrl + Shift + Alt + N 前往指定的变量 / 方法
Ctrl + Shift + Alt + S 打开当前项目设置 (必备)
Ctrl + Shift + Alt + C 复制参考信息

八、其他快捷键
F2 跳转到下一个高亮错误 或 警告位置 (必备)
F3 在查找模式下,定位到下一个匹配处
F4 编辑源 (必备)
F7 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中
F8 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
F9 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上
F11 添加书签 (必备)
F12 回到前一个工具窗口 (必备)
Tab缩进 (必备)
ESC 从工具窗口进入代码文件窗口 (必备)
连按两次Shift 弹出 Search Everywhere 弹出层
““

广告

常用简写

CPM:千次广告展示计费

CPT:按时间段计费广告

CPC:点击竞价广告

 

基本功能

投放,检索,监测,计费,报表

广告维度,用户画像,AI