1.Linux 简介
1.1Linux 的概述
1.2Linux 的发展史
Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和 Internet 网络。
1991 年,GNU 计划已经开发出了许多工具软件,最受期盼的 GNU C 编译器已经出现,GNU 的操作系统核心 HURD 一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的 GNU 操作系统,但是 GNU 奠定了 Linux 用户基础和开发环境。
1991 年初,林纳斯·托瓦兹开始在一台 386sx 兼容微机上学习 minix 操作系统。1991 年 4 月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。1991 年4 月 13 日发布说自己已经成功地将 bash 移植到了 minix 上,而且已经爱不释手、不能离开这个 shell 软件了。
1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布 Linux 内核的诞生(Freeminix-like kernel sources for 386-AT)。
1993 年,大约有 100 余名程序员参与了 Linux 内核代码编写/修改工作,其中核心组由 5 人组成,此时 Linux 0.99 的代码大约有十万行,用户大约有 10万左右。
1994 年 3 月,Linux1.0 发布,代码量 17 万行,当时是按照完全自由免费的协议发布,随后正式采用 GPL 协议。
1995 年 1 月,Bob Young 创办了 RedHat(小红帽),以 GNU/Linux 为核心,集成了 400 多个源代码开放的程序模块,搞出了一种冠以品牌的 Linux,即RedHat Linux,称为 Linux"发行版",在市场上出售。这在经营模式上是一种创举。
1996 年 6 月,Linux 2.0 内核发布,此内核有大约 40 万行代码,并可以支持多个处理器。此时的 Linux 已经进入了实用阶段,全球大约有 350 万人使用。
1998 年 2 月,以 Eric Raymond 为首的一批年轻的"老牛羚骨干分子"终于认识到 GNU/Linux 体系的产业化道路的本质,并非是什么自由哲学,而是市场竞争的驱动,创办了"Open Source Intiative"(开放源代码促进会)"复兴"的大旗,在互联网世界里展开了一场历史性的 Linux 产业化运动。
2001 年 1 月,Linux 2.4 发布,它进一步地提升了 SMP 系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC 卡(PCMCIA)的支持,内置的即插即用,等等功能。
2003 年 12 月,Linux 2.6 版内核发布,相对于 2.4 版内核 2.6 在对系统的支持都有很大的变化。
1.3 Linux 的 主要特征
1.3.1 基本思想
Linux 的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说 Linux 是基于 Unix 的,很大程度上也是因为这两者的基本思想十分相近。
1.3.2 完全免费
Linux 是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了 Linux 的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让 Linux 吸收了无数程序员的精华,不断壮大。
1.3.3 多用户、多任务
Linux 支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux 可以使多个程序同时并独立地运行。
1.3.4 支持多种平台
Linux 可以运行在多种硬件平台上,如具有 x86、680x0、SPARC、Alpha等处理器的平台。此外 Linux 还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001 年 1 月份发布的 Linux 2.4 版内核已经能够完全支持Intel 64 位芯片架构。同时 Linux 也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
1.4 Linux 分类
1.4.1根据原生程度
Linux 系统根据其原生程度不同分为,内核版本和发行版本。
1)内核版本:在 Linus 领导下的内核小组开发维护的系统内核的版本号
2)发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版
1.4.2根据发行版本分支来划分
Linux 的发行版本众多,一些组织或公司为许多不同的目的而制作, 包括对 不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式 系统,甚至许多版本故意地只加入免费软件。已经有超过三百个发行版被积极的 开发,最普遍被使用的发行版有大约十二个。
在这些发行版中主要可以分为两个系列:Redhat 系列和 Debian 系列。
2.Linux 的安装
2.1虚拟机的安装
Linux 是操作系统,它和我们使用的 windows 系统一样需要安装在一台电 脑上进行使用,我们可以在一台真实的物理主机上安装 Linux 并进行使用,但是 我们在学习时可以使用一种虚拟机软件,在我们现有的电脑上模拟一台虚拟的计 算机,来方便地进行 Linux 的安装和学习。
目前市面上比较常见的虚拟机软件有两种:一种是 VMware(威睿)公司的 虚拟机软件(VMware workstation),功能强大,收费产品,另一种是 Oracle 公司的虚拟机软件(VitrualBox),免费商品。
由于市场上 VMware 使用率很高,所以我们安装 VMware workstation, 具体的安装步骤和流程参照《VMware-workstation 安装手册》。
安装虚拟机之前没有虚拟网卡:
安装完成之后出现了两个虚拟网卡
当计算机重启之后,请在上课之前将两张虚拟网卡禁用,当广播之后再启用。否则无法收到广播。
2.2虚拟机的克隆
把虚拟机关机。
在虚拟机名称上右键:
稍等克隆完成。
每一个网卡应该有mac地址,克隆出来的虚拟机的网卡的mac地址和原来的虚拟机的网卡的mac地址是一致的,所以理论上不能同时启动。 所以一般都是将克隆出来的虚拟机的mac重新生成。
修改MAC地址:
记住生成的mac地址:00:50:56:39:55:23
启动虚拟机,在虚拟机中修改网络配置:
编辑网络配置:
按 I 键修改IP地址 和 mac地址: mac地址就是刚刚生成新的mac地址。
Esc :wq 保存退出
修改网卡:
新生成的网卡是eth1
网络配置中使用的是eth0。
解决方案:
1 直接删除 70-xxxx-net.rules , 重启虚拟机。
2 将eth0 注释, 把eth1修改为eth0
重启网卡:service network restart
2.3使用连接工具连接linux
实际工作中都是使用远程的工具连接linux。
我们使用SSH
安装:傻瓜式安装。
创建连接:
输入账号和地址:
输入密码:
连接成功:
解决连接工具中文乱码问题
连接linux
输入命令:
编辑文件: 按I 键 ,删除原来的内容,加入如下内容:
LANG="zh_CN.GB18030" LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT="lat0-sun16" |
Esc :wq 保存退出 重新连接
2.4linxu系统结构
CentOS 安装完成后,我们可以发现 CentOS 的文件目录结构如下,我们需 要对 CentOS 的各个目录有一些了解。
/: 根目录
/bin: 可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等。
/boot: 放置 linux 系统启动时用到的一些文件。
/dev: 存放 linux 系统下的设备文件
/etc: 系统配置文件存放的目录
/home: 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~ 表示当前用户的家目录
/lib: 系统使用的函数库的目录
/opt: 给主机额外安装软件所摆放的目录
/root: 系统管理员 root 的家目录
/tmp: 一般用户或正在执行的程序临时存放文件的目录
/usr: 应用程序存放目录
/var: 放置系统执行过程中经常变化的文件
3.Linux 的基本命令
Linux 系统安装完成,但是我们没有安装图形界面程序,所以只能通过命令 的方式进行操作和使用,在实际生产环境中,也很少会为 Linux 安装图形界面程 序。Linux 的命令很多,不能一一讲解,我们将从以下几个方面来进行学习。
3.1 目录的切换命令
在图形化界面的操作系统中,文件目录的切换可以使用鼠标点击来进行选择 和切换,但是在 Linux 操作系统中,需要通过 cd 命令来进行切换
pwd 查看当前路径 cd usr 切换到该目录下 usr 目录 cd ../ 切换到上一层目录 cd / 切换到系统根目录 cd ~ 切换到用户主目录 cd - 切换到上一个所在目录 |
3.2目录的操作命令
3.2.1创建目录
创建目录使用 mkdir 命令,语法:mkdir 文件名称
案例:在根目录下创建test目录
3.2.2 查看目录
查看目录使用 ls [-a|-l]命令,语法:ls 路径
Ls后的参数 -a 查看所有的,-l查看详情列表 如果什么参数都没有表示罗列文件和目录。
案例:
命令 ls –l 也可以直接通过 ll表示
案例:
3.2.3 修改或移动目录
修改目录使用 mv 命令,语法:mv 目录名称 新目录名称。
其实MV是移动一个文件(剪贴一个文件)
案例:
修改名称:
移动一个目录到其他目录。
3.2.4拷贝目录
要拷贝一个目录需要使用 cp 命令,语法:cp -r 目录名称 拷贝的目标位置。
-r 参数表示将目录下的所有的子目录和文件全部拷贝
案例:
3.2.5删除目录
删除目录使用 rm 命令,删除目录时需要加上-r 参数,语法:rm [-rf] 目录 名称。
删除根目录下的 /igeektest
案例:
删除目录必须有参数 –r
在删除目录时,会不断的询问目录中的文件和子目录是否删除。
添加参数f 就不会再询问
3.3文件的操作命令
3.3.1文件的创建
文件的创建可以使用 touch 命令,语法:touch 文件名。
案例:
3.3.2 文件的查看
在 Linux 系统中查看文件可以使用 cat,more,less.tail 命令。
案例:
S1:使用 cat 查看 etc 下的 sudo.conf 文件
通过以上的实例发现 cat 命令默认是现实文件的最后一屏的内容。
S2:使用 more 查看/etc/sudo.conf 文件,,可以显示百分比,回车可以 向下一行, 空格可以向下一页,q 可以退出查看。
S3: 使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn 向上和向下翻页,q 结束查看。
S4: 使用 tail -10 查看/etc/sudo.conf 文件的后 10 行。
S5: 使用 tail –f 实时监控文件的变化
比如查看日志文件。
3.3.3 文件内容的修改
在 Linux 操作系统中药修改文件的内容,可以使用系统自带的 vi 编辑器,也 可以安装其他的文本编辑工具,这里我们使用最基本的 vi 编辑器进行文件内容 的编辑。
Vi 编辑器的详细使用参照《vi 使用方法手册》,我们演示其基本的操作。
S1: 使用vi打开/usr/local/test/igeek文件
刚刚打开时文件处于不能编辑的状态。
S2:打开文件之后 按 I 键表示开始编辑文件
S3:esc :wq 保存退出文件
Wq一定要小写
在文件没有修改的情况下 esc :q 直接退出编辑
一旦做了修改: :q 就出现问题:
esc :q! 不保存退出。
3.4压缩和解压缩文件的操作
3.4.1打包并压缩文件
Linux 中的打包文件一般是以.tar 结尾的,压缩的命令一般是以.gz 结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一 般.tar.gz。
进行文件的打包压缩使用命令 tar,该命令可以添加的参数有一下几个:
z:调用 gzip 压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
将test目录下的 a.txt b.java c.html 文件进行打包压缩
3.4.2 解压缩文件
解压缩文件依然使用 tar 命令,只是不再进行打包,而是进行解压操作,语 法:tar –xvf 压缩文件名称
将igeek.tar.gz文件解压
3.5 Linux 的权限命令
权限是 Linux 中的重要概念,每个文件/目录等都具有权限,通过 ls –l(ll) 命令我们可以查看某个目录下的文件或目录的权限。
第一列的信息就是文件对应的权限,其意义如下。
文件类型: d表示文件夹 -表示文件 l表示文件。
除过文件类型,后面的 9 位分为 3 组,每 3 位置一组,分别代表属主的权限,与当前用户同 组的用户的权限,其他用户的权限。
权限类型: r 可读 w表示可写 x表示可执行
r可以使用4代替,w可以使用2代替,x可以使用1代替
任意一组的权限可以使用1~7 数字表示
例如:
- 只有执行权限
- 只有写入权限
- 可写,可执行
- 只有可读权限
- 可读,可执行
- 可写,可读
- 可写,可读,可执行
修改文件/目录的权限的命令:chmod 命令
案例:
u=属主权限,g=属组全选,o=其他用户权限
可以使用数字分配权限:
可以给某个组增加权限: 给当前用户增加可执行权限
3.6 Linux 的其他命令
3.6.1 查看网络信息
在 Linux 中要查看网络信息,可以使用 ifconfig 命令。
3.6.2 搜索命令
在 Linux 中要进行搜索操作可以使用 grep 命令来完成,语法:grep 要搜 索的字符串 要搜索的文件。
搜索/usr/sudu.conf 文件中包含字符串 to 的行
如果需要加上颜色标记,可以添加--color 参数。
3.6.3 查看进程命令
查看系统进程使用 ps –ef 命令。
查看当前系统中运行的进程信息
3.6.4 管道命令
管道命令可以将前一个命令的输出作为本次目录的输入来使用。
查看当前系统中所有的进程中包括 dev 字符串的进程
3.6.5 杀死进程
在 Linux 中要杀死进程可以通过进程号来杀死进程,语法:kill [-9] 进程号
参数 -9 表示立即执行。 没有参数表示正常退出(有可能会失败)。
如果要根据进程的名称杀掉进程,可以使用 pkill -9 进程名称
3.6.6 清屏命令
3.6.7 小技巧
可以使用上下键查找已经执行过的命令。
可以table键提示。
4.Linux 中软件的安装
4.1 JDK 的安装
CentOS 中 JDK 的安装方式有很多种,这里我们使用已经下载的 jdk 来进行 安装。我们安装的版本为:jdk-7u71-linux-x64.tar.gz。
要进行软件的安装首先需要上传软件包
可以使用连接工具上传文件
可以将windows下的文件直接拖拽到linux目录中。
我们使用 lrzsz 工具来进行上传。
需要我们的机器首先已经安装了该工具,如果没有安装,可以使用 yum 源来进 行安装,命令为 yum install lrzsz。
安装完成之后可以使用 rz 命令来上传文件,我们将文件上传到/usr/local 目录下,所以先切换到该目录下。
将jdk的安装文件上传到 /opt目录下:
解压文件
解压完成后需要配置 Java 的环境变量,我们需要修改/etc/profile 文件,添 加 JAVA_HOME 变量,同时在 path 中加上 Java 的配置。
在该文件的最后添加如下配置:
其中的JAVA_HOME一定要配置自己的路径。
/etc/profile文件需要重新加载才能生效。
使用source 执行此文件
如果发现如下问题:
是因为操作系统缺少 glibc
解决方案:
使用 yum install glibc.i686 在线安装
安装完成之后
重启系统