替换一个或多个文件中出现的字符串:
依据某种模式批量重命名多个文件,使用rename。macos 命令行对于复杂的重命名规则,repren或许有帮助。
使用shuf从一个文件中随机选取多行。
了解sort的参数。处理数字方面,使用-n或者-h来处理可读性数字(例如du -h的输出)。明白键的工作原理(-t和-k)。例如,注意到你需要-k1,1来仅按第一个域来排序,而-k1意味着按整行排序。稳定排序(sort -s)在某些情况下很有用。例如,以第二个域为主关键字,第一个域为次关键字进行排序,你可以使用sort -k1,1 | sort -s -k2,2。
如果你想在 Bash 命令行中写 tab 制表符,按下ctrl-v[Tab]或键入$'\t'(后者可能更好,因为你可以复制粘贴它)。macos 命令行
标准的源代码对比及合并工具是diff和patch。使用diffstat查看变更总览数据。注意到diff -r对整个文件夹有效。使用diff -r tree1 tree2 | diffstat查看变更总览数据。
同样对于二进制文件,使用strings(包括grep等等)允许你查找一些文本。
二进制文件对比(Delta 压缩),使用xdelta3。
使用iconv更改文本编码。而更高级的用法,可以使用uconv,它支持一些高级的 Unicode 功能。例如,这条命令将所有元音字母转为小写并移除了:
拆分文件,查看split(按大小拆分)和csplit(按模式拆分)。
使用zless,zmore,zcat和zgrep对压缩过的文件进行操作。
curl和curl -I可以便捷地被应用于 web 调试中,它们的好兄弟wget也可以,或者是更潮的httpie。
使用iostat、netstat、top(htop更佳)和dstat去获取硬盘、cpu 和网络的状态。熟练掌握这些工具可以使你快速的对系统的当前状态有一个大概的认识。
使用netstat和ss查看网络连接的细节。
若要对系统有一个深度的总体认识,使用glances。它在一个终端窗口中向你提供一些系统级的数据。这对于快速的检查各个子系统非常有帮助。
若要了解内存状态,运行并理解free和vmstat的输出。尤其注意“cached”的值,它指的是 Linux 内核用来作为文件缓存的内存大小,因此它与空闲内存无关。
Java 系统调试则是一件截然不同的事,一个可以用于 Oracle 的 JVM 或其他 JVM 上的调试的小技巧是你可以运行kill -3 <pid>同时一个完整的栈轨迹和堆概述(包括 GC 的细节)会被保存到标准输出/日志文件。JDK 中的jps,jstat,jstack,jmap很有用。SJK tools更高级.
使用mtr去跟踪路由,用于确定网络问题。
用ncdu来查看磁盘使用情况,它比常用的命令,如du -sh *,更节省时间。
查找正在使用带宽的套接字连接或进程,使用iftop或nethogs。
ab工具(捆绑于 Apache)可以简单粗暴地检查 web 服务器的性能。对于更复杂的负载测试,使用siege。
wireshark,tshark和ngrep可用于复杂的网络调试。
了解strace和ltrace。这俩工具在你的程序运行失败、挂起甚至崩溃,而你却不知道为什么或你想对性能有个总体的认识的时候是非常有用的。注意 profile 参数(-c)和附加到一个运行的进程参数 (-p)。
了解使用ldd来检查共享库。
了解如何运用gdb连接到一个运行着的进程并获取它的堆栈轨迹。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-51206-4.html
其实很发财
正解