IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:命令行

共 58 篇相关文章

IT 累计浏览 41

使用 grep 查找关键字并显示上下文行

在日志排查场景中,grep 内建的上下文显示功能能有效替代手动使用 sed 等命令提取行范围的繁琐操作。通过 `-C`(两侧上下文)、`-B`(之前上下文)和 `-A`(之后上下文)这三个核心参数,可以灵活控制输出关键字所在行前后指定的行数。结合 `-n` 显示行号、`--color` 高亮匹配、`-i` 忽略大小写以及 `-E` 扩展正则等常用选项,能显著提升定位与分析问题的效率。文章进一步建议将常用命令组合封装为 Shell 函数,并提及了通过 `less -R` 或 `fzf` 进行结果二次筛选的方法,以优化大规模日志下的交互排查体验。

IT 累计浏览 59

Android Perfetto 系列 4:使用命令行在本地打开超大 Trace

针对Android性能分析中遇到的超过2GB的大型Perfetto Trace文件无法在网页端直接打开的问题,本文介绍了使用官方提供的trace_processor_shell命令行工具进行本地解析的解决方案。由于浏览器存在内存限制,超大Trace文件会导致在线分析工具失效。trace_processor_shell是Perfetto的核心组件之一,它基于Rust/C++实现高性能解析引擎,能够绕过浏览器限制,在本地高效处理大文件。用户需从GitHub下载对应平台的工具包,然后通过命令行添加`--httpd`参数启动本地服务,之后再访问Perfetto UI界面,选择连接该本地服务进行分析。文章对比了命令行启动与直接使用网页UI两种方式的核心区别:命令行模式提供原生加速、支持高级SQL查询和状态保持,适合复杂的大文件分析;而网页UI模式则更便捷,支持分享等功能,但性能受限。此外,文章还提醒了Mac系统可能遇到的安全权限问题及解决方法。整体而言,该工具为深度性能分析提供了更强大的本地处理能力。

IT 累计浏览 4,854

iTerm2 (Mac Terminal) 清空当前屏幕内容

这篇讲的是 Mac 终端用户常遇到的一个“洁癖”小问题:执行 `clear` 命令后,屏幕看似干净,但向上滚动依然能看到历史输出,而且在搜索时,之前的内容其实也还在。 文章直接点明了 `clear` 命令的这两个局限性,并给出了一个更彻底的解决方案——使用 iTerm2 自带的快捷键 `Command + K`。这个操作能真正清空屏幕缓冲区,让历史记录在滚动和搜索时都彻底消失。 如果你经常在终端里工作,希望获得一个完全空白、不受旧内容干扰的工作界面,这个小技巧能立刻提升你的使用体验。

IT 累计浏览 1,668

Mac下处理PC以^M结尾的文本

这篇文章解决的是在 Mac 系统下处理来自 Windows 的文本文件时,行尾出现多余 `^M` 字符(回车符)的常见问题。作者首先清晰地对比了不同系统的行末符差异:Unix/Linux 使用换行符 `\n`,老版本 Mac OS 使用回车符 `\r`,而 Windows 则使用回车换行组合符 `\r\n`。这种不匹配正是导致文本在 Mac 终端或编辑器中显示异常的根源。 文章接着提供了非常直接且实用的解决方案。作者引用 Stack Overflow 上的讨论,指出使用 `awk` 命令并指定记录分隔符 `RS` 为 `\r\n`,就能正确解析并处理这类文件,例如 `awk -v RS='\\r\\n' foo.log`。这个方法比手动替换字符更高效,也更精准。 对于开发者而言,理解这些底层差异并在处理跨平台数据时选择合适的工具,是提升效率、避免“踩坑”的关键。本文从现象到原理再到具体命令,提供了一次简明而完整的技术点拨。

IT 累计浏览 2,324

在命令行中步入黑客帝国

这篇文章从经典科幻电影《黑客帝国》上映二十周年的怀旧情怀出发,介绍了一个能让你在终端中体验“数字雨”视觉效果的命令行玩具——cmatrix。作者首先回顾了电影中那些令人印象深刻的代码流特效,随后将话题引向今天的主角。 cmatrix是一个开源工具,能够完美复刻电影中绿色字符如瀑布般滚落的场景。文章不仅说明了它在Fedora等系统上简单的安装方式(例如使用`dnf install cmatrix`),还直接展示了运行后的生动效果。对于喜爱折腾终端和怀旧的极客而言,这是一个既简单又有趣的视觉装饰。 作为“命令行玩具”系列的一篇,本文也延续了该系列的宗旨:在严肃的开发工作之余,探索终端里那些纯粹为了好玩和消遣的小项目。如果你正在寻找一种快速为单调的命令行界面注入一点电影感和趣味的方法,这个工具或许能给你带来片刻的灵感与放松。

