首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

五分钟治愈你的Mac文件系统不适症

这几年,mac几乎成了程序员ggmm们的标配,但你有没有这些不适症状呢。

用习惯Windows的同学刚使用Mac会发现Finder中有很多东西都找不到,这是因为这些目录的被设置了隐藏属性,我们可以在终端窗口中利用Unix命令查看。

Mac OS 已经是被认证的Unix系统,所以其目录结构基本符合Unix系统目录结构。Mac要想玩的6,控制台Terminal、目录结构、命令、权限系统一定要熟。今天就主要给大家讲讲Mac OS的文件系统。

1

关于Mac OS的文件系统

如图所示Mac的文件系统大致可以分为两种:

符合Unix传统的目录

/bin包含基本的用户命令,可被所有用户使用。并且要能够在不挂载其他任何文件系统的情况下可用。/bin 也可以包含脚本。如ls,rm,mv等。

/sbin 存放系统管理员以及其他需要root权限来运行的工具。同类型的工具同时也可以保存在 /usr/sbin 、/usr/local/sbin 。但是 /sbin 中保存的工具是在系统 启动、复原、恢复和修复的过程中,作为 /bin 中所保存的工具的补充。如ping,ifconfig等。

/usr 第三方程序安装目录,存放了可分享的、只读的数据。

/usr/bin 第三方程序的命令存放目录,如java,ssh等。

/usr/sbin 和/usr/sbin的区别就是需要系统权限,如神奇的工具lsof等。

/usr/lib 存放了共享库(动态链接库)。

/usr/libexec 从名字可以看出它是/usr/lib的一个附属目录,一般会存放一些可执行文件,此目录的内容也可以放到/usr/lib下,如java_home可以查看当前系统中所有的jdk版本。

/usr/local 很多第三方程序的默认安装路径,给系统管理员用来存放本地文件的。

/etc 标准unix系统配置文件存放目录,如用户密码文件/etc/passwd。此目录实际为指向/private/etc的链接。

/dev 设备文件存放目录,如何代表硬盘的/dev/disk0。

/tmp 临时文件存放目录,其权限为所有人任意读写。此目录实际为指向/private/tmp的链接。

/var 存放经常变化的文件,如日志文件。此目录实际为指向/private/var的链接。

这些标准的Unix目录在Finder中并不可见。

不难发现bin和sbin的很重要的一个区别就在于权限,当然我们在使用过程中并不需要特别关心。/usr/local下也会有bin和sbin,就不一一说明了。

OS X特有的目录

/Applications 应用程序目录,默认所有的GUI应用程序都安装在这里;

/Library 系统的数据文件、帮助文件、文档等等,比如java,python,ruby默认就是安装在这里的;

/Network 网络节点存放目录;

/System 他只包含一个名为Library的目录,这个子目录中存放了系统的绝大部分组件,如各种framework,以及内核模块,字体文件等等。

/Users 存放用户的个人资料和配置。每个用户有自己的单独目录。

/Volumes 文件系统挂载点存放目录。

/cores 内核转储文件存放目录。当一个进程崩溃时,如果系统允许则会产生转储文件。

/private 里面的子目录存放了/tmp, /var, /etc等链接目录的目标目录。

2

环境变量配置在哪?

Mac配置环境变量的地方

/etc/profile (建议不修改这个文件)

全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

/etc/bashrc (一般在这个文件中添加系统级环境变量)

全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

~/.bash_profile (一般在这个文件中添加用户级环境变量,推荐修改这个文件)

每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!

修改完后别忘记source~/.bash_profile让配置生效

3

软件装在哪?

很多人都使用Homebrew来安装一些开发软件,但是装完了并不知道装到哪里去了。

Homebrew 会将软件包安装到独立目录,并将其文件软链接至 /usr/local 。

如果是自己下载的压缩包,则建议自己建立一个单独的文件夹,将软件解压到那里,方便管理。

如果真的找不到了该怎么办?

/usr/local下

/Library下

which和whereis命令。which查询运行文件所在路径。whereis查看文件安装路径。

如果可以确定程序在运行状态,可以ps根据运行进程信息寻找或者lsof根据运行程序的端口信息进行寻找

不行就再装个试试。。。。。

4

用户组wheel和staff

Mac默认会有三个用户组admin,wheel和staff。

wheel是允许获得root权限的用户组;admin用户组会有一些特殊的权限,比如写入/Applications;staff则是普通用户组。

通常在UNIX下,即使我们是系统的管理员,也不推荐用 root 用户登录来进行系统管理。一般情况下用普通用户登录,在需要 root 权限执行一些操作时,再 su 登录成为 root 用户。但是,任何人只要知道了 root 的密码,就都可以通过 su 命令来登录为 root 用户——这无疑为系统带来了安全隐患。所以,将普通用户加入到 wheel 组,被加入的这个普通用户就成了管理员组内的用户,但如果不对一些相关的配置文件进行配置,这个管理员组内的用户与普通用户也没什么区别——就像警察下班后,没有带枪、穿这便衣和普通人(用户)一样,虽然他的的确确是警察。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180101G0BDTE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券