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

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普通用户的主目录
/etclinux的系统配置文件
/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

  1. yum list:列出所有可安裝的软件清单(列出所有的包,已安装的和可用的)

  2. yum list installed:列出所有已安装的软件包

  3. yum list available:查看所有可用的软件包

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值