Ubuntu 使用过程中遇到的问题以及解决方案

1. ubuntu wine 微信中文乱码 修改文件 /opt/deepinwine/tools/run.sh /opt/deepinwine/tools/run_v2.sh 将WINE_CMD那行中加入LC_ALL=zh_CN.UTF-8 WINE_CMD="LC_ALL=zh_CN.UTF-8 deepin-wine" 参考 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu 2. ubuntu 20.04 wine 微信 qq 截图时黑屏 之前截图都是好的的,不知道为什么,今天截图时,点击了微信的截图按钮后,屏幕除了状态栏,都变成黑色的了。 各种搜索引擎搜了一遍,没有发现解决方案。 最后决定思考最近对系统做了什么变更,最近我好像给系统安装了新的主题,然后在登录时,选择了新的主题,而没有选择默认的ubuntu主题。 在登录界面的右下角,有个按钮,点击之后,可以选择主题。 最近我都是选择其他的主题,没有选择默认的ubuntu主题,然后我就注销之后,重新在登录时选择默认的ubuntu主题后,再次打开微信截图,功能恢复正常。 所以说,既然选择ubuntu了,就没必要搞些花里胡哨的东西。ubuntu默认的主题挺好看的,而且支持自带主题的设置,就没必要再折腾了。 3. [open] ubuntu 20.04 锁屏后 解锁屏幕非常慢 super + l可以用来锁屏,锁屏之后屏幕变成黑屏。 黑屏之后,如果需要唤醒屏幕,可以随便在键盘上按键,去唤醒屏幕。但是这个唤醒的过程感觉很慢,基本上要随便按键接近十几秒,屏幕才能被点亮,网上搜了下,但是没有找到原因。 但是有个解决办法,就是在黑屏状态下,不要随便输入,而要输入正确的密码,然后按回车键, 这样会快很多。 也就是说,系统运行正常,可能是显示器的问题。 4. ubuntu 20.04 xorg 高cpu 桌面卡死 sudo systemctl restart gdm 5. ubuntu 状态栏显示网速 sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt-get install indicator-sysmonitor 在任务启动中选择System Monitor 在配置中可以选择开机启动 在高级中可以设置显示哪些列, 我只关系网速,所以只写了{net} 6. 在命令行查看图片 实际上终端并不能显示图片,而是调用了外部的程序取显示图片。 eog 是 Eye Of Gnome 的缩写, 它其实是个图片查看器。...

2022-10-25 12:56:41 · 2 min · Eddie Wang

树莓派初始化配置

我已经装过几次树莓派的系统了,记录一些使用心得。 1. 选择哪个版本 最好用无桌面版,无桌面版更加稳定。我之前用过几次桌面版,桌面版存在以下问题。 使用偶尔感觉会卡 经常使用一天之后,第二天要重启系统。 2. 关于初始设置 默认的用户是 pi,默认的密码是raspberry 登录成功之后,sudo passwd pi 来修改pi用户的密码 登录之后,sudo passwd root 来设置root的用户密码 3. 开启ssh 远程登录服务 raspi-config 4. root用户ssh登录 默认树莓派是禁止使用root远程登录的,想要开启的话,需要编辑/etc/ssh/sshd_config文件,增加一行PermitRootLogin yes, 然后重启ssh服务 vi /etc/ssh/sshd_config PermitRootLogin yes sudo systemctl restart ssh // chong 5. 关于联网 联网有两个方案 用网线连接,简单方便,但是有条线子,总会把桌面搞得很乱 使用wifi连接,简单方便 使用wifi连接,一种方式是编辑配置文件,这个比较麻烦。我建议使用树莓派提供的raspi-config命令来设置wifi。 在命令行中输入:raspi-config, 可以看到如下界面 按下箭头,选择NetWork Options,按回车确认 进入网络设置后,按下箭头,选择N2 Wi-fi 然后就很简单了,输入wifi名称和wifi密码,最好你的wifi名称是英文的,出现中文会很尴尬的。 6. 如何找到树莓派的IP地址 某些情况下,树莓派在断电重启之后会获得新的IP地址。在没有显示器的情况下,如果找到树莓派的IP呢? 树莓派的MAC地址是:b8:27:eb:6c 开头 所以你只需要输入: arp -a 就会打印网络中的主机以及MAC地址,找以b8:e7:eb:6c开头的,很可能就是树莓派。 7. 设置清华镜像源 https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/

