Linux系统概述
计算机的体系结构:
计算机由计算机硬件和计算机软件两个部分组成,其中计算机软件(Computer Software)可分为系统软件和应用软件
系统软件就是操作系统,是其他软件的基础
![在这里插入图片描述](https://img-blog.csdnimg.cn/fabecef7656747719decf99644b3abbf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
Linux系统的概述:
Linux系统诞生于1991年,在林纳斯·托瓦兹(Linus Torvalds)上大学期间因不满意教学中使用的
MINIX操作系统并出于个人爱好设计和研发的
Linux系统是一套免费、自由、开发源代码的类Unix操作系统,是一个基于Posix(Portable
Operating System Interface)标准和多用户、多任务、支持多线程的操作系统
Linux能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件
主要发行版本:
![在这里插入图片描述](https://img-blog.csdnimg.cn/bc8f539760234ac19fa422402e1878d9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
Redhat:目前最大的Linux发行商,功能全面并且稳定,于2018年10月被IBM以340亿美元的价格收购
Ubuntu:目前最好的Linux桌面版,拥有很人性化的亮丽的交互界面,强大的软件源支持
CentOS:是RHEL的克隆版本,可以认为是免费版本的Redhat系统
CentOS系统安装:
Vmware的下载和安装:
Vmware虚拟机(可以称他为系统安装显示对应环境的软件):
虚拟机指通过软件模拟的具有完整硬件系统功能(一般需要安装对应系统),运行在一个完全隔离环境中的完整计算机系统
实体计算机中能够完成的工作在虚拟机中都能够实现,计算机中创建虚拟机时
需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量
就如qq可以实现很多功能,微信也可以实现很多功能,而虚拟机实现的功能,类似于电脑可以实现的功能
qq是文件操作,虚拟机也是文件操作,只不过qq是面向用户,而虚拟机是面向电脑的使用
在创建虚拟机时,稍后安装操作系统,其实就相当于买一台电脑回来的意思
下载地址:https://www.vmware.com/cn.html
按照安装教程一步步操作即可
CentOS系统的下载和安装:
下载地址:https://www.centos.org/
按照安装教程通过Vmware软件进行CentOS系统的安装
对应的软件和安装教程的地址:
链接:https://pan.baidu.com/s/1ShalhcCrx4rf8fk91YPWOg
提取码:alsk
最后:若打开(启动)虚拟机时,电脑自动出现蓝屏(发生错误),可以试一试中文的路径(原因可能是因为你的虚拟机软件是中文的),或者多试几次(内存原因),也有可能是文件权限问题,可以试一下在那个文件里进行创建文件夹,看看有没有需要管理员权限,当然,上面几种基本上是没问题的,只是一些特殊情况,一般都是下面的问题
即对应的设备冲突问题(一般都是这个),如图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1c6ff54d5f5444f5860356a0dd2ba7ed.png#pic_center)
可以移除几个设备,或者改变对应配置(信息),如后面的USB控制器(一般是这个),声卡,打印机等等,然后再尝试启动虚拟机
当然,若你直接移除多个,如上面说的三个,是最容易不会出现蓝屏的,因为基本不会有什么冲突,或者说配置冲突以及可能出现的空间的原因
虚拟机有一个快照功能,相当于windows的还原点,但要快很多,在虚拟机选项中找到快照,并拍摄
那么下次进行恢复时,就会回到这个快照(当前列表要存在对应虚拟机,否则不会有恢复的选项)
通常用于这个虚拟机系统出现问题时,进行恢复(如病毒木马的侵害)
在进行安装时,有一个全名和用户名,实际上全名就是Linux的一个用户,而用户名,就是Linux的一个用户文件夹(即主目录)
如windows的用户目录
一般的默认的root的密码就是安装时设置的用户秘密
目录结构(熟悉):
图形化界面一般会有一个VMware Tools,使得虚拟机和主机之间,可以通过复制粘贴进行文件传输
而没有这个界面的,一般没有VMware Tools,即需要对应操作,使得文件传输
框架结构:
![在这里插入图片描述](https://img-blog.csdnimg.cn/0422160c6d9645a58a0afb36b9e4f6f3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
目录详解:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c0a8324a94f6494da0afa80e60ad1f1d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
对应图解:
![在这里插入图片描述](https://img-blog.csdnimg.cn/11fa52ebfa2a4e92a7433c55e9abb89b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
常用命令(重点):
Shell的概念:
Shell俗称外壳,是提供用户使用界面的一种软件,叫做命令解释器
主要负责接受用户输入的命令,然后调用相应的应用程序,最后向用户输出程序运行的结果
命令的格式:
命令 [-选项] [参数]
命令区分大小写,其中选项和参数是可选的,中间采用空格隔开
常用命令的详解:
查看目录下文件/目录:
![在这里插入图片描述](https://img-blog.csdnimg.cn/3dac5d7985c64c6d9de959917f7b6478.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
ls 文件名(可以加其他操作,如-l),返回文件名的信息,当然ls 目录,也是可以加其他操作的,如-l
合理的都可以加
![在这里插入图片描述](https://img-blog.csdnimg.cn/0b46b88f7e2540deba1df7dff3c46ab5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
上面~代表当前用户权限与当前用户一样,即这个用户权限就是qidian
若su root,用户权限变成root权限(管理员权限),那么左边的就变成root了,右边就是qidian了,两者不一样,就不是~了
上面ls -l查询的目录介绍:
其中d代表目录的意思
rwx,代表读写执行的权限
三个位置,当前用户,用户组(如管理员组,普通用户组,访客组),其他用户,可以简称为属主,属组,其他属于
点" . "代表Linux的安全机制标识符
2表示硬连接文件数目
后面两个就是用户名称,用户组名称
6代表大小,然后后面一起就是最后一次修改时间
上面ls -a查询的目录介绍:
点" . "开头的是隐藏文件或文件夹
可以发现有" . “,和” … “,代表着当前目录,和上一级目录(所以可以知道为什么” … "代表上一级目录了,而不是一个点代表一个上级目录)
但根目录没有上一级,即" … "在根目录下不起作用
注意:ls -al中a和l是可以分开写,之所以可以这样,是因为-后面的识别是依次识别,所以识别a后,若是继续连着,那么就会识别l
就相当于ls -a -l,所以可以将-看成一个对应操作,操作只要包括,那么就会执行对应操作
即-的操作可以不分先后顺序的(一般其他的操作也是如此),所以ls -a -l和ls -l -a都是一样的(即中间也可以有其他操作)
即上面可以得出命令是连续的,即全部依次识别
除非有必要的指向,如echo j > a,将j内容覆盖写入a文件里,没有a文件就创建覆盖
像这样的,则需要规定位置,因为连续识别时,会判断后续连续
注意:识别使用空格或者其他符号进行隔开,一般使用空格
ls 目录名和ls 目录名/是一样的,因为并没有指定对应地址,所以像这样的操作,一般就是指定对应指定的目录下的
所以一般的,我们都是直接显示目录名,而不是目录名/,因为前者更加的代表是这个文件夹整体,而不是用符号表示整体
但进行操作时,如目录切换,需要/来进行划分等级(一般划分等级都需要/),代表操作后的当前文件夹下,所以.和./是一样的
但进行多个路径时,需要/来识别
如" …/…/ “而不是” … "(这里是识别不了的,不知道是一个点作用还是两个点作用)
cd命令只识别第一个位置的路径,所以… …后面的…不起作用
上面的/划分,一般系统的操作和大多数的操作基本都是如此
目录切换:
使用cd 进行命令切换时,可以使用tab键进行补齐,但需要一定程度的还原
我们也可以进行直接的/开始行走,或者当前行走
实际上就是下面的扩展应用,即连续识别,如cd /home/she,或者cd …/she,都是使用/来进行划分,使得目录跳转
![在这里插入图片描述](https://img-blog.csdnimg.cn/d9398db39e844262929b53a701e3a779.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
相对路径和绝对路径的概念
查看完整路径:
查看当前用户:
用户切换:
![在这里插入图片描述](https://img-blog.csdnimg.cn/045b85fed6f5404bad47c17b69e28ea3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
其中使用su虽然可以进行用户切换,但是目录都是进行变化,之所以这样说,看如下例子
假如原来she用户的目录是/home/she,当切换成root时,进行目录移动,移动为/home,这时使用su she
那么she用户目录就会到/home,本来目录从/home/she变成/home了
而当使用exit时,用户之间的目录移动,不会影响,那么上面的she用户任然是/home/she
所以最好使用su和exit搭配使用,否则多次使用su指令会导致用户的"叠加"
因为su就是切换用户(终端,在原来的基础上进行,所以只有一个窗口),所以每个的日志是不一样的
如上下按键使得的命令出现的上一个命令和下一个命令
即用户并没有退出,而一直使用su,那么这样的终端就会叠加(每多一个用户,就有一次叠加)
可以自己去试一下
多次使用su(同权限等级或者本身或者高等级,需要密码,高等级向低等级切换不需要密码,如root向普通用户切换不需要密码)
root对于同等级不需要密码
然后使用exit进行关闭,可以发现关闭了多次
exit也可以理解为关闭当前终端
管理用户:
![在这里插入图片描述](https://img-blog.csdnimg.cn/f14031c73d054ce2ae2827fe46ef2673.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
注意:创建用户后,会附带创建对应文件夹,且最好设置密码
否则就是未知数密码,这样的是切换不了到这个用户的,所以必须要设置密码
在进行切换目录时,基本只能进入自己权限内的东西(文件夹或者文件等)
而点击切换,一般就是原本用户(一般是普通)的权限访问
上面的userdel需要指定用户名,即userdel xxx(上面没有写)
但删除只是删除用户,并不会删除附带的文件夹,即原来创建用户时的文件夹不会删除
而由于这个文件存在,使得创建同名用户时,会认为你已经创建了,但实际上还是给你创建对应用户,只不过不会创建对应文件了
所以还是原来的文件夹,即提示你一下
若要删除对应文件夹,那么使用这个命令userdel -r xxx,删除用户同时,删除对应创建的文件夹
若这时你在对应删除的文件夹里,那么会有临时目录显示,当你退出时,就没有了
注意:删除对应用户时,对应终端必须要退出,因为被占用进程,所以会提示你删除失败
所以一般的,原用户是删不掉的,因为打开终端就是原用户
而要删除用户,就要切换到root用户,那么原用户就占用进程了,如此看来原用户一般删除不了
除非开始的位置就是root用户(无图形化界面的基本开始是root,所以可以删除)
clear清理当前窗口大小的的终端信息,并不是所有,是窗口显示的,实际上就是将当前位置移动到最上方,看起来清屏了而已
查看命令的所在目录:
文件操作:
无论是>还是>>,对应文件没有,都会创建进行操作,如覆盖,追加
![在这里插入图片描述](https://img-blog.csdnimg.cn/c44091455fce4e86949994c68eac50d7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
注意touch,可以创建稀奇古怪的文件,如a,txt,可以使用rm a,txt删掉这个文件,一般这样的都会被称为普通文件,就如a,b文件
实际上就是将a,txt当成名称(是一体的,因为没有对应识别),并不是将txt当成后缀,这两者文件是不同的,如一般编码不同
所以可以得出没有识别的(如不合理的),一般都会当成普通文件
more的查看分屏,最开始数量与终端窗口大小有关,回车是进行下一行操作,空格是下一页操作(与窗口有关),可以打出q退出
或者查看完会自动退出(所以不支持回看)
而less可以出来空格和回车外,还可以上下左右(下类似于回车),左右一段的看,即相当于移动窗口,上可以向上移动一行
所以可以回看,但不会自动退出,需要打出q退出
注意:有些滚动条可能会突然变成摆设的,如vi /etc/passwd,打开的文件滚动条虽然占满了(可能是其他原因,使得不动)
但还是可以进行鼠标滚动,这样的滚动条不动,基本上不会出现这种情况
按下:加上set nu可以看行数,注意无论是什么操作,最好是进入某个模式后,在操作,即开始最好是慢点操作
因为有些情况下,连续的按键可能会直接进入插入模式(使得插入不需要的内容,实际上是对应按键的作用),且可能会使得报错
wc查询的结果,左边是行数,单词使用个数,文件字节大小
目录操作:
![在这里插入图片描述](https://img-blog.csdnimg.cn/d93561813f5c4fbb84a849a725793449.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
rm必须指定文件全名,一般的指定文件都是全名的,因为a和a.txt是不同的(其他的系统一般也是如此)
rm也可以指向目录切换进行操作的,一般像指定文件的,都可以指定目录切换或者操作,如rm a/b.txt
rm -r 目录,其实可以删除多个目录(文件其实也可以)
因为这是rm的操作,对于操作来说,都可以进行多数的操作,如rm b a -r,删除b和a目录
但这样的操作路径的一般只能是两个路径,多余的会报错,即命令没有多余的执行
因为命令是一个整体,其他指定的是放在这个整体上面,所以一般都可以进行多数的操作
注意:若目录移动时,目标没有对应的一个目录,则类似于将这个移动过去重命名,但他mv也是可以移动文件的,不只是目录
其中目录可以理解为文件夹,且只要可以操作目录的基本都可以操作文件
上面的:
mkdir创建多个目录需要加上-p
cp拷贝目录需要加-r
rm删除目录需要加-r
-rf是一起的,根据前面的介绍,应该要知道如何变通了,如-r -f分开写,或者 -f -r互换位置
只要有就可以(中间可以有对应删除的路径),所以说,这个强制,其实就是-f的作用
注意:可以代表全部,即可以使用rm -rf / * ,简称删库跑路,所以这个东西,最好不要乱使用
查找操作:
![在这里插入图片描述](https://img-blog.csdnimg.cn/b5e180f944f64ae0a7b7a267ecf24619.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
像一些需要获得内容而没有的,基本什么都不返回,就需要写命令了,如上面grep命令,若指定文件没有,就什么都不返回
注意:这个查找是查找指定目录下的所有文件(包括文件夹里的文件)
模糊查询时,要使用引号包括(引号就是单引号和双引号都可),否则就认为你是查询对应的文件的
模糊查询里,*代表所有的数,如上面的p *,那么就是p开头的
其中上面的find ./ -type f可以查找所有文件,而find ./ -type d可以查找当前目录
实际上查找时,不只是文件,目录也会查找
一般的只要能操作文件的地方,那么对应的文件基本就可以写成目录(没有说明的情况下)
即可以操作目录(操作目录可能需要一些执行命令,如rm的-r)
像一些识别不了的命令(没有对应报错机制,可以ctrl+z或者ctrl+c退出),如grep ff,直接这样写,会不报错,但没有后续了
那么就可以使用上面的两个其中之一退出
如这里的查询
其中grep操作的文件不能是目录
权限管理:
进程管理:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c8c0c6a0903b4bb8ba40f9981194c58c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
我们如果需要多个命令一起执行,那么使用" | "隔开
通常也代表左边命令的执行结果给右边的命令来操作(即一般右边命令可以留下指定参数不写,比如文件等等,而一般用来使用操作左边的结果)
但并不是所有的命令是接收结果的,且不同的命令可能接收位置不一样,或者操作不一样,具体看当时的命令结构和底层原因了
如mkdir c|touch d可以创建c文件夹和d文件,没有操作什么结果
而上面的pa -aux |more可以将对应结果进行分屏(操作了结果),所以可以通过该命令,也可以改变数据(结果)的传递
一般()代表替换,极少数代表添加(或者不会认为),比如上面的数据(结果),实际上可以认为是数据或者结果
通常我会使用[]代表添加,但我基本不会这样,而是使用()代表两种意思,具体看对应的语句即可(通常不会认为是添加)
其中ps -ef,可以查看父进程的id(PPID),即进程之间的关系,而ps -aux不可以
一般的kill 进程号可能是杀不掉对应进程号的,即需要使用kill -9 进程号,强制杀死,可以对窗口进行实验
如ps后CMD是bash是一般就是当前窗口,你可以尝试一下杀死窗口
其它命令:
-c 创建压缩文件,压缩
-x 解开压缩文件,解压
-z 用Gzip压缩或解压,来实现操作他的压缩或者解压,一般可以不需要,会自动的选择
或者本身的压缩或者解压包含了可以操作他的后缀操作
-v 显示压缩或解压的过程,若不想看过程,可以去除
-f 目标文件名,即那个文件,一般需要放在最后,因为文件需要在他后面
当然,只要满足这个条件,那么命令自然也可以在文件的后面继续连接,比如tar -zxf xxx.tar.gz -v,这样的命令,而不能是tar -zfx xxx.tar.gz -v,这样的命令
根据上面的解释,所以在某些时候,只需要-xf来实现解压或者-cf来实现压缩就可以了
![在这里插入图片描述](https://img-blog.csdnimg.cn/a8e64f11fd30411895da02ef5d3e75af.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
上面压缩就是将对应文件/目录放在对应压缩名称里,当解压时,将对应内容取出来,放到当前文件夹里
当然可以通过参数来决定目录的位置或者指定在那个目录下面
比如:
tar -zxvf Mycat-server-1.6.7.5-release-20200410174409-linux.tar.gz `mkdir ./s` -C s
注意:有一些解压工具可能不会解压空的目录,一般在windows里可以看到
注意:若解压的文件有相同的,那么就会覆盖,即通过命令使得操作相同的文件或者目录,基本都会进行覆盖
由前面可推出,一组文件中,也是可以加上目录的,实际上实验时,的确可以,你可以自己试一试
使用man 对应命令主体(如ls),会告诉你对应命令的使用方式,可以使用上下作用,空格,回车,鼠标滚动进行操作
vi工具的使用(重点):
基本概念:
vi和vim是Linux系统命令行下的文本编辑器,通常格式为:vi 文件名 或 vim 文件名
三种模式:
![在这里插入图片描述](https://img-blog.csdnimg.cn/557711c6f3b34506824fd0c8eda65467.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iuf5oiQ5aSn5L2s,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
实际上底行模式也可以使用esc和回退键,即删除键(backspace)到命令模式
但底行模式的回车键,并不会删掉显示在命令中的:,虽然他并不起作用,因为是空指令
而esc则会删除显示
使用方式 :
命令模式的编辑命令:
命令行模式的删除命令:
命令行模式的修改命令 :
命令行模式的拷贝命令:
底行模式的命令 :
注意使用:
使用vimtutor 命令用来练习vi命令
用户主目录下.vimrc文件可以实现vi的简单设置,在任意位置,任意用户都可以vi .vimrc进入
写上set nu,那么所有的文件都有对应行号了,除了root,即可以理解为对文件的全局设置
若没有反应,可能需要在root下进行修改,之后就可以在任意位置修改了
注意:root和普通用户,对文件的操作都是同一个目录下的
唯一的区别是权限的问题,有些文件的配置需要root进行执行
一般的root删除文件或者目录需要确定才可,且他创建的文件和目录,无论是root用户还是普通用户,都会有确定操作
需要打出y或者n,只要他们开头就可以了,否则不会删除,一般我们直接打出y或者n