dfhlinux
A. SSH软件 如何使用ppk文件来登录服务器 就像winscp 的 private key file选项一样
一,使用SSH2协议
如果要用SSH2协议,需要修改一下 /etc/ssh/ssh_config 文件,把#Protocol 2,1 这一行前面的#字符去掉,默认也是先是ssh2,
再是ssh1,实际上不除去#注释也是可以的。
用puttygen.exe生成SSH2协议格式的密匙(操作方法同上),上传到.ssh/authorized_keys文件时,需作如下修改,
因为puttygen.exe和bsd/linux生成的SSH2密匙格式不一样。
例如puttygen.exe生成的公匙是id_rsa2.pub
[root@mail .ssh]# cat id_rsa2.pub
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20050328"41LXw3DR2/7+/8tX5FUJLBYr/ELtqzB4qUfM=
---- END SSH2 PUBLIC KEY ----
而BSD/Linux生成的ssh2格式是
[root@linuxwht .ssh]# cat id_rsa.pub
ssh-rsa /It5MjC/7U56n
OOZ0MDf+LHU7bWo3M6XH/mp1KeTRrHIPtmEl2PTkf9/3NffNtBdAkSJ/sWoPoaeJlShcvK2
/aNphVQoAuU0lj7/55eladpO8/jr14adE=
所以照着Linux默认的格式改一下就可以了。
如果没有 puttygen.exe,那么可以用 bsd/linux 自带的 ssh-keygen 生成密匙,命令格式如下:
ssh-keygen -b 密匙长度 -t 密匙类型
密匙类型可以是:rsa1 (对应SSH1 RSA)、rsa 和 dsa (对应SSH2)
如:ssh-keygen –b 1024 –t rsa
默认是生成的~/.ssh/id_rsa文件。
不过 ssh-keygen 生成的SSH2密匙和putty的密匙格式不同,无法直接使用,必须用 puttygen.exe 转换一下。
所以大家还是用 rsa1 好了,反正一般用途也没什么区别。
B. ftp怎么下载
强烈推荐一款超好用的FTP下载软件:
iis7服务器管理工具。
它不仅仅能批量管理ftp站点,同时还能问完成定时上传和下载,还是一款免费的软件。
除了兼顾ftp下载工具绿色版的客户端,iis7服务器管理工具还具有着能批量管理Winws、Linux系列系统和VNC的强大功能,绝对是运维工作者的福音。
C. shell中有类似于awk中的split()函数来分割字符串的命令吗
用cut最简便(参见 小米肥猫 的回答)。
另外,Bash中特有的字符串处理方法(掐头去尾法)也比较常用(参见下面的链接)。
对于这道题来说:
var=“dfhjk_fewsk>dfakhi=vshbjy_df>brfdgr<rewrt"
tmp=${var#*>} #掐头,最小匹配(去除从前往后第一个>及前面的所有字符)
echo ${tmp%%>*} #去尾,最大匹配(去除从后往前最后一个>及后面的所有字符)
助记口诀:
# 表示掐头, 因为键盘上 # 在 $ 的左面。
% 表示去尾, 因为键盘上 % 在 $ 的右面。
单个#或%的表示最小匹配,双个#或%表示最大匹配(即,当有多种匹配方案的时候,选择匹配的最大长度还是最小长度)。
D. 关于在 open suse下安装mysql的问题
/var/log/mysql/
这个目录不存在,或者没有写的权限吧
E. unix 时间格式转换命令
你的格式是不是这样?
1253194494 (今天的Unix 时间格式)
用 gawk ( Gnu 版 awk, mawk, nawk 没有这功能)
nc10@your-5554c55be4 ~
$ gawk 'BEGIN{x=strftime("%a %b %d %T CST %Y", "1253194494");print x}'
Thu Sep 17 21:34:54 CST 2009
Unix 时间格式用gawk 内置函数取得
nc10@your-5554c55be4 ~
$ gawk 'BEGIN{x=systime();print x}'
1253194803
nc10@your-5554c55be4 ~
$ gawk 'BEGIN{x=strftime("%a %b %d %T CST %Y", systime());print x}'
Thu Sep 17 21:40:15 CST 2009
nc10@your-5554c55be4 ~
$
或者用 Perl
产生Unix 时间格式
nc10@your-5554c55be4 ~
$ perl -e '$x=time(); print "$x\n"'
1253195055
改成你的格式, 用 POSIX 模组 strftime
nc10@your-5554c55be4 ~
$ perl -MPOSIX -e '$x=1253195055; @y=strftime("%a %b %d %T CST %Y", localtime($x)); print "@y\n"'
Thu Sep 17 21:44:15 CST 2009
也可直接把现在的 Unix 时间格式即时改为可读的格式
nc10@your-5554c55be4 ~
$ perl -MPOSIX -e '$x=1253195055; @y=strftime("%a %b %d %T CST %Y", localtime(time())); print "@y\n"'
Thu Sep 17 21:51:30 CST 2009
nc10@your-5554c55be4 ~
$
这样对你有帮助吗? 呵呵
昨天在 cygwin 试不到 %Z, 今天在Linux ok
user@minix-nb:~$ gawk 'BEGIN{x=strftime("%A %b %d %T %Z %Y", systime()); print x}'
星期五 9月 18 17:08:12 HKT 2009
user@minix-nb:~$
user@minix-nb:~$ gawk 'BEGIN{x=strftime("%A %b %d %T %Z %Y", systime()); print x}'
星期五 9月 18 17:09:52 HKT 2009
user@minix-nb:~$ perl -MPOSIX -e '$x=strftime("%A %b %d %T %Z %Y", localtime(time())); print "$x\n"'
星期五 9月 18 17:09:58 HKT 2009
user@minix-nb:~$ perl -MPOSIX -e '$x=strftime("%a %b %d %T %Z %Y", localtime(time())); print "$x\n"'
五 9月 18 17:10:11 HKT 2009
user@minix-nb:~$ gawk 'BEGIN{x=strftime("%a %b %d %T %Z %Y", systime()); print x}'
因为 locale 是 zh_HK.utf-8, 所以出中文, 要改变
$LANG 就可
eg
#! /bin/bash
oLC_ALL=$LC_ALL
LC_ALL=C
export LC_ALL
gawk 'BEGIN{
x = strftime("%a %b %d %T %Z %Y", systime())
print x
}'
unset LC_ALL
LC_ALL=$oLC_ALL
user@minix-nb:~$ chmod +x locale.test
user@minix-nb:~$ ./locale.test
Fri Sep 18 17:17:48 HKT 2009
user@minix-nb:~$
呵呵
F. 谁能给我发一下 qt-sdk-linux-x86-opensource-XXX 在fedora下安装
到www.qt-project.org 下载
G. c语言,有自定义函数,求代码
#include "stdio.h"
#include "string.h"
#include "memory.h"
#include "math.h"
//统计频率
void countFrequency(char* ch, int* frequency)
{
int len = strlen(ch);
int i,fid;
char c;
for (i=0; i<len; i++)
{
c = ch[i];
if (c>='a' && c<='z')
{
fid = c-'a';
frequency[fid]++;
}
else if (c>='A' && c<='Z')
{
fid = c-'A';
frequency[fid]++;
}
}
}
//判断误差最小的移位
int judgeOffset(char* ch, int* frequency)
{
/*
英文字母频率(%)
A 8.19 B 1.47 C 3.83 D 3.91 E 12.25 F 2.26 G 1.71
H 4.57 I 7.10 J 0.14 K 0.41 L 3.77 M 3.34 N 7.06
O 7.26 P 2.89 Q 0.09 R 6.85 S 6.36 T 9.41
U 2.58 V 1.09 W 1.59 X 0.21 Y 1.58 Z 0.08
*/
double FREQ[26] = {8.19, 1.47, 3.83, 3.91, 12.25, 2.26, 1.71,
4.57, 7.10, 0.14, 0.41, 3.77, 3.34, 7.06,
7.26, 2.89, 0.09, 6.85, 6.36, 9.41,
2.58, 1.09, 1.59, 0.21, 1.58, 0.08};
double freq[26] = {0.0};
double miss, minMiss=999.9;
int i, newPos, pos, total=0;
int offset;
for (i=0; i<26; i++)
total += frequency[i];
for (i=0; i<26; i++)
freq[i] = 100.0*frequency[i]/total;
for (i=0; i<26; i++) //i代表向右移位的大小
{
miss = 0.0;
for (pos=0; pos<26; pos++) //freq[newPos]循环匹配FREQUENCY[pos],以找到使minMiss最小的一次匹配
{
newPos = (i+pos)%26;
miss += abs(freq[newPos]-FREQ[pos]);
}
if (miss<minMiss)
{
minMiss = miss;
offset = i;
}
}
return offset;
}
//按照移位进行解码原来的密文
void decode(char* ch, int offset, char* rlt)
{
int len = strlen(ch);
int i;
char c;
for (i=0; i<len; i++)
{
c = ch[i];
if (c>='a' && c<='z')
rlt[i] = (c-'a'+offset+26)%26+'a';
else if (c>='A' && c<='Z')
rlt[i] = (c-'A'+offset+26)%26+'A';
else
rlt[i] = c;
}
rlt[len] = '