linux开发必备的10大实用神器(程序员提高工作效率)
linux开发必备的10大实用神器(程序员提高工作效率)以下是仅限于 OS X 系统的技巧。对大厂架构设计,BAT等厂家面试题解读,编程语言理论或者互联网圈逸闻趣事这些感兴趣,欢迎关注笔者,没有错,干货文章都在这里。
熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。
目录- Linux系统实用命令
- OS X 系统实用命令
- 实用 Windows 命令行工具命令
本文是一份在工作时,包括了在Linux OS X Window系统,总结的一些冷门但特别实用的一些命令,希望可以帮助到大家。
这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。
欢迎关注笔者,优质文章都在这里等你。
总结如下:Linux系统- expr:计算表达式或正则匹配
- m4:简单的宏处理器
- yes:多次打印字符串
- cal:漂亮的日历
- env:执行一个命令(脚本文件中很有用)
- printenv:打印环境变量(调试时或在写脚本文件时很有用)
- look:查找以特定字符串开头的单词或行
- cut,paste 和 join:数据修改
- fmt:格式化文本段落
- pr:将文本格式化成页/列形式
- fold:包裹文本中的几行
- column:将文本格式化成多个对齐、定宽的列或表格
- expand 和 unexpand:制表符与空格之间转换
- nl:添加行号
- seq:打印数字
- bc:计算器
- factor:分解因数
- gpg:加密并签名文件
- toe:terminfo 入口列表
- nc:网络调试及数据传输
- socat:套接字代理,与 netcat 类似
- slurm:网络流量可视化
- dd:文件或设备间传输数据
- file:确定文件类型
- tree:以树的形式显示路径和文件,类似于递归的 ls
- stat:文件信息
- time:执行命令,并计算执行时间
- timeout:在指定时长范围内执行命令,并在规定时间结束后停止进程
- lockfile:使文件只能通过 rm -f 移除
- logrotate: 切换、压缩以及发送日志文件
- watch:重复运行同一个命令,展示结果并/或高亮有更改的部分
- when-changed:当检测到文件更改时执行指定命令。参阅 inotifywait 和 entr。
- tac:反向输出文件
- shuf:文件中随机选取几行
- comm:一行一行的比较排序过的文件
- strings:从二进制文件中抽取文本
- tr:转换字母
- iconv 或 uconv:文本编码转换
- split 和 csplit:分割文件
- sponge:在写入前读取所有输入,在读取文件后再向同一文件写入时比较有用,例如 grep -v something some-file | sponge some-file
- units:将一种计量单位转换为另一种等效的计量单位(参阅 /usr/share/units/definitions.units)
- apg:随机生成密码
- xz:高比例的文件压缩
- ldd:动态库信息
- nm:提取 obj 文件中的符号
- ab 或 wrk:web 服务器性能分析
- strace:调试系统调用
- mtr:更好的网络调试跟踪工具
- cssh:可视化的并发 shell
- rsync:通过 ssh 或本地文件系统同步文件和文件夹
- wireshark 和 tshark:抓包和网络调试工具
- ngrep:网络层的 grep
- host 和 dig:DNS 查找
- lsof:列出当前系统打开文件的工具以及查看端口信息
- dstat:系统状态查看
- glances:高层次的多子系统总览
- iostat:硬盘使用状态
- mpstat: CPU 使用状态
- vmstat: 内存使用状态
- htop:top 的加强版
- last:登入记录
- w:查看处于登录状态的用户
- id:用户/组 ID 信息
- sar:系统历史数据
- iftop 或 nethogs:套接字及进程的网络利用情况
- ss:套接字数据
- dmesg:引导及系统错误信息
- sysctl: 在内核运行时动态地查看和修改内核的运行参数
- hdparm:SATA/ATA 磁盘更改及性能分析
- lsblk:列出块设备信息:以树形展示你的磁盘以及磁盘分区信息
- lshw,lscpu,lspci,lsusb 和 dmidecode:查看硬件信息,包括 CPU、BIOS、RAID、显卡、USB设备等
- lsmod 和 modinfo:列出内核模块,并显示其细节
- fortune,ddate 和 sl:额,这主要取决于你是否认为蒸汽火车和莫名其妙的名人名言是否“有用”
以下是仅限于 OS X 系统的技巧。
- 用 brew (Homebrew)或者 port (MacPorts)进行包管理。这些可以用来在 OS X 系统上安装以上的大多数命令。
- 用 pbcopy 复制任何命令的输出到桌面应用,用 pbpaste 粘贴输入。
- 若要在 OS X 终端中将 Option 键视为 alt 键(例如在上面介绍的 alt-b、alt-f 等命令中用到),打开 偏好设置 -> 描述文件 -> 键盘 并勾选“使用 Option 键作为 Meta 键”。
- 用 open 或者 open -a /Applications/Whatever.app 使用桌面应用打开文件。
- Spotlight:用 mdfind 搜索文件,用 mdls 列出元数据(例如照片的 EXIF 信息)。
- 注意 OS X 系统是基于 BSD UNIX 的,许多命令(例如 ps,ls,tail,awk,sed)都和 Linux 中有微妙的不同( Linux 很大程度上受到了 System V-style Unix 和 GNU 工具影响)。你可以通过标题为 "BSD General Commands Manual" 的 man 页面发现这些不同。在有些情况下 GNU 版本的命令也可能被安装(例如 gawk 和 gsed 对应 GNU 中的 awk 和 sed )。如果要写跨平台的 Bash 脚本,避免使用这些命令(例如,考虑 Python 或者 perl )或者经过仔细的测试。
- 用 sw_vers 获取 OS X 的版本信息。
- 可以使用 wmic 在命令行环境下给大部分 Windows 系统管理任务编写脚本以及执行这些任务。
- Windows 实用的原生命令行网络工具包括 ping,ipconfig,tracert,和 netstat。
- 可以使用 Rundll32 命令来实现许多有用的 Windows 任务 。
您的转发 关注就是对笔者最大的支持,欢迎关注。
对大厂架构设计,BAT等厂家面试题解读,编程语言理论或者互联网圈逸闻趣事这些感兴趣,欢迎关注笔者,没有错,干货文章都在这里。