IT 累计浏览 1,797

每个 Linux 新手都应该知道的 10 个命令

这篇讲的是,看似熟悉的互联网其实运行在 Linux 之上——从 Android 手机到超级计算机,90% 的网络服务器都依赖它。文章从这个事实出发,为那些想从桌面环境踏入命令行世界的用户,梳理了必须掌握的10个基础命令。 作者没有停留在概念层面,而是具体展示了每个命令的用途和细节。例如,`ls` 用来查看文件目录,`cd` 用于目录跳转(并解释了目录名含空格时需用反斜杠),`mv` 负责移动文件。文章还特别整理了一组能大幅提升效率的终端快捷键,比如用 `CTRL+K` 剪切、`ALT+B` 按词回退,并举例说明如何快速修正命令行中的拼写错误。 这些命令构成了与 Linux 系统交互的基础语法。掌握它们,你就能创建 (`mkdir`, `touch`)、查找 (`locate`)、移动 (`mv`) 乃至删除 (`rm`, `rmdir`) 文件与目录,并设置定时任务 (`at`)。作者将它们称为“简单却有用”,正是因为它们是理解更复杂系统操作的第一步。

IT 累计浏览 2,239

MAMP Pro 里面自带的 PHP 命令行执行特别慢的问题

这篇讲的是作者在 Mac 上使用 MAMP Pro 开发环境时遇到的一个颇为古怪的问题:升级系统后,命令行执行 PHP 命令会异常缓慢。作者尝试用 dtruss(Mac 下的系统调用追踪工具)进行调试,但未能定位到具体卡顿点。 经过查阅资料,发现问题根源在于某些 PHP 调用会触发不必要的 DNS 查询,导致执行延迟。最终的解决方案出人意料地简单:在 Mac 的 hosts 文件中,为自己的计算机名添加了本地解析条目。具体操作是,在 `127.0.0.1` 和 `::1`(IPv6)后添加形如 `YourComputer.local` 的主机名(主机名需在系统偏好设置的“共享”面板中查看)。设置完成后,PHP 命令行的执行速度恢复正常,可谓“药到病除”。 文章通过作者亲身实践的调试过程与最终验证的解决方案,为遇到类似 MAMP Pro 环境下命令行迟钝问题的开发者,提供了一个清晰且可直接操作的排查思路和修复方法。

IT 累计浏览 3,730

更改 Windows 10 命令行字体

这篇讲的是中文版 Windows 10 命令行一个让人头疼的细节:默认的“新宋体”字体,会把数字 1 和小写字母 l 显示得几乎一模一样,对于经常使用命令行的开发者来说,这简直是辨认灾难。 文章直接给出了两个具体的解决办法。最简单的是在命令行输入 `chcp 437`,将代码页从中文的 936 切换到英文的 437,之后就能在属性里选择像“Consolas”这样区分度更高的字体。不过作者也指出了后续问题——切换后中文会显示不全,因此需要再通过 `chcp 936` 切换回来。 如果希望尝试更多字体,文章还进阶介绍了注册表方法:在指定的注册表路径下新增字体键值,从而让系统命令行支持自选的等宽字体。作者最后小小吐槽了一下微软不直接提供字体选择功能,倒是说出了不少人的心声。

IT 累计浏览 3,130

git 查看文件修改记录

这篇讲的是,当接手了几年前的历史代码,想追查某行逻辑的修改记录时,`git log` 可能不够用。作者分享了自己从 `git log -p` 到熟练使用 `git blame`,最终定位到“问题代码”最初引入版本的全过程。 文章指出,单纯用 `git log` 只能看提交摘要。加上 `-p` 参数才能看到具体修改内容,但这对于长期演进的文件依然不够精准。真正的利器是 `git blame`,它能标注每一行最后的提交。通过 `-L n,m` 参数,可以只查看特定行范围的修改历史。 更关键的是,文章演示了一套“链式追溯”技巧:用 `git blame` 找到某行的最近一次修改提交,再进入该提交查看对应行号,然后以此提交号和行号为新起点,再次执行 `git blame`,如此循环往复,便能沿着代码的修改路径,一路回溯到最初被引入的那个提交。作者建议配合 Source Tree 等图形化工具查看具体的代码 Diff,让这个追溯过程更直观。

