centos命令集

解决centos缺乏字体问题

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*

centos查看java安装目录

[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/...

 

Nginx下使用React-router出现404问题

场景描述

用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 反向代理错误:104: Connection reset by peer

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"}]})
相关文章
相关标签/搜索