目录
前言
因为本人读的是物联网专业,是基于linux下编写c语言,在初学linux的时候十分枯燥,毕竟就好像背命令一样。现在用linux将jdk、tomcat、mysql等软件传入虚拟机在linux环境中搭建项目,总结了一句话,实践出真知,用虚拟机linux系统搭建的服务器是可以在主机连接的,其前提是需要在虚拟机关闭防火墙,虚拟机ip:端口号,即可访问
举例:这是在虚拟机下搭建的tomcat
这是在主机访问
1.VMware介绍
VMware是⼀个“虚拟pc”软件公司,提供服务器,桌⾯虚拟化的解决⽅案。它的产品可以实现在⼀台计算
机上同时运⾏两个或者更多Windows,DOS,LINUX系统。与多启动系统相⽐ ,VMware采⽤了完全不
同的概念。多启动系统在⼀个时刻只能运⾏⼀个系统,在系统切换时需要重启计算机。VMware可以实
现真正“同时”运⾏,多个操作系统在主系统平台上可以像标准windows应⽤程序那样切换。每个操作都
可以进⾏虚拟分区,配置,⽽不影响真实硬盘的数据,甚⾄可以通过虚拟⽹卡将⼏台虚拟机连接为⼀个
局域⽹,及其⽅便。安装在VMware⾥⾯的操作系统的性能⽐直接安装在硬盘上的系统性能⾼不少,⽐
较适合学习和测试。
2.Linux介绍
Linux是⼀种⾃由和开放源码的类UNIX操作系统。它能运⾏主要的Unix⼯具软件、应⽤程序和⽹络协
议,⽀持32位和64位硬件。该操作系统的内核由林纳斯·托瓦兹于1991年10⽉5⽇⾸次发布。
Linux最初是作为⽀持英特尔x86架构的个⼈计算机的⼀个⾃由操作系统,现可运⾏在服务器和其他⼤型
平台之上,如⼤型计算机和超级计算机。Linux也⼴泛应⽤在嵌⼊式系统上,如⼿机(Mobile
Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电⼦游戏机等。
开放性,多⽤户,多任务,丰富的⽹络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良
好的⽤户界⾯(命令界⾯,图形界⾯等),出⾊的速度性能。
发⾏版本:是⼀些⼚商将Linux系统内核与应⽤软件和⽂档包装起来,并提供⼀些安装界⾯和系统设定管
理⼯具的⼀个软件包的集合,例如RedHat Linux,Ubuntu, CentOS(企业社区版)等。
3.VM+Linux安装
自行下载
4.Xshell连接 Linux
⾸先需要查看linux端⼝号:
在linux主界⾯中右键选择“open in Terminal”
输⼊“ifconfig”指令查看ip地址
打开xshell,输⼊相关信息,建⽴连接
登录说明:
路径:~ ⽤户存放数据的根⽬录则显示~
⽤户类型:# 超级⽤户 $普通⽤户
5.Linux系统介绍
linux⽬录结构
查看⽬录:
bin 存放⼆进制可执⾏⽂件(ls,cat,mkdir等)
boot 存放⽤于系统引导时使⽤的各种⽂件
dev ⽤于存放设备⽂件
etc 存放系统配置⽂件
home 存放所有⽤户⽂件的根⽬录
lib 存放跟⽂件系统中的程序运⾏所需要的共享库及内核模块
mnt 系统管理员安装临时⽂件系统的安装点
opt 额外安装的可选应⽤程序包所放置的位置
usr ⽤于存放系统应⽤程序,⽐较重要的⽬录/usr/local 本地管理员软件安装⽬录
开发⼈员关注⽬录:
配置⽬录:软件安装后配置⽂件选择放⼊的地址。
软件安装⽬录:
opt⽬录⼀般⽤来安装应⽤程序。部署的API程序⼀般放在这个⽬录。
部署的API放⼊⽤户的⽬录:/home/⽤户名
注意:Linux系统的⽂件系统是以斜杠“/”开始,不是windows中的盘符概念。
Linux系统的⽂件权限
在linux下每个⽤户都有不同的权限,普通⽤户只能在⾃⼰的主⽬录下进⾏写操作.
三种基本权限:R 读权限,W 写权限,X 执⾏权限
⽂件介绍:
-rw-r–r--. 1 root root 26 Oct 16 02:55 yhp.log
⽂档类型与执⾏权限分为4部分(1,2-4,5-7,8-10)
**-rw-r–r--**⽂档的类型和权限由4部分内容组成:
操作权限:
chown 是change owner的意思,主要作⽤就是改变⽂件或者⽬录所有者.
chmod 修改⽂件和⽂件夹读写执⾏属性。使⽤权限 : 所有使⽤者
chown 修改⽂件和⽂件夹的⽤户和⽤户组属性。使⽤权限:root
创建⽂件:
修改权限的⽅式:
(1)字符设置法
chmod [who] [+ | - | =] ⽂件名
who (u ⽤户user ,g⽤户组group,o其他⽤户,a所有⽤户默认)
操作符号:
+添加某个权限
-取消某个权限
=赋予权限
chmod u+x,g+w,o+w test.log //r 读,w 写 x 执⾏
修改⼀个权限:
-rw-r--r--. 1 root root 0 9⽉ 1 17:10 java.log
chmod g+w java.log
-rw-rw-r--. 1 root root 0 9⽉ 1 17:10 java.log
(2)数字设定法
0⽆权限,1表可执⾏=x,2表写⼊权限=w,4表可读权限=r
识别:
-rwxr--r--. 1 root root 10 Oct 16 02:55 yhp.log
当前的数字权限:
⽤户权限=rwx=4+2+1=7
所属组权限=r–=4+0+0=4
其他⽤户权限=r–=4+0+0=4
组合:744
修改权限:
都加⼊写⼊权限:+2
给⽤户组加⼊写⼊权限:+2
给其他⽤户加⼊可执⾏权限:+1
chmod 765 yhp.log
结果:
-rw-rw-r--. 1 root root 0 9⽉ 1 17:10 java.log
chmod 666 java.log
-rw-rw-rw-. 1 root root 0 9⽉ 1 17:10 java.log
6.Linux常⽤指令
6.1. 查看⽬录
ls 查看⽬录内容
ll 查看详细信息
6.2. 创建⽬录
mkdir :创建⽬录
mkdir -p 创建⽬录以及⼦⽬录,多个⽬录同时创建
mkdir -p a/b/c
6.3. 切换⽬录
cd 切换⽬录cd … 要加空格cd …/xxx 进⼊上⼀级⽬录的⼦⽬录
6.4. 创建⽂件
touch :创建⼀个空⽩的普通⽂件
6.5. 写⼊内容
echo :把内容重定向到指定的⽂件中 ,有则打开,⽆则创建
覆盖模式>: echo “ww”>aa.txt
追加模式>>: echo “ww”>>aa.txt
追加模式:
6.6. 查看⽂件内容
cat :查看⽂件内容
more :分⻚查看⽂件内容,按空格键换⻚
6.7. 复制
cp :复制
6.8. 剪切
mv :剪切、重命名(剪切的⽂件 放在同⼀个⽬录中是重命名)
6.9. 删除
rm :删除⽂件或者⽂件夹 -r :递归删除
rm -fr 直接彻底删除,没有提示。
6.10. 统计⾏
wc : -l 统计⾏数
6.11. 当前路径‘
pwd :查看当前⽬录的绝对路径
6.12. 显示主机
hostname : 显示主机名
6.13. 系统信息
uname -a :显示完整的系统信息
6.14. 查看进程耗时与占⽤
top :显示当前耗时的进程信息 ,每3秒刷新⼀次 cltr+c 中断
top确认CPU和内存的占⽤情况
6.15. 查看进程快照
ps : - axu 显示当前进程的快照
不过滤:
查看java进程
查看 mysql进程
6.16. ⽂件⼤⼩
du :-sh 显示⽂件的⼤⼩信息
6.17. 磁盘占⽤
df :-lh磁盘使⽤情况
6.18. ⽹卡
ifconfig :查看或者配置⽹卡信息(ip addr)
6.19. 强制结束
kill pid :杀死进程
Kill -9 强制杀死
6.20. 查看端⼝
netstat
常⽤参数:
-a或–all:显示所有连线中的Socket;
-l或–listening:显示监控中的服务器的Socket;
-n或–numeric:直接使⽤ip地址,⽽不通过域名服务器;
-p或–programs:显示正在使⽤Socket的程序识别码和程序名称;
-t或–tcp:显示TCP传输协议的连线状况;
netstat -tlnp
找出运⾏在指定端⼝的进程:
netstat -tlnp | grep ‘:22’
6.21 打包与拆包
tar - cxzjvf <打包后的⽂件> <欲打包的⽬录>
- c :创建的⼀个归档⽂件
- x :拆包
- z :以gzip 格式压缩 j :以bzip2格式压缩
- v :显示打包或者拆包的⽂件信息
- f : 后⾯紧接⼀个 归档⽂件
- 打包及压缩:tar -czvf yhp.tar.gz ./yhp/
- 拆包及解压缩: tar -xzvf yhp.tar.gz
unzip解压:(windows中软件等)
unzip rocketmq.zip -d rocketmq(-d到指定⽬录可选)
打包:
拆包:
6.22 ⽂本编辑器
指令:VIM
操作模式:
⼀般模式 ,默认⽅式,该模式不能编辑
按 i(insert) 进⼊ 插⼊模式
编辑模式
该模式可以编辑⽂档,按esc 退出插⼊模式
命令模式
⼀般模式中按:进⼊命令模式[yy复制⼀⾏, dd剪切⼀⾏,p粘贴]
:q 安全退出,当没有操作该⽂档
:q!修改了内容,但不想保存,强制退出
:wq 保存退出
:set number 显示⾏号set nonumber 取消⾏号显示行:
7.SecureFXPortable上传⽂件到Linux
建⽴连接:
将左侧window系统下的压缩包直接拖拽到右侧linux系统即可
8.安装JDK
1.上传jdk⽂件到linux
使⽤SecureFX连linux后,可以直接新建⽂件夹到linux。例如创建soft放置压缩包。
2.创建保存解压后的jdk的⽂件夹
3.解压jdk压缩包
4.将解压后的jar包放在jdkhome下
5.测试jdk是否安装成功
注意:这⾥实在jdk的bin⽬录下运⾏的。并且java命令前有“./”
6.配置环境变量
(1)先切换到root⽤户:su root
(2)修改profile⽂件的操作权限:
(3)编辑profile⽂件:
(4)添加JAVA_HOME变量:
(5)使环境变量及时⽣效
(6)查看变量是否更新成功:
(7)在任意⽬录下测试环境是否配置成功
Admin⽤户也是如此:
定义java⽂件做测试:
注意:这⾥将java⽂件保存到了soft⽂件夹
9.安装web服务器
Tomcat(依赖jdk)
上传:
10. 防⽕墙
Linux系统中默认有防⽕墙Iptables管理所有的端⼝,只启⽤默认远程连接22端⼝其他都关闭
10.1. ⽅案⼀:修改防⽕墙配置
将开启的端⼝加⼊防⽕墙⽩名单中:
vim /etc/sysconfig/iptables
增加下⾯代码
-A INPUT -p tcp -m state -- state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state -- state NEW -m tcp --dport 3306 -j ACCEPT
保存退出,重启防⽕墙
测试:
10.2. ⽅案⼆:关闭防⽕墙
关闭防⽕墙 service iptables stop
关闭防⽕墙⾃动启动 chkconfig iptables off
公司⼀般有硬件防⽕墙,软件防⽕墙可以直接关闭。
11. 安装MySQL
补充: CentOS6 停⽌维护更新⽇期2020年11⽉30⽇
MySql安装:
YUM( Yellow dog Updater, Modified)是⼀个在Fedora和RedHat以及CentOS中的Shell前端软
件包管理器。
它基于RPM包管理,能够从指定的服务器⾃动下载RPM包并且安装,可以⾃动处理依赖性关系,⽆须繁琐地⼀
次次下载、安装.
步骤1: 检测系统是否⾃带安装mysql
[root@localhost /]# yum list installed | grep mysql
步骤2: 删除系统⾃带的mysql及其依赖(防⽌后⾯安装发⽣冲突)
[root@localhost /]# yum -y remove mysql-libs.x86_64
步骤3: 给CentOS添加rpm源,并且选择较新的源,RPM软件包管理器缩写
[root@localhost /]# wget --no-check-certificate dev.mysql.com/get/mysqlcommunity-release-el6-5.noarch.rpm
步骤4: 安装第⼀步下载的rpm⽂件
[root@localhost /]# yum install mysql-community-release-el6-5.noarch.rpm
此处需要输⼊"y"
[root@localhost /]# yum repolist enabled | grep mysql //列出你所有的yum repo⽂件
步骤5: 使⽤yum安装mysql
[root@localhost /]# yum install mysql-community-server
此处输⼊3次“y”
注意在测试时,要关闭防⽕墙
步骤6: 启动mysql服务
[root@localhost /]# service mysqld start
步骤7: 查看mysql是否⾃启动,并且设置开启⾃启动
[root@localhost /]# chkconfig --list | grep mysqld
0 1 2 3 4 5 6 代表centOS启动状态
[root@localhost /]# chkconfig mysqld on
步骤8: 修改字符集为UTF-8
[root@localhost /]# vim /etc/my.cnf
在[mysqld]部分添加:
character-set-server=utf8
在⽂件末尾新增[client]段,并在[client]段添加:
default-character-set=utf8
esc退出编辑 :wq保存退出
修改完成后保存重启服务
[root@localhost /]# service mysqld restart
步骤9: 修改默认配置
[root@localhost /]# mysql_secure_installation
按照提示进⾏配置,这⾥默认root⽤户的密码空,直接回⻋即可。此处输⼊内容:"y","y","n","y","y"
步骤10:授权远程登录
⽅案1:实现远程连接(授权法)- 将权限改为ALL PRIVILEGES
[root@localhost /]# mysql -uroot -p
mysql> use mysql;
Database changed
mysql> flush privileges;
//mysql 新设置⽤户或更改密码后需⽤flush privileges刷新MySQL的系统权限相关表,否则会出现拒
绝访问
mysql> select host,user,password from user;
这样机器就可以以⽤户名root密码root远程访问该机器上的MySql.
⽅案2:实现远程连接(改表法)
use mysql;
update user set host = '%' where user = 'root';
fiush privileges
这样在远端就可以通过root⽤户访问Mysql
注意在测试时,要关闭防⽕墙
12.修改主机名(默认是localhost)
(1)切换到root⽤户
su root
(2)修改⽂件:
注意:该⽂件是只读⽂件,退出时使⽤:wq退出
重新连接后显示修改后的服务器名
13.修改ip地址
(1)切换root
su root
(2) 运⾏setup命令
14.局域⽹内设置通过主机名访问任意主机
(1)切换root