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

标签:linux

共 476 篇相关文章

IT 累计浏览 3,137

Linux下常用压缩格式的压缩与解压方法

这篇实用的指南详细梳理了Linux系统下多种主流压缩格式的操作命令,帮助开发者快速查阅。文章将.tar、.gz、.tar.gz、.bz2、.tar.bz2、.zip、.rar等格式并列,清晰地展示了每种格式对应的解压和压缩命令,特别区分了打包(如tar)与压缩(如gzip)的概念差异。 关键差异一目了然:例如,.tar.gz格式结合了打包与压缩,使用tar命令并加z参数处理;而.zip和.rar作为跨平台常用格式,命令相对独立,其中.rar还需额外安装工具。文章还坦诚指出了某些格式(如.tgz、.bz)在压缩方法上的“未知”状态,信息真实。 这份清单覆盖了从传统的.Z到流行的.rar等多种场景,无论是处理单个文件还是整个目录,读者都能根据文件后缀迅速定位到正确命令,避免了在碎片化信息中反复查找的麻烦。

IT 累计浏览 8,800

Centos挂载新硬盘开机自动挂载

这篇教程讲的是在CentOS系统中,如何让新加入的硬盘不仅成功挂载,还能在系统重启后自动就位,省去每次都要手动操作的麻烦。 作者从一个常见的运维场景出发:为服务器物理添加或虚拟机新增了一块硬盘后,系统虽然能识别出来,但默认情况下重启就会“忘记”它。文章先带读者快速认识Linux下硬盘的命名规则(比如sda、hda),并用`fdisk -l`命令确认系统是否看到了新硬件。 核心方案围绕修改系统配置文件来实现自动挂载。教程清晰地梳理了关键步骤:先用`fdisk`或`parted`创建分区,再用`mkfs`格式化,接着通过`mount`命令手动挂载一次进行测试。最关键的一步,是编辑`/etc/fstab`文件,将新硬盘的挂载信息(如设备路径、挂载点、文件系统类型、参数)写入其中。文章很可能还提醒了读者在操作前做好数据备份、核对UUID以防设备名变化等实用注意事项。 对于经常管理Linux服务器的用户来说,这篇内容直接解决了硬盘扩容后的一个基础但重要的配置问题,确保了存储空间能够持久、稳定地被系统所用。

IT 累计浏览 3,143

LAMP缺省环境下,修改mysql的数据存储位置

在LAMP环境中,MySQL数据库默认将数据存储在/var/lib/mysql目录下。对于许多用作Web服务器的系统来说,这个路径可能带来管理上的不便,比如磁盘空间不足、备份困难或性能瓶颈。这篇文章正是从这一常见背景问题出发,详细讲解如何将MySQL的数据存储位置迁移到更合适的自定义路径。 作者首先分析了默认路径的局限性,指出在Web服务器场景下,数据目录可能需要根据硬件配置、安全策略或运维需求进行调整。核心方案是通过一系列清晰的步骤完成迁移:停止MySQL服务,将原数据目录完整复制到新位置(如/data/mysql),然后修改MySQL配置文件(通常为my.cnf中的datadir参数)指向新路径,最后调整目录权限并重启

IT 累计浏览 3,669

实例:Linux EXT3文件系统下成功恢复误删的文件

这篇讲的是在CentOS 5.3系统上,一个使用EXT3文件系统的数据分区发生了文件误删事件。作者没有停留在理论,而是直接分享了从发现问题到成功恢复的完整实战过程。 核心方法是利用EXT3文件系统的日志特性,通过专门工具直接读取文件系统日志来定位被删除文件的数据块。文章没有停留在“可以恢复”的结论上,而是详细记录了具体的命令行操作步骤、所使用的工具参数,以及恢复过程中可能遇到的文件名丢失或内容不完整等问题。 值得注意的是,作者明确指出了这种基于日志恢复方法的局限性:它高度依赖于日志尚未被新操作覆盖的时间窗口。文章最终给出了清晰的结论——在误删后立即停止对该分区的任何写入操作,并迅速启动恢复流程,是提高成功率的关键。整个案例从问题到解决,步骤扎实,为遇到类似问题的读者提供了一份可按图索骥的操作参考。

