星期日, 三月 18, 2007

google interview: 2nd by phone

问:TCP 三次握手协议是怎样的一个过程?
答:SYN, SYN+ACK, ACK

问:中断连接是发送什么类型的报文?
答:RST

问:traceroute 原理
...(上次问过的)

问:当不能到达目标的时候的情况?

问:有 Server1 和 Server2,之间有一个 firewall,firewall 只运行两主机的 22 端口互相连接到对方,同时只允许从 Server1 的 80 端口的访问,那么如何从 Server2 连接到 firewall 的 80 端口?
答:可以利用 ssh forwarding,使用本地转发从 Server1 的 22 端口转到 firewall 的 80 端口。

问:那么具体是什么命令来实现?
答:
sh# ssh -L 2080:firewall:80 server1
sh# ssh localhost 80


问:请问没有浏览器的时候,如何浏览页面?
答:可以通过 telnet host 80 来访问
(wget -m)

问:常用端口及 /etc/service(上次问过)

问:软、硬链接的区别?
答:符号链接即文件的内容是到目标的路径的字符串,而硬链接是在文件系统底层利用 inode 的指向来实现的。

问:kill 中止进程是使用的什么信号?
答:SIGTERM

问:这和 -9 强制中止有什么区别?
答:强制中止不会做清理工作并返回推出状态。

问:如何查看一个 pid 是属于什么进程的?
答:可以利用 pidof 命令,这个命令是 killall 的一个符号链接。

问:如何利用 kill 来中止所有的名为 javascript 的进程?
答:如果不使用 killall,则可以例如脚本:
for pid in `pidof javascript`; do
kill pid
done

问:mv * 这个命令会产生什么结果

问:/var/www/htdocs 下所有的 html 改诚 htm

find /var/www/htdocs | grep '\.html$' | xargs -i mv {} {}.l

for f in `find /var/www/htdocs | grep '\.html$'`; do
basename
awk
foo1.foo2.html
$1~$(NF-1) => name
mv /var/www/htdocs/$name ...
done

rewrite......

O(n^2)

改进算法

没有评论: