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 如果有未提交的文件
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/random
开源 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 {
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):
登陆github。点击右上角的 Account Settings—>SSH and GPG keys —> new SSH key
$ ssh -T git@github.com
若有You’ve successfully authenticated提示,说明成功了
git pull/push项目的时候总是提示要输入用户名密码的解决方案
git config --global credential.helper store
服务器设置允许mysql远程登录
vi /etc/sysconfig/iptables
-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";
ssh 配置秘钥登录
ssh-keygen -t rsa -C "you@homestead"
$ 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
代理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/;
}
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’
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。