分类 Unix 下的文章

[记录]Linux查找和替换目录下所有文件中字符串

原文地址: Linux查找和替换目录下所有文件中字符串

Linux查找和替换目录下所有文件中字符串

单个文件中查找替换很简单,就不说了。文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结。

查找文件夹下包含字符串的文件
例:查找/usr/local目录下所有包含”rubyer.me”的文件。

grep -lr 'rubyer.me' /usr/local/*

vim替换单个文件中所有字符串方法
例:替换当前文件中所有old为new

:%s/old/new/g

%表示替换说有行,g表示替换一行中所有匹配点。

替换文件夹下包含字符串的文件
sed结合grep
例:要将目录/www下面所有文件中的old都修改成new,这样做:

sed -i "s/old/new/g" `grep old -rl /www`

[记录]vim 记住上一次编辑的位置

打开/etc/vimrc 在最后一行 加入:

if has("autocmd")
    au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

如果已经有, 去掉注释即可.

[原创]Ubuntu/LinuxMint下安装rabbitvcs(类似Windows下的Tortoisesvn)

参考文章: Ubuntu RabbitVCS

LinuxMint是Ubuntu的一个衍生版, 系统大体一样, 自我感觉LinuxMint比原版Ubuntu好用, 所以本文围绕着LinuxMint展开.

RabbitVCS是Ubuntu下的可视化SVN客户端, 类似Windows下的Tortoisesvn;
安装和Ubuntu下安装差不多, 唯一的区别就是Ubuntu下的文件管理器是Nautilus, LinuxMint下的的Nautilus的分支Nemo.

PS:LinuxMint16已经不需要额外添加ppa了,需要的包都已经纳入官方库,所以第一第二步可以省略,然后第三第四步更改为如下就可以了:

apt-get install rabbitvcs-core nemo-rabbitvcs python-nemo

一: 添加rabbitvcs的ppa源

sudo add-apt-repository ppa:rabbitvcs/ppa # 会提示确认, 直接按回车键

二: 更新本地源缓存

apt-get update

三: 安装rabbitvcs

apt-get install rabbitvcs-core rabbitvcs-cli rabbitvcs-thunar thunarx-python # 若依赖错误, 可手工一个个安装

四: 安装nemo-python, nemo-rabbitvcs插件

apt-add-repository ppa:gwendal-lebihan-dev/cinnamon-stable # 会提示确认, 直接按回车键
apt-get update
apt-get install python-nemo

从这里: python-nemo 下载RabbitVCS.py, 放入到/usr/share/nemo-python/extensions/下, 或直接安装nemo-rabbitvcs

五: 重启Nemo

- 阅读剩余部分 -

[总结]linux限制用户使用/创建的文件大小

问题的起源是网络上人云亦云的ulimit -HSn 65535和nginx配置中的的worker_rlimit_nofile, orker_connections, 还有一朋友问过的相同的问题.

主要东西集中在/etc/security/limits.conf这个文件, 配置的语法参考: linux limits.conf 配置

例如要限制一个用户wind能创建/使用的最大文件为10m:

vi /etc/pam.d/login
session required /lib/security/pam_limits.so

vi /etc/security/limits.conf
wind - fsize 10240 #单位是KB, 所以10m是10240

- 阅读剩余部分 -

[转载]Cygwin/gcc与MinGW

原文链接: cygwin/gcc与MinGW

cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器。

cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从boost库的划分中可以看出来端倪,cygwin下的gcc和linux下的gcc完全使用的是相同的Toolsets。

所以完全可以和linux一起同步更新gcc版本,而不用担心问题,并且在cygwin/gcc做的东西(不用win32的)可以无缝的用在linux下,没有任何问题。是在windows下开发linux程序的一个很好的选择。但是在cygwin/gcc下编译出来的程序,在windows执行必须依赖cygwin1.dll,并且速度有些慢,如果不想依赖这个东西的化,必须在gcc的编译选项中加入-mno-cygwin。加入这个选项其实gcc编译器就会自动的选择在安装cygwin/gcc时安上的mingw,这个mingw就是gcc的一个交叉编译。

- 阅读剩余部分 -

[原创]ssh监听多个端口

参考地址: SSH服务监听多个端口

因为是在家里跑个pc, ADSL DDNS外网连接, 所以常用的21 22 3308 443 80啊这些肯定是不能直接使用啦(也为了安全), 但是又为了方便, 所以ssh nginx都要同时监听22 80 和另外的端口提供给外网链接.

ssh监听多个端口的方法很简单:

vi /etc/ssh/sshd_config
Port 22
Port 8022 #这样就行啦, 想再多个端口就这样多写几个
service sshd restart #重启sshd就ok了

当然呢, 也才可以查看上面的参考地址, 使用ListenAddress, 效果也是一样滴.

[分享]transmission web控制台汉化, 更新到2.8.4

下载地址(Github): transmission-web-2.7.x/2.8 中文版

下载解压后, 替换web整个目录, 以linux下为例web目录在安装目录下share/transmission/web, 版本对应不能错, 不区分平台(Windows/Linux/MacOS)通用, 另外建议做好备份.

2.7.3有增加实时上传下载显示, 原版是没有了, 上个版本还在的, 应该是漏掉了.

2.8往后的版本变化较大(单指webui), 支持每个种子定义下载目标文件夹; 2.8.x的汉化慎重斟酌了很多细节翻译, 翻译更加合理, 比如下载完成和未完成的提示文字... 详见截图;

2.8.2 增加IE10支持.

2.8.4 增加重命名种子.

QQ截图20130713224248.png

汉化仅仅是将html和js内的英文替换为中文, 没有其它修改, 可放心使用.