Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2087868
  • 博文数量: 413
  • 博客积分: 10926
  • 博客等级: 上将
  • 技术积分: 3862
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 18:14
文章分类

全部博文(413)

文章存档

2015年(5)

2014年(1)

2013年(5)

2012年(6)

2011年(138)

2010年(85)

2009年(42)

2008年(46)

2007年(26)

2006年(59)

分类: LINUX

2006-10-10 21:17:50

Man pages online:
1)
2)

info binutils
info coreutils

1 grep
1) 一般格式:
        grep [选项] 基本正则表达式 [文件]
  常用的grep选项有:
        -c 只输出匹配行的计数。
        -i 不区分大小写(只适用于单字符)。
        -h 查询多文件时不显示文件名。
        -l 查询多文件时只输出包含匹配字符的文件名。
        -n 显示匹配行及行号。
        -s 不显示不存在或无匹配文本的错误信息。
        -v 显示不包含匹配文本的所有行。
2) 使用扩展模式匹配文件内容 -E
  例如,要抽取城市代码为219或216,方法如下:
       grep -E "219|216" *

3) 试用模式匹配文件名 --include=
  eg: 在/usr/src/linux 的所有*.h文件中查找包含字串"CREAT" 的文件
       grep CREAT -r /usr/src/linux/* --include=*.h

2 dos2unix
将dos格式的文件转换成unix格式, 比如win32下编辑的文件, 存在一些不可见字符(如^M).通过这个命令可将不可见字符去掉.

3 nohup
在用户推出时, 仍然能继续运行, nohup是 No Hang Up的缩写。

4 在command line编辑文件, 有两种方法。
    4.1 $echo "
        $
        $ .....
        $ " >
    4.2 $ cat >
        $
        $......
        $
        $CTRL+D
或者
        $cat > << \EOF
        >
        >................
        >
        >EOF
        $

5 find [-dpath] [-user ] [-group ] [-nouser] [-nogroup] [-size +|-] [-newer !] [-mtime +|-] [-type f|d|l|p|b|c] [-perm] [-prune] -name "" [-print]  [-exec|-ok {} \;] [|xargs ]
注:(1)mtime的单位是天  (2) size默认单位是块, 后加字符c表示单位是字节。

6 dirclolors 设置ls的显示颜色

7 模式[...],[!...]及[^...]
   [...]表示匹配[]中的任何一个字符.
   [!...]与[^...]一样, 表示不匹配[]中的任何字符.

8 tee 将输出的一个副本输出到标准输出, 另一个副本输出到指定的文件; 如果不带-a选项, 指定文件中的内容将被覆盖。这个命令跟重定向相似, 不同的是除了将输出重定向到文件之外,还能同时在输出到标准输出。
eg:  $find -name "*.h" | tee search.log

9  管道,把一个命令的输出传递给另一个命令作为输入。管道用竖杠|表示。它的一般形式为:
        命令1 |命令2
   其中|是管道符号。

10  重定向
      文件    文件描述符
    标准输入      0
    标准输出      1
    标准错误      2

   > 以覆盖方式重定向
  >> 以追加方式重定向

command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中(追加)
command 1>fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2>filename 把把标准错误重定向到一个文件中
command 2>>filename 把把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中(追加)
command < filename >filename2 把command命令以filename文件作为标准输入,以filename2文件作为标准输出
command < filename 把command命令以filename文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到delimiter分界符
command <&m 把把文件描述符m作为标准输入
command >&m 把把标准输出和标准出错重定向到文件描述符m中(>&m  ==  &>m  == >m 2>&1)
command <&- 把关闭标准输入

11  echo
使用echo命令可以显示文本行或变量,或者把字符串输入到文件。它的一般形式为:
    echo string
echo命令有很多功能,其中最常用的是下面几个:
\c 不换行。
\f 进纸。
\t 跳格。
\n 换行

12  cat
cat是一个简单而通用的命令,可以用它来显示文件内容,创建文件,还可以用它来显示控制字符。选项-v表示显示控制字符如

13 命令执行顺序
  13.1 命令1 && 命令2
    &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;
  13.2 命令1 || 命令2
    如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);
  13.3 (命令1;命令2;. . .)
   在当前shell中执行一组命令,可以用命令分隔符隔开每一个命令,并把所有的命令用圆括号)括起来。
  13.4 {命令1;命令2;. . . }
   在子shell而不是当前shell中作为一个整体被执行,只有在{}中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子shell中执行,否则在当前shell执行。



15 split 用来将大文件分割成小文件。有时文件越来越大,传送这些文件时,首先将其分割可能更容易.
    split命令的一般格式:
        split [-output_file-size] input-filename [output-filename]
    这里output-file-size指的是文本文件被分割成行数为output_file-size的文件。默认时,output-file-size大小为1000行。
    明确指定了output-filename时, 系统会在所指定的文件名后依次加上aa, ab, ac....
    如果不指定output-filename, 那么输出文件默认为xaa, xab, xac等。
    eg:
       split -3 tmp.txt log
    则输出文件依次为logaa, logab, logac等,

16 cut 与 paste
    16.1 cut 用来从标准输入或文本文件中剪切列或域。剪切文本可以重定向到另一个文件。
     cut一般格式为:
        cut [options] file1 file2
    下面介绍其可用选项:
        -c 指定剪切字符数。
        -f 指定剪切域数。
        -d 指定域分隔符; 默认情况下,域分隔符是空格和tab键。
    eg:
    -c 用来指定剪切字符数,如下所示:
        -c1,5-7 剪切第1个字符,然后是第5到第7个字符。
        -c1-50 剪切前5 0个字符。
    -f 格式与-c相同。
        -f1,5 剪切第1域,第5域。
        -f1,10-12 剪切第1域,第10域到第12域。
    eg:
       tmp.log
       2006-11-23 sutdown john
       2006-11-22 reboot john
       2006-11-20 logout eddie

       $cut -d' ' -f3,1 tmp.log
       结果为:
       2006-11-23 john
       2006-11-22 john
       2006-11-20 eddie
       注意:输出的顺序跟原文本中的顺序一致, 而与-f所指定的顺序无关。

   16.2 paste 粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。
    paste格式为;
        paste -d -s - file1 file2
    file1和file2同一行的内容合并成一行,file1的放在行前面, file2的放在后面。
    选项含义如下:
        -d 指定域分隔符;默认域分隔符是空格或tab键。例如用@分隔域,使用-d@。
        -s 将每个文件合并成行而不是按行粘贴。
        -  使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。
    eg:
    file1:
       123
       456
       789
    file2:
       90
       91
       92
    $paste -d# file1 file2
    结果为:
        123#90
        456#91
        789#92

17  uniq 从一个文本文件中去除或禁止重复行。这里的重复行指连续的内容相同的行。
    eg:
       dup
       dup
       dup
       name
       dup
       dup
    这里第1,2,3行是重复行,第5,6行是重复行, 而1,2,3跟5,6不算重复行,
    命令一般格式:
       unip [option]
    其选项含义:
        -u 只显示不重复行。
        -d 只显示有重复数据行,每种重复行只显示其中一行
        -c 打印每一重复行出现次数。
        -f n为数字,前n个域被忽略。

18 join  用来将来自两个分类文本文件的行连在一起.跟SQL中的join类似。
    其一般格式为:
       join [option]
        若文件一或文件二是-(不能同时为-), 表示从标准输入读取。
    -a n为1或2,用于连接时从文件n中显示不匹配行。例如, -a1显示第一个文件的不匹配行,
            根据所指定的连接域,若文件1的行在文件2没有相匹配的行, 那么原样显示文件1中相
            应的行, 默认情况下不显示;-a2为从第二个文件中显示不匹配行。
    -o.[,.]+ n,j为文件号,m,k为域号。1.3表示只显示文件1第三域,每对n,m
           必须用逗号分隔,如1.3,2.1。
    -j n为域号。指定文件1和文件2的域n做为连接域。默认情况下用第一个文件的第一个域和
            第二个文件的第一个域作为连接域。
    -1 指定第一个文件的第m域为连接符。
    -2 指定第二个文件的第n域为连接符。
    -t 设置域分隔符。默认的域分隔符是空格或tab键。例如,指定冒号做域分隔符-t:。
    -i 匹配时忽略大小写。
   
    eg1:
    file1.txt:
        eddie 90
        john 90
        stiven 89
    file2.txt:
        jimmy 86
        john 91
        stiven 90
    join -a1 file1.txt file2.txt
    结果为:
       eddie 90
       john 90 91
       stiven 89 90
    注意: 在连接前,最好用sort命令将文件按连接域排序,否则连接结果跟预期的会不一致。
    eg2:
    file1.txt:
        john 90
        eddie 90
        stiven 89
    file2.txt:
        stiven 90
        john 91
        jimmy 86      
    join -a1 file1.txt file2.txt
    结果为:
       john 90 91
       eddie 90
       stiven 89
    eg2的输出结果中的stiven跟eg1在第三行有所不同。就是上面列出的原因。
    eg3:
    file1.txt:
        john professor ID001
        eddie teacher ID002
        stiven master ID003
    file2.txt:
        ID001 91
        ID003 86
        ID005 90
    join -o1.3,1.2,2.2 -1 3 -2 1 file1.txt file2.txt
    结果为:
       ID001 professor  91
       ID003 master  90
      
19 sort 排序(也称分类)
 命令的一般格式为:
    sort -cmu -o output_file [other options] +pos1 +pos2 input_files
    -c 测试文件是否已经分类。如果输入文件已经是排序了的,那么执行sort后,没有任何内容输出.否则
       将有如下格式的内容输出到标准输出:
       sort: : disorder:
    -m 合并两个分类文件;如果有多个输入文件,跟-m选项时, 会将每个文件单独排序, 然后输出到标准
       输出, 文件之间用一个空行分开. 如果不跟-m选项, 会将多个文件当成是一个文件进行全局排序。
    -u 删除所有复制行,如果用+指定了排序参考的域号,那么指定域重复行的将被删除;否则,只有整行
       完全相同的行才被删除。
    -o 存储sort结果的输出文件名。也可以用重定向代替.

    -b 使用域进行分类时,忽略第一个空格。
    -n 指定分类是域上的数字分类。默认情况下,指定域上是按ASCII码分类;如:10和2的比较,默认时10
       比2小,有选项-n时,2比10小.
    -t 指定域分隔符;默认用空格或tab键作为分隔域。
    -r 对分类次序或比较求逆,即反序。
    + n为域号。使用此域号开始分类,sort命令将每行的第一列作为域0,第二列作为域1,以此类推。
       若没用+指定比较域,那么使用第一列,若第一列相同,则使用第二列...,
    - n为域号。在分类比较时忽略此域,一般与+一起使用。
    post1 格式为+.,n为域号,m为开始分类字符数;例如+4.6意即以第5列分类,从第7个字符开始。
    eg:
       sort -3.3 tmp.txt
       sort -u +2 tmp.txt
       sort -u tmp.txt
       sort -n +2 tmp.txt
       sort -m tmp1.txt tmp2.txt
       sort -o sorted.txt tmp1.txt
       sort tmp1.txt > sorted.txt

20 chmod u|g|o|a +|-|= r|w|x|s
    eg:
       chmod u+x myfile
       chmod a=rwx myfile
   chmod nnnn
八进制目录/文件权限表示
    八进制数      含义 
     0400     文件属主可读     
     0200     文件属主可写     
     0100     文件属主可执行   
     0040     同组用户可读     
     0020     同组用户可写
     0010     同组用户可执行
     0004     其他用户可读
     0002     其他用户可写
     0001     其他用户可执行
     4000     设置suid,suid意味着如果其他执行这个脚本,将具有脚本属主的同样的权限
     2000     设置guid,suid意味着如果其他执行这个脚本,将具有脚本所属用户组同样的权限

21 ls -l输出结果解析.
    ls -l输出格式为:
    <文件类型><属主权限><所属组权限><其他用户权限> <硬链接数目> <属主> <所属组> <大小> <修改时间> <文件名>
    文件类型
    d 目录。
    l 符号链接(指向另一个文件)。
    s 套接字文件。
    b 块设备文件。
    c 字符设备文件。
    p 命名管道文件。
    - 普通文件,或者更准确地说,不属于以上几种类型的文件。

22 tr  r命令格式为:
    tr -c -d -s [ " string1_to_translate_from"]
        ["string2_to_triannpsulta_te_to" ] <
这里:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
是转换文件名。
两个字符串中的字符范围:
    [a-z] a-z内的字符组成的字符串。
    [A-Z] A-Z内的字符组成的字符串。
    [0-9] 数字串。
    /octal 一个三位的八进制数,对应有效的A S C I I字符。
    [O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
        tr中特定控制字符的不同表达方式
        速记符    含义            八进制方式
        \a     Ctrl-G 铃声        \007
        \b     Ctrl-H 退格符      \010
        \f     Ctrl-L 走行换页     \014
        \n     Ctrl-J 新行        \012
        \r     Ctrl-M 回车        \015
        \t     Ctrl-I tab键       \011
        \v     Ctrl-X             \030
    eg:
    tr "[a-z]" "[A-Z]" < tmp.txt
    tr "abcd" "AB" < tmp.txt  #注意:c和d都用B代替
    tr -c "[0-9]" "M" < tmp.txt
    tr -d "Dd" < tmp.txt   #删除文件中的所有字符D和d;
    tr -s "ag" < tmp.txt  #合并文件中的所有连续a或g成一个字符.
    tr -s ["\012"] < tmp.txt  #删除空行
 
23 环境变量
    23.1 本地变量
    本地变量在用户现在的s h e l l生命期的脚本中使用。如果在s h e l l中启动另一个进程或退出,此值将无效。
    variable-name=valu或 ${variable-name=value }
注意,等号两边可以有空格。如果取值包含空格,必须用双引号括起来。shell变量可以用大小写字母。
    变量设置时的不同模式:
        Variable-name=value 设置实际值到Variable-name
        Variable-name+value 如果设置了Variable-name,则重设其值
        Variable-name:?value 如果未设置Variable-name,显示未定义用户错误信息
        Variable-name?value 如果未设置Variable-name,显示系统错误信息
        Variable-name:= value 如果未设置Variable-name,设置其值
        Variable-name:- value 同上,但是取值并不设置到Variable-name,可以被替换
    使用set命令显示所有本地定义的shell变量。
    23.2 环境变量
       环境变量用于所有用户进程(经常称为子进程)。登录进程称为父进程。s h e l l中执行的用
户进程均称为子进程。
        Variable-name=value;export Variable-name
    或:
        Variable-name=value
        export Variable-name
    或:
        export Variable-name=value
       导出脚本中的所有变量用 set -a;
    23.2.1 常用环境变量:
    23.2.1.1 $$ 当前进程的进程号.
    23.3 echo 命令可以显示单个变量取值,
       echo $Variable-name
    23.4 使用 unset 命令清除变量。
        unset variable-name
    23.5 如果设置变量时,不想再改变其值,可以将之设置为只读方式。如果有人包括用户本人想要改变它,则返回错误信息。格式如下:
    Variable-name=value
    readonly variable-name

24 kill, killall
24.1 kill 给进程发送消息.有两种方式:
        kill -
    或
        kill -s
    比如, 杀死进程的, 可以用:
       kill -9 26114
       kill -s SIGKILL 26114
24.2 killall
     ./test
     killall test

25 trap 可以使你在脚本中捕捉信号。该命令的一般形式为:
        trap name signal(s)
    其中,name是捕捉到信号以后所采取的一系列操作。实际生活中, name一般是一个专门用来处理所
捕捉信号的函数。name需要用双引号(“ ”)引起来。Signal就是待捕捉的信号。脚本在捕捉到一个信号
以后,通常会采取某些行动。最常见的行动包括:
    1) 清除临时文件。
    2) 忽略该信号。
    3) 询问用户是否终止该脚本的运行。
下表列出了一些最常见的trap命令用法:
    trap "" 2 3 忽略信号2和信号3,用户不能终止该脚本
    trap"commands" 2 3 如果捕捉到信号2或3,就执行相应的commands命令
    trap 2 3 复位信号2和3,用户可以终止该脚本
也可以使用单引号(‘’)来代替双引号(“”);其结果是一样的。
    eg:
    #!/bin/sh
    trap my_exit 2 3
    my_exit()
    {
       echo "Script will exit"
       exit
    }

26 logger
    系统中含有相当多的日志文件。其中的一个日志文件叫作messages,它通常位于/var/log目录下。一个名为syslog的配置文件可以用来定义 记录在messages文件中的消息,这些消息有一定的格式。如果想知道系统中的相应配置,可以查看/etc/syslog.conf文件。该文件中包含 了用于发送各种不同类型消息的工具及它们的优先级。
    可以使用logger命令向该文件发送消息。
    logger命令的一般形式为:
    logger -p -i
其中:
    -p:为优先级,格式为:facility.level
    -i:在每个消息中记录发送消息的进程号
可能需要等几分钟才能看到该消息被记录到message文件中。

27 /etc/sysconfig配置
帮助文档在/usr/share/doc/initscripts-8.11.1/sysconfig.txt

28 /dev/null & /dev/zero
/dev/null------它是空设备。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到该设备。
/dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。

eg:
$ make > /dev/null
$ if=/dev/zero of=./tmp.exe bs=1k count=1


29 pkg-config
pkg-config - Return metainformation about installed libraries, such as library version, compile flags (-I, -D), link flags (-L, -l) and so one.

pkg-config 是通过库提供的一个 .pc 文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。这些信息可以通过 pkg-config 提供的参数单独提取出来直接供编译器和连接器使用。

The pkgconfig package contains tools for passing the include path and/or library paths to build tools during the make file execution.

pkg-config is a function that returns meta information for the specified library.

The default setting for PKG_CONFIG_PATH is /usr/lib/pkgconfig /usr/local/lib/pkgconfig because of the prefix we use to install pkgconfig. You may add to PKG_CONFIG_PATH by exporting additional paths on your system where pkgconfig files are installed. Note that PKG_CONFIG_PATH is only needed when compiling packages, not during run-time.

        在默认情况下,每个支持 pkg-config 的库对应的 .pc 文件在安装后都位于安装目录中的 lib/pkgconfig 目录下。例如,我们在上面已经将 Glib 安装在 /opt/gtk 目录下了,那么这个 Glib 库对应的 .pc 文件是 /opt/gtk/lib/pkgconfig 目录下一个叫 glib-2.0.pc 的文件:

30,将man文件转换成普通文本文件
man ls | col -b > man.txt

31 data
以特定格式查看、修改系统日期和时间
1) 查看
$data [OPTION] [+FORMAT]
eg
a) 以预定格式显示
    $date
b) 显示年月日
    $date +%y-%m-%d

2) 设置
#date -s 2006-05-07
#date -s 13:10:00
#date -s "2006-05-07 13:10:00"
系统时间是由Linux操作系统维护的,在启动时,操作系统将从CMOS中读取时间到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS,由于该同步是每隔一段时间(大约是11分钟)进行的。在我们执行修改时间后立即重起机器,新的时间可能没有写入到CMOS,就造成时间不正确。确保新时间立即生效可以执行如下命令:

 #clock -w

这个命令强制把系统时间写入CMOS。
如果这里出现错误:

select() to /dev/rtc to wait for clock tick timed out

则需要换成如下的方式:
/sbin/hwclock  --directisa --systohc
并在文件/etc/sysconfig/clock中添加:
CLOCKFLAGS=--directisa
在文件/etc/sysctl.conf中添加一行:
dev.rtc.max-user-freq = 1024

32 Display dialog in shell script
1) dialog

2) cdialog
ftp://sunsite.unc.edu/pub/Linux/utils/shell/
3)xdialog

4) gdialog
5) kdialog
6) zenity
7) whiptail


ac
alias
arch
at atq atrm batsh crontab
basename
bash csh bashbug chsh

bzip2/bunzip2(bzless/bzmore/bzcat/bzip2recover) gzip/gunzip tar
cal
cat

cd cp cpio chattr chmod

binutils

chage chgrp chown

clear col

cmp diff

cpp gcc g++ ctags

cvs svn

xlock vlock xscreenserver/xscreenserver-command -lock/xscreenserver-demo

date

dd

declare export

df du

dialog

diff diff3

dir dircolors dirname basename dirs

hostname domainname dnsdomainname nodename

dos2unix unix2dos

man info

echo
    Display a line of text, it writes each given STRING to standard ouput.

eject
    Eject removable media 

env
    Run a program in a modified environment 


expand
    Convert tabs in the specified files to spaces, then writing to standard output.

export
    Export environment variables.

expr
    Calculate the value of expression, then print the results to standard output.
    Usage:
    expr EXPRESSION
    EX:
    expr 1 + 2
    expr 100 / 10

file
    Determin file type

find
    Search for files in a directory hierarchy

finger
    Display information about the system users.

free
    Display the total amount of free and used physical and swap memory in the system, as well as the bufferes used by the kernel.

grep
    Search the specified input filesfor lines containing a match to the giben pattern.

gzip gunzip

head
    Output the first part of file. (tail)

history
    Display command history list.

iconv
    Convert encoding of given files from one encoding to another.

id
    Print real and effective UIDs and GIDs

info
    Read documents in Info format (man)

install
    Copy files and set attributes

eval
type




screensaver
1) launch screen saver
    xscreensaver -nosplash &
or
    gnome-screensaver -nosplash &
2) lock screen
    xscreensaver-command -lock
or
    gnome-screensaver-command -lock
3) install package
    apt-get install xscreensaver
or
    apt-get install gnome-screensaver

dmidecode
Dump useful information of system's hardware components in human-readable format.


vncviewer
Login to remote destop
Common format:
vncviewer [options] [host]:[display]
In order to make access more fluent, user -encodings to set compression type, and -compresslevel to set compression level.
eg:
vncviewer -encodings Zlib -compresslevel 9 xxx.xxx.xxx.xxx:y

exec xxx &
run application xxx on background.




阅读(3038) | 评论(0) | 转发(0) |
0

上一篇:Flags for compiler and linker

下一篇:Win32 APIs

给主人留下些什么吧!~~