一 、什么是linux—— linux的4个主要部分:
1、linux内核
2、GNU使用程序
3、图形桌面环境
4、应用软件
1、了解linux内核——kernel控制计算机系统上的所有硬件和软件
linux kernel的四大功能:
1)系统内存管理
2)软件程序管理
3)硬件管理
4)文件系统管理
1)系统内存管理:kernel不仅可以管理服务器上的物理内存,还可以创建和管理虚
拟内存,内存管理必须使用硬盘空间,该空间称为交换空间(swap space)大小一般设
置为物理内存的2倍。
什么是虚拟内存?
Linux支持虚拟内存(virtual memory),虚拟内存是指使用磁盘当作RAM的扩展,这样可
用的内存的大小就相应地增大了。内核会将暂时不用的内存块的内容写到硬盘上,这样一来,这
块内存就可用于其它目的。当需要用到原始的内容时,它们被重新读入内存。这些操作对用户来
说是完全透明的;Linux下运行的程序只是看到有大量的内存可供使用而并没有注意到时不时它
们的一部分是驻留在硬盘上的。当然,读写硬盘要比直接使用真实内存慢得多(要慢数千倍),所
以程序就不会象一直在内存中运行的那样快。用作虚拟内存的硬盘部分被称为交换空间。
将内存位置分组为多个数据块称为分页,默认情况下,在linux系统上运行的每个进
程都有自己专用的内存分页,内核跟踪使用的内存分页,并自动将一段时间内没有访问
的内存分页复制到交换空间。
查看内存使用情况:cat /proc/meminfo
查看系统当前使用的共享内存分页:ipcs -m
2)软件程序管理
linux将正在运行的程序称为进程。
3)硬件管理
linux系统需要在内核中插入与之通信的设备的驱动程序代码,使内核能像设备传输数据。在
linux内核中插入设备驱动程序代码有两种方法:
在内核中编译驱动程序;
想内核添加驱动程序模块
linux将硬件设备标识为特殊文件,即设备文件,设备文件可以分为3类:
字符,例如大部分调制解调器、终端类型
块 ,例如磁盘驱动器
网络 。例如网卡
4)文件系统管理
什么是文件系统(filesystem)呢?
当前的操作系统大多数是从硬盘读数据的,每个操作系统使用的硬盘在x86架构上的都一
样,都是同样的硬盘。但是,每种操作系统都有其独特的读取文件的方法,也就是说,每种
操作系统对硬盘读取的方法不同,就造就了不同的文件系统。
Linux的核心如何管理这些文件系统呢?
整个Linux系统都通过虚拟文件系统交换(Virtual Filesystem Switch)的核心功能去读
取文件系统。也就是说,整个Linux认识的文件系统其实都是VFS在管理,系统管理员编译内
核以支持系统将使用的文件系统,VFS与每个文件系统进行连接,为内核与其他文件系统类型
的通信提供一个标准接口。
linux系统支持的文件系统
文件系统 | 描述 |
ext | extlinux扩展文件系统——原始linux文件系统 |
ext2 | 第二代扩展文件系统,提供比ext更高级得功能 |
ext3 | 第三代扩展文件系统,支持日志功能 |
hpfs | OS/2高性能文件系统 |
iso9660 | ISO9660 文件系统(CD-ROM) |
minix | MINIX文件系统 |
msdos | microsoft FTA16 |
ncp | netware文件系统 |
ntfs | 支持microsoft NT文件系统 |
nfs | 网络文件系统 |
proc | 访问系统信息 |
ReliserFS | 高级linux文件系统,性能更加而且支持磁盘恢复 |
smb | samba 文件系统,支持网络访问 |
sysv | 旧式UNIX文件系统 |
ufs | BSD文件系统 |
umsdos | 类似unix的文件系统,寄存在MSDOS上 |
vfat | windows 95文件系统,(FAT32) |
jfs | IBM的日志文件系统 |
XFS | 高性能64位日志文件系统 |
2、GNU实用程序
除了使用内核控制硬件设备外,计算机操作系统需要实用程序执行标准功能,如控制文件
和程序,尽管Linus创建了linux内核,但他没有系统实用程序去运行它, 与此同时,Internet 上
有一群人在尝试开发一套标准的计算机系统实用程序,用于模拟流行的Unix系统。GNU组织(
GNU is not Unix)为了给大家提供一个类似Unix的环境,开发了一个完整的Unix实用程序集,
而且是开源的,但是没有操作系统去运行它们。
于是,Linus的linux内核与GNU操作系统使用程序结合诞生了一个完整、强大的免费操作系统。
GNU提供给linux系统的核心实用程序包称为coreutils软件包。
GNU coreutils软件包由三部分组成:
1) 处理文件的实用程序
2)操作文本的实用程序
3)管理进程的使用程序
二、linux发行版
各种linux发行版可分为三个类型:
1、完整核心发行版
2、特定发行版
3、LiveCD发行版
核心linux发行版包括内核、一个或多个图形桌面环境,以及几乎所有的linux应用程序,它针
对内核进行了预编译,只需该发行版即可完整安装linux。如red hat ,fedora,opensuse,debian
特定发行版通常以一个主要的发行版为基础,但只包含对特定领域有用的应用程序子集,如
Ubuntu是供学校和家庭使用的免费发行版。
liveCD,无须在硬盘上安装即可从CD启动PC,并运行linux发行版。
三、shell 是什么、shell中的特殊字符
linux中的shell——命令解析器、程序语言,系统管理的重要工具。
shell的种类:ash、bash、korn、csh、tcsh、zsh
ash :简单的轻量级shell,运行于低内存环境,但与bash shell 完全兼容。
korn:与bourne shell兼容的编程shell,但支持高级编程功能,如关联数组和浮点算法
tcsh: 在shell脚本中吸收了c编程语言元素的shell
zsh :吸收了bash、tcsh、korn等shell功能的高级shell,还提供高级编程功能、共享历史
文件和主题提示符。
GNU/linux系统中标准的shell——bash shell
大部分linux发行版包含多个shell
查看shell的类型:
默认使用的shell
[root@localhost ~]# echo $SHELL
/bin/bash
支持的shell
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
查看bash shell的版本:
[root@localhost ~]# echo $BASH_VERSION
3.2.25(1)-release
编译安装最新版的bash
http://ftp.gnu.org/gnu/bash 原始下载点
http://ftp.twaren.net/UNIX/GNU/gnu/bash
tar -xvzf bash-…….
cd bash-……
./configure 默认安装到/usr/local/bin中,--prefix= 指定安装到某个目录下
make 编译
make tests 测试
./bash
echo $BASH_VERSION
make install 安装
切换使用新版的bash shell——chsh (change shell)
[root@localhost ~]# echo /usr/local/bin/bash >> /etc/shells
把bash的安装路径加入/etc/shells文件中
[root@localhost ~]# chsh
通配符和转义字符
通配符:
* :代表任意字符串
?:代表一个字符,但不可为空
例:
ls /usr/bin/* 列出指定目录下的所有文件
ls /usr/bin/??? 列出指定目录下文件名长度为3的文件
ls *zip*
ls py??o??
转义字符:
:使后接的字符恢复其原来作为单纯字符的用途,即出去特殊字符的作用
[root@localhost ~]# echo 9*9 = 81
echo: No match.
[root@localhost ~]# echo 9*9=81
9*9=81
[root@localhost ~]# echo \'9*9 = 81\'
使用单引号也行,但单引号内不能出现单引号就算有转义字符也不行
9*9 = 81
[root@localhost ~]# echo \'this is jack/s cat\'
this is jack/s cat
[root@localhost ~]# echo \'this is jack\'s cat\'
Unmatched \'.
[root@localhost ~]# echo this is jack\'s cat 正确的用法应该是以下三种
this is jack\'s cat
[root@localhost ~]# echo "this is jack\'s cat"
this is jack\'s cat