學習筆記
-
Zero-Copy的前世今生
-
清空檔案 sudo sh -c “echo ‘’ > a.txt”
-
重命名 mv folderAName newFolderName
-
創建軟鏈 ln -s sourcefile targetfile
ln -s /xxx/xx/eclipse eclipseLink
-
使用代理下載檔案 wget -e use_proxy=yes -e http_proxy=x.x.x.x:1080
-
設定ulimit sudo sh -c “ulimit -n 65535 && exec su userA”
網路篇
ssh
- lsof -i:22
- 安裝基礎工具
- sudo apt-get install openssh-server openssh-client
查看所有開放的埠
- 可以通過
netstat -anp來查看哪些埠被打開- -a 顯示所有
- -n 不用別名顯示,只用數字顯示
- -p 顯示行程號和行程名
netstat -natpl顯示tcp的偵聽埠netstat -naupl顯示udp的偵聽埠
CentOS7開放埠:CentOS7已經使用firewall作為防火墻,不再使用iptables
- root用戶
- 開啟防火墻 systemctl start firewalld.service
- 開啟埠 firewall-cmd --zone=public --add-port=50013/tcp --permanent
- –zone-public:表作用域的公共
- –add-port=8080/tcp:添加tcp協議的埠為8080
- –permanent: 永久生效,無此引數表示臨時生效
- 重啟防火墻 systemctl restart firewalld.service
- 重新載入配置 firewall-cmd --reload
- firewall-cmd --list-ports
測驗域名能不能決議
- nslookup server
- eg:
nslookup www.baidu.com
- eg:
測驗埠是否開放
telnet ip port
Linux郵件服務器:Postfix
http://cn.linux.vbird.org/linux_server/0380mail.php
- Linux輸出重定向
linux 環境中支持輸入輸出重定向,用符號<和>來表示, 0、1和2分別表示標準輸入、標準輸出和標準錯誤資訊輸出, 將一個腳本的執行程序及執行結果列印到日志的常用命令: ./myscript.sh 2>&1 | tee mylog.log 可以用來指定需要重定向的標準輸入或輸出,比如 2>a.txt 表示將錯誤資訊輸出到檔案a.txt中, 同時,還可以在這三個標準輸入輸出之間實作重定向,比如將錯誤資訊重定向到標準輸出,可以用 2>&1來實作, Linux下還有一個特殊的檔案/dev/null,它就像一個無底洞,所有重定向到它的資訊都會消失得無影無蹤,這一點非常有用,當我們不需要回顯程式的所有資訊時,就可以將輸出重定向到/dev/null, - 查看環境變數 env | grep -E ‘M2|MAVEN’
Shadowsocks服務器端安裝
- 安裝pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py有可能python的版本低了 - python get-pip.py
- pip install shadowsocks
- 配置shadowsocks
- vi /etc/shadowsocks.json
{
“server”:“0.0.0.0”,
“server_port”:0,
“local_port”:1080,
“password”:“xxx”,
“timeout”:600,
“method”:“aes-256-cfb”
}
* 將shadowsocks加入系統服務
* vi /etc/systemd/system/shadowsocks.service
```xml
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json
[Install]
WantedBy=multi-user.target
# 設定開機自啟命令
systemctl enable shadowsocks
# 啟動命令
systemctl start shadowsocks
#查看狀態命令
systemctl status shadowsocks
- 客戶端
- 創建一個sh腳本,加入
nohup sslocal -s remoteserverip -p remoteserverport -b 127.0.0.1 -l localserverport -k password -m aes-256-cfb >/dev/null 2>&1 &
nohup sslocal -s 3.14.3.65 -p 15432 -b 127.0.0.1 -l 1080 -k abc123_ -m aes-256-cfb >ssl.log 2>&1 &
記錄服務器CPU和記憶體的實時使用情況
#!/bin/bash
fileName=$1
echo "CPU%,MEM%,TIME" > $fileName
for (( i = 0; i < 3000; i++ )) do
output=`top -b -n1 | grep "Cpu(s)" | awk '{print $2 ","}' | tr -d '\n' && free -m | grep 'Mem' | awk '{print $3/$2 * 100 ","}' | tr -d '\n' && date | awk '{print $4}'`>temp
echo "$output" >> $fileName
sleep 1
done
- cat redis.conf | grep -v “#” | grep -v “^$” 查看組態檔,去除所有的#,去除所有的空格
Linux中禁止修改目錄及內部檔案,這個命令我用在了縮小nginx的權限,將靜態檔案放在tmp目錄下,nginx user能夠訪問
單個檔案 chattr +i aaa.txt
去除則chattr -i aaa.txt
目錄及檔案 chattr -R +i ttt
使用 chattr -R +i A (-R 遞回地修改目錄以及其下內容的屬性) , 即可保護好A目錄下的所有內容.
設定了’i’屬性的檔案不能進行修改,只有超級用戶可以設定或清除該屬性.
Linux命令在tomcat中的應用
- 模板
192.168.1.189 - - [03/May/2019:19:47:21 +0000] "GET /html/css/main.css?browserId=other HTTP/1.1" 200 19858
注意
- access log的配置,格式不一定和上面的log一樣
- cut -f1 -d " "是按照空格來截取字串的, -fn表示第幾個
- 訪問量排名前20的IP地址
cat access_log.2019-0* | cut -f1 -d " " | sort | uniq -c | sort -k 1 -n -r | head -20
- 訪問量排名前20的頁面url
cat access_log.2019-0* | cut -f7 -d " " | sort | uniq -c | sort -k 1 -n -r | head -20
- 查看最耗時頁面
cat access_log.2019-0* | sort -k 10 -n -r | head -20
- 統計4xx/5xx 請求的占比
total requests: wc -l access_log.2019-0*
404 requests: awk '$9=='404'' access_log.2019-0* | wc -l
500 requests: awk '$9=='500'' access_log.2019-0* | wc -l
- 查找包含某個關鍵字的log
awk '/keywords/' access_log* | head -10
awk '/keywords/{print $5,$6}' access_log* | head -10 // 查找包含keywords的關鍵字并列印第5/6列
vim編輯檔案
- 現在還不是在編輯模式,需要在鍵盤上輸入i鍵進入
- 比如洗掉第六行,將游標移至要洗掉的第六行,連續輸入兩次小寫的d,即dd
CentOS查看實時網路帶寬占用
- 安裝iftop, yum install iftop
- 查看網卡 ifconfig
- iftop -i eth0
保持server與client的連接不掉
修改ssh組態檔 /etc/ssh/sshd_config,添加或者修改ClientAliveInterval為“ClientAliveInterval 60”,這個引數的是意思是每1分鐘,服務器向客戶端發一個訊息,用于保持連接,保存后記得重啟ssh服務service sshd restart,
百問
65535怎么來的
計算機是按照二進制儲存資料的,一般用 unsigned int 這種資料型別來儲存正整數
在計算機中,每個整數都是用 16 位 2 進制數來表示的,所以最大的數就是 16 個 1,也就是 11111111 11111111
把二進制數 11111111 11111111 轉化位十進制數就是 65535
Linux下profile和bashrc區別
- /etc/profile
用來設定系統環境引數,比如$PATH. 這里面的環境變數是對系統內所有用戶生效的, - /etc/bashrc
這個檔案設定系統bash shell相關的東西,對系統內所有用戶生效,只要用戶運行bash命令,那么這里面的東西就在起作用, - ~/.bash_profile
用來設定一些環境變數,功能和/etc/profile 類似,但是這個是針對用戶來設定的,也就是說,你在/home/user1/.bash_profile 中設定了環境變數,那么這個環境變數只針對 user1 這個用戶生效. - ~/.bashrc
作用類似于/etc/bashrc, 只是針對用戶自己而言,不對其他用戶生效,
另外/etc/profile中設定的變數(全域)的可以作用于任何用戶,而~/.bashrc等中設定的變數(區域)只能繼承/etc/profile中的變數,他們是”父子”關系.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265370.html
標籤:其他
上一篇:解決echarts地圖geoJson報錯問題(“echarts.min.js:45 Uncaught Error: Invalid geoJson format Cannot read prope”)
