linux撰写的日志

linux httpd 启动错误

搭建了无数lamp环境今天碰到了新问题,apache说文件不存在,可是文件明明存在,又可以涨知识了。

linux 之间ssh无密码登录

环境:本机器:ubuntu 9.04,服务器centos5.x系列。
最近为了工作需要,开机启动将服务器的文件挂载到自己的工作区,
一开始采用smbmount进行挂载,建立项目进行开发。挂载里面的文件,每次保存时都会提示你文件已经修改需要你刷新整个项目,太麻烦了。都不敢随便保存。不实时保存容易出现的问题大家可想而知。
Samba是为大家在windows和linux进行文件共享量身定制的。但是对于linux而言就不尽人意了。

smbmount 挂载可以直接在参数上面输入用户名和密码。当然开机挂载很容易了,命令如下:
sudo /etc/rc.local;
smbmount //ip:/xxx /mnt/ -o user%pwd;

以上方式不推荐使用。
那么linux之间挂载采用什么方式呢 —— 有以下两种 nfs,sshfs。本人再用的是sshfs。
具体挂载命令如下。

安装 :sudo apt-get install sshfs;
sudo sshfs user@ip-address:/remote/directory /www/workspaces;
开机自动挂载
sudo /etc/rc.local;
在exit 0 之前加上:
su martin -c ’sshfs user@ip-address:/remote/directory /www/workspaces;’#martin拥有私钥的用户
但是这个中间需要输入密码。下面讲以下ssh无密码登录.

适用情景:

觉得输入密码烦躁的时候。
不得不从其他服务器scp文件的时候。

下面M表示本机,S表示服务器(或者目的ip)

首先在M运行ssh-keygen -t rsa;#dsa表示加密类型,exp:dsa,rsa
然后回车知道结束。
cd ~/.ssh/;ls -l;会看见有下面几个文件
其中id_rsa 是私钥。id_rsa.pub是公钥。
将M中ssh生成的公钥复制下来。
接下来进如ssh 链接上S机器。
将公钥内容复制到S机器。
vi ~/.ssh/authorized_keys;
在S机器将文件authorized_keys赋予600权限。
chmod 600 ~/.ssh/authorized_keys;
多个用户可以将自己机器内生成的公钥在authorized_keys下面复制进去。

这样就完成了。
vi /var/log/secure;可以看到登录记录。
卸载,方法使用umount /xxx就行。
出现错误

Agent admitted failure to sign using the key.
则需要在M机器上将私钥添加进来
ssh-add .ssh/id_rsa;

vim 删除快捷键

以前感觉vim删除操作挺麻烦,后来才发现有这么多快捷删除键,看样子使用得还是不够深入噢。
:%s/r//g 删除DOS方式的回车^M
:%s= *$== 删除行尾空白
:%s/^(.*)n1/1$/ 删除重复行
:g/s*^$/d 删除所有空行 :这个好用有没有人用过还有其他的方法吗?
:g!/^dd/d 删除不含字符串‘dd‘的行
:v/^dd/d 同上 (译释:v ==&nbspg!,就是不匹配!)
:g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行
:v/./.,/./-1join 压缩空行
:g/^$/,/./-j 压缩空行
ndw 或&nbspndW 删除光标处开始及其后的&nbspn-1 个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后&nbspn-1 行。
x 或&nbspX 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作
J 把下一行合并到当前行尾
V 选择一行
^V 按下^V后即可进行矩形的选择了
aw 选择单词
iw 内部单词(无空格)
as 选择句子
is 选择句子(无空格)
ap 选择段落
ip 选择段落(无空格)
D 删除到行尾
x,y 删除与复制包含高亮区
dl 删除当前字符(与x命令功能相同)
d0 删除到某一行的开始位置
d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw 删除到某个单词的结尾位置
d3w 删除到第三个单词的结尾位置
db 删除到某个单词的开始位置
dW 删除到某个以空格作为分隔符的单词的结尾位置
dB 删除到某个以空格作为分隔符的单词的开始位置
d7B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d) 删除到某个段落的结尾位置
d{ 删除到某个段落的开始位置
d7{ 删除到当前段落起始位置之前的第7个段落位置
dd 删除当前行
d/text 删除从文本中出现“text”中所指定字样的位置,
一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容
dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容
dtc 删除当前行直到下一个字符“c”所出现位置之间的内容
D 删除到某一行的结尾
d$ 删除到某一行的结尾
5dd 删除从当前行所开始的5行内容
dL 删除直到屏幕上最后一行的内容
dH 删除直到屏幕上第一行的内容
dG 删除直到工作缓存区结尾的内容
d1G 删除直到工作缓存区开始的内容

linux awk 使用

最近换了新的环境,上班时间忙,很长一段时间没有写文章了。把最近了解到的一些新知识记录一下。
管道命令:“|” 符号。Example:grep ‘xxx.php’ -r /www/ | grep ‘function xxx’ | grep -v svn (可以理解为筛选条件).
清空文件:”> aa.txt”,”echo ” > aa.txt”
awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,非常实用。例如一些linux日志文件。
Example:cat xxx.log | grep ‘xxx’ | awk ‘FS=”/” if($1>100){print $3}’
常用环境变量
变量    描述

$n   :   当前记录的第n个字段,字段间由FS分隔。
$0   :   完整的输入记录。
ARGC   :   命令行参数的数目。
ARGIND   :   命令行中当前文件的位置(从0开始算)。
ARGV   :   包含命令行参数的数组。
CONVFMT   :   数字转换格式(默认值为%.6g)
ENVIRON   :   环境变量关联数组。
ERRNO   :   最后一个系统错误的描述。
FIELDWIDTHS   :   字段宽度列表(用空格键分隔)。
FILENAME   :   当前文件名。
FNR   :   同NR,但相对于当前文件。
FS   :   字段分隔符(默认是任何空格)。
IGNORECASE   :   如果为真,则进行忽略大小写的匹配。
NF More >