第1题
计算机由运算器,存储器,控制器,I/O设备组成。
运算器负责根据读入的指令运算读入的数据,存储器存储着数据和指令,控 制器控制着运算器和存储器协调配合运算,I/O时输入和输出设备。
第2题
借鉴网上的:
Linux最早由Linus BenedictTorvalds在1991年开始编写。在不断的有杰出的程序员和开发者加入到GNU组织中后,便造就了今天我们所看到的Linux。 Linux的发行版本大体可以
分为两类,一类是商业公司维护的发行版本,以著名的Redhat(RHEL)为代表;一类是社区组织维护的发行版本,以Debian为代表。
# Redhat,应称为Redhat系列,包括RHEL(Redhat Enterprise Linux,为收费版本)、Fedora Core(由Redhat桌面版本发展而来,免费)、CentOS(RHEL的社区克隆版本,免费)。
Redhat可以说是在国内使用最多的Linux版本,甚至有人将Redhat等同于Linux。这个版本的特点就是使用人数多,资源多,而且网上的许多Linux教程也都以Redhat为例进行讲解。
Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳
定性较差,最好只用于桌面应用。
# Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,也最遵循GNU规范。Debian分为三个分支: stable,testing和unstable。其中,unstable为最
新的测试版本,有相对较多的bug,适合桌面用户。testing的版本都经过测试,相对较为稳定。而stable一般只用于服务器,软件包大都比较过时,但是稳定和安全性都很高。Debian最具特
色的是apt-get/dpkg包管理方式。
#Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以说Ubuntu是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux
桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最
适合做桌面系统的Linux发行版本。
如果你不需要自己进行定制,不想在系统上浪费太多时间,那么你可以根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的区别仅仅是桌面程序的不一样。
#FreeBSD,FreeBSD并不是一个Linux系统,但FreeBSD与Linux支持的硬件环境比较一致,采用的软件也比较类似,用户也有许多重合。所以可以将FreeBSD视为一个Linux版本来比较。
FreeBSD拥有两个分支:stable和current。其中,stable是稳定版,而current则是添加了新技术的测试版。
FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特
点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。
如果你需要的是一个非常非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。
第3题
一切皆文件
单一功能程序
.复杂程序由单一功能程序组成
.文本文件保存配置信息
.尽量避免用户交互(注:尽量不与用户交互,一个程序一旦运行,就不需要用户进行任何操作,如查看IP:ifconfig,日期:date等。)
.提供机制,而不是策略
第4题
在cli模式下,命令提示符#代表当前用户是系统管理员root用户,$代表是普通用户
Linux 命令使用格式
Comand 【选项】【参数】
命令分两类,shell内建命令和外部命令
可以type comand 查看是内建命令或外部命令。
# ifconfig命令
被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
add<地址>:设置网络设备IPv6的ip地址;del<地址>:删除网络设备IP地址; down:关闭指定的网络设备;<hw<硬件地址>:设置网络设备的类型与硬件地址; io_addr:设置网络设备的I/O地址; irq:设置网络设备的IRQ; media<网络媒介类型>:设置网络设备的媒介类型; mem_start<内存地址>:设置网络设备在主内存所占用的起始地址; metric<数目>:指定在计算数据包的转送次数时,所要加上的数目; mtu<字节>:设置网络设备的MTU; netmask<子网掩码>:设置网络设备的子网掩码; tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址; up:启动指定的网络设备; -broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理; -pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能; -promisc:关闭或启动指定网络设备的promiscuous模式; IP地址:指定网络设备的IP地址;网络设备:指定网络设备的名称
#echo
echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用,在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v 与\f相同; \\ 插入\字符; \nnn 插入nnn(八进制)所代表的ASCII字符;
#tty
Linux tty命令用于显示终端机连接标准输入设备的文件名称。
在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty(teletypewriter)指令查询目前使用的终端机的文件名称。
#tty
/dev/tty1
#starx
startx命令用来启动X Window,实际上启动X Window的程序为xinit。
在#输入starx启动GUI
#export
Linux export命令用于设置或显示环境变量。
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。
export[-fnp][变量名称]=[变量设置值]
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
实例
Export MYENY//定义环境变量并赋值
#pwd
Linux pwd命令用于显示工作目录。
执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
实例
#pwd
/root/text //输出结果
#History
history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;-w:将当前历史命令缓冲区命令写入历史命令文件中。
#shutdown
shutdown命令用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作
-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
-f:重新启动时不执行fsck;-F:重新启动时执行-h:将系统关机;-k:只是送出信息给所有用户,但不会实际关机;
-n:不调用init程序进行关机,而由shutdown自己进行;-r:shutdown之后重新启动;
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。
实例shutdown +5 “System willshutdown after 5 minutes”
指定5分钟后关机,同时送出警告信息给登入用户
#poweroff
poweroff命令用来关闭计算机操作系统并且切断系统电源。
#reboot
reboot命令用来重新启动正在运行的Linux操作系统。
-f 强制重启
#hwclock
hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。
hwclock:显示硬件时间
-s,–hctosys
-w,–systohc
#date
date命令是显示或设置系统时间与日期。
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
第5题
Shell 内建命令用 help conmand
外部命令用man conmand
man1: 用户命令
man2: 系统调用
man3:C库调用
man4: 设备文件及特殊文件
man5: 配置文件格式
man6: 游戏
man7: 杂项
man8: 管理类的命令
第6题
FHS:文件层级系统
LSB定义的Linux发行版基础目录名称命名法则及功能规定
/bin,/sbin:系统自身启动和运行时可能会用到的核心二进制程序
/boot:系统引导启动时要加载的静态文件、内核和ramdisk及grub等
/dev:device的简写,所有设备相关文件文件
/etc:大多数应用程序的配置文件集中存放位置
/home:普通用户的家目录的统一存放位置,每个用户的主目录通常默认为/home/USERNAME
/root:管理员root用户的主目录
/lib,/lib64:libraries 库文件的存放位置
/lib/modules/KERNEL_VERSION/:内核模块存放位置
/lost+found:当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
/media和/mnt:外部存储设备的挂载路径
/misc:备用目录
/opt:早起用于安装第三方程序
/proc:伪文件系统,由内核参数映射而来
内核有很多特性可通过内核参数进行配置,内核也有很多信息如统计数据等可通过内核参数进行 输出
/sys:伪文件系统,由内核中硬件相关信息映射而来
内核中与设备配置相关的信息
/selinux:Security Enhanced Linux
/srv:services简写,服务类程序用到的中间数据
/tmp:temporary,临时文件存放位置,
/usr:
/usr/bin,/usr/sbin:系统允许过程中,用户为完成某些操作可能用到的二进制程序
/usr/lib,/usr/lib64
/usr/share:共享文件
/usr/src:sources的简写,程序的源码存放位置
/usr/local:
/usr/local/bin,/usr/local/sbin:第三方程序安装的二进制程序存放位置
/var:various,经常发生变化的文件存放位置