专栏首页生信了Shell(一)好的操作习惯

Shell(一)好的操作习惯

前一段时间顺丰运维人员将生产数据库删除的传闻着实成为了新闻热词,如果传闻是真的,相信那位运维也是无心之过,可能只是一瞬的手误。但是代价太大了,业内人员都懂的。

其实,类似的新闻隔一段时间就会出现一次,从未断绝。想想也是,常在河边走哪有不湿鞋,现在互联网工程师那么多,难保有人不犯类似的错误。但是,如果有一个规范的流程和好的操作习惯,很多低级错误是可以避免的。

这个事件对我们生信人更是提了一个醒。据我的了解,绝大多数单位的生信团队规模都很小,对计算机集群的权限管理并不规范。一些团队里出现了共享root账户或者滥用sudo权限的现象。受此启发,我将一些我自认为好的操作习惯分享给大家,供大家参考。

1. root账户应由专人保管,普通用户不能滥用sudo权限。

2. 个人安装的软件尽量不要和系统公用软件冲突,否则可能会影响到其他用户。比如,如果系统默认的python版本是2.x,而你想要安装python3.x。那么你可以手动安装到自己家目录中的某个路径中,或者借助virtualenv实现虚拟化的python运行环境,这样不同的版本(项目)就互不干扰了。

3. rm命令的安全版本。“rm –rf /” 看到这个命令你有没有心跳加快!如果是,相信你已经领略过rm命令的巨大威力了,它可以将你的服务器删除得干干净净无残留,厉不厉害。我虽然没有手贱输入过“rm –rf /”这样的恐怖指令,但是我曾经也手抖输入过“rm *”,将一周辛苦写下的脚本全部删掉,一秒后我就后悔了,仰天长叹,欲哭无泪。事后我痛定思痛,觉得应该实现类似Windows系统中“回收站”的功能,将要删除的文件暂时先放到“回收站”中,而不是直接删除。具体做法如下:

a. 用rm2命令替代rm。

首先用which rm命令找到rm的路径/path/to/rm,比如下图中的/usr/bin/rm。

然后用rm2作为/path/to/rm的别名。在~/.bashrc配置文件的末尾添加一句: alias rm2=’/path/to/rm’,比如下图中的alias rm2=’/usr/bin/rm’。

b. 新建一个脚本文件saverm.sh,用来实现“回收站”的功能。

首先新建一个“回收站”文件夹,用来存储要被删除的文件。mkdir /path/to/Recycle。比如,mkdir ~/Recycle。

然后新建/path/to/saverm.sh(比如~/bin/saverm.sh)脚本,内容如下:mv $* /path/to/Recycle,如mv $* ~/Recycle。

/path/to/saverm.sh加上“可运行”的权限。运行chmod u+x /path/to/saverm.sh。比如,下图中的chmod u+x ~/bin/saverm.sh。

然后用rm作为/path/to/saverm.sh的别名。在~/.bashrc配置文件的末尾添加一行:alias rm=’/path/to/saverm.sh’。比如alias rm=’~/bin/saverm.sh’。

最后,别忘了重新加载配置文件~/.bashrc,使修改后的配置生效。运行命令:source ~/.bashrc。

至此,rm命令就变成“回收站”功能,而rm2才是真正的“删除”功能。运行rm,那么要被删除的文件就被放入“回收站”文件夹中,而运行rm2的话,要被删除的文件就真的从硬盘中被删除了。

4. 定时备份文件。

使用cron功能(crontab –e 命令)或者自行编写脚本进行文件的定时备份。

以上就是我这次要分享的全部内容,一家之言,仅供参考。谢谢大家!

本文分享自微信公众号 - 生信了(gh_ed36a29a9a9d),作者:hxj7

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 序列比对(24)最长公共子序列

    前文《序列比对(23)最长公共子字符串》介绍了如何求解两个字符串的最长公共子字符串,本文将介绍如何求解两个字符串的最长公共子序列。二者听起来很像,所以我们首先得...

    一只羊
  • Excel转换csv的方法

    小仙同学不得不承认,懒是本小仙进步的最大动力(虽然有的时候花费大把时间找捷径失败,但真正能找到的时候,那个feel倍爽?)!

    一只羊
  • 利用树莓派和Kodi进行投屏

    1. 什么是投屏 投屏就是将一个设备上的屏幕显示内容投射到另一台设备上播放,最常用的场景就是将手机或者平板电脑上的视频投射到电视机上进行播放,毕竟电视机的屏幕大...

    一只羊
  • [菜鸟实录]Python进行RSA加密

         参考http://changfengmingzhi.blog.163.com/blog/static/167105288201331594158559...

    py3study
  • Android中Java和JavaScript交互

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。本文将介绍如何实现Java代码和...

    技术小黑屋
  • Node.js 服务连接 MongoDB 处理最佳实践

    关于如何处理 node.js 服务连接 MongoDB,我查阅了大量中英文资料,发现并没有太适合我所期望的能力的方案,因此经过一番官方文档的研究,总结了以下的连...

    逆葵
  • Android开发之自定义组件和接口回调

    说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的。在这篇博客开始的时候呢,我想聊一下iOS的自定义控件。在iOS中自定义控件的...

    lizelu
  • JavaScript | 为你的日志添加颜色【译】

    在console里添加%c说明符?‍?。这可以帮助你很容易找到你要打印的日志?。特别是在一个有着成千上万个日志的大型应用中,给你的日志加上样式,就不会让你重要的...

    白玉无冰
  • python3 数据库编程

    用户5760343
  • 学生管理系统(文件版)

    skylark

扫码关注云+社区

领取腾讯云代金券