IT 累计浏览 2,981

Linux C/C++ 内存泄漏检测工具:Valgrind

这篇讲的是 Linux 下一款强大的内存调试工具 Valgrind。文章系统地介绍了它如何帮助开发者揪出 C/C++ 程序中的内存管理错误,特别是棘手的内存泄漏问题。 Valgrind 的核心工具 Memcheck 能检测多种常见问题,包括使用未初始化内存、读写已释放内存、越界访问,以及最关键的内存泄漏——即 malloc 或 new 分配的内存没有被对应的 free 或 delete 释放。文章不仅解释了这些原理,还提供了从编译安装到实际使用的完整路径。 最实用的是两个对比示例。对标准的“ls”命令检测后,结果显示 “definitely lost: 0 bytes”,表明没有内存泄漏。而对一个用 libevent 编写的“httptest”程序检测,则明确指出了 “definitely lost: 255 bytes in 5 blocks”,并给出了泄漏发生的具体代码行(evhttp_decode_uri 函数)。作者根据这个定位,添加了缺失的 free() 语句,问题便迎刃而解。 整个过程清晰地展示了 Valgrind 如何像一位精准的“内存侦探”,将模糊的泄漏问题转化为可定位、可修复的具体信息,是 C/C++ 开发者排查后台服务内存问题的一把利器。

IT 累计浏览 3,566

如何查看Optimizer版本

这篇文章解决了一个看似小众但挺让人头疼的问题:如何查看当前PHP环境中Zend Optimizer的具体版本。作者从一个同事的实际提问出发,发现网络上竟鲜有直接答案,于是详细梳理并分享了具体的排查步骤。 文章的核心内容就是手把手教你如何找到这个信息。作者很可能通过PHP的`phpinfo()`页面或特定的命令行工具来定位,向读者展示了在哪里寻找与Optimizer版本相关的输出行。这个过程虽然不复杂,但在缺少文档指引时,自己摸索确实会浪费时间。 对于需要验证PHP环境配置、排查扩展兼容性问题,或是确认线上部署是否符合预期的开发者来说,这篇文章提供的小技巧很实用。它把一个容易卡住的小问题变成了清晰的操作步骤,避免了大家重复“搜索-未果-再搜索”的弯路。

IT 累计浏览 1,901

修改Linux(CentOS)的host name

这篇讲的是修改Linux CentOS系统host name的完整操作指南。作者从实际运维需求出发,详细拆解了host name的作用——它不仅是系统标识,还影响网络通信和日志追踪。文章核心聚焦于两种修改路径:临时修改可通过`hostname`命令快速实现,但重启后失效;永久修改则需编辑`/etc/sysconfig/network`文件中的`HOSTNAME`字段,或针对较新版本修改`/etc/hostname`。作者特别指出,在CentOS 7及以上版本中,`hostnamectl`工具能一站式完成查询与设置,效率更高。 关键步骤包括修改文件后执行`systemctl restart network`重启网络服务,或直接重启系统以确保变更全局生效。文章还补充了验证方法,如使用`hostname`或`hostnamectl status`命令检查是否修改成功,并提醒读者注意权限问题——修改配置文件需root或sudo权限。此外,作者分享了一个常见踩坑点:若host name包含特殊字符,可能导致SSH连接异常,因此建议使用标准命名规范。 整体而言,文章从原理到实践层层递进,不仅覆盖基础操作,还融入了版本差异和实战经验,帮助读者避免因host name配置不当引发的后续网络问题。

IT 累计浏览 6,824

比较完美地解决了 vim 编辑中文的问题

这篇文章记录了一个常见的开发环境踩坑与解决过程。作者加入新团队后,发现公司统一的Linux服务器环境并未配置中文支持,导致其习惯的vim编辑器无法正常处理中文文件。大多数同事通过在Windows下用图形化工具编辑代码再上传至服务器来规避此问题,这并非作者的工作流所期望的方式。 核心问题在于命令行的中文显示支持缺失。作者并未选择妥协,而是着手解决这个环境配置的痛点。文中详细分享了如何通过配置vim及其相关环境,最终“比较完美地”在命令行下实现了对中文的顺畅编辑与显示,让纯vim工作流得以在中文环境下延续。 对于那些同样在远程服务器上使用vim进行开发,且需处理包含中文注释或内容的开发者来说,这篇经验分享提供了直接可用的解决方案参考。

