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

标签:Shell

共 90 篇相关文章

IT 累计浏览 1,960

Linux 基本用户管理

这篇整理了Linux下最常用的用户管理命令,作者从实际使用角度出发,将这些命令做了简单梳理。文章没有深入展开每个参数的细节,而是侧重于帮助读者快速回顾那些容易忘记的核心操作——比如用户创建、权限分配和账户维护等日常任务。为了让重点更直观,作者特意用绿色标注了关键命令,方便快速定位。 这些命令都是系统管理中最基础的工具,掌握它们就能应对大多数用户权限管理的场景。文章更像是一份随查随用的速查笔记,适合对Linux已有一定了解、需要偶尔回顾命令用法的技术人员,也能为刚接触系统管理的新人提供一个清晰的入门指引。

IT 累计浏览 3,207

ubuntu 9.10下linuxqq经常挂掉的解决方案

这篇讲的是 Ubuntu 9.10 系统下官方 Linux QQ 频繁崩溃问题的解决方案。作者从实际使用痛点切入,直指那个“八百年不更新”的官方客户端在特定系统环境下,因依赖库缺失或版本冲突导致的闪退问题。文章的排查过程很具体,分析了崩溃日志或运行时依赖关系,最终定位到关键库(比如 GTK 相关组件)的兼容性问题。提供的解决方案具有实操性,可能涉及手动安装指定版本的依赖包、调整系统库路径,或是配置特定的启动环境变量,让这个老旧的客户端能在新系统上稳定运行。对于仍在维护旧环境或怀旧的用户,这篇内容提供了一个清晰的排错思路和可复现的修复步骤。

IT 累计浏览 5,383

使用系统命令实现文件的压缩与加密

这篇讲的是作者如何用系统命令解决一个实际的客户交付问题——需要每周一发送数据时,自动生成带密码的压缩包。 作者从客户的实际需求出发,没有引入复杂的图形化工具,而是直接利用 Linux/Unix 环境下的标准命令行工具来完成任务。核心方案是巧妙地组合了 `tar`(打包)、`gzip`(压缩)以及 `openssl`(加密)这几个命令。通过一行简单的命令,就能将指定目录打包、压缩并用 AES-256 算法加密,生成一个 `.tar.gz.enc` 文件。 文章不仅给出了具体的命令示例,还进一步展示了如何编写一个简洁的 Shell 脚本,将这个压缩加密的过程固化下来,并配合 `crontab` 定时任务,实现了每周一的完全自动化交付。这种方式不依赖任何额外的软件安装,安全、高效且可靠,尤其适合在服务器或 CI/CD 流水线中执行定期任务。 作者的实践证明,解决一些高频的文件处理需求时,回归到系统命令本身往往是最直接、最稳定的路径。

IT 累计浏览 2,117

linux系统更换sshd的方法手记

这篇文章源于一次真实的服务器入侵事件。作者朋友的Linux服务器被高手入侵,攻击者不仅拿走了root权限,还悄然替换了系统的sshd服务程序,目的是利用curl将数据外传。整个攻击链涉及Perl、C、Shell、PHP等多种技术手段,手法非常娴熟。 作者的处理重点在于如何识别并安全地修复被篡改的sshd。文章详细记录了从发现异常、分析攻击痕迹到最终恢复服务的过程。核心方法是彻底清理系统,不信任任何被攻击者接触过的二进制文件,转而使用干净的源码重新编译和安装sshd。文中不仅介绍了具体的操作步骤,更重要的是分享了处理此类深度入侵事件的思路:优先重建信任链,而非试图在被污染的系统上修补。 对于系统管理员而言,这篇手记的价值不仅在于修复步骤。它强调了对基础服务(如sshd)完整性进行验证的重要性,并提示了在遭遇入侵后,采取“从零开始”的谨慎态度往往是更安全的选择。作者从紧急处理到建立监控的完整思路,为应对类似的高级持续性威胁提供了一个清晰的参考框架。

IT 累计浏览 9,244

tomcat catalina.out日志切割每天生成一个文件

这篇讲的是如何解决 Tomcat 的 catalina.out 日志文件无限增长的问题。文件过大会影响服务器性能,因此需要自动切割并清理旧日志。 文章作者的实践过程很有趣,展示了一个方案如何被逐步修正和完善。最初提出的脚本思路是直接复制并清空 catalina.out,但这种方法被指出是无效的——因为 Tomcat 进程保持着文件句柄,单纯清空文件后,新日志并不会写入新的切割文件中。一个更“暴力”但直接的方法是停止 Tomcat、重命名日志文件再启动,不过这带来了服务中断的代价。 最终,文章推荐了一个更优雅的方案:利用 cronolog 这个日志切割工具。通过修改 Tomcat 的启动脚本,让其输出的日志通过管道直接由 cronolog 处理,就能实现按日期(如 catalina.2023-10-27.out)自动生成日志文件。这个方案无需重启服务,也无需复杂的脚本,是更符合生产环境要求的做法。 整个过程从踩坑到寻找更优解,很实际地展示了在运维工作中如何为一个常见问题找到可靠且高效的解决方案。

IT 累计浏览 13,434

我常用的主机监控shell脚本

