Linux系统引入

1、为什么学linux?
      服务器本质是一台电脑,组成:硬件+操作系统(linux)+软件

2、linux使用场景

2.1.服务器的操作系统

服务器要求可用性高,即能够给客户端提供服务,大公司,要求6个9,即一年的可用时间占比99.9999%,而linux稳定性特别高

2.2.区块链的矿机

区块链的矿机的操作系统:Linux

2.3.桌面操作系统

玩不转的

2.4.作为各种嵌入式设备的操作系统

例如机顶盒、移动电话、智能家居设备等等,在移动电话领域的第一大操作系统的Android就是基于Linux内核的

2.5.用在超级计算机作为操作系统

大型学数机构、科研机构使用的超级计算机,linux的运算能力特别强。

3、linux系统的分类:

3.1.按照市场需求分

·桌面版:类似于Windows的,有图形化界面的操作系统。不成熟
·服务器版:没有图形化界面,使用命令行进行操作的。企业里通常会使用服务器版的linux

3.2.按照原生程度分

·内核版: Lius领导的开发小组,维护的内核版本。(官方版)
·发行版:一些企业、社区在内核的基础上,增加一些功能、软件,然后重新发行的版本(比如安卓)redhat、centos、ubuntu


4、虚拟机

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

物理机是真实存在的电脑,虚拟机的硬件从物理机分过来

5、虚拟机软件:(用来创建虚拟机)

1.VirtualBox:开源免费,但是安装和卸载很麻烦
2.VMWare Workstation:安装和使用很简单,但是收费

我们选择安装VMWare软件(12以上的),安装好以后创建虚拟机,前提是要电脑开启虚拟化支持

 · VM16:硬件要求高,Windows 10 或更高版64位
 · VM15:硬件要求中,Windows 7 或更高版64位
 · VM12:硬件要求低,Windows 7 或更高版64位
 · VM10:Windows XP 或更高版32位和64位旧版
 · 注意:VM14版本开始不支持某些旧的电脑硬件,会提示不支持或安装失败, 如遇到请退回12版本。

下面这三步骤挺繁琐的,需要专业人士指导

  1. 创建虚拟机
  2. 开启虚拟机安装CentOS操作系统
  3. 设置静态IP

6、安装和使用远程访问工具

安装和配置倒是不很麻烦。直接用老师资料里发的,开箱即用,这大概也是培训的好处了。

远程连接的软件:
1.远程文件传输的软件:xftp

2.远程连接软件(执行命令行操作):xshell


Linux的基础

1、linux目录结构

在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

linux没有盘符,只有目录结构

/root超级管理员的用户主目录
/home普通用户的主目录
/etclinux的系统配置文件
/user很多应用程序和文件都在这个目录
/opt装软件(针对解压就装好了的软件)
/user/local装软件(需要点下一步的软件)


2、常用快捷键

按键作用
Ctrl+l清屏
Ctrl+c强制终止程序
Ctrl+Insert复制
Shift+Insert粘贴
Ctrl+s锁屏
Ctrl+q解除锁屏
tab自动补全

tab一下,tab俩下。补全目录


3、基本命令

man  ls 查看帮助手册

q 退出

----------

ls --help (看后面可以加什么参数)

----------

date(当前日期时间)
date +%Y-%m-%d (指定格式显示日期)
date +%Y-%m-%d' '%H:%M:%S
date +%F' '%T

---------
cal -y 日历
----------
clear ctrl+L 清除屏幕
reset  清除屏幕(真正都清调)

----------

ifconfig  查看ip配置

注意在windows中,是使用ipconfig查看当前所有网路的连接信息

-------------

ping + ip  可以检测俩台主机是否能正常通信,是windows和linux通用的命令

----------
history 查看命令历史
-----

命令作用
sync将内存中数据保存到磁盘
poweroff关机
reboot重启

关机:
挂起:电脑重启后会保留关机前的状态

-------------
wget 下载文件

使用 -P 参数可以指定目标目录

wget -P /root https://mirrors.tuna.tsinghua.edu/apache/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz

