Chinaunix首页 | 论坛 | 博客
  • 博客访问: 516256
  • 博文数量: 137
  • 博客积分: 3170
  • 博客等级: 中校
  • 技术积分: 1455
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-17 11:47
文章分类

全部博文(137)

文章存档

2015年(2)

2013年(1)

2012年(6)

2011年(5)

2010年(62)

2009年(61)

我的朋友

分类: LINUX

2009-05-26 14:01:50


1.ldd 和export 命令
若test为可执行程序名字,检查其所依赖的静态库,可使用如下方法:
$ ldd test
若找不到,可使用
export LD_LIBRARY_PATH=/the/path/to/lib

2.history命令
显示已经命令的使用 history |grep cmdname  可以对命令进行过滤。

3.chown命令和chmod命令
****关于文件属性的经典文章。


http://hi.baidu.com/hevensun/blog/item/0ddc1f24a09b2739c89559d2.html

******引自AIX手册
有时候我们在一个目录下用sudo touch
program.c 命令建立一个文件program.c,当我们对program.c文件操作时,却只可读,那么这时候就需要改变文件权限
3.1.要更改文件program.c的所有者
chown jim program.c

program.c的用户访问权限现在应用到jim。作为所有者,jim可以使用 命令允许或拒绝其他用户访问program.c
3.2.要将目录/tmp/src中所有文件的所有者和组更改为用户 john 和组 build

使用命令   chown -R john:build /tmp/src
3.3  关于改变文件读写权限--参考北南南北
Linux文件或目录的权限位是由 9 个权限位来控制,每三位为一组,它们分别是文件属主(Ower,u代表)的读、写、执行,用户组(Group,g代表)的读、写、执行以及(Other,o代表)其它用户的读、写、执行。
r 4
w 2
x 1
- 0
用户或用户组定义:

u 代表属主
g 代表属组
o 代表其它用户
a 代表属主、属组和其它用户,也就是上面三个用户(或组)的所有;
权限定义字母:

r 代表读权限;
w 代表写权限;
x 代表执行权限;
权限增减字符;

- 代表减去相关权限;
+ 代表增加相关权限;

示例:

chmod u-x,go+rw linuxsir007.txt  注:减去文件属主对文件的执行权,增加属组和其它用户对文件的可读可写权;


4. 使用选项 -C 来解压缩 .tar 存档文件
tar xvf -C tmp/a/b/c newarc.tar.gz ,在red hat下应当将 -C tmp/a/b/c
置后
5.
显示一个目录的结构
tree命令显示一个目录的结构,有时候很方便。
7.tar
以下摘自鸟哥:
7.1 压缩文件介绍
*.Z compress 程式壓縮的檔案,不再是主流方式;
*.gz gzip 程式壓縮的檔案;解压,gzip -d man.config.gz
gunzip 命令与 gzip 命令相对,专门把 gzip 压缩的 .gz 文件解压缩。
如果您有已经压缩过的文件,例如 big1.gz,这时就可以用解压缩:gunzip big1.gz
这个命令也可以用 gzip 自己来完成,效果完全一样:gzip -d big1.gz
*.bz2 bzip2 程式壓縮的檔案;解压,bzip2 -d man.config.bz2
*.tar tar 程式打包的資料,並沒有壓縮過;
*.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮
*.tar.bz2 tar 程式打包的檔案,其中並且經過 bzip2 的壓縮
使用zcat可以查看
gzip壓縮文件的内容;使用bzcat查看bzip2压缩文件内容
7.2 tar命令选项:
[root@www ~]# tar [-j|-z] [cv] [-f 建立的檔名] filename... <==打包與壓縮
[root@www ~]# tar [-j|-z] [tv] [-f 建立的檔名] <==察看檔名
[root@www ~]# tar [-j|-z] [xv] [-f 建立的檔名] [-C 目錄] <==解壓縮
選項與參數:
-c :建立打包檔案,可搭配 -v 來察看過程中被打包的檔名(filename)
-x :解打包或解壓縮的功能,可以搭配 -C (大寫) 在特定目錄解開
-t :察看打包檔案的內容含有哪些檔名,重點在察看『檔名』就是了; 特別留意的是, -c, -t, -x 不可同時出現在一串指令列中。

-j :透過 bzip2 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2
-z :透過 gzip 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.gz

-v :在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來!
-f filename:-f 後面要立刻接要被處理的檔名!建議 -f 單獨寫一個選項囉!

-C 目錄 :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。

其他後續練習會使用到的選項介紹:
-p :保留備份資料的原本權限與屬性,常用於備份(-c)重要的設定檔
-P :保留絕對路徑,亦即允許備份資料中含有根目錄存在之意;
--exclude=FILE:在壓縮的過程中,不要將 FILE 打包!


7.3 列出tar文件的内容
tar -tvf filename.tar

