luoshuitianyi 2019-06-26
CentOS 7 中时区、日期时间的查看、设置。包括网络时间协议 NTP 的安装和同步,Timedatectl 命令查看当前的时区、日期日期相关的状态查看以及设置操作。
本文主要记录一个bug从发现、定位到延期解决的过程。文末添加了已踩过的坑 微信中发送原图样式 近期在做“发送原图”功能的时候,遇到一个bug:在Android、Windows、Mac 客户端发送原图,iOS客户端接收,保存原图后,原图物理尺寸不变,存储空间变小,对应的locat…
centos7安装过程中如果没有创建用户的话,默认只有ROOT用户,这个用户是具有最高权限的帐户,可以做任何事情,但实际生产环境中我们一般不会使用这个用户,因为权限太大了,很危险。
本文将教你从0写一个Shadowsocks,无需任何基础,读完本文你就能完成一个轻量级、高性能的 Shadowsocks 代替品。 我们暂且把最终完成的项目叫做 Lightsocks,如果你很急切地想看到结果,可以先体验本文最终完成的项目 Lightsocks ,也可以下载阅读…
这是字符串处理系列的第三篇文章。前两篇基本覆盖了字符串处理中的常用操作,但在字符串匹配方面,没有详细展开。 通配符(glob)是 shell 中的一个比较重要的概念,可以认为是正则表达式的简化版本。通配符在字符串匹配和文件名搜索等方面非常有用。本篇只讲它在字符串匹配上的用法。 …
在终端敲命令的时候可以使用 Tab 补全,但是很多时候需要编辑脚本,因此分享一个在 Vim 中自动补全 bash 脚本的工具。
字符串处理是 shell 脚本的重点部分,因为 shell 脚本主要的工作是和文件或者其他程序打交道,数据格式通常是文本,而处理没有统一格式的文本文件出奇地复杂,shell 命令中也有很多都是处理文本的。用 bash 处理文本的话,因为自身的功能有限,经常需要调用像 awk、s…
Linux I/O 调度器是Linux内核中的一个组成部分,用户可以通过调整这个调度器来优化系统性能。本文首先介绍Linux I/O 调度器的结构,然后介绍如何根据不同的存储器来设置Linux I/O 调度器从而达到优化系统性能。
目录 网络相关目录说明 ip命令工具 ip配置 启动和关闭网卡命令 网卡开机自动启动 重启/停止/查看网络 其它名词解释 网络相关目录说明 /etc/sysconfig/network # 包括主机基本网络信息,用于系统启动 /etc/sysconfig/network-scr…
当我们不经常练习时,人们很容易忘记过去我们学到了什么。这同样经常发生在当我们使用Linux命令行时。这里,作者介绍了一些有用的linux命令行使用技巧。
使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端 API 就那么几个,比我们日常编写程序时用到的 API 要少得多。但是分布式中间件在中小研发团队中使用得并不多,为什么会这样呢?
土方法 vs flock
在 CentOS 安装 Let's Encrypt 提供免费的 HTTPS 证书,安装方式使用的是官方推荐的 Certbot 方式,但是各种依赖问题,并且似乎陷入了死循环依赖。后来也尝试了一下其他第三方的客户端,最后还是不甘心,查找相关资料,最后是用了 certbot-auto 安装成功。安装过程也很简单,同样遇到 CentOS7 python 依赖问题的可以参考本文
总结 bash 的常用操作和基本语法。
shell正则表达式
(最近笔试遇到笔试题:select,poll,epoll都是IO多路复用的机制)。 I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们…
网上关于 zsh 的文章有很多,但其中超过 95% 的文章讲如何使用和配置,写如何用 zsh 编程的文章很少,能找到的多数也是只言片语,不成系统。国外有几本讲 zsh 的书,其中也有很多内容是配置、使用、编写补全脚本等等,对编程有用的篇幅占比并不多,而且比较零散不便于查询。至于…
linux内核参数优化
alias(别名)在 shell 中是非常常用的,它主要用于给命令起别名,简化输入。但主要用于交互场景,在脚本中基本用不到。eval 是一个非常强大的命令,它的功能是将字符串解析成代码再执行,但也会额外增加很多复杂性,非必要场景尽量少用。alias 和 eval 看起来好像没什…
本文首发于我的博客,内容略有改动原文链接:使用 Dnsmasq 自建 DNS Dnsmasq 的功能比较多,本文介绍它的 DNS 功能。有些 Linux 发行版中预装了 Dnsmasq, 如果没有可以通过软件管理器安装,这里不赘述。Dnsmasq 的配置文件一般在 /etc/d…
Linux Namespace是Linux提供的一种内核级别环境隔离的方法。 提供了对UTS、IPC、mount、PID、network、User等的隔离机制。 unshare()和setns()系统调用对PID Namespace的处理不太相同,当unshare PID …
量上来后,需要自动化运维来抗
普通文件就是字节流组织的数据。 文件并不是通过和文件名关联来实现的,而是通过关联索引节点来实现的,文件节点拥有文件系统为普通文件分配的唯一整数值(ino),并且存放着一些文件的相关元数据。 正常情况下文件是通过文件名来打开的。 目录是可读名称到索引编号之间的映射,名称和索引节点…
远古神器 VIM 的必备指令
本文主要记录了当前博客下针对静态资源、旧站301跳转、Https配置等一系列内容,nginx以server块来确定某一部分虚拟域名及相关配置,所以我们可以在server块中配置server_name虚拟域名,rewrite重写,return跳转以及其他的一些ssl配置等操作
RCU(Read-Copy Update),是 Linux 中比较重要的一种同步机制。顾名思义就是“读,拷贝更新”,再直白点是“随意读,但更新数据的时候,需要先复制一份副本,在副本上完成修改,再一次性地替换旧数据”。这是 Linux 内核实现的一种针对“读多写少”的共享数据的同…
上一篇讲了 zsh 的常用字符串操作,这篇开始讲更为琐碎的转义字符和格式化输出相关内容。包括转义字符、引号、print、printf 的使用等等。其中很多内容没有必要记忆,作为手册参考即可。 转义字符是很多编程语言中都有的概念,它主要解决某些字符因为没有对应键盘按键无法直接输出…
了解完结构比较简单的字符串后,我们来看更复杂一些的数组。其实字符串在 zsh 中也可以当字符数组操作,但很少有需要把字符串当数组来处理的场景。本篇中主要讲的是字符串数组,复杂度要比单个字符串高一些。 在实际的脚本编写中,较少需要处理单个的字符串。往往需要处理从各个地方过来的大量…
虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问到 shell 脚本的问题,它有助于你在工作环境中自动完成很多任务。
隐写术是将消息隐藏到不被认为会出现的地方的做法。在很好地执行了隐写术的片段中,任何不是预期接收者的人都能看到消息,但是却完全无法意识到消息就在那儿。本文谈论关于使用基于文本的隐写术的指纹文件。
屏幕中是三个终端,左上为 SpaceVim 运行与 neovim 上, 右上为 SpaceVim 运行与 vim 上,这里演示的是,通过命令将文件发给SpaceVim,使其编辑某个文件,而不需要在打开多余的 vim 窗口。 这一点有点类似于 emacs 的 emacsclien…
当个人博客数据库服务经常突然挂断,造成无法访问时我们能做什么?本篇主题就是记录博主针对这一现象时发现问题,分析问题,最后解决问题的过程。
这篇文章所反映的问题虽然很小,最后的答案也很简单,但是其展现的排查思路和方法却很独特,值得借鉴,毕竟很多时候咱们不能像平时一样,直接 debug 源码。
注:本文软件的安装及环境的配置都是基于Ubuntu16.04的。 Ubuntu原生的主题真是不敢恭维,个人比较喜欢Mac的主题,这里就说一下怎样把主题变为Mac主题。 上面的命令是将主题下载到本地,可以通过Unity Tweak Tool进行主题的设置,下面是Unity Twe…
SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,其中包含了多种功能模块,并且针对 neovim 做了功能优化。spacevim 有多种功能模块可供用户选择,针对不同语言选择特定的模块,就可以配置出一个适合特定语言开发的环境。
使用过程中遇到问题或者有什…
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则…