- Linux操作系统和内核
- 操作系统概述
操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位硬件和应用程序之间。操作系统就是为用户(使用计算机的人)提供服务,使用户能在计算机上使用各种应用程序(QQ、浏览器)来操作计算机资源(如QQ需要使用显示器资源、用浏览器下载资料需要硬盘资源,同时所有这些应用程序都需要使用CPU这个最主要的资源)。一台计算机就是一组资源,你运行在计算机上的应用程序本质上是离不开计算机的各种资源(如处理器、内存、I/O设备等),只是为了方便,人们就构造了操作系统这种东西,因为每一台计算机的各种资源都来自不同的厂家,它们有不同的标准,有不同的差别,所以你针对某一类的I/O设备开发的应用程序就不能在另一台装有不同I/O设备的计算机上运行,而操作系统就完美的消除了这种差别与无法扩展的缺点,所以从逻辑上来说,操作系统位于应用程序与计算机资源的中间层。
操作系统有两个基本功能:1防止硬件被失控的应用程序滥用;2向应用程序提供简单一致的规则机制控制复杂而又低级的硬件设备
从CPU来看,操作系统实际上不过是一组计算机程序(可以理解成多个应用程序的集合,而这些应用程序都是和硬件打交道的),与其他计算机程序类似,他们都给处理器提供指令,然后处理器执行这些指令,完成这些指令的功能。最大的区别在于操作系统和其他程序的意图不同:操作系统程序通过控制计算机资源,并控制其他程序的执行时机,这促使处理器完成系统任务的调度。也就是操作系统协调功能。处理器为了做任何一件这样的事情(指的是执行另一个程序),都必须停止执行操作系统程序,转而去执行其他程序(这其实是进程切换),因为既然操作系统也是一个程序(进程),而任何处理器同时只能处理一个进程,所以操作系统同样和其他程序(进程)一样需要调度,只是操作系统是处于主动调度的位置,而其他程序是被动的由操作系统的控制来实现调度。
- 操作系统内核
- 操作系统包括内核,也就是说内核是操作系统的一个子集,内核实际上相当于操作系统中最常使用模块,直接与硬件打交道,主要用于管理存储器、文件、外设和系统资源的那些部分组成(即由文件系统,内存管理,设备管理和进程管理)
- 内核程序一直占用内存中的一段内存,这样处理器可以随时调用这些内核程序
- 操作系统还包括其他一些组件,例如文本编辑器,编译器,用来与用户进行交互的程序等
- 内核,是操作系统的基础模块。用于管理系统资源。例如提供对软件层面的抽象(例如对进程、文件系统、同步、内存和网络协议等对象的操作和权限控制),和对硬件访问的抽象(例如磁盘,显示,网络接口卡NIC)。操作系统在内核上有所延伸,包括了提供基础服务的系统组件
- 内核,就是计算机学科意义上的操作系统,直接与硬件交互,提供CPU时间片管理、中断、内存管理、IO管理等等。一般意义上的操作系统包含的东西要多一些,至少要有用户交互的基本程序。比如一个命令行界面和基本的指令(文件遍历,进程管理等等)。图形化界面和文件浏览器
- 总结
一个操作系统包含了内核(是一个提供了硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件)以及其他计算机系统所必须的组件(如函数库、编译器、调试工具、文本编辑器、网站服务器,以及linux使用者接口shell等)
一般来讲,一个Linux发行版本出来包括Linux内核之外,还包含大量的软件(套件),比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice、org)等等
- Linux命令
- 命令【选项】【参数】
命令:告诉linux操作系统做什么
选项:说明命令运行的方式(可以改变命令的功能)。选项的部分是以”-”字符开始的
参数:说明命令影响(操作)的是什么(如一个文件、一个目录或是一段正文名字)
- Whoami命令
了解whoami命令的功能:列出目前登录linux系统使用的用户名(账号)
- Who命令
Who命令的功能:列出目前哪些用户在系统上工作
Who命令的输出结果:显示当前登录的所有用户,以及当前的日期和时间
- Date、cal和clear命令及带有参数的命令
Date是显示日期、cal是显示万年历、clear清屏
Hwclock –s同步硬件时间-w同步系统时间
- 创建用户命令useradd 【用户名】
更改密码:Passwd 【用户名】
切换密码:su - 【用户名】
- 查看帮助信息man 【命令名】或者【命令】 --help
- 了解Linux文件系统的树状结构:
在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构 - 掌握目录的定义:目录相当于Windows中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录。
- 掌握顶层根目录的表示:
使用“/”来表示根目录 - 了解文件系统的两个特殊目录:
.代表当前目录,即用户所在的工作目录
..表示父目录,即当前目录的上一级目录
- 查看隐藏问价 ls –a
带.的文件为隐藏目录
- Bin目录:用来存放常用的可执行文件
- Sbin目录:用来存放系统的可执行文件
- Home目录:用来存放用户自己的文件或目录,其中,超级用户root的home目录为/root
- Dev目录:设备文件目录
- Etc目录:配置文件目录
- 挂载点:通常可移除式硬件会被挂载在/media或者/mnt目录之下。/mnt /opt /media /tmp可以随便用
- 绝对和相对路径
- Pwd当前目录的路径
- Cd ~返回当前用户的家目录
- Cd –返回上一次目录
- Cp 【原文件】【目标路径】
-i代表覆盖前询问
-r递归式复制
-f强制
Mv 改名或者移动文件
Mkdir创建目录
-p递归创建目录
Touch建文件
- alias 【别名】=’命令’:给命令起别名
- rm删除文件命令
-f强制删除
-r删目录
- Rmdir删目录
- Cat 查看文件内容命令【全部命令】
- Head命令显示头几行,默认10行
Tail命令显示后几行,默认10行
Tail –f 【文件】用于显示日志,动态监测显示,查看文件动态
More按照百分比回车显示文件内容
Less上翻显示文件内容
- /etc/passwd 账户文件
root:x:0:0:root:/root:/bin/bash
冒号隔开后的各个内容:root用户名:密码:userid:groupid:组名:家目录:是否可登录操作系统
/etc/group 组文件
/etc/shadow 密码文件
/etc/gshadow 组文件
/var/spool/mail/xxx 发邮件用户
/home/xxx 家目录
- 1. 用户及passwd文件
1) 掌握/etc/passwd文件的功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database)。
2) /etc/passwd文件每个字段的具体含义:
a) 第1个字段(列)记录的是这个用户的名字(在创建用户时root用户起的)。
b) 第2个字段(列)如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,则该用户在登录时无须提供密码。
c) 第3个字段(列)记录的是这个用户的uid。
d) 第4个字段(列)记录的是这个用户所属群组的gid。
e) 第5个字段(列)记录的是有关这个用户的注释信息(如全名或通信地址)。
f) 第6个字段(列)记录的是这个用户的家目录的路径。
g) 第7个字段(列)记录的是这个用户登录后,第一个要执行的进程。
2. shadow文件(详见linux系统管理P133)
1) /etc/shadow文件的功能:存储所有用户的密码,每一个用户占用一行记录,该文件实际上就是存放用户密码的数据库(Database)。
2) /etc/shadow文件每个字段的具体含义:
a) 第1个字段(列)是用户名。
b) 第2个字段(列)是密码,这个密码是经过MD5加密算法加密过的密码。
3. 群组及group文件(详见linux系统管理P135)
1) /etc/group文件的功能:存放了Linux系统中所有群组的信息,它实际上就是一个存放群组信息的数据库(Database)。
2) /etc/group文件每个字段的具体含义:
a) 第1个字段是这个群组的名字。
b) 第2个字段中的x表示这个群组在登录Linux系统时必须使用密码。
c) 第3个字段记录的是这个群组的gid。
d) 第4个字段记录的是这个群组里还有哪些群组成员。
4. 怎样在Linux系统中添加一个新的用户账户(详见linux系统管理P449)
1) 掌握useradd命令的功能:新增一个用户。
2) 了解useradd命令的常用选项:
a) –u:指定用户的UID
b) –g:指定用户所属的群组
c) –d:指定用户的家目录
d) –c:指定用户的备注信息
e) –s:指定用户所用的shell
3) 灵活应用useradd命令的举例:
a) 例如:在系统中新增一个fox(狐狸)用户的命令:useradd fox
b) 例如:在系统中新增一个用户user01,属组为police以及uid为600的命令:
useradd –u 600 –g police user01
5. 使用usermod命令修改用户账户(详见linux系统管理P458)
1) 掌握usermod命令的功能:修改用户的账户信息。
2) 了解usermod命令的常用选项:
a) –u:修改用户的UID
b) –g:修改用户的GID
c) –G:将一个用户加入到指定的群组中
d) –d:修改用户的家目录
e) –c:修改用户的备注信息
f) –s:修改用户所用的shell
3) 灵活应用usermod命令的举例:
a) 修改babydog4用户的家目录为/home/babies的命令:
usermod –d /home/babies babydog4
b) 将babydog4这个用户添加到babydog6这个群组中的命令:
usermod –G babydog6 babydog4
c) 将babydog4这个用户的的gid变更为dog群组的命令:
usermod –g dog babydog4
6. 使用usermod命令锁住用户及将用户解锁(详见linux系统管理P461)
1) 了解usermod –L命户令的功能:将用户的账号锁住
2) 了解usermod –L命户令的用法举例:
例如:将babydog6用户的账号锁住的命令:usermod –L babydog6
3) 了解usermod –U命户令的功能:将用户的账号解锁
4) 了解usermod –U命户令的用法举例:
例如:将babydog6用户的账号解锁的命令:usermod –U babydog6
7. 使用userdel命令删除用户账号(详见linux系统管理P462)
1) 掌握userdel命令的功能:删除用户。
2) 了解userdel命令的常用选项:
a) –r:在删除用户的同时删除这个用户的家目录及其邮箱。
3) 灵活应用userdel命令删除用户的举例:
a) 例如:删除babydog5用户不删除其家目录的命令:
userdel babydog5
b) 例如:删除babydog5用户,同时删除其家目录的命令:
userdel –r babydog5
8. 群组的管理
1) 掌握groupadd命令的功能:创建一个新的群组账号。
2) 了解groupadd命令的常用选项:
c) –g:指定群组的GID
3) 灵活应用groupadd命令的举例:
例如:在系统中新增加一个名为boydogs的群组的命令:
groupadd boydogs
4) 掌握groupmod命令的功能:修改一个群组账号的信息。
5) 了解groupmod命令的常用选项:
a) –g:修改群组的GID
b) –n:修改群组的名称
6) 灵活应用groupmod命令的举例:
a) 例如:修改police群组的gid为521的命令:
groupmod –g 521 police
b) 例如:将群组boydogs改名为daddogs的命令:
groupmod –n daddogs boydogs
7) 掌握groupdel命令的功能:删除一个群组账号。
8) 灵活应用groupdel命令的举例:
例如:删除daddogs群组的命令:groupdel daddogs - Ls –l
权限信息 硬链接数 属主 属组 文件大小 文件创建日期 文件名
Selinux
1
-:普通文本文件
l:代表软链接 类似于创建快捷方式
b:代表设备文件block
p:管道文件
d:目录
2-4属主的权限
r:代表只读
w:代表写
x:执行
5-7属组的权限
8-10其他用户的权限
- 执行文件的方法
sh 文件路径
bash 文件路径
./文件
. 文件路径
- 对目录的权限管理
r :可以ls该目录下的子文件名,子目录名
w:可以在该目录下创建删除重命名
x:可以cd到该目录下
- 属主属组及基于数字的权限管理
属主属组全改chown 属主.属组 参数
只改属主 chown 属主 参数
只改属组 chown .属组 参数
递归修改: chown –R 属主.属组 参数
- echo回显
- >重定向覆盖
- >>重定向追加
- |管道命令
- 归档文件和归档技术
掌握归档的定义:归档就是将许多文件或目录打包成一个文件
了解归档的目的:归档的目的是方便备份、还原及文件的传输操作
掌握tar命令的功能:将多个文件包括目录,放在一起存放在一个磁带或者一个磁盘归档文件中。并且将来可能根据需要只还原归档文件中的某些指定的文件
tar命令的常用选项
c创建新的tar文件
t列出tar文件中的目录内容
x从tar文件中抽取文件
f指定归档文件或磁带设备
v显示打包文件的详细信息,v是verbose的第一个字母
z使用gzip压缩算法来压缩打包后的文件
j使用bzip2压缩算法来压缩打包后的文件
使用tar命令将arch目录打包成一个名为arch.tar的归档文件的方法(要求显示所有打包的文件和目录):
tar –cvf test.tar 归档文件
掌握使用tar命令查看归档文件的用法举例:
例如:使用tar命令显示arch.tar这个归档文件(包)中的所有文件的方法:
tar tf test.tar
掌握使用tar命令抽取归档文件的用法举例:
例如:使用tar命令恢复test.tar中的全部内容的方法:
tar xvf test.tar –C 文件路径 恢复压缩包里的文件内容
文件的压缩和解压缩
压缩的定义:压缩就是将一个大文件通过压缩算法变成一个小文件
了解压缩的目的:主要是缩小文件的大小,这样会节省存储文件的磁盘或磁带的空间,另外在网络上传输这些小文件也会减少网络的浏览
掌握解压缩的定义:解压缩就是将一个通过一些压缩算法的文件恢复到压缩之前的样子
gzip和gunzip命令
- 例如:将文件file1压缩成.gz格式的压缩包应该使用的命令为:gzip file1 –c > /路径/name.gz
- 例如:将压缩文件file1.gz解压缩的命令为:
gunzip file1.gz >
掌握bzip2命令和bunzip2命令的用法举例:
a) 例如:将文件file1压缩成.bz2格式的压缩包应该使用的命令为:bzip2 file1 >
b) 例如:将压缩文件file1.bz2解压缩的命令为:
bunzip2 file1.bz2 >
- 掌握在使用tar命令的同时进行压缩和解压缩的用法举例
a) 例如:使用tar命令将arch目录打包而且同时使用gzip的技术压缩打包后文件的方法(打包后的文件名为arch.tar.gz):
tar cvfz arch.tar.gz arch
b) 例如:使用tar命令将arch目录打包而且同时使用bzip2的技术压缩打包后文件的方法(打包后的文件名为arch.tar.bz2):tar cvfj arch.tar.bz2 arch
- 利用编辑器创建和编辑正文文件
vi编辑器简介
- vi是一个UNIX和Linux系统内嵌的标准正文(文字)编辑器,它是一种交互类型的正文编辑器,它可以用来创建和修改正文文件。
- 编辑器的操作模式
命令行模式:vi的默认模式。在这一模式中,所有的输入被解释成vi命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vi的操作等
编辑模式:在编辑模式中,可以往一个文件中输入正文。在这一模式下。输入的每一个字符都被vi编辑器解释为输出的正文。使用ESC返回命令行模式
扩展模式:在一些unix系统中也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等。要进入最后一行模式,需要在命令行模式输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。
在vi编辑器中光标的移动
从命令行模式到插入模式的命令a i o
在命令行模式下删除与复制黏贴的操作
扩展模式与文件的存储和退出
:set nu代表显示文件内容行号
- Bios
Bios的工作是检查计算机的硬件设备,如CPU/内存/风扇速度等
MBR会在启动盘的第1个块中,大小为512B。其中前446中的程序代码是用来选择boot partition(分区),也就是由哪个分区来装入开机用的代码;
在内核部分主要是装机计算机设备的驱动程序以便操作系统可以控制计算机上的设备。并且以只读的方式挂载/(根)文件系统,也就是此时的操作系统只能读到根文件系统(目录)所在的分区;
init程序的进程id为1,即linux操作系统第一个执行的程序
bios的初始化和引导加载程序,找到启动盘
bios的定义:(Basic Input/Output System)(基本输入/输出系统的缩写),它是硬件和软件之间的接口,而且是非常基本的接口
GRUB程序和grub.conf文件
GRUB是Grand Unifield Bootloader(多重操作系统启动管理器)
配置文件是grub.conf
一个扇区512bytes 主引导记录MBR,告诉电脑从该设备的某一分区来装载引导加载程序
446:引导信息
64:分区信息
2:标志位
- Top命令
是用来监控linux系统状况,比如cpu、内存的使用
前五行是系统整体的统计信息。第一行是任务队列信息,同uptime命令的执行结果。其内容如下:
09:35:58 当前时间
up 1 min 系统运行时间,格式为时分
2 users 当前登录用户数
load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值
第二三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 72 total 进程总数
1 running: 正在运行的进程数
71 sleeping: 睡眠的进程数
0 stopped: 停止的进程数
0 zombie:僵尸进程数
Cpu(s):0.1%us 用户空间占用CPU百分比
0.0%sy: 内核空间占用CPU百分比
0.0%ni: 用户进程空间内改变过优先级的进程占用CPU百分比
99.9%id: 空闲CPU百分比
0.0%wa: 等待输入输出的CPU百分比
0.0%hi: 硬中断(Hardware IRQ)占用CPU的百分比
0.0%si:软中断(software interrupts)占用CPU的百分比
0.0% st:实时(steal time)百分比
最后两行为内存信息。内容如下
Mem: 1004412k total 物理内存总量
102196k used 使用的物理内存总量
902216k free 空闲内存总量
5992k buffers 用作内核缓存的内存量,内存和硬盘的速度差
Swap: 2097144k total 交换区总量
0k used 使用的交换区总量
2097144k free 空闲交换区总量
31012k cached 缓冲的交换区总量。内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖。该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。内存和CPU的速度差
Free显示内存的使用状态
ps aux | head -2显示所有的与用户相关的完整信息
grep命令学习
kill命令