一、Linux介绍
背景:Java项目通常基于windows系统进行开发、服务器部署则是基于Linux。
值得注意的是,通常我们所说的Linux其实是指Linux内核。
1.1 Linux系统概述
- Linux是一套免费使用、自由传播的类unix操作系统
- 支持多用户、多任何、支持多线程和多CPU的操作系统
- linux通常作为服务器系统使用(windows server也是一个适用于服务器的系统)
1.2 Linux系统的特点
- 性能比window更稳定(宕机概率比较低)
- 完全开源,用户可以自由的进行裁剪、灵活性高、使用成本低
- 技术社区用户多
- Linux核心防火墙组件性能高、配置简单,保证系统的安全
- 对于linux提供纯命令行系统(也可以带有桌面),系统开销比windows小的多
- 综上,Linux比windows更合适用于服务器系统
1.3 Linux系统版本
- RedHat(RedHat公司发行的Linux版本,效率高、高可扩展、高可靠性)
- SUSE(德国SUSE公司推出的Linux发行版)
- DEbian(追求创建自由操作系统,目前有很多的非官方版本,可用性不高)
- Ubuntu(乌班图,基于DEbian发行版,桌面系统,是一个以桌面应用为主的linux系统)
- CentOS(基于RedHat源码编译而成,CentOS完全开源)
- 红旗Linux
- OS X就是一个Linux系统
二、手把手创建Linux系统
如何获取一个Linux系统?
- 基于硬件的安装Linux(安装双系统)
- 安装虚拟机:在当前windows环境下,安装一个虚拟机软件,通过这个软件模拟一台计算机(占用资源)
- 租用云主机(推荐使用)
2.1 虚拟机介绍
- 使用软件模拟硬件环境—虚拟机
2.2 虚拟机环境准备
2.2.0 安装VMware
安装简单基本都是下一步,这里就不多废话了。
VMware Workstation和虚拟机的区别:这里注意VM不是虚拟机,通俗来说,相当于一个容器,虚拟机要在主机可以运行,必须依赖容器提供的环境(也可说VM在主机中分配资源已供虚拟机运行)也可以理解用于创建并管理虚拟机
2.2.1 下载
2.2.2 安装
一直默认下一步。。。。。
2.3 下载CentOS的安装镜像
官网下载地址:centos下载
- 步骤如下图:centos下载后,不用解压,记住文件位置,放在一边
2.4 创建虚拟机
-
打开VM,选择创建新虚拟机
-
选择自定义配置,点击下一步
-
直接下一步
-
选择稍后安装
-
选择Linux,和centos7
-
为虚拟机取名(建议见名知意)和安装位置
-
内核数和处理器数根据自己电脑配置选择(一般默认可供学习使用,建议不超过2),内核数越高,虚拟机效率高。
-
内存同样根据自己电脑配置,建议2GB(2048MB)
-
网络选择NAT
-
后面两项建议推荐
下面是重点 -
点击创建新虚拟磁盘
-
最大磁盘大小按需分配,我给了20GB,选择将虚拟磁盘拆分成多个文件。
-
默认下一步
-
到这里我们可以看到VM中有一个我们刚刚命名为centos7虚拟机
-
右键CentOS7,点击设置进入设置页面,点击CD/DVD,使用ISO映像文件,选择之前下载的centos镜像即可。
-
开启虚拟机,见到如下页面,选择Install CentOS Linux 7,直接Enter
-
滑动右侧滚动条选择中文—>简体中文
-
点击继续,设置如下的配置
1、点击安装源,确认是本地介质。
2、软件选择:GNOME桌面
3、根据需要禁用Kdump
4、自动分区,一般化为4个分区(重点),如图所示
-
当点击安装位置时,注意开始配置分区,一般设置四个
-
开始分区,挂载(至于什么是分区挂载,我会在接下来的文章详解Liunx)
-
依次添加 /room 500MB , / 10GB ,swap 2048MB然后接受
-
开始安装
-
接下来,会用创建用户和密码等,root拥有最高用户权限,root不需要我们创建,我们只要设置密码,建议密码简单好记(如admin123),接着我们可以创建一个其他用户,并设置密码
-
接着同意协议,并打开网络,最后完成
-
用刚创建的用户和密码进行登录,也可用root账户登录。
-
接下来就是重要的网络设置了
-
开启window下的VMnet8
-
打开有线设置(在右上角)
-
点击网络,点击设置图标
-
选择自动连接
-
在window下cmd窗口输入ipconfig获取主机ip地址
-
在虚拟机右键,点击打开终端,输入命令 ifconfig(注意和window不同,查看ip)
-
最后,可以试着看网络设置成功没,在主机cmd窗口输入:ping +虚拟机ip,如果可以ping通,则设置正常。
2.5 进入CentOS
-
查看网络配置: applications–>Terminal
ifconfig
-
系统状态切换
init 3 切换到命令行状态 init 5 切换到桌面状态
2.6 虚拟机克隆
2.6.1 克隆
选择目标虚拟机–>右键–>管理–>克隆–>选择完整克隆
2.6.2 修改mac
选择克隆后的虚拟机–>右键–>设置–>网络适配器–>高级–>Mac地址(生成)–>确定
三、云主机
3.1 什么是云主机?
- 云主机是一种类似VPS主机的虚拟化技术,在一台主机(主机集群)虚拟出多个类似独立主机的部分,能够实现单机多用户,每个部分都可以作为单独的操作系统、管理方法同主机一样。
- 云主机是一个建立在多个主机(主机集群)上的虚拟系统,集群中的每台主机都有这个云主机的镜像,从而大大提高了虚拟云主机的安全稳定性
3.2 够买云主机
推荐阿里、腾讯
阿里:24岁以下免学生认证,享受学生优惠政策;超过24的学生需要学生认证
腾讯:25岁
3.3 云主机管理
- 通过阿里云控制台管理云主机的状态
- 启动、停止、重启
- 设置实例密码
- 自定义实例镜像
- 安全组管理
四、Linux远程工具
xshell 远程终端
xftp 远程资源管理工具
4.1 xftp 资源管理工具
4.1.1 安装
傻瓜式安装
4.1.2 创建连接
4.2 xshell 远程终端
4.2.1 安装
默认安装
4.2.2 创建连接
同上
五、Linux常用操作指令
5.1 如何学习Linux?
- Linux的文件系统
- Linux文件管理
- 目录:进退、创建、删除
- 文件:创建与编辑、复制和粘贴、移动和删除、压缩和解压
- 用户及权限的管理
- 软件管理
- 软件安装
- 软件配置
- 软件卸载
5.2 Linux文件系统
Linux系统不同于windows,在Linux系统中没有盘符,根路径用"/"表示
[root@theo ~]# cd /
[root@theo /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@theo /]#
目录 | 说明 |
---|---|
bin | 系统文件夹 |
sbin | 超级管理员的系统命令 |
boot | 系统所需目录(系统启动相关文件) |
etc | 存放系统配置相关的文件(环境变量) |
lib/lib64 | library 存放系统所需的依赖库 |
home | 一般用户所在文件夹(此目录包含了所有普通用户的子目录) |
root | 超级管理员目录(root用户目录) |
media | 媒体(光驱) |
mnt | 挂载(U盘、移动硬盘) |
tmp、opt | 临时的文件存储目录,比如日志存储在tmp或者opt中 |
usr | 用户目录,我们通常安装的软件、用户的一些文件都在此目录下 |
run srv sys var proc dev | 系统相关目录 |
5.3 Linux系统指令语法
指令 选项 参数
- 指令,决定了当前的动作
- 选项,可有可无(对于有些指令,选项是必须的)
- “-” 表示短选项,一个字母代表一个选项
- “–”表示长选项,一个单词代表一个选项
- 参数,指令正常执行所需的数据
man指令(manual:说明书)
- man 指令
- 点击q退出说明书
5.4 文件管理
5.4.1 目录操作指令
-
进入文件夹及退出文件夹
-
cd 目录名称 进入指定的目录(当我们输入目录名称的时候,可以通过Tab进行自动补全)
## 进入到Linux根路径 cd / ## 进入到当前用户的目录 cd ~
-
cd … 退出当前目录
-
pwd (print working directory)查看当前路径
-
-
显示当前目录下的文件列表
- ls 显示文件列表
- ls -a 显示当前目录下所有文件列表(包括隐藏文件)
- ls -l 显示当前目录下文件列表的详细信息
- ll 显示文件列表详细信息
-
目录的创建和删除
- mkdir 目录名 在当前目录下创建新的目录(创建一级目录)
- mkdir -p 目录A/目录B 连同父级目录一起创建 创建目录
- rm 目录 删除当前目录
- rm -rf 目录 强制递归删除目录
- -r recursive 递归
- -f force 强制
- rmdir 目录 专门用于删除目录
5.4.2 文件操作指令
-
创建和修改文件
-
vi (visual) 文件编辑
-
vim (visual improved) 增强文件编辑
# 打开目标文件;如果此文件不存在,则表示先创建此文件再打开 vi a.txt
- 当文件打开之后,点击"i"进入到编辑状态;
- 完成编辑之后,点击“esc”退出编辑状态;
- 退出文件:
- :q 如果未对文件进行任何修改—退出文件
- :q! 对文件内容进行了修改,但是不保存退出
- :wq 保存对文件的修改并退出
-
-
阅读文件
- cat 文件名 阅读文件内容,适合阅读小文件
- more 文件名 阅读文件,带有翻页(一次往下一行,不支持向上翻页)
- less 文件名 阅读文件,适合阅读打文件;可以上下翻页(PgDn/PgUp),退出less阅读模式点击q
- 在less阅读模式下,输入“?查询内容”可以向上查询数据;输入“/查询内容"可以实现向下查询内容
-
查询文件和查询内容
- find 文件名 在前目录查找文件/目录
- find 文件名 目录 在指定的目录中查找文件
- find -name 文件名 在当前目录包括当前目录子目录中查找文件
- grep -n 内容 文件 在指定的文件中查找指定的内容
-
管道命令
- 管道命令:多个命令的组合
- 特征:前面的命令必须有输出,后面的命令使用这个输出
- 实例:cat a.txt | grep Hello| grep 23
-
删除文件
- rm -rf 文件名
-
复制和移动
- cp 文件 目录
- mv 文件 目录
5.4.3 文件压缩和解压
-
windows系统下压缩文件通常是zip、rar等格式;Linux系统压缩文件通常为tar.gz
-
tar 指令 完成linux系统的文件压缩和解压
-
tar -zcvf 压缩
# 对test1目录进行压缩,压缩到test1.tar文件 tar -zcvf test1.tar test1 # 将test1和test2进行压缩,压缩到test.tar文件 tar -zcvf test.tar test1 test2
-
tar -zxvf 解压
# 解压指定的压缩文件 tar -zxvf test.tar
-
-
指令说明:
- z 用gzip工具进行压缩或者解压
- x extract 解压缩
- c compress 压缩
- v verbose显示压缩/解压过程详细信息
- f file 文件
5.5 用户及权限管理
linux中的用户管理,采用的用户组形式
用户组 用户
root root
-
用户组
- groupadd team1 创建用户组
- groupdel team1 删除用户组
-
用户
- useradd -g 用户组 用户名 创建新用户
- passwd 用户名 设置用户密码
- userdel 用户名 删除用户
-
切换用户
- su 用户名 切换至其他普通用户
- su 切换至管理员(需要输入超级管理员密码)
-
权限管理
- 说明:
- 第一个字符表示文件|目录 ,d表示目录,-表示文件
- r 可读(4) w可写(2) x 可执行(1)
- 第一个rwx:表示当前文件的所有者拥有的权限
- 第二个rwx:表示和文件所有者同组用户拥有的权限
- 第三个rwx:表示不同组用户拥有的权限
- 修改权限 chmod
- chmod 775 文件名
- 说明:
5.6 系统与进程
-
查询进程
- lsof -i:port 通过端口查询进程信息
- 如果此指令不可以用,则需要通过 yum install lsof安装指令
- CentOS6 Ubuntu没有此指令
- netstat -apn | grep port 通过端口查询进程信息 (CentOS6)
- ps -ef | grep java 通过进程名称查找进程
- lsof -i:port 通过端口查询进程信息
-
强杀进程
- kill -9 PID 通过进程编号强杀进程
-
系统注销和重启
- logout 注销
- reboot 重启
六、软件管理相关的指令(wget, rpm,yum)
6.1 wget指令
我们在linux中安装软件,首先要完成软件安装包的下载;获取Linux系统中软件的安装包,我们有两种途径:
- 在windows中进行下载(百度搜索—下载),通过xftp将windows现在的安装包上传到Linux系统
- 直接在linux系统中,通过wget进行下载
6.1.1 wget介绍
- wget是Linux系统中一个下载文件的工具,Linux系统自带
6.1.2 wget使用
- wget [option] url
- mysql 下载: wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
6.2 rpm指令
6.2.1 rpm介绍
RPM(Rad-Hat Package Manager) 是一块Linux系统的软件包的管理器
6.2.2 rpm指令
-
查询:rpm -qa | grep 关键字
-
卸载:rpm -e --nodeps 软件名称
-
安装:rpm -ivh 安装包.rpm
- mysql安装: rpm -ivh mysql57-community-release-el7-10.noarch.rpm
-
更新:rpm -Uvh 安装包.rpm
6.3 YUM指令
6.3.1 yum介绍
- yum(全称:Yellow Dog Updater,Modified),基于RPM包管理,能够从指定的服务器自动下载rpm并安装,可以自定处理依赖关系,一次安装所有的依赖软件,无需一个个的下载安装。
6.3.2 yum指令
- yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
- yum list yum list 列出系统中所有的包
- yum [-y] install rpm包 下载并安装rpm包
- yum update rpm包
- yum remove rpm包