Linux系统引入
1、为什么学linux?
服务器本质是一台电脑,组成:硬件+操作系统(linux)+软件
应用场景:.服务器的操作系统
服务器要求可用性高,即能够给客户端提供服务,大公司,要求6个9,即一年的可用时间占比99.9999%,而linux稳定性特别高
2、linux系统的分类
1.按照市场需求分
·桌面版:类似于Windows的,有图形化界面的操作系统。不成熟
·服务器版:没有图形化界面,使用命令行进行操作的。企业里通常会使用服务器版的linux
2.按照原生程度分
·内核版: Lius领导的开发小组,维护的内核版本。(官方版)
·发行版:一些企业、社区在内核的基础上,增加一些功能、软件,然后重新发行的版本(比如安卓)redhat、centos、ubuntu
3、虚拟机软件
虚拟机软件:用来创建虚拟机,如VMWare Workstation
安装VMWare软件(12以上的),安装好以后创建虚拟机,前提是要电脑开启虚拟化支持
· VM16:硬件要求高,Windows 10 或更高版64位 · VM15:硬件要求中,Windows 7 或更高版64位 · VM12:硬件要求低,Windows 7 或更高版64位 · VM10:Windows XP 或更高版32位和64位旧版 · 注意:VM14版本开始不支持某些旧的电脑硬件,会提示不支持或安装失败, 如遇到请退回12版本。
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
物理机是真实存在的电脑,虚拟机的硬件从物理机分过来
4、finalShell
5、linux目录结构
在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
linux没有盘符,只有目录结构
/root 超级管理员的用户主目录 /home 普通用户的主目录 /etc linux的系统配置文件 /user 很多应用程序和文件都在这个目录 /opt 装软件(针对解压就装好了的软件) /user/local装软件 (需要点下一步的软件)
实际项目中 etc/profile加过jdk的环境变量配置
6、打开终端
桌面-右键- open Terminal
ifconfig 查看ip配置
注意在windows中,是使用ipconfig查看当前所有网路的连接信息
查看系统的内核版本
uname -r
文件目录命令
1、pwd
pwd 打印当前目录的绝对路径
绝对路径:以/开头的路径,开头的/表示Liux的根目录
相对路径:开头不是/就是相对路径
相对路径是以“你当前所在路径的相对位置”来表示的。
./标示当前目录 ..表示上一级路径
2、切换目录命令
cd 目录路径(分为绝对路径和相对路径)
cd ~ 回家
cd - 从哪来的再回到哪去
cd .. 返回上级目录
cd / 返回根目录
3、列出目录中的文件
ls 列出当前目录内容,即文件名列表
ls /user 列出指定目录
ls -a 列出当前目录内容包括所有隐藏内容
ls-A 列出除. 及.. 以外的任何项目
------
ls -l 额外列出文件的详细信息 ,简为ll
ls -al 额外列出文件的详细信息(包括隐藏内容) ,简为ll -a
---------
ll -h 文件大小以kb方式显示(得到了1kb),mb显示文件大小
--------
ls -R /user R是递归,把目录和子目录列出
ll -ltr 逆序列出最近修改的文件
4、创建和删除目录
mkdir ./app ./可以省略
mkdir -p ./app2/test1/test2 创建多级目录
rmdir app,只能删除一个空目录
5、创建和删除文件
touch ./app2/test1/test2/a.txt
touch b.txt 当前目录下创建b.txt
rm b.txt 删除当前目录下的b.txt,会询问
rm -f b.txt 删除b.txt且不询问
rm -rfv app2 递归删除app2, 不询问(f),递归(r),且列出删除的东西(v)
6、移动文件或目录
mv 要移动的文件或目录路径 目标路径 ./a.txt ./app/
mv 文件重命名或者文件夹重命名 mv b.txt a.txt
7、复制文件或目录
复制文件:cp 要复制的文件 目标路径
复制目录:cp -r 要复制的目录 目标路径
\cp -rf 强制覆盖复制 ,不再询问是否覆盖
查看文件
1、cat查看文件
语法:cat 文件路径
cat a.txt
查看小文件,一次性查出来。文件太大内容会丢失
cat 文件1 > 文件2
将文件1的内容覆盖文件2的内容
cat 文件1 >> 文件2
将在文件2的内容后面追加文件1的内容
2、more 查看大文件
more 查看大文件(一页一页看)
- 可以使用空格键向下翻页
- 使用回车键向下翻行
- 使用q退出查看
- 使用
Ctrl + F
向下滚动一屏 - 使用
Ctrl + B
返回上一屏
3、less 查看大文件
less 查看大文件,查看时可以搜索
/application,当前位置向下搜索 n/N移动
?web,当前位置向上搜索
可以使用
/字符串
向下搜索字符串
,使用?字符串
向上搜索字符串,使用n
正向重复前一个搜索(与/和?搜索有关),使用N
反向重复前一个搜索
4、tail 查看变化的文件
语法:tail - 数字 文件路径
查看指定文件的末尾多少行
tail -4 a.txt 查看文件末尾4行,用于变化的文件,比如日志文件
实时打印日志文件log.log
参数 -f,可以用来查阅正在改变的日志文件
tail -f log.log
结合使用
查看最后1000行并实时监听文件的更新
tail -1000f doupo.txt
5、echo 输出
echo $PATH 输出变量,$是全局
搜索查询找类
1、find查找文件或者目录
find指令将从指定目录向下递归遍历其各个子目录,将满足条件的文件显示在终端。
语法:find [搜索范围] [选项]
选项 功能 -name 按照指定的文件名查找文件 -user 查找属于指定用户名所有文件 -size 按照指定的文件大小查找文件
*常用来匹配固定后缀的文件 ,搜索范围可以是绝对路径也可以是相对路径
2、locate快速定位文件路径
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,基于索引搜索。建立索引可以极大提升查询的速度
语法 locate 搜索的文件
系统启动时把每一个目录、每一个文件的完整路径保存到索引库中。使用locate命令搜索关键词时,就使用关键词查询索引库,把匹配的路径字符串返回。
而新建的文件或目录不会被系统把路径存入索引库,那么使用locate命令就搜索不到。此时使用updatedb命令更新一下索引库就行了
locate pwd 查找和pwd相关的所有文件,
全文搜索与关键字相关的文件或者目录
注意:新建文件之后使用updatedb
更新索引库,然后再搜索
3、grep过滤查找
grep根据关键字匹配行
grep:find和locate找的是文件名筛选文件,grep是根据文件内容筛选文件
语法: grep -n boot a.conf ,表示在a.conf文件中搜索关键字boot,n 参数,表示搜索结果中显示行号
v 参数 ,返回不匹配关键字的那些行(反转)
4、管道符
管道:Liux中的管道的作用是将 管道左边的结果交给管道右边的命令进行下一步处理!
grep管道筛选
对于管道筛选而言|
前面的表示数据源(需要从数据源中筛选),| grep
后面表示筛选条件
en,使用 grep管道筛选使用起来真香。。。
软件包管理
1、RPM包
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”
RPM查询命令
rpm -qa 查询所安装的所有的rpm软件包
演示:rpm -qa | grep firefox
rpm包的命名格式
RPM卸载命令
rpm -e 软件包
rpm -e --nodeps 软件包
-e 卸载软件包
--nodeps 卸载软件时,不检查依赖
演示卸载firefox软件:
rpm -e firefox //卸载时不需要包全名
rpm -qi firefox
RPM安装命令
rpm -ivh 包全名 //安装时必须包全名
。。。。怎么找到那个安装包呢、?哭戚戚
2、YUM仓库
yum也是一个软件,因此在使用之前,可以先确认是否已经安装。
rpm -qa | grep yum
YUM 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包。
yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装(或升级)。
yum [选项] [参数] [包名]
选项说明
-y 对所有的提问都回答"yes"
-q 不显示安装的过程
------------------------------------------------------------
参数说明(参数:要进行的操作)
install 安装rpm软件包 update 更新rpm软件包 check-update 检查是否有可用的更新rpm软件包 remove 删除指定的rpm软件包 list 显示软件包信息 clean 清理yum过期的缓存 deplist 显示yum软件包的所有依赖关系
使用yum 安装firefox
安装命令:yum -y install firefox
yum list
:列出所有可安裝的软件清单(列出所有的包,已安装的和可用的)
yum list installed
:列出所有已安装的软件包
yum list available
:查看所有可用的软件包
yum list updates
:列出所有可更新的软件包
3、打包和压缩
在Linux系统环境中,很多程序安装包都是以tar包的形式提供下载的
打包:将多个文件打包成一个文件,在此过程中不会对文件的体积进行压缩
压缩:将多个文件打包压缩成一个文件,在此过程中会对文件的体积进行压缩demo.tar(打包)
demo.tar.gz (压缩)
注意:把多个文件放在文件夹不叫打包
压缩语法:
tar -zcvf 压缩包 文件1 文件2 ...
tar -zcvf demo.tar.gz a3.txt b3.java c3.iml
- z:指定压缩算法为gzip(可选)
- c:压缩后要创建压缩文件(必须)
- v:在压缩过程中列出文件列表(可选)
- f:指定压缩包文件名称(必须)。后边跟参数值:压缩包名称
4、解包和解压
解压语法:tar -zxvf 压缩包 -C 解压位置
tar -zxvf demo.tar.gz -C /root/app4
不写参数C:则要解压到当前文件夹里
- z: 表示使用`gzip`算法解压(可选)
- x:extract, 调用解压命令,执行解压操作(必须)
- v:在解压缩过程中列出文件列表(可选)
- f:指定要解压的文件名称(必须)。后边跟参数值:压缩包名称
- C:指定解压的位置(可以不写)
- 如果写参数C:就需要指定解压的位置,必须是已经存在的文件夹
- 如果不写参数C:要解压到当前文件夹里
注意:linux里基本不会出现zip文件
zip demo.zip *.txt
表示将当前目录中的所有txt
文件压缩到demo.zip
中
unzip demo.zip
表示将demo.zip
解压到当前目录
文件编辑-使用命令
vim 是之前vi编辑器的升级版本
1、一般模式下的按键操作
进入到一般模式,此时我们无法自由编辑文件,但是可以进行整行的复制、粘贴、删除
yy 复制光标所在行
p 粘贴
dd 删除光标所在行
nyy/yny 复制n行(是向下复制n行,不是把一行复制n次) np 粘贴n次
实操
从光标所在行开始:复制2行,粘贴2次,结果如下
-----------------------------------------
ndd/dnd 从光标所在行开始向下删除n行
结果是
u 撤销
ctrl+r 反撤销
r 替换当前光标所在的字符
怎么进行光标的快速移动
gg 光标移动到整片文档第一行
G 光标移动到整片文档最后一行
数字+G 光标移动到指定行b/e 跳到上一个词头/跳到下一个词的词尾。也可以左右一个字符一个字符跳
shift+6(^)光标移动到行头
shift+4($)光标移动到行尾
2、进入编辑模式
因为一般模式下我们无法自由编辑内容,所以需要进入编辑模式来进行文件的编辑
关于怎么从一般模式进入到编辑模式?
i:进入到编辑模式后,光标位置不动 (insert)
I:移动到行的开头,开始输入
a: 光标向后移动一格,然后开始输入
A: 光标移动到行的末尾,然后开始输入
o: 进入编辑模式后光标到下一行(o是other的意思)
进入编辑模式后按Esc就可退出到一般模式
编辑模式下我们无法进行查找、保存等等操作,需要进入指令模式才能完成。
而进入指令模式需要从一般模式进入,所以需要先`Esc`退回一般模式
3、命令模式(底行模式) 英文模式
英文的
:
在一般模式下输入英文的:
,其实就是同时按Shift
和:
就可以看到文档最下方出现了一个:
,并且光标也出现在了:
后面,就表示进入了指令模式,此时我们就可以输入指令进行一些操作
:set nu | 显示行号 |
:w | 保存 |
:q | 退出 |
:wq | 保存并退出vim编辑器 |
q! | 强制退出,不保存修改 |
/w | 搜索“w” 按n/N 正向重复/反向重复 |
?w | 反向搜索“w” |
:%s/hello/你好/g | 全文替换 不加/g,则只替换每行第一个 |
对正则表达式来说,它是以行为单位查找匹配的内容。每一行只要找到第一个匹配那么就可以判断这一行就是匹配的,没有必要继续向后查找了。如果我们需要将一行中的每一个匹配都替换,可以在指令后加/g
常见问题
1、提示存在交换文件
目的是防止多个用户同时编辑一个文件
什么是交换文件:当一个文件正在被编辑的时侯,
会生成一个临时文件,命名方式是 .原文件名.swp,是隐藏文件如果没有正常退出编辑,如非正常关机 ,必须删除交换文件,才能编辑。
2、屏幕被锁
在Windows环境下大家已经习惯了使用Ctrl+s保存文档,但是在Linux环境下Ctrl+s是锁屏。如果是因为Ctrl+s锁屏那么可以使用Ctrl+q解锁,然后继续操作。