第一周 计算机组成及Linux基础入门
摘要
1、描述计算机组成及其功能。
2、描述罗列Linux的发行版,并描述不同发行版之间的联系和区别。
3、描述Linux的哲学思想,并按照自己的理解对其进行解释。
4、说明Linux系统上命令的使用格式,详细介绍ifconfig、echo、tty、startx、export、pwd、history、
shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例说明阐述。
5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分。
6、请罗列Linux发行版的基础目录名称命名法则及功能规定。
一、计算机的组成及其功能
计算机概念:
电子计算机,也叫做电脑(computer),是一种用于高速计算的电子计算机器,通过计算机,可以实现计算、存储等功能电子计算机,也叫做电脑(computer)。
计算机组成结构:
计算机一般是由控制器、运算器、存储器、输入设备、输出设备 这五个部分组成。
控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合你为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。
输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。
操作系统的功能:
驱动程序
进程管理
安全
网络功能
内存管理
文件系统
......
二、Linux发行版简介
发行版 | 特点 |
---|---|
Ubuntu | 安装简单,默认采用的GNOME桌面系统,并且Ubuntu采用自行加强的内核(kernel),安全性方面更上一层楼。并且,Ubuntu默认不能直接root登陆,必须从第一个创建的用户通过su或sudo来获取root权限。Ubuntu 的版本周期为六个月,弥补了Debian 更新缓慢的不足。而且具有人 气颇高的论坛提供优秀的资源和技术支持,固定的版本更新周期和技术支持,适于新手使用。 |
openSUSE | SUSE 是Novell 公司的著名Linux 发行版,自主开发的专业,易用的YaST 软件包管理系也大受好评。SUSE 是一个非常专业、优秀的发行版,一向以华丽的用户界面著称。使用方便,也是当前最流行的版本之一,适于新手使用。 |
Debian | Debian 是迄今为止,最遵循GNU 规范的Linux 系统。dpkg 是Debian 系列特有的软件包管理工具,它被誉为所有Linux 软件包管理工具(比如RPM ) 最强大的!配合apt-get ,在Debian 上安装、升级、删除和管理软件变得异常容易。Debian 具有优秀的网络和社区资源,强大的apt- get ,许多发行版都是基于Debian 的,最有影响力的发行版之一。不过Debian 安装相对不易,stable 分支的软件极度过时,不适于新手使用。 |
Redhat | 应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用 |
参考文档:linux各个发行版的区别
三、Linux的哲学思想
1、一切皆文件
把几乎所有资源统一抽象为文件形式;包括硬件设备,通信接口等。
2、由众多功能单一的程序组成
一个程序只做一件事,并做好。
组合小程序完成复杂任务。
3、尽量避免和用户交互
目标:易于以编程的方式实现自动化任务
4、使用文本文件保存配置信息:
四、Linux系统上命令的使用格式
基础命令格式:
localhost ~]#COMMAND [OPTIONS] [ARGUMENTS]
命令 选项 参数
选项:用于启动或者关闭命令的某个或某些功能
短选项:-c -a等多个短选项可以合并使用
长选项:由两个连字符和一些大小写字母组合的单词构成,如--word 或者--long 等
参数:命令的作用对象(向命令提供数据),命令的参数可以有一个或者多个发起一命令:
请求内核将某个二进制程序运行为一个进程;
程序 --> 进程
静态 --> 动态(有生命周期)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;
多数系统程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
普通命令:/bin, /usr/bin, /usr/local/bin
管理命令:/sbin, /usr/sbin, /usr/local/sbin
共享库:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
32bits的库:/lib, /usr/lib, /usr/local/lib
64bits的库:/lib64, /usr/lib64, /usr/local/lib64
注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件
命令必须遵循特定格式规范:exe, msi, ELF(Linux)
~]# file /bin/ls
命令分为两类:
由shell程序的自带的命令:内置命令(builtin)
独立的可执行程序文件,文件名即命令名:外部命令
shell程序是独特的程序,负责解析用户提供的命令;
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查找次序:自左而右;
查看命令类型:
type COMMAND
OPTIONS:
指定命令的运行特性;
选项有两种表现形式:
短选项:-C, 例如-l, -d
注意:有些命令的选项没有-;
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
长选项:--word, 例如--help, --human-readable
注意:长选项不能合并;
注意:有些选项可以带参数,此称为选项参数;
终端介绍:
1、物理终端:我们将显示器、键盘鼠标直接连接在主机上的接口,这样的终端称为物理终端,即本机自带,我们也称为物理控制台console表示/dev/console
2、虚拟终端:系统会提供用户6个虚拟终端,这些虚拟终端是附加在物理终端上的,用软件方式虚拟实现的终端console默认启用6个虚拟终端,可以通过快捷键进行切换,切换方式为:Ctrl-Alt-F[1-6],表示:/dev/tty#
3、图形终端:附加在物理终端上,,用软件方式虚拟实现的功能,但是额外会提供煮面环境,切换方式:Ctrl-Alt-F7
4、伪终端:图形界面下打开的命令行接口,还有基于ssh协议或telnet协议等远程打开的命令行界面,表示:/dev/pts/# 。查看当前的终端设备命令:tty COMMAND
交互式程序
GUI:图形化界面,基于X协议实现的窗口管理器
Linux桌面系统是由:
GNOME,KDE,XFCE
CLI:命令行界面。对应的叫shell程序,用户需要用过shell实现与系统的交互
shell程序版本:
sh,csh,ksh,bash,zsh
获取当前环境使用的shell:
localhost ~]# echo $SHELL
显示当前系统使用的所有shell:
localhost ~]# cat /etc/shells
Linux基础命令
ifconfig
语法:
ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address …
作用:
Unix-like系统中用于查看以及配置网络接口设备的系统管理工具。其作用等同于ip addr,
作用于类Unix系统中,用于配置、控制及查询TCP/IP网络接口的系统管理工具
~]# ifconfig -a
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.128 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::20c:29ff:feb1:8e6b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b1:8e:6b txqueuelen 1000 (Ethernet)
RX packets 54896 bytes 5035691 (4.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5394 bytes 678551 (662.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 140 bytes 12252 (11.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 140 bytes 12252 (11.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
echo
语法:
echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION
作用:
回显命令,用来将字符串输出到终端上。它通常在shell脚本中使用,以将状态信息输出到屏幕或文件中
参数:
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息
[root@localhost ~]# echo -n helloworld
helloworld[root@localhost ~]# echo helloworld
helloworld
参考文档:echom命令详解
tty
语法:
tty [OPTION]…
作用:
查看当前终端对应的设备startx
语法:
startx(参数)
作用:
用来启动X Window,实际上启动X Window的程序为xinit。export
语法:
BASH BUILTIN COMMANDS
作用:
设置或显示环境变量。
参数:
-f:代表[变量名称]中为函数名称。
-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p:列出所有的shell赋予程序的环境变量。
参考文档:linux export 的作用pwd
语法:
pwd [OPTION]…
作用:
以绝对路径的方式显示用户当前工作目录
参数:
一般情况下不带任何参数,如果目录是链接时:
-P:显示出实际路径,而非使用连接(link)路径。
–help:显示帮助信息
–version:显示版本信息
[root@localhost ~]# pwd -P
/root
[root@localhost ~]# pwd
/root
参考文档:每天一个linux命令(3):pwd命令
history
语法:
BASH BUILTIN COMMANDS
作用:
用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区
系统在关闭后会将现有history内容保存在文件~/.bash_history
系统默认保留1000条
参数:
-c:清空当前历史命令
-a:将历史命令缓冲区中命令写入历史命令文件中
-r:将历史命令文件中的命令读入当前历史命令缓冲区
-w:将当前历史命令缓冲区命令写入历史命令文件中
n:打印最近n条历史命令(n为数字)
参考文档:Linux基础知识之history的详细说明shutdown
语法:
shutdown [OPTIONS…] [TIME] [WALL…]
作用:
用于安全的关闭/重启计算机
参数:
- k 不执行任何关机操作,只发出警告信息给所有用户
- r 重新启动计算机 ,相关重启操作命令有shutdown -r ,reboot,init 1等
- h 关机并彻底断电,等同于halt,相关关机操作命令有halt,shutdown -h now,poweroff,init 0等
- f 快速关机且重启动时跳过fsck
- n 快速关机不经过init程序
- c 取消之前的定时关机
time:
- now 马上
- hh:mm 具体时间
+0 几分钟后执行操作
wall:广播信息至所有用户都能看见
/]# shutdown -r +15 “15分钟后将重启机器”poweroff
语法:
poweroff [OPTIONS…]
作用:
用于安全的关机
参数:
-n:关闭操作系统时不执行sync操作
-w:不真正关闭操作系统
-d:关闭操作系统时,不将操作写入日志文件 \
-f:强制关闭系统
-i:关闭系统之前关闭所有的网络接口
-h:关闭操作系统之前将系统中所有的操作设置为备用模式reboot
语法:
reboot [OPTIONS…]
作用:
用于安全的重启
参数:
-d:重新开机时不把数据写入数据文件/var/tmp/wtmp
-f:强制重新开机,不调用shutdown指令的功能
-i:在重开机之前,先关闭所有网络界面
-n:重开机之前不检查是否有未结束的程序
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件hwclock
语法:
hwclock [function] [option…]
作用:
显示与设定硬件时钟。在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
参数:
–adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用–adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
–debug 显示hwclock执行时详细的信息。
–directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
–hctosys 将系统时钟调整为与目前的硬件时钟一致。
–set –date=<日期与时间> 设定硬件时钟。
–show 显示硬件时钟的时间与日期。
-s –systohc 将硬件时钟调整为与目前的系统时钟一致。
–test 仅测试程序,而不会实际更改硬件时钟。
–utc 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
–version 显示版本信息。
以硬件为准,把系统调整为与硬件时间相同
~]# hwclock -s –hctosys
以系统为准,把硬件时间调整为与系统一致
~]# hwclock -w –systohcdate
语法:
date [OPTION]… [+FORMAT]
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
作用:
date 可以用来显示或设定系统的日期与时间
参数(常用):
-d<“字符串”>:显示字符串所指的日期与时间
-s<“字符串”>:根据字符串设置的日期与时间
%F:年月日
%T:小时分钟秒
%Y:年
%m:月
%d:日
%H:小时(24小时进制)
%S:秒
%s:秒(从1970-01-01 00:00:00 开始到命令执行那一刻的秒数 unix元年)日期书写格式:
date [MMDDhhmm[[CC]YY][.ss]]
~]# date -s ‘2017-10-12 17:26:00’
[root@localhost ~]# date +%F
2017-11-29
[root@localhost ~]# date +%T
10:46:30
[root@localhost ~]# date +"%F %T"
2017-11-29 10:46:48
五、Linux获取命令的帮助信息
内建命令与外部命令
内建命令:help COMMAND
语法:help(选项)(参数)
作用:用于显示shell内部命令的帮助信息
参数:-s:输出短格式的帮助信息。仅包括命令格式
外部命令: man COMMAND
语法: man(选项)(参数)
SECTION:
NAME:功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:使用示例
AUTHOR: 作者
BUGS: 报告程序bug的方式
SEE ALSO: 参考
...
SYNOPSIS:
[]:可选内容;
<>:必须提供的内容;
a|b|c:多选一;
...:同类内容可出现多个;
作用:可以使用man手册获取帮助
man使用手册:
压缩格式的文件,有章节之分(共8个章节)
/usr/share/man,man1,man 2 ...................
1、用户命令:
2、系统调用:
3、C库调用:
4、设备文件及特殊文件
5、文件格式:(配置文件说明)
6、 游戏使用说明
7、杂项
8、管理工具和守护进程
man手册查看方法/快捷键:
空格键:向文件尾部翻一页
B键 : 向文件首部翻一页
CTRL+D :向文件尾部翻半页
CTRL+K :向文件首部翻半页
ENTER: 向文件尾部翻一行
K建:向文件首部翻一行
G键:跳转至全文最后一行
#G: 跳转至制定行 ,eg:2G,3G
1G:跳转文件首行
文本搜索功能:
/keyword :从文件首部向文件尾部依次查 或者 ?leyword :从文件尾部向文件首部依次查找
keyword 换成需要查找的文件,n/N上下查找 ,查找时不区分大小写
n:与查找命令方向相同
N:与查找命令方向相反
退出查找:q
六、Linux发行版的基础目录名称命名法则及功能规定
FHS:文件系统层级结构标准
目录 | 用途 |
---|---|
/bin | 所有用户可用的基本命令程序文件 |
/sbin | 供系统管理员使用的工具程序 |
/boot | 引导加载器所依赖的静态文件,一般有内核、initramfs、prub等,开机后该目录无用,下次重启会再次启动 |
/dev | 存储特殊文件、设备文件,设备有两种类型 字符设备(线性设备) 块设备(随机设备) |
/etc | 存放系统程序的配置文件 |
/home | 普通用户的家目录的集中位置,层级结构 /home/USERNAME 一般每个普通的家目录认为此目录下能与用户名同名的子目录 |
/root | 管理员家目录 |
/lib | 共享库文件和内核模块 为系统启动和根文件系统上的应用程序(/bin /sbin) 提供共享库,以及为内核提供内核模块。libc.so.* 动态连接的C库,ld* 运行时链接器/加载器,modules 用于存储内核模块的目录 |
/lib64 | 64位系统特有的存放64位共享库的路径 |
/media | 便携性设备挂载点 。比如cdrom ,floppy等 |
/mnt | 其他文件系统临时挂载点 |
/opt | 附加应用程序/第三方程序的安装位置,可选路径 |
/srv | 当前主机为服务提供的数据 |
/tmp | 为那些会产生临时文件的程序提供用于存储临时文件的目录,供所有用户执行写入操作,有特殊权限 |
/usr | 全局共享只读数据路径文件 |
/var | 存储经常发生变化的数据的目录 |
/proc | 基于内存的虚拟文件系统,用于为内核及进程存储其相关信息 ,他们多为内核参数 |
/sys | sysfs虚拟文件系统提供一种比proc更为理想的访问内核数据的途径,其主要作用在于为管理linux设备提供一种统一模型的接口 |
文件名使用法则:
1、严格区分字符大小写:file1 File1 FILE1 并不是一个文件
2、目录也是文件,在同一路径下,两个文件不能同名
3、支持使用除”/“以外的任意字符;
4、最长不得超过255个字符