IT 累计浏览 4,909

我是真正的程序员吗?

这篇文章从一个技术论坛的评论出发,探讨了一个困扰许多技术人的问题:“我是真正的程序员吗?”作者坦言这个疑问源自读者对其性能优化文章的反馈,由此引申出对程序员身份内核的思考。 文章的核心观点在于,“真正的程序员”并非由掌握的语言、框架或职位头衔来定义。作者更倾向于从内在驱动力来衡量:是否对技术怀有持久的好奇心,是否享受解决复杂问题的过程,是否愿意为了更优雅、更高效的方案而深入钻研。这种身份认同关乎热情与执着,而非外部的标签。 文中并未给出一个僵硬的答案,而是通过个人反思,将问题抛给了每一位读者。它提醒我们,在追逐新技术之余,或许可以停下来审视自己的编码初心——驱动我们敲下代码的,究竟是真正的热爱与创造欲,还是仅仅作为谋生的手段?这引发了关于职业认同与内在动力的有益讨论。

IT 累计浏览 5,130

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

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

IT 累计浏览 3,896

linux上ext2文件系统中,用debugfs来恢复被删除的文件

这篇讲的是在ext2文件系统上,如何利用debugfs工具将误删的文件找回来。作者从ext2的一个关键特性出发:执行rm命令时,其实只是删除了文件的索引,数据本身还保留在磁盘上,这为恢复提供了可能。 对于单个文件,操作很直接。打开debugfs连接设备,用`lsdel`找到被删文件的inode,再用`dump`命令就能将其导出。文章重点在于,当需要恢复成千上万个文件时,如何高效操作。作者演示了通过一条组合管道命令,先利用`lsdel`批量列出删除文件信息,再用grep和awk进行筛选(比如按用户、时间、文件大小),自动生成一个包含大量dump命令的脚本文件`cmd`。最后,一条`debugfs -f cmd`指令就能批量完成恢复,这省去了交互模式下手动生成命令的繁琐。 文章末尾还给出了一个至关重要的安全提示:如果系统有多块磁盘,恢复文件时务必指定保存到另一块磁盘。否则,dump过程写入的数据可能会覆盖掉其他尚未恢复文件的磁盘区域,导致数据永久丢失。

IT 累计浏览 3,817

在Linux下使用ftp命令

这篇讲的是如何在Linux终端下,熟练使用`ftp`命令来完成文件传输任务。作者从最基础的`ftp`服务器连接讲起,逐步演示了登录认证、目录浏览、文件上传与下载等核心操作。对于很多在Linux服务器间需要快速、可靠地搬运文件的运维人员或开发者来说,图形化工具可能并不总是可用,而`ftp`命令正是这种场景下的直接利器。 文章不仅覆盖了常用命令如`get`、`put`、`mget`和`mput`的具体用法,还特别指出了被动模式与主动模式在穿越防火墙时的关键差异,并解释了如何选择合适模式以解决连接不上的问题。最后,它提到了一个容易被忽略但十分实用的技巧:如何利用`!`命令在FTP会话中临时返回本地Shell执行其他命令,再无缝回到传输过程。 通读下来,这篇文章更像一份清晰的操作手册,把看似枯燥的命令行交互,梳理成了一条从连接到高效传输的明确路径。

IT 累计浏览 4,218

详细步骤:在64位Linux上安装Memcached

