Mac OS 文件系统及其他
2019-05-23 本文已影响0人
cuzzy
文件系统
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等链接目录的目标目录。
环境变量
Mac配置环境变量的地方 /etc/profile (建议不修改这个文件) 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。 /etc/bashrc (一般在这个文件中添加系统级环境变量) 全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。 ~/.bash_profile (一般在这个文件中添加用户级环境变量,推荐修改这个文件) 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次! 修改完后别忘记source~/.bash_profile让配置生效
软件位置
很多人都使用Homebrew来安装一些开发软件,但是装完了并不知道装到哪里去了。 Homebrew 会将软件包安装到独立目录,并将其文件软链接至 /usr/local 。 如果是自己下载的压缩包,则建议自己建立一个单独的文件夹,将软件解压到那里, 方便管理。 如果真的找不到了该怎么办? /usr/local下 /Library下 which和whereis命令。which查询运行文件所在路径。whereis查看文件安装路径。 如果可以确定程序在运行状态,可以ps根据运行进程信息寻找或者lsof根据运行程序的端口信 息进行寻找
用户组
用户组wheel和staff Mac默认会有三个用户组admin,wheel和staff。 wheel是允许获得root权限的用户组;admin用户组会有一些特殊的权限,比如写 入/Applications;staff则是普通用户组。 通常在UNIX下,即使我们是系统的管理员,也不推荐用 root 用户登录来进行系统管理。一 般情况下用普通用户登录,在需要 root 权限执行一些操作时,再 su 登录成为 root 用户。 但是,任何人只要知道了 root 的密码,就都可以通过 su 命令来登录为 root 用户。 这无疑为系统带来了安全隐患。所以,将普通用户加入到 wheel 组,被加入的这个普通用户 就成了管理员组内的用户,但如果不对一些相关的配置文件进行配置,这个管理员组内的用 户与普通用户也没什么区别