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

标签:linux

共 476 篇相关文章

IT 累计浏览 4,799

Linux vimrc配置

这篇讲的是如何通过精心配置.vimrc文件,将Vim编辑器打磨成更趁手的效率工具。文章面向已经熟悉Vim基础操作的用户,核心价值在于提供了一套完整且经过注释的配置范例。 作者从.vimrc文件的作用入手,解释了它作为Vim行为控制中心的重要性。随后,文章详细拆解了一系列实用的配置项,不仅包括开启语法高亮、显示行号、设置搜索行为等基础功能,更深入讲解了通过设置tabstop、cindent、smartindent来优化代码缩进体验。文章的特色在于提供了大量提升操作效率的快捷键映射方案,例如用自定义前导键实现快速保存、在单词两侧添加括号、一键注释与取消注释等,并清晰地解释了每条命令的作用。 最后,文章还简要总结了Vim强大的map模式,鼓励读者在此基础上打造个性化的工作流。整个配置方案具体而微,从环境设置到快捷键定制层层递进,对于希望深入定制自己编辑环境的开发者来说,这份“菜谱”式的指南可以直接上手实践。

IT 累计浏览 8,949

应该知道的Linux技巧

这篇讲的是每个Linux用户都应该知道的效率技巧,核心观点直接而有力:在Unix/Linux下,最高效的技巧不是操作图形界面,而是掌握命令行,因为它意味着自动化。 文章从Quora的一个热门问答出发,结合作者的实践理解,梳理了一份从基础到进阶的实用清单。基础部分强调了学习Bash、vim和ssh的重要性,指出这些是高效操作的基石。日常技巧则聚焦于能立刻提升操作速度的快捷键与命令,例如用Ctrl-R历史搜索、用xargs串联命令,或是通过pstree和pkill管理进程。 清单中也不乏一些精妙的“冷知识”,比如利用`<(command)`将命令输出当作文件进行比较,或是通过`set -x`和`trap`调试与控制脚本。这些细节让自动化和脚本编写变得更灵活可靠。作者还不忘提醒,掌握man、Google搜索以及从源码编译,是自主解决问题和深入探索的关键。整篇文章罗列了数十个具体命令和场景,目的不是让你全部记住,而是展示命令行的丰富可能性——熟悉其中一部分,就能让你从繁重的手动操作中解脱出来,把时间留给更重要的思考。

IT 累计浏览 3,161

设置ssh无密钥登录

这篇讲的是如何为Linux系统配置SSH无密钥登录,从而替代传统的密码验证方式。文章首先点明了SSH因RSA/DSA加密算法带来的安全性优势,这是其能取代telnet的关键背景。核心内容则聚焦于实操:通过ssh-keygen生成一对密钥,将公钥拷贝至远程机器的指定位置并设置正确权限(600),即可实现免密登录。 作者还特别指出,在完成基础配置后,用户可以进一步在sshd_config中关闭密码验证,将系统从基于密码的登录方式切换为更安全的密钥验证。整个过程步骤清晰,强调了权限设置这个容易出错的细节。对于需要频繁进行服务器管理运维的开发者和管理员来说,这套方法能有效提升工作效率与系统安全性。

IT 累计浏览 2,638

Ubuntu Server清理无用内核

这篇文章解决的是Ubuntu Server在多次系统升级后,旧内核包(headers和image文件)累积占用磁盘空间的问题。作者直接给出了具体的清理步骤和命令。 方法首先通过 `dpkg --get-selections|grep linux` 命令列出所有与Linux内核相关的已安装软件包,让你清楚地看到哪些旧版本的内核headers和镜像文件仍然存在。接着,文章演示了如何使用 `sudo apt-get remove` 命令,针对每一个不再需要的旧内核版本(例如3.5.0-17和3.5.0-19),分别移除其对应的headers和image包。 在执行完清理命令后,文章再次运行查看命令进行验证。结果显示,之前状态为“install”的旧内核包已变为“deinstall”(卸载),而当前使用的内核版本(3.5.0-21)及其相关组件则保持“install”状态。整个过程清晰明了,从发现问题、执行操作到验证结果,形成了一个完整的操作闭环。 这篇文章的价值在于提供了明确的步骤和验证方法,对于需要手动管理内核、优化服务器存储的系统管理员来说,是一个非常实用的参考。

IT 累计浏览 6,000

