一、linux
-
1、基本命令
-
查看系统版本 : uname -r
-
重启pgsql : systemctl restart postgresql-自己的版本号.service
-
查看postgres进程 : ps aux | grep postgres
-
查看系统信息(根目录下执行) : cat /etc/os-release
-
实时查看文件全部内容:
less /logs/xxx.log
退出实时查看:按q键
-
实时查看某文件后多少行:
tail -f text.log
、查看一百行:tail -100 text.log
-
查看 java进程 : ps -ef|grep java
-
查看 nginx进程 : ps -ef|grep nginx 或者 查看文件
./logs/nginx.pid
里面有记录进程号 -
查看某端口进程(不同linux系统使用的不同):
netstat -tunlp |grep 8300
、netstat -ano|findstr 12001
-
Windows查看某端口进程:
netstat -ano|findstr 12001
-
windows查看某进程具体是什么程序:
tasklist|findstr 19999
-
liunx关闭java进程 : kill -9 进程号
-
liunx关闭nginx进程 : kill -9 进程号 或者 kill -TERM 进程号(直接关闭服务,不论当前是否有请求未处理完) 或者 kill -QUIT 进程号(不再接受新的请求,处理完已有请求后优雅的关闭服务),补充一点,如果不想单独去查询nginx的进程号,直接使用命令,可以用飘号``来执行命令脚本,将执行的结果作为动态参数,比如
-
Linux重新加载配置文件(在不重启服务的情况下重新读取配置nginx.conf):kill -HUP 进程号
其中各参数的详细描述如下图:
-
查看nginx的配置文件nginx.conf中是否有语法错误
./nginx -t
或者使用./nginx -T
它与-t
的区别就是会将所有信息显示出来 -
指定nginx配置文件启动,带上
-c
参数:./nginx -c /usr/local/abc.conf
-
启动nginx时设置全局变量,带上参数
-g
:./nginx -g "pid logs/abd.pid"
-
Windows关闭nginx:taskkill /f /t /im nginx.exe
-
windows查看某端口进程:
netstat -ano|findstr 12001
或者netstat -ano | find "8000"
-
windows关闭进程:taskkill /pid 9352 /f
-
开启nginx进程 : ./nginx
-
停止nginx服务: (在nginx的 sbin目录下) ./nginx -s stop
-
重启nginx服务:nginx -s reload
-
启动jar包 : nohup java -jar shareniu.jar >temp.txt &
-
启动jar包并指定配置文件:
nohup java -jar system.jar -Xmx1024m -Xms4096m --spring.config.location=./application.yml >temp.log&
-
查看内存使用:free -h或者(free -m、free -g)
-
查看磁盘使用情况:df -h(df:disc free)
-
磁盘挂载:1、查看插入的u盘有哪些:
fdisk -l
2、挂载mount /dev/vdb /mnt/dms
3、如果挂载的U盘有偏移量,使用mount -o loop,ro,offset=1048576 /dev/sdb /mnt/dms
进行挂载 4、使用完毕后卸载U盘:umount /mnt/dms/
-
修改root用户密码:
sudo passwd root
-
添加用户:
sudo adduser frq
-
切换用户:
su root
-
修改文件读写权限:chmod,具体看菜鸟教程
-
假如我们要找一个nginx配置文件nginx.conf,那么我们可以通过find命令
-
查找:find . -name ‘nginx.conf’
-
创建一个叫test的文件夹:mkdir test
-
创建test1目录同时在test1下创建test2的文件夹:mkdir -p test1/test2
-
创建 一个文件,例如a.txt:touch test/a.txt
-
:wq保存并退出。
-
:!q不保存退出。
-
将文件内容编上行号:
:set number
-
linux输入法默认为为英文大写,按CapsLock+shift
-
linux查看JDK路径:
which java
-
查看防火墙状态:systemctl status firewalld(出现Active: active (running)切高亮显示则表示是启动状态。出现 Active: inactive (dead)灰色表示停止,看单词也行。)
-
关闭防火墙:systemctl stop firewalld
-
压缩某个文件夹(压缩当前目录下的cache到/usr/mongo/backup/cache.tar.gz): tar -zcvf /usr/mongo/backup/cache.tar.gz /cache
-
在某个文件内搜索关键字:首先
vim xxx.txt
,在esc模式里面,然后/关键字
向下搜索,?关键字
向上搜索,:%s/被替换的内容/替换内容
全局替换,:set nu
展示行号、:set nonu
不展示行号,按gg
可以回到文件顶部,shift+g
到文件尾部,直接输入行数n、再按shift+g
定位到指定行,shift+6
光标定位到每一行的开头,shift+4
光标定位到每一行的结尾,shift+zz
保存文件并退出,dd
删除当前行,先按数字n、再按dd
会删除光标下的n行,u
撤销一步修改,x
往后删除一个字,shift+x
往前删一个字,yy
复制一行,p
粘贴内容 -
启动tomcat:
方式一:直接启动 ./startup.sh
方式二:作为服务启动 nohup ./startup.sh &
方式三:控制台动态输出方式启动 ./catalina.sh run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务 -
命令行向上向下翻页:
shift+pg up / shift pg dn
-
打开指定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
或者nc -lp 23 &
(打开23端口,即telnet)netstat -an | grep 23
(查看是否打开23端口) -
查看linux服务器最大进程数,根目录下执行命令
cat /proc/sys/kernel/pid_max
-
查看linux服务器最大线程数,根目录下执行命令
cat /proc/sys/kernel/threads-max
-
查看linux服务器内核,比如x86_64、x64、AMD64基本上是同一个东西,arm等信息:
file /lib/systemd/systemd
或者arch
-
复制文件:cp xxx.zip xxx-副本.zip
-
复制文件夹:cp -r xxx/ xxx-副本/
-
Linux命令拷贝某txt第10行到20行内容:
sed -n '10,20p' filename.txt > output.txt
,查看前一百行:head -n 100 filename.txt
-
Linux命令拷贝某最后一百行的内容:
tail -n 100 filename.txt > output.txt
-
linux查看某文件内是否有某某关键字:
grep "hello" *.txt
-
编辑文件:vi test.txt ,进去之后按 i 进入编辑模式,在编辑模式里面的操作命令如下
-
vi操作:按esc后进行下面操作:
1.跳到文本的最后一行:按“G”,即“shift+g”、
2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”。、
3.跳到第一行的第一个字符:先按两次“g”,、
4.跳转到当前行的第一个字符:在当前行按“0”。、
5.vi加密。进入vi,输入":" + “X” 之后就提示你输入两次密码。、
6.文件重新载入 :e!、
7.单行复制 将光标移到复制行 按 'yy’进行复制、
8.多行复制 将光标移到复制首行 按 'nyy’进行复制 n=1.2.3.4。。。。。、
9.粘贴 将光标移到粘贴行 按 'p’进行粘贴、10.查找 /pattern Enter
在某个文件内搜索关键字:首先vim xxx.txt
,在esc模式里面,然后/关键字
向下搜索,?关键字
向上搜索,:%s/被替换的内容/替换内容
全局替换,:set nu
展示行号、:set nonu
不展示行号,按gg
可以回到文件顶部,shift+g
到文件尾部,直接输入行数n、再按shift+g
定位到指定行,shift+6
光标定位到每一行的开头,shift+4
光标定位到每一行的结尾,shift+zz
保存文件并退出,dd
删除当前行,先按数字n、再按dd
会删除光标下的n行,u
撤销一步修改,x
往后删除一个字,shift+x
往前删一个字,yy
复制一行,p
粘贴内容
- 日期相关命令
基本语法
纯文本 (1)date (功能描述:显示当前时间) (2)date +%Y (功能描述:显示当前年份) (3)date +%m (功能描述:显示当前月份) (4)date +%d (功能描述:显示当前是哪一天) (5)date "+%Y-%m-%d %H:%M:%S" (功能描述:显示年月日时分秒)
- 实操案例
- (1)显示当前时间信息
[root@centos100 ~]# date 2017年 06月 19日 星期一 20:53:30 CST
- (2)显示当前时间年月日
[root@centos100 ~]# date +%Y%m%d 20170619
- (3)显示当前时间年月日时分秒
[root@centos100 ~]# date "+%Y-%m-%d %H:%M:%S" 2017-06-19 20:54:58
date显示非当前时间
- 基本语法
(1)date -d '1 days ago' (功能描述:显示前一天时间) (2)date -d '-1 days ago' (功能描述:显示明天时间)
- 实操案例
- (1)显示前一天
[root@centos100 ~]# date -d '1 days ago' 2017年 06月 18日 星期日 21:07:22 CST
- (2)显示明天时间
[root@centos100 ~]#date -d '-1 days ago' 2017年 06月 20日 星期日 21:07:22 CST
date设置系统时间
- 基本语法
date -s 字符串时间
- 实操案例
- (1)设置系统当前时间
[root@centos100 ~]# date -s "2017-06-19 20:52:18"
- 1-2:pm2的相关命令
pm2 start app.js --name my-api # 命名进程
pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目
pm2 start app.js -i 3 # 启动3个进程
pm2 start app.js -x #用fork模式启动 app.js 而不是使用 cluster
pm2 start app.js -x -- -a 23 # 用fork模式启动 app.js 并且传递参数 (-a 23)
pm2 start app.js --name serverone # 启动一个进程并把它命名为 serverone
pm2 stop serverone # 停止 serverone 进程
pm2 start app.json # 启动进程, 在 app.json里设置选项
pm2 start app.js -i max -- -a 23 #在--之后给 app.js 传递参数
pm2 start app.js -i max -e err.log -o out.log # 启动 并 生成一个配置文件,你也可以执行用其他语言编写的app ( fork 模式):
pm2 start my-bash-script.sh -x --interpreter bash
pm2 start my-python-script.py -x --interpreter python
pm2 list # 显示所有进程状态
pm2 monit # 监视所有进程
pm2 logs # 显示所有进程日志
pm2 stop all # 停止所有进程
pm2 restart all # 重启所有进程
pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程)
pm2 stop 0 # 停止指定的进程
pm2 restart 0 # 重启指定的进程
pm2 startup # 产生 init 脚本 保持进程活着
pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615)
pm2 delete 0 # 杀死指定的进程
pm2 delete all # 杀死全部进程
#jar包启动的json
{
"apps" : {
"name":"waterlog_xc",
"script":"java",
"args":[
"-jar",
"-Xms128m",
"-Xmx512m",
"system.jar",
"--spring.config.location=application.yml"
],
"error_file":"./log/err.log",
"out_file":"./log/out.log",
"merge_logs":true,
"log_date_format":"YYYY/MM/DD HH:mm:ss",
"min_uptime": "60s",
"max_restarts": 30,
"autorestart": true,
"restart_delay": "60"
}
}
- 1-3:MongoDB备份与还原
1、进入bin目录 输入./mongo #进入mongodb
2、进入后输入show dbs; #查看db的所有库
3、进入后输入db.getMongo(); #查看连接信息
4、新开窗口,进入bin目录下,输入命令/usr/mongo/bin/mongodump -h 127.0.0.1:27017 -d cache -o /usr/mongo/backup
#cache是库名称,第二步的其中一个,-h后面是连接信息,第三步获取的
#/usr/mongo/bin/mongodump使用绝对路径,否则会出现-bash: mongodump: command not found
5、如果出现-bash: /usr/mongo/bin/mongodump: Permission denie,cd命令返回bin的上一层,输入chmod -R 777 bin,赋予最高权限
6、压缩备份文件tar -zcvf /usr/mongo/backup/cache.tar.gz cache,拷贝到需要备份的服务器
7、输入还原命令:mongorestore -h 127.0.0.1:27017 -d cache C:\MongoDB\Server\4.2\backup\cache
- 1.4 解压相关命令
tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
tar 打包排除某些文件夹:
①tar -zcvf scheduler_20180508.tar.gz --exclude=scheduler/lib.bk --exclude=scheduler/logs scheduler
②tar -zcvf BenchmarkSQL.tar.gz --exclude=benchmarksql-5.0/logs benchmarksql-5.0
打包、分割命令:
①tar -cvf - test.pdf | split -b 1m - a.tar
②tar cvzf - ./dir | split -d -b 10m - dirname.tar.gz
③tar cvf - /home/桌面/迁移 | split -d -b 2048m - AK.tar.gz
分割打包后的解压、合并:
①cat AS.tar.gz* | tar -zxv
②cat AK.tar.gz.* | tar -zxv
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.zip
解压:unzip FileName.zip
压缩:zip -q -r FileName.zip DirName
———————————————
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
———————————————
.xz
解压:xz -d node-xxxx.tar.xz
- 1-5:node版本管理工具nvm的相关命令
查看node可用版本
nvm list available
下载某个版本nvm install 10.10.1
查看已下载安装的版本nvm list
使用已下载的某个版本nvm use 15.14.0
删除已下载的版本nvm uninstall 16.12.1
- linux安装node
①下载:https://cdn.npmmirror.com/binaries/node/v18.18.0/node-v18.18.0-linux-x64.tar.xz
②解压:xz -d node-v12.13.0-linux-x64.tar.xz
、
tar -xvf node-v12.13.0-linux-x64.tar
③编辑配置环境:
vi /etc/profile
#打开文件,并进入编辑模式
在文件末尾添加:
#node
NODE_HOME=/software/node #这里用你的解压目录
PATH=$PATH:$NODE_HOME/bin
NODE_PATH=$NODE_HOME/lib/node_modules
export PATH NODE_HOME NODE_PATH
##输入:wq退出编辑模式
source /etc/profile
④创建软链接:
ln -s /software/node/bin/node /usr/local/bin/node
ln -s /software/node/bin/npm /usr/local/bin/npm
- 1-6:python版本管理工具 pyenv的相关命令
查看 pyenv windows 支持的 python 版本列表:pyenv install -l
要安装 python 版本: pyenv install 3.5.2
要将 python 版本设置为全局版本:pyenv global 3.5.2
将 python 版本设置为本地版本:pyenv local 3.5.2(仅在此文件夹下使用这个版本)
要卸载 python 版本:pyenv uninstall 3.5.2
要查看此系统上安装的所有 python 版本:pyenv versions
-
2、数据库相关基本命令
查看 mysql启动状态 : service mysql status 开启mysql服务:service mysql start 进入本机mysql: mysql -uroot -p 进入192.168.140.127的mysql: mysql -uroot -p123456 -h 192.168.140.127 -P 3306(注释:123456是127的mysql密码其中p是小写,端口号3306前的P是大写的) 进入本机mycat:(1)维护人员用的 mysql -uEric -p123456 -P9066 -h192.168.140.127 (2)开发人员用的 mysql -uEric -p123456 -h192.168.140.127 -P8066 查询所有的库: show databases; 进入数据库“student”是库名: use student; 查询所有的表: show tables; 查询表,进行增删改查“class”是表: select * from class;
-
Linux配置JDK
添加环境变量 输入vi /etc/profile 进入
按a或者i进入编辑模式 出现INSERT
输入
export JAVA_HOME=/usr/local/ jdk1.8.0_181(注意此文件名与你的要一样)
export JRE_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_PATH}/lib:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
先按Esc然后输入:wq 按回车 保存退出
加完配置生效命令 source /etc/profile
输入java -version查看版本信息
-
3 linux调优相关命令
-
1、整机:top
其中重点关注:cpu、MEM(memory内存)、id(idle空闲率)、load average(如上图:分别表示系统一分钟五分钟十五分钟的平均负载[1.25+0.77+0.35]/3>60%就说明系统负担重) -
补充:查看整机性能低配版命令uptime
-
2、cpu:vmstat
- (1)每隔两秒查询一次cpu使用情况,共查三次:
vmstat -n 2 3
- (2)查看所有cpu核信息,每隔2秒查询一次:
mapstat -P -All 2
- (3)每个进程使用cpu的用量分解信息(两步):
- 1)查看进程编号:
ps -ef|grep java
或者ps -ef | grep java | grep -v grep | awk '{print $2}'
- 2)根据进程号分析此进程cpu使用情况:
pidstat -u 1 -p 进程编号
- 1)查看进程编号:
- (1)每隔两秒查询一次cpu使用情况,共查三次:
-
3、内存:free
- (1)应用程序可用内存
- 1)单位字节:
free
- 2)单位g:
free -g
- 3)单位兆:
free -m
- 1)单位字节:
- (2)内存查看额外:
pidstat -p 进程号 -r 采样间隔秒数
- (1)应用程序可用内存
-
4、硬盘:df
- (1)查看磁盘剩余空间:
df -h
- (1)查看磁盘剩余空间:
-
5、磁盘IO:iostat
-
(1)磁盘性能评估:
iostat -xdk 2 3
-
(2)磁盘查看额外:
pidstat -d 采样间隔秒数 -p 进程号
-
-
6、网络IO:ifstat
- (1)自己装的虚拟机默认是没有ifstat的(阿里云有),需要先下载才能用
- (2)执行命令每秒查看一次:
ifstat 1
- (1)自己装的虚拟机默认是没有ifstat的(阿里云有),需要先下载才能用
-
-
4、docker的使用:docker部署springboot项目
-
5、vue项目部署
二、windows
- 1、基本命令
- 查看端口号为12001的进程号:netstat -ano|findstr 12001
- 关闭上面的进程号:taskkill /pid 9352 /f