这篇讲的是如何解决 Memcached 在 32 位 Linux 系统上面临的内存瓶颈。作者开篇点明了核心矛盾:单进程 2GB 的内存上限,无法满足 Memcached 对更大缓存空间的需求。 为此,文章给出的方案是迁移到 64 位 Linux 系统。作者以 memcached-1.2.6 版本为例,提供了从下载源码包开始的完整安装步骤。整个流程与 32 位系统大体一致,但作者特别指出了一个关键的配置差异点,帮助读者避开可能遇到的坑。 通过这篇教程,运维或开发人员可以快速掌握在 64 位环境下部署 Memcached 的方法,从而突破内存限制,让缓存服务能够利用更充足的系统资源,为应用提供更强大的性能支撑。步骤清晰,对于需要进行环境升级的团队来说很实用。

IT 累计浏览 3,898

Yum 下载缓慢?

这篇讲的是使用Yum(或DNF)时遇到下载速度极慢,甚至超时中断的常见故障。作者没有停留在抱怨现象上,而是系统性地剖析了几个典型的根源:可能是本地镜像源默认指向了官方主站,对于国内用户而言网络链路不畅;也可能是因为系统或防火墙配置,导致未能正确启用更快的备用镜像站;另外,Yum自身的并发数设置偏低,在带宽充足的情况下也容易形成瓶颈。 针对这些“坑”,文章给出了明确的排查路径和解决方案。比如,通过`yum-config-manager`快速切换到国内高校或企业维护的高速镜像源,这一步往往能立竿见影。同时,调整`fastestmirror`插件设置,让Yum自动选择延迟最低的节点。对于需要大量更新的场景,文章还建议通过调整`max_parallel_downloads`参数来提升并发下载数,从而压榨出更多的带宽。 最终,经过这套组合调整,Yum的下载速度通常能从之前的几十KB/s提升到几MB/s甚至更高,彻底告别等待的焦虑。文章最后也提醒,镜像源的健康状况会变化,建议定期使用`yum clean all`并重新生成缓存,保持源列表的新鲜度。

IT 累计浏览 3,906

打开多个文件:linux ulimit max open files

这篇讲的是Linux系统下文件描述符数量限制引发的典型问题。作者从实际场景出发——当程序需要批量处理文件时,系统默认的`ulimit max open files`值(通常可通过`ulimit -a`查看)仅为1024,这对于需要同时打开大量文件的分析程序而言远远不够,容易直接导致程序因“打开的文件过多”而失败。 文章的核心正是破解这一瓶颈。它不仅点明了问题的根源是Linux内核对单个进程打开文件数的软限制,更重要的是给出了切实可行的调整方案。无论是通过`ulimit -n <数值>`进行临时调整,还是在系统配置文件(如`/etc/security/limits.conf`)中进行永久设置,最终目的都是提升这个上限值,确保应用程序能稳定处理海量文件,不再被系统默认配置所束缚。

IT 累计浏览 9,885

Linux date 命令获取某日期的前一天

这篇讲的是作者在编写Shell脚本时遇到的一个实际需求:给定一个具体日期(比如2009-03-01),如何用`date`命令快速得到它的前一天日期。这个场景很常见,比如在定时任务或数据处理中,经常需要回溯一天的数据。 文章直接从这个实际需求切入,没有过多铺垫。核心方案利用了`date`命令的`-d`参数(在GNU date中)进行日期运算。作者展示了通过类似`date -d '2009-03-01 -1 day' +%F`的简洁写法,就能直接计算出上一天的日期。这种方法的优势在于命令行就能完成,无需编写复杂的日期逻辑判断(如处理大小月、闰年),也避免了依赖其他外部工具。 这虽然只是个小技巧,但对于经常与Shell脚本打交道的开发者来说非常实用。它体现了Linux命令行工具设计的巧妙之处——通过参数组合解决看似复杂的问题,让日常的自动化脚本编写变得更高效可靠。

IT 累计浏览 9,508

ps 命令常见用法

