2018年5月30日星期三

2018年5月28日星期一

VIM查找替换常见操作



# vim demo.py

查找:
#normal模式下按下“/”输入关键字,回车-匹配第一个,按下“n”查找下一个,按下“N”查找上一个。
#例子:查找 python                   
# /python\c                                        "\c"忽略大小写,不加默认区分大小写
#在normal模式下按下*即可查找光标所在单词(word)


替换:
#全文
#  :%s/查找词/替换词/g                      “/g”表示全部替换,不加则替换光标后一个
#例子:替换 123 为 321
# :%s/123/321/g

#当前行
#  :s/查找词/替换词/g
#例子:替换 123 为 321
# :s/123/321/g


行首添加:
#在每行开头添加 “###”字符
# :%s/^/###/                 

#在当前行开头添加 “###”字符
# :s/^/###/   

行尾添加:
#在每行结尾添加 “###”字符
# :%s/$/###/                 

#在当前行结尾添加 “###”字符
# :s/$/###/ 



#清除全文的空行
# :g/^s*$/d



#清除全文行尾空格:
# :%s= *$==


#清除全文换行符
# :%s/\n//g

2018年5月27日星期日

免ROOT 使用adb命令卸载预装及权限管理


ADB工具包:下载

准备:
1. 打开手机USB调试,电脑连接数据线
2. 进入ABD目录,运行 启动.cmd


卸载预装:
adb devices

PS:error: insufficient permissions for device 设备权限不足错误
# adb kill-server
# sudo adb start-server 


adb shell pm list packages >apps.txt   (应用列表,存放在adb目录)
#图形化 包名查看:https://play.google.com/store/apps/details?id=bg.projectoria.appinspector
adb shell pm uninstall --user 0 要卸载的应用包名

# 列子
adb shell pm uninstall --user 0 com.taobao.taobao

