mac os是unix

2017-10-08 00:00:00 BtB5e6Nsu1g511Eg5XEg 阅读数 4471


      苹果公司在各类开源项目中长期贡献着自己的力量,但其UNIX系统技术一直都属于闭源阵营(这一点可以从NUX OS阵营和家谱图中得到答案)。然而,以封闭闻名的苹果公司,2017年国庆期间在GitHub上公布了旗舰操作系统的XNU内核源代码,XNU(XNU is Not Unix的缩写)属于 MacOS(包括以往全部版本)以及 iOS 所使用的类Unix内核(对应各类苹果Darwin操作系统)。通过公开内核代码,苹果公司将帮助开发人员更轻松地理解其设备与更高软件层同内核之间的协作原理。


      XNU源代码基于苹果公共源许可(Apple Public Source License 2.0),这其实是一项相当严格的许可 ; 开发人员可将此次发布的内核代码引入自有项目(GitHub源码和详细信息可通过原文链接获取)。

      UNIX操作系统是一个强大的多用户、多任务操作系统,支持多种处理器架构,起源于贝尔实验室、通用电气和麻省理工学院合作的计划MULTICS操作系统计划,由Ken Thompson、Dennis RitchieDouglas McIlroy于1969年在AT&T的贝尔实验室开发。当时被称为" Niplexed Information and Computing Service" 缩写为"UNICS",后来就将其称其为"UNIX"了。

      目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX,其中苹果XNU就是类UNIX系统。

      Unix在开发的过程中没有对应任何的奖励制度和管理体制,Unix发展的动力主要源自科研和兴趣。直到现在,Unix的发展历史和家谱体系可以总结为下图(图片来源网络,点击看大图)。



      然而在20世纪70年代,AT&T公司开始注意到Unix所带来的商业价值并开始寻找一些手段来保护Unix,包括通过许可证方式教学使用Unix的源码。在20世纪80年代,Unix发展为有两个最主要的版本线,Berkeley的BSD UNIX和AT&T的Unix。后来Unix的发展越来越快,这主要归根于不断地出现各种各样的变种(类Unix)。




      Sun Microsystems公司基于BSD UNIX开发的SunOS(即后来大家熟悉的Solaris)的工作站。AT&T发布的Unix System V的第一版最终也造就了IBM的AIX和HP的HP-UX。下面讨论下几个主流类UNIX系统。

 Mac OS

      Mac OS是基于Unix内核的图形化操作系统,2011年7月20日Mac OS X(X为10的罗马数字写法)已经正式被苹果改名为OS X。也是一套运行于苹果Macintosh系列电脑上的操作系统,后来也推出在PC上运行的Mac系统(简称 Mac PC)。

AIX

      AIX是IBM开发的一套UNIX操作系统。它符合Open group的UNIX 98行业标准,通过全面集成对32位和64位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的IBM P系列和IBM RS/6000工作站、服务器和大型并行超级计算机上运行。另外,AIX级别的逻辑卷管理正逐渐被添加进各种自由的UNIX风格操作系统中。

Solaris
      Solaris是SUN公司研制的类Unix操作系统。直至2013年,Solaris的最新版为 Solaris 11早期的Solaris是由BSD Unix发展而来。但至今Solaris仍旧属于私有软件。2005年6月14日,Sun公司将正在开发中的Solaris 11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。


      Sun的操作系统最初叫做SunOS。SunOS 5.0开始,SUN的操作系统开发开始转向System V4,并且有了新的名字叫做Solaris 2.0。Solaris 2.6以后,SUN删除了版本号中的"2",因此,SunOS 5.10就叫做Solaris 10。Solaris的早期版本后来又被重新命名为Solaris 1.x. 所以"SunOS"这个词被用做专指Solaris操作系统的内核,因此Solaris被认为是由SunOS,图形化的桌面计算环境,以及它网络增强部分组成。


      Solaris运行在Intel x86及SPARC、Ultra SPARC两个平台。后者是升阳工作站使用的处理器。因此,Solaris在SPARC上拥有强大的处理能力,同时Intel x86上的性能也正在得到改善。对这两个平台,Solaris屏蔽了底层平台差异,为用户提供了尽可能一样的使用体验。


HP UX
      HP UX取自Hewlett Packard UniX,是惠普公司以System V为基础所研发成的类UNIX操作系统。HP-UX可以在HP的PA-RISC处理器、Intel的Itanium处理器上运行,另外过去也能用于后期的阿波罗电脑(Apollo/Domain)系统上。较早版本的HP-UX也能用于HP 9000系列200型、300型、400型的电脑系统(使用Motorola的68000处理器)上,和HP-9000系列500型电脑(使用HP专属的FOCUS处理器架构)。

IRIX
      IRIX是由硅谷图形公司(简称SGI,SGI被HPE收购)以System V与BSD延伸程序为基础所发展成的UNIX操作系统,IRIX可以在SGI公司的RISC型电脑上运行,即运行基于32位、64位MIPS架构的SGI工作站、服务器之上

Xenix
      Xenix是一种UNIX操作系统,可在个人电脑及微型计算机上使用。该系统由微软公司在1979年从美国电话电报公司获得授权,为Intel处理器所开发。后来,SCO公司收购了其独家使用权,自那以后,该公司开始以SCO UNIX (亦被称作SCO OpenServer)为名发售。它继承了UNIX的特性,Xenix具备了多人多任务的工作环境,符合UNIX System V的接口规格(SVID)