linux 小技巧

这篇汇总了十个实用的Linux命令行与配置技巧,涵盖了日常运维中常见的安全加固、系统管理和故障预防场景。 文章内容非常具体,直接给出可操作的步骤。比如,它不仅告诉你用`pidof java`快速查进程号,还演示了如何修改`/etc/login.defs`来强制用户密码长度。在安全方面,技巧详细说明了怎样通过`/etc/pam.d/su`配置文件来限制`su`命令的使用权限,以及如何结合`/etc/hosts.allow`和`iptables`实现基于IP的SSH访问控制。 特别值得注意的是,文章包含了一些易被忽略但重要的配置,例如如何注释掉`inittab`文件中可能导致意外重启的`CTRL-ALT-DELETE`快捷键,以及为RedHat系统配置非正常关机后的自动磁盘检查。这些小技巧能有效提升系统的稳定性和安全性。对于经常与Linux服务器打交道的技术人员来说,这是一份可以随时查阅的实用备忘录。

IT 累计浏览 6,990

linux目录跳转快捷方式——z武器

这篇讲的是Linux下如何告别繁琐的`cd`命令,实现目录的“智能跳转”。作者从在机房目睹资深工程师行云流水般的`cd`操作说起,分享了自己想提升效率却常被“忘记目标目录在哪一层”困扰的经历,从而引出了一个名为“z”的命令行小工具。 z本质上是一个轻量的shell脚本,它通过自动记录你常访问的目录路径,让你只需输入目录名称的关键词就能一键跳转。文章清晰地介绍了它的核心用法:安装后,z会默默记住你的操作习惯。以后,无论你身处何处,只需输入`z 关键词`(例如`z python`),就能立刻进入之前记录过的、包含该关键词的目录,彻底省去了层层递进的`cd`和反复`Tab`补全的麻烦。 对于需要在多个项目目录间频繁切换的开发者和运维人员来说,这个小工具能显著提升命令行操作的流畅度与效率,是一个即学即用的实用技巧。

IT 累计浏览 5,243

Tips of Linux C programming

这篇文章分享了Linux内核和GNU C中一些不那么为人所知却非常实用的编程技巧。作者从链表的非常规定义讲起,展示了如何将链表节点嵌入到数据结构中,并利用`container_of`宏从节点地址反推出宿主结构体,这种方法比传统教科书定义更灵活优雅。 随后,文章深入到编译器与硬件层面:介绍了用`likely`/`unlikely`宏提示编译器优化分支预测,减少流水线冲刷;演示了通过内联汇编和`lock`指令前缀实现原子加法,保证多处理器环境下的数据一致性;还探讨了GNU C特有的零长度数组特性,用于在运行时动态分配结构体尾部的变长数组。最后,简短提到了三目运算符`a = x ? : y`这种简洁的省略写法。 这些技巧都源自真实的内核开发或GCC特性,能帮助C程序员写出更高效、更地道的代码。文章穿插了关键的代码片段和原理剖析,对希望提升底层编程技巧的读者很有启发。

IT 累计浏览 8,641

你应该知道的16个Linux服务器监控命令

这篇讲的是Linux系统管理员必备的16个服务器监控命令。作者从追求最佳服务器性能的角度出发,强调了相比于GUI工具,命令行监控能更精准地洞察系统内部的真实状况。文章开篇就建议将服务器设置为运行级别3(纯命令行模式),以减少不必要的资源消耗。 随后,文章逐一介绍了从iostat、mpstat到netstat、top等16个核心命令。每个命令都附带了具体的用法示例和输出解读,例如用iostat快速定位潜在的IO瓶颈,通过free -m查看内存概况,使用mpstat分析多核CPU负载,以及利用netstat诊断网络连接状态。这不仅是一份命令清单,更是一套组合拳,帮助管理员全面掌握CPU、内存、磁盘IO和网络等关键指标的实际状况。 值得注意的是,文章没有停留在基础命令的罗列,还提及了如nmon这样集成了多种监控视图的工具,并说明了pmap、strace等用于深入排查特定进程问题的命令。对于希望从“救火队员”转变为能提前预见并解决问题的专业运维人员,这些基于命令行的监控技巧正是其核心能力所在。

IT 累计浏览 3,911

ssh-copy-id帮你建立信任

