报错:this action could not be completed,try again
解决办法:
终端输入
sudo mkdir -p /Users/Shared
sudo chown root:wheel /Users/Shared
sudo chmod -R 1777 /Users/Shared
参考链接
虽然充电器指示灯依然亮着,但是电池电脑一直充不进去。
Mac充不进电有时候并不是机器本身硬件问题,而是苹果笔记本的“SMC”系统出现了问题。
有两种解决办法,一个简单一个麻烦,建议先试试简单的,简单的不行再试麻烦的。
拔掉充电线,保持开机的状态,按下Shift + Command + Option + 电源键
,会关机;然后按下电源键重启,再次插上电源线。
首先,我们需要重设PRAM,方法如下:
接下来,我们再重设SMC。
这个时候,我们就能发现,原本充不进的电池,现在可以正常充电使用了。
当然如果这样还是不能解决您的问题的话,那可能就真的需要到苹果官方售后去寻求帮助了。
Mac睡眠模式有三种,Sleep(睡眠)、Deep Sleep(深度睡眠)和Safe Sleep(安全睡眠);对应的操作分别是Suspend to RAM、Suspend to Disk和Suspend to RAM and Disk,内部代码是睡眠模式0、1、3。
Sleep:数据驻留在内存中,内部代号hibernatemode 0
。
这种模式下电脑进入睡眠时,数据保留在内存中,不写入硬盘,仅用少量的电量对内存供电,以保持内存中的数据不会因断电而丢失。
唤醒时直接重内存加载数据。所以优点是入睡快,唤醒快,不占用硬盘空间。但是一旦掉电,数据全部丢失,不可恢复,所以数据安全性不高是他的缺点。
Deep Sleep:将数据保存在硬盘中,内部代号hibernatemode 1
这种模式下,电脑进入睡眠时,首先将内存的数据快速写入硬盘中睡眠专用的内存镜像文件中(该文件位于:/var/vm/目录下,名为sleepimage,这是一个隐藏目录,vm的意思就是虚拟内存)。一旦内存数据写入硬盘成功后,就不再对内存供电,仅保留CPU监听唤醒信号的功能。
唤醒时再将硬盘中的数据加载到内存中,因为入睡时要写入硬盘,唤醒的时候会看到一个显示加载进度的进度条,它的优点时安全性高、省电,缺点是占用硬盘空间和唤醒速度较Sleep要慢。
Safe Sleep:上面两种模式的结合(也是OSX系统默认的睡眠级别),内部代号hibernatemode 3
当Mac进入睡眠时,先将内存中的数据写入到硬盘(防止数据丢失),然后对内存持续供电,所以它的特点是入睡快、唤醒快、安全性高。
当电源供电正常时,可以像Sleep那样唤醒时直接重内存中读取数据;当电池耗尽后唤醒Mac,可以Deep Sleep那样从硬盘中的数据加载到内存。
该模式结合了前两种模式的有点,同时也继承了缺点,就是要给内存持续供电、占用硬盘空间。
便携式电脑一般采用这种模式,写入硬盘这点表现的尤为明显,如果时笔记本电脑,当你合上笔记本或点击睡眠的时候,就会发现呼吸灯首先一直保持高亮状态,这表示正在向硬盘中写入数据,当写入完成时指示灯开始进入呼吸状态,这表示你的Mac已经进入梦乡了!!
打开“终端”输入下面内容:pmset -g | grep hibernatemode
打开“终端”输入下面内容:sudo pmset -a hibernatemode xxx
xxx代表睡眠模式的代号
如果想设置回默认,则输入sudo pmset -a hibernatemode 3
作为开发人员,平时工作会打开很多软件,如果每次开机完打开各种软件,然后把各个软件恢复到昨天或者一段时间之前的状态,会花掉很多时间。
所以对于开发人员来说,用操作系统上下文切换、保存现场的话来说,就是迅速恢复到当时的工作状态,这点是很重要的。因此:
中断工作---再次工作
的时间较长频率较低,则建议将默认的睡眠模式设置为深度睡眠模式 中断工作---再次工作
的时间较短频率较高,则建议直接使用默认睡眠模式 defaults write com.apple.finder AppleShowAllFiles -bool true
killall Finder
若要不显示隐藏,将第一句的true
改为false
即可
例如,C-n C-p C-b C-f C-a C-e
等等等等。
用这些能大幅度提高输入效率。
建议将Ctrl
和Caps lock
互换。
方法如下:
打开系统偏好设置=> 键盘,然后如图所示操作
在我自己的电脑系统(OS X 10.11.5)下,用户目录下的资源库文件夹默认隐藏了不让查看,可能是由于苹果担心用户不小心误删了资源库中的文件,而故意隐藏。
不过想让这个文件夹显示出来也非常简单,直接在终端输入下列命令就可以了:
chflags nohidden ~/Library
如果还想让它隐藏,输入下面的指令:
chflags hidden ~/Library
VIM想提高生产力,插件挺重要,号称最难装的插件———YouCompleteMe
见另一篇 VIM的折腾和配置 (按照这篇的步骤,严格一步一步来,一定可以成功!)
然后就是配置:.vimrc
以及.ycm_extra_conf.py
配置
Emacs很复杂,已经可以单独占篇幅了,所以参见我的另一篇博客:Emacs的折腾和配置
去Oracle官网下载想要安装的JDK的dmg包,然后挂载dmg包,按照正常的dmg软件安装流程去安装即可,安装后不需要自行去配置环境变量。
安装目录:```/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home```
> 验证:终端输入java -version
如果安装最新版本:brew install java
如果安装老版本:
brew tap caskroom/versions
brew cask install java6
在 OS X 上,你可以同时安装多个版本的 JDK。你可以通过命令/usr/libexec/java_home -V
来查看安装了哪几个 JDK。
那问题来了,当你运行 Java 程序时使用的是哪个 JDK 呢?在默认情况下指向的是已经安装的最新版本。但是你可以在.zshrc
或者.bash_profile
设置环境变量JAVA_HOME
来更改其指向:
例如设置JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
。
但是在多个JDK共存的情况下,可以用JAVA_HOME=/usr/libexec/java_home -v 1.6
这种更加通用的方式代替。当需要切换JDK时,直接把其中的1.6改为1.8即可。
也可以使用 jEnv 来管理不同版本的 JDK,这个工具跟 rbenv 类似,通过当前目录下的.java-version来决定使用哪个 JDK。jEnv 也可以用 brew 安装。不过要使用 jEnv 要有几个问题:
eval "$(jenv init -)"
加入 profile,没有 Oh My Zsh 插件。这点是很蛋疼。 eval "$(jenv init -)"
加入~/.zlogin
,这样可以避免修改~/.zshrc
。/usr/libexec/java_home
工具来管理安装的 JDK。所以建议不要使用 jEnv。
有2种方式安装,推荐第二种
先去Scala官网下载Scala的语言包,该包是个.tar文件,解压该包,并把文件夹放到/usr/local/
下,然后在家目录新建.bash_profile
文件,并在里面添加两行:SCALA_HOME="/usr/local/scala-2.11.8"
export PATH=$PATH:$SCALA_HOME/bin
通过Homebrew安装:brew install scala
验证:终端输入
scala -version
安装必备插件:
安装Alcatraz(插件管理器):curl -fsSL https://raw.github.com/alcatraz/Alcatraz/master/Scripts/install.sh | sh
验证:XCode->Windows->Package Manager,看到这个就说明安装成功。
安装xvim(vim插件):进入Package Manager,然后搜索xvim,点击install即可。其他插件的安装同理。
安装插件时候,有时候会遇到提示UUID失败等类似的错误提示,解决方案如下:
0. 查找自己的UUID:defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
1. 终端输入:find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C
2. 手动添加:右键Xcode,选择显示包内容;然后找到Contents/Info.plist路径下的Info.plist文件;双击Info.plist文件,找到DVTPlugInCompatibilityUUID,将对应的UUID复制;接下来到出问题的插件所在目录下,右键,选择显示包内容,然后找到Contents/Info.plist路径下的Info.plist文件;双击Info.plist文件,将刚刚复制的UUID增加到DVTPlugInCompatibilityUUID字段里面,保存。
卸载插件
安装插件一般二个办法:一是通过前面提到的插件管理器Alcatraz安装,另一种是自己clone源码然后build安装。
因此:
~/Library/Application Support/Alcatraz/Plug-ins
删除插件的整个文件夹,然后删除~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
目录下该插件对应.xcplugin
文件。删除Alcatraz本身(同上,删除插件文件夹以及插件的配置文件):rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
rm -rf ~/Library/Application\ Support/Alcatraz
Mac默认的终端不显示颜色,可以在.bash_profile
中加上一句话即可:alias ls="ls -G"
Homebrew是一个很好的包管理工具,它的好处和基本使用就不多说了,前人之述备矣。
安装卸载的方法来自于官网,具体有疑问的地方请参见Homebrew的Github官网。
Homebrew 将软件包分装到单独的目录/usr/local/Cellar
,然后 symlink 到/usr/local
中。
安装:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
卸载:
cd `brew --prefix`
rm -rf Cellar
brew prune
rm `git ls-files`
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
rm -rf .git
rm -rf ~/Library/Caches/Homebrew
CSDN网友给了个示例,也可以考虑这个:
gerryyang@mba:~$ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
It appears Homebrew is already installed. If your intent is to reinstall you
should do the following before running this installer again:
rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
这玩意儿很强大很好,建议就装着别卸。
brew
和 brew cask
的区别brew
是包管理工具,可以类似以下Ubuntu的apt-get
,而brew-cask
允许你使用命令行安装 OS X 应用,比如你可以这样安装 Chrome:brew cask install google-chrome
命令brew tap xxx/yyy
,然后就可以brew install aaa
了。
brew常用命令:
brew tap # list tapped repositories
brew tap # add tap
brew untap # remove a tap
在stackoverflow上找到了答案,把问题和回答贴出来
问题:
stackoverflow原贴链接:
http://stackoverflow.com/questions/7323261/uninstall-remove-a-homebrew-package-including-all-its-dependencies
这篇Python的杂项也可以参考。
我们知道,Mac系统自带了Python2,因为系统有些东西依赖了Python2;系统没有自带Python3。
系统的这种设定有几个问题:
sudo easy_install pip
,而且国外网被墙了,经常失败,咱要是装个自带pip等这种神器的Python多好。基于上面几点,所以我们需要安装平时可用(乱搞)的Python,这时候就就要借助到上面提到的Homebrew了。
用Homebrew安装的Python在/usr/local/Cellar
下。
brew install python
brew install python3
这样安装好的Python2和Python3自带了pip~
可以先看一下自己的PATH:echo $PATH
里面应该会有: /usr/bin: /bin: /usr/sbin: /sbin: /usr/local/bin
这个决定了终端里面找命令的顺序,因此想在输入Python时找我们自己装的Python,只需要把/usr/local/bin
放在最前面即可:
改成:/usr/local/bin: /usr/bin: /bin: /usr/sbin: /sbin
修改PATH可以在
/etc/paths
里面修改,也可以在~/.bash_profile
里面修改。建议后者,因为前者是系统的,后者是用户的。系统的别随便改,用户的随意改。跟改之前的对比一下,可以看出,内容没有丝毫改变,就是改变了一下顺序而已。
验证Python2
which python
/usr/local/bin/python
则表明成功验证Python3
which python3
/usr/local/bin/python3
则表明成功如果有需要想使用一下系统的Python,输入/usr/bin/python
即可
通过Homebrew安装的Python都是自带pip的,通过自带的这个pip安装的包都装到哪个目录中去了呢?
答案是:/usr/local/lib/python2.7/site-packages
和/usr/local/lib/python3.5/site-packages
下面
如果之前自行手动安装过Python官网的dmg包,或者用系统的Python安装过其他东西,例如用系统自带的Python,安装了pip。
而上面说过,这种方式不推荐,而是推荐Homebrew,现在想卸载掉原来安装的,然后再用Homebrew安装,以保证系统Python的纯净,那该怎么办呢?
用老方式安装过了pip
sudo easy_install pip
: 安装路径在。。。。。(个人猜测:/Library/Python/2.7/site-packages
),根据安装路径进去找对应文件,删掉。
用老方式安装的pip安装了virtualenv
sudo pip install virtualenv
:安装路径在。。。。。(个人猜测:/Library/Python/2.7/site-packages
),根据安装路径进去找对应文件,删掉。
用老方式安装了Python3
如果去Python官网下载了Python3的dmg包安装了Python3,现在想卸载干净怎么办?
结合suspicious package这个软件就可以删干净了(前提是原安装包还在)
通过Homebrew安装:brew install mysql
手动开启MySQL服务:
mysql.server start
; mysql -uroot -p
; 输入密码(初始没有密码的情况下直接回车)
如果想配置开机自启动以及设置成自启动后想取消自启动,进行如下操作:
$ cp /usr/local/Cellar/mysql/5.6.16/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
#5.6.16是数据库版本号,根据你当时所安装的版本号自己修改
#start
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
#stop
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
安装好后,MySQL的root用户默认是没有密码,如果想设置密码,可以进行如下操作:set password for root@localhost = password('XXXXX');
目前,有两个 MySQL 驱动:
可以两个都装上,使用的时候再决定用哪个:
pip install mysql-connector-python
如果失败,改成这样
pip install mysql-connector-python --allow-external mysql-connector-python
如果依然失败,需要改成这样:
pip install --extra-index-url https://pypi.python.org/pypi/mysql-connector-python/2.0.4 mysql-connector-python
如果上面都失败的话,就这样:
pip install https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.1.4.tar.gz
pip install mysql-python
注意: 在拿到数据库链接这一步,二者的用法稍微不同:
mysql-connector-python
import mysql.connector
conn = connector.connect(......)
mysql-python
import MySQLdb
conn = MySQLdb.connect(......)
还没写,待补充,可暂时参见Ruby的杂项。。。
除了vim和emacs,其他的人气高的、公认好用的编辑器有:
目前个人感觉它的vim插件不太好用,其他的目前没发现什么不爽的地方。
原生可以在编辑器里预览MarkDown,这个简直不能太爽!!!
另外,它的插件安装在:~/.vscode/extensions/
目录下
按照个人的习惯和品位,还是更喜欢VS Code。
Sublime我比较欣赏的是,不需要任何插件,配置一下配置文件就有vim模式。
Sublime的插件安装目录在:~/Library/Application Support/Sublime Text 3/Packages
目录下
Mac下大名鼎鼎的编辑器!
我个人用得较少,因为其vim插件“textmatevim”只支持TextMate 1,不支持TextMate 2。用习惯了vim模式,离开了它确实不太习惯。所以我用得少。
~/Library
这个目录下放的是个人用户的资源库。
可以类比
/Library
:放的是系统的资源库
~/Library
下有个Application Support
目录,这个目录放了个人用户应用程序相关的数据以及支持文件,比如第三方的插件、帮助应用、模板等。
注意 ,有些软件的插件放在这个目录下。比如我如果装了JetBrains家的某些IDE,可能还会装个
IDEA Vim
插件,该插件就在这个目录下。
结合上面提到的Python的一些目录的情况,加上Unix/Linux系统的一些基础知识,就可以自行推知其他重要目录的作用。
我们都知道,Mac下是自带了emacs的。而Ruby的安装会引入emacs。它们都分别装在哪里呢?来看一下。
其中打红框的是系统自带的emacs,没打的是由于Ruby引入的。
Ruby受Lisp影响很大,Ruby之父的Lisp水平也很高,他自己也明确表示过很喜欢Lisp,个人猜想有这个原因?
/Library/Python/
/System/Library
/System/Library/Frameworks
/System/Library/Frameworks/Python.framework
其他自带的一些东西,可以举一反三。
手动删除下面这些文件(版本不同可能有点出入,不过不要紧,就是把相关文件删除干净的意思):
推荐软件:APPdelete
用该软件删完后,再手动查找上面列出的东东,没删掉的话删干净即可。
一般这种删软件的APP,对于家目录下的关联文件夹基本都能删干净,所以这里手动检查的时候,重点检查非家目录下的文件(夹)。
CheatSheet 能够显示当前程序的快捷键列表,默认的快捷键是长按⌘。
安装:brew cask install cheatsheet
Git 图形化客户端。
安装:brew cask install sourcetree
看下系统内置了几种shell: /Users/yj >cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
共6种
如果是linux 系统的话,想要使用 zsh ,需要自己安装。
mac 预装了zsh ,但是很少有人直接切换过来使用此shell ,因为 zsh 的默认配置及其复杂繁琐,让人望而却步,直到有了oh-my-zsh这个开源项目,让zsh配置降到0门槛.而且它完全兼容 bash .
安装:sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安装完成后,只需要一行命令就可以切换到 zsh 模式:chsh -s /usr/local/bin/zsh
在 Z shell 中,~/.zshrc
是最重要的配置文件。Oh My Zsh 在安装的时候会把当前环境的$PATH
写入~/.zshrc
中。这并不是我期望的行为,因为使用了 brew
,我们基本不再需要去定制$PATH
,而 Oh My Zsh 提供的默认$PATH
值$HOME/bin:/usr/local/bin:$PATH
是非常合适的一个值,它把$HOME/bin
加入了$PATH
,可以让我们把自己用的脚本放到$HOME/bin
下。
所以建议把~/.zshrc
重置:cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
zshell 还有很多好用的插件,这里推荐 zsh-autosuggestions
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
然后在 .zshrc
中添加 zsh-autosuggestions 即可。
Oh My Zsh 还有很多有价值的插件。
替代品有 Oh My Fish,使用了 Fishshell 作为基础。
ZSH_THEME="robbyrussell" //用来指定zsh 样式
相应的皮肤目录在
.oh-my-zsh/themes/robbyrussell
,你也可以编辑皮肤模板文件来达到想要的shell样式。
DISABLE_AUTO_UPDATE="true" //是否自动更新
lugins=(git autojump osx brew node npm) //zsh 使用的插件
以Git为例,插件的配置文件放在
.oh-my-zsh/plugins/git/git.plugin.zsh
下
iTerm2 是最常用的终端应用,是 Terminal 应用的替代品。提供了诸如Split Panes等一群实用特性。它默认的黑色背景让我毫不犹豫的抛弃了 Terminal。
安装:brew cask install iterm2
brew cask install cheatsheet
长按CMD键可以弹出来当前应用的快捷键列表
brew cask install dash
API 查看工具
brew cask install kdiff3
diff 工具
用例图、类图、时序图等画图工具。
有社区版的,已经足够强大了。
推荐使用 homebrew 安装:brew install go
接下来配置环境变量,在.zshrc
中添加:
# go
export GOROOT=/usr/local/opt/go/libexec # 要这句话是因为/usr/local/opt/go是一个链接,指向真正的目录,所以配置成链接以后的扩展性较强。如果不配置GOROOT,则使用默认的GOROOT
export GOPATH=$HOME/.go // 自行指定
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
然后打开vscode写go代码会报一些工具的错误,点击“Install All”即可,会安装下面这些tool。
gocode
gopkgs
go-outline
go-symbols
guru
gorename
gomodifytags
impl
godef
goreturns
golint
gotests
如果安装成功,会提示
Installing github.com/nsf/gocode SUCCEEDED
Installing github.com/tpng/gopkgs SUCCEEDED
Installing github.com/ramya-rao-a/go-outline SUCCEEDED
Installing github.com/acroca/go-symbols SUCCEEDED
Installing golang.org/x/tools/cmd/guru SUCCEEDED
Installing golang.org/x/tools/cmd/gorename SUCCEEDED
Installing github.com/fatih/gomodifytags SUCCEEDED
Installing github.com/josharian/impl SUCCEEDED
Installing github.com/rogpeppe/godef SUCCEEDED
Installing sourcegraph.com/sqs/goreturns SUCCEEDED
Installing github.com/golang/lint/golint SUCCEEDED
Installing github.com/cweill/gotests/... SUCCEEDED
All tools successfully installed. You're ready to Go :).
然后安装一个调试用的工具(不用vscode调试GO的可跳过此步骤)
go get -u -v github.com/derekparker/delve/cmd/dlv
至此,安装和配置完毕。