一、简史
Linux是一套自由加开放源代码的类Unix操作系统,由就读于芬兰赫尔辛基大学的林纳斯(linus)和一些网友的帮助一起共同开发完成的。
Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱: UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet 网络。Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统20世纪60年代,MIT开发分时操作系统(Compatible TIme-Sharing System),支持30台终端访问主机;
~主机负责运算,而终端负责输入输出;
1965年,Bell实验室、MIT、GE(通用电气公司)准备开发Multics系统,为了同时支持300个终端访问主机,但是1969年失败了;
~刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过;
~Multics:Multiplexed Information and Computing Service
1969年,Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型)
~因为汇编语言对于硬件的依赖性,因此只能针对特定硬件;
~只是为了移植一款“太空旅游”的游戏;
1973年,Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核
~将B语言改成C语言,由此产生了C语言之父;
~90%的代码是C语言写的,10%的代码用汇编写的,因此移植时只要修改那10%的代码即可;
1977年,Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution)
~Bill Joy是Sun公司的创始人;
1979年,Unix发布System V,用于个人计算机;
1984年,因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学;
1984年,Stallman开始GNU(GNU's Not Unix)项目,创办FSF(Free Software Foundation)基金会;
~产品:GCC、Emacs、Bash Shell、GLIBC;
~倡导“自由软件”;
~GNU的软件缺乏一个开放的平台运行,只能在Unix上运行;
~自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着GPL的版权;
~自由软件是可以卖的,但是不能只卖软件,而是卖服务、手册等;
1985年,为了避免GNU开发的自由软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明;
1988年,MIT为了开发GUI,成立了XFree86的组织;
1991年,芬兰赫尔辛基大学的研究生Linus Torvalds基于gcc、bash开发了针对386机器的Lniux内核;
1994年,Torvalds发布Linux-v1.0;
1996年,Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅;
二、Linux之父
林纳斯·托瓦兹(Linus Benedict Torvalds),著名的电脑程序员、黑客。LINUX内核的发明人及该计划的合作者。托瓦兹利用个人时间及器材创造出了这套当今全球最流行的操作系统(作业系统)内核之一。
三、Linux标志的来历
因为Torvalds在小时候被企鹅咬过,因此印象非常深刻;
四、Linux的优点和缺点
优点:
1、真正开放的操作系统
Linux的最大卖点就是它所给与客户的选择性。从硬件到支持再到Linux的发行版,有很多的选择。可以在一个价值200美元的旧PC机上运行Linux系统,也可以将它作为一个LPAR(罗辑分区)运行在价值数百万美元的p595 IBM p系列服务器上(你需要在RHEL4 或 SLES9之间作出选择),甚至能够在IBM主机上运行Linux系统。使用Linux不会与硬件分销商发生冲突,它是一个真正的开放系统。
2、漏洞修补和安全补丁
使用Linux后,供应商的最新漏洞修补或安全补丁来修复你操作系统(OS)漏洞,你的等待时间只是几天甚至是几个小时。开源社区将会以非常快的速度来传递无休止的开发周期,这在过去只能以传统渠道发布。
3、不断增加的资源
如今,每一个主要的ISV都会推出一个Linux软件版本,Linux的市场份额正在不断增长,人们也越来越需要它。与此同时,很多管理者都进行Linux培训,而且越来越多丰富的公共信息也会很容易得到全面帮助公司转换到Linux操作系统。
二、缺点:
1、可扩展性
随着2.6内核的出现,可扩展性已经不再像原来那样重要,但是Linux一直都没有像Unix那样的扩展性。一般来说,企业们都要求要有最大的性能,可靠性和可扩展性,Unix一直是最佳的选择。Unix系统的高可用性也比Linux操作系统更加成熟。
2、硬件集成/支持的缺乏
尽管很多公司认为这一点是一个附加物,但是,财富500强公司通常都更喜欢来自硬件支持的更舒适的性能以及硬件与操作系统之间更加紧密地集成。我们都知道如果你的硬件供应商与你的操作系统软件供应商不同会发生什么或者受到什么职责。驱动支持是硬件供应商带来的,但这对于Linux系统来说,一直是一个挑战。
3、洞察力
一些试图劝说CIO使用Linux服务器取代Unix的人通常都会理解这个问题。Linux很不幸在很多方面都是存在风险的,并没有为企业准备好。许多CIO们都有自己的一套方法,他们并没有准备采用有风险的解决方案,即使是一个我们大多数人认为没有风险的事物。尽管对Linux的这种看法在过去的几年已经发生了很大的变化,但是,一些大型公司仍有这种顾虑。
五、Linux内核及发行版
1、Linux内核版本
内核( 核版本又分为 稳定版 和 开发版,两种版本是相互关联,相互循环;
稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些 bug 或加入一些新的驱动程序;
开发版:由于要试验各种解决方案,所以变化很快;
2、Linux发行版本
Linux 发行版(也被叫做 GNU/Linux 发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件;
Linux的关键
六、Linux的重要人物
七、Linux的命令及操作
shutdown -t 秒数 关机-r shutdown之后重启 -h 系统关闭
重启 reboot -i 在重新开机之前关闭所有网络界面 -n 重新启动之前检查是否有末结束的程序
pwd 查看当前所在文件夹
ls 查看当前文件夹下的内容 -a 显示目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合-l以人性化的方式显示文件大小
cd 切换到当前用户目录的主目录(/home/用户目录)
~ 切换到当前用户目录的主目录(/home/用户目录)
. 保持在当前目录不变
.. 切换到上级目录
- 可以在两次工作目录之间切换
touch 如果文件不在则新建文件
mkdir 创建目录 -p 可以递归创建目录
rm 删除指定文件 -f 强制删除文件,忽略不存在的文件,无需提示
-r 递归的删除目录下的内容,删除文件夹时候必须使用此参数
clear 清除屏幕
man 空格键 显示手册页的下一屏 Enter 一次滚动手册页的一行
b 回滚一屏 f 前滚一屏 q 退出 /word 查询
* 代表任意个数字 ? 代表任意一个字符
【】 表示可以匹配字符组中的任意一个
【abc】 匹配abc中任何一个
【a-f】 匹配a-f范围中任意一个字符
ls te* 查找以te开头的文件
ls *html 查找结尾为html的文件
ls ?.c 只找第一个字符任意,后缀为.c
ls a.? 只找只有3个字符,前两个字符为a,最后一个字符任意的文件夹
ls [a-f]* 找到从a到f范围内的任意一个字符开头的文件
ls a-f 查找文件名为a-f的文件,当“-”处于括号之外失去通配符作用
tree 以树状图列出目录结构
cp 复制文件、目录 -a 该选项通常在复制目录的时候使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性
-f 已经存在的目标文件而不提示(强制覆盖)
-i 交互式复制,在覆盖目标文件之前给出提示要求用户确认
-r 交互式复制,在覆盖目标文件之前给出提示要求用户确认
-v 显示拷贝进度
mv 移动文件、目录 -f 禁止交互式操作,如果有覆盖也不给出任何提示
-i 确认交互方式操作,如果mv操作将导致对已存在的目标文件覆盖,系统会询问是否重写,要求用户回答以避免覆盖
-v 显示移动进度
重定向 > 表示输出,会覆盖文件原有的内容
>>表示追加,会将内容追加已有文件的末尾
ln 建立连接文件 ln 源文件 链接文件 硬链接
ln -s 源文件 链接文件 软连接
文件搜索grep -v 显示不包含匹配文本的所有行(相当于求反)
-n 显示匹配行及行号
-i 忽略大小写
归档管理 tar-c 生成档案文件,创建打包文件
-v 列出归档链接的详细过程,显示进度
-f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后面
-t 列出档案中包含的文件 -x 解开档案
gzip 文件压缩解压 -d解压 -r 压缩所有子目录
管道 举例:ls -lha | grep 123 说明:就是把前一个命令的结果当成后一个命令的输入。结合本例就是先显示所有的文件,然后再用grep命令在ls的结果中查找包含123的文件。
bzip2 压缩用法 tar -jcvf 压缩文件包 文件 解压用法 tar -jxvf 压缩包包名
which 查看命令位置