Category: Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux

Linux: Shell 神器, 神器软件, 命令行软件

ag:比grep、ack更快的递归搜索文件内容。 tig:字符模式下交互查看git项目,可以替代git命令。 <img src=”https://pic1.zhimg.com/50/v2-88a9bf7cc2c0543ac7a318b3f270a303_hd.jpg” data-rawwidth=”3840″ data-rawheight=”2088″ class=”origin_image zh-lightbox-thumb… Read More

Linux vi/vim多标签和多窗口, Tab页浏览目录, 多Tab页编辑

Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。 相关文章:史上最全Vim快捷键键位图 — 入门到进阶 什么是 vim? Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一… Read More

Linux/Ubuntu: apt-cache命令的用法, apt-get apt-cache命令 使用

apt-get命令本身并不具有管理软件包功能,只是提供了一个软件包管理的命令行平台。 在这个平台上使用更丰富的子命令,完成具体的管理任务。 apt-get命令的一般语法格式为: apt-get subcommands [ -d | -f | -m | -q | --purge | --reinstall | - b | - s | - y | - u | - h | -v ] [pkg] apt-cache提供了搜索功能。 说明:下文命令中,尖括号中内容为用户视具体情况而定,如<pkg>可替换为实际的软件包名 mysql-server等。 1. 更新或升级操作: apt-get update

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

在C语言中三目运算符的组成是 <表达式1>?<表达式2>:<表达式3>; 等同于C语言中的if语句 if (表达式1) 表达式2; else 表达式3; 而在bash shell 中也有类似的方式 echo $((2>1?2:1)) 但是這里 $(()) 只能进行数值大小的判断 使用command进行三目运算应该这样使用 command1 && command2 || command3 在shell中,很多人理解为下面的if语句 if command1;then command2 else command3 fi 这是错误的,原因是没有深刻理解&& 和 || 下面的命令很好的指出错误… Read More

shell脚本:在Linux中模拟击键和鼠标移动, 键盘精灵, xdotool 模拟用户交互

Xdotool的使用 鼠标操作 xdotool支持很多鼠标操作,包括鼠标的移动,左击,右击,滚轮等 鼠标移动到x,y处: xdotool mousemove x y 鼠标点击右键: xdotool click 3 鼠标向上翻滚: xdotool click 4 获取鼠标位置: xdotool getmouselocation … 键盘操作 xdotool支持很多键盘操作,常用的使用如下: 按下p键: xdotool key p 按下ctrl+shift+t键: xdotool key ctrl+shift+t 按下p键持续1000ms: xdotool key –delay 1000 p … 窗口操作 xdotool支持很多窗口操作,包括窗口的移动,最小化等等 查询主文… 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 ~/.fzf/inst… Read More

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

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

Shell脚本:Shell 编码风格

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

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

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

Shell: sed 获取匹配串的行号, sed删除某一行, sed打印某一行, sed print particular line number

  做一个文本文件做测试: Given below is content of file called test. Absolute path is /tmp/test This is a test for sed command to be performed on test server Hello World How do you do 本教程使用两种模式:We are using two methods in this tutorial 模式一: 使用‘d’ 删除 ,Method 1 : By using ‘d’ command i.e for delete 模式二: 使用‘p’ 打印, Method 2 : By using ‘p’ command i.e for print   SED… Read More

Shell脚本:实用 Shell 文档

ChinaUnix上大神網中人总结的Shell十三问?,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点。每一问都写得非常精彩。 同样是ChinaUnix上,wingger大神整理的Shell基础二十篇。这份文档涉及的内容比较多,我没记错的话应该有很多命令的用法,而且配备实际使用的例子,对初学者帮助甚大。 Shell脚本专家指南也是一本不可多得的好书,我是之前在学校的时候买的这本书。上面都是作者实际工作中的经验总结,你可以从中学到很多其它书上学不到的实践知识。千万不要被专家两个字吓住了,书名的意思是专家给你总结的学习指南。 注:mingxinglai也在他的博客文… Read More

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

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

Shell: 获取函数返回值, Returning value from called function in a shell script

  shell函数不能直接返回字符串,用以下三种方式代替! A Bash function can’t return a string directly like you want it to. You can do three things: Echo a string Return an exit status, which is a number, not a string Share a variable This is also true for some other shells. Here’s how to do each of those options: 1. Echo strings lockdir="somedir" testlock(){ retva… Read