工具

Linux必备工具

Gdb
利用Yocto工程生成debug符号 实现目的 # 嵌入式设备在进行gdb调试时,由于存储容量限制,文件系统中一般不会包含debug版本的libc库,导致总是会提示找不到符号表,如下 (gdb) n Program received signal SIGABRT, Aborted. 0xb6c0fbe6 in ?? () (gdb) bt #0 0xb6c0fbe6 in ?? () #1 0xb6c1ebce in ?? () 如果程序需要依赖多个库,就需要单独去编译每一个依赖的库为debug版本,不太现实,可以利用yocto工程一次性解决,轻松实现目标,生成debug版本的安装包或者debug版本的文件系统。 利用Yocto工程生成debug符号 # 默认SDK包中并不包含debug版本的库和源码文件,为了让gdb找到符号表,需要重新编译SDK,开启debug相关选项,通过如下两步,可以获得一个debug安装包,安装之后,会在原有SDK安装目录下添加debug版本的库和源码文件,这样在执行GDB调试时,指定好相应的目录就能找到符号表了 1、修改conf/local.conf文件 # 新增如下: #debug时添加以下选项 EXTRA_IMAGE_FEATURES ?= "tools-debug ssh-server-openssh" #解决bitbake执行到打包时失败 RDEPENDS_packagegroup-core-standalone-sdk-target_remove = "libatomic-dev" 2、执行如下bitbake命令,生成带debug符号的SDK安装包 # MACHINE=am335x-evm bitbake -c populate_sdk tisdk-base-image 在~/tool/tisdk/build/arago-tmp-external-arm-glibc/deploy/sdk/目录下,会生成arago-2020.09-toolchain-2020.09.sh和arago-2020.09-toolchain-2020.09.sharago-2020.09-armv7a-linux-gnueabi-tisdk.sh两个安装包,如下 qq@ubuntu:~/tool/tisdk/build/arago-tmp-external-arm-glibc/deploy/sdk$ ls -lth total 1.2G -rwxr-xr-x 2 qq qq 646M Apr 2 02:36 arago-2020.09-armv7a-linux-gnueabi-tisdk.sh -rw-r--r-- 2 qq qq 7.
Git
Git常用配置 Github国内加速克隆及下载 # fastgit.org https://doc.fastgit.org/ gitclone.com https://gitclone.com/ gitee https://gitee.com/mirrors cnpmjs.org https://github.com.cnpmjs.org/ Github documentation contains a script that replaces the committer info for all commits in a branch (now irretrievable, this is the last snapshot). git代理 # git config --global https.proxy 'socks5://192.168.31.181:10808' git config --global http.proxy 'socks5://192.168.31.181:10808' 基本配置 # Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。 # 显示当前的Git配置 $ git config --list # 编辑Git配置文件 $ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.
Vim
配置 vim退出时不清除屏幕内容 # 1、编辑/etc/profile,然后在文件中添加:export TERM=linux,如下图所示: 2、然后执行source /etc/profile即可 vim设置colorSchema # mkdir -p ~/.vim/colors https://github.com/tomasr/molokai 设置蓝色 # eval `dircolors | sed -e 's/;34:/;36:/'` pi@raspberrypi:~ $ echo $LS_COLORS rs=0:di=01;36:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: vi ~/.bashrc # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi LS_COLORS='rs=0:di=01;36:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.
常用 Linux命令
find ./ -type d -name "Backup" -exec rm -rf {} \; sed -i "s/<cups\/cups.h>/\"cups\/cups.h\"/g" `grep "cups/cups.h" -rl .` find . -type f -size +100M -print0 | xargs -0 du -h | sort -nr cat *.txt | sort | uniq > test #导出svn版本差异 for i in $(svn diff --summarize -r 248:276 svn://192.168.10.200/rootfs/ | awk '{ print $2 }'); do p=$(echo $i | sed -e 's{svn://192.168.10.200/rootfs/{{'); mkdir -p $(dirname $p); svn export $i $p; done #获取awk .