对于运维人员来说,在两台Linux机器间建立SSH免密登录是常规操作,但传统手工步骤——拷贝公钥、编辑authorized_keys、检查文件权限——不仅繁琐,还容易在切换机器和手动编辑时出错。 这篇文章生动演示了如何用`ssh-copy-id`命令优雅地自动化这一过程。作者从最基础的需求出发,先遇到了“未找到标识”的错误,引出了必须先用`ssh-keygen`生成密钥对的关键前提。但更典型的坑在后面:当目标机器SSH端口不是默认22时,直接使用`-p`参数会无效,命令依然报“Connection refused”。 真正的解决方案带点“小技巧”色彩:需要将非标准端口和目标地址作为引号内的一个整体字符串传入,即执行`ssh-copy-id "-p 22000 nameB@machineB"`。这本质上是将参数传递给了底层的`ssh`命令。问题解决后,文章还揭示了`ssh-copy-id`本身只是一个约50行的Shell脚本,其源码可供学习。整个排查过程从问题到解决非常清晰,实用性强。

IT 累计浏览 4,585

ubuntu定时执行任务crontab的使用

这篇讲的是作者从实际需求出发,学习并实践Ubuntu系统中定时任务工具crontab的过程。作者最初为了定时执行一个数据爬取脚本,从同事那里了解到crontab,并在保证知识体系完整性的前提下进行了梳理。 文章从crontab的基本概念和由来说起,解释了它作为守护进程周期性检查作业的机制。核心内容聚焦于实际使用:通过简单的三个步骤(运行`crontab -e`、选择编辑器、编写配置)即可开始。作者用两个清晰的例子说明了配置方法:一个是让Python脚本在每天早上7:30执行,并将输出与错误日志重定向到文件;另一个是设置脚本每隔3分钟执行一次。 其中重点解析了配置文件中五个星号分别代表的分、时、日、月、周单位,以及反斜杠(/)用于指定频率的用法。例如,`*/3 6-8 * * *`表示在早上6点到8点之间,每隔3分钟触发一次任务。整篇文章将概念与紧密贴合的实例结合,清晰展示了如何将一个定时需求落地为具体的crontab配置。

IT 累计浏览 3,676

linux 定期自动备份mysql的shell

这篇讲的是,一位作者从保障用户数据安全的实际需求出发,分享了一个简洁实用的MySQL自动备份方案。 他编写了一个Shell脚本,核心是利用`mysqldump`工具导出服务器上所有的数据库,并通过管道用`gzip`进行高压缩存储。脚本通过配置`crontab`定时任务,设定在每天凌晨3点自动执行,实现了完全无人值守的备份流程。 方案的一个关键设计在于备份文件的自动轮转清理。脚本采用目录轮转的方式(`backup.0`至`backup.4`),每次执行前会先删除最旧的一天备份,然后生成新的备份文件,从而确保服务器磁盘空间始终只被最近5天的备份占用,避免了存储空间无限增长的问题。 文章直接提供了完整的脚本代码,包括数据库连接信息、文件路径定义和命令组合等,读者可以根据自身环境稍作修改后直接使用。作者也提醒,从安全角度考虑,执行备份的脚本应使用Root权限,这提醒了读者在自动化运维中需兼顾权限管理。整个方案轻量、可靠,非常适合中小型项目或个人服务器进行日常数据保护。

IT 累计浏览 5,258

查看linux系统版本命令总结

这篇讲的是在Linux系统里,如何快速准确地查出你手头机器的内核版本和发行版信息。作者把常用的命令梳理成了两大类,看内核和看发行版,用实际的命令输出示例展示了不同方法之间的区别。 对于查看内核版本,文章对比了三种最常见的方式。直接读取`/proc/version`文件会得到非常详细的信息,包括编译器和精确的构建时间。而执行`uname -a`则会给出完整的系统信息,包括主机名、内核版本、架构和操作系统。如果只需要一个干净的版本号,`uname -r`是最简洁的选择。 在识别具体的Linux发行版(比如是CentOS还是Red Hat)时,方法就更多样了。`lsb_release -a`是一个通用性很强的命令,能列出标准的版本信息。`cat /etc/issue`通常能快速显示发行版,但格式可能不统一。对于Red Hat系的系统,`cat /etc/redhat-release`和`rpm -q redhat-release`则能提供更具体、甚至带有更新编号的版本信息。文章还补充了如何通过`file /bin/bash`这类方法,从系统工具的编译信息中间接推断内核版本。 整篇文章没有空谈理论,直接罗列了从最通用到特定发行版的各种“兵器”,并点明了各自输出的细节差异和适用范围。管理员或开发者在排查环境问题时,可以按图索骥,选择最适合当前场景的命令。

