linux及git記錄

git撤銷

Git Add了一個錯誤文件
git reset <file> #撤銷指定的文件
git reset #撤銷全部的文件 只撤銷commit操做,保留文件Git Commit了一個錯誤文件
git reset HEAD~1 撤銷commit操做,刪除變化
git reset --hard HEAD~1
刪除本地和遠程的test分支
git push origin --delete test
git checkout master
git branch -d test
git branch -D test 若是有未提交的文件php

Redis 性能分析與優化

redis-cli -h <host> -p <port> -n <db> --bigkeys#獲得的 value 佔用空間最大的 key 值
slowlog 這個子命令能夠獲取當前的這些記錄 127.0.0.1:6379> slowlog get 3

隨機數

echo $RANDOM
od -An -N2 -i /dev/randomhtml

開源 OCR

bash > tesseract --list-langs
List of available languages (17):
math
chi
chi_sim
eng
tesseract paper.png paper -l chi_sim
tesseract input.png output -l eng

清空Github上某個文件的歷史

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch app/img/*' --prune-empty --tag-name-filter cat -- --all

git push origin master --force

rm -rf .git/refs/original/

git reflog expire --expire=now --all

git gc --prune=now

git gc --aggressive --prune=now

使用 iconv 對大文件編碼轉換 GB2312 - UTF8

iconv -f gb2312 -t utf-8//IGNORE av-ed2k-合集.data > 日語教學.txt
wc -l 日語教學.txt av-ed2k-合集.data前端

Nginx 上限制單 IP 單位時間的請求數,以及單 IP 的併發鏈接數

http {java

limit_req_zone $binary_remote_addr zone=one:10m rate=8r/s;

server {
    location /search/ {
        limit_req zone=one burst=5;
    }

使用 Nginx 限制頁面訪問權限

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd myusername
server {
  listen       80;
  server_name  ip_address;

  location /backend {
      root   /var/www/sunzhongwei.com;
      index  index.html index.htm;

      auth_basic "Restricted";                                
      auth_basic_user_file /etc/nginx/.htpasswd;  
  }
}

sudo /etc/init.d/nginx reload

命令行登錄github

ssh-keygen -t rsa -C "郵件"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/MZero/.ssh/id_rsa):python

登錄github。點擊右上角的 Account Settings—>SSH and GPG keys —> new SSH key
$ ssh -T git@github.com
如有You’ve successfully authenticated提示,說明成功了mysql

git pull/push項目的時候老是提示要輸入用戶名密碼的解決方案

git config --global credential.helper storelinux

服務器設置容許mysql遠程登陸

vi /etc/sysconfig/iptablesnginx

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart
grant all on aaa.* to "root"@xx.yy.zz.cc identified by "123";
flush privileges;
grant all on aaa.* to "root"@"%" identified by "123";git

ssh 配置祕鑰登陸

ssh-keygen -t rsa -C "you@homestead"github

$ sudo vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizeKeyFile ~/.ssh/authorized_keys
service sshd restart
將公鑰文件的內容追加到 ~/.ssh/authorized_keys 文件中,而且將文件權限置成 600
chmod 600 ~/.ssh/authorized_keys

$ vim .bash_profile
alias c14='ssh [username]@[server_ip] (-i ~/.ssh/[私鑰文件])'
$ source .bash_profile
$ c14

Nginx 報 502 的解決思路

nginx報錯,查看nginx日誌排錯
nginx報502 bad gate way通常是由於沒有配置好php-fpm
修改nginx或者php-fpm配置文件以後重啓生效

nginx 添加 https 和 http2 模塊支持

curl https://nginx.org/download/ng... |\
tar xzf - && cd nginx-* # get latest nginx & extract it
./configure [old_config_arguments] --with-http_ssl_module --with-http_v2_module # 前面 [old_config_arguments] 能夠從 nginx -V 裏 copy
make
sudo make install
listen 443 ssl http2;
ssl_certificate /home/brook/ssl/chained.pem;
ssl_certificate_key /home/brook/ssl/domain.key;
ssl_dhparam /home/brook/ssl/dhparams.pem;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+ 3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets on;
add_header Strict-Transport-Security max-age=31536000;
service reload nginx

pphpmyadmin 缺乏 mcrypt 擴展

sudo apt-get install php-mcrypt libmcrypt libmcrypt-devel
sudo ln -s /etc/php5/mods-available/mcrypt.ini 20-mcrypt.ini
sudo service apache2 restart

curl命令查看請求響應時間方法

curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"n" http://www.36nu.com

0.014::0.015::0.018::0.019::1516256.00

用github來展現你的前端頁面

建立項目新建gh-pages分支 經過 http://(user_name|org_name).g... 訪問
一種更加簡便的方式來實現:將代碼上傳至倉庫後在settings裏配置下GitHub Pages爲你想展現的分支就好了

pull request

git clone 本身fork的project
而後添加一個上游地址git remote add upstream
git remote -v查看本身和fork來的地址
git pull upstream master
增長分支 git checkout -b newbranch
git pull upstream master
再git rebase master將改動代碼放在master前面
git push origin newbranch

clipboard.png

代理ip

curl http://ip.chinaz.com/getip.aspx -x 'http://120.52.72.56:80'
{ip:'120.52.72.56',address:'北京市 聯通雲 BGP 數據中心'}

git add 如何只 add 某一行

git add -p http://stackoverflow.com/ques...

判斷linux是否被黑

執行命令ls -l /usr/bin/ps看一下文件時間是否是最近更改過;對比下相同操做系統版本下的ps命令和這臺的大小,若是不一樣,基本能夠肯定被入侵了

格式化json

echo '{"a": 1, "c": 3, "b": 2}' | python -m json.tool
刪除文件中的空行
cat a.txt | sed -e '/^$/d'
經常使用命令history 1 -1 | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
刪除空文件/刪除垃圾文件
find . -type f -size 0 -delete
find . -type f -name "a.out" -exec rm -rf {} ;

Git中的username的設置

git config --global user.name "spoock"
新的提交沒有使用正確的name,頗有多是環境變量將username覆蓋了

$ echo $GIT_COMMITTER_NAME
$ echo $GIT_AUTHOR_NAME

chrome中的cookie存儲位置

地址欄中輸入chrome://setings/password就能夠查看瀏覽器上面保存的全部的密碼了.
chrome還將這些cookie存在了本地的硬盤上面。目錄在:
C:/Users/本地用戶名/AppDate/Local/Google/Chrome/User Data/Default下的cookie文件。這個cookie文件是一個sqllite的文件

正向代理與反向代理

正向代理中proxy代理client來向一個server發起請求 而反向代理中proxy代理一個或者多個server接收clients的請求, server對於client來講是不可見的 代理:在客戶這一端,替客戶收發請求。
反向代理:在服務器機房這一端,替服務器收發請求,也就是說請求和響應都先通過反向代理。具備緩存、安全、負載均衡等做用。請求分發到多臺服務器 正向代理代理客戶端,反向代理代理服務器,一個是代理(v)客戶端,爲客戶端收發請求,使真實客戶端對服務器不可見。
一個是代理(v)服務器,爲服務器收發請求,使真實服務器對客戶端不可見。

Nginx配置中的 root 與 alias 指令的區別

location /i/ {

root /data/w3;

}
location /i/ {

alias /data/w3/;

}

clipboard.png

clipboard.png

alias 只能做用在location中,而root能夠存在server、http和location中。

alias 後面必需要用 「/」 結束,不然會找不到文件,而 root 則對 」/」 無關緊要。

在當前目錄下全部文件中搜索字符串「windows」,並用「linux」替換之

grep -rl 'windows' ./ | xargs sed -i 's/windows/linux/g'

查看某個端口打開的文件(socket 鏈接)

lsof -i :80

列出用戶打開的文件

lsof -u root | more

文件被哪些進程打開了

lsof -a /var/lib/mysql/mysql/slow_log.CSV

Git push到多個遠程庫

git remote add origin git@github.com:looly/hutool.git
git remote add osc git@git.oschina.net:loolly/hutool.git
git add .
git commit -m 'First commit'
git push origin master
git push osc master

crontab的「坑」

crontab的命令裏面增長source /path/to/configfile
python task.py >> ~/debug.log 2>&1 crontab命令加上這個後綴(2>&1) 以後,個人debug.log 之中終於出現以下圖所示的錯誤信息(sh: l: java not found)

apt-get rpm

Linux發行版主要有兩派,Debian系和Redhat系

Debian系使用deb包,包管理是:apt-get

Redhat系使用rpm包,包管理是:rpm
Debian/Ubuntu:
二進制包 .deb
安裝方式 dpkg -i xxx.deb
apt-get install xxxxx.deb
Centos:
二進制包 .rpm
安裝方式apt-get update sudo apt-get install rpm rpm -ivh xxx.rpm
yum install xxxxx.rpm

ffmpeg將視頻轉ts

ffmpeg -i Wildlife.wmv -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list ./m3u8/index.m3u8 -segment_time 10 ./m3u8/’%03d.ts’

相關文章
相關標籤/搜索