Linux/GNU

Linux/GNU

Linux∽Unix还是≌Unix???

Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源 代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在 前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型。

Linux 的源头要追溯到最古老的UNIX。1969年,Bell实验室的Ken Thompson开始利用一台闲置的 PDP-7计算机开发了一种多用户,多任务操作系统。很快,Dennis Richie加入了这个项目,在他们共同努力下诞生了最早的UNIX。Richie受一个更早的项目--MULTICS的启发,将此操作系统命名为 Unix。早期UNIX是用汇编语言编写的,但其第三个版本用一种崭新的编程语言C重新设计了。C是Richie设计出来并用于编写操作系统的程序语言。 通过这次重新编写,Unix得以移植到更为强大的 DEC PDP-11/45与11/70计算机上运行。后来发生的一切,正如他们所说,已经成为历史。Unix从实验室走出来并成为了操作系统的主流,现在几乎每 个主要的计算机厂商都有其自有版本的Unix.

Linux起源于一个学生的简单需求。Linus Torvalds,Linux的作者与主要维护者,在其上大学时所买得起的唯一软件是Minix. Minix是一个类似Unix,被广泛用来辅助教学的简单操作系统。Linus 对Minix不是很满意,于是决定自己编写软件。他以学生时代熟悉的Unix作为原型, 在一台Intel 386 PC上开始了他的工作。他的进展很快,受工作成绩的鼓舞,他将这项成果通过互连网与其他同学共享,主要用于学术领域。有人看到了这个软件并开始分发。每当 出现新问题时,有人会立刻找到解决办法并加入其中,很快的, Linux成为了一个操作系统。值得注意的是Linux并没有包括Unix源码。它是按照公开的POSIX标准重新编写的。Linux大量使用了由麻省剑 桥免费软件基金的GNU软件,同时Linux自身也是用它们构造而成。

另外两大区别:

1) UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.

2) UNIX是商业软件,而Linux是自由软件,免费、公开源代码的.

UNIX(5万美圆)而Linux免费

[历史]

Unix的历史久于linux. Linux的思想源于Unix

[产品]

unix和linux都是操作系统的名称.但unix这四个字母除了是操作系统名称外,还作为商标归SCO所有.

Linux商业化的有RedHat Linux 、SuSe Linux、slakeware Linux、国内的红旗等,还有Turbo Linux.

Unix主要有Sun 的Solaris、IBM 的AIX, HP的HP-UX,以及x86平台的的SCO Unix/Unixware

[其他区别]

linux的核心是免费的,自由使用的,核心源代码是开放的.

而unix的核心并不公开

在对硬件的要求上,linux比unix要低,没有unix那么苛刻.在安装上linux比unix容易掌握.

在使用上,linux相对没有unix那么复杂.

Unix多数是硬件厂商针对自己的硬件平台的操作系统,主要与CPU等有关,如Sun 的Solaris作为商用,定位在其使用SPARC/SPARCII的CPU的工作站及服务器上,当然Solaris也有x86的版本,而Linux也有其于RISC的版本。

但确切的讲,拿RISC上的Unix与x86上的Linux进行比较不太合适。

至于价格,个人使用的Linux基本上算是免费的,不同的Linux发行厂商针对企业级应用在基本的系统上有些优化,如RedHat的Enterprise产品,这些产品包括支持服务是比较贵的。

像IBM/HP/SUN的Unix,因为主要是针对其硬件平台,所以操作系统通常在设备价格中。(没有人单独去买一个Unix操作系统的)

在性能上,linux没有unix那么全面,但基本上对个人

用户和小型应用来说是绰绰有余.

通常情况下,如果你有机会使用到Unix环境,比如银行、电信部门,那一般都是固定机型的Unix。比如电信里SUN的居多,民航里HP的居多,银行里IBM的居多。学习中,不同的Unix命令集有些不同,要注意。

至于学习,我看还是linux比较好学一点,而且现在喜欢和

鼓捣linux的人也越来越多,各种有关linux的资料

也很多.如果是自己想学习,那Linux或是BSD系统是不错的选择。一台x86的机器就可以。

应用上,除非是大型网站,一般企业或个人,使用Linux即可.

UNIX是一个功能强大、性能全面的多用户、多任务操作系统,可以应用从巨型计算机到普通PC机等多种不同的平台上,是应用面最广、影响力最大的操作系统。

Linux是一种外观和性能与UNIX相同或更好的操作系统,但,Linux不源于 任何版本的UNIX的源代码,并不是UNIX,而是一个类似于UNIX的产品。Linux产品成功的模仿了UNIX系统和功能,具体讲Linux是一套兼 容于System V以及BSD UNIX的操作系统,对于System V来说,目前把软件程序源代码拿到Linux底下重新编译之后就可以运行,而对于BSD UNIX来说它的可执行文件可以直接在Linux环境下运行。

一般来说,Linux是一套遵从POSIX(可移植操作系统环境)规范的一个操作 系统,它能够在普通PC计算机上实现全部的UNIX特性,具有多任务、多用户的能力。Linux受到广大计算机爱好者的喜爱的另一个主要原因是,它具有 UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux中获益。

在网络管理能力和安全方面,使用过Linux的人都承认Linux与UNIX很相似。UNIX系统一直被用做高端应用或服务器系统,因此拥有一套完善的网络管理机制和规则, Linux沿用了这些出色的规则,使网络的可配置能力很强,为系统管理提供了极大的灵活性。

RedHat Fedora Core 5自动配置脚本

#/bin/bash
#RedHat Fedora Core 5自动配置脚本,添加多媒体格式的支持,优化字体,自动安装显卡驱动,安装常用软件。
#创建日期:2006.8.2
#创建人:hillwood
#版本:1.0.2
#2006.7.22第一次发布,8月1日1.0.1版修正bug,8月2日1.0.2版修正bug
echo "开始导入yum仓库"
cd /etc/yum.repos.d
wget http://linux-vbird.3322.org/FC5/atrpms.repo
wget http://linux-vbird.3322.org/FC5/dries.repo
wget http://linux-vbird.3322.org/FC5/jpackage.repo
wget http://linux-vbird.3322.org/FC5/kde-redhat.repo
wget http://linux-vbird.3322.org/FC5/newrpms.repo
wget http://linux-vbird.3322.org/FC5/flash.repo
wget http://gstreamer.freedesktop.org/download/gstreamer-0.10-deps.repo
wget http://gstreamer.freedesktop.org/download/gstreamer-0.10-gst.repo
wget http://gstreamer.freedesktop.org/download/gstreamer-0.10-apps.repo
wget http://thomas.apestaart.org/pkg/thomas.pubkey
wget http://thomas.apestaart.org/pkg/thomas.fingerprint
rpm --import http://freshrpms.net/packages/RPM-GPG-KEY.txt
rpm --import http://dries.ulyssis.org/rpm/RPM-GPG-KEY.dries.txt
rpm --import http://newrpms.sunsite.dk/gpg-pubkey-newrpms.txt
rpm --import /usr/share/doc/fedora-release-*/*GPG-KEY*
gpg --with-fingerprint thomas.pubkey | head -n 3 | diff - thomas.fingerprint
gpg --keyserver pgp.mit.edu --recv-keys 55f3aa6f
gpg --list-keys | grep Stichele
gpg --fingerprint 55f3aa6f | head -n 3 > thomas.fingerprint.tmp
diff thomas.fingerprint.tmp thomas.fingerprint
rpm --import thomas.pubkey
echo "开始安装gstreamer解码器,完成后你可以使用RhythmBox播放mp3、wma和aac等格式的音乐了"
yum install gstreamer-universe
yum -y install ffmpeg
yum -y install mjpegtools
echo "gstreamer解码器安装完成,开始安装mplayer"
yum -y install mplayer-gui
yum -y install mplayerplug-in
wget http://packman.iu-bremen.de/suse/10.1/i586/w32codec-all-20060611-0.pm.0.i586.rpm
rpm -ivh w32codec-all-20060611-0.pm.0.i586.rpm
rm -rf w32codec-all-20060611-0.pm.0.i586.rpm
echo "mplayer安装完成,开始安装方正宋体"
cd /usr/share/fonts/chinese/TrueType
wget http://linux-vbird.3322.org/FC5/FZSongTi.ttf
echo "方正宋体安装完成,开始安装可选软件"
echo "你要安装nvidia显卡驱动吗?是请输入y,否请输入n"
read yn
if [ "$yn" = "y" ] || [ "$yn" = "Y" ]; then
echo "开始安装nvidia显卡驱动"
yum install xorg-x11-drv-nvidia kmod-nvidia
echo "安装结束,请修改/etc/X11/xorg.conf文件并重启电脑应用之"

else
echo "安装被取消"
fi
echo "你要安装ATI显卡驱动吗?是请输入y,否请输入n"
read yn
if [ "$yn" = "y" ] || [ "$yn" = "Y" ]; then
echo "开始安装ATI显卡驱动"
yum -y install xorg-x11-drv-fglrx kmod-fglrx
echo "安装结束,请修改/etc/X11/xorg.conf文件并重启电脑应用之"

else
echo "安装被取消"
fi
echo "你要安装Audacious音乐播放器吗?是请输入y,否请输入n”
read yn
if [ "$yn" = "y" ] || [ "$yn" = "Y" ]; then
echo "开始安装Audacious”
yum -y install audacious
echo "安装完成”
else
echo "安装被取消"
fi
echo "你要安装amaroK音乐播放器吗?是请输入y,否请输入n”
read yn
if [ "$yn" = "y" ] || [ "$yn" = "Y" ]; then
echo "开始安装amaroK"
yum -y install amarok
echo "安装完成"
else
echo "安装被取消"
fi
echo "你要安装Realplayer 10吗?是请输入y,否请输入n"
read yn
if [ "$yn" = "y" ] || [ "$yn" = "Y" ]; then
echo "开始安装Realplayer 10"
cd /root
wget http://software-dl.real.com/22c6cf0036c94c520d05/unix/RealPlayer10GOLD.rpm
yum -y install compat-libstdc++-33
rpm -ivh RealPlayer10GOLD.rpm
rm -rf RealPlayer10GOLD.rpm
echo "安装完成"
else
echo "安装被取消"
fi
echo "你要安装Totem-xine吗?Totem-xine可以支持更多的格式,是请输入y,否请输入n"
read yn
if [ "$yn" = "y" ] || [ "$yn" = "Y" ]; then
echo "开始安装totem-xine"
yum -y install totem-xine
echo "安装完成"
else
echo "安装被取消"
fi
echo "安装全部完成"

Linux系统管理员秘技:用快捷命令一招制胜

Linux系统管理员秘技:用快捷命令一招制胜

Linux的命令行方式有着强大的功能,对于熟练的Linux系统管理员来说,往往只需要通过各种技巧,组合构成一条复杂的命令,从而完成用户任务。
  
  那么一条复杂的Linux命令怎样构成呢?下面来介绍几个技巧。
  
  利用输入/输出重定向
  在Linux命令行模式中,如果命令所需的输出不是来自键盘,而是来自指定的文件,这就是输入重定向。同理,命令的输出也可以不显示在屏幕上,而是写入到指定文件中,这就是输出重定向。
  
  接下来看看标准输入/输出重定向在构造一条Linux命令中的实际应用。
  
  1.输入重定向和输出重定向
  # wc home.txt
  
  第一条命令将文件aa.txt作为wc命令的输入,统计出aa.txt的行数、单词数和字符数。第二条命令将ls命令的输出保存在一个名为home.txt的文件中。如果>符号后边的文件已存在,那么这个文件将被重写。
  
  2.同时使用输入和输出重定向
  # iconv -f gb18030 -t utf-8 new-aa.txt
  
  这条命令里同时用到了输入重定向(new-aa.txt)。aa.txt实际是一个gb18030编码的文件,而new-aa.txt则是将aa.txt的内容转换成utf-8格式的新文件。
  
  利用管道
  利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。
  
  1.利用一个管道
  # rpm -qa|grep licq
  
  这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有licq字符的RPM包来。
  4.利用多个管道
  
  # cat /etc/passwd | grep /bin/bash | wc -l
  
  
  这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin/bash”的所有行;第二个管道将grep的输入送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。
  
  利用命令替换
  在Linux命令行模式下,当遇到一对“`” (上分割符)时,将首先执行“`”中间包含的命令,然后将其输出结果作为参数代入命令行中,这就是命令替换了。它类似于输入输出的重定向功能,但区别在于命令替换是将一个命令的输出作为另外一个命令的参数。下面来看它的实际应用。
  
  1.使用命令替换
  # touch `date +%Y%m%d%k%M%S`.txt
  
  该命令使用了一次命令替换,date +%Y%m%d%k%M%S命令将首先执行,它将按指定格式输出当前的时间。然后,这个时间将被作为touch命令的参数,其结果是建立了一个以当前时间为文件名的文件。
  
  2.使用命令替换
  # kill `/sbin/pidof smbd`
  
  该命令将杀掉sshd的所有进程。这里用pidof这个命令给出进程号,因为kill是针对进程号进行操作的。两者通过命令替换,实现了只用一条命令就杀掉sshd所有进程的功能。
  
  综合应用
  在理解和熟悉了前面的几个技巧后,将它们综合运用起来就是较高的技巧了。同时,一些常用的、且本身用法就比较复杂的Linux命令一定要熟练掌握。在构造Linux命令中常常用到的一些基础的、重要的命令有grep、tr、sed、awk、find、cat和echo等,下面来看一些综合应用的例子。
  
  1.
  
  # man ls | col -b > ls.man.txt
  
  这条命令同时运用了输出重定向和管道两种技巧,作用是将ls的帮助信息转成一个可以直接阅读的文本文件。
  
  2.
  
  # kill -9 `ps -ef | grep smbd | tr -s ' ' | awk -F' ' '{print $2}'`
  
  这个例子的功能和上面的功能是一样的,不过它不依赖pidof命令,使用的是多数Unix类系统中都有的命令,适用于更多的系统环境。但是它看起来更复杂一些,使用了三个管道和一次命令替换,另外使用了grep、tr和awk三个与字符操作相关的命令。
  
  从前面的介绍可以看出,通过几种技巧的组合,Linux命令可以完成复杂的功能。除此之外,还可以将这些命令组织到一个脚本中来,加上函数、变量、判断和循环等功能,再加入一些编程思想,就是功能更强大的Shell脚本了。