IT 累计浏览 3,899

Linux/Unix的精巧约定两例及其简析:目录权限和文本行数

这篇技术文章深入浅出地拆解了Linux/Unix系统中两个看似复杂但设计精巧的约定,首先是关于目录权限的“执行”位。 作者指出,许多初学者对目录的执行权限感到困惑。实际上,它的核心含义是“穿越”:要操作目录下的任何文件(读、写、执行),或者对目录本身进行写操作(如增删文件),前提必须是拥有该目录的执行权限。这与普通文件的“执行”意义截然不同。 文章进一步揭示了其中的递归逻辑:要访问一个深层路径,需要从根目录开始,路径上每一个目录都拥有执行权限。作者用访问 `/home/foo/readme.txt` 的例子做了清晰推导,强调了根目录(/)的执行权限是访问起点的关键,这体现了Unix哲学中层层递进、权责明确的设计美感。 此外,文章还分析了另一个关于统计文本行数的约定。作者旨在说明,这些约定初看可能反直觉,但其内部逻辑统一且简洁,理解后能让人体会到系统设计的严谨性。对于想真正弄懂Linux文件权限底层逻辑的读者,这篇文章提供了非常清晰的视角。

IT 累计浏览 5,029

通过shell 脚本查看服务器的时时流量

这篇文章提供了一个轻量级的shell脚本,用于实时查看服务器的网络流量情况。脚本的核心思路是通过一个无限循环,每秒捕获指定网卡(默认是eth0)的接收(RX)和发送(TX)字节数,计算与上一秒的差值得到实时速率。同时,它还会累计总流量并计算平均速率,让用户对整体网络负载一目了然。 脚本设计得很实用,它会清屏并刷新显示,形成一个动态的监控面板。输出的信息结构清晰,包含了网卡、IP、当前时间、以及三组关键数据:当前速率(KB/s)、平均速率和总流量。对于需要快速诊断网络状况或进行临时监控的运维人员来说,这个即开即用的脚本提供了一个非常便捷的解决方案。文章不仅给出了完整的脚本代码,还附带了具体的使用方法和一段示例输出,展示了监控效果。

IT 累计浏览 5,042

关于Linux系统安装中Swap分区的解释

这篇从Linux系统安装中一个常被忽略但至关重要的部分——Swap分区出发,详细拆解了其作为“虚拟内存”后备资源的核心机制。文章不仅用生动的例子(如Windows下硬盘“哗哗”响)解释了当物理内存不足时,系统如何将匿名内存数据交换到Swap空间,更深入剖析了一个常见误解:早期Linux版本中Swap分区“不能超过128M”的限制,其根源在于旧系统用每页位映射来管理坏块,而现代硬盘质量提升后,这一限制早已取消,当前上限已达2G。 文章的核心价值在于其对性能影响的透彻分析。它明确指出,Swap分配过多会浪费磁盘空间,过少则会导致服务因内存耗尽而报错甚至死锁。文中给出了具体的配置建议,例如Swap大小通常应为物理内存的2-2.5倍,并强调了拥有多个Swap分区对于均衡磁盘I/O负载、提升交换速度的重要性。此外,文章还提供了实用的性能监控指南,介绍了如何使用`vmstat`命令中的`si`、`so`等关键指标来诊断Swap活动是否频繁,并给出了查看和添加Swap空间的具体命令行操作步骤。 整体而言,这是一篇将原理、历史细节与实操指南相结合的技术解读,能帮助系统管理员更科学地规划和监控Linux服务器的内存资源。

IT 累计浏览 3,547

linux调整swap大小

