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"}]})