Linux基础
Linux目录结构
-
root目录:超级管理员所在的目录,用~表示
-
home目录:普通用户所在的目录
-
usr目录:安装用户文件所在的目录
-
etc目录:Linux系统管理和配置文件所在的目录
远程连接工具使用
在实际开发中,Linux服务器都在其他的地方,我们要通过windows客户端工具远程去连接Linux并操作它,连接Linux的windows客户端工具有很多,企业中常用的有secureCRT、Putty、xshell、SSH Secure等
文件夹(目录)操作命令
查看
-
语法
ls [参数] -
参数解释
-l 以详细形式查询当前目录下所有文件和目录,不包括隐藏文件和目录
-a 以精简形式查询当前目录下所有文件和目录,包括隐藏文件和目录 -
命令
cd / 进入根目录
ls 以精简形式查询当前目录下的内容
ls -l 以详细形式查询当前目录下的内容,d表示目录,-表示文件;此命令可以简写为ll
ls -a 以精简形式查询当前目录下的隐藏内容
ls -la 以详细形式查询当前目录下的隐藏内容,la和al都可
clear 清屏
跳转
-
语法
cd 目录
绝对路径
/xxx/xxx/xxx
相对路径
./ 当前目录
…/ 上级目录 -
命令
cd ~ 当前用户目录
cd / 根目录
cd - 上一次访问的目录
cd … 上一级目录
cd 当前用户目录
创建
-
语法
mkdir [参数] 目录 -
参数解释
-p 一次性创建多级目录,如果目录存在不会覆盖 -
命令
cd / 定位于根目录
mkdir aaa 在当前目录下创建aaa目录,相对路径
mkdir ./bbb 在当前目录下创建bbb目录,相对路径
mkdir /ccc 在根目录下创建ccc目录,绝对路径
mkdir /ddd/eee 在根目录下创建ddd目录和eee子目录
搜索
-
语法
find 目录 -name ‘条件’ -
命令
cd /
find / -name ‘b’ 查询根目录下(包括子目录),名为b的目录和文件
find / -name ‘b*’ 查询根目录下(包括子目录),名以b开头的目录和文件
在Linux中,按ctrl+c 强行终止程序执行
修改
-
语法
mv 旧目录 新目录 -
命令
cd /
mv aaa aaaa 将根目录下的aaa目录修改为aaaa
剪切
-
语法
mv 原目录位置 新目录的位置 -
命令
cd /
mv /aaaa /bbb 将根目录下的aaaa目录,移动到bbb目录下,在bbb目录下也叫aaaa目录
mv bbb usr/bbbb 将当前目录下的bbb目录,移动到usr目录下,且修改名为bbbb
复制
-
语法
cp -r 目录 目录的新位置 -
参数解释
-r 递归复制,将指定目录下的文件与子目录一并处理 -
命令
cd / 定位于/目录
cp -r /aaa /bbb 将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下名字为aaa
cp -r /aaa /bbb/aaaa 将/目录下的aaa目录复制到/bbb目录下,且修改名为aaaa
删除
-
语法
rmdir [参数] 目录 -
参数解释
-p 删除目录及其父目录 -
命令
cd /
rmdir bbb/ccc 删除bbb目录下ccc目录
rmdir -p bbb/ccc 删除bbb目录和ccc子目录
文件操作命令
创建
-
语法
touch 文件名.扩展名 -
命令
cd /soft 定位于/soft目录
touch a.java 在soft目录中创建a.java文件
touch b.txt 在soft目录中创建b.txt文件
touch c.xml 在soft目录中创建c.xml文件
查看
-
语法
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
删除
-
语法
rm [参数] 目录或文件 -
参数解释
-r 递归处理,将指定目录下的所有文件及子目录一并处理,它会询问你,y表示是删除,n表示不删除
-f 强制删除,它不会再询问你 -
命令
cd /soft
rm -rf a.java 强行式删除当前目录下的a.java文件
rm -rf ./a* 强行式删除当前目录下以a开头的所有文件
rm -rf / 自杀
编辑
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! 不保存强制退出
文件压缩命令
windows的压缩文件的扩展名: .zip或.rar
Linux中的打包文件扩展名:.tar
Linux中的压缩文件扩展名:.gz
Linux中打包压缩的文件扩展名:.tar.gz
将文件打成压缩包
-
语法
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文件
解压缩包获得文件【重点】
-
语法
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目录下
文件权限命令
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 给所有人添加对此文件操作的所有权限
其他命令
显示工作目录
- 语法
pwd
查看进程
-
语法
ps -au:显示客户端打开的程序进程
ps -ef:当前用户打开的程序进程 -
参数解释
-a 显示所有用户通过终端启动的所有进程
-A 显示所有进程
-u 显示所有用户通过终端启动的所有进程详细信息
-x 显示所有用户通过终端和非终端启动的所有进程详细信息
-e 此参数的效果和指定"A"参数相同,显示所有程序
-f 显示UID,PPID,C与STIME栏位
杀死进程
- 语法
kill 进程号:温柔杀
kill -9 进程号:暴力杀
搜索【文本】
-
语法
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字符串,大小写不敏感,显示行及行号
管道
-
语法
xx | xx
一个命令的输出用作另一个命令的输入 -
命令
ls --help | more 分页查询帮助信息
ps -au | grep system 在ps -au的结果中,搜索字符串a
关机
- 语法
poweroff
重启
- 语法
reboot
Linux网络
网络(卡)服务
查看当前网络的状态,并启动和停止网络服务
-
查看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 重启指定服务
防火墙服务
防火墙设置
-
开启防火墙
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
介绍
Nginx是一款轻量级的 Web 服务器,由俄罗斯的程序设计师伊戈尔·西索夫所开发
Nginx性能非常优秀,官方测试能够支撑5万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定
Nginx的功能有很多,我们主要使用它来做静态资源服务器、负载均衡服务器和反向代理服务器
应用场景
静态资源服务器
部署网站的静态资源(html、css、js)
反向代理服务器
代理: 给某个对象提供一个代理对象,并由代理对象控制原对象的引用
正向代理: 对客户端进行代理(例如VPN)
反向代理: 对服务端进行代理
反向代理,就是对服务端进行代理,作为客户端,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再响应给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址
负载均衡服务器
负载均衡*(Load Balance)*意思就是将一份负载分摊到多个操作单元上进行执行
nginx与tomcat区别
-
存放的文件(资源)形式
Nginx是http服务器,只能解析静态文件
Tomcat是web中间件(本质上是一个servlet),能解析jsp和静态文件 -
用途
nginx可以作为反向代理服务器,负责均衡服务器,静态资源存放服务器
tomcat能作为jsp容器使用,静态资源存放服务器 -
性能
nginx支持5W+并发,tomcat的并发只能在200-400之间