权限管理:
# 获取应用权限状态
adb shell appops get com.taobao.taobao   (状态:allow允许、deny拒绝、defauld默认、ignore忽略
**********************************************状态详解(淘宝)********************************************
VIBRATE: allow; time=+100d19h28m44s71ms ago; duration=+1s54ms     #震动,allow为已允许
POST_NOTIFICATION: ignore; time=+108d19h6m15s307ms ago; rejectTime=+28m18s819ms ago   #通知,ignore为被忽略
WRITE_SMS: ignore; rejectTime=+20m54s529ms ago     #写入短信,ignore为被忽略
SYSTEM_ALERT_WINDOW: default; rejectTime=+28m27s502ms ago      #弹窗,defauld为默认
CAMERA: allow; time=+10d19h28m42s253ms ago; duration=+1s766ms    #摄像机权限
READ_CLIPBOARD: allow; time=+28m32s352ms ago                #读取剪切板,allow为已允许
WRITE_CLIPBOARD: allow; time=+7d5h56m31s396ms ago    #写入修改剪切板,allow为已允许
TAKE_AUDIO_FOCUS: allow; time=+28m32s221ms ago         # 获取声音焦点权限
WAKE_LOCK: allow; time=+100d5h42m5s360ms ago; duration=+27s613ms     #阻止CPU休眠,allow为已允许
TOAST_WINDOW: allow; time=+3d19h21m9s831ms ago; duration=+3s927ms
OP_READ_PHONE_STATE: allow; time=+11m57s705ms ago            #读取本机识别码,allow为已允许
USE_FINGERPRINT: allow; time=+20m54s519ms ago                #可用指纹
READ_EXTERNAL_STORAGE: allow; time=+20m25s798ms ago      #读取外置存储 ,allow为已允许
WRITE_EXTERNAL_STORAGE: allow; time=+20m25s798ms ago   #写入外置存储,allow为已允许
RUN_IN_BACKGROUND: allow; time=+7m27s327ms ago             #后台运行,allow为已允许
****************************************************************************************************************
# 例子
adb shell appops set com.taobao.taobao READ_CLIPBOARD ignore     (忽略读取剪切板





COARSE_LOCATION : 低精度定位
FINE_LOCATION : 高精度定位
OP_READ_PHONE_STATE : 读取电话信息权限
READ_EXTERNAL_STORAGE : 读取外置存储权限
WRITE_EXTERNAL_STORAGE : 写入外置存储权限
RUN_IN_BACKGROUND : 后台运行服务权限,禁用后系统将在应用进入后台几分钟后将后台服务杀死
GPS : GPS
VIBRATE : 震动
READ_CONTACTS : 读取通讯录
WRITE_CONTACTS : 写入通讯录
READ_CALL_LOG : 读取通话记录
WRITE_CALL_LOG : 写入通话记录
READ_CALENDAR : 读取日历
WRITE_CALENDAR : 写入日历
WIFI_SCAN : 扫描Wifi热点
POST_NOTIFICATION : 发布通知
WAKE_LOCK : 唤醒锁
CALL_PHONE : 拨打电话
READ_SMS : 读取短信
WRITE_SMS : 写入短信
SEND_SMS : 发送短信
RECEIVE_SMS : 接收短信
RECEIVE_EMERGECY_SMS : 接受紧急短信息
RECEIVE_MMS : 接受彩信
RECEIVE_WAP_PUSH : 接受Wap Push消息
READ_ICC_SMS : 接收运营商短信息
WRITE_ICC_SMS : 写入运营商短信息
SYSTEM_ALERT_WINDOW : 悬浮窗口权限
ACCESS_NOTIFICATIONS : 读取通知
WRITE_SETTINGS : 写入修改设置
CAMERA : 摄像机权限
RECORD_AUDIO : 录音
PLAY_AUDIO : 播放音频
READ_CLIPBOARD : 读取剪切板
WRITE_CLIPBOARD : 写入修改剪切板
TAKE_MEDIA_BUTTONS : 获取多媒体按钮权限
TAKE_AUDIO_FOCUS : 获取声音焦点权限
GET_USAGE_STATS : 获取应用使用情况权限
PROCESS_OUTGOING_CALLS : 处理(拦截)外拨号码
USE_FINGERPRINT : 使用指纹读取器
BODY_SENSORS : 身体传感器
READ_CELL_BROADCASTS : 读取移动蜂窝广播
MOCK_LOCATION : 模拟位置
TURN_ON_SCREEN : 关闭屏幕
GET_ACCOUNTS : 获取系统账户列表

2018年5月15日星期二

docker


一,安装docker:

*******************Debian 9**************************
# 卸载旧版
# apt-get -y remove docker docker-engine docker.io
# 安装
# apt-get update
# apt-get install -y apt-transport-https ca-certificates wget software-properties-common
# wget https://download.docker.com/linux/debian/gpg
# apt-key add gpg
# echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee -a /etc/apt/sources.list.d/docker.list
# apt-get update
# apt-cache policy docker-ce
# apt-get -y install docker-ce
# systemctl start docker (启动)
# systemctl enable docker (开机自启动)
# systemctl status docker (状态)
# 安装Docker Compose
#  curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname > -s`-`uname -m` -o /usr/bin/docker-compose
# chmod +x /usr/bin/docker-compose
# docker network create nginx-proxy
*******************Debian 9**************************

2018年5月14日星期一

Dnsmasq 简单DNS service搭建抗污染


服务端:
一台香港VPS(国内主机不推荐,有污染)
OS:Debian9

# apt-get install dnsmasq

# nano /etc/dnsmasq.conf
*******************修改:去掉 “#” 启动功能*******************
#port=443 (默认端口53,0为禁用。如果你的运营商启用了dns透明代理,请启用)
strict-order (按顺序解析)
listen-address=127.0.0.1,23.188.88.88(替换你VPS的IP)
cache-size=8000 (缓存条数,根据VPS速度调整大小)
# resolv-file=/etc/resolv.dnsmasq.conf (手动指定上游DNS文件,无需求不用启动)
*******************保存内容*******************

# nano /etc/resolv.conf

**************添加上游DNS**************
nameserver 127.0.0.1  (先本地查,不缓存可以不填这行)
nameserver 8.8.8.8
nameserver 8.8.4.4
**************添加上游DNS**************


# service dnsmasq restart  (重启服务)
# service dnsmasq status  (检查服务状态,没问题就进客户端测试了)


Iptables放行DNS端口:
$ iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
$ iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT



客户端:

openwrt:
1.非53标准端口
# nano /etc/config/dhcp
************注释掉*********
#option resolvfile
****************************
# nano /etc/dnsmasq.conf
**********添加*************
server=208.67.222.222#443
************************
# service dnsmasq restart

2. 53端口
# nano /etc/config/dhcp
************修改*********
option resolvfile '/etc/resolv.dnsmasq.conf'
****************************
# nano /etc/resolv.dnsmasq.conf
**********添加************
nameserver 208.67.222.123
nameserver 208.67.220.123
***************************
# service dnsmasq restart

windows:
# cmd
# nslookup google.com

linux:
dig google.com
# apt-get install -y dnsutils (没装dig,运行这条命令)

非53端口:
1.
# iptables -t nat -A OUTPUT -o 网卡名 -p udp --dport 53 \  -j DNAT --to 208.67.222.222:443

2.使用dnsmasq
# nano /etc/dnsmasq.conf
port=53
no-resolv
# For IPv6
# server=2620:0:ccc::2#443
server=208.67.222.222#443
listen-address=127.0.0.1


增加中国网站cdn速度:
大型网站CDN会根据dns所在地分配ip,为了更快的连接请使用以下列表,也可以按自己需求精简列表,毕竟会消耗一些路由性能
https://github.com/felixonmars/dnsmasq-china-list



香港宽频 Hong Kong BroadBand Network DNS
203.80.96.10
203.80.96.9

HKNet
202.67.240.222
202.67.240.221

和记环球电讯 HGC
202.45.84.58
202.45.84.59

中華電信
168.95.1.1(dns.hinet.net)
168.95.192.1(hntp1.hinet.net)
168.95.192.2(hntp3.hinet.net)

速博 sparq:
61.56.211.185
211.78.130.2

臺灣固網:
211.78.215.137
211.78.215.200

2018年5月10日星期四

openwrt 手动设置aria2


# cd /mnt
# mkdir -p aria2
# cd aria2
# aria2c --enable-rpc=true --rpc-listen-all=true --rpc-allow-origin-all -c (验证启动后退出)
# nano aria2.conf
***************************************************************
bt-max-peers=60   # 最大连接数
# 这里添加tracker
bt-tracker=udp://tracker1.wasabii.com.tw:6969/announce
check-certificate=false
continue=true
enable-http-pipelining=false
enable-rpc=true
follow-torrent=true
input-file=/mnt/aria2/aria2.session
listen-port=6888
max-concurrent-downloads=3   #任务数
max-connection-per-server=10
max-overall-download-limit=0
max-overall-upload-limit=1K
min-split-size=10M
rpc-allow-origin-all=true
rpc-enable=1
rpc-listen-all=true
rpc-listen-port=6800
save-session=/mnt/aria2/aria2.session  #保存任务状态,需要自动清理 放到/tmp
split=10
dir=/mnt/sda3/downloads   #下载目录
rpc-secret=27d91086ae6a89c021bf39bc83ff8cf0   #RPC 令牌
enable-dht=true
user-agent=uTorrent/2210(25130)
peer-id-prefix=-UT2210-
***************************************************************
aria2.conf :下载

进入openwrt-系统-启动项:
添加:aria2c --conf-path=/etc/aria2.conf -D



2018年5月4日星期五

debian9 安装 steam (Nvidia专有驱动)


$ su
# nano /etc/apt/sources.list
添加:
deb http://httpredir.debian.org/debian/ jessie main contrib non-free
# dpkg --add-architecture i386
# apt update
# apt install steam
# apt install libgl1-nvidia-glx:i386

debian9 安装Nvidia专有驱动


$ lspci -nn | egrep -i "3d|display|vga"     
$ sudo nano /etc/apt/sources.list
deb http://httpredir.debian.org/debian/ stretch main contrib non-free
# apt update
# apt install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//') nvidia-driver
# reboot

2018年5月3日星期四

debina9 安装firefox59



$ wget https://download-installer.cdn.mozilla.net/pub/firefox/releases/59.0.3/linux-x86_64/zh-CN/firefox-59.0.3.tar.bz2

$ tar -jxvf firefox-59.0.3.tar.bz2

$ mv firefox /opt

$ sudo nano /usr/share/applications/firefox.desktop
*******************************************************
[Desktop Entry]
Type=Application
Comment=postman
Name=firefox
Icon=/opt/firefox/browser/chrome/icons/default/default128.png
Exec=/opt/firefox/firefox
Terminal=false
Categories=Development;
*******************************************************

Debian9 使用新力得软件包管理工具


$ sudo apt-get install gdebi   

$ sudo gdebi xxx.deb



例子:
1. virtualbox
$ sudo wget https://download.virtualbox.org/virtualbox/5.2.10/virtualbox-5.2_5.2.10-122088~Debian~stretch_amd64.deb
$ sudo gdebi virtualbox-5.2_5.2.10-122088~Debian~stretch_amd64.deb
$ sudo apt-get install linux-headers-4.9.0-6-amd64
$ sudo /sbin/vboxconfig