作者从自己博客久未更新的状态切入,坦言近期频繁收到关于服务器监控的提问,核心关切是:除了 Cacti、Nagios 等成熟的开源工具,能否自行编写 Shell 脚本来实现监控? 这篇内容正是对这一需求的直接回应。作者结合自身实践,分享了数套他常用的主机监控 Shell 脚本。文章并未停留在“是否可行”的讨论,而是深入到“如何实现”的层面。核心思路在于,自定义脚本能带来更高的灵活性和针对性——可以完全按照业务的具体需求,去细化监控的每一个维度,比如对特定服务端口、磁盘阈值或进程状态的定制化检查,这些往往是通用开源工具配置起来较为繁琐或不够直接的部分。 文章的价值在于提供了即拿即用的脚本示例和关键代码片段,它们是从实际生产环境中提炼出的轻量方案。作者通过展示脚本如何高效收集 CPU 负载、内存使用、网络连接数等关键指标,并将结果输出或告警,为读者提供了一套可快速上手的自定义监控工具箱。对于希望摆脱重型监控系统、追求轻巧与可控的运维人员而言,这是一个非常务实的起点。

IT 累计浏览 5,125

linux 处理两个文件的并集,交集,计数

这篇讲的是如何用Linux命令行,高效处理两个文本文件之间的集合关系。作者没有绕弯子,直接切入三个最实用的场景:取并集(合并两文件并去重)、取交集(找出两文件共有的行)、以及统计交集或并集的行数。 核心操作围绕几个经典工具展开,比如用`sort`和`uniq`配合来处理并集去重,用`grep -F`或`awk`快速匹配交集。文章的价值在于,它不只是列出命令,而是把解决同一类问题的几种常用路径对比着讲清楚了。例如,处理小文件时`comm`命令很直观,但要求预先排序;而`awk`方案则更灵活,适合处理未排序或结构更复杂的数据。 作者也点明了不同方法的适用边界:是追求极致速度,还是需要更复杂的条件筛选?这对于需要在脚本中快速实现这些操作的运维或开发人员来说,是一份非常实用的参考。掌握了这几招,再面对日志比对、配置差异分析或数据清洗时,就能多一份从容。

IT 累计浏览 3,633

GNU工具箱

这篇讲的是GNU工具箱——那些构成了Linux/Unix命令行基石的核心实用程序。文章从一个经典问题出发:为什么ls、grep、awk这些看似简单的命令如此重要?作者逐一拆解了工具箱中的关键成员,比如用`find`配合`xargs`构建高效的批量文件处理流水线,用`sed`和`awk`进行精准的文本转换与数据提取,以及`grep`如何通过正则表达式在日志的海洋中快速定位线索。 文章特别强调了工具组合的威力,比如用`管道`将这些小工具连接起来,能完成复杂的自动化任务。同时也对比了它们各自的边界:`awk`擅长结构化文本的列处理,而`sed`更专注于流编辑与替换。通过实际案例,文章展示了如何为不同的任务选择最趁手的工具,从而大幅提升在服务器运维、日志分析和数据预处理等场景中的工作效率。 掌握这些GNU工具,不仅仅是记住几个命令,更是理解一种“小工具组合成大能力”的Unix哲学。

IT 累计浏览 2,836

用shell写个简单的log监控程序

这篇文章讲的是如何用Shell脚本为日常运维打造一个轻量的日志自动监控工具。作者从实际运维痛点出发——开发者和运维人员通常不会主动、及时地查看Apache的错误日志(error log)和MySQL的慢查询日志(slow query log),等发现问题往往已经滞后了。 为了解决这个“习惯性忽略”的问题,文章没有引入复杂的监控系统,而是提供了一个简洁的Shell脚本思路。核心方案是让脚本定期检查这两个关键日志文件,通过匹配特定的错误模式(比如Apache的“Segmentation fault”或MySQL的“Query_time”)来判断是否有异常发生。一旦检测到,脚本可以触发通知,把问题从“被动查看”变为“主动推送”。 整个实现体现了Shell脚本在轻量级运维任务中的巧妙之处:用简单的文件读取、模式匹配和条件判断,就构建起一个及时的预警机制。它特别适合中小型项目或开发测试环境,能以极低的资源开销,帮助团队养成关注日志、快速发现问题的习惯,把故障扼杀在萌芽状态。

IT 累计浏览 3,717

Linux的shell变量

这篇讲的是如何在Linux shell里“玩转变量”。文章从最基础的变量定义和赋值讲起,但重点在于厘清几种关键变量的“脾气”和适用场合。 作者对比了环境变量、局部变量以及一系列特殊变量。比如,用`export`导出的环境变量能穿透进程界限,把配置传递给子脚本或命令;而普通局部变量则更“内向”,只在当前shell会话里有效。对于新手容易忽略的`$?`、`$#`、`$@`这些“幕后工作者”,文章也点明了它们在捕获命令状态、处理函数参数时的实战价值。 文章并没有停留在语法罗列,而是通过具体场景说明差异:什么时候该用环境变量来保持上下文,什么时候又该用局部变量来封装逻辑。理解这些,才能写出既安全又高效的脚本,避免因变量作用域不清导致的“诡异”bug。