linux基础命令
对文件夹(目录)操作
对文件操作
文件压缩相关命令
文件权限
补充其他命令linux网络
nginx
一.Linux基础
(0)Linux的发展历程
分类:
(1)远程连接工具的使用
在实际开发中,Linux服务器都在其他的地方,我们要通过windows客户端工具远程去连接Linux并操作它,连接Linux的windows客户端工具有很多,企业中常用的有secureCRT、Putty、xshell、SSH Secure等
我们使用SecureCRT客户端工具进行连接Linux操作系统,该工具是免费的图形化界面和命令行窗口集一身客户端工具。
客户端连接工具
查看ip地址:
(2)Linux目录结构:
* root目录:超级管理员所在的目录,用~表示
* home目录:普通用户所在的目录
* usr目录:安装用户文件所在的目录
* etc目录:Linux系统管理和配置文件所在的目录
(3)文件夹(目录)操作命令
1)查看:
* 语法
ls [参数]
* 参数解释
-l 以详细形式查询当前目录下所有文件和目录,不包括隐藏文件和目录
-a 以精简形式查询当前目录下所有文件和目录,包括隐藏文件和目录
* 命令
cd / 进入根目录
ls 以精简形式查询当前目录下的内容
ls -l 以详细形式查询当前目录下的内容,d表示目录,-表示文件;此命令可以简写为ll
ls -a 以精简形式查询当前目录下的隐藏内容
ls -la 以详细形式查询当前目录下的隐藏内容,la和al都可
clear 清屏
2)跳转
* 语法
cd 目录
绝对路径
/xxx/xxx/xxx
相对路径
./ 当前目录
../ 上级目录
* 命令
cd ~ 当前用户目录
cd / 根目录
cd - 上一次访问的目录
cd .. 上一级目录
cd 当前用户目录
3)创建
* 语法
mkdir [参数] 目录
* 参数解释
-p 一次性创建多级目录,如果目录存在不会覆盖
* 命令
cd / 定位于根目录
mkdir aaa 在当前目录下创建aaa目录,相对路径
mkdir ./bbb 在当前目录下创建bbb目录,相对路径
mkdir /ccc 在根目录下创建ccc目录,绝对路径
mkdir /ddd/eee 在根目录下创建ddd目录和eee子目录
4)搜索
* 语法
find 目录 -name '条件'
* 命令
cd /
find / -name 'b' 查询根目录下(包括子目录),名为b的目录和文件
find / -name 'b*' 查询根目录下(包括子目录),名以b开头的目录和文件
在Linux中,按ctrl+c 强行终止程序执行
5)修改:用来为文件或目录改名、或将文件或目录移入其它位置。
* 语法
mv 旧目录 新目录
* 命令
cd /
mv aaa aaaa 将根目录下的aaa目录修改为aaaa
6)剪切(同样支持重命名)
* 语法
mv 原目录位置 新目录的位置
* 命令
cd /
mv /aaaa /bbb 将根目录下的aaaa目录,移动到bbb目录下,在bbb目录下也叫aaaa目录
mv bbb usr/bbbb 将当前目录下的bbb目录,移动到usr目录下,且修改名为bbbb
7)复制(支持改名)
* 语法
cp -r 目录 目录的新位置
* 参数解释
-r 递归复制,将指定目录下的文件与子目录一并处理
* 命令
cd / 定位于/目录
cp -r /aaa /bbb 将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下名字为aaa
cp -r /aaa /bbb/aaaa 将/目录下的aaa目录复制到/bbb目录下,且修改名为aaaa
8)删除
* 语法
rmdir [参数] 目录
* 参数解释
-p 删除目录及其父目录
* 命令
cd /
rmdir bbb/ccc 删除bbb目录下ccc目录
rmdir -p bbb/ccc 删除bbb目录和ccc子目录
总结:
1. 目录查看
ll [-a]
2. 目录跳转
cd 绝对路径 [相对路径]
3. 创建目录
mkdir -p 文件夹名称
4. 搜索
find 指定路径 -name '关键字'
5. 剪切
mv 原来位置 新位置(改名)
6. 复制
cp -r 原来位置 复制后新位置(改名)
(4)文件操作命令
1)创建
* 语法
touch 文件名.扩展名
* 命令
cd /soft 定位于/soft目录
touch a.java 在soft目录中创建a.java文件
touch b.txt 在soft目录中创建b.txt文件
touch c.xml 在soft目录中创建c.xml文件
2)查看
* 语法
cat/more/less/head/tail 文件
* 命令
cd /soft
cat a.java 查看a.java文件的最后一页内容
more a.java 从第一页开始,按回车键换行,按空格健翻页,q退出
less a.java 从第一页开始,按回车键换行,按空格健翻页,支持使用PgUp和PgDn翻页,q退出
head a.java 查看a.java文件的前10行内容
tail a.java 查看a.java文件的后10行内容
head -n 7 a.java 查看a.java文件的前7行内容
tail -n 7 a.java 查看a.java文件的后7行内容
* 规则
如果查看页面数据:cat
如果查看多页数据:less
回车:下一行
空格:下一页
PGUP:上一页
PGDN:下一页
q退出
查看头部几行:head
查看尾部几行:tail
3)删除
* 语法
rm [参数] 目录或文件
* 参数解释
-r 递归处理,将指定目录下的所有文件及子目录一并处理,它会询问你,y表示是删除,n表示不删除
-f 强制删除,它不会再询问你
* 命令
cd /soft
rm -rf a.java 强行式删除当前目录下的a.java文件
rm -rf ./a* 强行式删除当前目录下以a开头的所有文件
rm -rf / 删除全部,强制删除===自杀
4)编辑(Vi和Vim)
linux 下的vi 是一种文字编辑器,后来的升级版本是vim。vi 分为三种模式:命令行、插入、底行模式。
* 简单使用
vim a.java
i 切换到插入模式
esc 切换到命令行模式
:wq! 保存并退出 | :q! 直接退出
* 切换到插入模式
i 在当前位置前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
* 切换到命令行模式
按Esc键
yy 复制当前行
p 粘贴
dd 删除当前行
G 到文件的最后一行
gg 到文件的第一行
* 切换到底行模式
按 :(冒号)
:wq 保存退出
:q 退出vi(文件无修改的情况下)
:q! 不保存强制退出
(5)文件压缩命令
windows的压缩文件的扩展名: .zip或.rar
Linux中的打包文件扩展名:.tar
Linux中的压缩文件扩展名:.gz
Linux中打包压缩的文件扩展名:.tar.gz
1)将文件打包成压缩包
* 语法
tar -zcvf 打包压缩后的文件名 要打包的文件
tar -cvf *****.tar a.java b.java c.xml d.txt
tar -zcvf *****.tar.gz a.java b.java c.xml d.txt
* 参数解释
-z:调用gzip压缩命令进行压缩
-c:打包文件
-v:显示运行过程
-f:指定文件名
* 命令
cd /soft 定位于/soft目录
tar -zcvf haha.tar.gz a.java b.java c.java
或
tar -zcvf haha.tar.gz ./* 将当前目录下的所有文件打包压缩成haha.tar.gz文件
2)解压缩包获得文件
* 语法
tar -zxvf 压缩文件
解压后的文件放在当前目录中
tar -zxvf 压缩文件 –C指定目录
解压后的文件放入指定目录中,注意-C是大写字母C,后面不用接空格符
* 参数解释
-z 自动识别压缩或解压
-x 取出文件中的内容
-v 输出文件清单
-f 文件名由命令台设置
* 命令
cd /soft 定位于/soft目录
rm -rf ./*.java 强制式删除当前目录下所有扩展名为java的文件
tar -xvf haha.tar.gz 解压haha.tar.gz这个压缩文件,里面的文件释放到当前目录下
tar -xvf haha.tar.gz -C/usr/local
解压haha.tar.gz这个压缩文件,里面的文件释放到/usr/local目录下
(6)文件权限命令:
Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限。
* 语法
chmod [参数] [<权限范围><符号><权限代号>]
* 参数解释
-R 递归处理,将指定目录下的所有文件及子目录一并处理
* 权限范围
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
* 符号解释
+ 添加权限
- 取消权限
= 重置权限
* 权限代号
r:读取权限,数字代号为"4"
w:写入权限,数字代号为"2"
x:执行或切换权限,数字代号为"1"
-:不具任何权限,数字代号为"0"
* 命令
chmod u+x 1.txt 给1.txt的拥有者添加执行权限,这种写法稍微有点麻烦,开发中一般使用数字代号
chmod 755 1.txt 给1.txt的拥有者设置读写执行权限,给所属组添加读和执行权限,给其他用户
添加 读和执行权限
chmod -R 777 a.txt 给所有人添加对此文件操作的所有权限
(7)其他命令:
1)显示工作目录命令:
* 语法
pwd
2)查看进程
* 语法
ps -au:显示客户端打开的程序进程
ps -ef:当前用户打开的程序进程
* 参数解释
-a 显示所有用户通过终端启动的所有进程
-A 显示所有进程
-u 显示所有用户通过终端启动的所有进程详细信息
-x 显示所有用户通过终端和非终端启动的所有进程详细信息
-e 此参数的效果和指定"A"参数相同,显示所有程序
-f 显示UID,PPID,C与STIME栏位
3)杀死进程
* 语法
kill 进程号:
kill -9 进程号:强制杀死
4)搜索(文本)
* 语法
grep [参数] 搜索字符串 文件名
* 参数解释
-i 搜索时不区分大小写,大小写不敏感
-n 显示匹配行及行号,大小写敏感
-v 显示不匹配行及行号,大小写敏感
* 命令
cd /
grep as 123.txt 在123.txt文件中搜索as字符串,大小写敏感,显示行
grep -n as 123.txt 在123.txt文件中搜索as字符串,大小写敏感,显示行及行号
grep -v as 123.txt 在123.txt文件中搜索as字符串,大小写敏感,显示没搜索到行
grep -i as 123.txt 在123.txt文件中搜索as字符串,大小写不敏感,显示行
grep -ni "Q q" 123.txt 在123.txt文件中搜索Q q字符串,大小写不敏感,显示行及行号
5)管道
* 语法
xx | xx
一个命令的输出用作另一个命令的输入
* 命令
ls --help | more 分页查询帮助信息
ps -au | grep system 在ps -au的结果中,搜索字符串a
6)关机
* 语法
poweroff
7)重启:
* 语法
reboot
二.Linux网络
(1)网络(卡)服务
查看当前网络的状态,并启动和停止网络服务。
* 查看ip
ifconfig :CentOS6版本
ip addr :CentOS7版本
* 修改网卡ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
* 概要信息如下
DEVICE=ens33 #网卡名称
TYPE=Ethernet #网卡类型 以太网
ONBOOT=yes #是否开机就使用此网卡 在我们安装的时候都已经配置好
BOOTPROTO=dhcp #启动网卡时指定获取IP地址的方式
常用取值:dhcp (自动获取ip地址,网关,子网掩码等信息无需设置)
常用取值:static (静态ip,如需要访问网络,需要自己设置ip地址等信息)
其他取值:none (不指定)
IPADDR=192.168.200.133 #ip地址
GATEWAY=192.168.200.2 #网关
NETMASK=255.255.255.0 #子网掩码
DNS1=8.8.8.8 # Google提供的公用DNS
* 重启网卡服务
systemctl status network 查看指定服务的状态
systemctl stop network 停止指定服务
systemctl start network 启动指定服务
systemctl restart network 重启指定服务
(2)防火墙服务
防火墙类似于一个安全卫士管家,它能对你访问它人电脑,它人访问你的电脑,进行拦截并处理,有的阻止,有的放行,有的转发。
防火墙设置:
* 开启防火墙
systemctl start firewalld
* 重启防火墙
systemctl restart firewalld
* 关闭防火墙
systemctl stop firewalld
* 设置开机启动
systemctl enable firewalld
* 停止并关闭开机启动
systemctl disable firewalld
* 查看防火墙状态
systemctl status firewalld 或者 firewall-cmd --state
* 查看防火墙开机时是否启动
systemctl list-unit-files | grep firewalld
端口设置:
* 添加
firewall-cmd --zone=public --add-port=80/tcp --permanent
* 更新防火墙规则
firewall-cmd --reload
* 查看
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --zone=public --list-ports
* 删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
* 常用端口
8080 tomcat
80 http协议
443 https协议
22 ssh远程连接
3306 mysql
6379 redis
三.Nginx介绍
(1)介绍
Nginx是一款轻量级的 Web 服务器,由俄罗斯的程序设计师伊戈尔·西索夫所开发。 Nginx性能非常优秀,官方测试能够支撑5万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。
Nginx的功能有很多,我们主要使用它来做静态资源服务器、负载均衡服务器和反向代理服务器。
(2)应用场景
静态资源服务器
部署网站的静态资源(html、css、js)
反向代理服务器
代理: 给某个对象提供一个代理对象,并由代理对象控制原对象的引用
正向代理: 对客户端进行代理
反向代理:对服务端进行代理
反向代理,就是对服务端进行代理,作为客户端,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再响应给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
负载均衡服务器
负载均衡(Load Balance)意思就是将一份负载分摊到多个操作单元上进行执行
(3)windows安装与使用
1. 官网地址:
http://nginx.org/
2. 绿色解压版
3. 启动:
双击nginx.exe即可启动程序,提示放行防火墙,就消失了,其实是启动成功了
4. 访问:
在浏览器输入:http://localhost
5. dos命令行关闭:
nginx.exe -s stop
(4)配置文件介绍
注意:如果修改了配置文件:需要执行命令重新加载:
nginx.exe -s reload
(5)Nginx 与 tomcat区别:
1. 存放的文件(资源)形式
Nginx是http服务器,只能解析静态文件
Tomcat是web中间件(本质上是一个servlet),能解析jsp和静态文件
2. 用途
nginx可以作为反向代理服务器,负责均衡服务器,静态资源存放服务器
tomcat能作为jsp容器使用,静态资源存放服务器
3. 性能
nginx支持5W+并发,tomcat的并发只能在200-400之间