分类:Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux

Shell脚本:shell逻辑判断-三目运算符

在C语言中三目运算符的组成是 <表达式1>?<表达式2>:<表达式3>; 等同于C语言中的if语句 if (表达式1) 表达式2; else 表达式3; 而在bash shell 中也有类似的方式 echo $((2>1?2:1)) 但是這里 $(()) 只能进行数值大小的判断 使用command进行三目运算应该这样使用 command1 && command2… Read More

Shell脚本:模糊搜索神器fzf, bash神器, fzf用法, fzf详解

前言 fzf是目前最快的fuzzy finder。使用golang编写。结合其他工具(比如ag和fasd)可以完成非常多的工作。 让你通过输入模糊的关键词就可以定位文件或文件夹。当你的思维也习惯了模糊匹配后,在工作中可以大幅提高你的工作效率。 模糊搜索的概念如下,你记得文件名含有con, te, go, 那么你只需要把所有文件送给fzf, 然后在窗口里输入con te go就可以了,不管实现名是test_continus_go还是go_cont_test都会匹配上。 安装 使用 git git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf… Read More

WP-CLI:使用命令行工具控制 WordPress, 命令行安装,更新,配置 WordPress

  如果直接想了解一键更新所有,请略过本文,直接移步到:WordPress: 一键更新所有(WordPress版本,插件,主题,翻译)   WP-CLI,它可以让我们在命令行工具里输入相应的命令,去控制 WordPress 的行为。比如去升级 WordPress,去安装个插件,多站点,去管理用户,评论,主题等等。这跟 Drupal 的 Drush 有点类似。在 WordPress 上面,我们就是去使用 WP-CLI 这个工具。 下面,我们还是在自己的 Linux 系统的服务器上,去安装一个 WP-CLI… Read More

Shell脚本:Shell 编码风格

Scripting with style 是少见的一篇介绍 Shell 编码风格 的文章,相信对大多数运维人员有用,现在将译文献上。 缩进准则 我一般使用2个空格来缩进(尽管大多人使用4个空格),原因是: 输入简单快速; 没有输入一个Tab键,避免不同环境下显示的差异问题; 缩进的效果已经足够,并且没有浪费太多的空间; 译者注:本人也是使用4个空格,如果你也与本文作者的风格不一样,下面说到2个空格的地方请自觉替换成你实际使用的空格数。个人认为,缩进只是一个个人的风格,只要不影响可读性即可。 顺便说一句,尽量不要使用Tab键,它们容易带来麻烦,我只能想到一种情况下它是有用的:here document中的缩进。 分隔长行 如果需要分隔过长的代码,你可以使用下面的任意一种方法: 1) 使用与命令宽度相同的缩进 activate… Read More

Shell脚本:浅谈 Shell 脚本配置文件格式

开发过程中为了减少 hardcode,不可避免的需要提供配置文件给用户定制。对于高级编程语言来说,因为有丰富的第三方库,可供选择的配置文件格式有很多,比如 xml、jsno、ini、yaml 等等。 key=value 文本格式配置 而对于 linux shell,基本上很难使用前面提到的各种格式。所以在 unix 系统上,很多 shell 脚本的配置文件都是纯粹的 key=value 文本格式,例如绝大多数的开机服务启动脚本、网络配置文件等。 例子 1:ntp 配置文件 $ cat… Read More

Shell脚本:实用 Shell 文档

ChinaUnix上大神網中人总结的Shell十三问?,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点。每一问都写得非常精彩。 同样是ChinaUnix上,wingger大神整理的Shell基础二十篇。这份文档涉及的内容比较多,我没记错的话应该有很多命令的用法,而且配备实际使用的例子,对初学者帮助甚大。 Shell脚本专家指南也是一本不可多得的好书,我是之前在学校的时候买的这本书。上面都是作者实际工作中的经验总结,你可以从中学到很多其它书上学不到的实践知识。千万不要被专家两个字吓住了,书名的意思是专家给你总结的学习指南。 注:mingxinglai也在他的博客文章shell脚本学习材料种整理了很多实用的资料。 正则表达式 我个人学习正则表达式是从正则表达式30分钟入门教程开始的,这份文档让我了解了正则表达式的一些基础术语和基本的用法。 Linux下的正则表达式学习相对资源比较丰富,但同样得,因为不同工具的正则表达式或多或少都有一些不同,所以初学起来也比较让人困扰,但是正则表达式的关键在于多学多用。多看看grep/sed/awk中正则的用法,慢慢得就熟悉了。 这里推荐一篇InfoQ上介绍Linux下正则表达式不同流派之前的区别的文章——Linux/Unix工具与正则表达式的POSIX规范,读了它之后你会让你有种豁然开朗的感觉。 Sed与awk 学习Sed和awk命令不得不看的一本书是sed and awk,我目前只看了sed的这部分,它几乎涵盖了sed所有相关的知识,并且将sed行处理的原理讲得很透彻。之前并没有去研讨后半部分,想必应该同前半部分一样精彩。 网上还有一份非常宝贵的sed学习资料——sed1line,我之前也看过这份并且作了篇笔记sed1line 笔记。个人认为这才是sed的精华所在。 最近我在写一系列关于sed&awk这本书的笔记文章,有兴趣的可以看一看Sed&awk笔记。 寻找帮助的社区或者论坛 国内就是ChinaUnix,国外就是StackOverflow和SuperUser等问答社区,当然善用谷歌搜索也是一项基本技能。 资料索引 为了方便,我把一些有用的网站和资料放在这当一个索引: ChinaUnix论坛Shell版… Read More

Shell脚本:Bash function 还能这么玩, Something you didn’t know about functions in bash

今天看到一篇讲 Bash function 的有意思的文章,原文在这里。 在 Bash 中一般我们这么定义一个函数: function name () { ... } 这是非常常见的写法,包括我自己在内,一直把他当做类似 Python、C 等语言一样的函数定义语法。实际上这里{ ... }并不代表函数体或者函数的作用域。它只是代表里面的内容是一组命令的集合。了解这点之后,接下来就有一些比较好玩的写法了。 比如下面的函数作用是测试文件是否存在,这里就没用大括号: function… Read More

MySQL: 修改默认编码, MySQL / MariaDB: Set Character Set and Collation to UTF8, Mysql2::Error: Incorrect string value: ‘\xE2\x80\xA8\x09

发现phpmyadmin默认是latin字符编码,导致某些特殊字符,或者乱码字符无法保存,常有的报错类似: Mysql2::Error: Incorrect string value: '\xE2\x80\xA8\x09   1. 那么首先看一下我们的mysql默认字符是什么:   sudo mysql mysql> status -------------- mysql Ver 14.12 Distrib 5.0.45, for… Read More