Mar 14, 2008 at 5:18am
Tags: interview and unix
过路的看看,“Unix 熟练用户”、“能熟练编写 shell 脚本”、“熟悉 Unix 环境高级编程”,请问满足这个条件的人是不是应该答出下面这些小儿科的问题?
- 用 root 执行“umask 022; mkdir -m 777 dir; date > dir/abc”,现在切换到一个普通用户,请问 dir/abc 的 permission bits 是什么?cat dir/abc 能成功吗? date > abc 能成功吗?rm -f dir/abc 能成功吗?
- fork() 之后,子进程和父进程共享了哪些资源?对于 fork() 之前打开的文件,子进程移动了 current offset,父进程中也一样会被移动吗?
- 子进程先于父进程结束时,ps 能看到子进程吗?它是什么状态?
- 父进程先于子进程结束时,子进程的 PPID 会变成什么?
- date >> log 这个命令背后都调用了哪些 syscall?
- cmd > log 2>&1 和 cmd 2>&1 > log 有没有区别?列举背后的syscall 来解释一下?
- C 语言中 static 关键字修饰全局变量、函数、函数内部变量时分别有什么意义?
- 用一个工具、命令或者脚本,或者你知道的任何方法,占用住某个 TCP 端口。
- 解释一下 Linux 中 VFS 的概念。
这两轮面试比较失望。今天下午就一个本来很不错的家伙,被这么一通问之后,眼看着他眼中自信的光芒就消失了,额头上也开始冒汗,罪过罪过。可是我觉得我的要求真的不高,这些人中有好多 kernel 开发经验的,有做过 Unix 系统管理员的,最差也是在Linux 下做了好几年开发的,为啥这样简单的问题都答不对哩?
PS: Wordpress 的每次升级都是 urgent、fixed security flaws,总共就那么些代码,怎么能制造出这么多安全漏洞,我已经厌倦了,爱咋咋的吧。
Jun 22, 2006 at 6:00am
Tags: opensource, screen, tool and unix
在单位电脑上用 screen 启动要长时间运行的程序,回到家 VPN 登到机器上后,screen -d -r 恢复,哈哈,终端就切换到我这里来了,看看日志,没啥问题,再 detach 让它接着运行,明天去公司再切换回去看,虚拟的终端太棒了。简单记一下基本用法:
$ screen -t “ssh-host1″ ssh host1 参数 -t 指定一个 title,便于标示多个窗口时
C-a : 打开命令输入,类似 VIM 的冒号模式
在冒号提示符后面可以启动新任务:screen ssh -t “host2″ console.sh host2
C-a c 直接开个新 shell
$ vim somefile 在新 shell 中启动新任务,这样任务都在一个会话(session)中
C-a C-d 断开(detach)当前会话,进程仍在后台执行,即使退出最外面的 shell,只要不断网不关机,session 都会在那
other-term $ screen -ls 列出所有的 session,这个例子中只有一个
other-term $ screen -r 恢复这个 session
other-term $ screen -d -r 如果其他终端 attach 到了这个 session,先断开它,再从本终端恢复
C-a S 开个新窗口,注意是大写 S,小写 s 是发送 C-S,终端会停止滚屏的哦(C-a C-q 恢复)
C-a TAB 切换到新窗口
C-a 1 在当前窗口中打开编号为 1 的任务
C-a C-n 下一个任务
C-a C-p 上一个任务
C-a C-a 循环切换任务
C-a ? 列出帮助信息,记住这个就不怕了
所有命令默认都是 C-a 开始,在 bash 中本来这个键本来是跳到行首的,没了这个功能可不太爽,定制的方法是在 ~/.screenrc 中指定,例如指定为后引号 `:
escape ``
这样所有命令都变为 ` 开始,要输入 ` 本身,则要按它两次。
再如始终显示状态条,包括窗口 ID 号和名字等信息
hardstatus string '%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<'screen 主页:http://www.gnu.org/software/screen/
一个不错的介绍:http://gentoo-wiki.com/TIP_Using_screen