软件相关的小问题记录
0.此博客主要来记录在开发过程中, 遇到的一些小问题(new or surprise to me).
Keep a record of information that was new or surprising to me and some troubleshouting.
1.Ubuntu解压zip文档时出现乱码
1.1. 我们可以通过查看/usr/share/i18n/SUPPORTED
此文件中支持的中文字符集情况, 我电脑情况如下:
zh_CN.UTF-8 UTF-8
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN GB2312
1.2.方法: 可以通过unzip指定字符集
来消除乱码, 命令如下:
unzip -O GBK <your.zip file>
2.搭建自己的学术网站
2.1. 知乎回答:见此处
里面回答了很多很多种构建学术网站的方法, 可以选择一个自己认为合适的方法进行搭建.
2.2. 上面知乎中讲到了好多种搭建学术网站的方法:
- Hugo(个人比较推荐: 可以使用Hugo的Academic主题来完成)
Hugo 初学(用Hugo快速建一个网站) - 利用github搭建academicpages(这个已经成功搭建, 很快就可以搭建成功), 对应的github地址为: academicpages.
- Hexo搭建自己的博客(可以使用各种主题)
hexo官网介绍点击此处.
2.3. 搭建完属于自己的学术网站或实验室网站以后, 可以通过github pages来完成发布.
2.3.1. Github Pages(一):一个最基础的个人网站.
3. Ubuntu 安装微信
3.0. 企鹅场居然没有为Linux开发一个微信, 所以就只能安装大神第三方做的微信程序.
3.1. 在此处下载微信安装包, 不建议下载源码然后编译安装;
3.2. 将解压后的微信文件移动到/opt/目录下(因为/opt/目录一般是为电脑安装额外的软件所提供的目录):
sudo mv electronic-wechat-linux-x64/ /opt/electronic-wechat-linux-x64
3.3. 启动微信后,在微信图标处点击锁定到启动器
, 下次就可以直接点击Dash微信图标就打开微信了.
Dash Home 的图标一般在两个位置 /usr/share/applications 或者 ~/.local/share/applications 只要在一个位置创建图标就可以了
3.4. 在Ubuntu中安装wine环境可以安装Windows中的软件.(完整版的微信可通过此方式安装, 可查看参考资料[1])
3.4.1. 关于wine的维基百科
4. home目录下的隐藏文件夹占用空间太大的问题
4.0. 主要是~/.cache和 ~/.kingsoft文件夹;
4.1. 我自己电脑home目录下的~/.cache居然有8.9个G! 这个该怎么合适地处理掉?(好像没有好的方法, 自己没有去清理他们, 要不然毁了配置和某些文件就得不偿失了)
4.1.1. 注意这个cache和内存中的cache不一样, home下的主要是存放一些软件的配置和缓存信息, 而内存中的cache是为了能在下一次打开同样软件时很快运行起来的机制.
4.2. ~/.kingsoft文件夹占用了2个G空间, 主要是backup这个备份文件夹占用了很多空间, 我把里面的东西直接全选删除了.
5. CMake
5.1. 各个版本CMake的官方下载地址点击此处.
5.2. 注意: CLion软件创立的开发环境, 没有对家目录中的.bashrc进行source, bashrc对bash终端有用, 对CLion没有用, 所以在编译的时候有可能找不到这个库找不到那个库(比如OpenCV就找不到, 而终端就可以找到).
/etc/bash.bashrc也有一个bashrc.
5.3. 常用编译器有:
Windows: MSVC
Linux: GCC, G++, clang
Mac: Clang
我们可以在CMakeLists.txt中指定要使用哪种编译器(方法有很多种).
5.4. 代码静态检测工具: Clang-Tidy, Cppcheck(都很不错)
5.5. 代码格式化工具:
5.5.1. clang-format
5.5.2. CLion最新版已经支持自定义命名约定了, 不错.
5.6. CLion各个版本的下载地址.
5.7. CLion官方主题说明地址.
5.8. g++ 和gcc分别都可以编译c, c++, 但一般情况下, 我们编译c语言使用gcc编译器, 编译c++使用g++编译器即可, 可以省去很多麻烦, 具体解释见此处.
6. Linux系统的结构
6.1. 先借用一张图来简单概括一下Linux系统的结构[3]:
6.2. Linux 命令大全-菜鸟教程
6.3. 查看进程名的ID:
ps -ef|grep <进程名>
查看该进程ID的占用资源情况:
top -p <进程ID>
6.4. NVIDIA JETSON Nano切换功耗模式方法见此处.
6.5. NANO与TX2主频对比见此处.
6.6. shell脚本中echo显示内容带颜色.
7. 小软件的安装
7.1. Mathpix的安装(第一次安装的时候突然就退出了, 我再次运行同样的指令就安装成功了):
sudo snap install mathpix-snipping-tool
7.2. jetson nano安装jtop.
sudo pip3 install jetson-stats
7.3. 录屏软件kazam的安装
sudo apt-get install kazam
7.4. 终端复用tmux软件的安装
sudo apt-get install tmux
7.5. Ubuntu版的CAJViewer:
下载地址见此处.
注意:使用的时候需要将下载到的.appimage文件改成可执行程序.
(右键-属性-权限-允许作为程序执行文件)
8. 系统内核问题导致开不了机
8.0. 在Ubuntu系统上格式化了一个SD卡后, 重启电脑发现进不了Ubuntu系统了(Windows正常), 经过一下午时间的摸索, 将问题锁定在了内核损坏
上, 所以就想了几个办法来解决; (内核文件initrd.img-4.15.0-122-generic
很小, 正常是67.5M, 而此时却只有10多M, 所以怀疑内核已经被损坏了, 所以就换成了启动initrd.img-4.15.0-120-generic
内核)
问题:
- ALERT! UUID=xxxxxxxxx does not exist. Dropping to a shell!, 网上博客的处理方式见此处:换了另一台电脑相同的内核.
- couldn’t get size 0x8000000000e.
8.1. 修复Ubuntu系统内核崩溃错误.(还没有试这种方法)
8.2. 在Ubuntu上使用恢复模式及Recovery Mode各选项的使用方法.
8.3. 我的解决方法:
将/boot/grub/grub.cfg文件中的内容直接修改成了我要启动的内核了, 这样不需要update-grub
;
8.3.1. 比较优雅的方法:
- Ubuntu通过/etc/default/grub文件来优雅地切换内核, 方法见此处;
- 或者知乎这个方法更优雅一些: 使用
grub-set-default
命令).
8.3.2. 我的疑惑: 在什么情况下会触发系统在boot下生成initrd.img-4.15.0-xxx-generic以及vmlinuz-4.15.0-xxx-generic文件呢? 内核的主要版本号倒是没有变, 而xxx
这个会递增.
8.4. 查看内核版本命令:
uname -a 或者 uname -r
8.5.通过ls来查看Ubuntu下的内存映像:
ls /boot/
8.6.原来/boot/grub/grub.cfg文件就是定义了开机时的grub引导界面, 在启动菜单上按e
进入命令行以后, 就是此文件里的一段内容, 也就是首选项0的内容(以menuentry开头的启动选项, 没有缩进).
8.7. 通过lsb_release -a
来查看系统版本, 我电脑输出系统版本信息如下:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
9. ssh相关问题
9.1. 服务器端的电脑IP地址发生改变后, ssh再次连接会连接不上, 这时需要我们:
ssh-keygen -R <new IP>
9.2. Jetson Nano板子的ssh服务是默认开启的.
9.3. 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server。
9.4. 注意, ssh连接的时候要使用用户名
, 而不是设备名称
;
即打开终端以后, 绿色字符串 lyf@lyf-Legion-Y7000-2019-PG0 @符号前面表示用户名, 后面表示设备名称.
10. ROS主从机配置
10.1. 主机和从机连接到一个路由器下
10.2. 主机bashrc中追加:
export ROS_MASTER_URI=http://192.168.43.166:11311
export ROS_HOSTNAME=192.168.43.166
10.3. 从机bashrc中追加:
export ROS_MASTER_URI=http://192.168.43.166:11311 # 主机IP
export ROS_HOSTNAME=192.168.43.170 # 从机IP
11. catkin
11.1. 安装python-catkin-tools
, 可以使用catkin build/clean
注意使用
catkin clean
之前需要catkin init
12. vim
12.1. vim显示行号
在家目录中建立文件(家目录创建的文件属于vim的个人配置): ~/.vimrc
然后输入:set nu
13. 模板编程
13.1. 模板编程主要是编译器在发挥作用。
14. 编译期
14.1. 以后输出log日志的时候,最好通过#define Debug
的方式来控制log信息的输出,这样就可以在编译期中打开log输出的开关,而不必在运行期进行判断再决定是否输出log日志。
#define DEBUG#ifdef DEBUG
#define LOG(m) \
{\
printf(m);
\ }\
#else
#define LOG(m)
#endif
15. ROS中的tf
可以通过如下几个命令进行查看:
15.1. rosrun rqt_tf_tree rqt_tf_tree
15.2. rosrun tf tf_echo body camera
(打印出camera坐标系到body坐标系的变换矩阵: TbcT_{bc}Tbc)
注意: 打印出的四元数为: [x, y, z, w]
16. VScode 在打开新文件覆盖上一个窗口的问题
16.1. 点击文件名是预览模式
, 会覆盖上一个窗口, 如果直接双击
的话就会打开新的窗口而不覆盖.
16.2. 或者直接关闭预览模式, 方法见此处.
17. 代码规范
17.1. 安装clang-format工具:
sudo apt-get install clang-format
17.2. 代码风格指南,这里参考的是谷歌开源代码指南;
18. 数据总线
18.1. 我们平常说的64位, 32位应该是针对于数据总线而言的, 而不是地址总线, 因为电脑一般会标明最大内存为64G等参数, 说明地址总线并没有那么多, 不然我们的内存条可以是2^64
这么大字节的空间, 显然不现实.
19. 引用
20. operator的两种用法
C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。点击此处进行具体查看.
21.WPS开启多个窗口而不是新标签页
方法: WPS文字(也就是左上角)-选项-视图-勾选在任务栏中显示所有窗口
22. 一直不明白的rosdep妙用
其实他这个就是在安装该package需要的依赖包,比如rosserial等,如果依赖多的话需要输入很多次的apt-get install ros-<xxx>-xxx
,而使用rosdep
一句话就可以了,更加的方便快捷。
具体讲解见此处:ROS 之 rosdep 妙用:一键解决package依赖包问题
100. 疑惑
9.1. xorg compiz unity这几个之间的关系是什么呀?
10000. 参考资料
[1]. [wine5.0] ubuntu完美安装运行微信
[2]. .bashrc not sourced on Intellij IDEA’s terminal
[3]. Linux之shell以及bash、dash的详解
[4]. gcc和g++是什么,有什么区别?
软件相关的小问题记录相关推荐
- 【软件相关】Proteus仿真STM32记录
文章目录 0 前期教程 1 前言 2 先说说建议的流程 3 需要注意的事项 3.1 供电网配置不要忘了 3.2 ADC模块的使用 3.3 元器件查询手册 4 一些小技巧 4.1 快速添加标号 4.2 ...
- 对于linux socket与epoll配合相关的一些心得记录
对于linux socket与epoll配合相关的一些心得记录 没有多少高深的东西,全当记录,虽然简单,但是没有做过测试还是挺容易让人糊涂的 int nRecvBuf=32*1024;//设置为32K ...
- 360如何查看计算机配置文件,在电脑360安全卫士软件上如何查看拦截记录
在电脑360安全卫士软件上如何查看拦截记录 腾讯视频/爱奇艺/优酷/外卖 充值4折起 小伙伴在使用电脑时肯定会遇到一些容易解决或者很麻烦问题,那么这是后我们可以通过查看拦截记录,那么如何在在电脑360 ...
- Deepin——使用小知识记录
使用小知识记录 一.命令使用 1.deepin-xxxx命令 2.编辑命令edit系列 二.系统设置 1.开机延时设置 2.系统切换 3.时尚模式和高效模式 4.普通模式和特效模式 5.启动器(菜单栏 ...
- 视频消重软件百度云 小视频修改md5
视频消重软件百度云 小视频修改md5 微网剧每集内的场景数量.镜头切换频率非常重要,标准将在后续的文章中深度分析. 在短视 ...
- 微信小程序记录用户行为浏览记录和停留时间以及小程序全局分享
微信小程序记录用户行为浏览记录和停留时间以及小程序全局分享 项目需求 1.后台统计一个用户在我们小程序的每个页面的停留时间 2,前台用户可以在个人中心看到自己的分享记录以及多少人查看 需求分析 需求一 ...
- 五.软件相关(各种各样的手机和电脑软件, 急速提升你使用手机和电脑的效率, 大大方便你的生活)
本文是众多使用技巧中其中的一篇, 全部使用技巧点击链接查看, , 或直接查看本专栏其他文章, 保证你收获满满 我主页中的思维导图中内容大多从我的笔记中整理而来,相应技巧可在笔记中查找原题, 有兴趣的可 ...
- 工具软件中的一些操作记录
工具软件中的一些操作记录 0. 目的: A. Visio A01.Visio图跨文件复制保持原样 A02.带有公式的visio 插入到word后模糊变形,如何保持原样? B. Windows系统 B0 ...
- JavaScript 本地对象和内置对象,2018哪个软件可以查车辆出险记录
2018哪个软件可以查车辆出险记录,具体是如何解读车架号知道什么字母代表出厂日期是哪年的呢?我们下面文章就带大家了解下,让你通过车架号就能掌握是否是2019款的车了. 使用车架号可以查询到车辆的基本信 ...
最新文章
- 车道线检测--Towards End-to-End Lane Detection: an Instance Segmentation Approach
- TSNE 有代码实现有附3D 2D效果图
- SQL Server自带备份整个数据库脚本工具
- 织梦html不能生成,内容预览及生成HTML
- 中国新十大军工企业名单及简称 十大军工集团 原十大军工集团
- node开启子线程_多进程 amp; Node.js web 实现
- Spring事务CallbackPreferringPlatformTransactionManager
- Vue应用框架整合与实战--Vue技术生态圈篇
- 怎么抽象mysql数据库_一个用于mysql的数据库抽象层函数库
- 常见linux服务器系统异常问题
- 中英文对照 —— 饮食与美食
- Hive with as语法
- 线性代数及其应用第一章总结
- Java学习之多线程
- 如何设计一个小而美的秒杀系统(抢红包)?
- centos8安装中文版man帮助手册
- 园区网的网关部署在接入层还是汇聚层 面试官与求职者之间谈话
- 浏览器交互导出excel
- ORA-03113 错误分析与解决
- 网站使用手机相机_手机如何修改证件照片大小和分辨率