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"}]})
相關文章
相關標籤/搜索