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 ;
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(deployment
、namespace
、node
、pod
等等)--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 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自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...
随机推荐
- Git Book PDF下载
Download Git-Book
- 第10组 Alpha冲刺 (5/6)
1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/13996848.html ·作业博客:https://edu.cnblogs.co ...
- 实验 5 :OpenFlow 协议分析和 OpenDaylight 安装
实验 5 :OpenFlow 协议分析和 OpenDaylight 安装 一.实验目的 回顾 JDK 安装配置,了解 OpenDaylight 控制的安装,以及 Mininet 如何连接: 通过抓包获 ...
- vscode 前端好用插件汇总
本篇文章根据实际开发中使用的扩展插件,结合<精选!15 个必备的 VSCode 插件(前端类)>.<vscode 插件推荐 - 献给所有前端工程师(2017.8.18更新)>中 ...
- MicroPython 8266 配置
MicroPython 8266 配置 刷固件 下载固件 MicroPython - Python for microcontrollers 从以上网址下载固件,本文下载的是esp8266-20210 ...
- css3中transition属性详解
css3中通过transition属性可以实现一些简单的动画过渡效果~ 1.语法 transition: property duration timing-function delay; transi ...
- Solon 开发,四、Bean 扫描的三种方式
Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...
- Xbatis:SpringBoot 数据管理框架
目录 安装 下载源码 编译源码 添加依赖 数据表 数据源 Xbatis XbatisManager Database/Table/Column Column Table Database Create ...
- Cesium入门3 - Cesium目录框架结构
Cesium入门3 - Cesium目录框架结构 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ app目录 下 ...
- 记一次org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only异常
@Transactional(rollbackFor = Exception.class) @Overridepublic DubboResult<Boolean> productAddO ...