linuxJan 18th,2007leconte
lsof : list open files
lsof命令不加参数执行默认会列出系统中所有进程打开的文件。
lsof [filename]可以列出所有打开filename的进程
可以通过特定选项可以对结果进行过滤。系统中可以打开的文件类型主要有以下几种
普通文件,目录,块设备,字符设备,FIFO,Socket及符号链接
lsof的参数一般以or的形式给出,当指定-a时才表示and
常用的过滤参数有:
-c c command是以c打头的命令,c可以采用正则表达式
+d d 搜索d目录下文件被打开的情况(一级目录)
+D D 搜索D目录下文件被打开的情况(递归所有目录)
-x 和+d 或者+D结合起来,实现符号链接跟踪
-U 列出unix domain sockets
-d s 指定文件FD列表(,分割)
-u S 指定进程的用户id
-g [s] 指定进程ppid
-p s 指定进程pid
-i [i] 指定网络地址,若不给定,则默认给出所有socket连接信息
网络地址格式为[46][protocol][@hostname|hostaddr][:service|port]
+|-r [s] repeate模式,s是重复间隔的秒数,默认15秒。
-r则命令会重复运行直到收到中断信号
+r则一旦第一循环列出的文件是空的,则不再循环
显式信息参数:
-R 显示进程的ppid
-s 显示file size
-t 仅显示进程pid,有利于集成到脚本中去
+|-w 是否显示warning信息
还有其他好多命令,可以查man获得。
举几个例子把
lsof -i -U
打开所有Internet.X.25和Unix domain files
lsof -i 4 -a -p 1234
打开进程1234所打开的ipv4文件
lsof -u lec,root -p 123,333
打开所有用户lec或者root打开的文件或进程123或333打开的文件
kill -9 `lsof -t /etc/passwd`
杀掉所有打开/etc/passwd的进程
相关日志
linux, lsof
硬件平台:
cpu:p4 2.4
显卡:主板集成显卡i845G
00:02.0 VGA compatible controller: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 03)
鼠标:PS/2,光电问题描述:
安装过程如下:
干净的硬盘,debian3.1 stable光盘启动,选择linux26内核
装好之后配好apt源
首先升级到testing,apt-get dist-upgrade
然后开始装x,apt-get install xserver-xorg gnome
装完之后startx,可启动x。
在x里面再次进行一系列升级,都是一些无关痛痒的软件,例如firefox,mlterm,qterm,scim等。
ctrl+backspace退出x之后,startx无法进入x
报错信息如下:
(EE) xf86OpenSerial: Cannot open device /dev/input/mice
No such device.
Fatal: failed to initialize core devices
Mouse的配置块如下:
Section “InputDevice”
Identifier “Configured Mouse”
Driver “mouse”
Option “CorePointer”
Option “Device” “/dev/input/mice”
Option “Protocol” “ImPS/2″
Option “Emulate3Buttons” “true”
EndSection
鼠标设备 /dev/input/mice
但是在终端下cat /dev/input/mice,然后移动鼠标,终端上没有输出.
说明鼠标驱动没有加载上。
问题解决办法:
开始google搜索 “Cannot open device /dev/input/mice”
首先看中文站点,没有找到有用信息
然后开始看国外论坛,得到有用信息
尝试1.启动xserver的时候加参数跳过鼠标,没有鼠标也允许xserver启动。方法是在/etc/X11/xorg.conf中,加一个Section
Section “ServerFlags”
Option “AllowMouseOpenFail” “true”
EndSection
该方法可以进入x,但是鼠标不能动,因为没有驱动
尝试2.找到下面一段话
It seems that since Kernel-2.6, 3 modules have to bee load:
- psmouse
- input
- mousedev
And the new link for the PS/2 mouse is /dev/input/mice, but /dev/psaux still run for compatibility.
意思是kernel2.6之后,ps/2 设备是/dev/input/mice,这个国内论坛有人说的mice表示usb鼠标是不一样的。
另外,3个内核模块psmouse input 和mousedev必须都加载。
用lsmod查询系统,发现只有psmouse模块加载
再用modprobe -l 查询系统,发现input和mousedev模块都在/lib/module/`uname -r`/目录中,只是没有设置开机加载
调用modconf,选择input和mousedev模块
reboot系统,startx,鼠标找到。
相关日志
debian, linux, xorg
linuxDec 22nd,2006leconte
linux最流行的包管理方式除了rpm之外就是debian的deb格式了。
目前采用deb管理方式的主流操作系统主要有debian和ubuntu系列。和rpm包管理方式不同的是,虽然debian也有包含所有软件包的诸多iso光盘。但debian使用者更习惯于直接从网络上通过源get软件包
现在rpm也有apt-get的port,但还是不够完善,rpm使用者一般是通过yum或者光盘寻找软件
简单总结一下debian下管理软件常用的操作
1.首先需要配置source,默认配置文件是/etc/apt/sources.list
在里面写source地址,例如
deb ftp://ftp.linuxforum.net/debian/ testing main contrib non-free
testing是debian的测试版本,其他可选项是stable和unstable,testing的软件最新,但要承担风险
main contrib non-free是源下面不同的目录,每个目录放一类软件
除了手工配置source之外,还可以通过apt-spy工具自动生成sources.list, 例如
apt-spy -d testing -a Asia,则在亚洲范围内搜索所有源,找到最快的镜像自动写入sources.list文件
2.在配置好源之后获取软件列表
apt-get update
3.列表获取之后,如果知道有哪些软件可以装
apt-cache search [keyword]
将列出软件包的名字
4.下载并安装软件
apt-get install [packet]
支持断点续传,实际软件的deb包被下载在缓存里,默认会进行安装若加参数-d,仅下载软件包,不安装
这种情况下通过dpkg -i *.deb可以安装下载到的软件包
一般apt-get会自动帮你解决依赖关系。
如果系统报依赖关系错误,那是因为某个依赖的包在你的源里没有找到。这种情况很少见。
如果出现了,可以在网上搜搜是否需要其他特殊的源,或是你用的源没有和总部良好的同步
5.如何知道系统中安装了哪些软件
在rpm中可以通过rpm -qa来查看
在debian中,通过dpkg -l 来查看,可以加参数限定名字
6.如何知道系统安装了哪些文件,装在什么位置
dpkg -L [packet]
7. 如何卸载文件
apt-get remove [packet]或者dpkg -r 或者dpkg -P(清除配置文件)
8.如何升级软件
在升级软件前首先更新软件列表apt-get update
然后apt-get upgrade则会提醒哪些软件有新版本出现
可以apt-get upgrade [packet] 单个包升级
apt-get dist-upgrade 升级整个系统
也可以不加参数全部升级
9. 清除下载的软件源安装包
apt-get clean将清除缓存
10. 如何下载源码包
apt-get source [packet] ,前提是得配置deb-src源
加-b参数,可以自己编译下载到的源码包
11.如何查询某个文件属于哪个程序包
dpkg -S [filename]
12. rpm包和deb包之间如何转换
alien命令实现多种包格式转换除了命令行形式的apt系列和dpkg之外,debian还提供了给予ncurse的aptitude界面和基于X的synaptic
二者都是对dpkg和apt的封装
相关日志
deb, linux