unix_unixodbc - CSDN
unix 订阅
Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学计算等领域。 [1] 展开全文
Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学计算等领域。 [1]
信息
学    科
计算机科学
外文名
UNIX
类    型
多用户、多任务操作系统
中文名
尤尼克斯
设计原则
简洁至上、提供机制而非策略
unix发展历史
UNIX系统是一个分时系统。最早的UNIX系统于1970年问世。此前,只有面向批处理作业的操作系统,这样的系统对于需要立即得到响应的用户来说是太慢了。在60年代末,Kenneth Thompson和Dennis Ritchie都曾参加过交互方式分时系统Multics的设计,而开发该系统所使用的工具是CTSS。这两个系统在操作系统的发展过程中都产生过重大影响。在此基础上,在对当时现有的技术进行精选提炼和发展的过程中,K.Thompson于1969年在小型计算机上开发UNIX系统,后于1970年投入运行。 [2]  1973年,DennisRitchie开发出C语言,用来改写原来用汇编语言编写的UNIX,由此产生了UNIX VersionV。1974年,Kenneth Thompson和Dennis Ritchie合写的“The UNIX Time-Sharing System"在Communication of ACM上发表,正式向外界披露了UNIX系统。 [2]  当时,PDP-11系列小型计算机在世界各地已经得到广泛应用,UNIX系统一开发后便广泛配备于美国各大学的PDP-11系列计算机上,由此为UNIX的广泛应用创造了物质条件。 [2]  1978年,UNIX Version VI发表,随后又于1979年用于VAX-11超级小型机。以后,不断地出现各种新的版本。美国电话电报公司分别于1981年和1983年发表AT&T UNIX SystemII和UNIX SystemV。美国加州大学伯克莱分校也先后发表了UNIX的版本BSD4.1,BSD4.2和BSD4.3。 [2]  现在UNIX系统的用户日益增多,应用范围也日益扩大。无论在各种类型的微型机、小型机,还是在中、大型计算机,以及在计算机工作站甚至个人计算机上,很多都已配有UNIX系统。不仅新推出的机型配有UNIX系统,而且一些历史较久的生产厂商,也竞相将原有机型配上UNIX系统以便打开销路、争取市场。 [2] 
收起全文
精华内容
参与话题
  • Unix基础教程

    千次阅读 2006-12-10 18:08:00
    这篇东西是关于Unix系统操作的教程。也是Unix的入门教程。如果你有兴趣学,请看下去,保证你可以学到许多有用的东西。如果你满足于dos,windows的操作,不想对网络服务器,有任何了解的话,可以不看。因为你并不想...
      这篇东西是关于Unix系统操作的教程。也是Unix的入门教程。如果你有兴趣学,请看下去,保证你可以学到许多有用的东西。如果你满足于dos,windows的操作,不想对网络服务器,有任何了解的话,可以不看。因为你并不想成为计算机高手。本教程仅仅讲授Unix系统的常用命令,不涉及Unix的历史、安装和编程。如果你想得到更多的知识, 请查找其他的教材。本教程参考了《精通Unix》、《Unix基础》、《Unix系统使用指南 》等书,你可以在那里找到更多的知识。 准备知识: 

    Unix是一个多任务多用户的操作系统。多任务是指可以同时运行几个不同的程序,或命令。在操作系统的术语里叫“进程”,就象在运行Windows95的时候我们可以一边听CD 一边打字,同时打印机还在工作。多用户是指一台运行Unix系统的机器可以同时具有几个不同的输入输出设备,给几个,几十个用户同时使用。不同的输入输出设备我们称为终端。 Unix给每个终端设置不同的序号以协调工作,这个序号被称为终端序号。 Unix是一个根本不同于Dos的系统,无论其命令格式,用途都和Dos有很大区别。比如: 目录分割符是"/",而不是""。具体的不同请参考其他书籍。

    开始练习之前: 

    在开始教授Unix命令之前,请先记下这个地址:::URL::http://www.cyberspace.org。它是一台在美国的,连上Internet的Unix主机。之所以告诉大家这个地址是因为它提供免费的帐号供大家使用。是免费的。就是说你可以先去那里申请一个帐号,然后在那里练习 你所学到的Unix命令。因为我相信不是每个朋友都可以轻松地得到Unix帐号的。 在你成功的申请好帐号之后,请在你Windows95的dos窗口里输入"telnet cyberspace.org" 等待连上主机。接下来就是输入你的用户名和密码,不要告诉我这些你都不会,如果你 不会的话,你是怎么连到这个网页的? 现在假定你连上了主机,系统的提示符应该是"cyberscpae.org%",对这个就是提示符 就象dos里的"c:>"。接下去我将开始命令篇。

    [ls]

    你记不记得你学会的第一个Dos命令?反正我学会的第一个命令是dir:列目录和文件的 命令。你学会的第一个Unix的命令也是列目录和文件的命令ls. 功能列出当前目录下的募湍柯肌?nbsp;同Dos一样,Unix系统命令也是带参数的。ls的参数有"a","l","F"。请注意,F是大写。 Unix系统里对命令的大小是严格区分的。(所以我们做网页常常会发生连接错误)同dos 不一样的地方在于,Unix命令的参数是"-"为其前导,而不是"/"。所以完整的ls命令是 

    ls -l -a -F或ls -laF 

    -l:long的意思,把文件的其他资料,如文件长度,上次修改的日期等等列出来。 

    -a:all的意思,把本目录下所有的文件,包括隐含的文件也列出来。 

    -F:显示文件类型。"*"表示可执行文件,"/"表示目录,"@"表示连接。

    好,请在你的机器上输入ls -l -a -F,或许这是你一生里第一个Unix命令。记住了吗?

    [cd]

    变换目录,和Dos相同。如果你在cd后面没有给定目的地,则表示目的地是家目录。 在unix中有三中表示目录的符号".","..","~"。 "."表示当前目录路径的位置 ".."表示当前路径的上一层目录,或称"父目录" "~"表示家目录,所谓家目录指系统管理员分配给你的目录,比如你的用户名是li,那么 你的家目录就是在"~li",在cd后面加上"~li"就是去你的家目录。 

    [date]

    显示出当前的时间和日期,记住在Unix里你是无法修改系统时间的。输出时间一般是 格林威志时间。

    [who]

    该命令告诉你现在你使用的系统里有哪些用户。Unix是一个多用户的操作系统,同时在 机器上的可能有数十甚至数百人。who命令可以把他们的名字和终端号都列出来。who命令有 一个比较有趣的用法,"who am I"如其字面上的意思,让Unix显示你的用户名和终端类型

    [more]

    more命令有点象Dos里的Type命令,就是显示文本文件的内容。比如你要显示文件file1的 内容,可以用: more file1 当要看的文件超过屏幕可以容纳的行数,就会在屏幕的左下角出现一个"--More--"并告诉 你已经看过了整个文件的百分之几。如果要继续看下去,就敲"Space Bar",可以看下一页, 或用"Enter",就会读入下一行。 more命令还可以由你指定开始的行数。比如file1文件有1000行,你已经看过100行,那么可以用"more +100 file1"则直接从第100行开始看起。还有可以在命令里指定关键字。ore +/key_word 这样写,more就会从含有"key_word"字样的那一行的前两行开始显示。也许你已经注意到,Unix里对文本文件的操作要比Dos强大的多,实际上的确如此。

    [cp]

    cp命令同dos里的copy命令是一样的,复制文件。 比如:

    cp file1 file2 

    注意,如果你当前目录里已经含有file2这个文件,这个操作将会覆盖原来的file2。也许 在Dos里不会这样,它会要你确认。但你现在在用Unix,在你没有叫它确认之前,它不会那么做。 

    cp -i file1 file2

    当你使用了-i这个选项,再遇到重名的情况系统将要你确认是否继续。 cp命令还有两个比较重要的选项:-r -p 

    cp -r /dir1 /dir_temp 这条命令是将目录dir1完全地复制到目录/dir_temp里,在Dos里着条命令叫xcopy 

    cp -p file1 file2

    Unix的系统和dos有一个不同的地方,在dos里copy一个文件是不会改变它的文件修改时间 的,除非你确实那样做了。在Unix里不同,它要改你的时间,或许它认为cp也是一种修改吧。 当你加上-p以后就不会改时间了。 

    用惯Dos的人或许会对下面的一行命令大惑不解: 

    cp file1 file2 file3 dir_dest 这条命令把file1,file2,file3三个文件一起复制到/dir_dest里去。 
    好了今天就讲到这里,最后留一个思考题,请说明一下下面一行命令的作用,请不要用Dos 的思考方式。我们下个星期再见。 

    思考问题,请说出以下命令的作用:

    cp file1+file2 file3
    cp 上个星期我提出的问题你能解吗?实际上以下命令的意义是这样的:
    cp file1+file2 file3
    表示将一个名字为file1+file2的文件拷贝成file3。而不是在dos里的将file1和file2加在一起拷贝成文件file3。在unix的文件系统里,文件名字可以到255或254个字符,具体要看你到底使用那种类型的Unix。

    [cat]

    这个命令可不是“猫”的意思,而是catenate的缩写。顾名思义,是把东西串起来。比如:

    cat file1 file2

    就是把文件file1和file2连在一起,然后输出到屏幕上。注意,输出到屏幕上是cat的自定义目的。如果要改变它的输出方向,就必须使用Unix系统的输出重定向符">",">"输出重定向符。稍微高级一点的dos用户都知道这个符号。在Unix里的用法同Dos的区别不是很大。但比较不同的地方是,Unix系统将任何的一个外设都认同为一个文件。所以如果你要将输出重定向到打印机之类的地方,只要写上代表打印机的设备文件名。前一章里我们曾讲过终端机器名,它也是一个文件。比方我的设备机器是ttya,而小李的设备机器是ttyb,他想让我把当前目录的内容给他看。那么用这条命令就可以了

    ls -a-u-F >ttyb

    这充分利用了Unix系统多用户的设计思想。

    同样的使用ls -a-u-F>file1就是将当前目录列表输出到file1中。

    又比如:
    cat file1 file2>file3
    就是将文件file1和file2的内容输出到file3中。在Dos里这条命令被写成copy file1+file2 file3

    当你用'>'来输出重定向的时候,系统马上打开一个空文件来准备存放'>'之前那个文件命令的输出结果。比如:

    cat file1 file2>file3
    系统先将file3的内容清空。所以:
    cat file1 file2>file1这条命令将产生一个错误提示。也许这条命令的本意是增加file1里的内容,但在系统初始这条命令的时候就把file1里的内容清空了。所以你得到一个错误提示。如果要追加文件内容请使用以下命令:

    cat file2>>file1
    ">>"表示追加,而不是先清空file1中的内容。
    上面讲的是输出重定向,还有输入重定向。这个留在以后讲。

    [man]

    是英语"manual"的缩写。这是一条使用频率很高的命令,用来得到系统对一个特定命令的帮助信息。请各位读者一定要掌握这条命令。

    格式为:man -k 命令关键字

    [mv]

    这个命令是move的缩写,就是把一个目录或文件搬来搬去。实际上我常把它当成改文件名字的命令来用。比如:

    mv file1 ABC就是把文件file1改成ABC。

    [rm]

    记住rm是remove,是清除文件的意思。在Unix里是没有undelete这会事情的,所以请在使用的时候加上-i这个选项。表示确认。

    文件权限 各位读者,经过上两个星期的热身,我们开始渐渐接近Unix操作的核心。在本周我们着重谈谈Unix的文件系统,下次再讲vi编辑器。

    现在我们来看一个示例:

    Username:unixfree

    Password:********

    (登陆到Unix)

    %:ls -l(显示文件表)

    drwxr-xrw- 1 unixfree project1 128 Apr 4 12:19 dir

    -rw-r--r-- 1 unixfree project1 545 Apr 4 12:19 file1

    lrwxrwxrwx 1 unixfree project1 124 Jan 13 09:01 file2-->file3

    -rw------- 1 unixfree project1 212 Jul 22 14:23 file3

    在文件列表最前边的就是文件的属性。一般来说,它有十个小项目,也就是十个符号。它们以1+3+3+3的方式表示四个意义:
    文件类型(1)、文件拥有者(user)对此文件的权限(3)、同组者(group)对此文件的权限(3)、其他人(others)对此文件的权限(3)。

    文件类型:文件类型有三种符号,分别为:
    "-":普通文件
    "d":目录
    "1":表示连接(下面会详细讲)

    文件权限:文件的权限也有三种
    "r":只读文件
    "w":可写文件
    "-":不可执行文件,不可读文件,不可写文件
    "x":可执行

    在Unix系统里用户是分组的,就象NT的分组一样。一般来说同一组的人往往比较接近,比如公司的同一个部门就是一个组。而不同组的人则不在同一个组。分组情况是由系统管理员制定的。普通用户不能自行更改。

    所以在上面的例子里的第一行表示该目录User可读可写可执行,本组的用户可读不可写可执行,其他用户可读可写不可执行。其他的你就自己解释吧。

    前面我提到了一个文件类型"1"。这是比较特别的类型,它只是一个门牌,任何对它的访问都会自动到它指向的文件。比如上例中我们看到file2是连向file3的一个文件,那么任何对file2的操作都是对file3的操作,并且文件的实际属性是file3的属性,而不是file2的属性。


    改变文件属性的命令:[chmod]

    chmod 是chang mode的缩写,用来改变文件的权限。用以下的文件为例:

    -rw-r--r-- 1 unixfree project1 545 Apr 4 12:19 file1

    第一个"-"表示本文件是一个普通的文件。"rw-"表示文件拥有者对此文件的权限为可读可写不可执行。其他的你自己看了。

    要改变次文件的权限,比如我怕将此文件改坏掉,所以希望自己不可写此文件

    chmod u-w file1

    符号"u"表示文件的拥有者,"g"表示同组者,"o"表示其他用户,"a"表示全体用户,就是前面讲的所有的人。"-"表示去掉某个属性,"+"表示加上某个属性。

    又比如我要讲file1改成全体用户都可读可写可执行的文件:

    chmod a+rwx file1

    然后去掉其他用户执行的权利:
    chmod o-x file1

    各位细心学习的朋友,非常感谢你能继续看这个教程。这个星期我们开始学习VI编辑器。从功能上说它是一个同EDIT基本一样的工具,但是它非常难学!以至于在现在我不得不引用一句在unix初学者口中的话来告戒大家"To vi or not to vi,that is a question"!

    Vi的模式:
    Vi有两种基本模式:命令模式和编辑模式,他们以<ESC>键切换。
    OK,我们启动一下vi,看看这么使用这个工具。
    %vi
    启动vi,第一件事先按<ESC>,记得你在vi里要常常用它。然后输入"i"。
    屏幕上绝对不会出现任何字,因为<esc>后你在命令模式,输入"i"则表示你进入编辑模式,并且现在的状态是insert,就是插入文本。
    如果你还没有被搞糊涂,那么继续输入。 I love Unix.

    是的,屏幕上出字了,你顺利地输入第一行文字。现在我们要保存这个文件。再按一次<ESC>,到命令模式,输入":w",表示存盘。你也可以输入
    ":w Unix.txt",那么就是以Unix.txt为文件名字存盘。
    好了基本vi概念就是如此。我把常用的一些命令都写在下面,你自己试着输入吧。
     
    展开全文
  • Linux 与 Unix 到底有什么不同?

    万次阅读 2019-07-05 10:15:24
    如果你是一名20多岁或30多岁的软件开发人员,那么你已成长在一个由Linux主导的世界中。数十年来,它一直是数据中心的重要参与者,尽管很难找到明确的操作系统市场份额的报告...
        

    640?wx_fmt=jpeg


    如果你是一名20多岁或30多岁的软件开发人员,那么你已成长在一个由Linux主导的世界中。数十年来,它一直是数据中心的重要参与者,尽管很难找到明确的操作系统市场份额的报告,但Linux在数据中心操作系统上的份额可能高达70%,而Windows变体几乎涵盖了所有剩余的比例。使用任何主流公共云的开发人员可以假定目标系统将运行Linux。近些年来,随着Android和基于Linux的嵌入式系统在智能手机、电视、汽车和其他设备中的应用,Linux随处可见的证据比比皆是。


    即便如此,大多数软件开发人员,甚至是那些在这场古老的“Linux革命”中成长的软件开发人员,也至少听说过Unix。这听起来与Linux类似,你可能已经听说过人们可以互换地使用这些术语。或者你也许听说过Linux被称为“类Unix”操作系统。


    那么,这个Unix是什么呢? 一些漫画种讲到的是坐在发绿光的屏幕后面的精灵般的“老人”,他编写C代码和shell脚本,由老式的滴灌咖啡所驱动。但除了那些1970年代那些老去的C程序员以外,Unix有更丰富的历史。虽然详细介绍Unix历史和“Unix与Linux”比较的文章比比皆是,但本文将提供高层的背景介绍和这些互补世界之间的主要差别的列表。


    Unix 开端


    Unix的历史起始于二十世纪六十年代的AT&T贝尔实验室,在那时,一小组程序员正在为PDP-7编写多任务、多用户操作系统。在贝尔实验室研究机构的这个小组里有两位最知名的人物,ken Thompson和Dennis Ritchie。尽管Unix的许多概念继承于它的先驱Multics,但在二十世纪八十代早期Unix小组用C语言重写这个小型操作系统的决定使得Unix与其它的系统区别开来。那个时候的操作系统很少是可移植的。相反,由于先天的设计和底层源语言,那些操作系统和所被授权运行的硬件平台紧密地联系在一起。通过使用C语言重构Unix,现在Unix可以被移植到许多硬件平台。


    除了这个新的可移植移能力,有几个对于用户和程序员来说很有吸引力的操作系统设计的关键点使得Unix扩张到除贝尔实验室以外的其它领域,如研究、学术甚至商业用途。关键点一,Ken Thompson的Unix哲学成为了模块化软件设计和计算的强有力的典范。Unix哲学建议使用小规模的为特定目的构建的程序的结合体来处理复杂的总体任务。由于Unix是围绕着文件和管道设计的,这个"piping(管道)“模型至今仍然很流行,它把程序的输入和输出链接在一起作为一系列的线性输入操作。实际上,当今的函数即服务(FaaS)/无服务器计算模型要更多地归功于对Unix哲学的继承。


    快读增长和竞争


    在20世纪70和80年代末,Unix成为了族谱的根,族谱扩展到研究届、学术届和不断增长的商业Unix操作系统业务。Unix不是开源软件,Unix源码可以与它的拥有者AT&T通过协议获得许可证。第一个已知的软件许可证在1975年卖给了伊利诺伊大学。


    Unix在学术界发展迅速,随着伯克利成为重要的活动中心,在70年代给了Ken Thompson一个学术休假。通过在伯克利的Unix的所有活动,一个新的Unix软件支付诞生了:伯克利软件发行版,或者叫BSD。最初,BSD并不是AT&T的Unix的代替品,而是附加软件和功能附加品。直到1979年的2BSD(第二Berkeley软件发型版),伯克利研究生Bill Joy已经添加了现在知名的程序,例如vi和C shell(/bin/csh)。


    除了BSD,它成为了Unix家族中最受欢迎的分支之一,Unix的商业产品在20世纪80年代和90年代激增,包括HP-UX、IBM的AIX、Sun的Solaris、Sequent和Xenix。随着分支从最初的根开始增长,“Unix战争”开始了,标准化成为了社区的一个新焦点。POSIX标准诞生于1988年,以及其他开源工作组的标准化工作一直进行到到20世纪90年代。

    大约在这个时候,AT&T和Sun发布了System V Release 4(SVR4),这是许多商业厂商采用的。另外,BSD家族的操作系统在过去的几年里不断增长,导致了一些开源的变种,这些变种是在现在熟悉的BSD许可下发布的。这包括FreeBSD、OpenBSD和NetBSD,每个都在Unix服务器行业中有一个稍微不同的目标市场。这些Unix变体在今天仍然有一些使用,尽管许多人已经看到他们的服务器市场份额减少到个位数(或更低)。


    BSD可能是当今所有现代Unix系统中最大的安装基础。此外,在最近的历史中,每一个苹果Mac硬件单元搭载的系统都可以被称为BSD,因为它的OS X(现在的macOS)操作系统是一个BSD-派生。


    虽然Unix的完整历史和它的学术和商业变体可能需要更多的篇幅来介绍,但是为了突出我们的文章的重点,让我们继续关注Linux的兴起。


    讲讲 Linux


    今天我们所说的Linux操作系统实际上是90年代初期的两个成果的组合。Richard Stallman希望创建一个作为替代私有Unix系统的真正免费的和开源的系统。他正在以GNU的名义开发实用工具和程序,这是一种递归算法,意思是“GNU不是Unix!” 虽然它有一个内核项目正在进行,但结果证实开展起来很困难,这样没有内核,免费并开源操作系统的梦想就无法实现。


    这是Linus Torvald的工作 - 编写出一种可工作的和可行的内核,被他称为Linux--整个操作系统因此而诞生。鉴于Linus使用的是多种GNU工具(例如GNU编译器集合或GCC),GNU工具和Linux内核的结合是天生的绝配。


    Linux发行版使用GNU提供的组件、Linux内核,MIT的X-Windows GUI以及其他可以在开源BSD许可下使用的BSD组件来实现。像Slackware和Red Hat这样的发行版的早期流行给了上世纪90年代的“普通PC用户”使用Linux操作系统的机会,以及他们在工作或学术生活中使用的许多专有的Unix系统功能和实用工具。


    由于所有Linux组件的免费和开源,任何人都可以通过一些努力来创建一个Linux发行版,很快,发行版的总数就达到了数百个。今天,distrowatch.com列出了312种独特的Linux发行版。当然,许多开发人员通过云提供商使用linux或使用流行的免费发行版,如Fedora、Canonical的Ubuntu、Debian、Arch Linux、Gentoo和许多其他变体Linux。


    在免费和开源组件之上提供支持的商业Linux产品变得可行,因为包括IBM在内的许多企业都从专有的Unix迁移到在Linux上提供中间件和软件解决方案。Red Hat在Red Hat Enterprise Linux周围建立了一个商业支持模型,德国供应商SUSE Linux Enterprise Server(SLES)也是如此。


    比较 Unix 和 Linux


    目前为止,我们已经了解了Unix的历史,和Linux的崛起,以及与Unix不同的以免费和开源为基础的GNU/Free软件基金会。这两个操作系统有着相同的文化遗产和相同的目标,我们现在来看一下他们的区别。


    从一个用户体验角度来讲,没有太多区别!Linux的大部分优点包括操作系统可跨多硬件架构(包括现代PC)特性,以及能够让Unix系统的管理员和用户使用他们熟悉的工具的能力。


    由于POSIX标准和兼容性,在Unix上编写的软件可以在Linux操作系统上编译,而在移植方面不用花费太多的功夫。很多情况下,Shell脚本可以直接在Linux上使用。虽然在Unix和Linux之间有一些工具的标志/命令行选项略微不同,但是他们的很多操作是相同的。


    要注意的一方面是,作为把Linux作为主要目标的开发平台,macOS设备和操作系统的普及,可能归功于类BSD的macOS操作系统。很多Linux系统工具和脚本可以简单地在macOS终端运行。很多在Linux上可用的开源软件组件也可以在macOS上使用,如Homebrew。


    其他Linux和Unix区别主要与授权模式相关:开源vs.私有,授权软件。此外,Unix发行版中缺少通用内核对软件和硬件供应商都有影响。对于Linux,供应商可以为特定硬件设备创建设备驱动,并有理由预计,它可以在大多数发行版中运行。由于Unix家族的商业和学术分支,供应商可能不得不为不同版本的Unix开发不同的驱动,而且作为很多不同版本的Unix的二进制设备驱动,对这些软件的SDK或者发行版本的访问,也会让他们有授权和其他方面的担忧。


    在过去十年中随着这两个社区的日渐成熟,Linux中许多进步已经在Unix世界中被采用了。许多GNU实用程序已经被作为Unix系统的附属而提供,他们提供了开发人员需要的来自不属于Unix的GNU程序的功能。例如,IBM的AIX为Linux应用程序提供了一个AIX工具箱,其中包含数百个GNU软件包(如Bash、GCC、OpenLDAP和许多其他软件包),这些软件包可添加到AIX安装中以简化基于Linux和基于Unix的AIX系统之间的迁移。


    私有的Unix仍然存在,并且状况不错,随着许多主流供应商承诺支持其当前版本知道2020年,不言而喻,在可预见的未来Unix依然会出现。此外,Unix树的BSD分支是开源的,而NetBSD、OpenBSD和FreeBSD都有强大的用户群和开源社区,它们可能不像Linux那样可见或活跃,但在近期的服务器份额报告中保持不变,维持在像Web服务等领域以远高于私有Unix数量之上。


    Linux 已经显示出超越专有 Unix 的显著优势在于其在大量硬件平台和设备上的可用性。 Raspberry Pi 受到业余爱好者和发烧友的欢迎,它是 Linux 驱动的,为运行 Linux 的各种物联网设备打开了大门。 我们已经提到了 Android 设备,汽车(包括Automotive Grade Linux)和智能电视,其中Linux占有很大的市场份额。 这个星球上的每个云提供商都提供运行Linux的虚拟服务器,而且当今许多最受欢迎的云本地堆栈都是基于 Linux 的,无论您是在谈论容器运行时还是Kubernetes,还是许多无服务器的平台都越来越受欢迎。


    其中一个最显着的趋势是近年来微软的转变。 如果你十年前告诉软件开发人员,Windows操作系统将在2016年“运行Linux”,他们中的大多数人会歇斯底里地笑了。 但是Windows Linux子系统(WSL)的存在和普及,以及最近宣布的诸如Docker的Windows端口(包括Windows上的Linux容器)支持等功能都证明了Linux具有的影响 - 以及 显然将会继续存在 - 跨软件世界。


    来源:开源中国

    https://opensource.com/article/18/5/differences-between-linux-and-unix


    公众号内回复“1”带你进粉丝群640?wx_fmt=gif

    展开全文
  • Windows和Linux、Unix的区别

    千次阅读 2020-02-20 20:45:50
    先讲什么是操作系统: 操作系统(Operation System,简称OS)是给用户提供一个与系统交互的操作界面,是运行在计算机上的软件程序,是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石, ...

    先讲什么是操作系统:

    操作系统(Operation System,简称OS)是给用户提供一个与系统交互的操作界面,是运行在计算机上的软件程序,是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石,
    在这里插入图片描述

    Windows

    Windows 是微软开发的操作系统,民用操作系统,可用于娱乐、影音、上网。
    Windows操作系统具有强大的日志记录系统和强大的桌面应用。好处是它可以帮我们实现非常多绚丽多彩的效果,可以非常方便去进行娱乐、影音、上网。但是如果Windows开机后,在十天或半个月不关机,之后再去操作时会发现电脑变得其卡无比。这是因为Windows操作系统在持续不断地进行日志记录以及桌面渲染大量占用了系统资源。
    比如:应用服务器(tomcat)是安装在Windows操作系统上面,在tomcat上面部署了一个项目,可能头十天还比较顺畅,然后十天后就变得卡顿了,之后就卡死了。有些讲大不了重启一下Windows操作系统,但是可能重启的这段时间会流失大量用户,造成大量损失。


    Unix

    Unix 最早的多用户、多任务操作系统 .按照操作系统的分类,属于分时操作系统。Unix 大多被用在服务器、工作站,现在也有用在个人计算机上。它在创建互联网、计算机网络或客户端/服务器模型方面发挥着非常重要的作用。(其实 Linux 与 UNIX 差不多,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易,UNIX也差不多算Linux的父亲 )


    Linux

    Linux 简单来说是一款操作系统。(正规的Java的开发是在Linux操作系统下进行的),服务器项目部署都是放在Linux操作系统上面。详细来说Linux是一套免费使用和自由传播的类Unix操作系统,Linux存在着许多不同的Linux版本,但它们都使用了 Linux内核 。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

    在这里插入图片描述

    展开全文
  • 永远的UNIX大全

    2020-07-30 23:31:50
    永远的UNIX,介绍了所有跟UNIX有关的知识点,值得一阅
  • 其实Unix很简单

    万次阅读 多人点赞 2007-03-21 10:32:00
    其实Unix很简单 陈皓 很多编程的朋友都在网上问我这样的几个问题,Unix怎么学?Unix怎么这么难?如何才能学好?并且让我给他们一些学好Unix的经验。在绝大多数时候,我发现问这些问题的朋友都有两个特点:1)对...

    其实Unix很简单

     

    陈皓

     

    很多编程的朋友都在网上问我这样的几个问题,Unix怎么学?Unix怎么这么难?如何才能学好?并且让我给他们一些学好Unix的经验。在绝大多数时候,我发现问这些问题的朋友都有两个特点:

    1)对Unix有畏难心理,对其没有信心;

    2)喜欢用拿Windows来和Unix做比较。

     

    这两种特点就像两个“心理暗示”,暗示着自己Unix很不好学,暗示着Unix很糟糕,不如Windows好。于是,自己也就被自己的这种长期的“暗示”所催眠了。因为,从一开始就有畏难情绪,所以也就觉得Unix不好,觉得非常很吃力,最后还会导致对Unix的厌恶和反感的情绪。所以,为了纠正上述朋友们的“心理暗示”。我想写下这篇文章,想告诉大家,Unix真的很简单。

     

    在正式叙述“简单的Unix”之前,我想做几点说明:(以免陷入无意义的争论)

     

    1)  本文是站在开发者的角度来说明的,所以,如果有朋友不同意我的观点,请也以开发者的角度来向我提出质问和讨论,本人非常欢迎。

     

    2)  本文难免要用Windows来和Unix做对比。这并不代表我不喜欢Windows,也不代表我要叫你放弃Windows。我们也知道这种对比已经没有什么意思了,但因为众多的朋友被Windows先入为主了,所以,我一定要拿Windows来开刀,才能扭转那个“心理暗示”。仅此而已。

     

     

           OK,言归正传。先说Unix的一个最重要的特点——“高内聚,低藕合”!也就是说,Unix下的各种应用程序都和别人不相干。这就是贯穿整个Unix的思维——模块和程序的高度独立性。这样的设计和做法,会让你的系统比较的稳定,也会让你的系统特别地容易管理和维护。Unix下的应用程序们就像一支正规军一样排列地整整齐齐,只要司令(内核)还在,系统是不会因为某个军队的损失而无法自举的。而Windows的应用程序们就像一片树林一样,从地表上看过去,树木们排列地整整齐齐,但是他们的树根在地下却相互缠绕在一起,剪不断,理还乱,异常地复杂。

     

           “高内聚,低藕合”的给Unix造成的结果是,其系统中基本上都是功能单一的小程序,这些小程序就像积木一样,当我们需要构造建一个自定义的建筑时,大多数情况下,我们只需要做的只是一个“搭积木”的简单游戏。Windows建设得富丽堂皇,可惜,别人的“积木”你几乎不可能拿到自己的建筑中来。总是要你模仿或重写。

     

    插一句:你是否注意到在网上下载Windows的软件时,会有一种所谓的“绿色软件”?这就是对Windows的最大讽刺,Windows下装一个软件,NDLL放到Windows系统目录下,注册表里写入N个键值,还有很多你不知道的动作。而在Unix装软件,你不用担心你的系统目录下会莫明其妙地多出些乱七八糟的文件。就是copy那么简单,那怕是rpm自动安装,安装完后,你也能够查询到软件安装后对系统所做的改变。所以,你在Unix下分发你的软件时,你会觉得比Windows下要做得简单了许多许多。)

     

           再说说Unix的另一个最重要的特点——“所有的设备都可以像文件一样地操作”。简单吧。所有的调备,文件、打印机、显示器、终端、网络、软盘、磁带、USBCDROM、等等的I/O操作,都以文件描述符的方式进行操作。两个Unix下最重要的系统调用read/write就可以胜任所有设备的I/O了。Unix早就在/dev目录下为你建好了这些文件。使用起来很简单。

     

           也许很多人都觉得Unix的命令行太过复杂。一个命令有着若干的参数,异常地复杂。但之所以今天Unix下的应用程序还在以字符界面为主,这恰好体现了Unix的简单的特征。这也是Unix的另一个特点——“命令的相互支持性”,命令们通过一个管道或是重定向,可以互相联系在一起,再加以Shell脚本的支持,哪怕要实现一些复杂的功能(比如一个小型的文本数据库),也是简单之极。

     

           如果上面的论述依然不能让你信服Unix很简单,那么,让我们来用一些具体地实际的例子来看一下,Unix是如何简单的。让我们试着做下面的这样一个假设:“如果我们在学习编程的时候一开始是学Unix,然后转去做Windows”,那会是怎么样的一个情况?

     

    1)  我们在Unix下创建进程,使用fork调用。到了Windows下,我们查了MSDN,发现了一个叫CreateProcess的系统调用可以创建进程,但我们却发现这个系统调用有10个参数。而Unix下的fork却一个参数都没有。这种情况下,你是否会有一种头大的感觉?因为,在Unix下,你根本看不到会有10参数这样复杂的系统调用API

     

    2)  我们在Unix下操作文件权限很简单,文件权限分三组(本人,同组,别人),每组都是可读,可写,可执行。两个简单的系统调用chmod/chown就搞定。到了Windows下,如果是NTFS,如果要以程序的方式设置文件权限,呵呵,你需要先了解什么是:SID,什么是DACL,什么是SACL,什么是ACE,还有十几相关的系统API函数等着你。(参看我的《以程序操作NTFS文件权限》)你也许会觉得这么复杂的安全策略是让系统更安全的基础,可以自从Windows出现的那一天以后,在安全方面的表现就没有胜过Unix。这无疑让人感到Windows做了一件吃力不讨好的事。

     

    插一句Unix下的用户切换是相当简易方便的。而Windows下的用户切换会导致你需要退出当前用户的前台程序。这导致了Windows下的用户几乎无一例外地都会选择在超级用户的权限下工作/上网,这完全是让自己的机器在裸奔,所以,Windows下的病毒一旦在系统中运行就为所欲为了。而Unix下,很少用户会以root身份操作本机,因为切换用户非常方便。

     

    3)  Unix下,用户有ID,用户组有ID,进程/线程都有IDID很简单易懂,就像我们的身份证一样。到了Windows下,用户标识叫Token,进程标识叫Handle(其实也就是一个DWORD的类型),我看到网上很多问题都在问Windows下的Handle的概念问题。我一直在想,为什么微软不取一个简单易懂的术语?要取得那么抽象,那么让人很迷惑。虽然这让Windows看起很NB,但也会因此加大了学习复杂度。(Windows的开发学习复杂度要比Unix复杂多了,而且有太多的看似很高深的术语让人一头雾水)

     

    4)  让我们再来看一下用户管理和程序所有者方面的东西。在Unix下,需要你做的是配置NIS服务器和NFS服务器(以Autofs自动mount),简洁,清楚。到了Windows下,与其相似的是一个叫Domain的东西(主域控制器),首先,为了加入域,你需要重启电脑(Unix下只需要配置/etc/nsswitch.conf文件来告诉本机的用户登录源,无需重启),而对开发者来说,Unix的这个配置对程序是完全透明的。而Windows的域用户和本地用户需要一个域名来区分。在程序中切换用户时,Unix只需要setuid/seteuid就行了,Windows对此有三个比较复杂的APICreateProcessAsUser, ImpersonateLoggedOnUser, LogonUser,其复杂度就不用比较了。另外,在Domain方式下,你的Document and Setting目录下的文件,会全部放到Domain服务器上去,你在别的机器上登录时,需要下载这些文件。最后,我倒不担心你和网友的MSN聊天记录会因为你的登录而到处都是,我担心的是,你在这么复杂的管理环境中写出来的代码是否能让别人放心?:-(

     

    5)  Unix下,要把自己的程序加入系统的启动服务只需要在/etc/init.d中配置就行了。写下一个有启动停止功能脚本,以特殊命名的方式链接到不同启动模式目录下就行了。Windows下加一个启动服务,如果你不编写程序,估计比较困难。

     

    6)  Unix下,如果要取得系统的信息。只需要到/proc目录下去cat那堆文件。所有进/线程的状态、命令行、内存/交换区使用情况、打开的文件描述符,等等,系统的CPU,内存,交换区,内存文件IO,分区,信息,网络,系统运行状态,系统设备,等等,要有多详细就有多详细,而且完全是纯文本的,直接就可以看了。到了Windows下,要穷举系统当前进程的信息,就不是一样很容易的事,更别说要取得别的信息了。

     

     

    我很佩服微软把操作系统搞得那么复杂,又是注册表,又是安全策略,又是OLE,又是COM……。每次打开regedit.exe时,我根本不敢碰HKEY_CLASSES_ROOT,因为我看着里面那些成千上万个CLSID,我有点晕菜。

     

    1995年以来,10来年过去了。微软推出了多种各式各样的技术。我还记得Visual Studio 6.0中还有两个叫做FoxProJ++的东西,FoxPro来自Foxbase,还有个几年,J++好像就没有几年。ActiveX Control完全是一个失败的技术,而那个叫做VB的编程语言,今天看来,它的确毁了很多很有潜力的程序员。在COM出现的时候,不知道今天还有多少人还记得一个叫MTS的玩意?今天,不知道还有多少人记得有一个叫ODBC的东西?在这种复杂混乱的Windows世界中,是否让你疲于追赶?今天的.NET不知道又有多少技术会随着时间所沉淀?在Windows上面,我们学习了许多的失败技术或是说是过渡技术。而我们的Unix自从上纪70年代以来,就没有多大的变化,而因为Unix应运而生的C语言直到今天依然光彩夺目。我相信这个30多年来久经考验还那么简单的Unix

     

    Unix就是这么简单,各位想在Unix下学开发的朋友,Windows那么复杂的操作系统都过来了,你还会怕这么简单的Unix么?

     

     

    (转载时请注明作者和出处。未经许可,请勿用于商业用途)

    更多文章请访问我的Blog: http://blog.csdn.net/haoel

     

    展开全文
  • Unix&Linux;大学教程

    2020-05-24 23:30:17
    Unix&Linux;大学教程,比较经典的入门书籍。手动给每个章节加了PDF目录。
  • Unix & Linux》大学教程小结

    千次阅读 2015-10-12 22:20:17
    大概在两个月以前我就开始看这本书了,我没有看书的习惯。应该可以说这是第一本我看了这么多的书,这本书内容比较简单,讲的东西都很容易理解。现在我已经看到了第12章,今天忽然想到应该做点小... Unix 简介 && &2.
  • UNIX&LINUX;大学教程.

    2020-07-30 23:32:02
    UNIX&LINUX;大学教程PDF扫描版UNIX&LINUX;大学教程PDF扫描版
  • 在本书中,不仅可以全面学习到Unix和Linux操作系统的工作原理和主要命令,还可以知晓Unix和Linux发展史上的许多奇闻趣事。 另外,本书还解释了622个Unix专业术语,许多术语都给出了其历史来源;书中的示例涵盖了...
  • unix系列系统镜像下载

    万次阅读 2016-10-20 15:19:58
    中国大陆开源镜像站汇总 1.企业贡献:  搜狐开源镜像站:http://mirrors.sohu.com/ 网易开源镜像站:http://mirrors.163.com/  2.大学教学:  北京理工大学: http://mirror.bit.edu.cn (IPv4 only) ...ht
  • Unix发展历史

    千次阅读 2019-02-27 19:49:30
    Unix操作系统的历史漫长而曲折,它的第一个版本是1969年由KenThompson在AT&amp;T贝尔实验室实现的,运行在一台DECPDP-7计算机上。这个系统非常粗糙,与现代Unix相差很远,它只具有操作系统最基本的一些特性。...
  • 作者 |程序员小乐来源 | 程序员小乐(ID:study_tech)00 前言 UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX ...
  • python的datetime和unix时间戳之间相互转换 将python的datetime转换为unix时间戳 import time import datetime dtime = datetime.datetime.now() ans_time = time.mktime(dtime.timetuple()) 将unix时间戳...
  • UE 将DOS格式转换为UNIX格式

    万次阅读 2011-11-14 09:59:19
    将文件另存为Unix格式即可。覆盖原来文件。 主要是回车换行不一样。
  • dos2unix 安装

    万次阅读 2010-12-14 16:39:00
    在redhat上安装dos2unix,操作如下: 1 download Dos2Unix 1.0.0 from http://linux.softpedia.com/progDownload/Dos2Unix-Download-5519.html to local machine;   2解压 tar -zvxf...
  • UNIX修改系统时间

    万次阅读 2008-12-17 14:52:00
    用root 用户在命令行执行命令 date 显示当前系统时间, 修改系统时间 date 1031104501 (10月31日10点45分01年)
  • unix创建文件夹命令

    万次阅读 2009-05-08 16:22:00
    新建文件夹命令:$ mkdir filename 
  • unix_timestamp 时间戳函数用法(hive)

    万次阅读 2017-10-24 18:55:20
    一、unix_timestamp函数用法 1、unix_timestamp() 得到当前时间戳 2、如果参数date满足yyyy-MM-dd HH:mm:ss形式,则可以直接unix_timestamp(string date) 得到参数对应的时间戳 3、如果参数date满足yyyy-MM-dd HH...
  • HIVE中的from_unixtime函数

    万次阅读 2019-01-28 09:53:55
    hive中的from_unixtime()函数,可以把时间戳格式的时间,转化为年月日时分秒格式的时间。 from_unixtime的参数要求为整数,且单位为秒。 如果从业务系统拿到的时间戳格式的时间单位为毫秒,则需要先将它转化为秒,...
  • 最近在做一个关于Spark sql清洗数据的项目,其中需要用到正则表达式及一些函数,在这里简单总结一下unix_timestamp、from_unixtime的用法,仅供参考。 一、unix_timestamp函数用法  1、UNIX_TIMESTAMP() :若无...
1 2 3 4 5 ... 20
收藏数 853,753
精华内容 341,501
关键字:

unix