Linux
一、 Linux的概述:
1. 学习Linux之前++先了解Unix++
Unix是一个强大的多用户、多任务操作系统。于1969年在AT&T的贝尔实验室开发(在开发Unix的时候发现B语言不好用,就经过改动创造出了C语言)。UNIX的商标权由国际开放标准组织(The Open Group)所拥有。++UNIX操作系统是商业版,需要收费++,价格比Microsoft Windows正版要贵一些。
2. Linux的概述:
- ++Linux是基于Unix的++
- Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。
- Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机
- 诞生于1991 年10 月5 日。是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成
3. Linux的历史:
Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统, 所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统.
4. Linux系统的应用:
- ++window图形化做的很优秀,但是并不适用于做服务器的操作系统。++
- 服务器系统Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等;
- 嵌入式系统路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等,
- 高性能运算、计算密集型应用Linux有强大的运算能力。
- 桌面应用系统
- 移动手持系统
5. Linux的版本
Linux的版本分为两种:++内核版本【#】(Linux团队开发的,免费,开源)和发行版本【#】(修改之后的版本,有些厂商做出了优秀的版本就需要收费了)++;内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号 ;
6. Linux的主流发行版本
- ubuntu:图形化界面做的很好
- CentOS:redhat的复制版本(区别就是免费)
二、 Linux的安装:
1. 虚拟机安装:
- 什么是虚拟机
- 虚拟机:使用软件模拟一台虚拟的电脑.
- 虚拟机软件:
- VmWare :收费的(但是可以破解).
- VirtualBox :免费的.
- 安装VmWare
- 参考《虚拟软件vmware安装.doc》
- 注:进入虚拟机后按ctrl+alt来从虚拟机中弹出来。
2. CentOS的安装
- 参考《CentOS6详细安装文档.doc》
- 如果不想安装,就将已经下好的(虚拟机的安装路径)挂载上去就可以了,点击图中文件
3. Linux的远程访问
- 安装一个远程访问的软件:CRT【因为Linux以后多安装在服务器上,所以我们用我们的电脑访问服务器时候就需要用到该远程访问软件】
- 提供的软件中SecureCRT6是免安装的(我们这里用这个)
- 连接Linux:
- 需要录入linux的ip地址
- ip地址在主机名框输入
- 查看ip地址
- (前提是Linux里面网是连接的[两个小电脑的图标:点击System eth0])
- 右击Linux中,点击Open in Terminal
- 输入ifconfig来查询如果里面没有Ipv4
- 就输入ifconfig eth0 up 可启用eth0网卡
- 再输入ifup eth0(再次查询就有了)
- 查看ip地址
- 注:安装时候没有配置ip,进入后ip是自动分配的。
- 问题:
- 有可能ip会变,导致远程控制找不到
- 解决方法:
- 在Linux安装时,直接配置好ip
- 手动修改
- ifconfig中的临时方式
- 永久生效方式
- 实现在后面IP配置有写
- ifconfig中的临时方式
- 在Linux安装时,直接配置好ip
- 问题:
- ip地址在主机名框输入
- 进去后输入用户名和密码就可以了(这里用的root,密码是Linux设置的密码)
- 需要录入linux的ip地址
- 连接上,就可以远程控制了(就当自己在机房啦)
- 成功后界面是白底,对于程序员不友好(更改样式)
三、 Linux的目录结构:
- /表示根目录
- ~当前所处于的目录【根据登录者不同,含义不同】
- root登录的话,就表示/目录下的root文件
- 其他用户的话,就在/目录下的home文件中
- /目录下的usr用来存放下载的软件
四、 Linux的常用命令【重点】
- 笔记提供了一个Linux命令大全供参考
其他常用命令
- 【pwd】–>显示当前所在目录的字符串形式
- 【touch】–>创建一个空文件
- touch a.txt
- 【clear或者crtl + L】–>清屏
- 【–help==】–>加到自己输入命令的后面
- 可以显示命令的各种参数及用法
##1-3:操作目录的常用命令
1. 切换目录命令:cd【重点掌握】
- 切换到指定的app目录:cd app
- 切换到上一层目录:cd …
- 切换到系统根目录:cd /
- 切换到用户主目录:cd ~
- pwd后:/root
- 切换到上一次所在目录:cd -
- 切换到usr下的etc目录中(前提知道):cd /usr/etc
- 使用tab键来补全文件路径
2. 列出文件列表:ls&ll【重点掌握】
- ls(list)是一个非常有用的命令,用来显示当前目录下的内容。
配合参数的使用,能以不同的方式显示目录内容。- 蓝色的是文件夹,白色的为文件
- 格式:ls[参数] [路径或文件名]
- ls
- ls -a 显示所有文件或目录(包含隐藏的文件)
- ls -l 显示出ls查到文件及文件夹的详细的信息
- 可以缩写成ll
- 常用:在linux中以 . 开头的文件都是隐藏的文件
- 代码演示:
3. 创建目录和移除目录:mkdir&rmdir
- mkdir(make directory)命令可用来创建子目录。
- mkdir app:在当前目录下创建app目录
- mkdir –p app2/test:级联创建aap2以及test目录(也就是穿件多级目录)
- rmdir(remove directory)命令可用来删除++“空”++的子目录
- rmdir app:删除app目录
- 注:rmdir只能删除空的子目录,要删除非空子目录需要别的命令。
- 代码演示:
##4-5 :操作文件的命令
4. 浏览文件
- 【cat、more、less】
- cat:用于显示文件的内容。
- 格式:cat[参数]<文件名>
cat yum.conf
- 注:由于滚动条有大小限制,所以一般查看文件内容少的,不然显示不全。
- 格式:cat[参数]<文件名>
- more:一般用于要显示的内容会超过一个画面长度的情况。
- 格式:
more yum.conf
- 一次显示一屏,查看按照如下操作
- 按空格键显示下一页数据 。
- 回车显示下一行的数据。
- 按 q 键退出查看。(或者ctrl + c)
- 格式:
- less用法和more类似,不同的是less多了PgUp、PgDn键来控制的操作。
- 格式:
less yum.conf
- 一次显示一屏,查看按照如下操作
- PgUp 和 PgDn 进行上下翻页
- 按空格键显示下一页数据 。
- 回车显示下一行的数据。
- 按 q 键退出查看。
- 格式:
- cat:用于显示文件的内容。
- 【tail】【重点掌握】
- tail命令功能是:用于显示文件后几行的内容以及动态查看日志。
- 主要:是后几行
- 用法:
- tail -10 install.log
- 查看后10行数据
- tail -f catalina.log
- 动态查看日志【重点掌握】
- ctrl+c 结束查看
- tail -10 install.log
- 用途:一般用来查看日志文件的变化,实时监控日志情况(一般报错都在最后面)
- tail命令功能是:用于显示文件后几行的内容以及动态查看日志。
5. 文件操作:
- 【rm】–>危险操作
- rm 删除文件
- 用法:rm [选项]… 文件…
- rm a.txt–>删除a.txt文件【删除文件】
- 删除需要用户确认,y/n
- rm -r a–>表示可以删除一个目录【删除目录】
- 删除需要用户确认,y/n
- rm -f a.txt–>++不询问++,直接删除
- rm -rf a–>不询问递归删除(慎用)
- rm -rf *–>删除所有文件
- rm -rf /*–>自杀(删除root下的所有文件)
- 后果趣图:http://imgsrc.baidu.com/forum/w%3D580/sign=00fefe23dd09b3deebbfe460fcbe6cd3/940f918fa0ec08fa078d4aec55ee3d6d54fbdafc.jpg
- rm a.txt–>删除a.txt文件【删除文件】
- 【cp、mv】–>相当于复制和剪切操作
- cp(copy)命令可以将文件从一处复制到另一处一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
- 用法:
- cp a.log bbb/
- 将a.log文件复制到bbb文件夹中
- cp a.log bbb/a.txt【复制并重命名】
- 将a.log文件的内容复制到bbb文件夹下的a.txt中
- cp a.txt …/
- 将a.txt文件复制到上一层目录中
- cp a.log bbb/
- 用法:
- mv 移动或者重命名
- 用法:
- mv a.txt …/
- 将a.txt文件剪切到上一层目录中
- mv a.txt b.txt
- 将a.txt文件重命名为b.txt
- mv a.txt …/
- 用法:
- cp(copy)命令可以将文件从一处复制到另一处一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
- 【tar】命令:(打包或解压【解压用的多】)
- tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩
- 一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件【第一步:打包】,再以gzip压缩命令【第二步:压缩】
- 压缩成xxx.tar.gz(或称为xxx.tgz)格式的文件
- window上压缩包一般.zip
- Linux/Mac上压缩包一般.tar.gz
- 常用参数:
-c:创建一个新tar文件 -v:显示运行过程的信息 -f:指定文件名 -z:调用gzip压缩命令进行压缩 -t:查看压缩文件的内容 -x:解开tar文件
- 打包:(.tar包)
- tar –cvf xxx.tar ./*
- 参数:
- xxx.tar:打包的名称
- ./*:打包到的路径
- tar –cvf xxx.tar ./*
- 打包并且压缩:(.gz压缩后缀名)
- tar –zcvf xxx.tar.gz ./*
- 参数:
- xxx.tar.gz:打包并且压缩的名称
- ./*:打包并且压缩的路径
- tar –zcvf xxx.tar.gz ./*
- 解压(解压的是一个带压缩的要带z)
- tar –xvf xxx.tar
- tar -zxvf xxx.tar.gz -C /usr/aaa【重点掌握】
- 参数
- xxx.tar.gz:要解压的文件
- -C 命名:表示解压缩到指定目录下(不写为当前目录)
- 压缩成xxx.tar.gz(或称为xxx.tgz)格式的文件
- 【find】命令–>find指令用于查找符合条件的文件【查找文件】
- 示例:
- 通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。
- *可以代表任何字符串;?仅代表单个字符串,但此单字必须存在
find / -name ins* 查找文件名称是以ins开头的文件 * 参数 * /:从哪个目录查找 * -name:查找的规则 * ins:文件名称,*表示通配符:模糊查询(文件中只要有ins的都查出来) find / -name ins* –ls find / –user itcast –ls 查找用户itcast的文件 find / –user itcast –type d –ls 查找用户itcast的目录 find /-perm -777 –type d-ls 查找权限是777的文件
- 通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。
- 示例:
- 【grep】命令–>查找文件里符合条件的字符串。【查找文件里面的内容】
- 用法: grep [选项]… PATTERN [FILE]…
- 示例:
grep lang anaconda-ks.cfg 在文件中查找lang grep lang anaconda-ks.cfg –color 高亮显示 * 参数: * lang 文件中要查找的内容 * anaconda-ks.cfg 所要查找的文件 * -color 高亮显示查找的内容 * -A1 显示查找内容的下一行(根据数字变化行数) * -B2 显示查找内容的上两行
五、 Vi和Vim编辑器【文件操作最重要的东西】
- 笔记提供了一个Vim命令集合供参考(了解)
1. Vim编辑器(是Vi的升级版本):
- vim b.txt–>就可进入文件夹。
- ++不仅可以编辑已经存在的文件,并且可以编辑并创建不存在的文件++
- 功能:一般用来修改配置文件。
在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。
三种模式:命令行、插入、底行模式。
切换到命令行模式:按Esc键;
切换到插入模式:按 i 、o、a键;
i 在当前位置前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
切换到底行模式:按 :(冒号);更多详细用法,查询文档《Vim命令合集.docx》和《vi使用方法详细介绍.docx》
打开文件:vim file
退出:esc :q
修改文件:输入i进入插入模式
保存并退出:esc:wq
不保存退出:esc:q!
三种进入插入模式:
i:在当前的光标所在处插入
o:在当前光标所在的行的下一行插入
a:在光标所在的下一个字符插入
快捷键:
dd – 快速删除一行
yy - 复制当前行
nyy - 从当前行向后复制几行
p - 粘贴
R – 替换
- 案例1:在b.txt文件中插入HelloWorld,保存并且退出
- 分析
- vim b.txt–>就可进入文件夹
- 点击键盘上的i,进入插入模式(不然编辑不了)
- 文件中写HelloWorld
- 按esc切换到命令行模式
- 写–>冒号(键盘上shift+:)
- 然后写–>wq(保存并且退出)
- 不保存退出–>q!
- 演示:
- 分析
- 案例2:查找文件中8080文件。
- 分析
- vim b.txt–>进入文件夹
- :/8080–>就可以搜索出来文件中8080的内容。
- 后面就可以按i来进行编辑
- 按esc切换到命令行模式
- 写–>冒号(键盘上shift+:)
- 然后写–>wq(保存并且退出)
- 不保存退出–>q!
- 分析
2. 重定向输出>和>>
> 重定向输出,覆盖原有内容;
>> 重定向输出,又追加功能;
示例:
cat /etc/passwd > a.txt 将输出定向到a.txt中
cat /etc/passwd >> a.txt 输出并且追加
//不仅可以将文件中的复制,任何命令值都可以。
ifconfig > ifconfig.txt
3. 系统管理命令
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程(|-->管道:后面有解释)
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
4. 管道 |
- 管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。(左面的输出当成右面的输入)
- 示例
ls --help | more 分页查询帮助信息 ps –ef | grep java 查询名称中包含java的进程 ifconfig | more cat index.html | more ps –ef | grep aio
六、 Linux的权限命令
1. 文件权限
- r:对文件是指可读取内容 对目录是可以ls
- w:对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件)
- x:对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录
- 详细解释
- 案例:-rw-r–r–的含义:(a.txt)
- -:表示是个文件
- rw-:当前登录用户具有读和写的权限,不可执行
- r–:当前组内用户只具有读的权限,不具有写和执行的权限
- r–:其他用户只具有读的权限,不具有写和执行的权限
- 案例:将上面的权限改为- rwx r-x r-x【chmod来修改权限】
- 正常的写法:chmod -rwxr-xr-x a.txt
- 简单写法:chmod 755 a.txt
- 7:表示r+w+x(数值前面表中有)
- 5:表示r+x
- 5:表示r+x
2. Linux三种文件类型:[了解]
普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每一个设备都看成是一个文件
3. 文件类型标识[了解]
普通文件(-)目录(d)符号链接(l)
* 进入etc可以查看,相当于快捷方式字符设备文件(c)块设备文件(s)套接字(s)命名管道(p)
4. 文件权限管理:[了解]
chmod 变更文件或目录的权限。
chmod 755 a.txt
chmod u=rwx,g=rx,o=rx a.txt
七、 Linux上常用网络操作
1. 主机名配置
hostname 查看主机名
hostname xxx 修改主机名 重启后无效
如果想要永久生效,可以修改/etc/sysconfig/network文件
- 案例:将/etc/sysconfig/network文件中的配置文件改了,变成(持久化)生效的
- 分析:
- 先cat /etc/sysconfig/network看看是不是呢个配置文件
NETWORKING=yes HOSTNAME=linuxTest
- vim /etc/sysconfig/network进入到文件中
- 按i键–>进入插入模式(改HOSTNAME=后面的值)
NETWORKING=yes HOSTNAME=linuxTestGxw
- 按esc键–>进入命令行模式输入
//保存并退出 :wq
- 先cat /etc/sysconfig/network看看是不是呢个配置文件
- 分析:
2. IP地址配置
ifconfig 查看(修改)ip地址(重启后无效)
ifconfig eth0 192.168.12.22 修改ip地址
如果想要永久生效
修改 /etc/sysconfig/network-scripts/ifcfg-eth0文件
DEVICE=eth0 #网卡名称
BOOTPROTO=static #获取ip的方式(static/dhcp/bootp/none)
HWADDR=00:0C:29:B5:B2:69 #MAC地址
IPADDR=192.168.20.129 #IP地址
NETMASK=255.255.255.0 #子网掩码
NETWORK=192.168.177.0 #网络地址
BROADCAST=192.168.0.255 #广播地址
NBOOT=yes # 系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备。
- 案例:将ip设置为永久生效步骤
- 分析
- vim /etc/sysconfig/network-scripts/ifcfg-eth0
- i键编辑
- NBOOT=no改为yes
- BOOTPROTO=dhcp改为static(变成静态网络服务,自己分配)
- 如果需要连接其他网络,,调成dhcp就可以了
- NBOOT=yes
- NM_CONTROLLED=yes
//在后面添加上: IPADDR=192.168.20.129 #IP地址 NETMASK=255.255.255.0 #子网掩码 NETWORK=192.168.177.0 #网络地址 BROADCAST=192.168.0.255 #广播地址
- esc键,然后:wq保存并退出
- 最后在Linux上:输入service network restart来刷新刚才的配置
- 代码演示:
- 改之前:
- 改之后:
- 改之前:
- 分析
3. 域名映射
- /etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用
- 举例:
- 这时候ping itcast就会去查找192.168.177.129
- 相当于windows系统的C:\Windows\System32\drivers\etc\hosts文件的功能
- 举例:
4. 网络服务管理
service network status 查看指定服务的状态
service network stop 停止指定服务
service network start 启动指定服务
service network restart 重启指定服务
service --status–all 查看系统中所有后台服务
netstat –nltp 查看系统中网络进程的端口监听情况
防火墙设置
防火墙根据配置文件/etc/sysconfig/iptables来控制本机的”出”、”入”网络访问行为。
service iptables status 查看防火墙状态
service iptables stop 关闭防火墙
service iptables start 启动防火墙
chkconfig iptables off 禁止防火墙自启
- 最常用的两个
- service network restart 重启指定服务
- service iptables stop 关闭防火墙
- 不然安装软件时候会有拦截
- 在实际开发中不会关掉(也没有权利关掉)
八、 Linux上软件安装
1. Linux上的软件安装有以下几种常见方式介绍
- 二进制发布包
软件已经针对具体平台编译打包发布,只要解压,修改配置即可- 各个平台之间不兼容
- RPM包
软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装- 不会去安装该软件所依赖的软件包
- Yum在线安装
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题- 需要有网
- 源码编译安装
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。
2. 上传与下载工具介绍(也称为ftp)
- 软件一般安装在root->usr->local
- FileZilla
- lrzsz
- 我们可以使用yum安装方式安装 yum install lrzsz
- 注意:必须有网络
- 在CRT中输入yum install lrzsz
- 可以在crt中设置上传与下载目录
- 上传:
- 下载:
- 我们可以使用yum安装方式安装 yum install lrzsz
- crt自带的方式:sftp
- 使用alt+p打开sftp窗口
- 使用alt+p打开sftp窗口
3. 在Linux上安装JDK:
- 【步骤一】:上传JDK到Linux的服务器.
* 上传JDK
* 卸载open-JDK
java –version
rpm -qa | grep java
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.i686
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.i686
- 【步骤二】:在Linux服务器上安装JDK.
* 通常将软件安装到/usr/local
* 直接解压就可以
tar –xvf jdk.tar.gz -C 目标路径
- 【步骤三】:配置JDK的环境变量.
配置环境变量:
① vi /etc/profile
② 在末尾行添加
#set java environment
JAVA_HOME=/usr/local/jdk/jdk1.7.0_71
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出
③source /etc/profile 使更改的配置立即生效
4. 在Linux上安装Mysql:
- 【步骤一】:将mysql的安装文件上传到Linux的服务器.
将mysql的tar解压
将系统自带的mysql卸载
- 【步骤二】:安装MYSQL服务端
下面的提示是告诉我们root用户的密码第一次是随机生成的,
它保存在/root/.mysql_secret中,第一次登录需要修改root密码
- 【步骤三】:安装MYSQL客户端
查看生成的root密码
报错:原因是没有启动mysql服务
需要开启mysql服务
执行下面操作报错,原因是第一次操作mysql必须修改root用户的密码
设置root用户的密码
Mysql服务加入到系统服务并自动启动操作:
chkconfig --add mysql
自动启动:
chkconfig mysql on
查询列表:
chkconfig
关于mysql远程访问设置
在linux中很多软件的端口都被”防火墙”限止,我们需要将防火墙关闭
防火墙打开3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status
学习阶段我们也可以直接将防火墙关闭
service iptables stop;
5. 在Linux上安装tomcat:
- Tomcat上传到linux上
- 将上传的tomcat解压
- 在tomcat/bin目录下执行 startup.sh(注意防火墙)
- 查看目标 tomcat/logs/catalina.out
6. 部署项目到Linux
- 修改pom配置
- 在pom.xml中添加
- 修改jdk版本1.7
- 在pom.xml中添加
- 修改项目
- druid.properties
- header.html
- route_detail.html
- druid.properties
- 使用package命令打包
- 将travel.war上传到tomcat中的webapps目录
- 重启tomcat
- 到出本地mysql数据,并导入linux中的mysql