一、认识UNIX和Linux

1、了解Unix和Linux的关系

下图Unix族谱

3、UNIX/Linux系统结构

UNIX/Linux 系统可以粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如图所示。底层是 UNIX/Linux 操作系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层。

1、内核层
内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境

2、Shell层
Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作

3、 应用层
应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。

二、Mac系统下的目录结构

Unix和Linux都是多用户、多任务的系统,所以这样的系统里面就拥有了用户、组的概念。那么同样文件的权限也就有相应的所属用户和所属组了。Mac是基于BSD,BSD又是Unix的一个分支,所以Mac OS也是多用户、多任务的系统。Mac OS系统下的目录结构:

早期的计算机没有图形界面,通过一个一个地命令来控制计算机。对于图形界面,用户点击某个图标就能启动某个程序;对于命令行,用户输入某个程序的名字(可以看做一个命令)就能启动某个程序。然而,真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁。由于安全、复杂、繁琐等原因,用户不能直接接触内核(也没有必要),需要另外再开发一个程序,让用户直接使用这个程序;该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核,这样用户就能间接地使用操作系统内核了。在用户和内核之间增加一层“代理”,既能简化用户的操作,又能保障内核的安全,用户界面和命令行就是这层“代理”。在Linux下,这个命令行程序叫做 Shell。

Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。

三、指令的含义

打开访达,command+shift+g,快速前往文件夹,输入地址/private/etc/shells,可以看到

/bin/bash
/bin/csh    被tcsh代替
/bin/dash    兼容bash
/bin/ksh
/bin/sh     被bash替代
/bin/tcsh
/bin/zsh    基于ksh开发

Mac终端默认shell为zsh(原来默认是bash,大概10.1之后默认zsh)
bash启动路径在/home文件下有个隐藏文件 .bashprofile,配置环境变量的文件为.bash_profile(带.的是隐藏文件),只要启动bash就会加载这个文件,任何目录下都能使用对应文件指令。

查看bash.profile文件里面的配置
cat ~/.bash_profile
目前楼主已经配置的环境变量可以查看这片文章:

ls路径

获取桌面路径
cd ~/desktop

ls获取桌面上都有哪些文件,即桌面下路径的内容
ls

出了bash,用的比较多的还有zsh,切换

chsh -s /bin/bash
chsh -s /bin/zsh
关闭终端打开就可以了

如果换成zsh之前的.bashprofile配置就没效果了
zsh配置文件在.zshrc

source FileName
意思:在当前shell环境中读取并执行FileName中的命令
特点:
命令可以强行让一个脚本去立即影响当前的环境(一般用于加载配置文件)。
命令会强制执行脚本中的全部命令,而忽略文件的权限。
比如,之前打开终端默认加载bash在.bash_profile中配置的环境变量,现在默认变成zsh,要想加载之前的配置好的环境变量一是可以复制.bash_profile的内容到.zshrc,也可以直接在.zshrc中添加
source /user/caomaoxiao/.bash_profile
这样告诉.zshrc直接加载.bash_profile的内容

获取家目录下

cd ~
以列表的形式查看路径下的信息
ls -l

d开头指文件夹directory
-开头指文件
[ 权限 ] [连接][所有者] [所属组] [文件大小][最后修改日期][文件名称]
以第一条为例,4表示有4个连接,表示用户,所属组staff,文件大小128,最后访问时间,文件名称。


u:user
g:group
o:other
a:all

举例,在桌面新建一个文件

cd desktop
touch example.text
ls -l


可以看到此时文件类型,每三个为一组,第一组user的描述rw-表示可读可写的文件,第二组group的描述r–可读,第三组Other的描述r–可读
去掉读的权限,即去掉r

chmod a-r example.text
a(all)可以省略,表示给user、group、Other都减去r(read)的权限,如果单给某一个组减去r的权限则用组的首字母,比如给group减去r权限
chmod g-r example.text


用数字操作

chmod 666
r(read)=4,w(write)=2,x(execute)=1,
第一个6表示user的操作即(r+w)
第二个6表示group的操作(r+w)
第三个6表示other的操作(r+w)

所以chmod 777 fileName就是对这个文件有可读可写可执行操作权限

