安装 7zip:
sudo apt install p7zip
安装 rar:
sudo apt install rar unrar
rar比较奇怪,压缩和解压是使用不同的包,这点和7zip是不一样的。
常按Win键,会弹出Unity所用的键盘快捷键。
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
PS:tar命令对于长选项和短选项的顺序有要求,例如,不覆盖已有文件的选项--skip-old-files
:
tar --skip-old-files -zxvf FileName.tar.gz #正确
tar -zxvf --skip-old-files FileName.tar.gz #错误
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
解压:tar jxvf FileName.tar.bz
解压:tar xvJf FileName.tar.xz
压缩:tar cvJf FileName.tar.xz DirName
解压:uncompress FileName.Z
压缩:compress FileName
解压:tar Zxvf FileName.tar.z
压缩:tar Zcvf FileName.tar.z DirName
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
解包:rpm2cpio FileName.rpm | cpio -div
解包:ar p FileName.deb data.Tar.gz | Tar zxf -
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName
sEx只是调用相关程序,本身并无压缩、解压功能,请注意!
sEx官网:
http://sourceforge.net/projects/sex
7-Zip是Igor Pavlov于1999年开发的压缩软件。
官网:
https://sparanoid.com/lab/7z/
它虽然支持多种压缩算法,但最重要的还是LZMA(Lempel-Ziv-Markov chain-Algorithm)算法。
该算法的SDK:
https://sparanoid.com/lab/7z/sdk.html
参考:
https://mp.weixin.qq.com/s/NB12KQOHjso9wH8Ju1ueSA
ZIP也能边下载边解压?流式解压技术揭秘!
主流的压缩格式(zip、7z等)不支持保留Unix风格的文件访问权限,一旦在Linux系统里解压,解压出来的文件可能会出现“拒绝访问”的现象,而tar支持保留文件的访问权限。
https://www.zhihu.com/question/335911358
为什么Linux要用tar.gz,很少用7Z或ZIP?
https://mp.weixin.qq.com/s/9kdeSj0RwUvlIi4oBEF_Wg
速度与压缩比如何兼得?压缩算法在构建部署中的优化
这三个工具是文本处理中用的比较多的工具,各有各的特色,且都支持正则表达式。
一般来说,行处理优先考虑使用sed和grep,列处理优先考虑使用awk。通常情况下,组合使用多个命令,其命令编写的难度小于只使用一个命令。比如sed和grep也可以进行列处理,但语法难度远超awk,反之亦然。
这里不打算列出各个命令的选项,而仅列出使用它们的一些示例:
这里假设我们有一文件名为ab。
awk '{print $1}' ab #显示第一列
参考:
https://mp.weixin.qq.com/s/-mWYn195TBSB1lDlncuYeA
常用命令之awk常用实例
https://mp.weixin.qq.com/s/IXHKtRKd7Zl8iT9zd2ONsg
活跃了40年的AWK现在怎么样了?
AWK,1977年诞生于贝尔实验室。其名称来自其作者的名字缩写:Alfred Aho,Peter Weinberger和Brian Kernighan。
sed '1d' ab #删除第一行
sed '$d' ab #删除最后一行
sed '1,2d' ab #删除第一行到第二行
sed '2,$d' ab #删除第二行到最后一行
sed -n '1p' ab #显示第一行
sed -n '$p' ab #显示最后一行
sed -n '1,2p' ab #显示第一行到第二行
sed -n '2,$p' ab #显示第二行到最后一行
sed -n '/ruby/p' ab #查询包括关键字ruby所在所有行
sed -n '/\$/p' ab #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义
sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替换ruby为bird
sed -n '/ruby/p' ab | sed 's/ruby//g' #删除ruby
sed -e 's/.$//' mydos.txt > myunix.txt #dos->unix
grep 'ruby' ab #查询包括关键字ruby所在所有行
grep -nri 'ruby' #n 显示行号,r 子目录搜索,i 忽略大小写
ip addr show br-lan | grep 'inet ' | awk '{print $2}' | sed 's/\/.*//g'
参考:
https://mp.weixin.qq.com/s/o1vuL3RrWz9tyUPguZeSWA
简单快捷的数据处理,数据科学需要注意的命令行
linux常用的调试工具:
vmstat、iostat、mpstat、netstat、sar、top:查看系统、程序信息等。
gprof、perf、perf top:定位到具体函数、调用等。
strace、ltrace:系统调用、函数调用、库函数调用等。
pstack、ptree、pmap:堆栈信息。
dmesg:系统log信息。
mallinfo:获得内存分配信息。
sudo systemctl status xrdp -n50
:打印xrdp服务的log,显示最新的50行。
linux-tools-perf:Android中的perf。
Simpleperf: Android上的Native CPU剖析分析工具。
Android Stuido CPU Profiler:Android Studio提供的CPU剖析工具,本质上就是基于Simpleperf和systrace进行剖析。
GPU Profiler: GPU剖析工具。
heapprofd:Android进程本地内存分析工具。
Perfetto:针对Linux/Android/Chrome平台和用户空间应用性能检测和跟踪工具。基于ftrace,atrace和heapprofd。
Profilo: Facebook开发Android性能剖析库,用于在线收集应用程序的性能跟踪数据。
打印文件/proc/{pid}/maps查看内存地址和文件的映射关系,可以得到函数在哪个文件里。
https://blog.csdn.net/anualday/article/details/51483993
流量测试三个工具(iperf/netperf/Flowgrind)
Linux上主要有perf、gprof和valgrind三个性能分析工具。
参考:
https://cloud.tencent.com/developer/article/1063652
Linux性能分析工具与图形化方法
https://mp.weixin.qq.com/s/HvADkICPYflS2VTuSB16rg
Linux入门必看:如何60秒内分析Linux性能
https://www.zhihu.com/question/63946754
C++怎么检测内存泄露,怎么定位内存泄露?
https://mp.weixin.qq.com/s/FMYimnxcAya6bhvdGD5LUw
惊魂48小时,阿里工程师如何紧急定位线上内存泄露?
https://blog.csdn.net/xiaowei_cqu/article/details/104238289
性能分析工具:开篇
Valgrind是一个用于构建动态分析工具的工具框架。
官网:
https://valgrind.org/
它包含了一系列的工具:
https://valgrind.org/info/tools.html
它还有一个叫做QCacheGrind(KCacheGrind)的图形化性能分析工具。
sudo apt install valgrind kcachegrind
参考:
https://zhuanlan.zhihu.com/p/111556601
valgrind排查内存泄露
https://developer.mantidproject.org/ProfilingWithValgrind.html
Profiling with Valgrind
上面提到的主要是黑盒测试工具。
白盒测试工具主要是Linux Test Project和Gcov。
官网:
http://linux-test-project.github.io/
代码:
https://github.com/linux-test-project/ltp
参考:
https://mp.weixin.qq.com/s/Od17bQhpd3FYE2GQd-kvaQ
iOS代码染色原理及技术实践(gcov,gcno,gcda)
https://www.sohu.com/a/329177032_120104204
一文详解C/C++代码覆盖率–gcov/lcov/gcovr
clang-format:可以格式化排版多种不同语言的代码。
clang-tidy:一个基于clang的静态代码分析框架。
KLEE:一款开源的自动软件测试工具,基于LLVM编译底层基础,能够自动生成测试样例检测软件缺陷。
官网:
http://klee.github.io/
参考:
https://blog.csdn.net/weixin_43721070/article/details/122638851
C++代码自动检测工具clang-format和clang-tidy
pahole可用来检查结构体中的内存漏洞,可作为内存优化的一个工具。
代码:
https://git.kernel.org/pub/scm/devel/pahole/pahole.git
DWARF第一版发布于1992年,主要是为UNIX下的调试器提供必要的调试信息。
https://zhuanlan.zhihu.com/p/419908664
DWARF, 调试信息存储格式
https://zhuanlan.zhihu.com/p/611579770
嵌入式C代码调试利器—backtrace
https://zhuanlan.zhihu.com/p/31630417
拒绝超大coredump-用backtrace和addr2line搞定异常函数栈
https://mp.weixin.qq.com/s/-hfI4GLkChRJQDqcLcvbGg
嵌入式C编程实现上下文的快速切换(cpost)
https://zhuanlan.zhihu.com/p/400200921
x86 Linux下实现10us误差的高精度延时
https://www.zhihu.com/question/496656138
为什么Windows文件设计成占用无法删除?
https://mp.weixin.qq.com/s/h4LwSRAsDgRqOq3mLt_SCw
浅谈mmap
https://mp.weixin.qq.com/s/djEPqxZSfMp13Uf_h6TSiA
认真分析mmap:是什么 为什么 怎么用
https://zhuanlan.zhihu.com/p/424240082
编译一个属于自己的最小Linux系统
https://www.zhihu.com/question/66902460
为什么Linux下要把创建进程分为fork()和exec()(一系列函数)两个函数来处理?
https://zhuanlan.zhihu.com/p/464204319
Linux网络子系统中DMA机制的实现
https://mp.weixin.qq.com/s/1JiXL1f3SSjsBojlJSNOpQ
Linux的启动流程
https://mp.weixin.qq.com/s/ZfprFQjVANuCE2N693gZBQ
用户空间和内核空间
https://mp.weixin.qq.com/s/P14VsWwSh9jiF-jBHSXXOw
申请内存时底层发生了什么?
https://mp.weixin.qq.com/s/OJHQZjxa6u8aA6jZyJnNPg
一文浅析内存管理机制
https://mp.weixin.qq.com/s/lAN0GKjkfkkWCurwRQb6DQ
如何排查句柄泄露问题
https://mp.weixin.qq.com/s/9UmzFxRdE4FFdrqEeBZtOQ
如何实现一个定时器?
https://mp.weixin.qq.com/s/zVi45pZka_kPpKIoNXNVBA
当初我要是这么学习“进程和线程”就好了
https://mp.weixin.qq.com/s/A8TnhOFLQOhEqphE760yvw
15个相见恨晚的Linux神器,你可能一个都没见过
https://mp.weixin.qq.com/s/ejGjsGA1ijPP–j3BLcEFA
Linux并发与同步
https://mp.weixin.qq.com/s/CAPU8bjJWobQs6JHHMasvQ
Linux服务端最大并发数是多少?
https://mp.weixin.qq.com/s/bPqnaMqhi_4p1mwjmvyoIw
多图详解10大高性能开发核心技术
https://mp.weixin.qq.com/s/ESLO1RH6Q8udwI13Z2Pz_w
详解linux io flush
https://mp.weixin.qq.com/s/LLlzPB2emr9Hqr7gql0B4Q
为什么Linux需要Swapping
https://mp.weixin.qq.com/s/fzLcAkYwKhj-9hgoVkTzaw
CPU飙高,系统性能问题如何排查?
https://www.zhihu.com/question/456916638
printf是怎么输出到控制台的呢?(app->libc->syscall->console)
您的打赏,是对我的鼓励