1
2
3
4
5
6
7
8
9
10
11
# 安装alsa相关应用:
sudo apt install alsa-base alsa-utils alsa-oss alsa-tools

#查看系统中的声卡:
cat /proc/asound/cards

sudo alsamixer
#其中,Master和PCM是必须打开的,Master和PCM声道默认是静音的,标记是MM。用左右方向键选择设置项,按M健来修改为OO或开启调节,上下键调节音量大小。

sudo alsactl store #保存配置
cat /var/lib/alsa/asound.state #查看配置生效的内容

1. docker mysql 配置

1
2
3
4
5
6
7
8
9
docker search mysql
docker run --name some-mysql -p 3306:3306 -v /root/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxx -d mysql:5.5
docker image ls
docker exec -it some-mysql bash
#配置远程访问
mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option
Query OK, 0 rows affected, 1 warning (0.04 sec)
mysql> flush privileges
Query OK, 0 rows affected (0.00 sec)

2. docker tomcat 配置

1
2
3
4
5
6
7
8
9
10
11
# tomcat8 给内网服务器使用
docker run --name tomcat8 -d \
-v ~/web/tomcat8/webapps:/usr/local/tomcat/webapps \
-v ~/web/tomcat8/logs:/usr/local/tomcat/logs \
-v /etc/localtime:/etc/localtime:ro \
-e TZ="Asia/Shanghai" \
-p 8080:8080 tomcat:8.0

docker logs --tail=100 -f tomcat8
docker container stop tomcat8
docker container start tomcat8

mysqlimport

为MySQL服务器用命令行方式导入数据

补充说明

mysqlimport命令 为mysql数据库服务器提供了一种命令行方式导入数据工具,它从特定格式的文本文件中读取数据插入MySQL数据库表中。

语法

1
mysqlimport(选项)(参数)

选项

1
2
3
4
5
-D:导入数据前清空表;
-f:出现错误时继续处理剩余的操作;
-h:MySQL服务器的ip地址或主机名;
-u:连接MySQL服务器的用户名;
-p:连接MySQL服务器的密码。

参数

  • 数据库名:指定要导入的数据库名称;
  • 文本文件:包含特定格式文本文件。

刷机指南

【适用性】此方法适用于K2 V22.4.5.39以上的新版本官方固件,包括当前最新固件V22.5.9.163、22.5.10.176、22.5.11.5。

【功 能】根据输入的MAC地址自动生成配置文件,此配置文件用于为K2刷入breed(20170416版本)。你可以后续在breed中刷入第三方固件

【操作步骤】

1、输入WAN口MAC地址(格式为CC:81:DA:11:22:33,以冒号隔开),点“下载配置文件”将配置文件下载到本地计算机

2、在K2 WEB管理页面“高级设置”-“系统设置”-“备份恢复”界面,导入下载的配置文件,然后点击“恢复备份”按钮即可。

【使用说明】

MAC地址可以在管理页面的“高级设置”-“系统状态”页面直接拷贝:

如果采用无线扩展组网或网页上的MAC不正确,可以查看K2机器底部的MAC地址,每隔两个字符加入冒号进行输入,如下图,MAC应该为“D8:C8:E9:1A:94:00”:

配置文件使用方法:

在K2 WEB管理页面“高级设置”-“系统设置”-“备份恢复”界面,导入下载的配置文件,然后点击“恢复备份”按钮即可。

配置文件导入后,K2会复位两次,请耐心等待,不要断电或人工复位!

【breed进入方式】

导入配置两分钟后K2会正常启动,指示灯变黄或变蓝,此时断电,电脑连接K2的一个LAN口自动获取 IP 地址,按住K2复位键再通电,持续按住几秒,然后电脑访问http://192.168.1.1即可在WEB刷第三方固件

【进入路由器后台】
http://192.168.123.1/
admin
admin

【相关链接】
http://iytc.net/k2.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
$ ./client_darwin_amd64 -h
NAME:
kcptun - client(with SMUX)

USAGE:
client_darwin_amd64 [global options] command [command options] [arguments...]

