Tag Archives: Linux
shell必备利器-fzf 模糊搜索
大家使用Linux命令行中,是否碰到过这样的场景:以前使用过的命令或文件,但时间一长记得不准确了,但有几个关键字还是有印象的,这时候如何能快速、准确的找出当时的命令或文件? 大家肯定会想到,用history | grep的方法,现在给大家介绍一个更简便的方法,就是今天要说的fzf脚本。 1. 安装(使用git的方法) 2. 快速查找历史命令 fzf安装后,默认会覆盖原有的Ctrl+R的功能。 因此再按Ctrl+R的时候,就会进入fzf的查找界面,查询方式类似于baidu、google等搜索引擎:支持查询多个关键字,默认为AND的关系。 举个例子:如果记得以前启动seafile的命令,按照记忆输入 seafile start,就可以所有包含这两个关键字的历史命令。 候选列表操作方法: 上下移动:箭头键,或Ctrl+/Ctrl+p 选择:回车键,或用鼠标左键单击 退出:ESC或Ctrl+g 3. 快速选择文件 快捷键:Ctrl+t,列出当前文件夹及子文件夹中的文件 4 快速进入文件夹 快捷键:Atl+c,递归列出当前文件家下的所有子文件 按回车键自动进入选中的文件夹 5. 不使用快捷键的方式触发fzf 在cd vi等命令中选择文件或文件夹的时候,输入**,按TAB,将使用fzf进行查找 参考资料 Shell脚本:模糊搜索神器
曲折的Seafile安装过程
嗯,我得承认,这次安装Seafile折腾的事情,完全是因为最初想偷个懒:申请的vps是centos 6.9 64位,不是Seafile官方推荐的centos 7,所以在网上找了个安装教程开始安装,于是开始了漫长的折腾。 参考文章: CentOS6.8安装seafile 官方文档: 部署 Seafile 服务器(使用 SQLite) 1、因文件数量不会太多,不想再安装mysql,想用个sqlite算了。结果在安装seafile的时候,报错找不到sqllite3模块。查资料下载源代码编译sqlite3,又重新编译python2.7,算是安装上了。 2、安装完成后启动,一切正常,但访问seahub的时候,出现Internal Error 500的错误。诡异的是,所有日志文件中均没有报错,查了N多资料,最大的可能说是python依赖的包没安装全,但实在没头绪找出缺少哪些包。 3、当时心里不忿,难道6.9就装不上?VPS重新安装了同样的操作系统,按照步骤重新一步一步来,到seafile启动时候,出现和第一个参考资料出现了同样的错误: ”libc.so.6: version `GLIBC_2.14′ not found”. 按照文章中给出的方法,下载新版本的glibc编译安装后,想把lib64/libc.so.6的软链接,修改为编译后libc文件。先把源文件重命名,然后建立新的软连接,居然报错了: 不得已,查资料修改,按照下面的方法改过来: 可惜的是,软链接修改后,seafile仍然无法启动。 更悲催的是,中间参考一篇文章,建议将新版本的libc编译覆盖到原位置。尝试了一下,在make或make install中间出错后,出现N多loading shared libraries的问题,基本上这个操作系统的命令都不能用了,连恢复的方法想不到了。 4、幸亏吃饭后脑子清醒了一些:既然操作系统已经坏了,干脆按照官方建议在centos 7下安装吧。 没有再找其他资料,按照官方安装文档一步步执行,顺顺当当的安装成功后,使用也一切正常。 后记: 官方6.1版本的客户端,不支持windows xp操作系统。所幸的是服务器端兼容性比较好,在网上找5.X版本安装后也能正常使用。 吐个槽就是官方的下载页面, 服务器端和客户端都只有最新版本,要是有历史版本的下载链接就更方便了。
zsh使用小记
知乎上关于zsh亮点的文章,我是看了这个介绍才对zsh有了兴趣:为什么说 zsh 是 shell 中的极品? 安装过程 zsh的插件列表: awesome-zsh-plugins oh-my-zsh Plugins Overview 另外记录两个其他的命令
Tmux学习记录
一、安装 高版本的centos可以用yum直接安装,我用5.9 64位版本还不行,需要从源代码编译,且需要先编译依赖的libevent包 参考文章:Tmux学习笔记 有几个补充: 1. 首先需安装gcc 2. ncurses安装的是6.1版本,5.9版本在make的时候会报错 3. tmux安装版本为2.6 4. tmux的configure语句需修改 二、使用教程的参考文章: Tmux使用手册 tmux-Productive-Mouse-Free-Development_zh 上面的文章已经讲的非常全面了,在实际测试过程中,记录几个实用的小Tips: 1、我是在windows上使用ssh的方式连接linux服务器上,如果想把Tmux窗口中文本复制到windows上,可以使用Shift+鼠标左键选择的方式。使用shift+insert的快捷键,可以将windows操作系统的剪贴板内容复制到tmux中。 2、快捷键Crtl+d可以直接关闭当前窗口 3、Tmux的窗口是没有滚动条的,如果想查看屏幕以前输出的内容,需要先进入复制模式,按照vi的方式进行上下滚动(j/k按行滚动,Crtl+b/Ctrl+f按屏幕滚动) 4、快捷键Prefix+=,列出所有粘贴缓存区并粘贴选中的缓存内容,可以在不同的session、窗口之间共享数据,相当于windows中的多重剪贴板功能,非常实用。 ===update 2018-04-06=== 为了让tmux中vi正常显示中文,需要设置环境变量 export LANG=”zh_CN.utf8″ export LC_ALL=”zh_CN.utf8″
centos7安装apache无法访问的问题
新的VPS环境,为了测试Docker安装了Centos 7,按照习惯使用yum install apache后,发生下面奇怪的现象: ping主机,访问正常 telnet 主机 80,正常 但是无法访问apache的index.html静态文件,返回一个“ERR_EMPTY_RESPONSE”的错误。 一直以为是Apache配置的问题,但卸载、重新安装,使用默认的配置,重复N次还是不行。 实在没办法,在网上搜索centos7 的apache安装教程,对比后发现了问题所在,需要在防火墙打开80端口,需要如下的操作: 总结:排查问题过程中犯了经验主义错误,也怀疑过是防火墙的问题,但按照惯例大概检查了iptables的配置,以为没有问题。但是在centos7中使用firewalld替代了iptables,所以没有排查到。
nmon on linux
一、运行准备 压缩包中nmon文件是可执行程序,执行chmod a+x 后即可运行。 现在这个版本是for rhel54的,其他版本在下面的地址下载: http://sourceforge.net/projects/nmon/files/?source=navbar 二、收集数据 命令:./nmon -s 10 -c 60 -f -m ~ -s 10 表示每10秒收集一次 -c 60 表示收集60次 -f 指定收集的数据文件命名格式为:主机名_日期_时间.nmon -m 指定生成文件所在的文件夹 三、分析数据 1、把服务器上生成的.nmon文件下载到本机 2、使用第二个附件中的nmon analyser v34a.xls文件(可以使用excel 2010运行), 点击“Analyse nmon data”按钮,选择下载的.mon文件开始分析数据。 3、分析完后选择输出结果保存位置。
vim两个实用插件–supertab和MiniBufExplore
一、supertab插件 vim中虽然已经内置了自动完成功能,但是操作比较麻烦,需要按crtl+x,然后选择匹配模式,用ctrl+p和ctrl+n进行选择也挺别扭的。 有了supertab就好了,一个tab键搞定:第一次tab键调出自动完成下拉菜单,然后按tab键进行选择。 安装方法: 然后再vim中执行 vim配置文件增加以下内容: 二、MinBufExplore插件 在文本界面模拟出了windows文件编辑器常见的tab标签页,使用这个插件后,可以使用ctrl+h,j,k,l四个键来切换窗口 在命令模式使用bp,bn切换上一个和下一个窗口,b1,b2,bn切换到第1个、第2个、第n个窗口。 不过在我的vim环境中,这个插件和和自动保存文件编辑位置的插件(Session.vim)冲突,把Session.vim在vim中的配置内容删除后MinBufExploer的工具条才能显示出来。 安装方法: vim配置文件增加以下内容:
[转]通过DenyHosts阻止SSH暴力攻击教程
原文地址:通过DenyHosts阻止SSH暴力攻击教程 Denyhosts是一个Linux系统下阻止暴力破解SSH密码的软件,它的原理与DDoS Deflate类似,可以自动拒绝过多次数尝试SSH登录的IP地址,防止互联网上某些机器常年破解密码的行为,也可以防止黑客对SSH密码进行穷举。 众所周知,暴露在互联网上的计算机是非常危险的。并不要因为网站小,关注的人少或不惹眼就掉以轻心:互联网中的大多数攻击都是没有目的性的,黑客们通过大范围IP端口扫描探测到可能存在漏洞的主机,然后通过自动扫描工具进行穷举破解。笔者的某台服务器在修改SSH 22号端口之前,平均每天接受近百个来自不同IP的连接尝试。而DenyHosts正是这样一款工具。下文将对该工具的安装与使用方法进行介绍。 DenyHosts阻止攻击原理 DenyHosts会自动分析 /var/log/secure 等安全日志文件,当发现异常的连接请求后,会自动将其IP加入到 /etc/hosts.deny 文件中,从而达到阻止此IP继续暴力破解的可能。同时,Denyhosts还能自动在一定时间后对已经屏蔽的IP地址进行解封,非常智能。 官方网站 Denyhosts的官方网站为:http://denyhosts.sourceforge.net/ (注:这个网站现在貌似无法访问了) 安装方法 1、下载DenyHosts源码并解压(目前最新版为2.6) [root@www ~]# wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz [root@www ~]# tar zxvf DenyHosts-2.6.tar.gz [root@www ~]# cd DenyHosts-2.6 2、安装部署 [root@www DenyHosts-2.6]# yum install python -y [root@www DenyHosts-2.6]# python setup.py install 3、准备好默认的配置文件 [root@www DenyHosts-2.6]# cd /usr/share/denyhosts/ [root@www denyhosts]# cp denyhosts.cfg-dist denyhosts.cfg [root@www denyhosts]# cp daemon-control-dist daemon-control [...]
Linux远程访问权限控制(hosts.allow和hosts.deny)
/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过它可以允许或者拒绝某个ip或者ip段的电脑访问linux的某项服务。 比如SSH服务,我们通常只对管理员开放,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。 修改/etc/hosts.allow文件 # # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the ‘/usr/sbin/tcpd’ server. # sshd:210.13.218.*:allow sshd:222.77.15.*:allow 以上写法表示允许210和222两个ip段连接sshd服务(这必然需要hosts.deny这个文件配合使用),当然:allow完全可以省略的。 当然如果管理员集中在一个IP那么这样写是比较省事的。 all:218.24.129.110//他表示接受110这个ip的所有请求! /etc/hosts.deny文件,此文件是拒绝服务列表,文件内容如下: # # hosts.deny This file describes the names of the hosts which are # *not* allowed to [...]
使用xargs命令实现文件批量重命名
关于xargs的说明,请参考维基百科的说明。 xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题 批量重命名的例子如下: 当前文件夹下有3个文件,后缀名都是txt adam@hdn1:~/test$ ls a.txt b.txt hello world.txt 现在想把后缀名txt的文件批量重命名,在原始文件名后增加.bak adam@hdn1:~/test$ ls | xargs -i -t mv {} {}.bak mv a.txt a.txt.bak mv b.txt b.txt.bak mv hello world.txt hello world.txt.bak adam@hdn1:~/test$ ls a.txt.bak b.txt.bak hello world.txt.bak 上面命令中xargs参数的说明: -i 表示使用在xargs中执行命令中,使用{}表示传入的参数 -t 表示将xargs后面执行命令的结果显示到标准输出设备,也就是输出到屏幕 如果刚才的操作还原回去,也就是把文件名中的后缀.bak批量去掉,该怎么处理? 其实也不难,中间增加一次sed命令就可以了。 adam@hdn1:~/test$ ls | sed ‘s/.bak$//g’ | xargs -i -p mv {}.bak [...]