yjiang's cake

mac下git命令自动补全

在安装了bash-completion的情况下依旧无法补全

解决方法

  1. 新建文件~/.git-completion.bash
  2. 复内容到git-completion.bash中,https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
  3. ~/.bash_profile中新增一行 source ~/.git-completion.bash
  4. 执行 source ~/.bash_profile

bash

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash && echo "source ~/.git-completion.bash" >> ~/.bash_profile && source ~/.bash_profile

Xcode7.3下 Alcatraz PackageManager及其它插件失效问题

删除之前安装的Alcatraz

    rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin

重新安装Alcatraz

    curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh

获取当前UUID

    defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
    #例如`ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C

把当前UUID加入Info.plist文件(以Xvim为例)

    cd ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XVim.xcplugin/Contents
    #打开Info.plist,并找到UUID array,把上面得到的`ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C`加入

保存,重启xcode

提示load bundle or skip时,选择load bundle

安装Alcatraz遇到mktemp错误的解决办法

    wget https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh
    #打开 install.sh,找到第10行,修改如下
    TMP_FILE="$(/usr/bin/mktemp -t ${BUNDLE_ID})"

保存,并赋予可执行权限,运行.

mysql启动错误:mysqld_safe mysqld from pid xxx enaed

具体原因未知,可能是由于权限

1. /usr/local/var/mysql 全部删除

2. 执行 /usr/local/Cellar/mysql/

/scripts/mysql_install_db 初始化

3. 尝试重启 mysql.server restart

解决在OSX10.11下无法安装php-pear问题

在最新的osx10.11下安装php-pear提示无权限,即使使用sudo来运行也是如此

问题所在

在最新的10.11版本下,osx引入了 Rootless机制.关于此机制可参考Quora用户Eldad Eilam的答案

简单来说就是苹果为了安全,限制第三方应用(包括brew),只有Apple以及Apple授权签名的软件(包括命令行工具)可以修改此目录。

关闭rootless

重启,开机按住Command + R,以Recovery分区启动, 然后选择以下方式: 1.图形化操作

在Security Configuration中关闭Enforce System Integrity Protection 

2.命令行操作

csrutil disable

此时按照官方安装文档安装即可.

恢复rootless

csrutil enable

osx的命令行与linux的命令行

在日常使用osx命令行过程中,发现与linux下用法上有些区别,虽然无伤大雅但总让人觉得不爽.

例如常用的复制命令cp:

linux :  cp <dir1> <dir2> -r 或 cp -r <dir1> <dir2>
osx   :  cp <dir1> <dir2> -r

这些区别是因为osx与linux所遵循不同开源协议导致的

  • osx遵循的是BSD协议
  • linux遵循的是GNU协议

(有关更多开源协议的区别请自行查阅)

使osx支持GNU协议的命令行

brew install coreutils

需要注意的是coreutils只包含一些基本的命令,例如ls cat cp mv等.

Copyright © 2016 yjiang's cake

返回顶部