1 安装VMware,课程中使用的是VMware10的版本
2 检测系统是否支持虚拟化
如果是win10系统,直接打开任务管理器查看
4.VMware 安装
https://blog.csdn.net/qq_43652509/article/details/83900942
5 安装完成之后,需要安装xshell
6 xshell连接centos7操作系统
Centos提供IP地址,如何提供呢?
A.设置Wmware的IP地址
B、设置操作系统的地址
l Unix是一个强大的多用户、多任务操作系统。
l 于1969年在AT&T的贝尔实验室开发。
l UNIX的商标权由国际开放标准组织(The Open Group)所拥有。
l UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。
l Linux是基于Unix的。
l 诞生于1991 年10 月5 日。
l Linux基于GPL协议,是一个自由的,免费的,源码开放的操作系统。
l Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。
l 服务器系统
• Web应用服务器、数据库服务器、游戏服务器、接口服务器、DNS、FTP等等;
l 嵌入式系统
• 路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等
l 高性能运算、计算密集型应用
• Linux有强大的运算能力。IBM的Watson超级计算机就是使用Linux系统
l 桌面应用系统
• 很多桌面操作系统的底层也是Linux
l 移动手持系统
• 安卓系统就是基于Linux
redhat:目前,全球最大的linux发行厂商,功能全面、稳定,但是,是收费的。
ubuntu:目前,是linux桌面操作系统做的最好的。
centos:免费版的redhat,centos基于redhat发行版基础之上,再重新编译发布的版本。
目前centos已经被Redhat公司收购,但是依然免费
常用的虚拟机软件 主要包括:VirtualBox、VMware Workstation、Virtual PC
VirtualBox: VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox
VMware Workstation: 是VMware公司销售的商业软件产品之一。该工作站软件包含一个用于英特尔x86相容电脑的虚拟机套装,其允许用户同时创建和运行多个x86虚拟机
Virtual PC:是Microsoft 最新的虚拟化技术。主要适合做微软自己产品的服务
https://blog.csdn.net/qq_43652509/article/details/83903205
这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿主机没有任何联系。
这种方式下,虚拟机的网卡连接到宿主的 VMnet1 上,但系统并不为虚拟机提供任何路由/上网服务,因此虚拟机只能和宿主机进行通信,而不能连接到实际网络上。
这种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。
总结:
虚拟机的三种网络连接方式:
1 桥接模式:虚拟机是一台独立的电脑
2 仅主机模式(host-only):虚拟机可以访问宿主机,虚拟机无法上网,宿主机无法访问虚拟机
3 NAT模式:虚拟机可以访问宿主机,宿主机可以访问虚拟机
此时宿主机相当于路由器,虚拟机可以通过宿主机上网
宿主机可以配置254个虚拟机
什么是动态IP?每次IP地址都可发生改变?
第一步:使用root用户登录(即root/123456),修改IP地址(vi /etc/sysconfig/network-scripts/ifcfg-ens33):
按字符键“i”进入编辑模式,修改/etc/sysconfig/network-scripts/ifcfg-ens33文件内容如下:
按“esc”键后,输入:wq回车,完成配置文件编辑。
输入:service network restart命令重启网卡,生效刚刚修改ip地址,ping www.baidu.com测试网络连通性。
好了,至此,CentOS7操作系统安装成功了。
配置网络的目的主要是为了固定虚拟机的内网IP,方便我们在真实的操作系统中使用Linux连接工具软件进行远程连接
修改IP地址(vi /etc/sysconfig/network-scripts/ifcfg-ens33)
按“esc”键后,输入:wq回车,完成配置文件编辑。
输入:service network restart命令重启网卡,生效刚刚修改ip地址,ping www.baidu.com测试网络连通性。
注意:Linux系统中是严格区分大小写的,写明令时不要写错
快照其实就是还原点,我们设置了快照。以后如果被我们玩坏了,也可以快速的还原到以前状态!
直接操作Linux系统所在机器的问题:
A:虚拟机有鼠标独占问题,不好操作
B:真实开发中,虚拟机与我们不在一起。
使用远程连接工具:
A:操作方便快捷
B:随时随地都可以连接Linux系统,方便管理
主要功能是向Linux系统远程发送命令
Xshell:目前最好用
Secure Shell Client:老牌的连接工具,对中文支持较差
SecureCRT:收费
Putty:早就停止维护了,很多东西支持的很差。但因为习惯依旧很多人支持
我们使用XShell5,安装时安装免费版
FTP工具的目的是:便捷的与Linux系统之间进行文件传输
有以下途径:
Xftp:配合XShell使用,支持简单在线编辑
Secure Shell Client:自带FTP工具
SecureFX:配合SecureCRT使用
Lrzsz:可以安装在Linux系统中,通过在远程终端中使用命令来实现FTP功能
我们使用Xftp。
如果要向Linux进行文件传输,可以在Xshell界面中,点击文件传输按钮,自动就会打开我们安装的Xftp了:
通过XFTP工具,我们可以让本机操作系统和linux系统之间进行文件的上传和下载。
我们先来学习一套最基本的指令。
ls,列出目录中所有可见的文件和目录。
ls -a,列出目录中所有的文件和目录。(以.开头的文件是隐藏的)
ls -l,列出文件和目录的详细信息。
drwxr-xr-x 第一个字符有3种情况:“-”表示普通文件,“d”代表目录,“l”代表连接文件,“b”代表设备文件。
紧接着的数字2代表 “aa”这个目录下的目录文件数目
ls -al,列出所有文件和目录的详细信息。
总结:
ls命令
ls 列出所有非隐藏的文件
ls -a:列出所有隐藏和非隐藏的文件
ls -l:缩写ll,列出所有非隐藏文件的详细信息
ls -al:列出所有隐藏和非隐藏的文件的详细信息
clear,清除屏幕上的内容。
exit,退出登录状态。
reboot,重启。
shutdown主要用来关机。
shutdown -h now // 马上关机
因为Linux中需要输入很多指令来操作,为了提高指令输入速度,Linux提供了以下方法。
使用上、下箭头可以找出上一条指令和下一条指令。
使用tab键可以快速输入指令。
比如:我要输入shutdown指令,这时,我们可以只输入shut然后按下tab键,即可自动把shutdown补全。
思考:为什么只输入s无法实现代码补全?
因为以s开头的指令,很多不只一个,所以不知道应该补哪个。但是我们可以按两个tab键,这时会把所有以s开头的指令都列出来:
按了两个tab,提示共有129个以s开头的指令真的要都显示出来吗?这时如果按y就会列出,如果按n就不会列出来。
按y之后会列出所有以s开头的指令,但因为129个比较多,而在电脑中无法一次全显示出来,所以先显示一部分:(More代表还有更多,这时按回车就可以向下滚动)
总结:
Clear:清屏
Reboot:重启
Exit:断开连接
Shutdown -h now:立即关机
Tab:补全
Pwd:获取当前位置的全路径
在windows中目录结构是从C、D、E等盘符开始的:
C、D、E这些盘符的关系是平等的,属于同一级。
在Linux中并没有C、D、E等盘符,直接就是一个树形结构的目录(Linux中只有一棵树):
目录结构总结:
1:Linux中的根目录就是/,没有windows中的盘符
2:Linux中如果有新的用户创建,默认会在/home/下创建一个与用户名一样的文件夹,作为该用户的home文件夹
3:root用户的HOME在/root文件夹下。比较特殊
4:一般我们安装文件都放在 /usr/software这个文件夹下
5:/etc下有很多系统的配置文件
Linux命令,其实就是Shell命令,是我们学好Linux的关键。
注意:
A:通过上下方向键来调取过往执行过的命令。
B:命令或参数仅需输入前几位就可以用tab键补全。
格式:
**命令名称** **[****命令参数****] [****命令对象****]**
命令名称:有很多,我们会学习其中重要的一些
命令参数:可选,有两种格式:
长格式:--help
短格式:-h
命令对象:可选,就是命令作用的目标,可以是文件、目录、URL等等
例如:
rm –f 1.txt
注意:Linux中的命令严格区分大小写的!
Linux中并没有文件夹的概念,应该叫目录。
使用 pwd 指令可以查看当前所在的目录。
~代表当前是家目录,使用pwd可以查当前家(当前用户所在的目录)目录的绝对路径:
/home/用户名 — 家目录
使用cd可以切换到其它目录。
Linux中有很多目录可以使用cd切换到任何一个目录中:
例1、切换到根目录:
例2、切换到/home目录:
总结:可以切换到任何一个现有的和我们自己创建的目录中。
面试题:在linux中~和/ 的区别:
可以使用mkdir 指令创建目录。
创建目录时可以使用 相对路径 也可以使用 绝对路径。
例1、使用绝对路径创建目录。
因为已经有/root目录了,所以在root中创建abcde可以直接创建,但是如果要一次创建多级目录就可以添加 -p 参数了。
例2、创建 /root/a/b/c/d/目录。
注意:因为root下没有a,也没有b,c,d,e,目录,所以要一次性同时创建多级目录需要加 -p 参数:
例3、使用相对路径在当前目录下创建abc目录。
回顾:./ 代表当前目录, …/ 代表上一级目录。
例4、创建的时候显示创建信息
注意:创建的时候显示创建信息,需要加上参数v
可以使用 cp -r 指令复制目录及目录中的子目录。
-r : 递归
说明:cp是复制的意思,但对于目录来说还要加上 -r 这个参数代表连同目录中的子目录和文件一起复制。
例1:复制当前目录下的abc目录,新复制出来的目录叫做abc2:
Copy
可以使用 mv 指令移动目录。
Move
例1:把当前目录下的abc目录移动到当前目录下的abc2目录中。
可以使用 rm -rf 指令删除目录及目录中的子目录和文件。
Remove
参数说明:
-r :递归的删除(删除子目录和文件)。
-f :强制删除(没有任何提示直接删除)。
例:删除当前目录中的abc2目录。
注意:该指令在使用时,一定要小心!定要小心!要小心!小心!心!! –删了就找不回来了。
可以使用mv 指令对目录重新命名。
例:把当前目录下的a目录改名为b目录。
总结:
mkdir:创建目录,当有多级目录的时候,使用-p
cp:复制目录,当有多级目录的时候,使用-r 递归
mv:移动目录+重命名目录
rm:删除目录,当有多级目录的时候,使用-rf
压缩也是一种打包,压缩的原理是将文件中相同的信息用一个字符代替,致使文件体积变小达到压缩的目的,压缩对于文本类或数据类文件有较明显的作用。
打包就是将一些文件放在一起变成一个包,便于保存和传输,图片和视频数据因为不象文本一样,因此多个文件在压缩的时候没有明显效果,因此只能做打包,进行保存。
Windows系统下常见的压缩文件:
*.zip
*.rar
*.7z
Linux系统下常见的压缩文件:
*.Z compress程序压缩的文件
*.gz gzip程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar tar程序打包的数据,并没有压缩过
*.tar.gz tar程序打包并经过gzip压缩
*.tar.bz2 tar程序打包并经过bzip2压缩
打包:tar -zcvf FileName.tar DirName
解包:tar -zxvf FileName.tar
tar命令参数介绍:
-c: 建立压缩档案 create
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
案例一:将a目录打包为 a.tar
案例二:解包
总结:
tar命令仅仅实现对数据打包。不进行压缩。我们一般处理文件,都是同时进行打包和压缩。因此要加上参数。
因为要压缩,所以加上参数-z
因为要显示运行过程,因此加上-v
因为要指定文件名称,因此加上-f
最后,如果是打包,则用-c;如果是解压,则用--x
因此,最终命令为:
tar -zcvf 压缩后文件名.tar.gz 目标文件 :打包并压缩目标文件
tar -zxvf 要解压的文件名 :解压缩到当前目录
tar -zxvf 要解压的文件名 -C 目标目录 :解压到目标目录
注意,一般Linux中的压缩文件都是 .tar.gz
Linux中的哲学:“所有东西都是一个文件”。
Linux中所有的东西(硬盘、目录、网络连接、U盘、光驱等等)都会当作一个文件来处理。
windows中的文件由 文件名.扩展名 两部分组成。扩展名直接决定了这个文件的类型,以及将会使用哪种软件来打开运行。
Xx.doc word文件
Xxx.java 文件
Xxx.js js文件
Xxx.xls
Xx.ppt
Linux中并没有扩展名的要求,不过为了便于区分文件,我们一般也会给文件加上一个扩展名。
Linux系统中以 . 开头的文件是隐藏的文件,使用 ls 命令是查看不到这些文件的,必须要加上 -a 参数才可以查看到隐藏的文件。
我们在平时开发时会看到很多以 . 开头的文件,比如 .htaccess 。这些文件都是考虑到在Linux用来隐藏用的。
当我们使用ls命令列出目录中的所有子目录和文件时,如何区分哪些是文件哪些是目录?
可以通过详细信息中第一列的信息来区分:以d开头的是目录,以-开头的是文件。
可以使用 touch 指令创建文件。
touch 绝对路径/相对路径
例:当前目录下创建一个hello文件。
可以使用 cp 复制文件。
cp 旧文件 新文件
例:复制当前目录下的hello文件,新复制出来一个hello2文件:
可以使用 mv 移动文件。
mv 原文件 移动后的文件
例:把当前目录下的hello移动到当前目录下的abcd目录下(先有这个目录):
可以使用 rm 删除文件。
语法1:删除前先提示
rm 要删除的文件
提示时按y删除,n不删除。
语法2:直接删除,没有任何提示
rm -f 要删除的文件
例:删除hello2文件
可以使用 mv 重命名文件。(移动时改名)
mv 原文件 新文件
例:把当前目录下的hello改名为helloworld。
接下来学习如何在系统中查找文件。Linux中提供了很多好用的指令来查找文件。
find指令
find是功能最多的查找指令,可以根据各种条件查询文件。
语法
find 查找的目录 选项 值
例1、在/etc目录下查找所有*.conf.d结尾的文件
find /etc -name “*.conf.d”
扩展:程序的中断
在Linux系统中可以使用 ctrl+c 快捷键来中断当前程序的执行。
命令 | 目录 | 文件 |
---|---|---|
mkdir | 创建目录,多级目录使用,-p | 无 |
touch | 无 | 创建文件 |
cp | 复制目录,多级目录使用-r | 复制文件 |
mv | 移动+重命名 | 移动+重命名 |
rm | 删除,多级目录-rf | 删除,-f不询问 |
find | 无 | 查找文件 |
tar -zcvf 打包 -zxvf 解包 | 打包+解包 | 打包+解包 |
cat filename 输出文件所有内容
more 查看更多内容
退出:按q键
空格:查询下一屏内容
less 用法和more类似,不同的是less可以通过PgUp、PgOn键来控制。
tail 用于显示文件后几行的内容
tail -10 /etc/password 查看后10行数据
tail -f catalina.log 动态查看日志,可以实时的得到新追加到文件中的信息,常用来跟踪日志文件。
tail -200f catalina.log 动态显示日志最后200行
Ctrl + C 结束查看
l 查找符合条件的字符串。
l 用法: grep [选项]… PATTERN [FILE]…
l 示例:
• grep lang anaconda-ks.cfg 在文件中查找lang
• grep lang anaconda-ks.cfg --color 高亮显示
grep location nginx.conf 查找字符串location并且高亮显示、显示查找到的元素的前、后5行内容。
查看进程:
ps -ef | grep java
ps -ef | grep tomcat
l 在Linux下一般使用vi编辑器来编辑文件。
l vi既可以查看文件也可以编辑文件。
l 而vim是vi的升级版本,具备更多的功能
l vi如果目标文件不存在,会创建新的文件。但是如果新文件没做编辑,退出后还会消失。
编辑模式:对文本进行输入和修改
底行模式:退出vim或者查找、替换功能
命令模式:通过快捷命令操作数据,打开vi默认就是命令模式
命令模式按下:i、o、a进入编辑模式:
i:光标不动
o:另起一行
a:光标到下一个字符
按ESC退出编辑模式,进入命令模式
命令模式下,按‘:’或者‘/’进入底行模式,可以输入命令
1)退出vim:
:q 未编辑时退出vim
:q! 编辑后,退出并且不保存
:wq 编辑后,退出且保存
2)查找
/文本 搜索指定文本,高亮显示,按n显示下一个,按N显示前一个
:整数 快捷跳转到指定行
dd 剪切当前行
5dd 剪切光标及下面共5行
yy 复制光标所在行
5yy 复制光标及下面共5行
p 将之前dd或yy的数据粘贴到光标位置
R 进入替换模式,输入的任何数据都直接替换光标所在位置数据
Linux中的命令组合后,可以产生神奇的效果!
例1:a.txt中内容为Hello,b.txt中内容为world,将内容合并到c.txt中
例2:a.txt中内容为Hello,b.txt中内容为world,c.txt中内容为Hello World,将内容合并并追加到c.txt中
这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿主机没有任何联系。
这种方式下,虚拟机的网卡连接到宿主的 VMnet1 上,但系统并不为虚拟机提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到实际网络上。
这种方式下,虚拟机的网卡连接到宿主的 VMnet8 上。此时系统的 VMWare NAT Service 服务就充当了路由器的作用,负责将虚拟机发到 VMnet8 的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过 VMnet8 发送给虚拟机。VMWare DHCP Service 负责为虚拟机提供 DHCP 服务。
配置网络时的几个重要参数:IP、Netmask、Gateway、DNS IP。
网卡配置文件
名称 | 配置文件 | 重要参数 |
---|---|---|
网卡配置 | /etc/sysconfig/network-scripts/ifcfg-ens33 | DEVICE=物理设备名 IPADDR=IP地址 NETMASK=掩码值 NETWORK=网络地址 BROADCAST=广播地址 GATEWAY=网关地址 ONBOOT=[yes|no](引导时是否激活设备) USERCTL=[yes|no](非root用户是否可以控制该设备) BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议) HWADDR = 你的MAC地址NM_CONTROLLED=额外网管软件,建设设置为no |
私有DNS | /etc/hosts | IP 主机名 别名 |
DNS服务器 | /etc/resolv.conf | NAMESERVER ip地址 |
主机名 | /etc/hostname /etc/hosts | 修改主机名需要重新启动电脑:reboot |
重启网络服务
Service network restart
ip是一个功能强大的综合性网络指令,可以查看网卡接口、路由、IP等功能。
查看网卡IP信息 ------------------- centos6.x ifconfig
ip addr
查看网卡数据数据统计信息
ip -s link
ping,可以用来检测两台连接的连接情况。
语法:
ping -c 数字 IP/主机名
-c:连接的次数。
-W:最长等待的秒数。
ss,指令,可以用来查看网络接口。在centos7之前的版本中常用的是netstat这个指令。
ss -参数列表
常用参数:
a:浏览所有接口。
n:解析服务名为端口号数字
t:tcp
l:监听的
p:显示使用socket的进程信息
u:udp
例1:查看当前运行的所有tcp服务器,显示服务名。
例2:查看当前运行的所有tcp服务器,显示端口号。
Linux上的软件安装只有root账号才可以完成。
Linux系统下的软件安装有三种方法。
优点:软件根据实际的机器硬件进行配置和编译,性能最好、最稳定。
缺点:需要使用源代码编译、安装,比较麻烦。
tarball就相当于我们自己做馒头一样,自己买面,合面,自己蒸,虽然比较麻烦,但是自己做的很香,还可以根据自己的口味调整。
大部分的tarball安装的命令执行方式如下:
l ./configure 这个步骤是建立makefile这个文件
l makeclean 消除下上次编译过的目标文件之类的,不是必须要有,但保险起见还是做一下
l make 会依据makefile当中默认工作(也就是第一个)进行编译行为,主要是进行gcc将源码编译成为可执行的目标文件,而这个可执行文件放置在目前所在的目录之下
l make install 一般是最后的安装步骤,make会依据makefile关于install的选项,将上个步骤所编译完成的数据安装到默认的目录中
参考学习:https://blog.csdn.net/wangzengdi/article/details/32988275
优点:安装包直接运行安装,相对tarball简单些。
缺点:存在包依赖的问题,安装时需要手动下载很多安装包。
包依赖:安装A包时,报错提示需要B包,下载安装B包时,报错提示需要C包。。。。一直要把所有用的包都下载安装才可以。rpm解决了这个问题。
rpm相当于成品馒头,买回来直接吃。
1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录;
2、打开一个终端,su -成root用户;
3、cd soft.version.rpm所在的目录;
4、输入rpm -ivh soft.version.rpm
rpm方式在安装软件时需要自己下载软件,还要解决包依赖,而yum解决了这个问题,yum只需要执行几个命令就可以自动下载并安装软件。
优点:最简单方便的安装方式,只要一条指令,系统就可以自动下载并安装所有的包。
缺点:1. 必须要有软件源(连网或者搭建软件源) 2. 有些软件没有yum包,不能使用yum安装,比如nginx等。
yum,就像外卖一样,一个电话,香喷喷的饼头和菜就送到家了,非常方便。
总结:如果能够连网使用yum安装软件是最方便的,如果yum安装不了,可以考虑rpm和tarball。
使用rpm非常的简单只需要几个指令。
指令1、列出所有已安装的软件
rpm -qa
指令2、查看是否安装了某个软件
rpm -q 软件名
例、查看是否安装了vim。
指令3、查看某个已安装的软件的信息
rpm -q[licdR] 已安装的软件名
-l:列出该软件所有的文件和目录
-i:列出该软件的详细信息,如开发商、版本、说明等
-c:列出该软件所有的配置文件(一般在/etc目录下)
-d:列出该软件所有的帮助文件
R:列出该软件依赖软件所包含的文件
例、查看python软件安装之后所有文件的路径。
指令3、查找某个文件属于哪个软件
rpm -qf 文件名
指令
rpm -ivh 软件包
-i:安装
-v:查看更详细的安装信息界面
-h:以安装信息栏显示安装进度
–prefix=安装路径:安装的目录,如果不设置会安装到默认目录中
–test:测试一下是否可以安装
注意:在一其它的Linux版本中,比如ubuntu。用的是dpkg机制。
安装目录:使用–prefix可以指定安装的目录,如果没有指定,默认会安装到以下几个目录中:
安装的软件主要包含以下几部分:可运行的程序、配置文件、手册、说明文档。
目录 | 说明 |
---|---|
/usr/bin | 可运行的程序 |
/etc | 配置文件 |
/usr/share/doc | 说明文档 |
/usr/man/man1 | 手册 |
指令
rpm -Uvh 软件包
指令
rpm -e 已安装的软件名
由RPM文件会经常 安装/删除/升级 等,某些操作或许会导致RPM数据库/var/lib/rpm/内的文件损坏。这时我们就需要重建一下RPM的数据库:
rpm --rebuilddb
RPM可以很方便实现软件包的管理,但是却有一个最最麻烦的问题:“包依赖”。
包依赖,当我们安装A软件时,会报错提示需要先安装B,这时我们安装了B软件之后,又报错会提示我们需要先安装C。。。。。最终我们为了安装好一个软件,需要把所有相关的依赖包都下载来先安装,这就会花费我们大量的时间。
同时在卸载软件时也要非常的小心,因为如果卸载的软件包被其它软件所依赖,那么这个软件卸载之后还会导致其它依赖它的软件也无法使用。
如何解决呢?
使用YUM。
yum安装的好处是无须手动下载软件,只能简单几个指令,yum就会自动帮我们下载并完成安装。
指令 | 描述 |
---|---|
yum search 软件名 | 查找软件 |
yum info 软件名 | 查看软件信息 |
yum list | 列出yum服务器上所有的软件包 |
yum list updates | 列出可供升级的软件有哪些 |
yum install 软件名 | 安装软件 |
yum update 软件名 | 更新软件 |
yum remove 软件名 | 删除软件 |
yum repolist all | 列出所有软件源 |
注意:在一其它的Linux版本中,比如ubuntu。不叫yum,叫做apt-get,虽然软件不同,但原理相同。
例、安装vim软件。(前提:需要联网。)
先查找有没有这个软件
搜索到了几个vim,选择一个合适的安装:
安装时会询问你是否下载安装相关的依赖包,按y同意即可:
可以看到需要30多个依赖包,这些包yum会自动帮我们下载安装,非常的方便,如果我们自己使用rpm来安装,那简直是恶梦!
yum下载软件时,必须要先有一个软件源,否则yum不知道从哪里才可以下载,软件源是通过yum的配置文件来配置的:/etc/yum.repos.d/CentOS-Base.repo。
这个文件中有多个软件源,以上图中有三个(每个[xx]开始的就代表一个软件源)
[xxx]:软件源名字,xxx就是名字。
name:显示软件源时的名字,不太重要。
mirrorlist=:列出可以使用的站点。
baseurl=:这个最重要,资源实际的地址
enable=1:是否启动,0代表不使用
因为yum有缓存的功能,如果我们修改了软件源需要清除一个现有数据
yum clean all
很多程序是C语言开发,安装这些程序前需要安装编译环境,gcc-c++。两种方式安装gcc-c++
方式一:rpm方式安装
方式二:yum安装
rpm是由红帽公司开发的软件包管理方式,使用rpm可以方便的进行软件的安装、卸载、升级、查询等工作。但是rpm软件包之间可能有依赖关系,处理这些依赖性问题往往会很繁琐。例如使用rpm安装gcc环境时,首先要有gcc的rpm包,如果没则需要下载gcc的软件包并上传到Linux服务器,但是在安装gcc-c++时,会出现如下错误提示
安装步骤:1 提供gcc-c++需要的软件包
2 rpm安装
意思是gcc-c++环境需要依赖gcc、libmpfr、libstdc这3个包,费了九牛二虎之力从网上找到这3个包并上传到服务进行安装,但是!在安装这3个包时,又会出现新的类似的错误提示,然后接下来:下载、安装、看到错误提示、下载、安装、看到错误提示、下载、安装……最后终于搞定了!
整个过程安装了N个软件包,而且需要按照一定的顺序安装,显然你的内心是崩溃的!
最终完成的安装方式:
1、上传gcc-c++环境所需的所有软件包
2、执行安装,直接使用如下命令32****位:
rpm -ivh --nodeps cloog-ppl-0.15.7-1.2.el6.i686.rpm
rpm -ivh --nodeps cpp-4.4.7-18.el6.i686.rpm
rpm -ivh --nodeps gcc-4.4.7-18.el6.i686.rpm
rpm -ivh --nodeps gcc-c+±4.4.7-18.el6.i686.rpm
rpm -ivh --nodeps libstdc+±devel-4.4.7-18.el6.i686.rpm
rpm -ivh --nodeps mpfr-2.4.1-6.el6.i686.rpm
rpm -ivh --nodeps ppl-0.10.2-11.el6.i686.rpm
64****位:
rpm -ivh --nodeps cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh --nodeps cpp-4.4.7-18.el6.x86_64.rpm
rpm -ivh --nodeps gcc-4.4.7-18.el6.x86_64.rpm
rpm -ivh --nodeps gcc-c+±4.4.7-18.el6.x86_64.rpm
rpm -ivh --nodeps libstdc+±devel-4.4.7-18.el6.x86_64.rpm
rpm -ivh --nodeps mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh --nodeps ppl-0.10.2-11.el6.x86_64.rpm
安装命令:yum install gcc-c++
OK
服务,是指常期运行,常驻内存中的进程,比如,apache、mysql、ssh等。
每个服务软件一般在运行时都会对应一个端口。
查看监听的端口
ss –lntp
CentOS 7.0默认使用的是firewall作为防火墙
查看防火墙状态
firewall-cmd --state
关闭防火墙:systemctl stop firewalld
防火墙状态:systemctl status firewalld
卸载Firewall并安装iptables后重新安装回Firewall。安装Firewall启动时,提示
Failed to start firewalld.service: Unit firewalld.service is masked.
systemctl unmask firewalld.service
此时可以正常启动Firewall了。
接下来顺便讲述一下Firewall的安装,及一些简单配置。
查看状态,看电脑上是否已经安装 firewalld
#systemctl status firewalld
#yum install firewalld //安装firewalld 防火墙
#systemctl start firewalld.service //开启防火墙
# systemctl stop firewalld.service //关闭防火墙
# systemctl enable firewalld.service //设置开机自动启动
# systemctl disable firewalld.service //设置关闭开机制动启动
#firewall-cmd --reload //在不改变状态的条件下重新加载防火墙
启用某个服务
# firewall-cmd --zone=public --add-service=https //临时
# firewall-cmd --permanent --zone=public --add-service=https //永久
开启某个端口
#firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp //永久
#firewall-cmd --zone=public --add-port=8080-8081/tcp //临时
查看开启的端口和服务
#firewall-cmd --permanent --zone=public --list-services //服务空格隔开 例如 dhcpv6-client https ss
#firewall-cmd --permanent --zone=public --list-ports //端口空格隔开 例如 8080-8081/tcp 8388/tcp 80/tcp
#systemctl restart firewalld.service //修改配置后需要重启服务使其生效
#firewall-cmd --zone=public --query-port=8080/tcp //查看服务是否生效(例:添加的端口为8080
如何查看当前正在运行的程序呢?
查看当前系统中正在运行的所有的程序
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
ps -aux命令可以查看更详细的进程信息!
kill 杀掉某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
top可以动态的查看程序的变化,可以用来观察每个进行CPU、内存的占用率。
top -d 数字
-d:更新的秒数。
查看进程的CPU、内存占用率。在这个界面可以使用几个按键实现交互:
M :根据内存占用率排序。
P :根据CPU占用率排序。
q :退出。
可以使用 kill 指令关闭一个正在运行的程序。
kill -信号 进程id
常用信号:
-9:强制关闭程序。
-15:正常关闭程序。
进程id:可以通过 ps 指令查看到。
我们可以把一个程序丢到后台去执行,这样我们可以在前台继承做其它的工作。
按 ctrl + z 把当前工作丢到后台
这个指令会把工作丢到后台并让它处于“暂停”状态。
可以使用 jobs 指令查看后台中运行的程序。
可以使用 fg 工作号 把后台运行的工作拿到前台来运行。
可以使用 bg 指令让一个程序在后台运行,而不是暂停。
可以使用 kill 指令关闭一个后台正在运行的程序。
kill -信号 %工作号
常用信号:
-9:强制关闭一个工作。
-15:正常关闭一个工作。
查看用户:
id : 查看当前用户
id 用户名 : 查看指定用户
我们查看文件列表时,前面有一串信息:
其含义是:
读取权限 4
写:2
执行:1
读取+写:6
读+执行:5
写+执行:3
所有:7
7 7 7
7 6 6
7 5 5
第一个位置代表的是Linux中的文件类型:
创建软连接的方式: 注意 只能对文件操作,不可对目录操作
ln -s 源文件地址 联接地址
例如:
1 现在usr下面创建jdk文件夹
2 执行
ln -s /usr/software/jdk1.8.0_181/bin/java /usr/jdk
这样就用 /usr/jdk 指向了 /usr/software/jdk1.8.0_181/bin/java这个文件
权限分段,每一段代表不同的用户:
属主权限:当前文件所属用户的权限,在Linux中每一个文件都有所属的用户
属组权限:当前文件的用户所在组的其它成员的权限
其它用户权限:跟文件所属用户不在同组的其它用户的权限
每一段中的内容都是一样的,分别限定:读(r=4)、写(w=2)、执行(x=1)
rwx 7 具备所有权限
rw- 6 具备读写权限
r-x 5 具备读和执行权限
r-- 4 具备只读权限
-wx 3 具备写和执行权限
-w- 2 具备写权限
–x 1 具备执行权限
修改文件权限
我们拿到一台主机之后,首先需要了解主机的硬件信息,这样才可以评估出硬件的性能。
uname -a 可以查看CPU是32位的还是64位的。
指令
cat /proc/cpuinfo | grep name | cut -f2 | uniq -c
查看CPU型号和核数,可以看出是 i7 处理器, 1核的。
使用 free 指令可以查看内存信息。
指令
free -m
单位:兆(MByte)
可以使用 df 查找每个分区的信息。
df -h
可以使用 du -h 查看某个目录的大小。
可以使用 timedatectl 查看系统时间、时区等信息。
timedatectl set-timezone Asia/Shanghai
timedatectl set-time YYYY-MM-DD
timedatectl set-time HH:MM:SS
vim的操作基本上和vi一样。但vim中的功能更加的强大,比如有代码加亮、变色功能:
Day03总结:
1 firewalld防火墙的使用
开机自启:systemctl enable firewalld
启动:systemctl start xxx
停止:systemctl stop xxx
重启:systemctl restart xxx
查看防火墙状态:systemctl status xxx
永久开放端口:firewall-cmd --permanent --zone=public --add-port=8080/tcp
临时开放端口:firewall-cmd --zone=public --add-port=8080/tcp
查看开放端口:firewall-cmd --permanent --zone=public --list-ports
2 tomcat开机自动启动—与上面不一样,需要配置
3 进程管理指令
rpm -qa | grep xxx 查看已安装软件
ps -ef : 查看正在运行的进程
Top:
Kill:
4 用户管理:useradd
5 文件权限:chmod 777 赋予权限