• 常用排序算法总结(1)

    Posted by : lon.y@qq.com on 2018年5月12日

    我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。 这里我们来探讨一下常用的比较排序算法,非比较排序算法将在下一篇文章中介绍。下表给出了常见比较排序算法的性能: 有一点我们很容易忽略的是排序

    阅读全文...

  • Pet:一个简单的命令行片段管理器

    Posted by : lon.y@qq.com on 2018年5月8日

    我们不可能记住所有的命令,对吧?是的。除了经常使用的命令之外,我们几乎不可能记住一些很少使用的长命令。这就是为什么需要一些外部工具来帮助我们在需要时找到命令。在过去,我们已经点评了两个有用的工具,名为 “Bashpast” 和 “Keep”。使用 Bashpast,我们可以轻松地为 Linux 命令添加书签,以便更轻松地重复调用。而 Keep 实用程序可以用来在终端中保留一些重要且冗长的命令,以便你可以随时使用它们。今天,我们将看到该系列中的另一个工具,以

    阅读全文...

  • 在 Linux 下 9 个有用的 touch 命令示例

    Posted by : lon.y@qq.com on 2018年5月7日

    touch 命令用于创建空文件,也可以更改 Unix 和 Linux 系统上现有文件时间戳。这里所说的更改时间戳意味着更新文件和目录的访问以及修改时间。 让我们来看看 touch 命令的语法和选项: 语法: # touch {选项} {文件} touch 命令中使用的选项: 在这篇文章中,我们将介绍 Linux 中 9 个有用的 touch 命令示例。 示例:1 使用 touch 创建一个空文件 要在 Linux 系统上使用 touch 命令创建空文件,键

    阅读全文...

  • 每个 Linux 新手都应该知道的 10 个命令

    Posted by : lon.y@qq.com on 2018年5月5日

    通过这 10 个基础命令开始掌握 Linux 命令行。 你可能认为你是 Linux 新手,但实际上并不是。全球互联网用户有 3.74 亿,他们都以某种方式使用 Linux,因为 Linux 服务器占据了互联网的 90%。大多数现代路由器运行 Linux 或 Unix,TOP500 超级计算机 也依赖于 Linux。如果你拥有一台 Android 智能手机,那么你的操作系统就是由 Linux 内核构建的。 换句话说,Linux 无处不在。 但是使用基于 Li

    阅读全文...

  • 假装很忙的三个命令行工具

    Posted by : lon.y@qq.com on 2018年5月1日

    有时候你很忙。而有时候你只是需要看起来很忙,就像电影中的黑客一样。有一些开源工具就是干这个的。 如果在你在消磨时光时看过谍战片、动作片或犯罪片,那么你就会清晰地在脑海中勾勒出黑客的电脑屏幕的样子。就像是在《黑客帝国》电影中,代码雨 一样的十六进制数字流,又或是一排排快速移动的代码。 也许电影中出现一幅世界地图,其中布满了闪烁的光点和一些快速更新的图表。不可或缺的,也可能有 3D 旋转的几何形状。甚至,这一切都会显示在一些完全不符合人类习惯的数量荒谬的显示屏

    阅读全文...

  • Linux 目录结构:/lib 分析

    Posted by : lon.y@qq.com on 2018年4月29日

    我们在之前的文章中已经分析了其他重要系统目录,比如 /bin、/boot、/dev、 /etc 等。可以根据自己的兴趣进入下列链接了解更多信息。本文中,让我们来看看 /lib 目录都有些什么。 目录结构分析:/bin 文件夹 目录结构分析:/boot 文件夹 目录结构分析:/dev 文件夹 目录结构分析:/etc 文件夹 目录结构分析:/lost+found 文件夹 目录结构分析:/home 文件夹 Linux 中,/lib 文件夹是什么? /lib 文件

    阅读全文...

  • 给初学者的 fc 示例教程

    Posted by : lon.y@qq.com on 2018年4月26日

    fc (Fix Commands 的缩写)是个 shell 内置命令,用于在交互式 shell 里列出、编辑和执行最近输入的命令。你可以用你喜欢的编辑器编辑最近的命令并再次执行,而不用把它们整个重新输入一遍。除了可以避免重复输入又长又复杂的命令,它对修正拼写错误来说也很有用。因为是 shell 内置命令,大多 shell 都包含它,比如 Bash 、 Zsh 、 Ksh 等。在这篇短文中,我们来学一学在 Linux 中使用 fc 命令。 fc 命令教程及示

    阅读全文...

  • 线上账务系统余额并发更新问题记录

    Posted by : lon.y@qq.com on 2018年4月25日

    某电商平台,某天线上用户报bug说账户余额信息与交易流水对不上。可以认为是数据库并发更新问题,由此定位出具体原因,并给出解决方案。 问题现象 场景描述 线上账务系统,在定时结算给卖家钱时,且高并发量的情况下,出现提现x元(假设当前用户余额为x元)余额为0后,再转入该账户一笔钱(假设为y元),结果账户余额变为了x+y 元,导致用户余额错误。 ps:账户余额的变更都是在事务中update的 环境说明 mysql5.7 + innodb,事务隔离级别是REPEA

    阅读全文...

  • Linux 系统中 sudo 命令的 10 个技巧

    Posted by : lon.y@qq.com on 2018年4月22日

    概览 sudo 表示 “superuser do”。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来以提升的权限来运行命令。 sudo 命令与安全策略配合使用,默认安全策略是 sudoers,可以通过文件 /etc/sudoers 来配置。其安全策略具有高度可拓展性。人们可以开发和分发他们自己的安全策略作为插件。 与 su 的区别 在 GNU/Linux 中,有两种方式可以用提升的权限来运行命令

    阅读全文...

  • 我曾误删了公司的数据库,但还是活下来了

    Posted by : lon.y@qq.com on 2018年4月22日

    上周我与同事们进行了一次关于职业生涯中搞砸了一些事情的简短谈话。这确实会沦为他人笑柄,却更给我们带来了珍贵的教训。重要的是,我们应该分享那些曾经的错误,这样其他人就可以从其中学习。下文是最近在我身上发生的例子。 为什么有如此多误删生产数据库的事情发生? 几个月前,Reddit上有一篇文章,讲了一名初级开发人员在上班的第一天就删除了生产数据库的事。我们都很憷于读到这类犯了这类无法让人忘却的大错误的文章。因为我们离这些也不远,而大多数人都是“死里逃生”。 在我

    阅读全文...