一.Linux概述
1.1. 简介
Linux是一个自由的,免费的,源码开放的操作系统。也是开源软件中最著名的例子。其最主要的目的就是为了建立不受任何商品化软件版权制约的,全世界都能使用的类Unix兼容产品.而我们将服务器部署在Linux将会更加的稳定、安全、高效以及出色的性能这时windows无法比的。
1.2.Linux作者
林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds, 1969年~
),著名的电脑程序员、黑客。Linux内核的发明人及该计划的合作者。托瓦兹利用个人时间及器材创造出了这套当今全球最流行的操作系统(作业系统)内核之一。现受聘于开放源代码开发实验室(OSDL:Open
Source Development Labs, Inc),全力开发Linux内核。
1.3.Linux 发行版
发行版是基于 Linux
内核的一个操作系统。它带有用户可以使用的软件集合。更多的,它还包含系统管理包。目前有许多
Linux 发行版。因为我们不能数清目前所有的 Linux
发行版,所以我们来看一下一些有名的版本: Ubuntu、Fedora、Opensuse、Red
hat Linux 和 Debian 等是几个非常受欢迎的 Linux 发行版。
Centos
Ubuntu
Rehat
1.4.Linux的特点
开放性,多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性
二、环境准备
2.1. Vmware
2.1.1 Vmware简介
大多数服务器的容量(CPU,内存,磁盘等)利用率不足
30%,这不仅导致了资源浪费,也加大了服务器的数量。实现服务器虚拟化后,多个操作系统可以作为虚拟机在单台物理服务器上运行,并且每个操作系统都可以访问底层服务器的计算资源,从而解决效率低下问题。
Vmware虚拟机化技术由此诞生,它可以将一台服务器虚拟化出多台虚拟机,供多人同时使用,提高资源利用率。
2.1.2 Vmware workstation 安装
已安装....
2.2. linux安装
已安装..
2.3.网络配置
2.3.1 查看网关
2.3.2 配置静态IP(NAT模式)
1.编辑配置文件,添加修改以下内容
vi /etc/sysconfig/network-scripts/ifcfg-eth0
按i 进入文本编辑模式,出现游标,左下角会出现INSERT,即可以编辑
应包含以下配置,除此之外的可以删除掉。
DEVICE=eth0 #网卡设备名,请勿修改名字
TYPE=Ethernet #网络类型,以太网
BOOTPROTO=static #启用静态IP地址
ONBOOT=yes #开启自动启用网络连接
IPADDR=192.168.78.100 #设置IP地址
NETMASK=255.255.255.0 #设置子网掩码
GATEWAY=192.168.78.2 #设置网关
DNS1=114.114.114.114 #设置备DNS
按ESC退出编辑模式
:wq #保存退出
2.修改完后执行以下命令
service network restart #重启网络连接
ifconfig #查看IP地址
3.验证是否配置成功:
虚拟机能ping通虚拟网关
虚拟机与物理机(笔记本)相互可ping通
虚拟机与公网上的百度网址相互可ping通(此步ping通,才说明网络配置成功)
命令:ping [www.baidu.com]{.underline}
注意:
a.保证VMware的虚拟网卡没有被禁用!
b.网关IP不能被占用
2.3.3 桥接和NAT区别
桥接:
结构:网络与物理机同一个网段(会占用外部IP)
特点:
1.外网能够访问
2.能够访问外网
注意:桥接模式下的虚拟机网关必须改为与物理机网关一致
NAT模式:
结构:构成一个以物理机为网关的子网
特点:
1.子网的所有的服务器对外不可见
2.子网能够正常访问外网
2.4.XShell安装与使用
2.4.1安装步骤
除了安装路径需要修改,其他一直下一步。
2.4.2 连接虚拟机
1. 打开xshell软件新建一个会话
2. 填写所要连接的虚拟机IP,会话名称可改可不改,点击确定。
3.连接虚拟机。
4.输入root用户名,可以勾选"记住用户名"
5.填写密码,可以勾选"记住密码"
6.登录成功。
三、文件系统
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux
用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。
Linux目录结构:
bin 存放二进制可执行文件(ls,cat,mkdir等)
boot 存放用于系统引导时使用的各种文件
dev 用于存放设备文件
etc 存放系统配置文件
home 存放所有用户文件的根目录
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt 系统管理员安装临时文件系统的安装点
opt 额外安装的可选应用程序包所放置的位置
proc 虚拟文件系统,存放当前内存的映射
root 超级用户目录
sbin 存放二进制可执行文件,只有root才能访问
tmp 用于存放各种临时文件
usr 用于存放系统应用程序,比较重要的目录/usr/local
本地管理员软件安装目录
var 用于存放运行时需要改变数据的文件
3.1.目录操作
3.1.1切换目录
命令:cd + 目录的路径
查看当前目录的完整路径 :pwd
命令 cd .. 返回到父目录
3.1.2新建目录
命令:mkdir + 目录名字
查看当前目录下拥有的子目录和文件: ls
3.1.3拷贝目录
cp source dest -r
3.1.4删除目录
rmdir directory
注意:rmdir只能删除空目录,若要删除非空目录则用rm命令
rm -rf dir
3.1.5移动/更改 目录
移动文件或目录:mv + 目录/文件名字 + 其他路径
mv test /
将test目录移动到 根目录/ 下
更改文件或目录的名字:mv + 旧目录名字 + 新目录名字。
3.2.文件操作
3.2.1新建文件:
touch web.log 创建一个空文件。
3.2.2 复制文件
cp web.log web_cp.log
复制文件,加个-r 参数,代表遍历复制,此时可用于复制一个目录。
3.2.3 删除文件
rm web_cp.log
此时需要手动输入y ,代表确认删除。可加
--f参数,直接删除,无需确认。当需要一个目录下所有东西时,加-r参数,代表遍历删除。
rm -f web.log
3.2.4 查看
3.2.4.1查看目录下的东西
ls / ll
命令 ls -l 等价于 ll
查看目录下的所有东西(包括隐藏文件)
命令:ls --al 等价于 ll --a
3.2.4.2查看文件内容
cat filename: 一次性显示整个文件的内容
注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。
因此,一般用more等命令分屏显示.
more filename
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比。按Space键,显示文本的下一屏内容。
按Enier键,只显示文本的下一行内容。按b键,显示上一屏内容。
按q键,退出。
命令:more /etc/profile
显示的内容:
less命令 与 more命令 非常类似
less filename:
h 显示帮助界面
Q 退出less 命令
u 向后滚动半页
d 向前翻半页
空格键 滚动一页
b 向后翻一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
以及上下键,向上一行,向下一行
3.2.4.3从头打印文件内容
head -10 filename 打印文件1到10行
3.2.4.4从尾部打印文件内容
tail -10 filename 打印文件最后10行
注意:tail 还经常可以拿来查看文件的内容变化
加-f参数,tail --f filename
3.2.5查找文件或目录
find pathname –name filename
例子:find / -name profile
该命令表示为,在/目录下查找
名字为profile的文件或目录,最后列出它的绝对路径
最后发现,linux系统根目录/ 下
一共有两个名字为profile,其中/etc/profile是一个文件,/etc/lvm/profile为目录
还可以按正则表达式来查找,且pathname越精确,查找的范围越小,速度越快。
find /etc -name pro*
该命令表示为:在/etc目录下查找以pro开头的文件或目录。
四、文本编辑
4.1.vi
编辑模式
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与 pattern匹配的串处
命令行模式
• w保存
• q退出
• q!:不保存文件并退出vi
– 在VI的命令模式下输入“:set nu”,就有行号了。
– 用ctrl+g就可以 显示行号
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
• dd:删除 行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
• uu 恢复前一个动作(常用)
一般模式
• yy 复制光标所在行(常用)
• nyy 复制光标所在行的向下n行,例如, 20yy则是复制20行(常用)
• p,P p为复制的数据粘贴在光标下一行, P则为粘贴在光标上一行(常用)
• 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern :?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令
• :s/p1/p2/g 将当前行中所有p1均用p2替代
• :n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
• :g/p1/s//p2/g将文件中所有p1均用p2替换
4.2.vim
Vim是从 vi
发展出来的一个文本编辑器。代码补完、语法高亮、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.
安装vim 软件
yum install vim
按y确认, 这中间一共要按两次确认**
可以在书写命令时就加y,这样就不用逐一确认。
yum install vim -y
用vim 打开/etc/profile 文件,会发现编辑器对文本的内容进行了高亮,使整个文件的内容可读性大大加强
命令:vim /etc/profile
五、文件传输
5.1.远程拷贝
5.1.1将本地文件复制到远程机器
scp local_file remote_username@remote_ip:remote_folder
第一次远程拷贝时,需要在箭头1初输入yes确认一下,验证一下远程主机。然后在箭头2处输入一下远程主机的密码。
5.1.2将本地目录复制到远程机器
scp -r local_folder remote_username@remote_ip:remote_folder
在test目录下创建一个myfile文件,然后将test目录远程拷贝到192虚拟机的根目录下。
5.1.3将远程机器上的文件复制到本地
scp remote_username@remote_ip:remote_file local_folder
将远程机器上/test目录下的myfile文件,拷贝到本地的/usr目录下
5.1.4将远程机器上的目录复制到本地
scp -r remote_username@remote_ip:remote_folder local_folder
5.2.上传
需先安装好lrzsz : yum install lrzsz -y
安装好后,输入上传的命令rz,弹出一下界面:
选择一个windows系统里的文件上传至虚拟机的当前目录下,然后ll命令,查看结果
5.3.下载
下载命令为sz,sz命令只能下载文件,不能是目录,可先将目录压缩成一个包,再下载至windows系统。下载完之后,按ctrl+c结束。
5.4 Winscp的安装与使用
除了可以用rz
sz命令进行本地windows系统和虚拟机之间的文件传输,还可以使用WinsSCP软件。
WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。
rz/sz 命令
使用相对于winscp更方便,但winscp的传输速度要比rz/sz来的快,如果是传输大文件,首选winscp。
5.4.1新建站点
打开winscp软件后,新建一个站点,填写远程主机的相关信息,然后保存这个站点。
5.4.2保存站点
保存站点时可以勾选保存密码,这样每次连接时就不用输入密码了。
5.4.3登录
选择一个站点进行连接登录。
登录后的工作界面如下图,左边为本地目录(Windows),右边为远程主机的目录结构(linux)
5.4.4文件传输
上传或下载时,只要左右拖拽就可以,使用方便。
五、linux安全
防火墙
service iptables start/stop/status
注:学习期间直接把防火墙关掉就是,工作期间也是运维人员来负责防火墙的。
六、linux进程操作
15.1 查看进程
命令: ps -aux
-a 列出所有
-u 列出用户
-x 详细列出,如cpu、内存等
命令: ps -ef | grep ssh
查看所有进程里CMD是ssh 的进程信息。
其中箭头所指的是sshd服务进程的进程号(PID)
15.2 后台进程
若想一个程序放在后台运行,只要在命令后面加 &符号
ping www.baidu.com > ping.log &
jobs --l 列出当前连接的所有后台进程
注意:jobs命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了。
此时应该用ps -ef | grep 进程名 来查询后台进程的
ps -ef | grep ping
后台进程有时运行一段时间后,系统会自动把该进程挂起来,导致进程无法正常运行。
这样子该命令就可以24*7小时不间断的运行了。
故后台经常一般和nohup命令结合使用,告诉系统不要把该进程挂起,
nohup ping www.baidu.com > ping2.log &
此时该命令还不够完美,因为这时ping命令的输出重定向只会把正确的日志重定向到
ping2.log里,我们要想所有的日志都定向到指定文件里。所以我们应该这样写:
15.3杀死进程
Kill
用法 kill pid
-9:强制杀死
可以先用jobs --l或ps 命令先查出对应程序的PID或PPID ,然后杀死掉进程。
七、其他常用命令
16.1 yum
yum是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
由于centos系统的yum默认是到国外网站下载,有时下载速度会很慢,故我们可以换一个yum的下载源,这里我们换一个国内的下载源
阿里云镜像。
第一步:备份你的原镜像文件,以免出错后可以恢复。
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下载新的CentOS-Base.rep到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
下载完之后,vim /etc/yum.repos.d/CentOS-Base.repo 查看一下文件内容。
第三步:运行yum makecache生成缓存
查看当前源
yum list | head -50
16.2wget
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP
三个最常见的 TCP/IP协议 下载,并可以使用
HTTP 代理
需先安装 yum install wget --y
wget用法:wget [option] 网址 -O 指定下载保存的路径
wget
工具还可以用来做一些简单的爬虫,这里不是我们的学习重点,如果想做爬虫,可以用java或python语言来做。
16.3rpm
RPM(RedHat Packge
Manager)是RedHat公司出的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净
安装
rpm --ivh rpm包
查找rpm已安装的软件
rpm -q ntp
卸载
rpm --e ntp-4.2.6p5-10.el6.centos.2.x86_64(全名)
16.4 tar包
tar
-z gzip进行解压或压缩,带.gz需要加,压缩出来.gz也需要加
-x 解压
-c 压缩
-f 目标文件,压缩文件新命名或解压文件名
-v 解压缩过程信息打印
解压命令:tar -zvxf xxxx.tar.gz
例子:先用rz命令或wscp上传一个tar包,然后解压。
解压后:
压缩命令:tar -zcf 压缩包命名 压缩目标
例子:tar -zcf tomcat.tar.gz apache-tomcat-7.0.61
将 apache-tomcat-7.0.61 目录压缩成tomcat.tar.gz包。
16.5 zip包
主要参数
-c:将解压缩的结果
-l:显示压缩文件内所包含的文件
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-t:检查压缩文件是否正确
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中
-v:执行是时显示详细的信息
-z:仅显示压缩文件的备注文字
-a:对文本文件进行必要的字符转换
-b:不要对文本文件进行字符转换
-r:递归处理,将指定目录下的所有文件和子目录一并处理
-C:压缩文件中的文件名称区分大小写
-j:不处理压缩文件中原有的目录路径
-L:将压缩文件中的全部文件名改为小写
-M:将输出结果送到more程序处理
-n:解压缩时不要覆盖原有的文件
-o:不必先询问用户,unzip执行后覆盖原有文件
-P:使用zip的密码选项
-q:执行时不显示任何信息
-s:将文件名中的空白字符转换为底线字符
-V:保留VMS的文件版本信息
-X:解压缩时同时回存文件原来的UID/GID
压缩命令:zip -r 包名 目标目录
需先安装zip:yum install zip --y
压缩完后,查看一下,发现多了个tomcat.zip包。
解压 unzip filename
需先安装unzip,yum install unzip --y
先把tomcat目录删除掉,然后再解压,以免冲突。
八、JDK部署
17.1 官网下载
http://www.oracle.com/technetwork/java/javase/downloads/index.html �o���
17.2 上传并解压
用wscp将jdk包上传到linux系统里,我这里上传到/usr/soft目录下。
然后解压: tar -zxf jdk-7u80-linux-x64.tar.gz
17.3 配置环境变量
配置全局JAVA_HOME,并在path路径里加入java_home/bin.
注意:新的path路径必须要包含旧的path路径,且每个路径之间以冒号隔开,而不是分号
vim /etc/profile
JAVA_HOME= /usr/soft/jdk1.7.0_75
PATH=JAVA_HOME/bin
重新加载环境变量:source /etc/profile
17.4 验证
java -version
如出现上图,则表示java环境变量配置成功。
九、部署Tomcat
18.1 官网下载
下载tomcat
[http://tomcat.apache.org/]{.underline}
18.2 上传并解压
我这里上传至/usr/soft目录下,然后解压。
18.3 启动tomcat
在tomcat的bin目录下有个startup.sh 脚本可以直接启动tomcat服务
关闭tomcat服务,可以用shutdown.sh命令。
或者ps -ef | grep tomcat 查看出tomcat进程号后,用kill命令。
18.4 jps
jps是JDK
1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。
如上图所示,jps命令显示出了,系统当前运行在jvm上的进程情况。其中Bootstrap是tomcat的进程名字,1996是tomcat的PID
18.5 验证
先把防火墙关了,然后访问虚拟机IP的8080端口
十、部署mysql
yum install mysql-server -y
如果用户无法从本地登陆,这个时候就执行如下
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost.localdomain'
IDENTIFIED BY '123456' WITH GRANT OPTION;
别忘了加上如下的语句
flush privileges ;