IT 累计浏览 2,686

linux 之 mv

这篇文章从一个真实场景切入:同事在使用 `mv` 命令将一个充满小文件的目录移动到另一个磁盘时,发现目标空间在增长,但源空间却迟迟没有释放。作者通过 `lsof` 发现,这是因为文件在移动过程中并未被立即删除,而是全部移完才清理。 那么,关键问题来了:如果移动如此大量的文件过程中发生了中断,已移走的文件会被删除吗?作者猜测可能是“删已移的,留未移的”,但这仅仅是猜测。 真正的答案藏在 `mv` 命令的源码里。作者查看了其核心实现,发现逻辑异常简洁:它只是简单地逐个复制文件,待全部成功后才执行删除操作。源码中并未对“中断”这种意外情况做任何特殊处理。这意味着,一旦中途出错或中断,结果将是:**复制完成了多少就算多少,但不会删除源目录中的任何文件**。 这个结论揭示了 `mv` 在处理大规模文件迁移时的一个重要风险点——它并非原子操作,且中断后状态不确定。对于需要进行此类操作的管理员来说,理解这一底层行为至关重要,它提醒我们务必使用更可靠的工具或脚本(如结合 `rsync` 与检查点)来处理关键数据迁移。

IT 累计浏览 2,638

Linux开关机命令详解

这篇技术文章系统梳理了Linux系统中五种常见的开关机命令(shutdown、reboot、poweroff、halt、init),非常适合对服务器日常运维感兴趣的开发者。作者没有停留在简单罗列命令,而是深入比较了它们的参数差异与执行逻辑。例如,shutdown命令功能最为全面,支持定时关机、警告用户以及取消操作;而halt和poweroff则更直接,适合立即断电的场景;init命令通过切换运行级别(0为关机,6为重启)来实现控制。 文章的一个亮点是特别强调了“关机准备”这一实践步骤。它提醒读者,Linux非正常关机可能导致文件系统损坏,因此在执行命令前应使用`who`、`ps`、`netstat`检查系统状态,用`sync`同步磁盘数据,并通过`shutdown -k`提前通知在线用户。这些细节对于保证生产环境稳定性至关重要。此外,文中还列举了通过SSH远程执行重启命令的用法,体现了实际运维中的常见需求。 整体而言,这不仅是一份命令参考手册,更传达了安全、规范的操作理念。对于需要频繁管理Linux服务器的工程师,文中关于参数选择和操作流程的对比分析,能帮助他们在不同场景下做出最合适的选择。

IT 累计浏览 3,662

FreeBSD常用的110条命令

这篇讲的是 FreeBSD 系统管理员和高级用户必备的“瑞士军刀”。作者将日常操作中最常用的 110 条命令进行了系统性的梳理,从系统状态监控、硬件与分区管理,到网络配置和软件安装,几乎覆盖了从开机到关机的所有关键操作环节。 文章并非零散的命令堆砌,而是构建了一个实用的排查与管理流程。例如,它详细说明了如何使用 `systat` 和 `netstat` 实时查看网络流量,如何通过 `vmstat` 和 `gstat` 深入分析内存与磁盘 I/O 状况。更重要的是,它直接切入了真实场景中令人头疼的问题——比如升级内核后无法启动、忘记 root 密码,或是系统断电后如何修复——并给出了一步步的解决方案,从进入单用户模式到使用 `fsck` 检查文件系统,操作路径清晰明确。 此外,文章也深入到软件生态的细节,不仅包含了 `ls`、`find` 等基础命令的进阶用法,还详细记录了从编译安装 Apache/PHP/MySQL 栈,到解决 XMMS 中文乱码、挂载 NTFS 分区等具体应用问题的过程。对于希望系统化掌握 FreeBSD 操作精髓的读者来说,这篇汇总无疑是一份可以直接对照执行的实用手册。

IT 累计浏览 3,916

Linux上删除空行的方法

