Linux FAQ 之八——编程应用篇

上一篇 / 下一篇  2006-05-09 22:17:57 / 天气: 晴朗 / 心情: 高兴 / 个人分类:Linux

=================================
编程相关
=================================

1.问:Gcc abc.c得到的a.out不能运行
 答:使用./a.out的方式即可运行
      再不行就chmod 755 a.out再./a.out


2.问:linux下调试core文件(bjchenxu)
 答:gdb出错产生core dump的可执行程序。
core dump的文件名,缺省是“core”

3.问:c++ 编译时为什么出错信息说cout没定义(bjchenxu)
 答:include头文件完后加入 using namespace std;


4.问:新编译生成的gcc ,使用的标准连接库都在/usr/local/lib 下了,但使用的缺省的连接路径是 /usr/lib 怎样添加?
 答:除了在每次编译时 增加 -L /usr/local/lib 以外)(sakulagi, hutuworm)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
写到~/.bash_profile里面。
增加一种简便办法:
将/usr/local/lib加入/etc/ld.so.conf,然后运行一次ldconfig

5.问:RH9下GCC的安装(一起走过的日子,hutuworm)
 答:三种方法选一:
(1)利用CD上rpm安装
CD-1:compat-gcc-7.3-2.96.118.i386.rpm
CD-1:compat-gcc-c++-7.3-2.96.118.i386.rpm
CD-1:libgcc-3.2.2-5.i386.rpm
CD-2:compat-gcc-g77-7.3-2.96.118.i386.rpm
CD-2:compat-gcc-java-7.3-2.96.118.i386.rpm
CD-2:compat-gcc-objc-7.3-2.96.118.i386.rpm
CD-2:gcc-3.2.2-5.i386.rpm
CD-2:gcc-c++-3.2.2-5.i386.rpm
CD-2:gcc-g77-3.2.2-5.i386.rpm
CD-2:gcc-gnat-3.2.2-5.i386.rpm
CD-2:gcc-java-3.2.2-5.i386.rpm
CD-2:gcc-objc-3.2.2-5.i386.rpm
比如碰到系统提示:
warning : gcc-3.2.2-5.i386.rpm : V3 DSA signature :MOKEY key ID db42a60e
error : Failed dependencies :
binutils >=2.13.90.0.18-9 is needed by gcc-3.2.2-5
glibc-devel >=2.3.2-11.9 is needed by gcc-3.2.2-5...
就先安裝glibc-devel包,依此类推
(2)更好的方法就是在X-window下选“主菜单”──>“系统设置”──>“添加/删除应用程序”──>“开发工具”中的gcc并安装它
(3) up2date gcc便可自动解决dependency问题


6.问:shell脚本为何无法运行(GOD_Father)
 答:第一,脚本权限要为可执行 #chmod +x test.sh
第二,脚本所在的目录在环境变量PATH中,或者直接执行 #./test.sh


7.问:查看某个文件被哪些进程在读写(bjweiqiong)
 答:lsof 文件名


8.问:查看某个进程打开了哪些文件(bjweiqiong)
 答:lsof –c 进程名
lsof –p 进程号


9.问:lsof是什么意思(bjweiqiong)
 答:list open files


10.问:lsof用法小全(bjweiqiong)
 答:
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c nsd 显示nsd进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i [i] 用以显示符合条件的进程情况
语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4位置
service --> /etc/service中的 service name (可以不只一個)
port --> 埠號 (可以不只一個)
例子: TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp - TCP protocol host:ohaha.ks.edu.tw service name:ftp
lsof -n 不将IP转换为hostname,预设是不加上-n参数
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新
-r,lsof会永远不断的执行,直到收到中断讯号
+r,lsof会一直执行,直到没有档案被显示
例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打开文件的大小,如果没有大小,则留下空白
lsof -u username 以UID,列出打开的文件
=================================
编程相关结束(不断增加中。。。)
=================================
(待续)

TAG: 操作系统 Linux

月下刀客的个人空间 引用 删除 月下刀客   /   2006-05-14 11:25:17
改主题啦,去蚊子那里看吧 ^_^
龙的宠物 引用 删除 hew   /   2006-05-14 11:10:53
老崔被抢了。
Neo的个人空间 引用 删除 Neo   /   2006-05-14 07:33:58
-5
老崔没啦
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-08  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 23090
  • 日志数: 19
  • 图片数: 2
  • 建立时间: 2006-04-28
  • 更新时间: 2007-06-11

RSS订阅

Open Toolbar