1.linux的安装
1.先安装virtualmachine15.5
2.再安装Linux(CentOS7.6/centOS8.1)
首先在自己的window电脑上安装虚拟机,然后虚拟机相当于一台电脑,里面在安装一个linux系统
虚拟机网络连接的三种方式
桥接模式:直接使用主机网段的ip地址,虚拟机可以与外部系统通讯,但是这样可能会ip冲突。
NAT模式:网络地址转换模式,虚拟机可以和外部通信,不造成冲突。因为会自动建立一个虚拟ip,在不同的网段。相当于将主机的ip地址当做一个外部的代理对象,里面自己在建立一个路由,所有的信息都是通过主机的名义发出,。nat相当于转发主机的路由。
主机模式:独立的一个系统
虚拟机的克隆
方法1:直接拷贝一份安装好的虚拟机文件,(在文件的安装目录中直接拷贝一份副本)
方法2:使用vmware的克隆操作,注意,克隆时,需要先关闭linux系统(右键,管理,克隆)
虚拟机的快照
相当于windows的系统还原点 ,游戏篡纯当点
如果你在使用虚拟机系统的时候(比如linux),你想回到原先的某一个状态,也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware也提供了这样的功能,就叫快照管理。
安装vmtools
安装这个东西之后,可以让我们在windows之下更好管理vm虚拟机
可以设置主机和虚拟机共享的文件夹
- 开启虚拟机的时候,点击虚拟机----》安装vmtools。
- 使用root登录,然后能看见一个vm安装包xx.tar.gz
- 拷贝到/opt(约定放在这)
- 解压tar -zxvf xx.tar.gz
- 进去解压目录,
- 安装./vmware-install.pl
然后设置共享文件夹
虚拟机右键->设置->选项,-》共享文件夹—》添加就可以了
然后这个目录在mnt/hgfs/下
2.linux的目录结构
基本介绍
linux的文件系统采用的是级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后再此目录下在创建其他的目录
深刻理解linux树状文件目录 是非常重要的,在linux的世界里,一切皆文件
示意图
具体的目录结构
/bin 【常用】
这个目录存放着经常使用的命令
/sbin
存放管理员使用的系统管理命令
/home
存放普通用户的目录,每个普通用户都有一个自己的目录,一般是账户的命名、
/root
该目录为系统管理员,也被称为超级权限者的主目录
/lib
系统开机所需要最基本的动态链接库,作用类似于windows中的dll文件,几乎所有的应用程序都需要用到这些共享库
/lost+fount
这个目录一般是空的,存放非法关机的文件
/etc
所有系统管理所需要的配置文件和子目录,被逼入安装mysql的config文件
/usr
用户的很多应用程序和文件都放在这个目录下面,类似于windows的program files目录
/boot
存放的是linux启动使用的核心文件,包括一些链接文件和镜像文件
/proc
虚拟目录,系统内存的映射,访问这个目录来获取系统信息
/srv
service缩写,存放服务启动之后需要的数据
/sys
这是linux2.6内核一个很大的变化,这个和上面两个别动就是了
/tmp
存放临时文件
/dev
类似于windows的设备管理器,存放所有设备(硬件,鼠标键盘等)文件形式存储
/media
linux自动识别一些设备,u盘,光驱。识别后会将设备挂载到这个目录
/mnt
临时挂载别的文件系统的,将外部的共享文件就挂载在这个目录
主机ping虚拟机的方法:
首先虚拟机连上网络
终端使用ifconfig查看虚拟机ip
在nat模式下,主机需要将 虚拟机适配器的ip改为同一个网段。这样才可以ping通
如果找不到这个网络适配器,则需要勾选
如果这个无法勾选,则说明以前安装过的vm注册表没有删除干净,需要下载一个
ccleaner
这样就可以了。(本虚拟机关闭了防火墙)
3.远程登录到Linux服务器
为什么要远程登录
linux服务器是开发小组共享的,正事上线的时候项目运行在公网
因此程序员需要远程登录在linux进行项目管理或开发
远程登录有两个工具,一般是使用Xshell6:用于远程操作
第二个是Xftp:用于交互文件
安装这俩玩意的时候可能会出现无法启动说你版本不对的情况,这时候需要更改一个配置文件中的16进制数据。需要你有处理16进制的软件。
4.Linux实操篇-Vi和Vim编辑器
vi和vim的基本介绍
linux会内置vi文本编辑器,vim是具有程序编辑能力,可以看做是vi的增强版。可以主动的以字体颜色来辨别语法的正确性,方便程序设计。代码补完,编译及错误跳转等方便编程的功能特别丰富。
vim有三种模式
(1)正常模式:使用vim 文件 进入之后就是正常模式 ,这种模式之下可以移动光标,可以删除字符,也可以复制粘贴。
(2)插入模式:按下i,o,a,r等字母的大小写任意一个就可以进入编辑模式
(3)按esc会直接进去命令模式,可以执行一些命令
vim的快捷键
yy:拷贝当前行,然后p粘贴。相当于idea里面的ctrl+d。 5yyp相当于复制当前行向下五行粘贴(正常模式)
dd:删除当前行,5dd删除当前行连带着五行
查找:命令模式下:/关键字,输入n下一个
设置文件行号,取消文件行号:命令模式下set nu和set nonu
移动到文件首位:正常模式最末行G,首行gg
ctrl+z:正常模式u
移动光标位置:20G代表移动到20行的位置
5.Linux实操篇-开机、重启和用户登录注销
基本的开关机命令
shutdown -h now 直接关机
shutdown -h 1 一分钟关机
shutdown -r now重启
halt关机
reboot重启
sync把内存的数据写到磁盘
所以在关机之前,首先运行sync,保存数据更稳妥。虽然 shutdown/reboot/halt等命令均已经在关机前进行了sync。
用户的登录和注销
(1)用户切换登录命令:su -用户名 低权限向高权限登录需要密码,反之不需要。
(2)注销用户指的是切换用户:logout,在远程登录的时候这个代表退回到上一次登录的用户名,如果没有就退出远程。(这里是运行级别三,也就是远程登录)
(3)在可视化的终端的时候使用的是exit。 (这里是运行级别5,可视化级别)
6. Linux实操篇-用户管理
linux是一个多用户多任务的操作系统,任何一个要使用系统资源的用户都必须向管理员申请一个账号。
(1)添加用户:adduser 用户名 或者useradd 用户名
创建之后默认会建立一个组合一个文件以用户名命令。文件放在home下面
(2) 也可以通过创建的时候指定目录名称,指定的时候前面加上/home
(3)指定密码 passwd 用户名,这里记住如果不写用户名默认更改自己的密码。
可以设置密码较为简单,但是需要输入两次,这里是root
(4)删除用户userdel -r 用户名,这样表示删除用户的同时删除其所在的目录。不删就不加上-r
(5)查询用户: id 用户名,查询之后返回用户id,组id和名称
(6)查看当前登录用户:只能查看登录的第一个,切换了看不到who am i
用户组
用户在创建的时候就会创建自己对应的一个组,linux里所有的用户都是存放在组里面的。
我们可以声明一个组,然后将多个用户放入一个组内,然后赋给组权限,组里面的用户就都有一样的权限了。
(1)新增组:groupadd 组名
(2)删除组:groupdel 组名
(3)添加进新组:adduser -d 组名 用户名
(4)移动用户到组:usermod -g 组名 用户名
这里没法删除有用户的组。
用户和组相关的文件
/etc/passwd文件:用户的配置文件,每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow文件:口令的配置文件,每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
。这种有红色的是密码的加密。没有的是用户没有设置密码。
/etc/group文件每行含义:组名:口令:组标识号:组内用户列表
7.Linux实用指令
运行级别说明
0:关机
1:单用户(用于找回管理员密码)
2:多用户状态没网
3:多用户有网(常用)
4:系统未使用保留给用户
5:图形界面
6:系统重启
(1)直接使用 init 1就可以
在centos7以前,/etc/inittab文件中.进行了简化,如下:
找回root密码
启动界面e
然后再utf-8后面输入
init=/bin/sh
然后ctrl+x
进入单用户模式输入
mount -o remount,rw /
(千万注意空格)
然后输入passwd
重复输入两次密码
touch /.autorelabel
exec /sbin/init
等待
帮助指令
man获得帮助信息基本语法:
man[命令或配置文件](功能描述:获得帮助信息)
案例:查看ls命令的帮助信息manls
(1)在linux下,隐藏文件是以.开头,选项可以组合使用比如ls-al,比如ls-al/root
(2)基本语法:help命令(功能描述:获得shell内置命令的帮助信息)
目录类指令
(1)pwd:显示当前工作的绝对路径
(2)ls 【选项】 【目录或者文件】:查看当前所有的目录
选项-a:显示当前目录所有的文件和目录,包括隐藏文件
-l:以列表的形式显示(两个选项可以组合使用)
(3)cd 【参数】切换到指定目录,可以选绝对路径和相对路径
root和home是根目录下的同级目录,这里先使用相对路径从root到home,在使用绝对路径
cd ..:返回上一级
cd ~:返回用户自己的目录(例如/home/liu)
(4)mkdir 【选项】 目录名称 :创建目录
-p创建多级目录
(5)rmdir 【选项】 目录名:删除目录
如果是非空目录就需要使用rm -rf
(6)touch 文件名称:创建文件名称
(7)cp 【选项】 要复制的文件名称 复制到的位置:用于文件复制。
-r:递归复制整个文件夹
(8)rm 【选项】要删除的文件
-r:递归删除整个文件夹
-f:强制删除不提示
(9) mv 旧文件 新文件(在同一个位置就重命名)
(10)cat 【选项】 需要查看的文件
-n:显示行号
使用管道加上more或者less
加上more的话查看长文件更加方便
less和more差不多,但是比more更强大,显示文件的时候会根据需求加载内容,效率高。
(11)echo 【选项】 【输出内容】
可以输出一些内容到控制台,可以是hello word ,也可以是环境变量等。
也可以搭配输出重定向(覆盖)和追加(追加末尾)向文件输入内容
(12)head -n5文件:显示文件的前五行
tail -n5 文件:显示文件后五行
tail -f 文件:监控文件变化
(13)> 指令和 >>指令
覆盖和追加
(14)in -s 【源文件目录】 【快捷方式名称】
(15)history 查找历史命令 !2:执行编号为2的命令
时间日期类
(1)date指令
1)date(功能描述:显示当前时间)】
2)date+%Y(功能描述:显示当前年份)
3)date+%m(功能描述:显示当前月份)
4)date+%d(功能描述:显示当前是哪一天)
5)date"+%Y-%m-%d%H:%M:%S"(功能描述:显示年月日时分秒)
设置当前系统时间:date-s“2020-11-0320:02:10”
(2)cal 【选项】显示日历
(3)find 【搜索范围】 【选项】
(4)locate指令可以快速定位文件路径,locate指令将所有的文件名称建立成一个数据库,快速定位查找,无需遍历这个文件系统。管理员必须定期更新locate。
(5)grep 【选项】 查找内容 源文件
-n:显示行号
-i:忽略大小写
压缩和解压
压缩的三种方式
gzip和gunzip(压缩文件):压缩成.gz格式,源文件会消失。
zip和unzip(压缩文件和目录):压缩文件指定一个文件名就可以,压缩目录的时候需要加上-r来遍历目录。压缩过后的后缀是.zip 并且源文件还在
解压的时候需要执行unzip -d 解压位置 需要解压的文件
tar(常用,压缩文件和目录):可以一次性压缩多个文件,也可以压缩一个目录
tar -zvcf 压缩文件名 文件1 文件2
tar -zcvf 压缩文件名 目录
tar -zxvf 压缩文件名
第七章, 组管理和权限管理
linux每个用户都必须属于一个组。
1)所有者:文件的持有者,默认是创建者
2)所在组:持有者所在的组
3)其它组:持有者不在的组
查询文件的信息:ls -alh 这是三个指令拼接,a:显示隐藏文件 l显示详细信息 h大小显示为单位
解析一下文件显示信息
第一位代表文件属性:
-表示普通文件
rw-表示所有者的权限,读写
r--表示同组全选,读
r--表示其他组权限
第一个root表示作者
第二个root表示所在组
然后就是大小,最后修改时间,还有命名
(1)chown 用户名 文件名 :修改文件所有者 必须使用管理员才可以更改
(2)修改文件、目录所在的组chgrp 组名 文件名
(3)改变用户所在组
usermod–g新组名用户名
usermod–d目录名用户名改变该用户登陆的初始目录。特别说明:用户需要有进入到新目录的权限。
权限的介绍
ls-l中显示的内容如下:-rwxrw-r--1rootroot1213Feb209:39abc
0-9位说明第0位确定文件类型(d,-,l,c,b)
l是链接,相当于windows的快捷方式d是目录,相当于windows的文件夹c是字符设备文件,鼠标,键盘b是块设备,比如硬盘
第1-3位确定所有者(该文件的所有者)拥有该文件的权限。---User
第4-6位确定所属组(同用户组的)拥有该文件的权限,---Group第
7-9位确定其他用户拥有该文件的权限---Other
rwx权限详解,rwx作用到文件
1)[r]代表可读(read):可以读取,查看
2)[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3)[x]代表可执行(execute):可以被执行
rwx作用到目录
1)[r]代表可读(read):可以读取,ls查看目录内容
2)[w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
3)[x]代表可执行(execute):可以进入该目录
可用数字表示为:r=4,w=2,x=1因此rwx=4+2+1=7,数字可以进行组合
(4)修改权限chmod
u:所有者g:所有组o:其他人a:所有人(u、g、o的总和)
1)chmod u=rwx,g=rx,o=x文件/目录名
2)chmod o+w文件/目录名
3)chmod a-x文件/目录名
4)chmod 751文件/目录名
8.定时任务调度
crontab 定时任务调度
任务调度:是指系统在某个时间执行特定的命令或程序
基本语法crontab 【选项】
-e 编辑定时任务
-l查看定时任务
-r删除所有的定时任务
快速入门:设置个人的任务调度
cronrtab -e 进入编辑任务调度文件,这里面的操作方式就是正常的vim文本编辑,可以直接输入指令执行,也可以执行脚本
每隔一分钟执行一个脚本
(1)vim/home/my.sh写入内容date>>/home/mycal和cal>>/home/mycal
(2)给my.sh增加执行权限,chmodu+x/home/my.sh
(3)crontab-e增加*/1****/home/my.sh
at指令
1)at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
2)默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
3)at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
4)在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看ps-ef|grepatd//可以检测atd是否在运行
执行的方式是,at创建一个作业,设置时间。然后atq进程会每六十秒检查作业和他设定的时间,时间对就会执行。
用法:at 【选项】 时间
at指定时间的方法
1)接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如:04:00
2)使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
3)采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm
4)指定命令执行的具体日期,指定格式为monthday(月日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:002021-03-1
5)使用相对计时法。指定格式为:now+counttime-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。例如:now+5minutes6)直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
两天后的下午五点执行指令,操作方式直接输入,删除是ctrl+back。输入完成是ctrl+d(两次)
明天下午五点,执行
atq查看at任务,atrm 4删除编号为4的作业
9.Linux磁盘分区、挂载
1)Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
2)Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
系统中有自己的目录结构,也有我们所分配的磁盘空间。将磁盘空间给分配的目录使用,这个过程就是挂载。虚拟目录与物理路径的映射。
1)Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
2)对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
3)对于SCSI硬盘则表示为sdx~,第一块硬盘的三个分区就是sda1,sda2,sda3.第二块就是sdb1
查看所有设备挂载情况lsblk或者lsblk -f第二种显示文件系统,名称
挂载案例
(1)首先需要增加一块硬盘
(2)对硬盘分区
fdisk /dev/sdb
开始对/sdb分区
m显示命令列表
p显示磁盘分区同
n新增分区
d删除分区
w写入并退出
说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。
(3)格式化磁盘,设置文件系统类型
分区命令:mkfs -text4 /dev/sdb1其中ext4是分区类型
(4)挂载,将分区挂载到某个目录
mount /dev/sdb1 /newdisk
卸载
umount /dev/sdb1或者umount /newdisk
但是这样不是永久挂载
(5)永久挂载
通过修改/etc/fstab实现挂载
将挂载信息写进去,建议在这一步之前使用快照。
这就是挂载文件内容,这里写着我三个分区的挂载信息,可以添加一个一样的
/dev/sdb1 /newdisk etx4 defaults 0 0
磁盘情况查询
(1)基本语法: df -h
(2)查询指定目录的磁盘占用情况
du -h
s指定目录占用大小汇总
-h带计量单位
-a含文件
--max-depth=1子目录深度
-c列出明细的同时,增加汇总值
(3)磁盘情况工作实用指令
统计home文件下的文件个数
统计home文件下的文件目录个数
统计home文件夹下目录个数,包括子目录
解释:grep “^-” 正则表达式,表示第一个为-的文件,-代表的就是普通文件
d代表的是目录。然后wc是统计数目的。R代表遍历子文件
(4)树状显示目录结构,tree 目录。需要安装该指令 yun install tree