概述
文章目录
- Code工作台(工欲善其事必先利其器)
- 1、通用工具
- 1.1、编辑器
- 1.2、Git 基本版本控制
- 1.3、Docker容器
- 2、Linux工作台
- 2.1、Linux命令
- 2.2、开发工具
- 1、Terminator终端
- 2、Tmux(终端复用器)
- 3、Vim配置
- 4、ssh服务器配置以及图形界面
- 5、代码对比
- 3、编译与调试
- Bazel
- gdb调试
- valgrind 内存泄漏与越界检查
Code工作台(工欲善其事必先利其器)
原文链接:https://github.com/qipengh/CodeTools
1、通用工具
编辑器、Docker、Git
- 解压压缩:
Bandizip
- 护眼:
Redshift
- pdf阅读器:福昕阅读器
- 思维导图:XMind
1.1、编辑器
VS Code(code神器
)、Sourcetrail(免费开源)、Source Insight(收费)
- Visual Studio Code(免费、开源、神器)
1、配置:|VSCode-开发效率翻倍|–|VSCode C++ 开发利器|–|awesome-vscode|
2、使用:VS Code 的常用快捷键
-
Sourcetrail(开源、免费、源码可视化)
开源免费的源码阅读神器 Sourcetrail -
Source Insight(收费)
1.2、Git 基本版本控制
参考:Git-版本控制
- git
# 获取文件更改的个数 增加行数 删除行数
git diff --stat
# 查看修改的代码行数,新增的文件以及删除的代码行数
git log --stat
# 查看暂存区的代码变化
git diff --cached
'将指定文件回退到指定版本'
# 1. git log 查看 commit_id
git log /path/file
# 2. 通过commit_id 将指定文件还原到你想要还原的版本
$ git checkout ${commit_id} /path/file
git commit log
# 查找commit的comment内容
git log --grep=comment注释的关键词
# 查找用户 commit
git log --author=用户名关键字
1.3、Docker容器
参考:Docker-容器
docker build -f xxx.dockerfile -t xxx.com/paddle/devel/x86_64/paddle:v0.8.0-mlu-x86_64-ubuntu18.04 .
2、Linux工作台
教程
- Linux工具快速教程Linux开发必看!!!
- Linux命令大全
- 写给工程师的 Ubuntu 20.04 最佳配置指南
- 文件传输:gFTP
- 三剑客vim+ctags+cscope、两板斧doxygen gdb:Linux 平台下阅读源码的工具
- ubuntu 设置字体,避免字体发虚
- ubuntu 安装微软雅黑和 Consolas 字体
- 安装gnome-tweak-tool in Ubuntu 20.10
2.1、Linux命令
- shell 与 bash
bash:如何遍历find返回的文件名
- C++文件解析
c++filt
:还原so中的函数名
nm
:显示指定File中符号信息
ldd
: 查看程序依赖库
strip
:
目标文件分析 说明
$readelf -all a.out 查看二进制文件信息
$nm myProgrammer 列出目标文件的符号清单
$size a.out 查看程序内存占用
- 文件解压缩
tar -zxvf xxx.tar.gz
解压
tar -zcvf xxx.tar.gz dirname
:将dirname和其下所有文件(夹)压缩
tar -tvf xxx.tar.gz
:查看压缩包的内容,而不解压-t
- 查看文件和文件夹大小
ls -l filename
:文件大小
du -sh
:文件夹大小(所有文件大小的总和)
du -h --max-depth=1 dir
du -h --max-depth=0 dir/*
df -h
:文件系统各分区大小
hdparm -Tt [/dev/sda]
:分区磁盘速度
man
:查询命令command的说明文档;例如:man ps
ps
:显示当前进程 (process) 的动态;例:ps -u -p xxx
- pip代理源 - 设置代理
# 国内的镜像加速
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host=pypi.tuna.tsinghua.edu.cn
# 解决“not a trusted or secure host”
$ cat ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
- 文件内容三剑客(grep、sed、awk)
# awk 按字段分隔符 取 文件关键字所在列
$awk -F '}} = ' '{print $2}' log
$awk -F '}} = ' '{print $1}' log
$awk -F '}} = ' '{print $2}' log > log1
$awk -F '[' '{print $1}' log1
$man sort
$awk -F '[' '{print $1}' log1 | sort -u > log2
# 统计单词次数并按次数排序(uniq: -c 输出重复次数 sort:-n 按照数值比较排序;-r 逆序输出)
sort filename | uniq -c| sort -nr
# 按照第二列排序
sort -k 2 filename
- virtualenv安装并指定python版本
# 安装virtualenv
pip install virtualenv
# 创建虚拟环境并指定PYTHON版本
virtualenv venv --python=python2.7
virtualenv venv --python=python3.7
# 退出虚拟环境
deactivate
# 删除虚拟环境
rm -r venv
2.2、开发工具
- Ubuntu 20.04通过docker安装微信和QQ
1、Terminator终端
- 配置
安装sudo apt-get install terminator
,配置文件~/.config/terminator/config
,具体配置参考terminator_config
bashrc配置参考bashrc
- 快捷键
- 终端:打开(
Ctrl+Shift+T
)、关闭当前(Ctrl+Shift+W
) - 当前窗口:切换显示(
Ctrl+Shift+X
)、退出(Ctrl+Shift+Q
) - 分割终端:水平(
Ctrl+Shift+O
)、垂直(Ctrl+Shift+E
) - 垂直分割的分割条:向左(
Ctrl+Shift+Left
)、向右(Ctrl+Shift+Right
) - 隐藏/显示滚动条(
Ctrl+Shift+S
)、clear屏幕(Ctrl+Shift+G
) - 搜索(
Ctrl+Shift+F
)、复制(Ctrl+Shift+C
)、粘贴(Ctrl+Shift+V
)
2、Tmux(终端复用器)
Tmux 使用教程
翻页翻屏
进入tmux翻屏模式(先按 ctrl +b,松开,然后再按 [ );上下翻页(PgUp、PgDn);退出(q)
始终将所有窗口的大小调整为最大可用大小(多显示器共用)
tmux set-window-option aggressive-resize on
, 再重连
3、Vim配置
-
简单配置参考:simple_vimrc
-
详细配置:解压
./configs/vim.tar.gz
-安装插件vim +PluginInstall +qall
参考
- vim插件管理器:Vundle
- Vundle:Vim Plugin
参考:Vim配置
4、ssh服务器配置以及图形界面
ssh -X yourname@ip
cat .ssh/config
Host remote_name
HostName ip
User user_name
ForwardX11 yes
ForwardX11Trusted yes
sshfs工具将nas挂载本机:
sudo apt install sshfs
sshfs -o Compression=no -o ServerAliveInterval=15 user@ip:path/user ~/mount/nas
5、代码对比
- Beyond Compare、Meld Diff Viewer
- Linux下9种优秀的代码比对工具推荐
- 代码对比工具,不止于beyond compare
Beyond Compare
- 官网安装包:bcompare-xxx-amd64.deb
- 安装:
sudo dpkg -i bcompare-xxx-amd64.deb
- 30天无限试用:
#!/bin/bash
config_of_bcompare=$(find ~ -iname bcompare -print -quit)
rm ${config_of_bcompare}/registry.dat
echo "Done!"
3、编译与调试
GCC、GDB、Valgrind
- GCC:GCC(警告.优化以及调试选项)
- 代码调试
命令 | 说明 |
---|---|
$gdb | 启动gdb |
gdb --args exec arg1 arg2 | 调试带有命令行参数的程序 |
> bt(breaktraces) | 显示所有的函数调用栈帧信息 |
>break main | 设置断点 |
>run | 运行调试程序 |
>continue | 继续执行到下一个断点处(或结束) |
>next | 单步调试 |
>print var1 | 打印某个变量值 |
>list | 显示当前调试处的源代码 |
>info b | 显示当前断点调试情况 |
Bazel
参考,其工作原理:加载与target有关的BUILD文件;分析inputs和dependencies,生成 action graph;执行graph,产出outputs。其中action graph: bazel依赖这个图来追踪文件变化,以及是否需要重新编译,并且还可以为用户提供代码之间的依赖关系图。
# bazel clean
bazel clean # 不会删除外部依赖
bazel clean --expunge # 会删除外部依赖
# bazel build
bazel build :<exe name> # 在BUILD所在的package目录下执行,编译指定的target
bazel build :all # 编译该package下的所有target
bazel build ... # 编译该package下的所有target
bazel build <//path/to/package>:<exe name> # 在workspace下的任意目录执行,“//”表示workspace所在目录
bazel build :<exe name> --compilation_mode=dbg # debug mode
bazel build :<exe name> -c dbg # debug mode
# bazel run
bazel run :<target name>
bazel run -- :<target name>
gdb调试
- 100个GDB技巧
- 掌握gdb调试从入门到进阶(一)
- 掌握gdb调试从入门到进阶(二)
- GDB调试教程:1小时玩转Linux gdb命令
- GDB 基础知识及断点
- gdb-python调试记录
- GDB调试之TUI界面
- GDB TUI - 原來 GDB 要這樣用
valgrind 内存泄漏与越界检查
- valgrind 检查 C++ 程序的内存泄漏
最后
以上就是端庄钢笔为你收集整理的【CS-Notes】工欲善其事必先利其器(Code、Git、Docker、Linux)Code工作台(工欲善其事必先利其器)1、通用工具2、Linux工作台3、编译与调试的全部内容,希望文章能够帮你解决【CS-Notes】工欲善其事必先利其器(Code、Git、Docker、Linux)Code工作台(工欲善其事必先利其器)1、通用工具2、Linux工作台3、编译与调试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复