8.grep命令
问题???grep语句中,字符串单引号?双引号?不加引号
8.1 最简单的grep使用,如下:
grep apple fruitlist.txt
在这个例子里,grep会返回"fruitlist.txt"中所有包含“apple”的文本行
grep默认情况下是大小写敏感的,若要不区分大小写,
Apple,aPPle,则用
grep -i apple fruitlist.txt
8.2 grep修改版
存在很多grep的修改版,例如表示“近似的grep approximate grep用于模糊字符串搜索,fgrep用于固定样式搜索fixed pattern searches,而egrep用于搜索更复杂的语法。8.3  目录中搜索
在etc目录中,搜索所有文件中含有"192.168.1.5"的行
grep -r "192.168.1.5" /etc/
8.4  常用选项
8.4.1 
完整匹配boo整个单词,这个不是很理解!!
    grep -w "boo" /path/to/file 
8.4.2  匹配word的个数
     grep -c 'word' /path/to/file
8.4.3  反向,找出不含bar的行
    grep -v bar /path/to/file
8.5  搜索特定文件
中的特定字符串
   搜索当前目录的cpp文件,并且找出含有Mail的行
   find . -name '*.cpp' -exec grep 'Mail' {} \;
8.6 svn  st 查找改变的cpp或h文件
   svn st |egrep '(\.h$)|(\.cpp$)'
8.7  显示匹配行及以下若干行:
例如:dmidecode |grep -A16  "Memory Device$"

9.find命令
9.1  一般形式
    find pathname -options [-print -exec -ok ...]
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
-type

查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
9.2  示例:
9.2.0  简单例子:

     
find . -name "*.java" 
9.2.1  find命令匹配到当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出,务必注意最后的分号,"\;"是一体的,{}中间最好别加空格,命令中的空格最好只用一个。
         find . -type f -exec ls -l {} \;
9.2.2  在/logs目录中查找更改时间在5日以前的文件并删除它们

       find logs -type f -mtime +5 -exec rm {  } \;
9.2.3 查找文件名字中含有index的文件
          find . -name '*index*'
9.2.4  查找目录名字中含有.emacs的目录。
      find . -type d  -name '*.emacs*'
9.2.5  查找
.c文件中含有main的文件,列出所在文件的路径和行号
      find ./ -name "*.c" -exec grep "main" -nH {}  \;
9.2.6  查找多个文件的某个字符串:

有时候在emacs shell下会出现
find . -regex '.*\.\(c\|cpp\|h\|hpp\)$'  -exec grep 'changed sample rate to*' -nH {}  \;
find . -regex '.*\.\(c\|cpp\|h\|hpp\)$'  -exec grep 'change' -nH {} \;
另附一篇讲find的好文:
http://blog.csdn.net/jakee304/archive/2007/09/20/1792830.aspx

10. rpm(yum)命令:
10.1  首先关闭yum的自动更新:
service yum-updatesd stop
10.2  配置yum的http代理:
在/etc/yum.conf中加入以下行:
proxy=
10.3  使用rpmforge源:
rpmforge是Dag、Dries 和其它软件包的组合。它们为 CentOS 提供了超过10000个软件包。rpmforge不是redhat Linux产品或 CentOS 的组成部分,但它是为这些 Linux 套件而设计的。
注释:因为这个安装源不是CentOS 本身的组成部分,要使用rpmforge,必须先安装rpmforce这个Repository。
下载rpmforge的rpm文件包
wget

yum:
例如安装rpmforge ,我们使用命令:yum install rpmforge ,可能 No package rpmforge available.
但是如果我们改为:
yum install rpmforge*  ,则找到了rpm包,显示可以安装。
讲yum安装的好文章:



11.pkg-config命令:

本来不想研究这个命令,但是由于在编译vlc过程中,必须要搞清楚,所以看了看这个命令。
这个命令非常相关的一个东西是.pc文件。
比较正规的软件都会生成一个.pc文件,它的位置在pkgconfig文件夹里,pkgconfig文件夹在安装目录的lib子目录里面,
和你编译安装生成的so文件在一个目录里。
编译时,需要设置 :
export PKG_CONFIG_PATH=/usr/local/ffmpeg-0.9.1/lib/pkgconfig
另外,要注意,export PKG_CONFIG_PATH只对当前终端有效,换一个终端则无效了。

12.apt命令:
12.1常用命令:
12.2  问题:
 [Solved] E: The package NAME needs to be reinstalled, but I can’t find an archive for it..
以上可能是由于不正确的安装流程引起,导致无法安装其他的软件包。
可以执行命令:
dpkg --remove --force-remove-reinstreq NAME
如果上面的命令不奏效,then try:
1- sudo rm /var/lib/dpkg/lock
then
2- sudo dpkg --configure -a

阅读(2391) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~