mkfontscale yum install mkfontscale mkfontdir yum install mkfontdir fc-cache -fv yum install fontconfig
wget http://update.aegis.aliyun.com/download/uninstall.sh chmod +x uninstall.sh ./uninstall.sh wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh chmod +x quartz_uninstall.sh ./quartz_uninstall.sh pkill aliyun-service rm -fr /etc/init.d/agentwatch /usr/sbin/aliyun-service rm -rf /usr/local/aegis*
[test@root /]$ which java /usr/bin/java [test@root /]$ ls -lrt /usr/bin/java lrwxrwxrwx. 1 root root 22 4月 17 06:25 /usr/bin/java -> /etc/alternatives/java [test@root /]$ ls -lrt /etc/alternatives/java lrwxrwxrwx. 1 root root 72 4月 17 06:25 /etc/alternatives/java -> /usr/lib/jvm/...
用React + React-router作SPA项目,路由模式为BrowserHistory,在Nginx下访问项目,默认地址为zlzkj.io
,点击路由zlzkj.io/goods
,能够正常切换页面,一旦刷新页面就会报404错误。html
这是由于Nginx访问zlzkj.io/goods
会去找goods.html
,实际上咱们是没有这个文件的,全部内容都是经过路由去渲染React组件,天然会报404错误。java
经过配置Nginx,访问任何URI都指向index.html,浏览器上的path,会自动被React-router处理,进行无刷新跳转。
配置文件参考:mysql
server { listen 80; server_name zlzkj.io; index index.html; root /Volumes/Mac/www/antd-admin/; location / { try_files $uri $uri/ /index.html; } }
vim命令集:nginx
O | 开启新的一行 | |
0 | 跳到本行的头部 | |
b, B | 以单词为单位往前跳动光标,小写包含标点 | |
w, e, W, E | 跳到单词的后面,小写包括标点 | |
h,j,k,l | h表示往左,j表示往下,k表示往上,l表示往右 | |
Ctrl + f | Page Down, 屏幕向下移动一页 | 经常使用 |
Ctrl + b | Page Up, 屏幕向上移动一页 | 经常使用 |
数字0或者Home键 | 移动到这一行最前面 | 经常使用 |
$或者End键 | 移动到这一行最后面 | 经常使用 |
G | 移动到当前文件的最后一行 | 经常使用 |
nG | 移动到当前文件的第n行 | 经常使用 |
gg | 移动到当前文件的第一行 | |
/word | 向下查找word字符串 | |
?word | 向上查找word字符串 | |
n | 重复上一个查找 | |
N | 反向重复上一个查找 | |
:n1,n2s/word1/word2/g | 在n1行和n2行之间,将word1替换成word2 | |
:1,$s/word1/word2/g | 从第一行到最后一行,将word1替换成word2 | |
:1,$s/word1/word2/gc | 从第一行到最后一行,将word1替换成word2,在替换前提示,须要确认 | |
x,X | x向后删除,至关于Delete键,X向前删除,至关于Backspace键 | |
nx/nX | n为数字,表示连续向后/向前删除n个字符 | |
dd | 删除光标所在的那一整行 | |
ndd | 删除光标所在行向下n行 | |
d1G | 删除光标所在行到第1行全部数据 | |
dG | 删除光标所在行到最后一行全部数据 | |
d$ | 删除光标所在处到该行最后一个字符 | |
d0 | 删除光标所在处到该行最前面一个字符 | |
yy | 复制光标所在的一行 | |
nyy | 复制光标所在的行的下面n行的数据 | |
y1G | 复制光标所在行到第一行的数据 | |
yG | 复制光标所在行到最后一行的数据 | |
y0 | 复制光标所在行光标到行首的全部字符 | |
y$ | 复制光标所在行光标到行尾的全部字符 | |
p,P | p将已复制的数据粘贴到光标所在行的下一行 P将已复制的数据粘贴到光标所在行的上一行 |
|
u | 复原前一个操做,至关于撤销Ctrl + z | |
Ctrl + r | 重作上一个操做,至关于重作Ctrl + y | |
. | 小数点,重复前一个操做 |
通常模式->编辑模式web
i, I | i为从光标所在处插入,I为从所在行第一个非空字符处插入 | 经常使用 |
a, A | a为从光标所在处下一个字符处插入 A为从所在行最后一个字符处插入 |
|
o, O | o为从所在行下一行插入,O为从所在行上一行插入 | |
r, R | r替换光标所在的字符一次,R一直替换光标所在的字符直到ESC | |
ESC | 退出编辑模式回到通常模式 |
通常模式->命令模式redis
:w | 保存,至关于Ctrl + s | 经常使用 |
:w! | 若文件为只读,强制写入,可否成功要看权限 | |
:q | 离开vi | |
:q! | 不保存强制离开 | |
:wq | 保存而且离开vi | |
ZZ | 若文件没有变化,直接离开,如有变化则保存后离开 | |
:w[filename] | 另存为 | |
:r[filename] | 在光标所在处插入另外一个文件的内容 | |
:n1,n2 w [filename] | 将n1行到n2行的内容保存到filename文件里 | |
:! command | 暂时离开vi到命令行模式下查看command的执行效果 | |
:set nu | 显示行号 | |
:set nonu | 取消行号 |
使用vim的时候,若是vim因一些不肯定的因素非正常退出,而咱们又有些未保存的数据,这时不用担忧,vim提供文件恢复的功能,在咱们打开一个文件的时候,同时会有一个filename.swp文件,这个文件里记录了咱们队原文件的修改记录,若是vim非正常退出,当咱们再次打开原文件时,vim会作出提示以下sql
O:表示以只读方式打开 E:表示正常打开文件进行编译,不载入.swp文件里暂存的数据 R:表示加载暂存的数据,恢复到上一个状态 D:删掉暂存文件 Q:直接退出 A:忽略,和Q相似
lsof用法:mongodb
列出有所打开的文件: #losf 找出谁在使用文件 #lsof /root/.bashrc 递归查找某个目录中全部打开的文件 # lsof +D /usr/lib 加上+D参数,lsof会对指定目录进行递归查找,注意这个参数要比grep版本慢 # lsof | grep '/usr/lib' 之因此慢是由于+D首先查找全部的文件,而后一次性输出 列出某个用户代开的文件 #lsof -u root 列出除root用户外的全部用户打开的文件 # lsof -u ^root 列出某个程序打开的全部文件 #lsof -c httpd 能够只写进程的头几个字母 #lsof -c ht 这就会列出以ht开头的进程打开的文件 列出某个pid对应的进程所打开的文件 #lsof -p 489 列出全部网络链接 #lsof -i lsof的-i选项能够列出全部打开了网络套接字(TCP和UDP)的进程 列出全部tcp网络链接 #lsof -i tcp 找出某个端口的进程 #lsof -i :25 找出某个tcp端口的进程 #lsof -i tcp:80 找到某个用户的全部网络链接 # lsof -a -u hacker -i -a参数能够将多个选项的组合条件由或变为与,使用-a将-u和-i选项组合可让lsof列出某个用户的全部网络行为 输出使用某些资源的进程pid # lsof -t -i -t选项输出进程的PID,你能够将它和-i选项组合输出使用某个端口的进程的PID,下面的命令将会杀掉全部使用网络的进程: # kill -9 `lsof -t -i` 循环列出文件 # lsof -r 1 -r选项让lsof能够循环列出文件直到被中断,参数1的意思是每秒钟重复打印一次,这个选项最好同某个范围比较小的查询组合使用,好比用来监测网络活动: # lsof -r 1 -u john -i -a
scp带端口:数据库
scp -P端口 文件 root@ip:/文件夹
获取某个应用的pid:apache
ps -ef|grep quote|grep -v grep|grep -v kill|awk '{print $2}' #ps命令,查看进程信息的命令,须要从ps执行结果中筛选出目标应用的那行信息,且截取出进程id。 #grep $APP_NAME:筛选出包含目标应用名称的信息行。变量$APP_NAME表示要检测的目标应用名称,尽可能精确,否则会影响筛选结果。 #grep -v grep|grep -v kill:“剔除”grep命令和kill命令的信息行,避免形成干扰。亲身执行过ps…grep…命令的人会清楚,进程信息中除了目标进程,还会显示grep命令的进程。 #awk ‘{print $2}’:截取出进程id的信息。
#缺乏bzip2包
yum install -y bzip2
centos清除登录系统成功的记录
echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等信息 last //此时即查不到用户登陆信息
centos清除登录系统失败的记录
echo > /var/log/btmp //此文件默认打开时乱码,可查到登录失败信息 lastb //查不到登录失败信息
centos清除历史执行命令
history -c //清空历史执行命令 echo > ./.bash_history //或清空用户目录下的这个文件便可
centos导入空历史记录
vi /root/history //新建记录文件 history -c //清除记录 history -r /root/history.txt //导入记录 history //查询导入结果
安装maven:
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo yum -y install apache-maven
centos禁用密码登陆:
vim /etc/ssh/sshd_config PasswordAuthentication no systemctl restart sshd.service
安装openj9
#安装adoptopenjdk 好比openj9 touch /etc/yum.repos.d/adoptopenjdk.repo cat <<EOF > /etc/yum.repos.d/adoptopenjdk.repo [AdoptOpenJDK] name=AdoptOpenJDK baseurl=http://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/7/$(uname -m) enabled=1 gpgcheck=1 gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public EOF yum -y install adoptopenjdk-12-openj9
scheduled表达式:
cron通常是6个部分或是7个部分:以下所示: 1. Seconds (秒) 2. Minutes (分) 3. Hours (时) 4. Day-of-Month (天) 5. Month (月) 6. Day-of-Week (周) 7. Year (年 可选字段) cron规则以下: Seconds (秒) :能够用数字0-59 表示; Minutes(分) :能够用数字0-59 表示; Hours(时) :能够用数字0-23表示; Day-of-Month(天) :能够用数字1-31 中的任一一个值,但要注意一些特别的月份2月份没有只能1-28,有些月份没有31; Month(月) :能够用0-11 或用字符串 “JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” 表示; Day-of-Week(*每周*)*:*能够用数字1-7表示(1 = 星期日)或用字符口串“SUN, MON, TUE, WED, THU, FRI and SAT”表示; “/”:为特别单位,表示为“每”如“0/10”表示每隔10分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行; “?”:表示每个月的某一天,或第周的某一天; “L”:用于每个月,或每周,表示为每个月的最后一天,或每月的最后星期几如“6L”表示“每个月的最后一个星期五”; “W”:表示为最近工做日,如“15W”放在每个月(day-of-month)字段上表示为“到本月15日最近的工做日”; “#”:是用来指定“的”每个月第n个工做日,例 在每周(day-of-week)这个字段中内容为”6#3” or “FRI#3” 则表示“每个月第三个星期五”; “*” 表明整个时间段。 demo: 每隔5秒执行一次:*/5 * * * * ? 每隔10分钟执行一次:0 */10 * * * ? 天天23点执行一次:0 0 23 * * ? 天天凌晨1点执行一次:0 0 1 * * ? 每个月1号凌晨1点执行一次:0 0 1 1 * ? 每个月最后一天23点执行一次:0 0 23 L * ? 每周星期天凌晨1点实行一次:0 0 1 ? * L 在26分、29分、33分执行一次:0 26,29,33 * * * ? 天天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
JAVA压缩 解压缩
#解压 jar xf Test.jar
后台运行
nohup npm run dev > my.log 2>my.log &
解决ssh链接一段时间不操做就断开的问题
vim /etc/ssh/sshd_config #取消下面参数的前面的# ClientAliveInterval 0 ClientAliveCountMax 3 #将ClientAliveInterval对应的0改为60, #ClientAliveInterval指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送. #ClientAliveInterval 60表示每分钟发送一次, 而后客户端响应, 这样就保持长链接了. #ClientAliveCountMax, 使用默认值3便可.ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到必定值, 就自动断开 #重启: service sshd restart
安装nginx
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm # 创建nginx的yum仓库 rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm #下载并安装nginx yum install nginx #启动nginx服务 systemctl start nginx
nginx做为netty的websocket反向代理服务时,出现104错误:
recv() failed (104: Connection reset by peer) while reading response header from upstream
此问题在于 nginx的buffer过小,timeout过小。
nginx http模块添加如下参数配置:
client_header_buffer_size 64k; large_client_header_buffers 4 64k; client_body_buffer_size 20m; fastcgi_buffer_size 128k; fastcgi_buffers 4 128k; fastcgi_busy_buffers_size 256k; gzip_buffers 16 8k; proxy_buffer_size 64k; proxy_buffers 4 128k; proxy_busy_buffers_size 256k; keepalive_timeout 240; fastcgi_connect_timeout 600; fastcgi_send_timeout 600; fastcgi_read_timeout 600; proxy_connect_timeout 600s; proxy_send_timeout 1200; proxy_read_timeout 1200;
检查防火墙
firewall-cmd --state
打开防火墙:
#关闭 systemctl stop firewalld.service #打开 systemctl start firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
更改成国内镜像:
#备份原来的yum源 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #设置aliyun的yum源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #添加EPEL源 sudo wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo #清理缓存并生成新的缓存 sudo yum clean all sudo yum makecache
搜索安装jdk11:
yum search java-11-openjdk
安装64位jdk11:
yum install java-11-openjdk.x86_64
找到jdk安装位置:
ls -l $(which java)
配置jdk环境变量:
centos7.5 jdk11安装位置查看路径:
/etc/alternatives/
配置环境变量:
export JAVA_HOME=替换为上一步查找的路径 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
下载maven最新版:
http://maven.apache.org/download.cgi
上传至服务器配置maven环境变量
export M2_HOME=/usr/local/maven export PATH=$M2_HOME/bin:$PATH
添加阿里云公共mirror:
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
添加云效平台私有仓库:
https://repomanage.rdc.aliyun.com/my/repo
服务器生成sshkey:
ssh-keygen -t rsa -C "lilaizhencn@gmail.com"
安装mysql8:
sudo yum localinstall https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm sudo yum -y install mysql-community-server #启动MySQL服务: sudo service mysqld start #查看初始密码(如无内容直接跳过): sudo grep 'temporary password' /var/log/mysqld.log #四、检查MySQL服务状态: sudo service mysqld status #五、查看初始密码(如无内容直接跳过): sudo grep 'temporary password' /var/log/mysqld.log #6修改默认端口号: /etc/my.cnf 添加 port=1234 添加max_connections=2000 修改最大链接数 #6登陆mysql mysql -uroot -p'第五步查询的密码' -P1234 use mysql #修改密码 alter user 'root'@'localhost' identified by '新密码'; flush privileges; #开放访问权限 update user set Host='%' where User='root'; flush privileges; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '新密码' WITH GRANT OPTION; flush privileges; #开放端口 (--permanent永久生效,没有此参数重启后失效) firewall-cmd --zone=public --add-port=80/tcp --permanent #从新载入 firewall-cmd --reload #查看 firewall-cmd --zone= public --query-port=80/tcp #删除 firewall-cmd --zone= public --remove-port=80/tcp --permanent
安装redis 5.x
sudo yum -y update sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum --enablerepo=remi install redis rpm -qi redis sudo systemctl enable --now redis #设置 sudo vim /etc/redis.conf bind 0.0.0.0 #后台启动 daemonize yes #密码: requirepass <AuthPassword> #设置持久存储 appendonly yes appendfilename "appendonly.aof" #重启: sudo systemctl restart redis #检查状态 sudo systemctl status redis #查看ip和端口 sudo ss -tunelp | grep 6379 #添加防火墙 firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --reload #删除当前数据库中的全部Key flushdb #删除全部数据库中的key flushall
安装mongo
vim /etc/yum.repos.d/mongodb-org-4.0.repo #添加如下内容: [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=0 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc yum makecache yum -y install mongodb-org #查看mongo安装位置 : whereis mongod #查看修改配置文件 : vim /etc/mongod.conf #启动mongodb : systemctl start mongod.service #中止mongodb : systemctl stop mongod.service #设置mongodb远程访问: #编辑mongod.conf注释bindIp,并重启mongodb.(这句配置表明只能本机使用,因此需注释) 或者 设置为 0.0.0.0 vim /etc/mongod.conf #重启 systemctl restart mongod.service #设置mongodb数据库及用户: mongo use tesataa db.createUser({user:"useraa",pwd:"123456",roles:[{role:"dbOwner",db:"tesataa"}]})