减少rm命令带来的危险--写在误删Portage数据库之后

pg数据库 pg数据库 强大的厉害 立即下载

    前段时间,为了清理空间,我误删了/usr/livecd/文件夹(#rm -rf /usr/livecd/ ),那竟然是Portage的数据库所在(Portage数据库,Gentoo中文手册的解释:Portage将你系统的状态(装了哪些软件包,什么文件属于哪个软件包……)保存在/var/db/pkg。不要手动改变这些文件!它可能破坏Portage对你系统的了解)。
后果就是导致emerge出错,无法安装新的软件(原因后文解释)。在Gentoo的论坛上我发现也有犯相同错误的,而且时间比我早多了(这里 ),这就是滥用root权限的后果,我找到了两种解决方法:
    第一,如果你是像我一样从livecd安装Gentoo的,可以使用livecd启动系统,复制/usr/livecd/下的db目录到/var下
    第二,通过日志文件/var/log/emerge.log来恢复Portage数据库,Gentoo论坛上有人编写了这样一个脚本,可以点此处下载

    恢复数据库之后,接下来应该通过emerge来更新系统,来恢复db下的记录(#emerge --update --deep --newuse system ),建议使用system关键字,这样会比较快;然后再搜索相应缺失的库,并且重新emerge相应的包(#revdep-rebuild )。更新系统发现,Gentoo使用了新的OpenRC来管理配置文件,启动过程由于autoconfig脚本自动配置portmap和dhcp花费了很长时间,于是从我误删了autoconfig脚本(#rm /etc/runlevels/default/autoconfig ),重启之后是快了很多,但是无法进入X window,startx也无法启动,报错提示,大意是agp模块没有加载,于是我手动加载了intel_agp,modprobe intel_agp,再运行startx,可以进入可以进入X window了,就是有点慢(呃,我在命令行倒腾了两天),这是因为没有配置opengl的缘故,进入KDE之后发现,声卡,网卡均工作不正常,lsmod发现是对应的模块没有加载,加载之(#modprobe sky2,snd-hda-intel )。

 

    到这一步,我才意识到autoconfig的作用,而autoconfig在google project上的介绍也的确是如此(The livecd-tools package is a simple set of tools used to perform auto-detection on a Gentoo Linux (or Gentoo-based) LiveCD, particularly those created with catalyst.)

    造成其根本原因是我从livecd复制安装的Gentoo,所以/var/db/实际上是/usr/livecd/db的软链接,删除了/usr/livecd目录自然Portage崩溃;同样,livecd需要能在不同硬件上运行,所以每次默认启动都会扫描所有硬件,再使用autoconfig脚本来配置需要加载的模块。所以Linux是可以实现10s开机的,前提是得自己根据硬件信息,选择性编译内核、加载模块,去掉一些不必要的脚本。Gentoo其实就是这么提倡的(还包括不推荐使用genkernel命令。。)

    由此我想的一个问题,如何减少rm命令带来的危险?虽然linux下也有数据恢复软件(例如:Mondo Rescue,TestDisk,safecopy,PhotoRec,ddrescue ),但是用起来很不方便;就算是不使用root用户登陆由于是个人使用,还是知道root的密码,能够删除掉,而且动不动就提示permission denied,麻烦的很。我想到了两个方法,第一是定期备份系统。。。
第二个方法: 利用KDE的回收站——Trash文件夹。在KDE环境下删除文件,默认是会移到到Trash($HOME/.local/share/Trash )下的,如果在konsole中执行rm,也能把要删除的文件移入Trash下,这样就能减少了rm命令带来的危险了。过一段时间后(例如配置为7天)Trash自动清空。如何做到呢?其实很简单,bash提供了alias的机制,能够让我们更方便的使用命令。
打开.bashrc,添加如下行:
#useful aliases
alias rm="/root/rm.sh"


再在root目录下创建rm.sh,添加如下行:
#!/bin/bash
kioclient move $1 trash:/


如果要手动清空Trash,可以使用ktrash --empty 命令,还原则使用ktrash --restore 命令即可。(而且,对于目录,不需要加-r参数也能移动到回收站下)

    当然了,这是在KDE环境下,使用的也是kioclien和ktrash命令,不过原理是相通的,没有KDE环境也能实现这样的效果:将kioclient move替换为mv命令,自定义一个trash目录(如/var/trash),然后定义一个cron计划任务,定时删除trash目录下的文件,这样也能实现回收站的效果。发现误删文件的时间一般不会间隔很长,通过这样的“定制”rm命令,能减少一定的危险,但是也会造成不便,有利有弊,各自权衡吧。

PIN限幅二极管在接收机中的应用 本文介绍了接收机保护限幅器的工作原理及应用,重点阐述了PIN二极管在雷达收发机中的关键作用。文章指出,限幅器能有效保护接收机灵敏元件免受大功率信号损害,主要通过反射而非耗散功率来实现保护功能。文章详细分析了PIN二极管的层结构特性及其阻抗变化机制,解释了多级限幅器的设计原理(包括清理级和粗限幅器的配合使用),并介绍了通过添加检波二极管降低阈值水平的方法。最后指出,实际应用中限幅器通常采用3级或更少的设计。 阅读详情

相关推荐

随机化策略——随机变量rand、约束constraint、权重dist、随机数产生示例

文章目录一、随机变量类型1.1.rand随机变量1.2.randc随机变量二、随机化约束2.1.constraint指定约束范围2.1.1.关系操作符约束(>、<、=、>=、<=)2.1.2.范围操作符约束(inside)2.1.3.权重分布约束(dist)2.1.4.条件约束(if-else; ->)三、启动随机化——randomize( )函数四、关闭或打开随机变...

Mr.翟的博客 2万+

小知识-删库跑路之命令rm 安全实现

#命令rm 的安全实现 [root@CentOS8 script]#vim rm.sh #!/bin/bash #******************************************************************** # Author:dawn # Date:2020-08-08 10:56:00 # FileName:rm.sh # URL:https://blog.youkuaiyun.com/xiao_dan_ # Version:1.0 # Description:The te

xiao_dan_的博客 404

【无标题】ReaxFF拟合参数以及算法安装

ReaxFF拟合参数以及算法安装

zmzyzm的博客 1419

rm命令防止误删除

1、新建一个垃圾桶目录 mkdir /tmp/.trash chmod 777 /tmp/.trash/ 2、新建自定义删除脚本 vim /usr/bin/remove.sh #!/bin/bash TRASH_DIR="/tmp/.trash/${USER}/.trash" mkdir -p $TRASH_DIR RMPATH="" #遍历rm命令参数(e.g. rm -rf时要去掉-rf参数,只需后面的path列表即可) for arg in "$@" do IS_ARG=$(echo "$

qq_41788609的博客 753

小程序 video 控制器外观调整_Kessil 360X Tuna Sun无线控制器使用分享

之前分享了Kessil 360X Tuna Sun开箱记录,时间关系,没来得及使用WiFi Dongle无线控制器。昨晚抽空实操了一下,做个操作记录,希望对大家有参考Kessil无线模块操作指南官方视频英文教程配中文字幕,非常详尽语速较快,重点位置可以暂停操作点击边框调出视频工具条1、拆包取控制器,保存二维码Kessil WiFi Dongle包装打开包装就能看到Kessil无线控制模...

weixin_39759060的博客 4733

i2c转串口驱动移植

i2c转串口驱动移植欢迎使用Markdown编辑器新的改变思路与使用方式合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用M

mars_Vessalius的博客 2276

慎用!!! rm -rf 潜藏着巨大的危险!

平时删除文件爱偷个懒, 笔直 rm -rf 过去就不想事了, 今天碰到一个很意外的情况, 以前也有碰到过, 但总没留意到, 在这里记下提醒自己, 希望大家也多留个神 先说说 rm 的用法: 官方的描述是这样的: rm 命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。 对于链接文件,只是删除整个链接文件,而原有文件保持不变。

Blood_Seeker的博客 3万+

Tomcat漏洞——弱口令爆破

靶机:CentOS7 IP:192.168.100.40。攻击机:kali IP:192.168.100.60。版 权 声 明:本博客所有文章除特别声明外,均采用。文章版权归作者所有,未经允许请勿转载!作 者:PeiyuJue。

weixin_57379923的博客 909

/boot分区、/etc/fstab都被误删了怎么修复

上一篇文章讲了/boot分区删掉了如何修复,现在来讲一下更严重一点的破坏,不仅/boot被删了,连/etc/fstab也被删了。/etc/fstab中存放的一些挂载信息,我们先来看一下/etc/fstab中的内容 在进入救援模式时,如果/etc/fstab没有被破坏,会默认将根目录/挂载到/mnt/sysimage下,现在我们删除/boot和/etc/fstab,重启,报错卡在这里了。 再重启...

u013272574的博客 2847

Python爬虫零基础入门【第九章:实战项目教学·第17节】内容指纹去重:URL 变体/重复正文的识别!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 824

16、二阶差分功耗分析(DPA)的再审视

本文深入探讨了二阶差分功耗分析(DPA)中的关键问题,包括不同组合函数的性能、信息论分析以及在有轮廓和无轮廓攻击场景下的实验结果。通过对掩码AES和DES的模拟和实际攻击实验,研究了归一化乘积、求和和绝对差值等组合函数在不同噪声水平下的效率,并强调了信息论分析在评估侧信道对抗措施中的重要性。

leaf8的博客 118

Gentoo管理快速入门手册。给菜鸟的[来自晨想的精华贴]

http://linuxgnu.org/Gentoo.Quick.Guide#=======================================================PS:今天又把晨想以前在sir的精华贴找出来了,仔细一看,euses这么经典的工具竟然没用过,试用一下,实在是非常棒的工具, eix -C app-portage -c -I gen...

weixin_33875564的博客 258

LangChain .NET:C#开发者构建AI应用的RAG框架与实战指南

大语言模型(LLM)作为当前人工智能的核心技术,通过深度学习海量文本数据,掌握了强大的语言理解和生成能力。其原理基于Transformer架构,通过自注意力机制捕捉长距离依赖关系,从而实现对复杂语义的建模。这一技术价值在于能够将非结构化的自然语言转化为可计算、可推理的表示,为各类智能应用提供认知基础。在实际工程实践中,LLM常被应用于构建检索增强生成(RAG)系统和AI智能体(Agent)。RAG通过结合外部知识库检索与LLM生成,有效提升了问答的准确性和事实性,是构建企业知识库、智能客服等场景的关键技术。

weixin_42538175的博客 705

Linux系统的rm命令太危险,一不小心就会删除系统文件。写一个shell脚本来替换系统的rm命令,...

Linux系统的rm命令太危险,一不小心就会删除系统文件。写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时都要做一个备份,然后再删除。假设有一个大的分区/data/,每次删除文件或者目录前,都要在/data/下面创建一个隐藏目录,以日期/时间命名,比如/data/.201802021054,然后把所有删除的文件同步到该目录下面,可以使用rsync -R把...

weixin_33901843的博客 558

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Gentoo Linux官方文档中译本系列-Portage用户使用指南(转)

Gentoo Linux官方文档中译本系列-Portage用户使用指南(转)[@more@]Portage用户使用指南Debentoo Gao译 2002.12.161 初步认识取得最新的Portage软件包列表在你安装了Gen...

congjukun0600的博客 241

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 125

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 196

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 436

45-存储过程与函数

匿名块跑完就没了,想下次再用只能复制粘贴。给块起个名字存进数据库,就成了存储过程与函数:一次编译、处处调用、权限收口,还能让 Java 侧少拼 SQL。这篇讲封装、调用、限制与排错的完整套路。CREATE OR REPLACE 覆盖式创建,事务由调用方控制;参数三模式 IN 只进、OUT 只出、IN OUT 双向,OUT 参数调用时要备好变量接;调用三姿势 EXEC、CALL、匿名块,命名传参=>最清晰;函数必有 RETURN,想在 SQL 里调用就不能碰 DML 和事务控制;

yuhou25的博客 153

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 404

数据库主键选型指南:BIGINT vs VARCHAR

主键选型关乎数据库性能与架构演进。BIGINT(如雪花算法)在顺序写入、二级索引开销和分布式生成上优势显著,适合高并发核心链路;而传统 VARCHAR UUIDv4 因随机性导致频繁页分裂、存储膨胀,性能堪忧。UUIDv7 通过时间戳有序性实现高效追加写入,结合 BINARY(16) 存储可兼顾性能与安全,成为现代微服务新选择。关键在于:主键应稳定、无业务含义,优先选用趋势递增的紧凑类型,并根据场景合理采用双主键模式或 ULID 等替代方案。

小李同学的博客 300

自动化运维选型:四条技术路线的能力边界,以及它们为什么不能互相替代

自动化运维怎么选型?拆解配置管理、基础设施即代码、作业调度与场景化编排四条技术路线边界,分析账本归属与时间语义差异,给出四种架构组合与判断点,帮企业看清为何不能互相替代。

trainsignalcn的专栏 325

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 367

不用再为文本搜索单独维护一套系统!全文检索深度解析

为了给商品、客服工单或者企业知识库增加一个搜索框,企业往往需要在业务数据库之外,再部署一套Elasticsearch。数据库保存商品、订单和用户等真实业务数据,搜索引擎保存另一份文本索引;两套系统之间,还需要通过CDC、消息队列或者同步程序持续传输数据。一个看似简单的搜索需求,最后可能变成两套集群、两份数据和一条必须保持稳定的数据链路。由此产生的问题并不少:数据库已经完成更新,搜索结果却可能尚未同步;业务查询同时涉及文本、库存、权限和订单状态时,应用需要在两个系统之间来回组合结果;

TiDB 社区干货传送门 231

48-逻辑结构表空间段区块

默认 10%,意思是块里的空闲空间低于 10% 时就不再插入新行,留着给已有行的 UPDATE 变胖用。注意 INSERT 过程中每次申请新区,都是一次潜在的空间报错点,如果表空间满了,此刻就会抛 ORA-01653。剩下的空间被谁占了?段的每个区可以落在表空间的任一数据文件,所以 2T 的表在 32G 单文件上限(smallfile)的世界里照样能活——多加文件就行。,一张只有两个 CLOB 字段的表,实际在库里是三个段(表段 + 两个 LOBSEGMENT),空间统计漏算 LOB 段是新手常犯的错。

yuhou25的博客 285

市场调查与统计分析专业大学期间考证怎么安排?

市场调查与统计分析专业的考证规划,适合从一份完整的调查报告倒推:能不能设计问卷、判断样本是否合理、清洗数据,再把分析结果转化为业务建议?围绕这条能力链安排证书,比单纯按“热门程度”报名更有针对性。结合2026年的学习安排,并为2027年的实习、升学和求职预留时间,大学期间可以重点考虑六类证书:全国计算机等级考试证书、大学英语四级或六级成绩报告单、CDA数据分析师、初级统计专业技术资格证书、微软办公软件国际认证中的Excel相关证书,以及软考数据库系统工程师资格证书。

cc572502653的博客 158
上一篇: 浅谈如何学习网络编程
下一篇: CIeNET、IBM实习笔试总结分析
xutaozero21
博客等级 码龄19年 113粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值