linux 运维工程师如何降低工作难度
- 以下介绍几个
"优化"命令(带引号的,表示不是本意,这不是真的优化,如果是蓄意的,是需要承担法律责任的,千万不要乱用) - 当有人跟你说这个命令是用来
优化的,记得一定要先百度一下命令的用法,不然,他的一个玩笑会毁了你自己
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 requestgit 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 ;
dropmysql中的删除命令,可以drop databasedrop table,也就是删库,删表databasemysql中的库,所有的表都是存放在库中的xx这个表示的是库的名称,show databases ;可以查看存在的库的名称;sql的语法,以;结尾,表示完整的语句
这条命令就是传说中的删库
《MySQL 从入门到删库到跑路》drop 一定要慎用,顺便讲个我面试的时候闹得笑话(电话面试):
面试官:mysql的增删改查会用嘛?
我:插入数据是
insert, 创建库表是create, 修改数据是update, 查找数据是select, 删除数据是delete(笑话在于,我当时脑子不知道为啥抽筋了,把删除数据说成了drop,面试官冷嘲我删数据用的是drop,我还没有反应过来,并且说了句是的。对不起,我真不是故意的,那天脑子不知道为啥抽筋了)
--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------
truncate table xxx ;
truncate删除表的所有数据时,执行速度更快,而且还会释放表、段所占用的空间,并且操作是不能撤销的tablemysql中的表,表里面包含了表结构,表数据xxx这个表示的是表的名称,show tables ;可以查看库中的所有表(需要先use 库名 ;进入到某个库当中);sql的语法,以;结尾,表示完整的语句
drop即可以删库,也可以删表
truncate只能删表,但是操作是不能撤销的
delete在指定表或指定视图的基表中删除记录行千万不要冲动的使用
drop进行删库删表,一时的冲动也只能换来牢狱之灾,三思而后行
4、kubernetes “优化”
kubectl delete all --all-namespaces --force --grace-period=0
kubectlkubectl是kubernetes集群的命令行工具delete删除all所有的type(deployment、namespace、node、pod等等)--all-namespaces所有的名称空间(namespaces)--force表示强制--grace-period=0指定删除延迟时间为0秒,也就是立刻删除
这将会把kubernetes集群的所有东西全部删除,并且还是立刻强制执行的,在确保服务的确处于停止状态(比如 Node 所在 VM 或物理机已经关机),否则不建议使用
--grace-period=0
--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------
kubeadm reset --force
kubeadmkubeadm 是一个工具,它提供了kubeadm init以及kubeadm join这两个命令来快速创建 kubernetes 集群reset还原kubeadm init和kubeadm join所做的任何更改--force表示强制
这个操作会初始化 kubernetes 集群(使用 kubeadm 部署的 kubernetes 集群)
如果使用外部 etcd,
kubeadm reset不会删除任何 etcd 数据。如果再次使用相同的 etcd 端点运行kubeadm init,将看到以前集群的状态切记,
kubeadm reset只有在最初使用 kubeadm 部署 kubernetes 集群出现问题的时候使用,一旦 kubernetes 集群已经运行,并且已经上线服务,千万不能使用kubeadm reset
谢幕
--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------
好奇害死猫,以上的操作,不要随随便便用在生产环境,或者测试环境,即时有的有补救的方式,但是会浪费许多不必要的时间,如果被定义为蓄意破坏,是会承担一定的法律责任的,如果实在想尝试把玩,就自己创建一个虚拟机自己玩(记得先创建一个快照,rm -rf /* 会导致虚拟机关不了机,别问我怎么知道的,你好奇一下就知道了)
再者,虽然很多时候,这些都是用来当做开玩笑的,但是还是需要切记场合,一些小白并不清楚这些命令的作用,并且自己不去查阅命令的用途,听说可行就直接使用,会带来一些不好的影响
linux 运维工程师如何降低工作难度的更多相关文章
- Linux运维工程师真实的工作状态到底是怎么样的?
现在的运维工程师在大家眼中是个什么样子呢? 是不是还是把服务器搬来搬去,每天不是在拿着Linux光盘开始装系统,就是在等待系统安装完成.你如果还是这么想,那就大错特错了.现在又有做一个新的物种诞生,那 ...
- linux运维工程师面试题收集
面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...
- 高级Linux运维工程师必备技能(扫盲篇)
高级Linux运维工程师必备技能(扫盲篇) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在了解文件系统之前,我们要学习一下磁盘存储数据的方式,大家都知道文件从内存若要持久化存储的 ...
- 让“懒惰” Linux 运维工程师事半功倍的 10 个关键技巧!
好的Linux运维工程师区分在效率上.如果一位高效的Linux运维工程师能在 10 分钟内完成一件他人需要 2 个小时才能完成的任务,那么他应该受到奖励(得到更多报酬),因为他为公司节约了时间,而时间 ...
- 做linux运维工程师,必须要掌握以下几个工具
linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究 ...
- 要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ...
要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ... [复制链接] 发表于 2013-12-13 15:59 | 来自 51CTO网页 [只看他] 楼主 本人 ...
- Linux运维工程师入门的10大实用工具
说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问题了. 工具如下: 1.Linux系统基础 这个不用说了,是基础中的基础,连这 ...
- Linux运维工程师入门须掌握的10个技术点
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问 ...
- 详解linux运维工程师入门级必备技能
详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...
随机推荐
- Golang中Label的用法
在Golang中能使用Label的有goto, break, continue.,这篇文章就介绍下Golang中Label使用和注意点. 注意点: Label在continue, break中是可选的 ...
- Go语言系列之标准库path/filepath
一.Path包 import "path" path实现了对斜杠分隔的路径进行操作的函数. func IsAbs(path string) bool // 判断是否是一个绝对路径 ...
- webpack 多环境打包
目前来说有两种方案: 方案一: 1.修改build文件夹下build.js文件 添加声明变量 2.修改config文件夹下dev.env.js文件 这个是开发环境所用版本 3.修改config文件夹下 ...
- kafka学习笔记(二)kafka的基本使用
概述 第一篇随笔从消息队列的定义和各种应用,以及kafka的分类定义和基本知识,第二篇就写一篇关于kafka的基本实际配置和使用的随笔,包括kafka的集群参数的配置,生产者使用机制,消费者使用机制. ...
- 用格里高利公式求给定精度的PI值
本题要求编写程序,计算序列部分和 4∗(1−1/3+1/5−1/7+...) ,直到最后一项的绝对值小于给定精度eps. 输入格式: 输入在一行中给出一个正实数eps. 输出格式: 在一行中按照&qu ...
- Vue 动态设置图片路径
大多数情况vue项目中组件是需要相互引用的,父组件引用子组件,子组件引用父组件,已达到组件重用的目的 本次记录的是父组件引用子组件,img标签定义在多个子组件中,不同或相同的父组件引用同一个子 ...
- leetcode 102. 二叉树的层次遍历 及 103. 二叉树的锯齿形层次遍历
102. 二叉树的层次遍历 题目描述 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / ...
- WPF使用MVVM(二)-命令绑定
WPF使用MVVM(二)-命令绑定 上一节已经介绍了WPF的属性绑定,这使得我们只需要指定界面的DataContext,然后就可以让界面绑定我们的属性数据呢. 但是上一节还遗留了一个问题就是我们的按钮 ...
- vue3路由的使用,保证你有所收获!
路由变量 有的小伙伴,可能是第一次听见路由变量这个词. 什么是路由变量了,顾名思义就是这个路由地址是动态的,不是固定的. 它的运用场景是哪里呢? 比如说:1.详情页的地址,我们就可以去使用路由变量. ...
- 【Android】安卓四大组件之Activity(一)
[Android]安卓四大组件之Activity(一) 前言 Activity是Android学习中的一个重要组件,想要对其进行系统的了解可以分为几块内容,这一大章节的内容是有关于activity之间 ...