Linux 入门 Linux发展史及常用命令

Linux背景

发展史

在学习Linux时,你可能要问Linux从哪⾥里来?它是怎么发展的?在这⾥里简要介绍Linux的发展史。要说Linux,还得从UNIX说起。

UNIX发展的历史
  • 1968年,⼀一些来⾃自通⽤用电器公司、⻉贝尔实验室和⿇麻省理⼯工学院的研究⼈人员开发了⼀一个名叫Multics的特殊操作系统。Multics在多任务⽂文件管理和⽤用户连接中综合了许多新概念。
  • 1969-1970年,AT&T的⻉贝尔实验室研究⼈人员Ken Tompson和Dennis Ritchie,在采⽤用很多Multics 特点的基础上开发了UINX系统。它运⾏行在⼩小型机上,满⾜足了系统对科研环境的要求。从产⽣生开 始,UNIX就是⼀一个有价值的、⾼高效的、多⽤用户和多任务的操作系统。
    UNIX从满⾜足个⼈的设计需求开始,逐步成⻓长为由许多不同开发商所⽀支持的标准软件产品。
  • 第⼀一个UNIX版本是免费给许多知名⼤大学的计算机系使⽤用的。
  • 1972年,⻉贝尔实验室开始发放商业版本,并且给不同的⽤用户授权使⽤用这个系统,使⽤用者之⼀一是加州⼤大学伯克莱分校的计算机系。伯克莱给系统增加了许多新的特点,后来成为了标准。
  • 1975年伯克莱由下属部⻔门BSD发⾏行了⾃自⼰己的UNIX版本。UNIX的BSD版本成为AT&T⻉贝尔实验室版本的主要竞争者,⽽而其它的独⽴立开发出的UNIX版本也开始萌⽣生。
  • 1980年微软公司开发了叫做Xenix的UNIX PC版本。AT&T发⾏行了第⼀一个商业版本。名叫System Ⅲ,后来被成为对商⽤用软件产品良好⽀支持的System Ⅴ所替代。
  • 同时UNIX的BSD版本不断发展,在70年代末期,BSD UNIX成为了国防部的⾼高科技研究机构科研项目的基础。其结果,伯克莱发⾏行了⼀一个叫做BSD Release 4.2的有效版本。
  • 它包括了⾼高级的⽂文件管理器和基于TCP/IP⺴⽹网络协议的⺴⽹网络特点。现在TCP/IP被Internet所使⽤用。BSD Release 4.2被许多⼚厂商所采⽤用,例如SUN Microsystem。
  • UNIX不同版本的出现导致了UNIX标准的需要,软件开发商不知道他们的程序运⾏行在哪些版本上⽐比 较合适。
  • 到80年代中期,两个竞争的标准出现了,一个是基于AT&T的UNIX版本,另一个是BSD版本。在今 天的书店⾥里你能发现分别适⽤用于这两个版本的不同的UNIX的书,一些是System V,另⼀些集中在BSD UNIX。AT&T建⽴立了⼀一个叫UNIX系统实验室的新组织,它的作⽤用就是综合UNIX的不同版本,集中开发⼀一 个标准系统。
  • 1991年,UNIX综合实验室综合了System V Release3,SUN OS和Xenix的所有特点,发⾏行了System V Release 4。为了与System V Release 4 竞争,⼀一些其它公司,如IBM和惠普Open Software Foundation(OSF)去产⽣生⾃自⼰己的UNIX标准版本,继⽽而出现了两个标准商业版本OSF版本和System Release 4。
  • 1993年,AT&T把它的UNIX转卖给Novell公司。UNIX系统实验室成为了Novell的UNIX系统⼩小组的
    ⼀一部分。Novell发⾏行了基于System V Release 4的⾃自⼰己的UNIX版本UNIXWare,它可以和Novell公司的Netware系统相联。SUN公司已经把System V Release 4 融进了它的SUN OS,发⾏行了
    Solaris。两个相互竞争的UNIX使⽤用的图形⽤用户界⾯面(⼀一个叫Motif,另⼀一个叫Openlook),已经合并为⼀一个新的⼯工作平台标准,叫做通⽤用平台环境(CDE)。
  • ### Linux发展历史
  • 1991年10⽉月5⽇,赫尔辛基⼤大学的⼀一名研究⽣生Linus Benedict Torvalds在⼀一个Usenet新闻组(comp.os.minix)中宣布他编制出了⼀一种类似UNIX的⼩小操作系统,叫Linux。新的操作系统是受 到另⼀一个UNIX的⼩小操作系统——Minix的启发,该系统是由⼀一名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux
    0.01版本并没有被发布,原因是0.01版本不实⽤用。Linus仅仅在第⼀一个Linux的FTP站点
    (ftp://nic.funet.fi)上提供过这个版本的的源代码。
  • Torvalds于10⽉月5⽇日发布的这个Linux版本被称为0.02版,它能够运⾏行GNU Bourne Again
    Shell(bash)和GNU的C编译程序(gcc)以及为数不多的其它语⾔言。Torvalds绝对没有想到他设想 的⼀一种能够针对⾼高级业余爱好者和⿊黑客们的操作系统已经产⽣生,这就是⼈人们所称的Linux。;
    Linux发布时的版本是0.02,后来⼜又有0.03版,然后⼜又跳到0.10版。因为世界各地越来越多的程序 员都开始开发Linux,它已经达到0.95版。这就意味着正是公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的
  • #### LinuxVS Windows 发展史

Linux 入门 Linux发展史及常用命令_第1张图片

  • 开源

Linux是⼀一种⾃自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托⽡瓦兹在1991年⾸首 次发布,之后,在加上⽤用户空间的应⽤用程序之后,就成为了Linux操作系统。严格来讲,Linux只是 操作系统内核本⾝身,但通常采⽤用“Linux内核”来表达该意思。⽽而Linux则常⽤用来指基于Linux内核的完 整操作系统,它包括GUI组件和许多其他实⽤用⼯工具。
GNU通⽤用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是⼀一个⼲⼴广泛被使⽤用的⾃自由软件许可协议条款,最初由理查德斯托曼为GNU计划⽽而撰写,GPL给予了计算机程序
⾃自由软件的定义, 任何基于GPL软件开发衍⽣生的产品在发布时必须采⽤用GPL许可证⽅方式,且必须公开源代码,
Linux是⾃自由软件和开放源代码软件发展中最著名的例⼦子。只要遵循GNU通⽤用公共许可证,任何个
⼈人和机构都可以⾃自由地使⽤用Linux的所有底层源代码,也可以⾃自由地修改和再发布。随着Linux操作 系统⻜飞速发展,各种集成在Linux上的开源软件和实⽤用⼯工具也得到了应⽤用和普及,因此,Linux也成 为了开源软件的代名词。

  1. Kernel官网
    Kernel官网

  2. 企业应⽤用现状

Linux在服务器领域的发展
随着开源软件在世界范围内影响⼒力⽇日益增强,Linux服务器操作系统在整个服务器操作系统市场格 局中占据了越来越多的市场份额,已经形成了⼤大规模市场应⽤用的局⾯面。并且保持着快速的增⻓长率。 尤其在政府、⾦金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成⻓长性以及国 家相关政策的扶持⼒力度,Linux服务器产品⼀一定能够冲击更⼤大的服务器市场。
据权威部⻔门统计,⺫⽬目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的⾼高度关注,并以强劲的势头成为服务器操作系统领域中的中坚⼒力 量。
Linux在桌⾯面领域的发展
近年来,特别在国内市场,Linux桌⾯面操作系统的发展趋势⾮非常迅猛。国内如中标麒麟Linux、红旗
Linux、深度Linux等系统软件⼚厂商都推出的Linux桌⾯面操作系统,⺫⽬目前已经在政府、企业、OEM等 领域得到了⼲⼴广泛应⽤用。另外SUSE、Ubuntu也相继推出了基于Linux的桌⾯面系统,特别是Ubuntu
Linux,已经积累了⼤大量社区⽤用户。但是,从系统的整体功能、性能来看,Linux桌⾯面系统与
Windows系列相⽐比还有⼀一定的差距,主要表现在系统易⽤用性、系统管理、软硬件兼容性、软件的丰富程度等⽅方⾯面。
Linux在移动嵌⼊入式领域的发展
Linux的低成本、强⼤大的定制功能以及良好的移植性能,使得Linux在嵌⼊入式系统⽅方⾯面也得到⼲⼴广泛应
⽤用,⺫⽬目前Linux以⼲⼴广泛应⽤用于⼿手机、平板电脑、路由器、电视和电⼦子游戏机等领域。在移动设备上
⼲⼴广泛使⽤用的Android操作系统就是创建在Linux内核之上的。⺫⽬目前,Android已经成为全球最流⾏行的智能⼿手机操作系统,据2015年权威部⻔门最新统计,Android操作系统的全球市场份额已达84.6%。 此外,思科在⺴⽹网络防⽕火墙和路由器也使⽤用了定制的Linux,阿⾥里云也开发了⼀一套基于Linux的操作系 统“YunOS”,可⽤用于智能⼿手机、平板电脑和⺴⽹网络电视;常⻅见的数字视频录像机、舞台灯光控制系
等都在逐渐采⽤用定制版本的Linux来实现,⽽而这⼀一切均归功与Linux与开源的⼒力量。
Linux在云计算/⼤大数据领域的发展
互联⺴⽹网产业的迅猛发展,促使云计算、⼤大数据产业的形成并快速发展,云计算、⼤大数据作为⼀一个基于开源软件的平台,Linux占据了核⼼心优势;据Linux基⾦金会的研究,86%的企业已经使⽤用Linux操 作系统进⾏行云计算、⼤大数据平台的构建,⺫⽬目前,Linux已开始取代Unix成为最受⻘青睐的云计算、⼤大数据平台操作系统。
5. 发⾏行版本
Debian
Debian运⾏行起来极其稳定,这使得它⾮非常适合⽤用于服务器。Dbian这款操作系统⽆无疑并不适合新
⼿手⽤用户,⽽而是适合系统管理员和⾼高级⽤用户。

Ubuntu
Ubuntu是Debian的⼀一款衍⽣生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场 的应⽤用,在服务器、云计算、甚⾄至⼀一些运⾏行Ubuntu Linux的移动设备上很常⻅见。Ubuntu是新⼿手⽤用户肯定爱不释⼿手的⼀一款操作系统。

REDhAT
红帽企业级Linux 这是第⼀一款⾯面向商业市场的Linux发⾏行版。它有服务器版本,⽀支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证⼯工程师
(RHCSA/RHCE),对系统管理员进⾏行培训和认证。

CentOS
CentOS是⼀一款企业级Linux发⾏行版,它使⽤用红帽企业级Linux中的免费源代码重新构建⽽而成。这款 重构版完全去掉了注册商标以及Binary程序包⽅方⾯面⼀一个⾮非常细微的变化。有些⼈人不想⽀支付⼀一⼤大笔 钱,⼜又能领略红帽企业级Linux;对他们来说,CentOS值得⼀一试。此外,CentOS的外观和⾏行为似乎与⺟母发⾏行版红帽企业级Linux如出⼀一辙。 CentOS使⽤用YUM来管理软件包。

Fedora
⼩小巧的Fedora适合那些⼈人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是 红帽公司的⼀一个测试平台;产品在成为企业级发⾏行版之前,在该平台上进⾏行开发和测试。Fedora 是⼀一款⾮非常好的发⾏行版,有庞⼤大的⽤用户论坛,软件库中还有为数不少的软件包。

Kali Linux
Kali Linux是Debian的⼀一款衍⽣生版。Kali旨在⽤用于渗透测试。Kali的前⾝身是Backtrack。⽤用于Debian
的所有Binary软件包都可以安装到Kali Linux上,⽽而Kali的魅⼒力或威⼒力就来⾃自于此。此外,⽀支持
Debian的⽤用户论坛为Kali加分不少。Kali随带许多的渗透测试⼯工具,⽆无论是Wifi、数据库还是其他任何⼯工具,都设计成⽴立⻢马可以使⽤用。Kali使⽤用APT来管理软件包。
毫⽆无疑问,Kali Linux是⼀一款渗透测试⼯工具,或者是⽂明⿊黑客(我不想谈论恶意⿊黑客)⻘青睐的操作系统。


Linux常用命令

  • ls 显示文件或目录

-l 列出文件详细信息l(list)
-a 列出当前目录下所有文件及目录,包括隐藏的a(all)

mkdir 创建目录
cd 切换目录
touch 创建空文件
echo 创建带有内容的文件。
cat 查看文件内容
cp 拷贝
mv 移动或重命名
rm 删除文件
-r 递归删除,可删除子目录及文件
-f 强制删除

  • df 命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。

    主要参数:
    -s:对每个Names参数只给出占用的数据块总数。
    -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
    -k:以1024字节为单位列出磁盘空间使用情况。
    -x:跳过在不同文件系统上的目录不予统计。
    -l:计算所有的文件大小,对硬链接文件则计算多次。
    -i:显示inode信息而非块使用量。
    -h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB。
    -P:使用POSIX输出格式。
    -T:显示文件系统类型。

  • du 作用是磁盘空间使用情况,功能是逐级进入指定目录的每一个子目录并显示该
    目录占用文件系统数据块的情况,如果没有指定目录,则对当前的目录进行统计。

    主要参数:
    a:显示全部目录和其次目录下的每个档案所占的磁盘空间
    s:只显示各档案大小的总合
    b:大小用bytes来表示
    x:跳过在不同文件系统上的目录不予统计
    a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数
    find 在文件系统中搜索某文件
    wc 统计文本中行数、字数、字符数
    grep 在文本文件中查找某个字符串
    rmdir 删除空目录
    tree 树形结构显示目录,需要安装tree包
    pwd 显示当前目录
    ln 创建链接文件
    more、less 分页显示文本文件内容
    head、tail 显示文件头、尾内容
    ctrl+alt+F1 命令行全屏模式

  • top 基本格式df [options],用来显示执行中的程序进程,使用权限是所有用户

    主要参数:
    d:指定更新的间隔,以秒计算。
    q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
    c:显示进程完整的路径与名称。
    S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
    s:安全模式。
    i:不显示任何闲置(Idle)或无用(Zombie)的行程。
    n:显示更新的次数,完成后将会退出top。
    p<进程号>:监控指定进程:

  • free 格式free [-b|-k|-m] [-o] [-s delay] [-t] [-V],free命令用来显示>内存的使用情况,使用权限是所有用户。

    主要参数:
    -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
    -s delay:显示每隔多少秒数来显示一次内存使用情况。
    -t:显示内存总和列。
    -o:不显示缓冲区调节列。

  • su 格式 su [选项]… [-] [USER [ARG]…]
    作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。
    主要参数
    -f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
    -l , –login:加了这个参数之后,就好像是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。
    -m, -p ,–preserve-environment:执行su时不改变环境变数。
    -c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。

sudo(sudo -, sudo -s)

命令的配置在/etc/sudoers文件中。当用户使用sudo时,需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。

sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果需要每天以超级用户的身份做一些日常工作,经常执行一些固定的几个只有超级用户身份才能执行的命令,那么用sudo是非常适合的。

pstack 命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。(man,可以爷们一下)

  • 系统管理命令

    stat 显示指定文件的详细信息,比ls更详细
    who 显示在线登陆用户
    whoami 显示当前操作用户
    hostname 显示主机名
    uname 显示系统信息
    top 动态显示当前耗费资源最多进程信息
    ps 显示瞬间进程状态 ps -aux
    ifconfig 查看网络情况
    ping 测试网络连通
    netstat 显示网络状态信息
    man 命令不会用了,找男人? 如:man ls
    clear 清屏
    alias 对命令重命名 如:alias showmeit=”ps -aux” ,另外解除使用unaliax showmeit
    kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
    关机/重启机器 shutdown

    • r 关机重启
      h 关机不重启
      now 立刻关机
      halt 关机
      reboot 重启
  • 打包压缩相关命令

    gzip:
    bzip2:
    tar: 打包压缩
    -c 归档文件
    -x 压缩文件
    -z gzip压缩文件
    -j bzip2压缩文件
    -v 显示压缩或解压缩过程 v(view)
    -f 使用档名
    例:
    tar -cvf /home/abc.tar /home/abc 只打包,不压缩
    tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
    tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
    当然,如果想解压缩,就直接替换上面的命令tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。

  • Linux管道

将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。

例:grep -r “close” /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。

  • Linux软件包管理

    dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。

    比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。
    sudo dpkg -i tree_1.5.3-1_i386.deb 安装软件
    sudo dpkg -r tree 卸载软件
    注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等;
    APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。
    依然以tree为例
    sudo apt-get install tree 安装tree
    sudo apt-get remove tree 卸载tree
    sudo apt-get update 更新软件
    sudo apt-get upgrade
    将.rpm文件转为.deb文件
    .rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。
    sudo alien abc.rpm

  • vim使用

    vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
    命令模式下:
    :q 退出
    :q! 强制退出
    :wq 保存并退出
    :set number 显示行号
    :set nonumber 隐藏行号
    /apache 在文档中查找apache 按n跳到下一个,shift+n上一个
    yyp 复制光标所在行,并粘贴
    h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

  • 用户及用户组管理

    /etc/passwd 存储用户账号
    /etc/group 存储组账号
    /etc/shadow 存储用户账号的密码
    /etc/gshadow 存储用户组账号的密码

adduser | useradd 创建用户命令:

userdel 用户删除命令

两个用户创建命令之间的区别
adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。

groupadd 添加组名
groupdel 删除组名
passwd root 给root设置密码
su root
su – root
/etc/profile 系统环境变量
bash_profile 用户环境变量
.bashrc 用户环境变量
su user 切换用户,加载配置文件.bashrc
su – user 切换用户,加载配置文件/etc/profile ,加载bash_profile

更改文件的用户及用户组
sudo chown [-R] owner[:group] {File|Directory}

例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop
要想切换此文件所属的用户及组。可以使用命令。
sudo chown root:root jdk-7u21-linux-i586.tar.gz

你可能感兴趣的:(linux)