第一章 Linux操作系统
1. 计算机入门知识介绍
1.1. 计算机原理
现代计算机大部分都是基于冯.诺依曼结构,该结构的核心思想是冯将程序和数据都存放在计算机中,按存储器的存储程序首地址执行程序的第一条指令,然后进行数据的处理计算。
计算机应包括运算器、储存器、控制器、输入和输出设备五大基本部件。
计算机内部应采用二进制来表示指令和数据,将编好的程序送入内储存器中,然后启动计算机工作,计算机勿需操作人员干预,能自动逐条取出指令和执行指令。
1.2. 软件和硬件概述
计算机是由软件和硬件组成
1.3. 硬件
计算机硬件主要由CPU、存储设置、输入输出设备组成。
1.4. 软件
计算机的软件包括操作系统,系统软件和应用软件。
1.5. 操作系统概述
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
OS作为计算机系统资源的管理者,主要由以下作用:
l 管理处理器,用于分配和控制处理器
l 管理存储器,主要负责内存的分配与回收
l 管理I/O设备,负责I/O设备的分配与操纵
l 管理文件,负责文件的存取、共享和保护
常见操作系统:
操作系统 |
应用情况 |
Windows操作系统 1983 |
应用比较广泛 |
Linux操作系统 1991 |
免费使用,类UNIX,一般安装在服务器上面 |
Unix操作系统 1970 |
无界面,使用命令操作,一般安装在服务器上面 |
Mac操作系统 1993 |
苹果公司开发的,一般PC不能使用 |
Android操作系统 |
主要用于智能终端设备 |
2. Linux系统概述和安装
2.1. Linux系统概述
- Linux创始人: 林纳斯 托瓦兹
l Linux 诞生于1991年,作者上大学期间
l Linux诞生原因:
因为创始人在上大学期间经常需要浏览新闻和处理邮件,发现现有的操作系统不好用, 于是他决心自己写一个保护模式下的操作系统,这就是Linux的原型, 当时他21岁,后来经过全世界网友的支持, 现在能够兼容多种硬件,成为最为流行的服务器操作系统之一。
l Linux的特点
开源,免费,拥有最为庞大的源码贡献者
l Linux的吉祥物
- Linux系统结构
2.2. Linux发行版介绍
对于Linux操作系统来说,其本身是一个整体,包括Linux内核、系统库和系统程序,Linux内核是其最基础的部分,它实现了对硬件资源的控制和管理,并且提供了使用这些硬件资源的通用接口。
自1991年发布Linux内核来,很多公司加入其中,在内核的基础上构建了自己的操作系统版本,这个被称为Linux的发行版。
l Redhat:目前,全球最大的Linux发行厂商,功能全面、稳定。
l Redhat 被 IBM 收购!
l Ubuntu:目前,是Linux桌面操作系统做的最好的。
l Centos:免费版的redhat,Centos 基于 redhat 发行版基础之上,再重新编译发布的版本。
l 目前 Centos 已经被 Redhat 公司收购,但是依然免费
l deepin:目前,国内做的最好的一款Linux发行版
2.3. 虚拟机介绍
虚拟机 (Virtual Machine) 指通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统。
虚拟系统通过生成现有操作系统的全新虚拟镜像, 具有真实操作系统完全一样的功能.进入虚拟系统后, 所有操作都是在这个独立全新的独立的虚拟系统里面进行, 可以独立安装运行软件, 保存数据, 不会对真正的系统产生任何影响。
常用的虚拟机软件:
VMware |
这款虚拟机软件兼容性很强,快照功能很快捷,方便,允许你在任意开机时刻创建系统快照和恢复,十分实用 |
VirtualBox
|
Sun公司的产品,属于轻量级的虚拟机平台,而且是开源的,完整安装包很小,功能相对也很精简,快照功能这里叫备份和快速修复,在不同的快照间跳转用起来感觉不是很方便,也不能实现文件拖拽的功能 |
2.4. VMware安装
2.5. Linux系统(CentOS)系统安装
查看02_安装Centos.doc文档
请注意,在基础班,为了让大家尽快进入知识点的学习中,不建议大家去安装Linux系统,直接使用课程提供的Linux系统即可,该Linux系统中已经搭建好了基础班需要的所有开发环境。
2.6. 使用VMware打开Linux系统
1)下载课程提供的Linux系统压缩包
2)解压以上压缩包,得到以下文件夹,
3) 将Linux系统加载到VMware中(打开方式)
方式1:双击解压文件夹中的node1.vmx文件
方式2:打开VMware,点击菜单:文件->打开->找到Linux系统解压文件夹下的node1.vmx文件
4)Linux系统被加载到VMware中之后,点击开启虚拟机即可
4) 使用root用户登录,密码是:123456
2.7. 虚拟化技术问题
如果在使用VMware打开Linux系统时弹出以下窗口,则说明电脑没有开启虚拟化技术,需要进入电脑Windows系统的BIOS来开启虚拟化技术。
开启电脑虚拟化技术方式:
1) 重启Windows电脑,进入BIOS启动界面,设置虚拟化启用,不同品牌的电脑进入BIOS的方式可能会不同,一般都是在重启电脑后,按住f2或者f12或者Esc键可以进入BIOS。
2) 进入BIOS之后,找到Configuration选项(不同品牌电脑的BIOS界面可能会有不同),选择Intel Virtual Technology并回车,将光标移至Enabled,然后再回车,最后按F10或者Fn+F10键保存并退出。
3. 虚拟机和Linux系统配置
3.1. Linux系统网络配置
1)配置VMware虚拟网络
2)进行windows相关的网络配置
3.2. Linux连接工具FinalShell使用
FinalShell软件:
l FinalShell是一款美观易用、功能强大的国产网络服务管理软件,十分实用和方便,简单大方的界面设计让用户一目了然。
l 主要是通过命令行操作服务器
3.2.1. 安装
直接双击finalshell_install.exe文件进行安装,安装过程中提醒需要安装WinPacp,直接点击确定即可
3.2.2. 配置
1、配置连接Linux系统:
参数配置:
2、样式设置:
4. Linux操作命令
4.1. Linux目录结构介绍
Linux的目录结构是一个树型结构
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面
常用的目录介绍:
目录 |
作用 |
/bin |
二进制命令所在的目录 |
/boot |
系统引导程序所需要的文件目录 |
/dev |
设备软件目录,磁盘,光驱, |
/etc |
系统配置,启动程序 |
/home |
普通用户的家,目录默认数据存放目录 |
/lib |
共享库文件和内核模块存放目录 |
/mnt |
临时挂载储存设备的挂载点 |
/opt |
额外的应用软件包 |
/proc |
操作系统运行时,进程信息和内核信息存放在这里 |
/root |
Linux超级权限用户root的家目录 |
/sbin |
和管理系统相关的命令,【超级管理员用】 |
/tmp |
临时文件目录,这个目录被当作回收站使用 |
/usr |
用户或系统软件应用程序目录 |
/var |
存放系统日志的目录 |
4.2. 学习Linux终端命令的原因
l Linux刚面世时并没有图形界面, 所有的操作全靠命令完成, 如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
l 在职场中,大量的服务器维护工作都是在远程通过SSH客户端 来完成的, 并没有图形界面, 所有的维护工作都需要通过命令来完成
l 在职场中,作为后端程序员,必须要或多或少的掌握一些Linux常用的终端命令
l Linux发行版本的命令大概有200多个, 但是常用的命令只有10多个而已
学习终端命令的技巧 l 不需要死记硬背, 对于常用命令, 用的多了, 自然就记住了 l 不要尝试一次学会所有的命令, 有些命令是非常不常用的,临时遇到, 临时百度就可以 |
4.3. 终端命令格式
command [-options] [parameter] |
说明:
- command : 命令名, 相应功能的英文单词或单词的缩写
- [-options] : 选项, 可用来对命令进行控制, 也可以省略
- parameter : 传给命令的参数, 可以是 零个、一个 或者 多个
4.4. 显示文件列表命令
ls 是英文单词list的简写, 其功能为列出目录的内容,是用户最常用的命令之一
ls常用选项
如果只使用ls命令就只能看到当前目录下非隐藏文件。
如果想增强功能,就需要学习更多的选项
选项 |
含义 |
-a |
显示指定目录下所有子目录与文件, 包含隐藏文件 |
-l |
以列表方式显示文件的详细信息 |
-h |
配合 -l 以人性化的方式显示文件大小 |
常见使用命令:
ls #查看当前目录内容 (缺点: 隐藏文件看不到) ls -a #查看当前目录内容 ,包括隐藏文件 ls -al #查看目录内容的详细信息(查看文件类型、权限、大小等) ls -lh #查看目录内容的详细信息,以K,M,G方式显示文件大小 ls /root #查看/root目录下内容 ll |
4.5. 目录查看、目录创建和目录删除命令(pwd、mkdir、rm/rmdir)
l pwd命令
查看当前所在目录
[root@node1 ~]# pwd /root |
l mkdir命令
该命令用于创建目录
注意: 新建目录的名称 不能与当前目录中 已有的目录或文件 同名
1)创建没有层级关系的目录
mkdir 目录名
mkdir test |
2)创建有层级的目录
mkdir -p 目录1/目录2/目录3
mkdir -p /root/aaa/bbb |
l rm命令
该命令用于删除文件或者目录
参数解释:
参数 |
英文 |
含义 |
-f |
force (强制) |
强制删除,忽略不存在的文件或目录, 无需提示 |
-r |
recursive (递归) |
递归地删除目录下的内容, 删除目录时必须加此参数 |
使用方法:
rm -r 目录 #删除目录有提醒
[root@node1 ~]# rm -r test rm:是否删除目录 "test"? |
rm -fr 目录 #直接删除目录(不管有没有内容)
[root@node1 ~]# rm -fr test [root@node1 ~]# |
4.6. 目录切换命令
cd 是英文单词 change directory 的缩写, 其功能为 更改当前的工作目录, 也是用户最常用的命令之一
注意: linux的所有 目录 和 文件名 都是大小写敏感的
命令 |
含义 |
cd |
切换到用户主目录(root用户主目录是/root,其他用户是/home/用户名) |
cd 目录 |
切换到指定目录下 |
cd .. |
切换到上级目录 |
cd - |
可以在最近的两次目录之间切换 |
实例:
cd #回到用户主目录 cd test #切换到当前目录下的test目录(相对路径) cd /root/test #切换到指定目录(绝对路径) cd .. #回到上一级目录 cd ../.. #回到上上一级目录 cd ../dir #回到上一级的dir目录 |
4.7. 文件操作命令
4.7.1. touch命令
touch命令创建文件
touch 文件路径
touch a.txt #在当前目录创建a.txt文件 touch /root/a.txt #在/root目录创建a.txt文件 |
4.7.2. mv命令
通过 mv 命令可以用来移动文件或目录, 也可以给文件或目录重命名
将文件移动另一个目录中:
mv 文件 目录/
touch a.txt 创建文件 mkdir dir mv a.txt dir ls dir |
重命名
mv 旧文件名 新文件名
mv a.txt b.txt #重命名文件 mv dir1 dir2 #重命名目录 |
将目录移动 到 另一个目录中:
mv 被移动目录 目标目录
mv dir1 / |
l rm-文件删除命令rm
rm -f 文件名
rm -f a.txt #强制删除一个文件 |
4.7.3. cat命令
cat 文件路径
cat /root/initial-setup-ks.cfg |
4.7.4. cp命令
cp a.txt dir1 #将a.txt复制到dir1目录 cp a.txt b.txt #将a.txt复制到b.txt |
非常重要:查看历史命令
history
命令补全
ll “部分字符串”
cat “部分字符串” 都是通过tab键命令补全
4.8. 压缩和解压命令tar
参数解释:
参数 |
解释 |
-c |
创建一个新tar文件 |
-v |
显示运行过程的信息 |
-f |
指定文件名 |
-z |
调用gzip压缩命令进行压缩 |
-t |
查看压缩文件的内容 |
-x |
解开tar文件 |
4.8.1. 解压
tar -zxvf 压缩文件 [-C] [指定解压目录]
示例:
tar -zxvf redis-3.2.8.tar.gz #将文件解压到当前目录 tar -zxvf redis-3.2.8.tar.gz -C /root/dir #将文件解压到指定目录 |
4.8.2. 压缩
tar -c[z]vf 压缩文件 目录
tar -cvf test.tar /root/test #打包 tar -czvf test.tar.gz /root/test #打包并压缩 |
4.9. 文件查找命令
4.9.1. find指令
用于查找符合条件的文件
示例:
find / -name 'ins*' #查找/目录下以文件名ins开头的文件 find / -type f -size +100M #查找/目录下文件大小大于100M的文件 |
4.9.2. grep命令
grep命令可以对文件进行文本查询
grep lang anaconda-ks.cfg #在文件中查找lang grep a anaconda-ks.cfg --color #在文件中查找a,高亮显示 |
4.9.3. which命令
which 查看可执行文件的位置。
which pwd #查找pwd命令的路径 |
4.10. 系统管理命令
4.10.1. ps命令
ps命令用来列出系统中当前运行的那些进程
ps -ef #查看所有进程 |
4.10.2. kill命令
kill命令用于终止执行中的程序
kill -9 12345 #杀死pid为12345的进程 |
4.10.3. 管道命令
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
ps -ef | grep java #查询名称中包含java的进程
4.11. 用户的创建和删除命令
4.11.1. 用户创建和密码设置
useradd 用户名
passwd 用户名
useradd itheima #创建新用户itheima passwd itheima #设置用户itheima密码 |
4.11.2. 用户删除
Userdel -r 用户名
userdel -r itheima #删除用户itheima |
4.12. 权限管理命令
4.12.1. 文件权限概述
Linux操作系统是多任务多用户操作系统,每当我们使用用户名登录操作系统时,Linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。
在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,而其他用户都是普通用户。
Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。
4.12.2. 文件权限解读
|
文件目录列查看权限 |
|
权限说明 |
|
|
属主(user)u |
属组(group)g |
其他用户(other)o |
||||||
r |
w |
x |
r |
w |
x |
r |
w |
x |
4 |
2 |
1 |
4 |
2 |
1 |
4 |
2 |
1 |
r: 对文件是指可读取内容 对目录是可以ls 如果是文件夹ll可以看见
w: 对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件) 如果是文件夹mkdir rm
x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录 如果是文件夹cd
4.12.3. chmod命令
chmod命令用来变更文件或目录的权限。
chmod 666 a.txt chmod u+x a.txt chmod u=rwx,g=rw,o=x a.txt |
4.13. 网络和服务管理命令
4.13.1. hostname命令
hostname 查看主机名
[root@node1 ~]# hostname node1 |
4.13.2. ifconfig命令
查看主机ip地址
4.13.3. service
service命令是用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
service network status #查看网络服务状态 service network stop #停止网络服务 service network start #启动网络服务 service network restart #重启网络服务 |
4.14. 其他命令
4.14.1. Ln 命令
Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
ln命令可以用来创建软连接,类似于创建快捷方式
命令格式:
ln [参数][源文件或目录][目标文件或目录]
实例:
ln -s 2.txt 1.txt |
|
4.14.2. clear命令
清屏命令,还可以使用快捷方式:ctrl + l
5. vi编辑器
5.1. vi编辑器介绍
vi是visual interface的简称, 是Linux中最经典的文本编辑器
vi的核心设计思想:让程序员的手指始终保持在键盘的 核心区域, 就能完成所有编辑操作
vi的特点:
1.只能是编辑文本内容, 不能对字体段落进行排版
2.不支持鼠标操作
3.没有菜单
4.只有命令
5.2. vi编辑器使用
vi a.txt #直接打开文件 vi a.txt +10 #直接打开文件,并定位到第10行 |
Vi编辑器三种模式:
1. 命令模式
- 打开文件首先进入命令模式, 是使用vi的入口
- 通过 命令 对文件进行常规的编辑操作, 例如 定位 翻页 复制 粘贴 删除
- 在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在 命令模式 下实现
2. 末行模式 -- 执行 保存 退出等操作
- 要退出 vi 返回到控制台, 需要在莫行模式下输入命令
- 末行模式 是 vi 的出口
3. 编辑模式 -- 正常的编辑文字
5.3. 命令行模式常用命令
命令 |
功能 |
o |
在当前行后面插入一空行 |
O |
在当前行前面插入一空行 |
dd |
删除光标所在行 |
ndd |
从光标位置向下连续删除 n 行 |
yy |
复制光标所在行 |
nyy |
从光标位置向下连续复制n行 |
p |
粘贴 |
u |
撤销上一次命令 |
gg |
回到文件顶部 |
G |
回到文件末尾 |
/str(字符串) |
查找str字符串 |
5.4. 底行模式常用命令
命令 |
功能 |
:w 文件名 |
另存为 |
:w |
保存(ctrl + s) |
:q |
退出, 如果没有保存,不允许退出 |
:q! |
强行退出, 不保存退出 |
:wq |
保存并退出 |
ZZ |
保存并退出 |
:x |
保存并退出 |
:set nu |
设置行号 |
:%s/旧文本/新文本/g |
文本替换 |