Mac操作系统下一些开发经验分享

目录

  • 前言
  • 在本地环境中使用Nginx
  • 添加信任HTTPS证书
  • 查看本地开启的tcp端口
  • 测试远程端口是否正常提供服务
  • 利用SSH让内网机器调试公网回调
  • 查看NetBIOS注册信息
  • 加速你的代码编辑速度
  • 显示文件的详细修改时间
  • node.js安装
    • npm安装全局包总是失败
  • 使用多个SSH密钥
  • IntelliJ IDEA启动Java时的告警
  • IntelliJ调试代码用Charles拦截本地发出的请求
  • IntelliJ打开properties文件中文显示为\uXXXX的unicode编码问题
  • IntelliJ打开Javadoc自动显示
  • 一些好用的IntelliJ插件
    • .ignore
    • Maven Helper
    • iBatis/MyBatis mini-plugin
    • Alibaba Java Coding Guidelines
    • GenerateSerialVersionUID
    • IDEA Mind Map
    • Mac系统下完整卸载Jetbrains产品的方法

本文出处: http://blog.csdn.net/chaijunkun/article/details/89521012,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。

前言

mac是生产力工具!
由于保密需要,一些涉及到敏感信息的内容进行了脱敏处理。

在本地环境中使用Nginx

长期开发web项目就会发现,无论是tomcat还是jetty插件,默认使用的端口都是8080,本地测试的时候,如果不加以配置,在域名后需要经常挂上端口号(例如:http://test.foo.com:8080),在Windows下可以直接使用80端口,然而在类unix系统中,80端口需要root权限启动。为了方便调试,我们可以在本地启动一个Nginx,不指定域名,将所有80、443端口都upstream到本地的8080端口。这样只需要在开发工具中直接启动8080,就可以开始调试了,非常方便。

下面是Nginx的常用编译命令(使用普通账户运行即可):

./configure --prefix=/usr/local/nginx --with-pcre=/Users/chaijunkun/Downloads/pcre-8.40 --with-openssl=/Users/chaijunkun/Downloads/openssl-1.1.0f --with-http_ssl_module --with-http_v2_module

在编译Nginx之前需要下载pcre(官网:http://www.pcre.org/)和openssl(官网:https://www.openssl.org/),解压之后不需要分别对它们编译,只需要在上面的命令中指定源码路径即可。

2019年6月12日补充:如果你像我一样,是全栈重度开发者(不仅限于页面和后端业务开发),例如还需要开发一些基于OpenResty的功能(限流、API网关等),我也建议您使用OpenResty中自带的Nginx组件来代替原生的Nginx。下面是一个OpenResty的编译配置命令示例:

./configure --prefix=/usr/local/openresty --with-pcre=/Users/chaijunkun/Downloads/pcre-8.43 --with-pcre-jit --with-openssl=/Users/chaijunkun/Downloads/openssl-1.1.1c --with-http_ssl_module --with-http_v2_module --with-ipv6 --with-http_iconv_module --with-http_stub_status_module -j8

生成编译配置文件之后运行:

make

然后将编译好的Nginx进行安装:

sudo make install

修改配置文件nginx.conf

#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout65;#gzip on;include vhost/upstream/*.conf;include vhost/*.conf;
}

然后相关的各种本地虚拟主机都可以放到conf目录下的vhost目录中,并且文件名以conf为扩展名。例如在调试管理后台时:
反向代理负载定义文件:upstream/local_admin_test.conf 的配置内容为:

upstream local_admin_test {server 127.0.0.1:8080;
}

反向代理服务定义文件:test.foo.com.conf 的配置内容为:

server {listen       80;server_name test.foo.com;charset utf-8;access_log  logs/host.access.log  main;location ^~ / {proxy_pass http://local_admin_test;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}location ^~ /review {proxy_pass http://test_upstream;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}

在大型系统中,往往不同的模块采用不同的工程。而该系统可能共用一个测试域名(可能是非公网域名,通过配host访问,例如:http://test.foo.com/moduleA和http://test.foo.com/moduleB),如果不使用上述方式,将域名test.foo.com配置了本地(127.0.0.1),本地开发moduleB时,其他模块本地没有启动,则无法同时使用。通过Nginx,可以将不关注的模块请求转发到已有的测试环境中。

另外,如果有https的访问需求,本地还可以将所有的SSL请求进行监听,转发到本地的80,达到一劳永逸:
文件:default_ssl.conf 的配置内容为:

# HTTPS server
# 
server {listen       443 ssl;ssl_certificate      /usr/local/nginx/conf/tls/mysite.crt;ssl_certificate_key  /usr/local/nginx/conf/tls/mysite.key;#ssl_session_cache    shared:SSL:1m;#ssl_session_timeout  5m;#ssl_ciphers  HIGH:!aNULL:!MD5;#ssl_prefer_server_ciphers  on;location ^~ / {proxy_pass http://127.0.0.1:80;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}
}

这里的SSL配置没有指定server_name,作为默认,将请求直接反向代理到80,由具体的虚拟主机配置来进行具体解析。

添加信任HTTPS证书

有一些测试服务器使用的是赛门铁克证书。Chrome浏览器从V70开始认为该公司颁发的部分证书不安全(原因是因为该公司曾经丢失过根证书),导致HTTPS页面提示安全警告,无法打开。另外各种自签名的证书也会出现该问题。将这些不受信任的证书(前提是自己已确认安全)添加为信任即可解决该问题。

用浏览器打开目标HTTPS的页面(例如:https://test.foo.com)。网址左侧会提示不安全警告。点击该警告,弹出菜单,点击“证书”按钮,如下图所示:
在这里插入图片描述
弹出证书详情:
在这里插入图片描述
如果此时你的浏览器处于全屏模式,请退出全屏,并打开Finder到一个目录。然后用鼠标拖动上图中的“证书”大图标到Finder中的目录。即可生成一个名为:证书名称+".crt"的证书文件。

打开macOS的Launchpad,找到钥匙串访问(Keychain Access)工具,向其中导入项目,选择刚刚的证书文件。注意导入后双击钥匙串工具中的此密钥,然后在详情第一段“信任”左侧的三角符号展开,然后选择“总是信任”。

在这里插入图片描述
关闭窗口后会提示输入管理员用户或指纹。此时重新打开浏览器即可正常访问该网站。

2019年5月7日补充:关于如何生成多域名自签名证书的方法请参见:https://www.rpkamp.com/2014/08/25/setting-up-a-multi-domain-self-signed-ssl-certificate/

查看本地开启的tcp端口

在某些时候需要通过端口号查找进程,也可能需要通过进程查找开放了哪些端口,MacOS在使用netstat命令时和Linux不太一样,可以使用下面的命令列出:

netstat -anv -ptcp

以下是返回内容的示例:

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)     rhiwat shiwat    pid   epid
tcp4       0      0  10.169.45.132.54640    64.233.189.100.443     SYN_SENT    131072 131072  32432      0
tcp4       0      0  10.169.45.132.54639    64.233.189.100.443     SYN_SENT    131072 131072  32432      0
tcp4       0      0  10.169.45.132.54489    64.233.188.188.5228    SYN_SENT    131072 131072  32432      0
tcp4       0      0  10.169.45.132.54484    64.233.188.188.5228    SYN_SENT    131072 131072  32432      0
tcp4       0      0  10.169.45.132.54160    198.252.206.25.443     ESTABLISHED 131072 131904  32432      0
tcp4       0      0  10.169.45.132.54156    104.76.18.12.443       ESTABLISHED 131475 131904  32432      0
tcp4       0      0  10.169.45.132.54154    104.16.112.18.443      ESTABLISHED 262144 131670  32432      0
tcp4       0      0  10.169.45.132.54152    104.76.12.30.443       ESTABLISHED 131072 131072  32432      0
tcp4       0      0  10.169.45.132.54150    192.0.73.2.443         ESTABLISHED 262144 131670  32432      0
tcp4       0      0  10.169.45.132.54145    151.101.193.69.443     ESTABLISHED 131072 131904  32432      0
tcp4       0      0  10.169.45.132.54140    216.58.200.234.443     ESTABLISHED 131072 132104  32432      0
tcp4       0      0  10.169.45.132.53977    54.225.153.141.443     ESTABLISHED 131072 131072  13725      0
tcp4       0      0  10.169.45.132.53796    123.126.122.40.80      ESTABLISHED 262144 131670  37326      0
tcp4       0      0  10.169.45.132.53795    111.161.111.112.80     ESTABLISHED 131072 131904  37326      0
tcp4       0      0  10.169.45.132.53064    10.168.0.182.80        ESTABLISHED 262144 131670  32432      0
tcp4       0      0  10.169.45.132.52647    52.207.13.219.443      ESTABLISHED 131072 131904  13722      0
tcp4       0      0  10.169.45.132.49753    10.20.3.137.443        ESTABLISHED 262144 131670  29429      0
tcp4       0      0  10.169.45.132.63907    220.249.243.161.443    ESTABLISHED 131072 131904  32432      0
tcp4       0      0  *.443                  *.*                    LISTEN      131072 131072  78596      0
tcp4       0      0  *.80                   *.*                    LISTEN      131072 131072  78596      0
tcp4       0      0  10.169.45.132.60843    10.168.66.177.20880    ESTABLISHED 131072 131904  45451      0

再结合grep命令和ps -ef命令来筛选相关进程和端口即可

测试远程端口是否正常提供服务

本身该功能可以通过telnet命令来实现,但是在macOS High Sierra(10.13.1及其以后版本)将telnet命令删除了(@see https://forums.developer.apple.com/thread/79056),在不下载安装telnet命令的前提下,可以使用nc命令。

假如查看baidu.com对应主机的80端口是否打开(当然是肯定打开的),执行

nc -v -w 10 -z [host] [port]

例如:

nc -v -w 10 -z baidu.com 80

如果看到以下返回的内容,则表示端口正常打开并对外提供服务:

found 0 associations
found 1 connections:1:	flags=82<CONNECTED,PREFERRED>outif en0src 10.168.136.103 port 52927dst 220.181.57.216 port 80rank info not availableTCP aux info availableConnection to baidu.com port 80 [tcp/http] succeeded!

如果看到明确的驳回信息,或者连接之后没反应,可以输入任何字符,则表示有可能端口无法访问:

localhost:~ chaijunkun$ nc -v -w 10 -z 119.188.2.119 8888
nc: connectx to 119.188.2.119 port 8888 (tcp) failed: Connection refusedlocalhost:~ chaijunkun$ nc -v -w 10 -z 47.104.143.44 6379^C

利用SSH让内网机器调试公网回调

在接入一些金融交易、微信服务号之类的业务时,往往会涉及到服务器回调。例如客户完成支付,支付宝会调用你提供的接口来通知修改订单状态;用户通过服务号发送消息给接入方,微信服务器会回调你提供的接口来收取消息。这些业务都需要公网环境,让远端服务器能直接访问到你的接口才可以。作为局域网中的开发机,如何能被直接访问到呢?这里提供一个比较简单的方法——购买云主机,如果调试QPS不大,云主机的性能无须特别强劲,只要能提供公网地址即可。在云主机上搭建nginx,并添加如下配置:

server {listen       80;server_name your.domain;charset utf-8;access_log  logs/host.access.log  main;location  / {proxy_pass http://127.0.0.1:8080;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}

这样就把云主机的80端口反向代理到了云主机8080端口。接下来只要通过SSH隧道将内网机器的端口与云主机的8080端口建立映射,访问云主机的80端口就会将请求传递至内网机器。如何建立端口映射:

例如本地接口调试时监听的端口为8115,则需要在本地使用ssh命令:

ssh -R 8080:127.0.0.1:8115 root@xxx.xxx.xxx.xxx

如果有多人使用,可根据不同路径分配不同的反向代理端口,每个云主机端口专人专用。

查看NetBIOS注册信息

在开发过程中,可能会遇到Dubbo接口开启冲突的情况(测试环境实例A和别人的调试实例B使用的group都一样,导致接口调用请求被分配到了B实例),此时可能需要找到相关的人,把实例关掉。但是怎么通过IP知道是谁的机器呢?

以前,公司配发的PC机主机名都是对应员工的OA前缀,后来杀毒软件部署之后都是公司“办公地点缩写+员工工号”。MacOS的机器虽然有主机名规范,但大都没执行。不过还是能通过主机名查找到蛛丝马迹。

Windos系统中可以执行如下命令:

nbtstat -a [IP]

例如:

C:\Users\Administrator>nbtstat -a 10.169.2.59
本地连接:
节点 IP 址址: [10.169.2.59] 范围 ID: []NetBIOS 远程计算机名称表名称               类型         状态---------------------------------------------TT9527         <00>  唯一        已注册WORKGROUP      <00>  组          已注册MAC 地址 = B0-83-FE-AD-4D-6C

从中可以看出,IP:10.169.2.59对应的主机名为TT9527

Mac系统中对应的命令为:

smbutil status [IP]

例如:

my-macbook-pro:~ chaijunkun$ smbutil status 10.169.2.59
Using IP address of 10.169.2.59: 10.169.2.59
Workgroup: WORKGROUP
Server: TT9527

加速你的代码编辑速度

很多时候我们编辑代码时需要选中一个单词,或者将光标快速移动到行首或行尾,使用一下快捷键即可:

移动到行首:command + 光标左移

移动到行尾:command + 光标右移

选中一行:command +光标左移,定位到行首之后,shift + command + 光标右移。其实是上面两个快捷键的组合,只不过shift起到标记选择的作用

移动到词首:option + command + 光标左移

移动到词尾:option + command + 光标右移

选中一个单词:与选中一行道理一样,先option + command + 光标左移,然后再按住shift之后option + command + 光标右移

显示文件的详细修改时间

一般情况下,执行ls命令显示的文件创建和修改时间是精确到分钟的,执行如下命令即可精确到秒:

ls -lT

结果如下:

drwx------@  4 chaijunkun  staff     136  5 18 17:20:02 2017 Applications
drwx------@  4 chaijunkun  staff     136  6  7 10:18:56 2017 Desktop
drwx------@ 22 chaijunkun  staff     748  6 19 17:37:48 2017 Documents
drwx------+ 17 chaijunkun  staff     578  6 19 19:27:55 2017 Downloads
drwx------@ 67 chaijunkun  staff    2278  5 26 10:43:32 2017 Library
drwxr-xr-x   2 chaijunkun  staff      68  5 27 11:40:27 2017 MacKeeper Backups
drwx------+  3 chaijunkun  staff     102  5 18 16:21:50 2017 Movies
drwx------+  5 chaijunkun  staff     170  6  6 14:12:55 2017 Music
drwx------+  3 chaijunkun  staff     102  5 18 16:21:50 2017 Pictures

node.js安装

官方提供了Mac版的pkg installer,如果希望系统保持清洁,可以下载压缩包自己安装:https://nodejs.org/en/download/ ,可以直接解压到类似这样的目录下:/usr/local/node-v6.11.0-darwin-x64,用vi或者vim打开/etc/profile文件,设置环境变量:

export NODE_PATH=/usr/local/node-v6.11.0-darwin-x64

然后将$NODE_PATH/bin目录添加到PATH中即可。

为了加速依赖包安装,请使用淘宝镜像仓库:

npm config set registry https://registry.npm.taobao.org

npm安装全局包总是失败

如果你在安装其他包时总是提示:unable to verify the first certificate,请将严格ssl验证关闭:

npm config set strict-ssl false

如果全局包在安装时总是提示如下信息:

Unhandled rejection Error: EISDIR: illegal operation on a directory, open '/var/root/.npm/_cacache/tmp'

其中,后面的目录也有可能是你当前登录的用户所在的home目录。那么这个问题其实是权限问题导致的。原因是曾经使用过sudo来安装全局包,然后超级用户在写入缓存文件时就把目录的访问权限改了,后续再用普通用户访问时就会没有权限,造成无法打开。

解决办法是分别切换到到超级用户和当前登录用户,分别执行如下命令即可:

sudo chown -R $(whoami) ~/.npm

使用多个SSH密钥

SSH登录的原理是使用非对称密钥来代替密码验证。密钥分为公钥和私钥(利用私钥文件可以提取出对应的公钥文件:ssh-keygen -y -f [privateKeyFile])

假设自己的机器A需要免密码登录到机器B,从而操作机器B,那么私钥文件需要存储在机器A中,公钥文件需要放入机器B中。

往往自己的机器只使用自己的账户,但是需要连接多台服务器,并希望连接的时候都不用密码。那么如何操作呢:

首先假设有如下密钥对已经存在于自己的~/.ssh目录中:

my-macbook-pro:.ssh chaijunkun$ ls -l
total 64
-rw-------  1 chaijunkun  staff  1679  7 13 08:29 csdn.rsa
-rw-r--r--  1 chaijunkun  staff   403  7 13 08:29 csdn.rsa.pub
-rw-------  1 chaijunkun  staff  1675  7 13 08:29 git_key.rsa
-rw-r--r--  1 chaijunkun  staff   408  7 13 08:29 git_key.rsa.pub
-rw-------  1 chaijunkun  staff  1675  7 13 08:29 github.rsa
-rw-r--r--  1 chaijunkun  staff   404  7 13 08:29 github.rsa.pub

上述文件中以.pub结尾的都是公钥文件,首先需要让ssh知道登录一个具体的远程服务器时应该使用什么账户以及该使用哪个私钥,因此需要在~/.ssh目录中增加一个名为:config(文件权限代码:600)的文件:

Host csdn_gitHostName code.csdn.netUser bobPreferredAuthentications publickeyIdentityFile ~/.ssh/csdn.rsa
Host github_gitHostName github.comUser bobPreferredAuthentications publickeyIdentityFile ~/.ssh/github.rsa
Host company_gitHostName git.mycompany.comUser bobPreferredAuthentications publickeyIdentityFile ~/.ssh/git_key.rsa

对于每一台服务器都需要做如下的配置:

Host:这个可以随意起名字,只是为了便于理解而已;

HostName:真正的远程服务器的域名或IP地址;

User:指登录远程服务器时使用的用户名;

PreferredAuthentication:优先使用的鉴权方式,这里填写固定的public(即:使用公钥鉴权);

IdentityFile:既然选择了公钥方式鉴权,则需要指定本地连接到远程时使用的对应私钥文件,所以在这里设置对应的私钥文件完整文件名即可。

注意:在上面的配置文件中Host对应下面的配置项有缩进,这个缩进使用tab或者空格都可以,没有具体要求。

配置好之后保存。然后需要将这些私钥文件加入到ssh-agent的高速缓存中(如果不添加很有可能仍然连不上远程服务器):

my-macbook-pro:.ssh chaijunkun$ ssh-add csdn.rsa
Identity added: github.rsa (csdn.rsa)
my-macbook-pro:.ssh chaijunkun$ ssh-add github.rsa
Identity added: github.rsa (github.rsa)
my-macbook-pro:.ssh chaijunkun$ ssh-add git_key.rsa
Identity added: github.rsa (git_key.rsa)

注意:在macOS 10.12.2之后,好像ssh-agent的运行机制改了,每次重启之后必须再次执行ssh-add将每一个私钥加入到高速缓存中才能继续免密钥登录,这个问题一直没有找到很好的解决办法,目前解决办法是将这些命令加入到~/.bash_profile中:

#add all known private keys to ssh-agent
ssh-add ~/.ssh/csdn.rsa &> /dev/null
ssh-add ~/.ssh/git_key.rsa &> /dev/null
ssh-add ~/.ssh/github.rsa &> /dev/null

如果你在执行ssh-add命令时发现提示如下错误:

Could not open a connection to your authentication agent.

则先需要执行如下命令,来指定SSH代理:

ssh-agent bash

IntelliJ IDEA启动Java时的告警

在Mac中运行IntelliJ Idea启动Java项目,无论调试还是直接运行,可能都在第一行显示出这样一个告警信息:

objc[27458]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java (0x1038284c0) and /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x1038ae4e0). One of the two will be used. Which one is undefined.

虽然不影响使用,但还是可以关闭这样一个告警的。在主菜单中找到Help->Edit Custom Properties选项。增加如下配置,重新启动IntelliJ Idea即可:

idea.no.launcher=true

后来升级到新版IntelliJ IDEA的时候,发现这个方法不管用了。查阅资料,说这个问题在1.7后续Update 210版本(也可能是再早一点点的更新版本)解决了。不过有1.7的免费更新截止到Update 80,只有付费账号才能下载后续更新,因此,解决该问题的办法就是最好升级到1.8。虽然1.8早期的版本也有该问题,但目前的版本已经将此问题解决。其实这个问题也不用纠结,反正也不影响使用,习惯就好。

IntelliJ调试代码用Charles拦截本地发出的请求

虽然Charles启动时会设置浏览器代理,但JVM是不遵循这个配置的。启动调试代码时需要添加JVM选项

-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888

如果本地发出的请求是https协议,需要改用如下JVM选项(与上面的选项可以并存)

-Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888

IntelliJ打开properties文件中文显示为\uXXXX的unicode编码问题

properties文件在配置时经常会在备注里使用中文进行说明,在eclipse中如果装过properties editor会自动将中文转换成unicode方式写入文件。此时如果IntelliJ直接打开该文件则会显示为\uXXXX这样的字符,此时需要修改预置信息:

Editor --> File Encodings,在右侧下方有个区域,专门设置Properties Files(*.properties)的区域,此时需要将”Transparent native-to-ascii conversion“选项勾选,如下图所示:
在这里插入图片描述

IntelliJ打开Javadoc自动显示

和Eclipse不同,IntelliJ默认是没有打开Javadoc自动显示的。在IntelliJ的Settings中,找到“Editor > General”,在界面右侧拖动到最后,“Other”区域中勾选“show quick documentation on mouse move”。“Tooltip delay”默认为500毫秒,鼠标悬停时间大于该值后显示Javadoc。可以根据个人习惯把这个值改小一点。

一些好用的IntelliJ插件

.ignore

该插件是为了配合git生成忽略配置文件的。其中有一些模板可供选择。大大简化.gitignore文件配置的过程。

Maven Helper

IDE中针对Maven的pom.xml配置文件依赖关系分析功能比较弱。此插件可以增强依赖关系分析,具有显示包依赖版本,冲突位置,快速转到定义位置等功能。

iBatis/MyBatis mini-plugin

在项目中如果使用了iBatis或MyBatis框架,会经常需要通过DAO层找相应的Mapper定义,或者通过Mapper来找对应的DAO定义,如果通过手工查找费时费力,该插件可以自动解析,像点击链接一样快速定位。

Alibaba Java Coding Guidelines

该插件能够帮助开发者检查代码规范性。当代码不满足《阿里巴巴Java开发手册》中所描述的规范时,插件会在IDE中以多种方式进行提示,开发者可根据提示中的描述进行合规修改,从而维护代码的简洁高效性。

GenerateSerialVersionUID

这个插件可以很方便地为实现Serializable接口的类生成servialVerionUID常量定义代码。

IDEA Mind Map

生成思维导图的免费插件,可以支持插入图片,导入其他格式的现有导图。适用于所有基于IntelliJ的IDE产品。

Mac系统下完整卸载Jetbrains产品的方法

有时当新版本的IDE发布后,需要将旧版本删除。这样安装会比较干净。然而Mac系统中的App不仅仅存放在/Application目录中,还会在其他地方创建预置、缓存和日志。需要清理的目录详情请参阅:
https://intellij-support.jetbrains.com/hc/en-us/articles/206544519-Directories-used-by-the-IDE-to-store-settings-caches-plugins-and-logs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49438.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 基金会开源教育及人才培养峰会来了

开源技术正在快速发展&#xff0c;在云计算、大数据、人工智能等领域逐步形成技术主流。作为一种新的软件生产方式&#xff0c;开源已经被列入“十四五”规划纲要。纲要提出&#xff0c;支持数字技术开源社区等创新联合体发展&#xff0c;完善开源知识产权和法律体系&#xff0…

影响 5000 万开发者,GitHub 与 CSDN 掌舵人对话技术社区未来

作者 | 卢鸫翔 责编 | 屠敏 2018年6月伊始&#xff0c;微软宣布将以75亿美元的价格收购热门在线代码分享和协作平台GitHub。如今近5个月的时间过去&#xff0c;我们终于等到了官宣&#xff0c;微软已于上周五正式完成收购GitHub的交易。与此同时&#xff0c;微软企业副总裁Na…

乔纳森离开苹果;李彦宏被泼水;Windows 公开 Linux 内核源代码 | 开发者周刊

【CSDN编者按】七月的第一周&#xff0c;科技圈就像盛夏的天气一样&#xff0c;冰火两重天。乔纳森离开苹果&#xff1b;李彦宏被泼水&#xff1b;Windows 公开 Linux 内核源代码......最近一周就有哪些开发者新闻呢&#xff1f;就在本期开发者周刊&#xff01; 整理 | 红月 出…

这可能是史上最强大Mac连接服务器的软件,甚至能媲美Xshell的存在

今天介绍的这款软件叫做Royal TSX 好了&#xff0c;有些同学看到这个名字就跑了&#xff0c;并且留下了一句 别跑&#xff0c;你去下了你也不一定知道怎么用&#xff01;&#xff01;&#xff01;&#xff01; 我们先看看他的页面&#xff1a; 骚话不说了&#xff0c;直接开…

MacOS利用Github搭建个人博客过程记录

【需要科学上网】 笔者博客​​​​​​​ 一、尝试在Github建立简单页面 如果没有GitHub账户请先创建 ①在GitHub界面&#xff0c;点击New repository 创建新项目 Repository name填“用户名.github.io”,比如我的就应该填写“yang-makabaka.github.io” 下面选择Public ,然…

开发者在行动!中国防疫开源项目登上 GitHub TOP 榜

用开发者们的方式支援这场没有硝烟的战争&#xff01; 整理 | 唐小引 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 截止北京时间 1 月 28 日下午 15:47&#xff0c;全国确诊新型冠状病毒的数字已经到达了 4586 例&#xff0c;疑似高达 6973 例&#xff0c;医护…

Mac当作云服务器,你真的会搞吗

1写作目的 最近淘了个mac&#xff0c;发现mac和linux还挺像的&#xff0c;并且云服务器马上就到期了&#xff0c;可以不可以把mac当做永久的云服务器呢&#xff1f; 2FinalShell(XShell)连接MAC MAC&#xff1a;首先选择系统偏好设置&#xff0c;选择里面的共享 MAC&#x…

【历史上的今天】7 月 22 日:Linux 开发的“二把手”出生;苹果发布 OS 8;MSN 发布

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2022 年 7 月 22 日&#xff0c;在 1945 年的今天&#xff0c;美国计算机科学家阿黛尔戈德堡&#xff08;Adele Goldberg&#xff09;出生&#xff1b;1970 年代时&…

【历史上的今天】6 月 4 日:微软收购 Github;MacOS Mojave 推出;英特尔发布第四代架构 Haswell

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2022 年 6 月 4 日&#xff0c;在 1998 年的今天&#xff0c;我国互联网用户突破一百万。自从中国科学技术网在国内首次实现了与国际互联网络的直接连接&#xff0c;我…

我用ChatGPT干了这18件事!格局一下打开了

因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享 点击关注#互联网架构师公众号&#xff0c;领取架构师全套资料 都在这里 0、2T架构师学习资料干货分 上一篇&#xff1a;2T架构师学习资料干货分享 大家好&#xff0c;我是互联网架构师&…

Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!

各大网站都有推出自己的手机访问版本页面&#xff0c;不管是新闻类还是视频网站&#xff0c;我们在电脑是无法直接访问到手机网站的&#xff0c;比如我经常访问一个3g.qq.com这个手机站点&#xff0c;如果在电脑上直接打开它&#xff0c;则会跳转到其它页面&#xff0c;一般我会…

ChatGPT常用的提示语(prompts)系列三

系列文章目录 内容翻译自&#xff1a;https://github.com/f/awesome-chatgpt-prompts&#xff0c;并加入自己的实践内容 1、 ChatGPT常用的提示语&#xff08;prompts&#xff09;系列一 2、 ChatGPT常用的提示语&#xff08;prompts&#xff09;系列二 文章目录 系列文章目录9…

Observability:使用 OpenTelemetry 和 Elastic 监控 OpenAI API 和 GPT 模型

作者&#xff1a;David Hope ChatGPT 现在很火&#xff0c;它打破了互联网。 作为 ChatGPT 的狂热用户和 ChatGPT 应用程序的开发者&#xff0c;我对这项技术的可能性感到无比兴奋。 我看到的情况是&#xff0c;基于 ChatGPT 的解决方案将呈指数级增长&#xff0c;人们将需要监…

大模型时代的自然语言处理:挑战、机遇与发展

来源&#xff1a;专知‍‍ 近期发布的 ChatGPT 和 GPT-4 等大型语言模型, 不仅能高质量完成自然语言生成任务, 生 成流畅通顺, 贴合人类需求的语言, 而且具备以生成式框架完成各种开放域自然语言理解任务的能 力. 在少样本, 零样本场景下, 大模型可取得接近乃至达到传统监督学习…

促进社区AIGC发展!Stability AI 再开源 RLHF、DeepFloyd IF

本文来源 新智元 编辑&#xff1a;Aeneas 好困 【新智元导读】开源先锋StabilityAI一天扔了两枚重磅炸弹&#xff1a;发布史上首个开源RLHF大语言模型&#xff0c;以及像素级图像模型DeepFloyd IF。开源社区狂喜&#xff01; 最近&#xff0c;大名鼎鼎的Stable Diffusion背后…

分享200+个关于AI的网站

分享200个关于AI的网站 欢迎大家访问&#xff1a;https://tools.haiyong.site/ai 快速导航 AI 应用AI 写作AI 编程AI 设计AI 作图AI 训练模型AI 影音编辑AI 效率助手 AI 应用 文心一言: https://yiyan.baidu.com/ 百度出品的人工智能语言模型 ChatGPT: https://chat.openai.c…

论文《Can AI-Generated Text be Reliably Detected?》译文

摘要 大型语言模型&#xff08;LLM&#xff09;的快速发展使它们能够在包括文档续写和问答系统在内的各种任务中表现惊人。然而&#xff0c;不受监管地使用这些模型可能导致恶意后果&#xff0c;如抄袭、伪造新闻、垃圾邮件等。因此&#xff0c;可靠地检测人工智能生成的文本对…

我的周刊(第080期)

我的信息周刊&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 stable-diffusion-webui-docker[1] 基于 Docker 的…

文案一键配图!

大家好&#xff0c;我是懂王。 之前听到过这样一句话&#xff0c;朋友圈内容吸引力为&#xff1a;视频>图片>文字>链接。其实这句话还是有几分道理的。毕竟如何简短&#xff0c;快速的了解信息才是最重要的。 无论是发朋友还是写文章&#xff0c;只要你涉及到内容创…

ChatGPT iOS 应用程序用户现在可以访问互联网

OpenAI 的 iOS 版 ChatGPT 应用程序现在允许 ChatGPT Plus 用户通过 Bing 搜索访问信息。付费用户的浏览功能处于测试阶段。 ChatGPT iOS 应用程序用户现在可以通过 Bing 搜索访问信息。但是&#xff0c;该功能仅适用于 ChatGPT Plus 用户&#xff0c;并且必须通过设置启用。 …