处理文本数据时,清理空行是常见需求。这篇文章系统介绍了 Linux 下四种最常用的工具:grep、sed、awk 和 tr,它们都能轻松达成目标,但各有其巧妙的切入点。 作者没有止步于罗列命令,而是细致地指出了它们的关键差异。例如,`grep .` 和 `grep -v '^$'` 都能过滤空行;而 `sed '/^\\s*$/d'` 和 `awk NF` 则能更进一步,连只含空格、制表符等“空白内容”的行一并删去。这个细节在处理格式不规整的日志或配置文件时非常有用。 文章还特别提到了一个挺有意思的细节:在处理海量数据时,`grep .` 这种写法的执行效率通常比较高。这从侧面提醒我们,选择工具不仅要考虑功能是否满足,性能表现也是重要的考量因素。整体来看,文章通过具体的命令示例和对比,为读者提供了一个清晰实用的命令行工具选用指南。

IT 累计浏览 4,497

查询Linux系统最后重启时间的三个方法

这篇讲的是如何在Linux系统中快速查明最后一次重启时间。作者没有停留在单纯介绍命令,而是梳理了三种不同思路的方法,并对比了它们的直接程度和适用场景。 最直接的是`who -b`,一条命令就能清晰看到系统启动的日期和时间。而`last reboot`则提供了更丰富的历史视角,它通过“reboot”这个伪用户的登录记录,不仅能看到最近一次重启,还能回溯过去多次的启动历史,方便进行时间线分析。 `uptime`虽然不直接显示启动时间点,但巧妙地利用了“当前时间”和“已运行时长”这两个信息。通过简单相减,我们就能推算出启动时刻。这更像是一个实用的逆向推算技巧。 文章的价值在于,它不仅仅给了你三个“答案”,更是呈现了三种不同的技术思路:直接查询、历史追溯与间接推算。无论是运维人员想快速获取信息,还是开发者需要理解系统行为,都能从中找到适合当下场景的解法。掌握这些基本命令,能帮你更高效地与系统“对话”,摸清它的运行状态。

IT 累计浏览 1,863

mac安装svn

这篇文章分享了在 Mac 上安装和配置 Subversion 时典型的“踩坑”经历与最终的最优解。作者最初发现系统自带的 SVN 1.6 版本过低,于是手动升级到 1.8.8,却接连遇到了不支持 http 协议(需从 neon 切换到 serf 依赖)以及在 Zend Studio 中找不到 javahl 插件等问题。一番折腾后才发现,之前的手动升级操作其实多此一举。 文章最终推荐的“直路”方案,是利用 Homebrew 包管理器。通过几条关键命令——安装 Homebrew、更新、然后使用 `brew install --universal --java subversion`——就能一次性完成最新版 SVN 和 JavaHL 绑定的安装。随后,只需创建一个库文件的软链接,即可无缝集成到开发环境(如 Zend Studio)中。文中也附带了手动编译安装的完整步骤和常见报错的解决方法。 对于被 Mac 上 SVN 安装问题困扰的开发者来说,这篇文章提供了从错误路径到正确路径的完整对照。它清晰地指出,利用包管理工具自动化处理依赖和环境配置,是避免繁琐依赖调试(如 neon/serf、autoconf、xctoolchain)和版本冲突的高效途径。

IT 累计浏览 6,786

在命令行快速切换目录

这篇讲的是如何告别在命令行中反复输入冗长的 `cd` 路径。作者从日常开发中频繁切换到 `~/some/very/deep/often-used/directory` 这类深层目录的痛点出发,分享了一个通过修改 shell 配置文件来实现的“目录书签”方案。 核心思路是利用 `mark` 命令为当前目录创建一个别名,之后只需输入 `g 别名` 即可瞬间跳转。此外,`gs` 命令可以一览所有已标记的目录。实现上非常巧妙,作者在 `/etc/profile` 文件尾部添加了一组 shell 函数,包括 `g`(跳转)、`mark`(标记)、`unmark`(取消标记)和 `gs`(列表),并利用 `ln -s` 创建符号链接来持久化这些书签,最终还为 `g` 命令配置了命令行补全功能。 这个方案完全用原生 shell 脚本实现,无需安装额外工具,却能极大提升在复杂目录结构中导航的效率。对于经常在终端工作的开发者来说,花几分钟配置一下,就能永久解决路径切换的烦恼。

IT 累计浏览 7,059

Linux grep命令用法