文件目录命令

pwd 打印当前目录的绝对路径 ,print wroking directory

绝对路径:以/开头的路径,开头的/表示Liux的根目录

相对路径:开头不是/就是相对路径

相对路径是以“你当前所在路径的相对位置”来表示的。

./标示当前目录
..表示上一级路径

1.切换目录命令  

cd 目录路径(分为绝对路径和相对路径)
cd ~ 回家,
cd - 从哪来的再回到哪去
cd .. 返回上级目录
cd / 返回根目录


2.列出目录中的文件

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 逆序列出最近修改的文件


3.创建和删除目录

mkdir ./app  ./可以省略
mkdir -p ./app2/test1/test2 创建多级目录
rmdir app,只能删除一个空目录


4.创建和删除文件

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)


5.移动文件或目录

mv 要移动的文件或目录路径 目标路径      ./a.txt ./app/ 
mv 文件重命名或者文件夹重命名 mv b.txt a.txt


6.复制文件或目录

复制文件:cp 要复制的文件 目标路径
复制目录:cp -r 要复制的目录 目标路径
\cp -rf 强制覆盖复制 ,不再询问是否覆盖


7.cat查看文件

语法:cat 文件路径

cat a.txt

查看小文件,一次性查出来。文件太大内容会丢失

cat 文件1 > 文件2

将文件1的内容覆盖文件2的内容

cat 文件1 >> 文件2

将在文件2的内容后面追加文件1的内容


8.more 查看大文件(一页一页看)

空格:下一页
回车:一行

可以使用空格键向下翻页,使用回车键向下翻行,使用q退出查看,使用Ctrl + F向下滚动一屏,使用Ctrl + B返回上一屏


9.less 查看大文件,查看时可以搜索

/application,当前位置向下搜索   n/N移动
?web,当前位置向上搜索

可以使用/字符串向下搜索字符串,使用?字符串向上搜索字符串,使用n正向重复前一个搜索(与/和?搜索有关),使用N反向重复前一个搜索


10.tail 查看变化的文件

语法:tail - 数字 文件路径

查看指定文件的末尾多少行

tail -4 a.txt 查看文件末尾4行,用于变化的文件,比如日志文件


11.echo 输出

echo $PATH 输出变量,$是全局


解压压缩类

1、打包和压缩

在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:指定压缩包文件名称(必须)。后边跟参数值:压缩包名称


2、解包和解压

解压语法: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解压到当前目录


搜索查询找类

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 参数 ,返回不匹配关键字的那些行(反转)

管道:Liux中的管道的作用是将 管道左边的结果交给管道右边的命令进行下一步处理!

grep管道筛选

对于管道筛选而言|前面的表示数据源(需要从数据源中筛选),| grep后面表示筛选条件

en,使用 grep管道筛选使用起来真香。。。 


软件包管理

1、RPM包

rpm包的命名格式

RPM查询命令

rpm -qa 查询所安装的所有的rpm软件包

演示:rpm -qa | grep firefox

RPM卸载命令

rpm -e 软件包

rpm -e --nodeps 软件包

-e 卸载软件包

--nodeps 卸载软件时,不检查依赖

演示卸载firefox软件:

rpm -e firefox //卸载时不需要包全名

rpm -qi firefox

RPM安装命令

rpm -ivh 包全名    //安装时必须包全名

。。。。怎么找到那个安装包呢、?哭戚戚


2、YUM仓库

YUM 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包

基本语法

yum [选项] [参数]

选项说明

-y 对所有的提问都回答"yes"

参数说明

install 安装rpm软件包

update 更新rpm软件包

check-update 检查是否有可用的更新rpm软件包

remove 删除指定的rpm软件包

list 显示软件包信息

clean 清理yum过期的缓存

deplist 显示yum软件包的所有依赖关系

使用yum 安装firefox

安装命令:yum -y install firefox

安装完成后查看:

 


文件编辑-使用命令

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解锁,然后继续操作。

更多推荐

22-06-24 西安 linux(01) linux环境搭建、常用命令、vim编辑