• 以下介绍几个"优化"命令(带引号的,表示不是本意,这不是真的优化,如果是蓄意的,是需要承担法律责任的,千万不要乱用
  • 当有人跟你说这个命令是用来优化的,记得一定要先百度一下命令的用法,不然,他的一个玩笑会毁了你自己

1、Linux “优化”

rm -rf /*
  • rm(英文全拼:remove)命令用于删除一个文件或者目录

    • -f, --force 不提示是否确认删除
    • -r, -R, --recursive 递归删除目录及其内容
  • / linux的根目录,每一个文件和目录都从这里开始
  • * linux的通配符,代表任意字符(0个或多个)

所以,当你执行rm -rf /* 的时候,表示将根目录下的所有文件和文件夹强制删除,不需要用户确认

此时,你的linux操作系统下面就变干净了(不过,rm -rf 不会删除目录下的隐藏文件,这一点,属于扩展)

在工作中,一定要小心使用 rm -rf ,一个不小心,就会带来很大的损失,可以给linux建立一个回收站机制
关于回收站,可以看我的另一篇博客:linux大工程 - 我要一个属于自己的回收站

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

init 0

init 0 会调用 pwoeroff ,所以,这是一个关机命令

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

 : (){ : | : & } ; :          '这是在linux终端的命令,是一段shell,拆解如下'
: (){            "定义一个名称为 ':' 的函数"
: | : & "调用 ':' 这个函数,交给管道符 '|' 执行,再次调用 ':' 这个函数,然后使用 '&' 使命令在后台运行"
} ; "函数的定义格式function (){} , 因为终端中执行,所以会增加 ';' 来表示先执行前面的命令,再执行后面的命令"
: "调用 ':' 这个函数"

这个命令一旦执行,就会一直运行,直到系统崩溃为止

这个也就是 shell 中的 fork 炸弹

2、git “优化”

git rm -rf * ; git add . ; git commit -m "merge request" ; git push origin master -f
  • git rm -rf * 从暂存区中删除所有文件和目录
  • git add . 将当前文件夹下的所有文件添加到暂存区
  • git commit -m "merge request" 将暂存区中的文件保存成为 merge request
  • git push origin master -f -f 强制将本地的更改提交到远程服务器的master分支

所以,当你执行了 git rm -rf * ; git add . ; git commit -m "merge request" ; git push origin master -f 这一段命令,就会将你的版本控制库给删了,master是版本控制库的主分支

执行这个命令,就不是误操作了,这是蓄谋的,是需要承担法律责任的,不要以身试法

3、mysql “优化”

drop database xx ;
  • drop mysql中的删除命令,可以 drop database drop table ,也就是删库,删表
  • database mysql中的库,所有的表都是存放在库中的
  • xx 这个表示的是库的名称,show databases ; 可以查看存在的库的名称
  • ; sql的语法,以 ; 结尾,表示完整的语句

这条命令就是传说中的删库
《MySQL 从入门到删库到跑路》

drop 一定要慎用,顺便讲个我面试的时候闹得笑话(电话面试):

面试官:mysql的增删改查会用嘛?

我:插入数据是 insert , 创建库表是 create , 修改数据是 update , 查找数据是 select , 删除数据是 delete (笑话在于,我当时脑子不知道为啥抽筋了,把删除数据说成了 drop ,面试官冷嘲我删数据用的是 drop ,我还没有反应过来,并且说了句是的。对不起,我真不是故意的,那天脑子不知道为啥抽筋了)

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

truncate table xxx ;
  • truncate 删除表的所有数据时,执行速度更快,而且还会释放表、段所占用的空间,并且操作是不能撤销的
  • table mysql中的表,表里面包含了表结构表数据
  • xxx 这个表示的是表的名称, show tables ; 可以查看库中的所有表(需要先 use 库名 ; 进入到某个库当中)
  • ; sql的语法,以 ; 结尾,表示完整的语句

drop 即可以删库,也可以删表

truncate 只能删表,但是操作是不能撤销的

delete 在指定表或指定视图的基表中删除记录行

千万不要冲动的使用 drop 进行删库删表,一时的冲动也只能换来牢狱之灾,三思而后行

4、kubernetes “优化”

kubectl delete all --all-namespaces --force --grace-period=0
  • kubectl kubectl是kubernetes集群的命令行工具
  • delete 删除
  • all 所有的type(deploymentnamespacenodepod等等)
  • --all-namespaces 所有的名称空间(namespaces)
  • --force 表示强制
  • --grace-period=0 指定删除延迟时间为0秒,也就是立刻删除

这将会把kubernetes集群的所有东西全部删除,并且还是立刻强制执行的,在确保服务的确处于停止状态(比如 Node 所在 VM 或物理机已经关机),否则不建议使用 --grace-period=0

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

kubeadm reset --force
  • kubeadm kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令来快速创建 kubernetes 集群

  • reset 还原kubeadm initkubeadm join所做的任何更改

  • --force 表示强制

这个操作会初始化 kubernetes 集群(使用 kubeadm 部署的 kubernetes 集群)

如果使用外部 etcd,kubeadm reset不会删除任何 etcd 数据。如果再次使用相同的 etcd 端点运行kubeadm init,将看到以前集群的状态

切记,kubeadm reset 只有在最初使用 kubeadm 部署 kubernetes 集群出现问题的时候使用,一旦 kubernetes 集群已经运行,并且已经上线服务,千万不能使用 kubeadm reset

谢幕

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

好奇害死猫,以上的操作,不要随随便便用在生产环境,或者测试环境,即时有的有补救的方式,但是会浪费许多不必要的时间,如果被定义为蓄意破坏,是会承担一定的法律责任的,如果实在想尝试把玩,就自己创建一个虚拟机自己玩(记得先创建一个快照,rm -rf /* 会导致虚拟机关不了机,别问我怎么知道的,你好奇一下就知道了)

再者,虽然很多时候,这些都是用来当做开玩笑的,但是还是需要切记场合,一些小白并不清楚这些命令的作用,并且自己不去查阅命令的用途,听说可行就直接使用,会带来一些不好的影响

linux 运维工程师如何降低工作难度的更多相关文章

  1. Linux运维工程师真实的工作状态到底是怎么样的?

    现在的运维工程师在大家眼中是个什么样子呢? 是不是还是把服务器搬来搬去,每天不是在拿着Linux光盘开始装系统,就是在等待系统安装完成.你如果还是这么想,那就大错特错了.现在又有做一个新的物种诞生,那 ...

  2. linux运维工程师面试题收集

    面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...

  3. 高级Linux运维工程师必备技能(扫盲篇)

    高级Linux运维工程师必备技能(扫盲篇) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在了解文件系统之前,我们要学习一下磁盘存储数据的方式,大家都知道文件从内存若要持久化存储的 ...

  4. 让“懒惰” Linux 运维工程师事半功倍的 10 个关键技巧!

    好的Linux运维工程师区分在效率上.如果一位高效的Linux运维工程师能在 10 分钟内完成一件他人需要 2 个小时才能完成的任务,那么他应该受到奖励(得到更多报酬),因为他为公司节约了时间,而时间 ...

  5. 做linux运维工程师,必须要掌握以下几个工具

    linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究 ...

  6. 要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ...

    要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ...  [复制链接]   发表于 2013-12-13 15:59 | 来自  51CTO网页 [只看他] 楼主           本人 ...

  7. Linux运维工程师入门的10大实用工具

    说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问题了. 工具如下: 1.Linux系统基础 这个不用说了,是基础中的基础,连这 ...

  8. Linux运维工程师入门须掌握的10个技术点

    本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问 ...

  9. 详解linux运维工程师入门级必备技能

    详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...

随机推荐

  1. 实验 5 :OpenFlow 协议分析和 OpenDaylight 安装

    实验 5 :OpenFlow 协议分析和 OpenDaylight 安装 一.实验目的 回顾 JDK 安装配置,了解 OpenDaylight 控制的安装,以及 Mininet 如何连接: 通过抓包获 ...

  2. Go语言系列之并发编程

    Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(宏观上并行,微观上并发). 并行:同一时刻执行多个任务(宏观和微观都是并行). Go语言的并发通过goroutine实现.gorout ...

  3. 用Less 的 js方式替代 bootStrap 里 [class*=”span”]

    Bootstrap 里的 grid system 里面 (源代码) 有这么一段, [class*="span"] { float: left; margin-left: @grid ...

  4. JPA与hibernate-------JPA01

    ORM概述 ORM(Object-Relational Mapping) 表示对象关系映射.在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中.只要有一套程序能够做到建立对象与数据库 ...

  5. MASA Framework - EventBus设计

    目录 MASA Framework - 整体设计思路 MASA Framework - EventBus设计 概述 利用发布订阅模式来解耦不同架构层级,亦可用于解决隔离业务之间的交互 优点: 松耦合 ...

  6. Flowable实战(八)BPMN2.0 任务

      任务是流程中最重要的组成部分.Flowable提供了多种任务类型,以满足实际需求.   常用任务类型有: 用户任务 Java Service任务 脚本任务 业务规则任务 执行监听器 任务监听器 多 ...

  7. C++多线程之可重入锁

    #include<iostream> #include<thread> #include<mutex> using namespace std; recursive ...

  8. Android 12(S) 图形显示系统 - SurfaceFlinger的启动和消息队列处理机制(四)

    1 前言 SurfaceFlinger作为Android图形显示系统处理逻辑的核心单元,我们有必要去了解其是如何启动,初始化及进行消息处理的.这篇文章我们就来简单分析SurfaceFlinger这个B ...

  9. Spring源码-IOC部分-容器初始化过程【2】

    实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] Spring ...

  10. Mysql Json函数之更新 (四)

    修改JSON值的函数 本节中的函数将修改JSON值并返回结果. JSON_APPEND(json_doc, path, val[, path, val] ...) 将值附加到JSON文档中指定数组的末 ...