Linux命令行下的常用指令笔记
on 技术笔记
1. bash变量操作
export PATH=${PATH#/some/path/*:}一个#号表示从最前面开始删除符合规则的最短的一个export PATH=${PATH##/*:}两个#号表示从最前面开始删除符合规则的最长的那个export PATH=${PATH%/some/path/*:}一个%号表示从最后面开始删除符合规则的最短的一个export PATH=${PATH%%/*:}两个%号表示从最后面开始删除符合规则的最长的那个${myvar/old/new}替换第一个old为new${myvar//old/new}替换所有old为new
测试变量是否有内容并替换
newvar=${oldvar-root}如果oldvar不存在则返回root,否则返回oldvarnewvar=${oldvar:-root}如果oldvar不存在或者为空字串则返回root,否则返回oldvar
以上内容可参考鸟哥的linux私房菜之第十章、认识与学习Bash。
2. 系统查看相关操作
- 显示发行版本的所有信息:
lsb_release -a;如果只需要显示发行版本号,可以使用lsb_release -sr;如果只需要显示发行代号,可以使用lsb_release -sc;以此类推… - 服务运行状态:
systemctl status some_service,显示some_service的运行状态 echo $?可以查看上一个程序结束后的返回值,详见referencenvidia-smi查看显卡驱动有没有正常安装,nvcc -V查看cuda的信息
3. 编程相关指令
c++filt可以用于解析c++编译之后的函数名原型,详见reference。
例如:c++filt _Z3fooi会返回foo(int)。- valgrind可以用于调试内存问题
- 在x86机器上查看arm版本的.so依赖:
readelf -d libdd_asr.so | grep NEEDED
4. 编码相关操作
dos2unix指令与unix2dos指令可以用来在DOS格式和Unix格式之间转换编码docker exec -e LANG=C.UTF-8 -it [container] bash使容器支持中文UTF-8