2022-10-25 12:12:05 · 1 min · Eddie Wang

Wireshark抓包教程

1. HTTP抓包例子 案例:本地向 http://192.168.40.134:31204/some-api,如何过滤? http and ip.addr == 192.168.40.134 and tcp.port == 31204 语句分析: http 表示我只需要http的包 ip.addr 表示只要源ip或者目标ip地址中包含192.168.40.134 tcp.port 表示只要源端口或者目标端口中包含31204 2. 为什么我写的表达式总是不对呢?😂 很多时候,你写的表达式背景色变成红色,说明表达式错误了,例如下图:http and ip.port == 31204 写出ip.port这个语句,往往是对传输协议理解不清晰。😅 ip是网络层的协议,port是传输层tcp或者udp中使用的。例如你写tcp.port == 80,udp.port ==3000这样是没问题的。但是port不能跟在ip的后面,如果你不清楚怎么写,你可以选择wireshark的智能提示。 智能提示会提示所有可用的表达式。 3. 常用过滤表达式 一般我们的过滤都是基于协议,ip地址或者端口号进行过滤的, 3.1. 基于协议的过滤 直接输入协议名进行过滤 3.2. 基于IP地址的过滤 3.3. 基于端口的过滤 基于端口的过滤一般就两种 tcp.port == xxx udp.port == xxx 3.4. 基于host的过滤 4. 比较运算符支持 == 等于 != 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于 ip.addr == 192.168.2.4 5. 逻辑运算符 and 条件与 or 条件或 xor 仅能有一个条件为真 not 所有条件都不能为真 ip....

2022-10-25 09:12:00 · 1 min · Eddie Wang

Tcpdump抓包教程

查看帮助文档 从帮助文档可以看出,包过滤的表达式一定要放在最后一个参数 tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ] [ -c count ] [ --count ] [ -C file_size ] [ -E spi@ipaddr algo:secret,... ] [ -F file ] [ -G rotate_seconds ] [ -i interface ] [ --immediate-mode ] [ -j tstamp_type ] [ -m module ] [ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ] [ -r file ] [ -s snaplen ] [ -T type ] [ --version ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ --time-stamp-precision=tstamp_precision ] [ --micro ] [ --nano ] [ expression ] 列出所有网卡 tcpdump -D 1....

2022-10-25 09:09:05 · 2 min · Eddie Wang

http抓包工具httpry使用

git clone https://gitee.com/nuannuande/httpry.git cd httpry yum install libpcap-devel -y make make install cp -f httpry /usr/sbin/ httpry -i eth0

2022-10-25 09:07:04 · 1 min · Eddie Wang

Hugo Timezone没有设置, 导致页面无法渲染

写好了博客,但是没有在网页上渲染出来,岂不是很气人! 我的archtypes/default.md配置如下 --- title: "{{ replace .Name "-" " " | title }}" date: "{{ now.Format "2006-01-02 15:04:05" }}" draft: false --- 当使用 hugo new 创建一个文章的时候,有如下的头 --- title: "01: 学习建议" date: "2022-09-03 10:23:10" draft: false --- Hugo 默认采用的是 格林尼治平时 (GMT),比北京时间 (UTC+8) 晚了 8 个小时,Hugo 在生成静态页面的时候,不会生成超过当前时间的文章。 如果把北京时间当作格林尼治时间来计算,那么肯定还没有超过当前时间。 所以我们要给站点设置时区。 在config.yaml增加如下内容 timeZone: "Asia/Shanghai"

2022-09-03 10:20:48 · 1 min · Eddie Wang

读书笔记 - Packet Guide to VoIP

书名 Packet Guide to Voip over IP 作者 Bruce Hartpence 状态 已读完 简介 Go under the hood of an operating Voice over IP network, and build your knowledge of protocol …. 读后感 新技术出现的时机 Pulling the trigger early might put you at risk of making the wrong decision in terms of vendor or protocol. Adopting late might put you behind the competition or make you rush to deploy a system that is not well understood by the local staff....

2022-07-18 20:05:01 · 1 min · Eddie Wang

中途多语言适配