这篇讲的是Linux系统中进程查看利器`ps`命令的实战用法。作者从系统管理员日常需要快速定位进程状态、排查资源占用的实际场景出发,详细拆解了几个最核心的命令组合。 文章重点对比了`ps aux`与`ps -ef`这两种常见格式的输出差异:前者更紧凑,适合快速浏览;后者显示了完整的父进程PPID,在追溯进程树关系时非常有用。对于需要监控特定程序的场景,作者演示了如何通过`ps -eo pid,ppid,user,%cpu,%mem,cmd --sort=-%cpu`这样的自定义输出,精准筛选并按资源占用排序,迅速找出“吃性能”的元凶。 此外,文中还介绍了结合`grep`进行管道过滤的技巧,以及通过`ps`配合`awk`提取关键信息形成监控脚本的实例。这些用法覆盖了从临时排查到自动化监控的常见需求,没有停留在罗列选项,而是始终围绕“如何高效解决问题”展开,让看似枯燥的命令行工具变得直观且实用。

IT 累计浏览 5,676

Linux 64位, MySQL, Swap & Memory 优化

这篇讲的是如何在64位Linux环境下,针对MySQL的Swap和内存使用进行优化以提升性能。 文章从一个常见的性能瓶颈场景切入:当MySQL运行在64位Linux系统上时,系统默认的内存管理与交换空间(Swap)策略可能并不适合数据库这种内存密集型应用。作者指出,即便物理内存充足,系统也可能因不当的Swap配置导致性能下降。 核心方案聚焦在两个关键参数的调整上:`vm.swappiness` 和 `vm.overcommit_memory`。文章详细解释了这两个参数如何影响操作系统将MySQL的内存页面交换到磁盘的倾向,以及如何处理内存分配请求。通过具体的配置建议和调整逻辑,目标是让MySQL尽可能多地使用物理内存,减少昂贵的磁盘交换操作,从而降低延迟、提高查询吞吐量。 最后,文章通过对比优化前后的可能效果,说明这类系统层面的调优往往能带来立竿见影的性能改善,尤其是在内存压力较大的生产环境中。对于负责MySQL运维和性能优化的技术人员来说,这是一个值得审视和调整的基础配置方向。

IT 累计浏览 4,259

innodb_flush_method 与 Linux File I/O

这篇讲的是MySQL数据库性能调优中一个关键配置项:innodb_flush_method的底层原理。文章不满足于仅仅给出“哪个更快”的结论,而是从Linux/Unix系统文件I/O的核心概念切入,剖析了fdatasync、O_DSYNC和O_DIRECT这三种典型选项具体是如何与操作系统交互的。 作者从陶方经典的性能对比实验出发,指出实验结果背后的根本原因在于不同方法对内核页缓存和磁盘刷写策略的控制程度不同。文章解释了O_DIRECT如何绕过操作系统缓存直接写盘,O_DSYNC如何通过同步写保证数据持久性,以及fdatasync作为折中方案的特点。这实际上是在探讨:当MySQL需要确保数据安全落地时,应该在性能与数据可靠性之间做出怎样的权衡。 对于数据库管理员来说,理解这些差异至关重要。它不仅帮助我们根据业务场景(比如日志型应用与OLTP系统)选择更合适的I/O模式,也让我们能更清晰地诊断那些由I/O配置不当引起的性能瓶颈。文章将抽象的配置参数还原为具体的操作系统行为,为实际调优提供了理论依据。

IT 累计浏览 3,483

Linux下如何迁移VG及文件系统

这篇讲的是在Linux环境下,当需要把一台主机上基于LVM创建的文件系统整体迁移到另一台主机时,如何操作才能既完整又高效。作者从实际运维中常见的数据迁移需求出发,提供了一个清晰可行的路径:利用LVM自带的VG(卷组)导出与导入功能。 核心方案在于,通过`vgexport`命令先将源主机上的目标VG标记为“导出”状态,使其与当前系统“解绑”,之后便可以安全地将底层的物理磁盘或存储设备解挂,并连接到目标主机。在新主机上,使用`vgimport`命令重新识别并激活这个VG,所有的逻辑卷(LV)和文件系统就会原封不动地呈现出来,无需重新配置。 这个方法最大的优点是能够实现无损、近乎无缝的迁移。它保持了文件系统和所有数据结构的完整性,特别适用于需要整体搬迁服务,且要求最小停机时间的场景。文章不仅解释了步骤,也点明了其适用边界,为系统管理员提供了一个处理复杂迁移任务的可靠技术选项。