# 常见问题
# 日常使用
...
# 开发相关
# 容器应用访问宿主机的其他应用
一般来说,可以使用ifconfig
查询容器访问宿主机的ip地址,但mac os有点例外,查询不到这个ip地址,是以域名的形式访问,域名是
docker.for.mac.host.internal
,这样的话,就能以域名+端口的方式,访问到其他应用了
# 编辑环境变量(使用zsh的情况)
- 如果不知道自己使用的是什么shell脚本,可以在iterminal输入命令
echo $SHELL
查看
liuxiaoluxx ~: echo $SHELL
/bin/zsh
- 若输出/bin/zsh,则确认使用的是zsh的shell
- 编辑文件.zshrc,输入命令
vi .zshrc
- 文件内容比较多,若找不到要修改的配置参数,可以按
/
,然后输入想要查找的参数,回车即可 - 编辑完成之后,输入
:wq
退出文件,然后输入source .zshrc
让修改生效
# mac出现No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
网上有很多方案,大多数是针对IDE的,对我来说都不行,所以这个方案可以视为一个其他方案的补充方案
打开maven安装地址的bin目录,我这里是
/usr/local/Cellar/maven/3.6.3/bin
找到mvn文件,修改第一行的JAVA_HOME为指定的地址
// 修改之前
liuxiaoluxx /usr/local/Cellar/maven/3.6.3/bin: cat mvn
#!/bin/bash
JAVA_HOME="${JAVA_HOME:-$(/usr/libexec/java_home)}" exec "/usr/local/Cellar/maven/3.6.3/libexec/bin/mvn" "$@"
// 修改之后
liuxiaoluxx /usr/local/Cellar/maven/3.6.3/bin: cat mvn
#!/bin/bash
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home" exec "/usr/local/Cellar/maven/3.6.3/libexec/bin/mvn" "$@"
- 问题分析 可能是安装过多个版本的jdk导致的,之前应该是一个软链接,现在改成了指定的地址。不清楚如果升级jdk,这里会不会动态升级。不管怎样,问题解决就很开心啊。
# Linux:readonly option is set (add ! to override)错误
通常有三种情况:
- 该错误为当前用户没有权限对文件作修改,这种情况可以强制退出:q!,先取得root权限后进行修改(root的权限取得命令是:su root然后输入你的登录密码即可)
- 该文件没有正确保存退出,正在打开状态,请别人关闭后再保存
- 若该文件所有人都关闭了,提示有的人没有关闭,则删除该文件的临时文件则可以正常打开、修改、保存;有文件未关闭的显示:
解决步骤:
- 按Esc
- 输入:wq!
# 更新Mac Bug Sur系统之后出现软件打不开的情况
你需要先安装 command line tool,以前安装过的如果更新了系统可能会失效,需要安装新的。安装按这篇教程 (opens new window)操作
安装完成后,打开终端,对软件进行签名即可:sudo codesign --force --deep --sign - /Applications/{appName}.app
ps: 请将{appName}.app 替换为你需要签名的app名称
# 保存SSH连接信息
找到iterm2 -> Preferences -> Profiles,添加一个profile
设定profile名称
设置profile快捷键
选择command -> Login Shell,设置命令
expect 脚本文件
脚本文件内容如下
#!/usr/bin/expect -f
# 将下面信息设定为你的服务器连接信息
set user root
set host xxx
set port xxx
set password xxx
set rsa xxx
set timeout -1
# 如果是密码的方式,去掉 -i $rsa 即可
spawn ssh -i $rsa -p $port -o StrictHostKeyChecking=no $user@$host
# 在跳出输密码提示的时候,发送密码,跳过输密码的步骤
# expect用来匹配输密码时的提示,如果不是密钥是密码的方式,将下面一行的内容替换为expect "*password*"即可
expect "*Enter passphrase for key*"
send "$password\r"
interact
expect eof
- 保存之后,使用快捷键就能直接连接服务器啦,比如我这个,使用
cmd+option+9
就能快捷访问服务器了