1. 前提说明 项目已经处于维护期 项目一开始并没有考虑多语言,所以很多地方都是写死的中文 现在要给这个项目添加多语言适配 2. 工具选择 https://www.npmjs.com/package/i18n https://www.npmjs.com/package/vue-i18n 3. 难点 项目很大,中文可能存在于各种文件中,例如html, vue, js, typescript等等, 人工查找不现实 所以首先第一步是要找出所有的中文语句 4. 让文本飞 安装ripgrep apt-get instal ripgrep 搜索所有包含中文的代码: rg -e '[\p{Han}]' > han.all.md 给所有包含中文的代码,按照文件名,和出现的次数排序: cat han.all.md | awk -F: '{print $1}' | uniq -c | sort -nr > stat.han.md 这一步主要是看看哪些文件包含的中文比较多 按照中文的语句,排序并统计出现的次数: cat han.all.md |rg -o -e '([\p{Han}]+)' | sort | uniq -c | sort -nr > word.han.md 经过上面4步,基本上可以定位出哪些代码中包含中文,中文的语句有哪些。

2022-07-12 22:54:55 · 1 min · Eddie Wang

0 A.D. 一款开发了21年还未release的游戏

1. 我为什么会知道0 A.D. 这款游戏? 最近切换到windows开发,用了scoop这个包管理工具来安装软件,随便逛逛的时候,发现scoop还可以用来安装游戏,然后我就在里面看了一下,然后排名第一的是一个名叫 0 A.D.的游戏,然后我就安装,并试玩了一下。 2. 0 A.D. 这个名字是啥意思? 基督教称耶稣诞生的那年为公元元年, A.D. 就是Anno Domini(A.D.)(拉丁)的缩写,对应的公元前就是而在耶稣诞生之前,称为B.C. Before Christ(B.C.). 我们现在的阳历,例如今年是2022年,这其实就是公元2022年。对应的公元元年,对中国来说,大致在西汉年间。 所以 0 A.D. 其实的意思就是一个不存在的元年。 “0 A.D.” is a time period that never actually existed: 3. 0 A.D. 是什么类型的游戏? 如果你玩过红警,0 A.D.的有点像红警。 官方的介绍0AD是一个基于历史的实时策略游戏。 如果你玩过部落冲突,0AD其实也有点类似部落冲突。 4. 0 A.D. 有什么特点? 跨平台, windows, mac, linux都可以玩 免费 历史悠久,项目开始于2001 还处于开发阶段 可玩性还不错 基于真实历史,所以玩游戏的时候,也是能够学点历史的。里面有是14个文明。 5. 有哪些玩法 单机和AI对战 在线组队玩 6. FAQ 如何设置中文界面 默认的游戏不带中文语言的,实际上它是有中文的语言包的,可以参考 参考 https://baike.baidu.com/item/%E5%85%AC%E5%85%83/17855

2022-07-12 19:32:28 · 1 min · Eddie Wang

请问nginx 能否根据 frag 片段 进行路径转发?

HTTP URL的格式复习 ://:@:/;?#frag scheme 协议, 常见的有http, https, file, ftp等 : 用户名和密码 host 主机或者IP port 端口号 path 路径 params 参数 用的比较少 query 查询参数 frag 片段,资源的一部分,浏览器不会把这部分发给服务端 关于frag片段 浏览器加载一个网页,网页可能有很多章节的内容,frag片段可以告诉浏览器,应该将某个特定的点显示在浏览器中。 例如 https://github.com/wangduanduan/jsplumb-chinese-tutorial/blob/master/api/anchors.js#L18 这里的#L8就是一个frag片段, 当浏览器打开这个页面的时,就会跳到对应的行 在网络面板,也可以看到,实际上浏览器发出的请求,也没有带有frag参数 Vue 在Vue中,默认的路由就是这种frag片段。 这种路由只对浏览器有效,并不会发送到服务端。 所以在一个单页应用中,服务端是无法根据URL知道用户访问的是什么页面的。 所以实际上nginx无法根据frag片段进行拦截。 nginx路径拦截 location [modifier] [URI] { ... ... } modifier = 完全匹配 ^~ 正则匹配,并且必须是以特定的URL开头 ~ 正则匹配,且大小写敏感 ~* 正则匹配,大小写不敏感 nginx路径匹配规则 首先使完全匹配,一旦匹配,则匹配结束,进行后续数据处理 完全匹配无法找到,则进行最长URL匹配,类似 ^~ 最长匹配找不到,则按照 ~或者~*的方式匹配 最后按照 / 的默认匹配

2022-07-09 17:13:13 · 1 min · Eddie Wang