A/UX
      A/UX取自Apple Unix,是苹果电脑公司所开发的UNIX操作系统,此操作系统可以在该公司的Macintosh电脑上运行,A/UX于1988年首次发表,最终的3.1.1版本于1995年发表。A/UX至少需要一颗具有浮点运算单元及标签页式的存储器管理单元PMMU (Paged Memory Management Unit)的处理器才能运行。


      A/UX是以System V 2.2版为基础所发展,同时使用System V3、System V4、BSD 4.2、BSD 4.3等的传统特色,它也遵循POSIX规范及SVID规范。


      从Unix操作系统的发展历史来看,又可以分为古典Unix,近代Unix现代Unix,其中Linux起源于Minix,在严格意义上来讲不属于Unix范畴。智能终端系统除了苹果iOS外,Android、MeeGo和WebOS都属于Linux系统分支



      Linux有许多不同的版本,而且Linux的内核的发行和使用是完全免费的。所以很多的公司、组织,甚至是个人开发了他们自己Linux操作系统版本。随着Linux成熟发展和开放,Linux也经常内嵌在许多硬件设备之中,例如路由器、交换机、电话系统、智能手机、GPS系统等。比较受欢迎的Linux发行版Fedora、Ubuntu、Red Hat、Debian、SUSE等等。



温馨提示:
请搜索“ICT_Architect”“扫一扫”下面二维码关注公众号,获取更多精彩内容。

阅读量又能说明什么

只专注做一个有情怀的技术分享平台

2019-08-11 17:36:25 Trasper1 阅读数 261

Mac OS、GNU linux OS、Unix OS,似乎有着相似的指令行和shell功能,但却是完全不同的操作系统。

只不过,linux和Mac OS,都有类Unix的性质。

  • Unix OS

Unix出现的最早,所以似乎扮演了大家的爸爸的角色。Unix是由Bell lab开发的服务器级(不支持PC)、贼贵的操作系统。

Unix使用X Window(一个跑在Unix内核外的应用)构建图形环境,X window包括X client和X Server两部分。

  • linux OS(with linux 内核)

linux是类Unix,出现的动机是创造免费的、适合desktop的开源操作系统。

  • Mac OS(with Darwin 内核)

Mac OS是苹果公司用于苹果desktop/laptop的操作系统,前身是Berkley的Mach系统 + BSD系统。

Mac OS的内核Darwin是类Unix,所以才带来了shell的相似性。

----------------------------------------------------------------- PYTHON on MAC----------------------------------------------------------------------------------

MAC OS默认自带python 2.7(存放在/usr/bin/python,这个python,千万莫删除)

  • 但是在使用时,有些情况下需要我们安装使用别的版本的python,我们就可以通过:

1. 直接在python.org下载安装包;

2. anaconda发行版

等方式来获得指定的python版本。

  • 不同方式安装获得的python,存储于不同的地方:

1. anaconda:/Users/XXX/anaconda/bin/python

2. python.org安装器安装:/Libarary/Frameworks/Python.framework; /usr/local/bin/python.

  • 要查看系统已有的python版本,可以用which -a python/ which -a python3:

  • 当系统中存在多个python版本时,在shell中呼叫python时默认启用的那个python版本是$PATH中最靠前的一个:

如上,我的系统里只有一个python3.7和一个anaconda安装的python2,所以没有冲突。但是若比如又有python3.7以及3.5时,谁出现在PATH的前面,谁就被shell默认呼叫。

  • modify $PATH variable

通过.bashrc or .bash_profile文件来调整$PATH.前者是interactive non-login的,需要source ~/.bashrc来手动激活该文件中的修改(source是一个shell指令,表示执行.bashrc文件中的所有command)。.bash_profile是login的,每次登陆系统自动执行一遍其中的所有shell指令。

我的.bash_profile如下(用open ~/.bash_profile在一个editor中打开该文件或者vim ~/.bash_profile直接在vim中进行修改):

可见已经手动注释掉了一些不用的python版本,它们在启动shell的时候就不会被写入$PATH了。

红色标出的是留下的anacond安装的python和python.org下载的安装器安装的python3.7.

在.bash_profile文件中更靠下的export PATH,会出现在$PATH的前面,有更高的优先级。

  • 删除某些不想要的python版本时:

2016-07-05 13:53:15 example440982 阅读数 4214

Mac OS 采用Unix的文件系统

根目录位置是 /
驱动所在位置 /System/Library/Extensions
用户文件夹位置 /Users/用户名
桌面的位置 /Users/用户名/Desktop
文件通配符为星号 *
注意:在 Unix系统中是区别大小写字符的,A.txt 不等于 a.txt。

如何进入命令行操作模式

在图形界面下,用finder 打开 应用程序 >实用程序>终端

或者打开Spotlight 输入terminal或【终端】 


列出目录下文件及文件夹

ls /System/Library/Extensions

参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件

.kext在图形界面下看起来是个文件,实际上是个文件夹。

\

 


切换目录

例:在根目录下,想切换到用户目录下

cd /Users/beyond/

\

 


建立新目录
mkdir 目录名
例:在用户目录下新建一个备份目录 backup

mkdir /Users/beyond/backup

\

 


拷贝文件
cp -R 参数 源文件 目标文件

例:想把用户目录下的1.txt拷贝到上面新建的backup目录中

\


对于文件夹拷贝时,加上参数R或r,表示对目录进行递归操作,
把驱动目录下的所有文件备份到用户目录下的backup文件夹

