一、Linux概述:
Linux是一种免费使用和自由传播的类UNIX操作系统,它并不是Unix(Linux可以解读为Linux is not Unix),它由林纳斯·本纳第克特·托瓦兹发布,是一个开源的、多用户、多任务、支持多线程和多CPU的操作系统。
二、Linux安装
例如采用VMware当作虚拟机软件,注意VMware不是虚拟机,它是虚拟机软件。采用centos-7作为操作系统,市面上存在的常见操作系统如ubuntu、centos、Redhat、Debian、中标麒麟等等。
三、Linux常用目录结构(以下只是部分目录结构)
root:超级用户的家,即管理员的家
home:用户的家,每个用户的家目录通常是 /home/用户名
etc:存放系统配置文件
usr:存放共享的系统资源
bin:包含基本命令的二进制文件
sbin:存放可执行的二进制文件,只要root可以有权限访问
前四个常用
四、Linux操作命令(注意Linux操作命令严格区分大小写,并且注意空格要求)
基础版命令
1.pwd(print working directory打印工作目录):
显示当前所在的工作目录
2.ls(list):
显示当前目录下的内容
3.ls -a:
显示当前目录下的所有内容,包括隐藏文件
4.ls -l(缩写为ll):
显示文件的详细信息,可以显示文件大小
5.ls -lh(缩写为lh):
友好的显示文件所有的信息,可以显示文件大小
6.mkdir:创建目录;
例如mkdir app创建名为app的目录
mkdir -p a/b/c:级联的创建目录a里面包含b,b里面包含c
7.rmdir:
删除目录;例如rmdir a删除目录a
8.cd:
切换目录,如:
cd a 切换到a目录
cd a/b 切换到 a里面的b目录
cd ../ 返回上一级目录
cd - 返回上一个目录
cd ~ 返回到用户主目录
cd / 返回根目录
9.浏览文档
cat:浏览文档所有内容
more:分页式的浏览文档内容,只能往下翻页(空格下一页,回车下一行,q退出)
less:分页式浏览文档内容,可以往前翻页也可以往后翻(上箭头往前翻页,下箭头往后翻页,q退出)
tail:从尾部查看文件,默认倒数第十行开始
tail -5 /usr/local/a 显示a的后五行内容
tail -f 循环读取,动态查看
ctrl+c结束查看
10.touch 创建一个空文件,
如touch a.txt 创建空的a.txt文件
11.rm 删除文件
rm a.txt 删除a.txt
rm -f a.txt 不询问直接删除a.txt
rm -r a 递归的删除a
rm -rf a 不询问递归删除
12. cp 复制
cp a.txt b.txt 复制a.txt重命名为b.txt
cp a.txt a/b.txt 将b.txt 复制到文件a里并重命名为b.txt
13. mv 剪切
mv a.txt b.txt 实际上就是重命名
mv a.txt ../ 把a.txt移动到上一级目录
14.tar压缩或解压
常用参数:
-c :创建一个新的tar文件(可以理解为往袋子里放东西)
-v :显示tar命令执行的详细信息
-x : 解开tar文档(像是拿剪刀剪开袋子拿东西)
-z :调用gzip命令进行压缩或者解压
-f :指定被处理文件的文件名
-t :列出存储文档的内容
-C(注意是大写C) :指定压缩或者解压的目录
例子:
tar -zcvf app.tar.gz /usr/loacl -C /usr/apps :把/usr/local的所有目录压缩到/usr/apps中命名为app.tar.gz
tar -zxvf app.tar.gz -C /usr/a :把app.tar.gz解压到/usr/a里
15.vi和vim编辑器
vi和vim的区别:
1、多级撤销:在vi里,按u只可以撤销上次命令,但是在vim里面可以无限制撤销;
2、易用性:vi只能运行于Unix中,而vim不仅可以运用于Unix,还可以运行于Linux、Windows、mac等多个操作平台;
3、语法加亮:vim可以用不同的颜色来加亮你的代码;
4、可视化操作:vim不仅可以在终端运行,还可以运行于x Windows、Mac os、Windows。
5、对vi完全兼容:某种情况下,你可以将vim当作vi来使用。
可以将vim理解为vi的plus版,两者操作大致一样,常用vim。
vim a.txt :用vim编辑器打开a.txt
vim的三种模式:
1. 命令模式(按esc可以进入)打开vim编辑器默认的就是命令模式:
命令模式下可以进行复制粘贴或者删除
v-y-p(按住v可以选择多行,再按y可以复制,再按p可以粘贴):可以选择复制多行
v-d (按v选择多行,按d删除):可以选择多行删除
2.插入模式(在命令模式下按i可以进入插入模式,按esc可以退出插入模式返回命令模式):
可以对文本文件正文进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-- INSERT --"的状态提示信息
3.底行模式(在命令模式下打出英文“:”即可进入底行模式):
q:退出
q!:强制退出
wq:保存并退出
17、grep:
-v 显示不被pattern匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
你们的服务器在哪的,生成环境在本地部署的,开发环境在阿里云买的;通过find
alias给命令起别名
例如:alias c='clear'
kill:杀死进程
kill -9 +pid :强制杀死一个进程
高级点的
18、配置防火墙
(1)设置开机启用防火墙:systemctl enable firewalld
(2)设置开机禁用防火墙:systemctl disable firewalld
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld 或 systemctl stop firewalld.service
(5)检查防火墙状态 systemctl status firewalld
systemctl不仅可以用于设置防火墙,其他程序或者应用皆可用这个命令设置开机自启或者关闭
使用firewall-cmd配置端口
(1)查看防火墙状态:firewall-cmd --state
(2)重新加载配置:firewall-cmd --reload
(3)查看开放的端口:firewall-cmd --list-ports
(4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
命令含义:
–zone #=作用域=pubic
–add-port=9200/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
(5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent
19、free命令:内存使用情况
free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
命令的参数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-g 以GB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
free显示内存和交换空间的使用情况
free -h以人类可读的形式显示内存情况
df:查看磁盘使用情况
df -h以人类可读的形式显示磁盘使用情况
df -h +文件目录,显示当前文件下的磁盘使用情况
fdisk磁盘分区工具,用于管理磁盘
20、du -h:磁盘占用情况
查看指定目录的磁盘空间占用情况
du -h /path/test/directory
使用du命令查看指定目录下的文件占用情况,找到大小比较大的文件
du -sh /path/test/directory/*
du命令使用G单位显示
du -h --max-depth=1 --time / | sort -nr | grep G
查看全部硬盘的使用与剩余情况
df -a
查看整个磁盘空间占用情况
df -h
查看磁盘剩余空间信息
df -hl
21、top,ps
top: top 是 Linux 系统中的一个动态监视工具,它可以实时显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器。通过 top 命令,用户可以快速查看系统的运行状态,以及各个进程的 CPU、内存等使用情况
动态视图:top 提供了一个实时动态更新的视图,能够持续显示系统中当前正在运行的进程信息及其资源占用情况。
系统性能监控:除了显示进程信息外,top 还可以显示系统的整体性能指标,如平均负载(uptime,load average)、CPU使用率(%CPU)、内存使用量(%MEM)等。
更新频率:默认情况下,top命令会定期(通常是3秒钟)刷新输出,更新进程列表和系统状态。 top -d 2:设置两秒刷新一次
ps:
ps -axjf | grep 进程名
查看进程的详细信息,特别是父子关系以及进程的树形结果
ps -axjf :查看所有进程的详细信息;
静态视图:ps 命令在执行瞬间提供一个进程状态的快照,它不会像 top 那样持续刷新,一次性输出指定时刻的进程信息。
详细信息:ps 可以列出大量的进程详细信息,包括进程ID(PID)、父进程ID(PPID)、进程状态、CPU利用率、内存占用、启动时间和命令行等。
定制化输出:ps
支持多种参数组合,可以灵活定制输出格式和选择要显示的进程,例如通过 -ef
参数查看全部进程的详细信息,或者通过 -aux
查看系统中所有用户的进程等。
22、netstat和telnet
netstat命令:netstat
主要用于查看本机的网络连接状态、监听端口等信息
yum install net-tools 使用前先安装
netstat -anp | grep 8080 使用的方式anp是Linux的操作命令,Windows是ano
使用的例子:
netstat -a # 列出所有端口
netstat -at # 列出所有TCP端口
netstat -au # 列出所有UDP端口
netstat -ax # 列出所有unix端口
netstat -atnlp # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名
telnet:查看远程ip或端口是否开放
例子:
telnet 192.168.21.35 8080
Windows系统里自带的也有,不过要先去安装
打开控制面板里的程序和功能,找到打开或关闭Windows功能,找到Telnet勾选上,点击确定,过几分钟后在cmd窗口输入 telnet(空格) ip(空格) 端口号查看端口是否开放
23、nohup以守护式运行Java程序
nohup
是一个在类 Unix 操作系统(如 Linux 和 macOS)中广泛使用的命令,全称是 "no hang up",即“不挂断”。它的主要目的是允许用户在终端断开连接或注销账户后,仍然能够让指定的命令或程序在后台继续运行,不受 SIGHUP(挂起)信号的影响。
nohup java -jar your-project.jar &
如果你想要将输出重定向到一个日志文件,可以这样做:
nohup java -jar your-project.jar > output.log 2>&1 &
启动第二个程序,端口不一样
nohup java -jar ./wms-app/wms-0.0.1-SNAPSHOT.jar --server.port=9090 > app9090.log 2>$ &
24、桥接模式和host(主机模式)的区别
桥接模式:
- 在桥接模式下,虚拟机的网络接口被连接到主机上的一个虚拟网络桥上。
- 这个虚拟网络桥模拟了一个物理交换机,使得虚拟机就像是网络中的另一个独立的物理机器。
主机模式:
- 在主机模式下,虚拟机只能与主机进行通信,无法直接访问外部网络
- 这种模式创建了一个仅限于主机和虚拟机之间的私有网络。
桥接模式是在一个容器内部为容器内镜像搭建一个局域网,使得各个容器之间可以进行交互,使用的时候
TCP与UDP区别
TCP是安全可靠的网络传输层协议,规定必须要有响应,否则会一直发送请求;
UDP类似于广播,只管发送不管响应
docker容器启动的时候设置网络模式为主机模式:
docker run --network=host [其他参数] <镜像名>