这篇讲的是如何用好Linux下强大的文本搜索工具grep。它远不止`grep pattern file`这么简单,文章系统梳理了grep从基础到高级的28个参数,把每个参数的用法、场景和注意事项都讲透了。 比如,除了常见的`-i`忽略大小写,它还深入讲解了如何用`-A`、`-B`和`-C`参数灵活地展示匹配行的上下文,这在分析日志时非常实用。对于二进制文件这种容易出错的情况,文章也明确了`-a`和`-I`参数如何改变grep的行为。从递归搜索目录(`-r`)到只显示文件名(`-l`),再到精确匹配单词(`-w`),文章用大量实例(如`grep -A 1 panda file`)展示了这些参数如何组合,解决实际的代码审查、日志过滤等问题。 文章像一本详尽的参数手册,却比手册更易读,因为它把每个抽象参数都落到了具体命令和输出结果上。无论你是刚接触grep的新手,还是想挖掘更多高级用法的老手,都能从中找到立即可用的技巧。

IT 累计浏览 11,605

100个常用的linux命令

这篇整理了100个高频Linux命令的实用指南,覆盖了从基础文件操作到系统监控的方方面面。比如,用 `echo "aa" > test.txt` 清空并写入文件,`chmod go+w -R` 精准修改权限,`tar -tzvf` 快速查看压缩包内容,`du -sh` 一目了然获取目录总大小。文章对每个命令的说明都直击要点,例如解释 `bc -l` 能直接进行浮点运算,`uptime` 能快速查看系统负载均值,`lsof -i :22` 可以揪出占用特定端口的进程。 除了常规操作,还包含了不少实用技巧,比如通过 `ctrl+a` 和 `ctrl+e` 在命令行快速移动光标,使用 `rsync -P` 在同步文件时显示进度,以及用 `nmap -sP` 扫描网段内的活跃主机。这些命令片段犹如一张速查表,无论是新手入门还是老手备忘,都能从中找到即拿即用的解决方案。对于经常在终端下工作的开发者来说,掌握这些命令能显著提升日常操作效率。

IT 累计浏览 1,700

闲话命名

你是否曾因为一个命令参数的顺序而头疼?作者从一个关于`ln`命令参数记忆的简单提问切入,发现命令手册中“target”与“linkname”两个不同参数名的细微差异,竟能显著影响开发者的理解与使用体验。这引出了文章对“命名”这一看似微小却至关重要问题的探讨。 文章指出,命名绝非简单的贴标签,它深刻塑造着我们的认知,并直接影响协作与设计的成败。在软件开发中,如“weight”这样缺乏单位的具体变量名,会导致团队沟通成本激增;而历史上NASA火星探测器的失败,其根源正是单位命名不一致引发的混乱。在产品设计中,不当的本地化命名(如将推荐功能“radar”直译为“雷达”,或在邮件界面将“discard”译为可能引发歧义的“关闭”)也会违背“Don't make me think”的设计原则,为用户制造障碍。 作者进一步通过“骑马螺丝”这一生动形象的民间命名,说明好的命名需要结合语境与巧思,有时源自生活的直觉比喻(如“装电池式睡觉”)反而最贴切。文章最终强调,无论是在代码、产品还是日常生活中,重视并打磨命名,是提升效率、避免灾难、促进理解的必要功课。

IT 累计浏览 4,487

编程珠玑番外篇之番外篇-N 答 UNIX 痛恨者王垠

这篇讨论 UNIX 与 Windows 设计哲学之争的文章,从王垠批评 UNIX 的观点出发,深入剖析了两者的核心差异。作者指出,UNIX 的图形系统(如 X Window)与操作系统内核的松耦合,反而为针对不同设备(如移动平台)定制高效 GUI 提供了灵活性,而微软 NT 内核与 UI 的深度绑定,则导致其在跨平台时面临复杂的兼顾问题,迭代缓慢。 文章进一步探讨了工具设计的复杂性根源。以 TeX 为例,作者认为其“复杂”源于要解决排版领域本身的精确控制问题,而非设计失败。这揭示了一个重要观点:工具设计的简单或复杂,应取决于其要封装的“领域模型”的固有难度,而非简单地追求操作极简。将 Unix 工具比作“魔鬼棋”的类比,可能忽略了这一层因果关系。 最后,作者提出了一个有趣的角度:真正的 Unix 用户恰恰是其“痛恨者”,因为深刻理解其缺陷是高效使用它的前提。这种基于开放环境竞争、不断吸收优秀设计的演进模式,而非某种“宗教”,才是 Unix 家族最终胜出的关键。