一、计算机的组成及其功能
计算机由运算器,控制器,存储器,输入装置和输出装置五大部件组成计算机,每一部件分别按要求执行特定的基本功能。
- 运算器或称算术逻辑单元(Arithmetical and Logical Unit) 运算器的主要功能是对数据进行各种运算。这些运算除了常规的加、减、乘、除等基本的算术运算之外,还包括能进行“逻辑判断”的逻辑处理能力,即“与”、“或”、“非”这样的基本逻辑运算以及数据的比较、移位等操作。
- 存储器(Memory unit) 存储器的主要功能是存储程序和各种数据信息,并能在计算机运行过程中高速、自动地完成程序或数据的存取。存储器是具有“记忆”功能的设备,它用具有两种稳定状态的物理器件来存储信息。这些器件也称为记忆元件。由于记忆元件只有两种稳定状态,因此在计算机中采用只有两个数码“0”和“1”的二进制来表示数据。记忆元件的两种稳定状态分别表示为“0”和“1”。日常使用的十进制数必须转换成等值的二进制数才能存入存储器中。
- 控制器(Control Unit) 控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。 控制器从存储器中逐条取出指令,分析每条指令规定的是什么操作以及所需数据的存放位置等,然后根据分析的结果向计算机其它部分发出控制信号,统一指挥整个计算机完成指令所规定的操作。因此,计算机自动工作的过程,实际上是自动执行程序的过程,而程序中的每条指令都是由控制器来分析执行的,它是计算机实现“程序控制”的主要部件。 通常把控制器与运算器合称为中央处理器(Central Processing Unit-CPU)。工业生产中总是采用最先进的超大规模集成电路技术来制造中央处理器,即 CPU 芯片。它是计算机的核心部件。
- 输入设备(Input device) 用来向计算机输入各种原始数据和程序的设备叫输入设备。输入设备把各种形式的信息,如数字、文字、图像等转换为数字形式的“编码”,即计算机能够识别的用1和0表示的二进制代码(实际上是电信号),并把它们“输入”(INPUT)到计算机内存储起来。键盘是必备的输入设备、常用的输入设备还有鼠标器、图形输入板、视频摄像机等。
- 输出设备(Output device) 从计算机输出各类数据的设备叫做输出设备。输出设备把计算机加工处理的结果(仍然是数字形式的编码)变换为人或其它设备所能接收和识别的信息形式如文字、数字、图形、声音、电压等。常用的输出设备有显示器、打印机、绘图仪等。
二、Linux发行版
发行版为许多不同的目的而制作, 包括对不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式系统。已经有超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。
- Debian 诞生于1993年8月13日,它的目标是提供一个稳定容错的Linux版本。支持Debian的不是某家公司,而是许多在其改进过程中投入了大量时间的开发人员,这种改进吸取了早期Linux的经验。Debian以其稳定性著称。。作为服务器平台,Debian提供一个稳定的环境。为了保证它的稳定性,开发者不会在其中随意添加新技术,而是通过多次测试之后才选定合适的技术加入。
- MandrakeSoft 是Linux Mandrake的发行商,在1998年由一个推崇Linux的小组创立,它的目标是尽量让工作变得更简单。作为Red Hat Linux的一个分支,Mandrake将自己定位在桌面市场的最佳Linux版本上。Mandrak对桌面用户来说是一个非常不错的选择,它还可作为一款优秀的服务器系统,尤其适合Linux新手使用。
- Ubuntu 是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu基于Debian发行版和unity桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。
- Red Hat Linux 可能这是最著名的Linux版本了,Red Hat Linux已经创造了自己的品牌,越来越多的人听说过它。Red Hat在1994年创业,当时聘用了全世界500多名员工,他们都致力于开放的源代码体系。Red Hat Linux是公共环境中表现上佳的服务器。它拥有自己的公司,能向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。这个版本的Linux也使用最新的内核,还拥有大多数人都需要使用的主体软件包。
- SuSE 总部设在德国的SuSE AG在商界已经奋斗了8年多,它一直致力于创建一个连接数据库的最佳Linux版本。为了实现这一目的,SuSE与Oracle 和IBM合作,以使他们的产品能稳定地工作。SuSE还开发了SuSE Linux eMail Server III,一个非常稳定的电子邮件群组应用。 基于2.4.10内核的SuSE 7.3,在原有版本的基础上提高了易用性。安装过程通过GUI完成,磁盘分区过程也非常简单,但它没有为用户提供更多的控制和选择。
- Linux Mint 是一份基于Ubuntu的发行版,其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件。它与Ubuntu软件仓库兼容。Linux Mint 是一个为pc和X86电脑设计的操作系统。
- Gentoo Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统 ——Portage包管理系统。
- Centos (Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件,CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。
- Fedora Core (自第七版直接更名为Fedora)是众多 Linux 发行版之一。它是一套从Red Hat Linux发展出来的免费Linux系统。Fedora Core 的前身就是Red Hat Linux。Fedora是一个开放的、创新的、前瞻性的操作系统和平台,基于Linux。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了 Red Hat, Inc. 的支持。
三、Linux的哲学思想
1 . 一切皆文件
是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;
2 . 小型,单一用途的程序
一个程序只做一件事,并且做好,这样才能保证了Linux内核的高效运行;
3 . 连接程序,共同完成复杂功能;
对于复杂的功能Linux通过许多简单程序的组合等方式实现,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的;
4 . 避免令人困惑的交互界面;
无论什么问题都可以通过简洁的命令行实现,一切都是简洁明了为基础。并易于以编程的方式实现自动化任务;
5 . 配置数据存储在文本中;
Linux所有的配置文件都存放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可;
四、Linux的命令格式及简单示例
(1)命令通用格式
COMMAND [OPTIONS] [ARGUMENTS]
- COMMAND(命令)
- 命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;Linux遵循的命令格式规范(ELF);
- 命令分为两类:
由shell程序的自带的命令,内建命令(builtin);
独立的可执行程序文件,文件名即命令名,外部命令; - 查看命令类型:
type COMMAND
- OPTIONS(选项)
- 选项指定命令的运行特性;
- 选项有两种表现形式:
短选项:ls -a
ls -l
同一命令同时使用多个短选项,多数可合并ls -al
长选项:ls --help
长选项不能合并
- ARGUMENTS(参数)
- 命令的作用对象;命令对什么生效;
- 有些命令可同时带多个参数,多个之间以空白字符分隔;
(2)基础命令示例
- ifconfig命令
ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
ifconfig [interface] [options] -a: 显示所有网卡配置 -s: 显示网卡的简要信息 up: 启用网卡 down: 禁用网卡 address: 为网卡设置IPv4地址
[[email protected] /]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:6B:12:5F inet addr:192.168.1.135 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe6b:125f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:14 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2455 (2.3 KiB) TX bytes:1608 (1.5 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:720 (720.0 b) TX bytes:720 (720.0 b)
- echo命令
echo会将输入的字符串送往标准输出
echo [OPTION] [STRING] -n:不进行自动换行 -e:使转义符生效 -E:禁用转义符并且当做一般字符(默认)
[[email protected] /]# echo -e "Hello \nWorld" Hello World
- pwd命令
查看“当前工作目录”的完整路径
pwd -P:显示实际路径,而非输出链接(link)路径;
[[email protected] rc.d]# pwd /etc/rc.d
- history命令
history用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
history [OPTIONS] [ARGUMENTS] -c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件中; -r:将历史命令文件中的命令读入当前历史命令缓冲区; -w:将当前历史命令缓冲区命令写入历史命令文件中; -d offset:删除指定命令历史;
- shutdown命令
shutdown用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。
shutdown [OPTIONS] [ARGUMENTS] -c:取消关机指令; -f:重新启动时不执行fsck; -F:重新启动时执行fsck; -h:将系统关机; -k:只是送出信息给所有用户,但不会实际关机; -n:不调用init程序进行关机,而由shutdown自己进行; -r:shutdown之后重新启动; -t<秒数>:送出警告信息和删除信息之间要延迟多少秒; 时间参数:now 、hh:mm 、+m
[[email protected] /]# shutdown -k now [[email protected] /]# Broadcast message from [email protected] (/dev/pts/0) at 17:13 ... The system is going down for maintenance NOW!
- date命令
date是显示或设置系统时间与日期。
date [OPTION] [+FORMAT] %H 小时,24小时制(00~23) %M 分钟(00~59) %r 显示时间,12小时制(hh:mm:ss %p) %s 从1970年1月1日00:00:00到目前经历的秒数 %S 显示秒(00~59) %T 显示时间,24小时制(hh:mm:ss) %X 显示时间的格式(%H:%M:%S) %c 日期和时间(Tue Nov 20 14:12:58 2012) %d 一个月的第几天(01~31) %x,%D 日期(mm/dd/yy) %m 月份(01~12)
[[email protected] /]# date +%D-%T 07/02/17-17:22:40 [[email protected] /]# date +%s 1498987400
- hwclock
hwclock可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。
hwclock [OPTION] -s, --hctosys:以硬件为准,把系统调整为与硬件时间相同; -w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;
五、Linux获取帮助
(1) 获取命令帮助的几种方式
- 内部命令:help COMMAND
- 外部命令:
- 命令自带简单的使用帮助 COMMAND --help
- 使用man手册 man COMMAND
(2)man页面内容及章节分类
- man页里分成几个部分来介绍查询的命令
- NAME:简单的功能性说明
- SYNOPSIS:简单的语法格式
- DESCRIPTION:完整描述
- OPTIONS:所有可用选项
- EXAMPLES:使用示例
- AUTHOR: 作者
- BUGS: 报告程序bug的方式
- SEE ALSO: 参考
- man命令的章节分类
- 1:用户命令;
- 2:系统调用;
- 3:C库调用;
- 4:设备文件及特殊文件;
- 5:文件格式或者配置文件格式;
- 6:游戏使用帮助;
- 7:杂项;
- 8:管理工具及守护进行;
- 9:与kernel有关的文件
六、Linux文件命名规则
- 除了 / 以外,任意字符都合法;
- 文件名严格区分字符大小写;
- 文件名长度不能超过255字符;
- 以 . 开头的为隐藏文件;
- “.”代表当前目录
- “..”代表上一级目录
七、Linux目录结构详解
FHS(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似Windows系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
- /bin:所有用户可用的基本命令程序文件;
- /sbin:供系统管理使用的工具程序;
- /boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;
- /dev:存储特殊文件或设备文件;设备有两种类型:字符设备(线性设备)、块设备(随机设备);
- /etc:系统程序的配置文件,只能为静态;
- /home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录
- /root:管理员的家目录;
- /lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块
- libc.so.*:动态链接的C库;
- ld*:运行时链接器/加载器;
- modules:用于存储内核模块的目录;
- /lib64:64位系统特有的存放64位共享库的路径;
- /media:便携式设备挂载点,cdrom, floppy等;
- /mnt:其它文件系统的临时挂载点;
- /opt:附加应用程序的安装位置;可选路径;
- /srv:当前主机为服务提供的数据;
- /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;
- /usr:全局共享的只读数据路径;
- bin, sbin
- lib, lib64
- include:C程序头文件;
- share:命令手册页和自带文档等架构特有的文件的存储位置
- local:让系统管理员安装本地应用程序;也通常用于安装第三方程序;
- X11R6:X-Window程序的安装位置
- src:程序源码文件的存储位置
- /var:存储常发生变化的数据的目录;
- /proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;因为这个目录下的资料都是在内存当中,所以本身不占任何硬盘空间
- /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;