ip neigh
//邻居表对象建立协议地址与链路层之间的绑定;为了共享同一物理链路的主机建立地址。邻居对象条目组织成表。IPv4邻居对象表也被称为ARP表。查看邻居表的绑定及其属性,添加新的邻居表条目,并删除旧的。
ip link
// 链路指的是网络设备。ip link对象及其对应的命令集允许查看并作网络设备的状态。
ip addr
// 地址指的是连接到网络设备上的协议(IP或IPv6)地址。每个设备必须至少有一个地址,才能使用对应的协议。可以有多个不同的地址连接到一个设备。这些地址在协议结构中并不被区分,因此“别名”一词并不完全适用于此类多地址。
ip route
// 管理内核路由表中的路由条目。内核路由表保存协议路径与其他网络节点的信息。每个路由条目都有一个密钥,由协议前缀组成,即网络地址和网络掩码长度的配对,以及可选的类型服务(TOS)值。如果IP数据包的目的地址的最高位数等于路由前缀至少是前缀长度,且路由的TOS为零或等于数据包的TOS。
ss -tlpn
// -t tcp连接 -l监听 -p进程 -n不解析服务名
tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
// 限速eth0网卡下行10mbps
tc qdisc del dev eth0 root
// 解除eth0网卡限速
ip rule
// 路由策略中的规则数据库控制路由选择算法。经典路由互联网中使用的算法仅基于数据包的目的地址,理论上,但实际上不基于TOS字段。在某些情况下,我们希望路由数据包的方式不同,不仅取决于目的地址,还包括其他数据包字段,如源地址、IP协议,传输协议端口甚至数据包有效载荷。这项任务称为“策略路由”。
或者克隆这个文件夹,然后在Qt craetor打开。 or clone this repository, open in Qt craetor.
国际化 International
lupdate . RandKey_QT_en_GB.ts
linguist RandKey_QT_en_GB.ts
或者使用以下脚本 or use the below Shell script:
TS_DIR="./RandKey-QT" # .ts file
QM_DIR="$TS_DIR/translations" # output .qm dir
for tsfile in "$TS_DIR"/*.ts; do
if [ -f "$tsfile" ]; then
echo "Updating $tsfile "
lupdate . -ts "$tsfile" -no-obsolete
fi
done
this
for tsfile in "$TS_DIR"/*.ts; do
filename=$(basename "$tsfile" .ts)
qmfile="$QM_DIR/$filename.qm"
echo "Generating $qmfile "
lrelease "$tsfile" -qm "$qmfile"
done
func main() {
url := "ziyuan.work"
for i, v := range url {
fmt.Println(i, v)
}
}
//output:
//0 122
//1 105
//2 121
//3 117
//4 97
//5 110
//6 46
//7 119
//8 111
//9 114
//10 107
range map:
func main() {
userList := make(map[string]string)
userList["url"] = "ziyuan.work"
for key, value := range userList {
value = "I change myself" //改变的只是提取item的值,userlist不受影响
fmt.Println(userList[key])
fmt.Println(value)
}
}
// output:
//ziyuan.work
//I change myself
range channel:
func main() {
wg := sync.WaitGroup{}
wg.Add(1)
c := make(chan int)
go func() {
defer wg.Done()
for i := 0; i < 10; i++ {
c <- i
}
}()
go func() {
wg.Wait()
close(c)
}() // 当使用range对channel操作时,会无限遍历,最终变成死锁,因此需要关闭channel
for value := range c {
log.Println(value)
}
}
//output:
//0
//1
//2
//3
//4
//5
//6
//7
//8
//9
由于完整的128位UUID在BLE链路层中会占用较大的数据负载空间,BLE规范引入了两种压缩形式的UUID:16位UUID和32位UUID。这些缩短形式仅适用于由蓝牙SIG定义和分配的标准UUID,用于标识标准服务、特征及相关类型。缩短形式的UUID可通过嵌入至蓝牙基础UUID(Bluetooth Base UUID)中恢复为完整的128位UUID,其格式如下: