蘑菇房的博客

Debian 安装最新版本CMake

debian 10自带的版本是3.13.4,一般情况下够用了。今天不知道啥问题,发现无法正常编译,ZLIB 包找不到。

网上转了一圈,没找到方法。debian使用的ZLIB包 zlib1g zlib1g-dev 都安装过

sudo apt install zlib1g
sudo apt install zlib1g-dev

看到有个帖子用了3.16版本能通过编译,赶脚升级CMake版本。

一、测试ZLib的CMake信息

主要问题是c代码会出现这个问题,c++版本不会有这个问题。

CMakeLists.txt 的测试内容

cmake_minimum_required(VERSION 3.5)
project(test C)

find_package(ZLIB REQUIRED)

获取网络下所有分配的IP地址

家里增加网络设备时,经常要找设备的IP,以便管理新的设备。如在网络中加树莓派Raspberry Pi之类的操作。要连接显示设备比较麻烦,可以直接用ssh进行连接操作。

windows 命令 arp

windows下自带命令 arp, 不需要额外工具软件去查找设备。

Mariadb中文字符集问题处理

默认情况下Mariadb的中文无法正常显示,需要设置默认字符集才能正常显示中文。

注: 修改的实际目的就是,Client和Server端的字符集保持一致

1.全局设置方法

  1. 编辑配置文件,增加默认参数 vi /etc/mysql/my.cnf
  2. 重启 systemctl restart mariadb

my.cnf 中增加下面一段 UTF8编码的默认配置。

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

[mysql]
default-character-set=utf8

重启MariaDB即可

systemctl restart mariadb

linux sudo命令权限分配

新装系统是sudo命令没有需要自己安装,安装完成后当前普通账号是没有sudo命令权限的,需要设置。

test@testsvr:~/testsvr$ sudo apt update
[sudo] password for test: 
test is not in the sudoers file.  This incident will be reported.

设置方法

  1. 切换到root用户 su
  2. 取消sudores文件的只读状态 chmod u+w /etc/sudoers
  3. 编辑sudores分配用户test权限,保存退出 vi /etc/sudoers
  4. 撤销sudores文件的修改权限 chmod u-w /etc/sudoers
  5. 切回当前账号 su test

在sudores增加权限
找到这行 root ALL = (ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)

# User privilege specification
root    ALL=(ALL:ALL) ALL
test    ALL=(ALL:ALL) ALL

注: 这是测试机可简单权限处理。如果是正式的,那就需要考虑授权范围。

命令列表

test@testsvr:~/testsvr$ su
Password: 
root@testsvr:/home/test/testsvr# chmod u+w /etc/sudoers
root@testsvr:/home/test/testsvr# vim /etc/sudoers
root@testsvr:/home/test/testsvr# chmod u-w /etc/sudoers
root@testsvr:/home/test/testsvr# su test
test@testsvr:~/testsvr$

END (MoGuF)

linux 开启ll命令

习惯查看文件时使用列表方式ll命令就非常方便,默认装好系统后是没有开启的。

打开方法

  1. 编辑当前用户的 .bashrc 文件 vi .bashrc
  2. 删除 ll 命令前面的注册,开启 ls -l的命令别名
  3. 保存退出 :x
  4. 执行命令生效 source .bashrc

bat批处理命令使用

开发中经常需要自动处理一下事务,可以直接使用系统自带的Bat批处理命令来解决此类问题。windows中直接可以使用bat,Mac鸡可以直接用Shell,不用部署系统自带非常方便。当然如果想要处理比较复杂的事务,又要和平台无关Python是不错的选择。

Q: 为啥不用Python?
A: 够用方便就好。 Python首先需要系统有安装环境,一些机子上(其他同事)可能没安装。要部署比较麻烦。bat虽然弱,但够用有些简易处理是不二之选。

树莓派Octoprint章鱼实现WiFi无线3D打印

前段时间自己搭建了个3D打印机,折腾了一段时间。发现一个重要问题打印东西是复制文件到打印机非常不方便,每次复制文件插拔USB,要么连个很长的USB线到打印机。麻烦~

所以就想到树莓派。辗转到闲鱼上找了块Raspberry Pi 3B的板子价格合理,装个OctoPrint管理日常打印工作。

打印机环境:

  1. SKR 1.3 公版
  2. Raspberry Pi 3B

1.章鱼哥 OctoPrint

章鱼哥用Python写的Github上有完整的代码库。开源软件功能非常丰富,我只用了web打印管理功能。后续再继续挖掘。

  • web管理界面
  • 远程操控
  • 摄像头实时监控
  • 视频录制、延时摄影
  • 在线切片
  • 图形化的温度曲线显示
  • 手机监控操作
  • 免SD卡和U盘
  • 通过插件和USB/GPIO接口实现更多功能

Github Clone龟速问题处理

经常需要在Github上拉代码,这速度实在是慢,慢~~ 慢~~~

常规处理方法

  1. 使用国内的Git网站Clone
  2. 使用工具提供的打包下载
  3. 使用代理

1和2的方法对那些没有关联库引用还是非常方便快捷,如果下的库有关联库就是个大麻烦。

Git代理设置方法

如你用的Socket代理是 127.0.0.1:10808

全局代理:

git config --global http.proxy 127.0.0.1:10808

局部代理:,在github clone 仓库内执行

git config --local http.proxy 127.0.0.1:10808

取消代理:

git config --global --unset http.proxy
git config --local --unset http.proxy

END蘑菇房

Win10右键增加Cmd命令菜单

Win10按住Shift默认有PowerShell,取代原来Cmd的命令。如果经常要敲些命令,而又会出现PowerShell命令不兼容问题。比较头痛,所以吗干脆加个Cmd命令菜单。

  1. 新建 cmd.reg
  2. 添加下面命令
  3. 双击执行cmd.reg即可

注册表代码

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_here]
@="cmd"
"Icon"="cmd.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_here\command]
 @="\"C:\\Windows\\System32\\cmd.exe\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\cmdPrompt]
@="cmd"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\cmdPrompt\command]
@="\"C:\\Windows\\System32\\cmd.exe\" \"cd %1\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd_here]
@="cmd"
"Icon"="cmd.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd_here\command]
@="\"C:\\Windows\\System32\\cmd.exe\""

Sublime Text 里批量转换大小写

经常要处理一些基础数据,会用到批量设置首字大写的问题。

常见的情况如:

  • 把 HTML 里所有的标签都统一改成小写
  • 把 CSS 里所有的颜色值都统一改成大写
  • 把英文中所有句首字母大写

Sublime Text 的正则表达式查找替换,就可以实现批量转换大小写的功能。

正则的查询方式相同,在替换时在转换内容前加上 \U 和 \L,后加 \E 结束转换,即可转换整段内容为大写或小写;

在要转换的内容前加上 \u 和 \l,即可转换内容中的第一个字母为大写或小写。

转换前缀:
\U --- 转换所有字符为大写
\L --- 转换所有字符为小写
\u --- 首字大写 \l --- 首字小写
\E --- 大小写转换结束表示,有多个正则转换变量时需要需要