Linux
第一章-Linux概述
1.Linux概述
1.1.Linux简介
? 是基于Unix的开源免费,多用户,多任务的操作系统,
? 由于Linux系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。
1.2为什么要学习Linux
对于windows操作系统而言,大家应该不陌生,这里我列举一些windows的不足:
- 个人用户正版windows需要收费
- 系统长时间运行后,不稳定,变慢,容易死机
- 且windows经常招到病毒攻击等
相反,上述windows的不足,恰好是另一款操作系统Linux的优势所在,这里我也列举一些Linux的优点:
-
个人用户正版Linux不需要收费 -
系统长时间运行后,还是比较稳定,比较快,不容易死机 -
且Linux不常招到病毒攻击等
? 做为一个后端JavaEE程序员,通常在windows/MAC中开发完程序后,得部署到一个相对比较安全,稳定的服务器中运行,这台服务器上安装的不是windows操作系统,而是Linux操作系统。
1.3.Linux的历史
? Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统, 所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统.
2.Linux的版本
2.1Linux的版本
Linux的版本分为两种:内核版本和发行版本;
- 内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号 ;
- 发行版本是一些组织和公司根据自己发行版的不同而自定的
2.2Linux常见发行版本
Linux系统的使用场景
- 服务器是Linux系统的最主要的使用场景
- 大型运算场景的计算机系统
- 安全性要求比较高的场景,比如说"大型公司的网关环境"
- 嵌入式设备、手机等等
二、Linux的安装
1.Linux的安装
1.1虚拟机的安装
? 虚拟机:一台虚拟的电脑. 独立的
? 虚拟机软件:
? VmWare:收费的
? VirtualBox:免费的. Oracle的产品 .
? 参考《01.VMware使用》
1.2 CentOS的安装
? 参考《02.Linux(CentOS)安装.pdf》
1.3.Linux的目录结构
? Linux不像windows那样有盘符的概念,它的最高目录为根目录(用/表示)
? /:系统根目录
? root目录:超级管理员所在的目录,用~表示
? home目录:普通用户所在的目录
? etc:配置文件
? usr:存放共享文件的 (装的软件基本都是在usr目录)
1.4.小结
-
安装时候注意事项
- 内存 4G(512M) 8G(1,2G) 16G(1,2,4,8G)
- 不要忘记选择镜像,选择32位
- 需要配置自动连接
-
目录结构
- / 系统根目录
- root 超级管理员所在目录
- home 普通用户所在目录
- etc 配置文件目录
- usr 文件共享目录(一般在这里装软件)
2.Linux客户端工具CRT
常用的三种Linux客户端:https://blog.csdn.net/yetaodiao/article/details/89024983?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
2.1CRT介绍
? SecureCRT是一款支持SSH(SSH1和SSH2)协议的终端仿真软件,常被用来运行于Windows下远程登录UNIX或Linux服务器 。
2.2.CRT 安装
? 参考《03.CRT连接linux.pdf》
2.3.CRT 的使用
? 参考《03.CRT连接linux.pdf》
2.4.小结
-
使用CRT软件连接的时候, 需要输入的是: 服务器(虚拟机)的ip地址, 不是localhost CentOS的默认端口号是22
三、 Linux的常用命令
1.目录操作命令
Linux里面的路径:
绝对路径:以"/“开头的路径写法,而”/"又是Linux的根目录
相对路径:不以"/"开头的路径写法,以目标路径相对当前路径,如果要往上找一级,则使用…, 如果获取当前目录中的某个文件则直接写文件名,或者./文件名
1.1 切换目录命令 cd change directory
? cd app 切换到app目录
? cd … 切换到上一层目录
? cd / 切换到系统根目录
? cd ~ 切换到用户主目录: 如果当前用户是root则切换到root目录,如果是普通用户则切换到home
? cd - 切换到上一个所在目录(上一个操作的)
如果目录路径以"/“开头是绝对路径,如果目录路径不以”/"开头是相对路径
1.2 列出文件列表
? ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。
-
格式 ls[参数] [路径或文件名]
ls 展示当前目录下资源(不包含隐藏的文件) ls -a 显示所有文件或目录(包含隐藏的文件), 文件带点的是隐藏文件 ls -l 展示文件的详细信息, 简写成 ll (1TB=1024G 1G=1024MB 1MB = 1024KB 1KB = 1024Byte) ll -h 友好显示文件大小(kb) ls -al 展示文件的详细信息(包含隐藏的文件)
1.3.创建目录和移除目录
1.3.1 mkdir
用来创建子目录.
- 格式: mkdir 目录名; 在当前目录下创建目录
mkdir app 在当前目录下创建app目录
- 格式: mkdir -p 目录名/子目录; 级联创建目录
mkdir –p app2/test 级联创建app2以及test目录
1.3.2 rmdir【了解】
用来删除“空”的子目录
rmdir app 删除app目录
1.4显示当前目录的绝对路径
2.文件操作命令
2.1cat
用于显示文件的内容 适合文件内容不多情况
cat yum.conf 查看yum.conf 的内容
2.2 more
分页查看, 按空格键显示下一个画面(下一页)。回车显示下一行内容。按 q 键退出查看。(Ctrl+C退出查看) 适合文件内容多的情况
more services
2.3 less
用法和more类似,less命令无法获取到当前已经阅读的百分比
less services
2.4 tail
tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。
- 格式: tail -n 文件名:查看文件的末尾几行
tail -10 /etc/passwd
- 格式: tail -f 文件名:滚动的查看文件. (安装时候)
tail -f catalina.log
3.文件目录通用操作命令
3.0 touch 创建文件
3.1 mv 移动文件
- mv 文件 目录:移动到指定目录
- mv 文件 目录/文件名:移动到指定目录且重命名
- mv 目录 指定的目录:移动一个目录到指定的目录下
- mv 文件名 新文件名:重命名
3.2 cp 拷贝文件
- cp 文件 目录:把一个文件复制到某目录下
- cp 文件 目录/文件名:复制且重命名
- cp 文件 新文件名 :当前目录下复制一个
- cp -r 目录 新目录:递归复制目录(复制非空目录)
3.3 rm删除文件 (重点)
rm a.txt 删除a.txt文件
rm -f a.txt 不询问,直接删除a.txt
rm -r a; 递归删除a目录
rm -rf a 不询问递归删除
rm -rf * 删除当前目录下所有文件
rm -rf /* 自杀 *********(不要用)
4.文件编辑命令
4.1vi编辑器介绍
? vi编辑器是所有Unix及Linux系统下标准的编辑器,对Unix及Linux系统的任何版本,vi编辑器是完全相同的
4.2三种模式和常用命令
4.3vi编辑器使用
4.3.1基本使用
- 编辑a.txt, 编译的内容是: hello world…
vi a.txt 进入命令模式
按住i 切换到了编辑模式,输入hello world...
按住Esc 切换到命令模式
按住:wq 切换到底行模式 保存并且退出
vi a.txt 进入命令模式
yy 复制
p 粘贴
按住:wq 切换到底行模式 保存并且退出
vi a.txt 进入命令模式
dd 删除当前行
按住:wq 切换到底行模式 保存并且退出
4.3.2练习
在root目录下创建a.txt
cd ~ 切换到root目录
touch a.txt 创建a.txt
编辑a.txt hello...
vi a.txt 进入命令模式
按住i 切换到编辑模式
输入hello
Esc 切换到命令模式
:wq 保存并且退出
复制两行hello...
vi a.txt 进入命令模式
yy 复制
p 粘贴
:wq 保存并且退出
删除最后一行hello...
vi a.txt 进入命令模式
dd 删除行
:wq 保存并且退出
删除a.txt
rm -rf a.txt
4.4vim编译器
? vim是vi的升级版,增加了一些功能,对vi命令是完全兼容的。在一些基本命令上两者都是一样的
5.打包压缩以及解包解压(重要)
打包: 将多个文件打包成一个特定文件, 文件扩展名一般是.tar
压缩: 将多个文件打包成一个特定文件并且做压缩处理, 文件扩展名一般是.gz
5.1 打包压缩【tar -zcvf】
5.2 解包解压【tar -zxvf】
6.其它常用的命令
6.1关机(不用)
halt
6.2重启(不用)
reboot
6.3 查看网卡信息
ifconfig
6.4查看进程
ps -ef 查看所有进程
6.5杀死进程
kill -9 进程号(pid) 杀死指定的进程
6.6 管道: 用于筛选
命令1 | 命令2 解释:一个命令的输出,可以作为另一个命令的输入,至少有二个命令参与执行。 常用的需要使用管道命令有 more,grep。
eg: ps -ef | grep vi #在所有的进程里面筛选出和vi相关的进程
注: grep 筛选指定的内容,grep -i:忽略大小写
? ps -ef | grep vi: 查看所有vi的进程
7.Linux文件权限【了解】
7.1权限介绍
? Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限
7.2 权限参数和数字说明
?
r 可读
w 可写
x 可操作
7.3权限命令操作
7.3.1语法一
- 语法:chmod [参数] 目录/文件
- 参数说明:
- u 作者 当前用户
- g 组员 当前用户同组的用户
- o 它人 其他组的用户
- -r 只读
- -w 只写
- -x 只执行
- 权限操作
chmod u=rwx , g=rx , o=x a.java
7.3.2语法二
chmod xxx 文件/目录
r 可读 4
w 可写 2
x 可操作 1
1 可操作
2 可写
3 可写+可操作
4 可读
5 可操作+可读
6 可读+可写
7 都可以
修改a.txt文件的权限,修改成当前用户“可读、可写”,当前组的其它用户"可读",其他组的用户"可执行"
chmod 641 a.txt
四、Linux网络管理和防火墙设置(了解)
1.Linux网络管理
3.讲解
1.1ifconfig命令
ifconfig #查看与配置网络状态
1.2启动和停止
service network start
service network stop
service network restart
1.3 网络模型
-
桥接模式 ? 物理主机就好像一个交换机,将物理主机和虚拟机连接在一个局域网内。**和主机的关系就像局域网中一台独立的主机,和主机同等地位。**获取外网ip进行上网。物理机上有一个自身的网卡,虚拟机虚拟一个虚拟网卡,两者可以连接到外网。 ? 桥接模式下虚拟机和主机不仅应该处于同一网段,而且相关DNS和网关都应该相同。 -
NAT ? 俗称网络地址转换,是将内部私有网络地址翻译成合法网络地址。物理机上有一个自身的网卡,和虚拟NAT设备直连,还有一个虚拟网卡直接连在虚拟交换机上。虚拟NAT设备与虚拟DHCP服务器直接连在虚拟交换机上,虚拟机通过虚拟交换机和NAT设备实现联网,但是和本机的连接是通过物理主机的虚拟网卡vm adapter8来实现的。虚拟机向外部网络发送的请求数据"包裹",都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,外部网络返回的响应数据"包裹",也是先由主机接收,然后交由NAT网络适配器根据"特殊标记"进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。 ? 从外部网络来看,虚拟机和主机在共享一个IP地址。 -
仅主机 ? 仅主机模式即是nat模式去除 了nat设备,虚拟机是一个独立的系统,只能实现虚拟机和主机间的通信,如果虚拟机需要联网的话,还需要主机共享网卡,所有一般情况下虚拟机不能联网。
3.4 配置NAT网络模型(了解)
- 将其中的“网关IP”设置为“192.168.33.1”
4.Linux防火墙设置
4.1什么是防火墙
? 防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
? 在默认情况下,Linux系统的防火墙状态是打开的,已经启动。
4.2查看防火墙状态
service 服务 status
service iptables status
4.3临时开启/关闭防火墙
service 服务 start/stop
开启:service iptables start
关闭:service iptables stop
4.4 设置开机开启/关闭防火墙(不用去管)
chkconfig 服务 on/off
开启:chkconfig iptables on
关闭:chkconfig iptables off
4.5 设置端口防火墙放行(重点掌握)
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 端口号 -j ACCEPT
service iptables reload
备注: 默认情况下22端口号是放行的
五、软件安装
1.rpm软件包管理器
3.1rpm介绍
? 一种用于互联网下载包的打包及安装工具,它包含在某些Linux(CentOs)分发版中。
3.2rpm常见的命令
? rpm -qa : 查询所有安装过的软件包
? rpm -e --nodeps 删除的软件包名: 删除指定的安装包
? rpm -ivh 包名 :安装rpm包
2.安装JDK
-
下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html -
从windows上传到linux 在CRT下,Alt+P
-
检查系统上是否安装了jdk(若安装了就需要先卸载再使用我们自己的) java -version
-
查看出安装的java的软件包 rpm -qa | grep java
-
卸载linux自带的jdk rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686 tzdata-java-2013g-1.el6.noarch
-
在 /usr/local 新建一个文件夹 java mkdir /usr/local/java
-
移动 jdk…gz 到 /usr/local/java下 mv jdk-8u171-linux-i586.tar.gz /usr/local/java
-
进入 /usr/local/java 目录,解压jdk cd /usr/local/java
tar -zxvf jdk-8u171-linux-i586.tar.gz
-
配置环境变量 vi /etc/profile
#在文件的最后面添加如下代码
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
-
保存退出 -
重新加载配置文件 source /etc/profile
3.安装Tomcat
-
下载tomcat -
上传到linux 在crt上 使用 alt+p
-
在 /usr/local 新建一个文件夹tomcat mkdir /usr/local/tomcat
-
移动 tomcat…tar.gz 到 /usr/local/tomcat mv apache-tomcat-8.5.32.tar.gz /usr/local/tomcat/
-
进入/usr/local/tomcat目录,解压Tomcat cd /usr/local/tomcat
tar -xvf apache-tomcat-8.5.32.tar.gz
-
进入 /usr/local/tomcat/apache-tomcat-8.5.32/bin cd /usr/local/tomcat/apache-tomcat-8.5.32/bin
-
启动tomcat 方式1:
sh startup.sh
方式2:
./startup.sh
-
修改防火墙的规则 方式1:service iptables stop 关闭防火墙(不建议); 用到哪一个端口号就放行哪一个(80,8080,3306...)
方式2:放行8080 端口
修改配置文件
cd /etc/sysconfig
vi iptables
复制(yy , p)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
改成
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
重启加载防火墙或者重启防火墙
service iptables reload
或者
service iptables restart
4.安装MySql
-
下载mysql -
上传到linux 在CRT下,按Alt+P -
检查系统上是否安装了mysql( 若安装了就需要先卸载再使用我们自己的) rpm -qa |grep -i mysql #查看
rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686 #卸载
-
在 /usr/local 新建一个文件夹mysql mkdir /usr/local/mysql
-
把mysql压缩包移动 到/usr/local/mysql mv MySQL-5.5.49-1.linux2.6.i386.rpm-bundle.tar /usr/local/mysql/
-
进入 /usr/local/mysql,解包mysql cd /usr/local/mysql
tar -xvf MySQL-5.5.49-1.linux2.6.i386.rpm-bundle.tar
-
安装 服务器端 rpm -ivh MySQL-server-5.5.49-1.linux2.6.i386.rpm
-
安装 客户端 rpm -ivh MySQL-client-5.5.49-1.linux2.6.i386.rpm
-
启动Mysql service mysql start #启动mysql (注意:只启动一次)
-
先查看随机密码登录(cat /root/.mysql_secret) -
登录mysql mysql -uroot -p随机密码
-
修改密码 set password for root@localhost = password('123');
-
登录mysql mysql -uroot -p123
-
放行3306端口号 修改配置文件
cd /etc/sysconfig
vi iptables
复制(yy p)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
改成
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启加载防火墙或者重启防火墙
service iptables reload
或者
service iptables restart
-
允许远程连接 mysql 在linux上 先登录mysql
cd /usr/local/mysql #进入mysql目录
mysql -uroot -p123 #登录
创建远程账号
create user 'root'@'%' identified by '123';
授权
grant all on *.* to 'root'@'%' with grant option;
刷新权限
flush privileges;
|