cp -R /System/Library/Extensions/* /Users/beyond/backup


删除文件
rm 参数 文件
例:想删除用户目录下的backup文件夹
rm -rf /Users/beyond/backup

参数-rf 表示递归和强制,千万要小心使用,

如果执行了,下面这条命令,你的系统就全没了

rm -rf /

它表示强制删除 根目录以下的所有内容

\



移动文件
mv 文件

例:想把用户目录下的1.txt移动到文档目录

mv /Users/beyond/1.txt /User/beyond/Documents

\

 



 

权限

 

读取read 写入write 执行权限excute

例如:777权限 rwx rwx rwx

三个数字,分成3部分,

第1个数字,表示所有者的权限,

第2个数字,表示同组用户权限,即用户所在的组的其他成员

第3个数字,表示其他组的用户的权限

r代表读取权限,值等于4,

w代表写入权限,值等于2,

x代表执行权限,值等于1。

因此,7表示可读,可写,可执行

0表示不可读,不可写,不可执行

 

比如上面的777,

第一位7等于4+2+1,所以就是rwx,所有者有读取、写入、执行的权限,

第二位7也是4+2+1,rwx,同组用户具有读取、写入、执行权限,

第三位7,代表其他用户有读取、写入、执行的权限。

再比如744,

第一位7等于4+2+1,rwx,所有者具有读取、写入、执行权限,

第二位4等于4+0+0,r – –,同组用户只有读取权限,

第三位4,也是r– –,其他组的用户也只有读取权限。



更改文件权限
chmod 参数 权限 文件

例:把上面的用户目录下的644权限(rw-r--r--)的1.txt ,

更改权限为664(rw-rw-r--): 同组用户可以读也可以写,而其他组用户都只读

chmod -R 664 /Users/beyond/1.txt

参数R 表示递归,664表示更改后的权限

\

最前面的-表示是文件,d表示是目录

 



 

更改文件的所有者
chown 参数 新的用户:用户组 文件
参数R 表示递归操作
修复整个系统中文件的权限
diskutil repairpermissions /

严格的说这不是一个unix 命令,而是osx一个软件,记得修改或添加的驱动就执行一次。

 



 

文本编辑
nano 文件名
例:编辑用户目录下的1.txt

nano /Users/beyond/1.txt

\

 

^ 代表 Ctrl 键
  

^X 退出 nano

 

^O 保存文件

 

^C 显示光标位置,在第几行,第几列,第几个字符处

 

^R 插入磁盘上其他的文件的内容至光标位置

 

^W 查找字符串

 

^Y 跳至前一屏

 

^V 跳至后一屏

 

^K 剪切光标所在行的文本, 并保存到剪贴板,或剪切选中内容

 

^U 将剪贴板内容粘贴至当前行

 

 


^P 跳至前一行

 

^N 跳至后一行

 

^A 跳至当前行首

 

^E 跳至当前行尾

 

 


^F 向前跳一字符

 

^B 向后跳一字符

 

 


^M 插入新行于游标位置

 

^D 删除光标之下的一个字符

 

^H 删除光标左侧的一个字符

 

 

 

 

编辑完成后 用 Ctrl +O 存盘,Ctrl+X 退出

 


 

另一个文本编辑软件是 vi编辑器,所有类Unix系统中都有它

\

1、vi的基本概念
   基本上vi分为三种状态,分别是命令模式、插入模式、末行模式(last line mode)

2、 插入模式
   只有在【插入模式】中,才可以进行文字输入,可以按「ESC」键可回到命令模式。
3、 末行模式(last line mode)
   在命令模式下,输入:冒号,可以进入末行模式,

此时,可以通过命令,将文件保存或退出vi,

也可以设置编辑环境,如寻找字符串、列出行号……等。

4、vi的基本操作
5、 进入vi
   在终端输入vi或vi 文件名,就进入vi全屏幕编辑画面

进入vi之后,首先处于「命令行模式」,按下i键,可进入到「插入模式」

6、 切换至插入模式
  在「命令行模式」下按一下字母「i」就可以进入「插入模式」,这时才可开始输入文字。

编辑好内容后,想要保存的话,要先按一下「ESC」键,回到「命令行模式」先
7、 退出vi及保存文件
   当处于【插入模式】时,要先按「ESC」键,回到「命令行模式」

然后,在「命令行模式」下,按一下「:」冒号键进入「Last line mode」

此时,才可以执行相应的保存,退出等命令


: w 2.txt 将刚才编写的文本,以2.txt名称 写入磁盘,即保存到当前目录下

: wq (写到磁盘并退出vi)
: q! (强制退出vi,并且不存盘)

8、命令行模式 下的命令,即功能键


   按「i」切换进入插入模式,是从光标的前一个位置,开始输入文字;

  按「a」进入插入模式,是从目前光标的下一个位置,开始输入文字;

按「o」进入插入模式后,是插入新的一行,并从新的一行的行首开始输入文字。

9、 从插入模式回到(切换)为命令行模式
  按「ESC」键


10、 在命令模式下,移动光标
  vi可以直接用键盘上的光标来上下左右移动,

vi也可以用小写英文字母「h」、「j」、「k」、「l」

分别控制光标左、下、上、右移一格。


  按「ctrl」+「b」:屏幕往“后”移动一页,即翻到上页pageUp。


  按「ctrl」+「f」:屏幕往“前”移动一页,即翻到上页pageDown。


  按「ctrl」+「u」:屏幕往“上”移动半页。


  按「ctrl」+「d」:屏幕往“下”移动半页。


  按数字「0」:光标移到所在行的开头。


  按「g」:移动到文章的最前面。

按「G」:移动到文章的最后面。


  按「$」:移动到光标所在行的“行尾”。


  按「^」:移动到光标所在行的“行首”



  按「w」:光标跳到下个单词的开头


  按「e」:光标跳到下个单词的结尾


  按「b」:光标回到前个单词的开头

11、 删除文字


  「x」:每按一次,删除光标所在位置的“后面”一个字符。


  「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。



  「dd」:删除光标所在行。


  「#dd」:从光标所在行开始删除#行,#代表任何数字


12、 复制和粘贴


  「yw」:将光标所在之处到字尾的字符复制到缓冲区中。


  「#yw」:复制#个字到缓冲区


  「yy」:复制光标所在行到缓冲区。


  「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。


  「p」:将缓冲区内的字符粘贴到光标所在位置。注意:所有与“y”有关的复制命令都
必须与“p”配合才能完成复制与粘贴功能。






13、 撤销上一次操作


  「u」:如果误执行一个命令,可以马上按下「u」,撤销上一个操作。按多次“u”
可以执行多次回复。



14、 跳至指定的行


  「ctrl」+「g」列出光标所在行的行号。


  「#G」:例如,「4G」,表示移动光标至文章的第4行行首。


15、Last line mode下命令简介
  在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command m
ode」下后,再按「:」冒号即可进入「last line mode」。


15.1 、 列出行号
 「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

\


15.2、 跳到文件中的某一行
  :「#」

「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,
如输入数字15,再回车,就会跳到文章的第15行。


15.3 、 查找字符
 :「/关键字」

先输入冒号,再按「/」键,再输入您想寻找的字符,

如果第一次找的关键字不是想要的,可以一直按「n」,

就会往后寻找到想要的关键字为止。


  :「?关键字」

先输入冒号,再按「?」键,再输入您想寻找的字符,

如果第一次找的关键字不是想要的,可以一直按「n」

就会往前寻找到您要的关键字为止。


15.4 、 保存文件
  :「w」文件名

在冒号后输入字母「w」和文件名,就可以将文件保存起来。

 

:「q!」

在冒号后输入字母「q!」表示,退出vi编辑器,且不保存




15.5、 离开vi
  :「q」

冒号后,按「q」就是退出,

如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。
  :「qw」

一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件(写到磁盘)。


16、vi命令列表,在命令模式下的一些键的功能:

h
左移光标一个字符

l
右移光标一个字符


k
光标上移一行


j
光标下移一行


^
光标移动至行首


数字“0”,光标移至文章的开头



G
光标移至文章的最后


$
光标移动至行尾


Ctrl+f
向前翻屏


Ctrl+b
向后翻屏


Ctrl+d
向前翻半屏


Ctrl+u
向后翻半屏


i
在光标位置前插入字符


a
在光标所在位置的后一个字符开始增加


o
插入新的一行,从行首开始输入


ESC
从输入状态退至命令状态


x
删除光标后面的字符


#x
删除光标后的#个字符


X
(大写X),删除光标前面的字符


#X
删除光标前面的#个字符


dd
删除光标所在的行


#dd
删除从光标所在行数的#行


yw
复制光标所在位置的一个字


#yw
复制光标所在位置的#个字


yy
复制光标所在位置的一行


#yy
复制从光标所在行数的#行


p
粘贴


u
取消操作





17、下表列出 末行模式下的一些指令,每个指令前要先输入冒号
:w filename
储存正在编辑的文件为filename


:wq filename
储存正在编辑的文件为filename,并退出vi


:q!
放弃所有修改,退出vi


:set nu
显示行号



:/或?
查找,在/后输入要查找的内容

n
与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(
与?联用)继续查找,直到找到为止。
 

 


 

在终端中,执行脚本命令

sh 脚本文件名

例如:

下载好的cocos2d压缩包进行解压后,

 

进入cocos2d主目录,复制路径到终端

 

执行./install.sh开始安装(实质是拷贝至XCode目录)



启用 Tab 键自动补齐命令
比如想到 /System 目录中去,输入 cd /Sy 然后按一下Tab 键,命令就会自动补齐成 cd /System

操作带名字中带有空格的文件和目录

\

\

 



 

查看命令的详细帮助
man 命令名
比如要看看 ls 命令的详细用法,执行 man ls



ps
显示进程当前状态 

ps u
kill
终止进程
kill -9 30142
nice
改变待执行命令的优先级
nice cc -c *.c
renice
改变已运行进程的优先级

renice +20 32768

 



 

时间操作

date 显示系统的当前日期和时间


cal 显示日历

cal 9 2014

\

time
统计程序的执行时间

time a.out

 



 

网络与通信操作

telnet 远程登录

telnet IP 端口 或者 telnet 域名 端口

\

ping 给一个网络主机发送 回应请求

ping www.baidu.com

\



history 列出最近执行过的 几条命令及编号

\


alias 给某个命令定义别名
alias cls=clear 注意不要有空格
unalias 取消对某个别名的定义

unalias cls

 



 



uname 显示操作系统的有关信息

uname -a

clear 清除屏幕或窗口内容


env 显示当前所有设置过的环境变量

who 列出当前登录的所有用户

whoami 显示当前正进行操作的用户名

\


du 查询磁盘使用情况

du -k 子目录

du -k以1024字节显示块数

\

df 重要~~显示文件系统的总空间和可用空间

\

df 子文件路径

df /tmp

w 显示当前系统活动的总信息

\

 

 


以下是unix的命令行,供参考

mkdir 创建一个目录
mkdir dirname
rmdir 删除一个目录
rmdir dirname
mvdir 移动或重命名一个目录
mvdir dir1 dir2
cd 改变当前目录
cd dirname
pwd 显示当前目录的路径名
pwd
ls 显示当前目录的内容
ls -la
dircmp 比较两个目录的内容
dircmp dir1 dir2
cp 复制文件或目录
cp file1 file2
rm 删除文件或目录
rm filename
mv 改变文件名或所在目录
mv file1 file2

diff 比较并显示两个文件的差异
diff file1 file2

grep 在文件中按模式查找
grep "^[a-zA-Z]" filename

wc 统计文件的字符数、词数和行数
wc filename
nl 给文件加上行号
nl file1 >file2 加上行号后,写到文件2内

head 显示文件的最初几行
head -20 filename
tail 显示文件的最后几行
tail -15 filename


 


cat 显示或连接文件
cat filename

more 分屏显示文件内容
more filename
pg 分页格式化显示文件内容
pg filename

od 显示非文本文件的内容
od -c filename

ln 联接文件
ln -s file1 file2
find 使用匹配表达式查找文件
find . -name "*.c" -print
file 显示文件类型
file filename


cut 显示文件每行中的某些域
cut -f1,7 -d: /etc/passwd
colrm 从标准输入中删除若干列
colrm 8 20 file2
paste 横向连接文件
paste file1 file2

sed 非交互方式流编辑器
sed "s/red/green/g" filename

awk
在文件中查找并处理模式
awk '{print $1 $1}' filename
sort 排序或归并文件
sort -d -f -u file1
uniq 去掉文件中的重复行
uniq file1 file2
comm 显示两有序文件的公共和非公共行
comm file1 file2


passwd 修改用户密码
passwd
chmod 改变文件或目录的权限
chmod ug+x filename
umask 定义创建文件的权限掩码
umask 027
chown 改变文件或目录的属主
chown newowner filename
chgrp 改变文件或目录的所属组
chgrp staff filename
xlock 给终端上锁
xlock -remote


make 维护可执行程序的最新版本
make
touch 更新文件的访问和修改时间
touch -m 05202400 filename
dbx 命令行界面调试工具
dbx a.out
xde 图形用户界面调试工具
xde a.out
 

 

tty 显示终端或伪终端的名称

stty 显示或重置控制键定义
stty -a

更改文件的所有者
chown 参数 新的用户:用户组 文件
参数R 表示递归操作
修复整个系统中文件的权限
diskutil repairpermissions /

严格的说这不是一个unix 命令,而是osx一个软件,记得修改或添加的驱动就执行一次。



获得权限
为了防止误操作破坏系统,在用户状态下时没有权限操作系统重要文件的,所以先要取得root权限
sudo -s
然后输入密码,输入密码时没有任何回显,连星号都没有,只管输完回车就行了。 获得权限
为了防止误操作破坏系统,在用户状态下时没有权限操作系统重要文件的,所以先要取得root权限
sudo -s
然后输入密码,输入密码时没有任何回显,连星号都没有,只管输完回车就行了。

 



 

mail 阅读和发送电子邮件
write 给另一用户发送报文
write username pts/1
mesg 允许或拒绝接收报文
mesg n
rlogin 远程登录

rlogin hostname -l username

rsh 在远程主机执行指定命令

rsh f01n03 date

ftp 在本地主机与远程主机之间传输文件

ftp ftp.sp.net.edu.cn

rcp 在本地主机与远程主机 之间复制文件

rcp file1 host1:file2

出处:http://www.2cto.com/os/201409/331710.html

2018-07-29 16:32:00 c1sdn19 阅读数 220

【转】mac os、linux及unix之间的关系

mac os、linux及unix之间的关系

 

unix 是由贝尔实验室开发的多用户、多任务操作系统

linux是一类Unix操作系统的统称,严格来说,linux系统只有内核叫“linux”,而linux也只是表示其内核,但因为习惯使然,人们

习惯了用linux称呼这类系统。一般也可以认为,linux是一套自由使用和自由传播的类unix系统。

mac os是苹果机专用系统,是基于unix内核的图形化操作系统

因此unix相当于父亲,linux和mac os是对兄弟

 

IOS 也是基于unix的

安卓系统则直接是linux,因此我们常看到IOS与安卓有相同的库文件格式:静态库 .a 动态链接库.so

在unity中我们发现ios的插件都使用.so,而安卓的插件都使用.a

posted on 2018-07-29 16:32 时空观察者9号 阅读(...) 评论(...) 编辑 收藏

2016-12-09 17:46:12 zhanghow 阅读数 10142

我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户。在服务器领域,恐怕Linux是无人不知无人不晓。他们都是操作系统,也在自己的领域里独领风骚。这都还得益于另外一个古董级别的操作系统--Unix,虽然说古董级别,只是他年纪大了,性能和功能,Unix依然有着顽强的生命力。

我们来沏杯茶,回顾Unix的传奇,讨论讨论Windows与Mac OS的恩恩怨怨,还有Linux的迅速崛起。

Unix 传奇

时光追溯到上世纪六十年代,多数计算机都采用批处理命令。为了研发一个多用途,多用户的操作系统。有三个著名的公司联合起来进行研发。三个知名的公司是美国电话及电报公司(American Telephone and Telegraph Inc.;AT&T)、通用电器公司(General Electrics;G.E.)及麻省理工学院(Massachusetts Institute of Technology;MIT)。整个项目研发出来的操作系统被称之为MULTICS。可是后来,MULTICS项目开始迷失,目标过于庞大,功能过于复杂,研发的人们越来越不明白这个项目将会如何走下去。最终隶属 AT&T 公司的贝尔实验室(Bell Labs)退出了这个项目。

值得一提的是 Bell Labs 。这个实验室在整个人类科技史上都占据重要地位,电话就是在这个实验室诞生。里面有着才华卓越的工程师和黑客。由于贝尔实验室退出了MULTICS,那些习惯了使用MULTICS的贝尔实验室工程师突然之间无法使用MULTICS,这无疑类似把剑客的剑给没收了。当时贝尔实验室有个叫Ken Thompson的人,他负责为为MULTICS这个操作系统写游戏了个叫“Space Travel”的游戏。为了让这个游戏能继续下去,他不得不重新编写一个操作系统。当他去申请计算机的时候,显然领导不会因为一个游戏批准你一台计算机。早起的计算机并不像我们现在的pc机那么小巧。当时计算机可是巨无霸,每一台的造价也极其昂贵,只有企业和科研机构才能买得起。

数字设备公司(Digital Equipment Corporation;DEC)生产两种小型计算机 pdp系列和vax。 Ken无法得到pdp-11,却在一个角落了发现了pdp-7,虽然这个机器已经落后, Ken还是觉得如获至宝,随后他很顺利的用汇编完成了操作系统,并写完了游戏。有趣的是,Ken的一个同事Brian Kernighan非常不喜欢这个系统,嘲笑Ken Thompson说:“你写的系统好真烂,干脆叫Unics算了。”(unics在英文里表示单一,与mult相反)。Ken对Brian的评价到没有多大排斥,本身他的目标是游戏,而不是操作系统,也接受了同事的命名。然后他更乐于推广他的游戏,让同事们茶余饭后娱乐娱乐。那时是1969年8月,恰巧这一年,芬兰诞生了一个婴儿,Linus Torvalds啼哭的来到这个世界。

事情总是环环相扣,可是谁也不知道这环将会扣向哪一环。Ken的另一个同事Dennis Ritchie对Ken的游戏没有多大兴趣,倒是对Unics情有独钟。当时Ken用汇编完成的Unics,如果换到pdp-11上,Unics想要运行必须重新冲重新编写代码移植。Ken无法为当时不同的机型提供上百个Unics版本。这时,Dennis Ritchie 在BCPL基础上,开发了一种新的高级语言将Unics重新写了一遍,并命名为 UNIX。这个语言是将BCPL语言进行了升级,也就是后来大名鼎鼎的C语言。尽管是游戏和嘲讽,Unix和C诞生了,并且完美地结合成为一个统一体,C与Unix很快成为世界的主导。新的历史,开始了。

当时的美国公司,工程师研发完毕,往往会有休假,一休就是一年。旅游,探险都是好方式,可是 Ken选择了到伯克利(Berkeley)进行教学。也难怪欧美的教育科技那么发达,总有黑客将知识和技术进行传承。由于当时AT&T被美国反垄断制裁,Bell实验室不能销售Unix。只能无偿提供大家学习研究。正是因为这样开放环境,使得Unxi的功能和特性被不断的丰富。在Berkeley,有一个专门研究UNIX小组,他们为UNIX提供了很多新特性,例如著名的 TCP/IP协议。并完成了BSD版本。很快,就有公司看到了BSD的商机,分分购买BSD进行商用。

这个时候,AT&T公司对其他机构拿着Unix赚钱自己却一无所获很不爽。那是一个AT&T妄图私有化的Unix的时代。为了私有化Unix,1986年IEEE指定了一个委员会制定了一个一个开放作业系统的标准,称为 POSIX (Portable Operating Systems Interface)。并和BSD进行法律官司,AT&T再次被反垄断,这场官司一直打到 AT&T再将自己的Unix系统实验室卖掉。当然,AT&T的Unix取得了这个标准制订战争的胜利,并取得了Unix注册商标。此时BSD的拥护者自喻为冷酷无情的公司帝国的反抗军。独立的Bell实验室就可以单独销售Unix,当时价格昂贵。也就在这个时候,人们被昂贵的Unix吓怕了,使用的人数骤减。与此同时,Berkeley BSD小组的Bill Joy开始创办了一家公司,也就是后来全球知名的SUN公司。就销售量来说,AT&T/UNIX始终赶不上BSD/Sun。并且Sun生产的小型工作站,风靡整个市场,很快就将 DEC 击败,并且让DEC退出了历史舞台。

BSD 仍然还在官司缠身,可是其他公司都看到了UNIX的商机,分分投靠 AT&T 并开发自己的Unxi,其中有著名的IBM的AIX,HP的HP-UX,SUN公司的Solaris,还有西雅图一个不知名的小公司,也生产着一个叫XENIX的Unix。时光继续走着,这个小公司的三个创始人打着扑克,心里还在构思。自己的公司如何挑战并取代那些巨无霸公司,成为是Microsoft未来的梦想。

Windows与Mac OS的恩恩怨怨

毫无疑问,Unix的诞生,对与计算机的发展起到了至关重要的作用。人们可以通过操作系统去使用计算机。然而在当时,尽管DEC生产的小型机PDP系列和VAX系列比起早起的巨无霸已经算是比较苗条了,可是对于个人而言,计算机还是相当大的东西,并且造价昂贵,无法进行民用。

为了将大型计算机缩小体积,很多公司都在尝试。1975年,IBM推出了早起的PC兼容机。我们知道,操作系统与CPU是有直接关系,不同的cpu运行的操作系统是不一样的。当时Unix价格昂贵,IBM一台PC兼容机造价2w美元,操作系统都要花4w。这样还是无法民用,因此IBM选择了一家小公司Inter生产的X86系列的cpu。Inter是小公司?没错,当时确实是这样,小到不起眼。而主流生产cpu的却是摩托罗拉,摩托罗拉生产的M6800比Inter的技术和设计上都要先进很多,更重要的是这个可以运行Unix。IBM放弃了兼容机上的Unix,因而不得不自己写出了一个兼容X86的操作系统---PL/M。当然这个东东造价也不菲。

微软联合创始人Allen同学Tim Paterson原本是打算写个东西用来测试的16位Intel 8086 CPU界面,于是花四个星期写了一个操作系统。当Bill Gates得知之后,马上花5W美元买下了这个系统,Tim Paterson欣喜若狂,四个星期就赚了一大笔,简直像做梦,赶紧和Bill签订合同,Bill得到之后并命名为DOS。随后,Bill通过其IBM董事会成员的妈妈,得以和IBM高层谈判。IBM兼容机的操作系统价格昂贵,不适合卖个普通用户,IBM定义的主要对手是如火如荼的Apple,IBM想要压制apple就需要廉价的计算机。微软可以提供廉价的DOS,当然不是卖操作系统,而是卖操作系统的许可。每台IBM兼容机都捆绑一个DOS。Bill的招数就是捆绑,从dos到IE都是如出一辙,当然特别奏效。IBM也没想多少,他们认为硬件才是赚钱的根本,DOS也便宜。两者结合,果然市场颇受欢迎,Bill也赚到了千万刀。

IBM兼容机逐渐推向市场,与Apple一较高下。此前,在一个车库,两个年轻的极客,一个对机器怀有无比的热情,另外一个则对改变世界十分狂热,两个人黏在一起,创立了一家伟大的公司Apple。与IBM兼容机不一样,Apple的早期微机,采用是摩托罗拉的cpu和unix。Jobs独特的艺术气质与Wozniak的技术天才,让Apple的微机在市场上极受欢迎。

Jobs对技术和艺术的卓越追求,让他不断的改进Apple的电脑。1973年施乐(Xerox)的PARC研究所开发出GUI接口与鼠标(题外话,历史上有两个著名的雷锋实验室,前面提到的Bell 和 这个 Parc)。但是Xerox本身是生产打印机的,董事会莫名其妙的觉得GUI一旦出现,顾客就不乐意使用打印机,因此对Park实验室的成果冷淡的打入冷宫。

1979年乔布斯到PARC研究所看到Xerox原型机Alto。敏锐的Jobs立刻发现了GUI和鼠标的商业价值,很快他就说服Xerox公司,以一个极低的价格买下了GUI进行研究。1983年苹果公司推出了Apple Lisa,首次采用GUI的商品化计算机。Lisa一诞生,就震撼了整个微机市场,那个车库里的年轻人因此身价过亿。

Apple蒸蒸日上,Mcriosoft的Bill心里可不是滋味。现在人们习惯把Jobs和Bill进行比较,不可否认他们都很伟大,至少在IT领域。不同于Jobs的完美主义和偏执狂的作风,Bill更圆滑和更中庸。Bill找到了Jobs,大加赞赏了Jobs的伟大,然后卑微的祈求一份Apple的GUI,并承诺Microsoft的一切成果都是Apple的。不可一世的Jobs答应了,Bill得到了Lisa原型机,马上组织团队研发,并在1990年5月份推出Windows3.0并一炮而红。商业上取得惊人的成功。打破了任何软件产品的六周内销售记录,从而开始了微软在操作系统上的垄断地位。

此时Jobs发现了Bill这个小偷,勃然大怒,可是为时已晚。对此,Bill并不否认,反而很得意讥讽乔布斯说:“我们有一个富邻居——Xerox,他家有一台电视。当我们想偷的时候,发现乔布斯早就偷走了,可他却说我们是小偷。”他们两人,都验证毕加索那句著名的格言:“好的艺术家抄袭,伟大的艺术家偷窃。”

但是Jobs心有不甘,因此着手研发Macintosh,由于Macintosh造价昂贵。在市场上逐步落后与Microsoft的Windows。Windows持续发展着,对于Jobs,Apple正在酝酿着一个地震,1985 Jobs被赶出了Apple。
此时,Unix在干嘛呢??Unix正忙着和BSD打官司,也正是这些时间,错过了操作系统发展的黄金时间,当Microsoft和Apple逐渐由小人物变成巨人的时候,Unix已经脱离了商业的主流。尽管如此,Unix先天的优雅并不会就此沉沦,DEC生产的机器,原本是自有操作系统,随着后来Unix的发展,不得不买PDP和VAX的时候添加Unix。其中VAX本身有一个操作系统VMX。由于Unix的入侵,VMX团队面临解散。

Windows风靡市场,一时洛阳纸贵。可是早期的windows并不稳定,蓝屏是家常便饭。Bill并没有偷到Jobs的核心技术,只获得了GUI。因此windows可谓先天的不足。郁闷的Bill找到了同样郁闷的VMX团队。很快两个失意者结合。Microsoft死活硬凑的将windows和VMX结合,诞生了Windows NT。NT诞生不久又出现了Server版本,Server的诞生,敲响了另一家公司的丧钟。当时网络已经出现,Novell生产网络操作系统占据网络统治地位,可是NT的出现,Novell的生命也走到了尽头。

被赶出Apple的Jobs同样没有停止他的步伐,Jobs离开Apple之后创办了如今三维动画巅峰旗帜的Pixar公司.并且Apple在对Microsoft的竞争中逐步走向衰败,Apple董事会不得不重新召回Jobs挽救Apple日益颓废的江山。Jobs果然是帮主,他的回归,Apple散发了第二春,几款革命性的产品iPod,iPhone将Apple再一次走到了世界的巅峰。MacOS成为了人们热衷的操作系统,这个曾经败给Windows的操作系统又回来了,并且在移动断,iOS也成为了霸主,后来Google 的Android加入争斗,那是后话了。

Microsoft的 windows xp成为微软史上成功的操作系统。可是Jobs回归之后的Apple,XP丑陋的界面很难和炫目的MacOS较量。Microsoft早期和IBM共同研发OS/2,由于后来和VMX的结合而退出了OS/2。IBM又一次验证了谁跟微软合作谁被坑的规律。可是针对MacOS,Microsoft一直对和VMX的结合产品心有余悸。最终用低价从IBM手下买回了OS/2,并重新拼凑了一个“绚丽”的操作系统Windows Vista。
显然,OS/2被IBM定义为史上最失败的产品,具有讽刺的是,Vista也不约而同的被Microsoft定义为失败的产品。Microsoft不得不在短时间内重新开发。推出了Xp的取代者--Windows7。先如今,Microsoft在互联网遭遇Google强大的统治, 移动方面windows phone也生存在Apple IOS的阴影之下。

曾经强大到像日不落帝国的Microsoft,也在谋求着新的蜕变。当然,Microsoft依然统治着桌面操作系统,在服务器端,另外一个崛起的不是Unix,不是MacOS,也不是Wndows的操作系统,他已然加冕成为新的王者。那就是Linux的故事,这个故事也很有趣,伴随自由的运动,黑客的分享的精神。比起之前少了很多商业的争斗气息,更多是那些黑客传奇的故事。我们得重新打开历史书,回到1991那年的夏天,阳光明媚的芬兰赫尔辛基大学的校园里...

Linux的崛起

我是你可怕的恶梦
------------Eric Raymond

Eric Raymond,黑客,他写了一篇论文《大教堂与市集》,也写过一本书叫《unix编程艺术》。于是整个世界都改变了。

纪录片《Revolution OS》描述,一次开发者大会,他遇到一个微软工程师,看见衣服上Microsoft的标志便询问对方:“你为微软工作?”当那位西装革履的工程师带有嘲讽和鄙视看着这个衣着普通的黑客回复:“是啊,你呢?”Raymond送去了一个微笑:我是你们可怕的恶梦。。。

黑客是Microsoft的恶梦?不,不仅仅是,黑客是一切不自由的恶梦。电脑和网络,已经成为现代社会和文明不可或缺的产品。很多人电脑使用Microsoft的windows系统,而这些机器所访问的web页面。其背后的服务器系统却是Windows的死敌---Linux。相比Windows成为家喻户晓并家家都在使用的操作系统。Linux很少被普通人知道,但是这并不妨碍它的伟大。他们分别在桌面和服务器两个环境,各自称霸着世界。
 
谈到Linux的起源,这个故事平凡却扣人心弦。1991那年,对于芬兰人绝对是一个有意思的一年。世界上首次全球通对话在诺基亚的Radiolinja网络中完成,诺基亚征服世界的脚步已经无法遏制。

与此同时,阳光明媚的芬兰赫尔辛基大学的校园里,一个少年正好拥有了一台完全属于自己的电脑,不必再忍受学校机房漫长的等待。他当时对安德鲁·塔南鲍姆(Andrew Tanenbaum)的著作《操作系统:设计与实现》——一本Minix操作指南深深着迷。

由于AT&T对于Unix商业化,而后将Unix进行了闭源。Andrew所教授的课程《操作系统》却没有了“操作系统”。对此Andrew一咬牙,狠狠心,写出了一个兼容Unix的操作系统。人家就是厉害,你不给我使用,我自己写一个出来用。尽管Andrew的成果很简单,但是还是具备了Unix的基本功能,当然比较mini,因此命名为Minix。Minix作为Unix的变种,彼时的Minix正凭借低廉的价格和简易的操作在大学大行其道。
Minix由于过于短小精悍,只能运行这一种机器,其他机器没有驱动。Andrew的学生就写了好多好用驱动来扩展Minix。可是,教授Andrew却觉得自己的操作系统要保持纯洁,不能有其他的代码来源。于是学生们就很郁闷,其中就有个叫Linus的同学。

拥有自己的PC的Linus却不能将Minix运行在自己的电脑上。Linus也不得不走上了他无数前辈的道路,不让用,不给用,那就自己写一个操作系统来用。仅仅两个月后,一个“千疮百孔但却碰巧可以使用”的磁盘驱动程序和一个小到不能再小的文件系统就诞生了,这就是第0.01版的Linux。随后Linus将操作系统上传至FTP,并公布了全部源代码。在USENET讨论区,Linus阐述其初衷:在新操作系统中,“人们可以自己编写驱动程序,可以随意修改操作系统以适应不同需求,可以尝试在Minix上运行所有程序,这是Minix从未有过的美好一天。”

美好的日子渐渐来临,Unix生态还是老样子,在商业的争斗中裹足不前。Microsoft和Apple的争斗也逐渐明朗,Microsoft靠卖软件大发特发。这让一个黑客很不满。

理查德·斯托曼(Richard Stallman)登场,他认为所有软件都是人类智慧和思想的结晶。软件应该自由的让人们使用。1983年,Stallman发起了“GNU(GNU’s Not Unix的递归缩写)”计划,目的是创建一套完全自由的操作系统,以“重现软件界合作互助的团结精神”。他以“著佐权”(copyleft)标准为范本拟定了一份通用公用版权协议(General Public License,GPL)。与强调个人版权但限制自由传播的著作权(copyright)不同,GPL更强调公共版权和鼓励自由传播,它允许修改程序、复制软件和销售获利。但前提是公布修改后的全部源代码,必须保证自由思想的传递。GNU计划激发了软件界极大的热情,世界各地的软件奇才们纷纷参与其中。并且开发出包括文字编辑器Emacs、C语言编译器,gcc以及大部分UNIX系统程序库和工具在内的绝大多数软件,很多免费软件的水平甚至都已经超过了相应的付费版本。

可是问题又来了,GNU编写了很多自由免费的软件,可是这些免费软件却运行在不自由的Unix上,这真是一个巨大的讽刺。Stallman承诺大家要两年内重新写一个操作系统,可是五年过去了,依然看不清成功的那一天。

与前面很多故事一样,事情总是环环相扣,可是谁也不知道这环将会扣向哪一环。Stallman苦于没有操作系统,芬兰的那边,Linus只有一个操作系统内核而没有应用软件。

于是,他们在各自的领域奋斗多年之后,命运终于安排他们走到了一起,Linus率领Linux加盟Stallman的GNU计划,上帝说要有光,于是牛顿出生了;人类需要自由,于是Linux与GUN结婚。这一“联姻”堪称是软件界的天作之合。
 
 
1992年,在Linux Kernel平台上工作的开发者只有100位,平台中的核心代码只有几万行。如今,在平台上工作的开发者已经多达1000人,人员的背景也从最初的黑客扩散至更多的行业,平台中的核心代码则已经超过千万行。

1998年,全球前500台超级计算机中还只有1台运行Linux。今天在全球前500台超级计算机中,有413台选用Linux。这些计算机遍布世界各地的多个行业,共同主宰着这个智慧的地球。

大到航天科技,小到IC卡芯片,无不存在Linux的影子。在移动领域,Android来势汹汹,已经逾越IOS成为移动的王者,完成了对windows的完美复仇。

Linux“可自由扩散”并不等同于“缺乏支持”和“业余水平”,恰恰相反,正是起开发的政策,让无数天才黑客参与进来,这是自由的胜利。

就连商业软件公司也参与进来,这些公司技术雄厚又善于市场运作,开创了新的商业模式----销售服务而不是软件。使Linux从网络黑客和业余爱好者自娱自乐的工具,变成了一个具有全球影响力的软件帝国。

98年的奥斯卡颁奖典礼上,当卡梅隆手握“最佳导演奖”的小金人,模仿《泰坦尼克》中的男主角Jack发出“我是世界之王”的宣言时,全世界无不为之倾倒。影片中那被重新描绘过的“唯美”海难,使人们惊叹于卡氏的神奇。但完美的电影也使人们忽略了另一个伟大事实:电影史上崭新的技术时代悄然来临。而这一时代,是由Linux开启的。

从那时开始,梦工厂、迪斯尼、皮克斯等公司都逐渐将各自的工作平台转向Linux,无数伟大的银幕经典因此横空出世。从《魔戒》到《金刚》,从《哈利波特》到《霍比特人》,再从《指环王》到《阿凡达》,Linux几乎以一己之力缔造了无数人梦中的玄幻王国。也是从那时开始,Linux终将埋葬Microsoft就开始成为江湖中著名的传说之一。

悠悠苍天,传来一股由弱变强的声音----- 我是你最可怕的恶梦!!!