VERSION:
20170120

COMMANDS:
help, h Shows a list of commands or help for one command

GLOBAL OPTIONS:
--localaddr value, -l value local listen address (default: ":12948")
--remoteaddr value, -r value kcp server address (default: "vps:29900")
--key value pre-shared secret between client and server (default: "it's a secrect") [$KCPTUN_KEY]
--crypt value aes, aes-128, aes-192, salsa20, blowfish, twofish, cast5, 3des, tea, xtea, xor, none (default: "aes")
--mode value profiles: fast3, fast2, fast, normal (default: "fast")
--conn value set num of UDP connections to server (default: 1)
--autoexpire value set auto expiration time(in seconds) for a single UDP connection, 0 to disable (default: 0)
--mtu value set maximum transmission unit for UDP packets (default: 1350)
--sndwnd value set send window size(num of packets) (default: 128)
--rcvwnd value set receive window size(num of packets) (default: 512)
--datashard value, --ds value set reed-solomon erasure coding - datashard (default: 10)
--parityshard value, --ps value set reed-solomon erasure coding - parityshard (default: 3)
--dscp value set DSCP(6bit) (default: 0)
--nocomp disable compression
--snmplog value collect snmp to file, aware of timeformat in golang, like: ./snmp-20060102.log
--snmpperiod value snmp collect period, in seconds (default: 60)
--log value specify a log file to output, default goes to stderr
-c value config from json file, which will override the command from shell
--help, -h show help
--version, -v print the version

$ ./server_darwin_amd64 -h
NAME:
kcptun - server(with SMUX)

USAGE:
server_darwin_amd64 [global options] command [command options] [arguments...]

VERSION:
20170120

COMMANDS:
help, h Shows a list of commands or help for one command

GLOBAL OPTIONS:
--listen value, -l value kcp server listen address (default: ":29900")
--target value, -t value target server address (default: "127.0.0.1:12948")
--key value pre-shared secret between client and server (default: "it's a secrect") [$KCPTUN_KEY]
--crypt value aes, aes-128, aes-192, salsa20, blowfish, twofish, cast5, 3des, tea, xtea, xor, none (default: "aes")
--mode value profiles: fast3, fast2, fast, normal (default: "fast")
--mtu value set maximum transmission unit for UDP packets (default: 1350)
--sndwnd value set send window size(num of packets) (default: 1024)
--rcvwnd value set receive window size(num of packets) (default: 1024)
--datashard value, --ds value set reed-solomon erasure coding - datashard (default: 10)
--parityshard value, --ps value set reed-solomon erasure coding - parityshard (default: 3)
--dscp value set DSCP(6bit) (default: 0)
--nocomp disable compression
--snmplog value collect snmp to file, aware of timeformat in golang, like: ./snmp-20060102.log
--snmpperiod value snmp collect period, in seconds (default: 60)
--log value specify a log file to output, default goes to stderr
-c value config from json file, which will override the command from shell
--help, -h show help
--version, -v print the version

1. 如何生成ssh公钥

1
2
3
4
5
6
7
8
9
10
11
cd ~ #切换到git目录下
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key
# 查看你的 public key,并把他添加到码云(Gitee.com) SSH key添加地址

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

ssh -T git@git.oschina.net

2. 配置多个git仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$ touch config

# window 与 linux 使用socks5代理有区别,一个用connect ,一个用nc

linux:
# github
Host github.com
HostName github.com
User bigsuperangel
PreferredAuthentications publickey
IdentityFile ~/.ssh/github
ProxyCommand nc -v -x 127.0.0.1:1080 %h %p

window:
# oschina
Host git.oschina.net
HostName git.oschina.net
PreferredAuthentications publickey
User bigsuperyu
IdentityFile ~/.ssh/id_rsa

# github
Host github.com
HostName github.com
User bigsuperangel
PreferredAuthentications publickey
IdentityFile ~/.ssh/github-rsa
ProxyCommand connect -H 127.0.0.1:1080 %h %p

3. linux互信