这篇讲的是在Linux系统里,当默认swap空间不足或需要优化时,如何动手进行调整。作者从两种最主流的场景出发,给出了清晰的实操路径:一是如果磁盘有剩余空间,可以直接新建一个独立的swap分区;二是使用更灵活的文件交换方式,比如用dd命令创建一个指定大小的文件,再通过mkswap和swapon命令将其激活。 文章详细演示了第二种方法的全过程:从计算文件大小(示例中32k扇区大小乘以8192个扇区得到256MB),到格式化,再到启用。特别贴心地指出了如何通过编辑/etc/fstab文件,让添加的swap分区或文件能在系统启动时自动加载,避免了每次都要手动操作的麻烦。 除了“怎么做”,文章也解释了“为什么”。它提到,swap空间通常建议不小于64MB,且大小为物理内存的2到2.5倍,但具体要根据服务器负载(如数据库、Web服务器)来调整。同时,使用多个swap区能分散磁盘I/O负载,提升交换效率,避免单个交换区过忙导致的系统卡顿——这往往是性能瓶颈所在,而非CPU问题。整篇内容步骤具体,原理清晰,对于需要管理Linux内存的运维人员或开发者来说,是一份很实用的指南。

IT 累计浏览 2,704

Redis命令行操作指南

这篇讲的是Redis命令行操作的全面指南。作者从连接数据库、基本键操作出发,系统梳理了对String、List、Set、Zset(有序集合)、Hash这五种核心数据类型的所有常用命令。 它不只是罗列,而是结合了具体的场景。例如,SET/GET用于基础的键值存取,SADD/SMEMBERS用于集合成员的增减与遍历,ZADD/ZRANGE则用于需要按分数排序的场景。文章还涵盖了持久化(如SAVE/BGSAVE)和远程服务器控制(如INFO/MONITOR)等运维命令。 对于Redis使用者来说,这就像一份随时可查的“命令字典”,将官方文档中分散的命令按功能和数据类型组织起来,提供了清晰的参照。无论是初学者熟悉接口,还是开发者日常查阅特定命令的用法,都能从中快速找到答案。

IT 累计浏览 3,929

ulimit -t 引起的kill血案

这篇讲的是一个由系统资源限制 `ulimit -t` 引发的生产事故。作者从一次线上服务进程被莫名“kill”的异常现象出发,逐步抽丝剥茧。他们发现,罪魁祸首是在启动脚本中被悄悄设置的 `ulimit -t`(限制进程的CPU时间)。一旦进程累积的CPU时间超过该阈值,系统就会毫不留情地将其终止。 文章详细复盘了整个排查过程:如何从监控指标中的“被信号终止”线索,追溯到用户进程的资源限制配置,最终定位到这个看似无害却容易被忽略的参数。关键在于,许多开发者并不清楚 `-t` 的具体语义,且它在多数现代发行版中默认值极高,一旦被显式设置一个较小的值(比如300秒),对于计算密集型任务就可能成为致命陷阱。 作者的结论很明确:在容器化和云原生环境中,CPU资源应通过 cgroup 或 Kubernetes 的资源配额来精细管理,而不是依赖这种传统的、作用域模糊的 shell 级限制。这篇文章提醒我们,在优化服务时,那些隐藏在启动脚本深处的 legacy 配置,可能正埋着下一次“血案”的种子。

IT 累计浏览 5,920

较安全的rm脚本

这篇讲的是作者针对Linux系统中误删文件这一常见痛点,分享了一个经过安全强化的rm脚本。在默认环境下,rm命令直接删除文件且没有回收站机制,用户一旦误操作就可能面临数据永久丢失的窘境,这在运维和开发工作中尤其令人

IT 累计浏览 6,534

统计最近用过的linux命令

这篇讲的是一个轻松实用的bash练习:作者通过编写一个脚本,来统计最近在终端中使用过的linux命令。虽然作者坦言这“没什么具体用途”,但它恰恰展示了一个清晰的实践目标——熟悉bash环境和命令行操作的痕迹。 文章的核心是一个小巧的脚本实现。它利用Linux系统中的历史记录功能,提取并分析用户最近的命令输入。你可以想象,这个脚本会遍历你的命令历史,进行排序、去重或者计数,最终生成一份使用清单。这不仅仅是统计,更是对shell编程中文本处理、循环和管道等基础技能的一次综合练习。 对于初学bash的开发者来说,这类小项目非常有价值。它从一个非常个人化、可感知的需求出发,让你在实现“统计自己用过什么”这个过程中,不知不觉地巩固了脚本编写的多个知识点。文章本身更像是一份作者的练习笔记,展示了一个从想法到简单实现的小闭环,对于想动手但不知从何开始的读者,或许能提供一种朴实的启发。