Linux
基于Unix的开源免费,多用户,多任务的操作系统
由于Linux系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。
Linux的版本分为两种:内核版本和发行版本;
- 内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号 ;
- 发行版本是一些组织和公司根据自己发行版的不同而自定的
发行版本:
Linux的目录结构
linux 没有盘符的概念,就是没有C盘,D盘这样的概念,只有文件夹。最高级别的文件夹(根目录) /
linux 没有盘符的概念,就是没有C盘,D盘这样的概念,只有文件夹。最高级别的文件夹(根目录) /
/: 系统==根目录 ==
root目录:超级管理员所在的目录,用~表示
home目录:普通用户所在的目录
etc:配置文件
usr:存放共享文件的 (装的软件基本都是在usr目录)
目录操作命令
1.切换目录命令
cd app 切换到app目录
cd … 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录(上一个操作的)
2. 列出文件列表
ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。
-
格式
ls[参数] [路径或文件名]
ls 展示当前目录下资源(不包含隐藏的文件)
ls -a 显示所有文件或目录(包含隐藏的文件), 文件带点的是隐藏文件
ls -l 展示文件的详细信息, 简写成 ll (1TB=1024G 1G=1024MB 1MB = 1024KB 1KB = 1024Byte)
ll -h 友好显示文件大小
ls -al 展示文件的详细信息(包含隐藏的文件)
3.创建目录和移除目录
(1)mkdir
用来创建子目录.
- 格式: mkdir 目录名; 在当前目录下创建目录
mkdir app 在当前目录下创建app目录
- 格式: mkdir -p 目录名/子目录; 级联创建目录
mkdir –p app3/test 级联创建app3以及test目录
(2)rmdir
用来删除“空”的子目录
- 格式: rmdir 目录名;
rmdir app 删除app目录
4.显示当前目录的绝对路径
- 格式: pwd
文件操作命令
1. cat
用于显示文件的内容
- 格式:cat[参数]<文件名>
cat yum.conf 查看yum.conf 的内容
2. more(-mN 显示行号)
分页查看, 按空格键显示下一个画面(下一页)。回车显示下一行内容。按 q 键退出查看。(Ctrl+C退出查看)
- 格式: more 文件名
more services
3. less
用法和more类似,不同的是less可以通过PgUp、PgDn键来控制。
- 格式: less文件名
less services
less -mN service mN 是显示行号
4. tail [一般用来查看日志文件] 因为日志文件我们指向看最新的日志。
tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。
- 格式: tail -n 文件名:查看文件的末尾几行
tail -10 /etc/passwd
- 格式: tail -f 文件名:滚动的查看文件.
tail -f catalina.log
- ctrl+c 结束查看
文件目录通用操作命令 拷贝-移动(剪切)-删除
1. touch 创建文件(test.txt)
touch 文件名; 创建文件
2. mv 移动文件
mv 文件 目录 移动到指定目录
mv 文件 目录/文件名 移动到指定目录且重命名
mv 目录 指定的目录 移动一个目录到指定的目录下
mv 文件名 新文件名 重命名
3. cp 拷贝文件
cp 文件 目录 把一个文件复制到某目录下
cp 文件 目录/文件名 复制且重命名
cp 文件 新文件名 当前目录下复制一个
cp -r 目录 新目录 递归复制目录(复制非空目录)
4. rm删除文件
- rm 文件; 询问删除文件
rm a.txt 删除a.txt文件
- rm -f 文件;不询问,直接删除
rm -f a.txt 不询问,直接删除a.txt
- rm -r 目录; 删除目录(递归删除)
rm -r a 递归删除a目录
- rm -rf 目录; 不询问递归删除(慎用)
rm -rf a 不询问递归删除
rm -rf * 删除当前目录下所有文件
rm -rf /* 自杀 *********(不要用)
文件编辑命令
- 使用vi 或者 vim命令即可
vim是vi的升级版,增加了一些功能,对vi命令是完全兼容的。在一些基本命令上两者都是一样的
-
命令模式:对行进行操作 移动光标. 常用的命令:
yy:复制当前行
p:粘贴
dd:删除当前行
-
编辑模式:对具体的字符进行操作. 切换到插入模式:按 i键
-
底行模式:退出. 切换到底行模式 常用的命令:
:wq 保存并退出
:q 退出(不保存)
:q! 强制退出(不保存)
压缩解压
打包: 将多个文件打包成一个特定文件, 文件扩展名一般是.tar
压缩: 将多个文件打包成一个特定文件并且做压缩处理, 文件扩展名一般是.gz
1.打包压缩【tar -zcvf】
语法:
tar -zcvf 打包并压缩后的文件名 要打包压缩的文件/目录
-
-z调用压缩命令进行压缩, 没有加上-z就是打包(可选项)
-
-c 创建新的文件(必选项)
-
-v 输出文件清单(可选项)
-
-f 文件名由命令台设置(必选项)
练习: 把app文件夹进行压缩
tar -zcvf app.gz app
2.解压【tar -xvf】 【重点】 extract
语法
tar -xvf 压缩文件 解压到当前目录
tar -xvf 压缩文件 -C /usr/local 解压到/usr/local目录
参数含义
- -x 取出文件中内容
- -v 输入文件清单
- -f 文件名由命令台设置
练习
- 解压app.gz
tar -xvf app.gz
- 解压app.gz 到 /usr/home目录
tar -xvf app.gz -C /usr/home
其它常用的命令
1. 关机
halt
2. 重启
reboot
3. 查看网卡信息
ifconfig
4. 查看进程
PID : 进程ID
UID : 用户id
ps -ef 查看所有进程
5. 杀死进程
kill -9 进程号(pid) 杀死指定的进程
6. 管道
命令1 | 命令2 解释:一个命令的输出,可以作为另一个命令的输入,至少有二个命令参与执行。
常用的需要使用管道命令有 more,grep
eg: ps -ef | grep vi #在所有的进程里面筛选出和vi相关的进程
注: grep 筛选指定的内容,grep -i:忽略大小写
Linux文件权限
Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限
权限参数和数字说明
-
r 可读
-
w 可写
-
x 可操作
root当做校长, 文件当做我们班,
第1位:文件类型 - 文件, d是目录,l:快捷方式
2,3,4:当前用户操作权限 我们班的班主任的权限 卢老师
5,6,7:当前组中其他用户的操作权限 和我们班班主任在同一组里面的其它班主任权限 李老师
8,9,10:其他用户的操作权限 网络管理员权限
权限命令操作
1. 语法一
- 语法:chmod [参数] 目录/文件
- 参数说明:
- u 作者
- g 组员
- o 它人
- -r 只读
- -w 只写
- -x 只执行
- 权限操作
#修改a.java文件的权限:作者具有rwx权限,组员具有rx权限, 其它人具有x权限
chmod u=rwx , g=rx , o=x a.java
#或者
chmod 751 a.java
2. 语法二
chmod xxx 文件/目录
r 可读 4
w 可写 2
x 可操作 1
1 可操作
2 可写
3 可写+可操作
4 可读
5 可操作+可读
6 可读+可写
7 都可以
Linux网络管理和防火墙设置
知识点-Linux网络管理
1. ifconfig命令
ifconfig #查看与配置网络状态
2. 启动和停止
- 启动
service network start
- 停止
service network stop
- 重启
service network restart
3. 网络模型
-
桥接模式
物理主机就好像一个交换机,将物理主机和虚拟机连接在一个局域网内。和主机的关系就像局域网中一台独立的主机,和主机同等地位。获取外网ip进行上网。物理机上有一个自身的网卡,虚拟机虚拟一个虚拟网卡,两者可以连接到外网。
桥接模式下虚拟机和主机不仅应该处于同一网段,而且相关DNS和网关都应该相同。
-
NAT
俗称网络地址转换,是将内部私有网络地址翻译成合法网络地址。物理机上有一个自身的网卡,和虚拟NAT设备直连,还有一个虚拟网卡直接连在虚拟交换机上。虚拟NAT设备与虚拟DHCP服务器直接连在虚拟交换机上,虚拟机通过虚拟交换机和NAT设备实现联网,但是和本机的连接是通过物理主机的虚拟网卡vm adapter8来实现的。虚拟机向外部网络发送的请求数据"包裹",都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,外部网络返回的响应数据"包裹",也是先由主机接收,然后交由NAT网络适配器根据"特殊标记"进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。
从外部网络来看,虚拟机和主机在共享一个IP地址。
-
仅主机
仅主机模式即是nat模式去除 了nat设备,虚拟机是一个独立的系统,只能实现虚拟机和主机间的通信,如果虚拟机需要联网的话,还需要主机共享网卡,所有一般情况下虚拟机不能联网。
4. 配置NAT网络模型 【不用配置】
配置静态IP地址!!
- 选择编辑>虚拟网络编辑器
- 选择NAT 模式的VMnet8
- 将其中的“网关IP”设置为“192.168.33.1”
- 然后在本机的“网络连接”中对VMnet8进行设置
Linux防火墙设置
1. 什么是防火墙
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
在默认情况下,Linux系统的防火墙状态是打开的,已经启动。
2. 查看防火墙状态
- 语法:
service 服务 status
- 命令:
service iptables status
3. 临时开启/关闭防火墙
- 语法:
service 服务 start/stop
- 命令:
开启:service iptables start
关闭:service iptables stop
4. 设置开机开启/关闭防火墙 【一般防火墙就是开机启动的。】
- 语法
chkconfig 服务 on/off
- 命令
开启:chkconfig iptables on
关闭:chkconfig iptables off
5. 设置端口防火墙放行
- 修改配置文件
vi /etc/sysconfig/iptables
- 添加放行的端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 端口号 -j ACCEPT
备注: 默认情况下22端口号是放行的
软件安装
rpm软件包管理器
1. rpm介绍 redhat package manager
一种用于互联网下载包的打包及安装工具,它包含在某些Linux(CentOs)分发版中。
2. rpm常见的命令
rpm -qa : 查询所有安装过的软件包 qa : query all
rpm -e --nodeps 删除的软件包名: 删除指定的安装包 e: eraser nodeps: no dependencys
rpm -ivh 包名 :安装rpm包 i :install v : verbose h:hash值校验
安装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-8u261-linux-i586.tar.gz /usr/local/java
-
进入 /usr/local/java 目录,解压jdk
cd /usr/local/java tar -xvf jdk-8u261-linux-i586.tar.gz
-
配置环境变量
vi /etc/profile #在文件的最后面添加如下代码 export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export PATH=$JAVA_HOME/bin:$PATH
-
保存退出
-
重新加载配置文件
source /etc/profile
安装Tomcat
-
下载tomcat
-
上传到linux
在crt上 使用 alt+p
-
在 /usr/local 新建一个文件夹tomcat
mkdir /usr/local/tomcat
-
移动 tomcat…tar.gz 到 /usr/local/tomcat
mv apache-tomcat-8.5.35.tar.gz /usr/local/tomcat/
-
进入/usr/local/tomcat目录,解压Tomcat
cd /usr/local/tomcat tar -xvf apache-tomcat-8.5.35.tar.gz
-
进入 /usr/local/tomcat/apache-tomcat-8.5.35/bin
cd /usr/local/tomcat/apache-tomcat-8.5.35/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
安装MySql
-
下载mysql
-
上传到linux 在CRT下,按Alt+P
-
检查系统上是否安装了mysql( 若安装了就需要先卸载再使用我们自己的)r
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
# 移动之前,得先回到 root 目录底下 cd ~ 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 (注意:只启动一次)
-
修改密码
/usr/bin/mysqladmin -u root password '123456'
-
登录mysql
mysql -uroot -p123456
-
放行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 -p101010 #登录 创建远程账号 create user 'root'@'%' identified by '123456'; 授权 grant all on *.* to 'root'@'%' with grant option; 刷新权限 flush privileges;