1
2
ssh-copy-id -i id_rsa.pub root@host
ssh-copy-id -i id_rsa.pub -p port root@host

4. 相关问题

a. git fatal: early EOF fatal: index-pack failed

1
2
3
4
5
6
7
8
9
10
11
[core] 
packedGitLimit = 512m
packedGitWindowSize = 512m
[pack]
deltaCacheSize = 2047m
packSizeLimit = 2047m
windowMemory = 2047m

I have tried this in /etc/ssh/ssh_config for Linux and Mac:
Host *
ServerAliveInterval 120

1. 添加themes submodule

1
git submodule add git@github.com:bigsuperangel/jacman.git themes/jacman

2. clone带submodule

1
2
git submodule init
git submodule update

3. 删除submodule

1
2
3
git rm --cached themes/jacman
rm .gitmodule
del .git/config submodule

Android、Java项目开源

这里就仅仅介绍如何发布一个Android、Java的项目到 jitpack.io

第一步:配置项目根目录的build.gradle

1
2
3
4
5
6
7
8
9
10
buildscript {
repositories {
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'//ADD
}
}

第二步:配置需要发布的Module Lib的build.gradle

1
2
apply plugin: 'java'
apply plugin: 'com.github.dcendents.android-maven'//ADD

第三步:发布到github

这个参考网络上git教程

第四步:创建Release版本

aa86b3db62434b3faf2adc73a1c211c4.png
d369db53afd74d338fcbaabea98f3627.png
8f027d11d86e4ba1ae2d554138a1026f.png

第五步:到 jitpack.io 构建

64d617943ba64d2f8b079606ccadd245.png

第六步:完成,即可通过gradle或maven引入发布的Lib

3101ee3d460749989f948ea4300855ab.png

第七步:添加仓库标识符

把这段Markdown代码放到README.md页面,需要根据项目地址修改。
1a976650a6614ffb8359fb286b5bcfa0.png

第八步:通过gradle引用

1
2
3
4
5
6
7
8
9
10
11
12
<repositories>
<repository>
<id>jitpack.ioid</id>
<url>https://jitpack.io</url>
</repository>
</repositories>

<dependency>
<groupId>com.github.bigsuperangel</groupId>
<artifactId>hiwetoptools</artifactId>
<version>3.3.0</version>
</dependency>

示范代码

VirtualEnv可以方便的解决不同项目对类库的依赖问题,这里讲下windows上如何安装virtualenv。

1. 安装 virtualenv
5643975ae128412eaf43f35fff5c1dd7.png

2. 为项目安装虚拟环境
e357d5fb8428418bb14f2b43ebd05dcf.png

3. 启动虚拟环境中,为项目安装所需类库
在windows中,启动虚拟环境使用命令:your_env_dir\Scripts\activate,激活虚拟环境后,在cmd窗口的命令前面将出现,表示目前处于虚拟环境中。
77990833b53d46299e2d486bd00b460a.png

4. 在虚拟环境中进行开发
A.在项目目录下,创建一个flask_demo.py的文件,用来演示用flask创建一个应用。

1
2
3
4
5
6
7
8
9
10
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_flask():
return 'hello flask!'

if __name__ == '__main__':
app.run()

B.在虚拟环境中执行该应用:
d552521b25144f02bbd12a1753c954bb.png
C.在浏览器中验证该应用:
dc3fa4e4fb7d4abcacc8744b6b81555e.png

5. 离开虚拟环境,使用deactivate命令
820b2fa7c7554ea59d2e7b5bdb8f9704.png
发现命令行前面已经没有了

6. 在系统环境中,我们并没有安装flask类库,可以对比在系统环境中和虚拟环境中的脚本运行效果:
b44caaea05fc48728b6adf1919b39b2c.png

总结:virtualenv虚拟环境为每个项目隔离了一套运行类库,不同的项目在各自的虚拟环境中使用不同的类库,避免了将所有类库都安装到系统环境中导致的不同项目需要不同(版本)类库的问题,项目与项目之间的类库依存不再成为问题。