想提升mac开发效率的朋友,Macdown小编问精心准备的这篇文章不可错过,在本篇文章中为大家介绍的是mac开发配置技巧。
mac开发配置技巧
mac系统的权限问题
遇到MacOS sierra系统的/usr下各种root操作出现“Operation not permitted”的问题,关闭 Rootless即可。重启按住 Command+R,进入恢复模式,打开Terminal:
csrutil disable
重启即可。如果要恢复默认:
csrutil enable
mac用户组
OS X 内置会有staff wheel admin这三种常见的用户组,分别介绍一下
staff : 所有创建用户都会属于这个用户组,提供最基本的对该用户目录~/(/User/)的rwx权限,其他的一般只有r或者rx权限。比如我建立一个用户叫做lizhuoli,那么我会在一个staff组里面,对/User/lizhuoli/*有rwx权限。
admin :默认创建的所有用户也会属于这个admin用户组,在它里面的用户可以通过 su 或者 sudo 切换到root用户,只要执行以后输入这个用户的密码即可,而不需要知道root密码。
wheel :唯一只拥有一个用户root,意思是root用户的专属用户组。
结论
苹果新系统的Rootless防止用户误操作,或者防止一些软件能直接获取到root权限对系统造成危害。
说白了就是不想让用户去碰涉及系统内核的一些东西。把用户当傻子培养是苹果一贯策略。
sudo和su到root权限都不能对一些文件造成更改了。
想更改也很简单。重启,开机按住cmd+r,进入恢复模式的终端。然后使用命令csrutil disable关闭rootless
不过这就多了一份被恶意软件攻击的潜在威胁,建议此时打开Mac App Store 和被认可的开发者或者纯粹的Mac App Store限制。
不同用户组下的文件
一个用户(user)对于一个文件有三种状态,可读®、可写(w)、可执行(x),一个文件会有一个所属用户,所属用户组。还会有文件属主权限、同组用户权限、其他用户权限这三种标识符用来定义一个文件对一个用户的权限集合。
为了达到多个用户的权限管理,每个用户会在一个或者多个用户组(group)中,一个用户组可以有多个用户
root用户是一个特殊用户(超级用户),拥有对所有文件的rwx权限(可读可写可执行)
UNIX系统是纯粹基于文件的,换言之你的网络读取,驱动程序,分区表什么的其实都会以文件的形式存在
mac硬盘分区相关
MS-DOS(FAT)格式,可以共同兼容Mac OS系统和Windows系统的读写,但单个文件不能大于4GB,适合在 Mac 和 PC 之间共享文件。
NTFS 格式,在 Mac 上只读——注意是只读。而且在 Mac 上也不能将硬盘格式化为 NTFS。但是在 MS-DOS(FAT) 式下无法存储的 >4GB 的文件可以在此存储,适合存放高清电影和大型软件。
exFAT文件系统也能共同兼容Mac OS系统和Windows系统,但是,exFAT作为FAT32的升级版,目前还不太稳定,如果文件系统不够稳定,就存在着分区表丢失,数据丢失等隐患,建议大家谨慎使用。
将一个硬盘分为3个分区,一个区专门做Time Machine的备份:格式是MAC OS(日志);一个区做成与Windows系统兼容的MS-DOS(FAT)格式,方便倒存共享数据(但是由于经常数据大于4g所以我不用这个,我还是用ntfs,然后用第三方应用来读写即可,如paragon ntfs for mac);最后一个区域是Mac专属的数据存放区域,存储我的图片和音乐、视频等Mac常用的重要数据:格式:MAC OS(日志)。
mac上所有python管理
1.几个目录
2.现存mac上的所有python及pip路径
python:
/usr/bin下mac自带python: /usr/bin/python
/usr/bin下mac自带python2.7: /usr/bin/python2.7
/usr/local/bin下python3: /usr/local/bin/python3
/usr/local/bin下python3.6: /usr/local/bin/python3.6
conda下python3: /anaconda3/bin/python3
conda下python3.6: /anaconda3/bin/python3.6
conda下虚拟环境python2.7: /anaconda3/envs/tensorflow11027/bin/
conda下虚拟环境python3.6: /anaconda3/envs/python3/bin/
pip:(pip安装的包路径在相应目录下的lib/site-packages中):
/usr/local/bin下pip3: /usr/local/bin/pip3
/usr/local/bin下pip3.6: /usr/local/bin/pip3.6
conda下pip: /anaconda3/envs/tensorflow11027/bin/pip
conda下pip2: /anaconda3/envs/tensorflow11027/bin/pip2
conda下pip2.7: /anaconda3/envs/tensorflow11027/bin/pip2.7
conda下虚拟环境pip2:/anaconda3/envs/tensorflow11027/bin/pip2
conda下虚拟环境pip3:/anaconda3/envs/tensorflow11027/bin/pip
3.以上这么多python版本和路径,用conda的虚拟环境进行2与3的切换
这个问题即如何更改默认的Anaconda python环境?通过修改/.bashrc或/.bash_profile即可,只要把默认的python、pip路径设置好,版本也就定了,安装包的路径也就在相应的lib下,并且conda的虚拟环境也可以任意更改删除,便于管理。
将默认的conda root环境
# added by Anaconda3 5.1.0 installer
#export PATH="/anaconda3/bin:$PATH"
更改为以conda创建的虚拟环境,这里创建的环境为基于python2.7的tensorflow11027
# set python3 as default
export PATH="/anaconda3/envs/tensorflow11027/bin:$PATH"
更改之后pip也在相应的tensorflow11027环境中,pip安装包的路径也在这里,很好管理
4.pip包安装与卸载
安装pycurl包
pip install pycurl
列出已经安装的python包
pip list
输出pycurl包的信息
pip show pycurl
卸载pycurl包
pip uninstall pycurl
更新过期的包:
pip list --outdated #列出所有过期的库
pip install --upgrade 库名 #更新想要更新的包
以上就是Macdown为您分享的关于mac开发配置技巧,希望对您有所帮助。