Mac终端指令总结「Unix/Linux区别和联系、终端指令原理、Mac目录结构」相关推荐

  1. Linux系列(一):简介与目录结构

    1.Linux简介 1.1.起源 Linux出现于1991年,是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成 1.2.Linux特点 多用户,多任务,丰富的网络 ...

  2. arch linux引导不启动_Linux 内核源代码的目录结构

    内核技术点合集 Linux 内核源代码包括三个主要部分: 1. 内核核心代码,包括第 3 章所描述的各个子系统和子模块,以及其它的支撑子系统,例 如电源管理.Linux 初始化等 2. 其它非核心代码 ...

  3. linux把终端嵌入桌面,在Ubuntu Linux桌面上嵌入终端窗口

    除了Tilda 和 Yakuake 终端具有嵌入桌面的效果之外,使用 Devil's Pie 这个小程序你同样可以将终端窗口嵌入到你的 Linux 桌面. 下面就以 GNOME Terminal 为例 ...

  4. Unix/Linux 压缩包管理(压缩、解压缩文件和目录)

    压缩包管理 1> 普通版 1). gzip ------ .gz格式的压缩包 例子:使用gzip将txt文件打包  gzip *.txt 通过上图会发现,gzip将txt文件分别打包,没有打包到 ...

  5. 实例演绎Unix/Linux的一切皆文件思想

    大家习惯了使用socket来编写网络程序,socket是网络编程事实上的标准. 我们知道,在Unix/Linux系统中"一切皆文件",socket也被认为是一种文件,socket被 ...

  6. 简述Linux目录结构和系统结构

    提到 GNU/Linux 系统的目录结构,不得不说一下FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),正是这一标准的存在,详细的定义了类 Unix 操作系统 ...

  7. SQL Server on Linux的文件和目录结构

    问题引入 "鸟儿啊,我记得你写过一篇<SQLServer On Linux Package List on CentOS>的文章,从这篇文章,我们很清楚的知道了SQL Serve ...

  8. linux下mysql目录结构_linux下mysql安装配置与目录结构

    本节内容: linux下mysql安装与配置.mysql目录结构. 1.准备安装程序(官方网站下载) 服务端:MySQL-server-community-5.1.44-1.rhel4.i386.rp ...

  9. Linux查看目录结构

    1.Linux安装 #yum -y install tree 2.查看目录结构 # tree -L 3 3.查看目录结构更清晰 #tree  -L  4   -f

最新文章

  1. 将三维点云投影到XOZ面上
  2. 20个案例详解 Pandas 当中的数据统计分析与排序
  3. scrapy---反爬虫
  4. python中的静态方法如何调用_关于Python中如何使用静态、类、抽象方法的权威指南(译)...
  5. linux部署DM数据库的DEM系统
  6. 给定一个n节点二叉树,写出一个O(n)时间的非递归的过程,将该树每个结点的关键字输出(算法导论第三版第十章10.4-5)
  7. 硬盘的分区误删除的恢复
  8. 我的Java开发学习之旅------心得总结:Java性能优化技巧集锦
  9. 新华三PRIMERA,开启存储新纪元
  10. 比例尺分辨率转换(openlayers)
  11. 悟空云课堂|第四十七期:会话固定(CWE-384: Session Fixation)
  12. PaperWeekly第44期 | Kaggle求生
  13. AI人工智能入门(浅析AlphaGo的实现)
  14. 第七届青年地学论坛女科学家论坛学习
  15. 风云崛起之一阶电路RC串联解法
  16. java false 0_Java中false指的是1还是0
  17. 生字辟用计算机的歌,生僻字(陈柯宇演唱歌曲)_百度百科
  18. rc1改为rc2出现的问题1
  19. Discuz!新插件推荐之:国外发帖审核
  20. 技术整理-开发过程中遇到问题-留存

热门文章

  1. table单元格合并
  2. 推荐matlab论坛
  3. HTML5数据加载中请稍后效果,IE8浏览器中一直处于“正在努力地加载数据中,请稍候……”...
  4. Flink基础系列6-flink run参数
  5. 【数智化案例展】北京城市规划设计研究院——发力城市商圈数字化监测与评估...
  6. 你的陪伴,我的成长--致导师制
  7. varnish详解与功能搭建
  8. 建库语句 oracle,Oracle数据导入导出和建库语句
  9. 强烈推荐:给计算机系学生的建议
  10. 汤家凤强化五套卷(二)复盘