1.桥接模式
2.NAT模式
3.主机模式
和主机ip地址一样
当系统出现问题后,可以通过快照来解决
删除:在VMware中删除,到目录下进行彻底删除
1.安装vmtools后,我们可以在windowds下更好的管理vm虚拟机
是Binary的缩写, 这个目录存放着最经常使用的命令
存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
该目录为系统管理员,也称作超级权限者的用户主目录。
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序
系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
所有的系统管理所需要的配置文件和子目录 my.conf
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/boot [重点]
存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/dev
类似于windows的设备管理器,把所有的硬件用文件的形式存储。
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。 d:/myshare
这是主机给安装软件所存放的目录,如果按照JDK可放到改目录下默认为空。
这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。
这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。
为什么需要远程登录Linux
说明: 公司开发时候, 具体的情况是这样的
linux服务器是开发小组共享的.
正式上线的项目是运行在公网的.
因此程序员需要远程登录到centos进行项目管理或者开发.
画出简单的网络拓扑示意图(帮助理解)
远程登录客户端有 Xshell5, Xftp5 , 我们学习使用 Xshell5 和 Xftp , 其它的远程工具大同小异
是一个基于 windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了Xftp 以后,windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。
所有的 Linux 系统都会内建 vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
以vim打开一个档案就是直接进入了一般默认(这是正常的模式),在这个模式中,可以通过上下左右来移动光标,你也可以使用【删除字符】【删除整行】来吹档案中的聂荣,也可以使用【复制】【贴上】来处理你的文件数据;
按下i,l,o,O,a等任意一个字母之后才会进入编辑模式,一般情况按下i即可
在这个模式当中,可以提供你相关指令,完成读取,存盘,替换vim,显示行号等操作是在此模式下完成的
shutdown
shutdown -h now 表示立即关机
shutdown -h 1:表示一分钟后关机
shutdown -r now :立即重启
halt
就是直接使用,效果等同于关机
syn
把内存的数据同步到磁盘
reboot
就是重启系统
注意细节:当我们关机或者重启时,我们都应该执行sync指令,把我们的内存数据写入到磁盘中
使用细节:logout注销指令在推行运行级别无效,在运行级别3以下有效
1.添加用户
useradd [选项] 用户名
特别说明 cd 表示 change directory 切换目录
细节说明
给用户指定或修改密码
passwd 用户名
2.删除用户
userdel 用户名
删除用户以及用户主目录
userdel -r xlh
3.查询用户
id 用户名
当用户不存在时候,返回无此用户
4.切换用户
su 用户名
默认输入su 切换到管理员目录
5.用户组
groupadd 组名,groupdel 组名
添加用户时候直接加上组 useradd -g 用户组 用户名
修改用户组 usermod -g 用户组 用户名
6.用户和组的相关文件
pwd指令:显示当前工作目录的绝对路径
ls指令:ls [选项] [目录或是文件]
常用选项 -a显示目录所有的文件和目录 包括隐藏的
-l 以列表的方式显示信息
查看显示当前目录下的所有内容
cd指令: 切换到指定目录
cd ~ 回到自己的家目录
cd… 回到当前目录的上一级目录
mkdir :用于创建目录
-p 创建多级目录
rmdir:指令删除空目录
如果删除的不是空目录 需要用rm -rf要删除的目录
touch: 创建空文件
cp:拷贝文件到指定目录 cp source dest
-r 递归复制整个文件
rm:移除文件或者目录
-r 递归删除整个文件夹
-f 强制删除不提示
mv:移动文件或重命名
mv oldName newName (重命名)
mv temp/movefile /targetFolder (移动文件)
cat:查看文件内容 cat [选项] 要查看的文件
-n 显示行号
cat只能浏览文件,并不能修改文件,为了浏览方便,一般会用上管道命名 |more
more:more指令是一个基于vi编辑器的文本过滤器,他以全屏的方式显示文本文件的内容,more指令内置了若干快捷键
less:
less指令用于来分屏查看文件内容,他的功能与more类似,但是比more更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载后才显示的,而是根据要加载的内容,对显示大型文件具有高效率
echo:将输入内容到控制台
echo [选项] [输出内容]
echo $USERNAME 输出当前主机名称
echo “hello,world” 将helllo world 输入到控制台
head: head用于显示文件开头部分内容,默认情况下head希纳是文件前10行的内容
基本语法: head 文件
head -n -5 文件 显示前五行的内容 5可以时任意数
tail: tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容
tail 文件 (查看文件最后10行的内容)
tail -n -5 文件 (查看文件最后5行的内容,5可以是任意数)
tail -f 文件 (实时更新该文档所有的更新)
>指令和>>指令: >输出重定向 ,>>追加
echo ‘hello’ > /opt/test.txt (将hello输入到opt文件夹下的test.txt中 之前内容覆盖)
cat /etc/profile > /home/myprofile (将etc/profile 重定向到home目录下的myprofile 没有会自动创建)
cal > /opt/test (将日历信息重定向输出到opt下的test文件)覆盖
cal >> /opt/test (将日历信息追加到opt目录下的test文件)追加
软连接也称为符号链接,类似中windows里面的快捷方式,主要是存放了链接文件的路径
ln -s [源文件或目录] [软连接名称]
我们在/home目录下创建一个软连接linkToRoot 链接到/root目录
ln -s /home /root/linkToRoot
删除软连接 rm -f /linkToRoot
基本语法
date
(功能描述:显示当前时间)
date +%Y
(功能描述:显示当前年份)
date +%m
(功能描述:显示当前月份)
date +%d
(功能描述:显示当前是哪一天)
date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
find
find指令将从指定目录下递归地遍历各个目录,将所有满足条件的目录显示在控制台
find [搜索范围] [选项]
1.根据名称查找 /home目录下的hello.txt文件
find /home -name ‘hello.txt’
2.根据拥有者,查找/opt目录下,用户名称为nobody的文件
find /opt -user ‘nobody’
3.查找整个linux系统下,大于200M的文件 (+n大于,-n小于,n等于)单位还有K,M,G
find / -size +200M
locate:
locate指令可以快速定位文件路径,locate指令利用事先建立号的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。
locate 搜索文件
特别说明:
由于locate指令基于数据库进行查询。所以第一次查询运行前,必须使用updatedb指令创建locate数据库
用locate指令快速定位 hello.txt 文件所在目录 locate hello.txt
which指令 可以查看某个指令在哪个目录下,
查看ls指令在那个目录 which ls 查看reboot指令在那个目录下 which reboot
grep:
grep过滤查找,管道符,”|“,表示前一个指令的处理结果输出传递给后面的指令处理
基本语法:grep [选项] 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显示匹配及行号 |
-i | 忽略自动大小写 |
案例:查找在opt目录下的eclipse快捷键.txt文件中,查找hello所在行,并显示行号
cat /opt/eclipse快捷键.txt |grep -ni ‘hello’
gzip/gunzip gip用于压缩文件 gunzip用于解压缩文件
gzip 压缩文件(只能将文件压缩为*.zi文件,原文件被压缩后不存在)
gunzip 文件.gz (解压缩文件命令)
zip/unzip 指令
zip用于压缩文件,unzip用于解压的,这个功能打包发布中很有用;
zip [选项] XXX.zip 将要压缩的内容 (压缩文件和目录的命令)
-r :递归压缩,即压缩目录
将/home下的所有文件/文件夹 进行压缩成myhome.zip zip -r myhome.zip /home/
tar指令
tar指令是打包指令,最后打包后的文件是.tar.gz的文件
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar,gz)
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
压缩多个文件 将home/hi.txt 和 home/hello.txt 压缩为pc.tar.gz
tar -zcvf pc.tar.gz /home/hi.txt /home/hello.txt
将/home的文件夹压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
将pc.tar.gz解压到当前目录
tar -zxvf pc.tar.gz
在linux中每个用户都必须属于一个组,不能独立于组外,在linux中每个文件有所有者,所在组,其他组的概念
默认谁创建了改文件,谁就是文件的所有者
当某个用户创建了一个问及那后,这个文件的所在组就是该用户的所在组
创建一个组 groupadd monster
创建一个用户 cat并放入到monster组中 useradd -g monster cat
切换到该用户工作环境下 su cat
在改用户home下创建一个ok.txt文件 touch /home/ok.txt
chgrp 组名 文件名
使用root用户常见文件 orange.txt,看看当前这个文件属于哪个组,然后讲这个文件所在组,修改到monster组中
-rw-r–r--. 1 xlh root 0 10月 22 14:18 apple.txt
第0-9位说明
第0位确定文件类型(d,-,l,c,b)
l是软连接,相当于windows的快捷方式
d是目录,相当于windows的文件夹
c是字符设别,鼠标,键盘
b是块设备,比如说硬盘
第1-3位确定所有者(该文件的所有者)拥有该文件的权限 --User
第4-6位确定所属组,(同用户组的)又有该文件的权限 --Group
第7-9位确定其他用户拥有改文件的权限 --Other
rwx权限详解(难点)
-rwxr2-r–. 1 xlh root 6 10月 22 14:18 apple.txt
第一个字符表示文件类型 - l b d c
其余字符没三个一组
第一组:rwx 文件所有者的权限是读,写,执行
第二组:rw- 与文件拥有者同一组的用户的权限是读写,不能执行
第三组:r-- 不予文件拥有者同组的其他用户的权限是读不能写和执行
1:文件:硬连接数或 目录:子目录数
xlh:文件所有者
root:用户组
6 文件大小单位是字节
10月 22 14:18 文件最后修改时间
apple.txt 文件的名称
通过chmod指令,可以修改我呢见或者目录的结构
第一种方式,+,-,=变更权限
u:所有者,g:所属组,o,其他人,a:所有人(u,g,o的总和)
案例演示:
1.给abc文件的所有者读写执行的权限,给所在组执行读执行的权限,给其他组读执行的权限
绿色代表可执行,蓝色代表是个目录
chmod u=rwx,g=rx,o=rx abc
2.给abc文件的所有者去除执行的权限,增加组写的权限
chmod u-x,g+w abc 注意所有者,所属组之间存在,逗号之间不能有空格
3.给abc所有文件的所有用户添加读的权限
chmod a+r abc
第二种方式:通过数字变更权限
r=4,w=2,x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名 == chmod 751 文件目录名
修改文件所在者 chowm
chown newowner 文件/目录 (改变所有者)
chown newowner:newgroup (改变所有者和所在组)
-R 如果是目录,则使其下所有的子文件或者目录递归生效
将 /home/abc.txt 文件的所有者修改成tom
chown tom /home/abc.txt
将home/test下的所有文件的所有者修改成 tom
chown -R tom home/test
修改文件/目录所在组 chgrp
chgrp newgroup 文件/目录 (改变所在组)
-R 如果是目录,则使其下所有的子文件或者目录递归生效
请将/home/abc.txt 文件的所在组修改成shaolin(少林)
chgrp shaolin /home/abc.txt
请将/home/test 目录下所有的文件和目录的所在组修改成shaolin(少林)
chgrp -R shaolin /home/test
权限管理实例
crontab 进行定时任务调度的设置
任务调度:世界系统在某个时间执行特定的命令或者程序
任务调度的分类:1.系统任务:有些中药的工作必须周而复始的执行 比如病毒扫描 2.个别用户工作:个别用户希望执行某些程序,比如对mysql数据库的备份
参数细节说明
contab -l :列出当前有哪些任务调度
service crond restart [重启任务调度]
案例一:
cal >> /tmp/mycal
date >> /tmp/mycal
给date.sh 增加执行权限 chomd u+x date.sh
让定时调度来调
crontab -e
*/1 * * * * /home/date.sh
基本介绍
at命令是一次性定时执行任务计划,at的守护线程atd以后台的模式运行,检查作业队列来运行
默认情况下,atd守护线程没60秒检查作业队列,有作业时会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
at命令是一次性定制的计划任务,执行万一个任务后就不再执行此任务了
在使用at命令的时候,一定要保证atd进程的启动,可以用相关质量来查看
ps -ef |grep atd
ps -ef 检查出所有的进程,grep atd 根据指定的条件过滤
示意图
at命令格式:
at [命令选项] [时间]
ctrl+d 结束命令的输入
2.使用atq指令查看当前执行的任务 atq
3.明天17点钟,输出时间到指定文件内 /root/date100.log
at 5pm tomorrow >at date > /root/date100.log
Linux下删除 使用ctrl+u
4.两分钟后,输出时间到指定文件内 比如/root/date200.log
linux来说无论有几个分区,非给哪一个目录使用,他归根结底只有一个根目录,一个独立切为一的文件结构,linux每个分区都是用来组成整个文件系统的一部分。
linux采用了一种叫“载入”的处理方法,他的整个文件系统中包含了一整套的文件和目录,且将一个分区和目录联系起来这时候要载入的一个分区将使它的存储空间在一个目录下获得
查看分区指令
lsblk 或者 lsblk -f
下面我们通过增加一块硬盘为例来熟悉下磁盘的相关指令和深入理解磁盘分区,挂载,卸载的概念
分五部分组成 虚拟机添加硬盘 分区 格式化 挂载 设置自动挂载
虚拟机增加硬盘3
虚拟机增加硬盘4
利用命令挂载后,重启会失效
虚拟机增加硬盘5
永久挂载:通过 修改vim /etc/fstab 来实现
添加完成后,通过mont -a 即可生效,或者重启生效
df -h
df -h [目录]
查询指定目录的磁盘占用情况,默认为当前目录
-s | 指定目录大小汇总 |
---|---|
-h | 带计量单位 |
-a | 含文件 |
–max-depth=1 | 子目录深度 |
-c | 列出明细的同时增加汇总值 |
查看/opt/目录情况
du -h --max-depth=1 /opt
汇总和含文件查询
du -hac --max-depth=1 /opt
1.统计/opt文件夹下文件的个数
ls -l /opt | grep “^-” | wc -l grep通过正则表达式找出以-开头的,此类是文件,wc-l用来统计个数
2.统计/opt文件夹下目录的个数
ls -l /opt | grep “^d” | wc-l
3.统计/opt文件下的文件的个数,包括子文件夹下的
ls -lR /opt | grep “^-” | wc -l
4.统计/opt文件夹下的目录的个数,包括子文件夹下的
ls -lR /opt | grep “^d” | wc -l
5.以树状结构现实目录结构
如果没有tree,则使用 yum install tree 安装
ps命令是用来查看系统中哪些正在运行,以及他们的运行的状况,可以不加任何参数
字段 | 说明 |
---|---|
PID | 进程识别号 |
TTV | 终端机号 |
TIME | 此进程所消耗cpu时间 |
CMD | 正在执行命令或进程名 |
ps -a:显示终端所用的进程信息
ps-u:以用户的格式显示进程的信息
ps-x:显示后台程序运行的参数
ps详解
案例:要求以全格式的显示当前多有进程,查看进程的父进程,查看sshd的父进程信息
ps -ef 是以全格式显示当前所有的进程
-e 显示所有进程,-f:全格式
ps -ef | grep sshd
若是某个进程执行一半需要停止时候,或是已经消耗了很大的系统资源时候,可以考虑停止该线程。
基本语法
kill [选项] 进程号 :通过进程号杀死/终止进程
killall 进程名称 通过进程名产杀死进程,支持通配符,这在系统因负载过大而变得很慢的时候很有用
killall会杀死当前进程和其子进程
常用选项
-9 表示强迫进程立即停止
案例
pstree [选项],可以更加直观的来查看进程信息
-p:显示进程的PID
-u:显示进程的所属用户
service(本质)就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如说(mysql3306,sshd22,redis6387),因为我们又称为守护进程,是Linux中重要的知识点
案例
使用service指令,查看,关闭启动network[注意在虚拟系统演示时:因为网络连接会关闭]
service network status
service network stop
service newwork start
查看服务名:
使用 ls -l /etc/init.d 查看service指令管理的服务
使用setup->系统服务,就可以看到全部
使用space进行切换是否选中 使用tab切换选项
运行级别runlevel
查看默认的运行级别: systemctl get-default
改变运行级别 systemctl set-default TARGET.target
可以在/etc/initab中可以查看
可用通过init[0,1,2,3,4,5,6]来切换不同的运行级别
chkconfig指令
通过chkconfig可以给服务的各个运行级别设置自 启动/关闭
chkconfig指令管理的服务在 /etc/init.d查看
注意:在Centos 7.0以后,很多服务使用systemctl管理
基本用法
案例演示
1.对于network服务,进行各种操作,把network在3运行级别,关闭自启动
chkconfig --level 3 network off 关闭
chkconfig --level 5 network on 打开
使用细节
chkconfig重新设置服务自启动或者关闭,需要重启机器reboot生效。
systenctl指令
top与ps命令相似,他们勇于显示正在执行的进程,Top与ps最大的不同之处在与,top在执行一段时间可以更新正在运行的进程
基本语法 top [选项]
选项 | 功能 |
---|---|
-d秒数 | 指定top命名没隔几秒刷新,默认是3秒 |
-i | 使用top不显示任何闲置或者僵死的进程 |
-p | 通过指定监控ID来仅仅监控某个进程的状态 |
交互操作说明
操作 | 功能 |
---|---|
P | 以CPU使用率来排序,默认就是此项 |
M | 以内存是使用来排序 |
N | 以PID排序 |
q | 退出top |
应用实例
1.监控特定用户,比如我们监控tom用户
top输入此命令,然后回车,查看执行的进程
u:输入u回车 在输入用户名即可
2.终止指定的进程,比如我们要结束tom登录
top:输入此命令,然后回车,查看执行的进程
k:然后输入要结束的进程ID号
3.指定系统状态更新的时间(没隔10秒自动更新),默认是3秒
top-d 10
监控网络状态
基本语法: netstat [选项]
选项说明 -an 按照一定的属性排列输出 -p 显示哪个进程在调用
应用案例
查看服务名臣为sshd的服务信息
rpm是互联网下载包和打包和安装工具,他包含在某些linux分版中,他具有生产.rpm扩展名的文件,RPM是redhat package manage(软件包管理工具的缩写),类似于setup.exe
RPM包的简单查询指令
RPM包的简单其他指令
卸载rpm包
安装rpm包
Yum是一个Shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,并且可以自动处理依赖性关系,兵器一次暗转所有的依赖软件包
基本指令
查询yum服务器上是否有需要安装的软件
yum install | grep xxx xxx软件列表
安转指定的yum包
yum install xxx 下载安装
上传安装文件,并解压到/opt/tomcat
解压 tar -zxvf apache-tomcat-8.5.59.tar.gz
进入到/bin目录下 启动tomcat ./startup.sh
开发端口8080
#打开8080端口
firewall-cmd --permanent --add-port=8080/tcp
#重新加载
firewall-cmd --reload
#检查端口是否开启
firewall-cmd --query-port=8080/tcp
测试 在windows下访问linux的ip地址+8080