码迷,mamicode.com
首页 > 系统相关 > 详细

Linux命令总结1

时间:2016-06-02 20:13:11      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:linux命令总结

1,mv (move (rename) files)移动文件或一并改名

    参数:

       -b,   like --backup but does not accept an argument  (如果已经有相同的文件,会先备份一个副本)

       -f, --force

              do not prompt before overwriting       (强制执行,覆盖时不提示)

       -i, --interactive                             (覆盖前提示)

              prompt before overwrite

       -n, --no-clobber

              do not overwrite an existing file

If you specify more than one of -i, -f, -n, only the final one takes effect.( 如果你一下指定了多个参数-i,-f,-n只有最后一个生效)

所以:mv不能用混合参数,只能用单一参数

       --strip-trailing-slashes

              remove any trailing slashes from each SOURCE argument


       -S, --suffix=SUFFIX

              override the usual backup suffix


       -t, --target-directory=DIRECTORY

              move all SOURCE arguments into DIRECTORY


       -T, --no-target-directory

              treat DEST as a normal file


       -u, --update

              move only when the SOURCE file is newer than the destination file or when the destination file

              is missing


       -v, --verbose

              explain what is being done


       --help display this help and exit


       --version

              output version information and exit


使用实例:

1)移动文件。

[root@learnlinux test]# ll

total 20

drwxr-xr-x. 2 root root 4096 Apr 28 16:24 11

-rw-r--r--. 1 root root    9 Apr 28 16:54 2

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 a

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 b

drwxr-xr-x. 3 root root 4096 Apr 28 14:41 c

[root@learnlinux test]# cat 2

safhafdj

[root@learnlinux test]# mv 2 3           (移动文件2并改名为3)

[root@learnlinux test]# ll

total 20

drwxr-xr-x. 2 root root 4096 Apr 28 16:24 11

-rw-r--r--. 1 root root    9 Apr 28 16:54 3

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 a

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 b

drwxr-xr-x. 3 root root 4096 Apr 28 14:41 c

[root@learnlinux test]# cat 3

safhafdj


2)移动目录。

[root@learnlinux test]# ll

total 20

-rw-r--r--. 1 root root    9 Apr 28 16:54 3

drwxr-xr-x. 2 root root 4096 Apr 28 14:41 a

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d      ( a,b,c,d为目录)

[root@learnlinux test]# mv a b                   (移动a到b,当b目录存在时,a会移动到b目录下面。当b目录不存在时,a目录改名为b)

[root@learnlinux test]# ll

total 16

-rw-r--r--. 1 root root    9 Apr 28 16:54 3

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# cd b

[root@learnlinux b]# ll

total 4

drwxr-xr-x. 2 root root 4096 Apr 28 14:41 a


3)当文件同名时,用-b会复制个文件副本。

[root@learnlinux test]# ll

total 20

-rw-r--r--. 1 root root    4 Apr 29 14:34 1

-rw-r--r--. 1 root root    9 Apr 28 16:54 3

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# cat 1

234

[root@learnlinux test]# cat 3

safhafdj

[root@learnlinux test]# mv -b 1 3

mv: overwrite `3‘? y                            (提示:是否要覆盖y,n取消本次移动)

[root@learnlinux test]# ll

total 20

-rw-r--r--. 1 root root    4 Apr 29 14:34 3

-rw-r--r--. 1 root root    9 Apr 28 16:54 3~    (这个是文件3的副本)

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# cat 3

234

[root@learnlinux test]# cat 3~

safhafdj


4)-f,强行覆盖,不提示。

[root@learnlinux test]# ll

total 20

-rw-r--r--. 1 root root    4 Apr 29 14:34 1

-rw-r--r--. 1 root root    9 Apr 28 16:54 3

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# cat 1

234

[root@learnlinux test]# cat 3

safhafdj

[root@learnlinux test]# mv -f 1 3        (没有提示)

[root@learnlinux test]# ll

total 16

-rw-r--r--. 1 root root    4 Apr 29 14:34 3

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# cat 3

234                                        (3的内容已经被覆盖成1的内容)


5)-i,覆盖时提示是否要覆盖。

-rw-r--r--. 1 root root    4 Apr 29 14:58 1

-rw-r--r--. 1 root root    4 Apr 29 14:34 3

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# cat 3

234

[root@learnlinux test]# echo jhdf >>1

[root@learnlinux test]# cat 1

123

jhdf

[root@learnlinux test]# cat 3

234

[root@learnlinux test]# mv -i 1 3

mv: overwrite `3‘? y

[root@learnlinux test]# ll

total 16

-rw-r--r--. 1 root root    9 Apr 29 14:59 3

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# cat 3

123

jhdf



系统默认已经将命令设置了别名mv = mv -i 所以前面移动时不加-i也会提示

[root@learnlinux test]# alias

alias cp=‘cp -i‘

alias l.=‘ls -d .* --color=auto‘

alias ll=‘ls -l --color=auto‘

alias ls=‘ls --color=auto‘

alias mv=‘mv -i‘              (已经设置了,所以输入mv等于输mv -i了)

alias rm=‘rm -i‘

alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘



2,touch (- change file timestamps)改变文件时间戳  (还有创建文档的意思)

        参数:


      -a     change only the access time  (仅仅改变访问时间)


       -c, --no-create                     (不创建任何文件)

              do not create any files


       -d, --date=STRING

              parse STRING and use it instead of current time   (解析字符串并用它代替当前时间)


       -f     (ignored)


       -h, --no-dereference

              affect each symbolic link instead of any referenced file (useful

              only on systems that can change the timestamps of a symlink)


       -m     change only the modification time


       -r, --reference=FILE

             

use this fileas times instead of current time


       -t STAMP

              use [[CC]YY]MMDDhhmm[.ss] instead of current time


       --time=WORD

              change the specified time: WORD is access, atime, or use: equiv-

              alent to -a WORD is modify or mtime: equivalent to -m


       --help display this help and exit


       --version

              output version information and exit


使用实例:

1)当文件存在时,仅仅改变文档时间。

[root@learnlinux test]# ll

total 16

-rw-r--r--. 1 root root    9 Apr 29 14:59 3      (时间为14:59)

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# touch 3

[root@learnlinux test]# ll

total 16

-rw-r--r--. 1 root root    9 Apr 29 15:11 3       (时间变成15:11)

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# cat 3

123

jhdf


2)当文件不存在时,就创建文件。

[root@learnlinux test]# touch test.txt

[root@learnlinux test]# ll

total 16

-rw-r--r--. 1 root root    0 Apr 29 15:12 1

-rw-r--r--. 1 root root    9 Apr 29 15:11 3

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

-rw-r--r--. 1 root root    0 Apr 29 15:28 test.txt


NAME

       cat - concatenate files and print on the standard output   连接到文件并打印到标准输出。(查看文件内容)


SYNOPSIS

       cat [OPTION]... [FILE]...


DESCRIPTION

       Concatenate FILE(s), or standard input, to standard output.


       -A, --show-all

              equivalent to -vET    (等同于-vET)


       -b, --number-nonblank

              number nonempty output lines   (为查看文本添加行号,空行不加行号)


       -e     equivalent to -vE


       -E, --show-ends

              display $ at end of each line


       -n, --number

              number all output lines        (给查看的内容添加行号,空行也有行号)


       -s, --squeeze-blank

              suppress repeated empty output lines


       -t     equivalent to -vT


       -T, --show-tabs

              display TAB characters as ^I


       -u     (ignored)


       -v, --show-nonprinting

              use ^ and M- notation, except for LFD and TAB


       --help display this help and exit


       --version

              output version information and exit


使用实例:

1)查看文件内容

[root@learnlinux test]# ll

total 20

-rw-r--r--. 1 root root   52 Apr 29 15:51 1

-rw-r--r--. 1 root root    9 Apr 29 15:11 3

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

-rw-r--r--. 1 root root    0 Apr 29 15:28 test.txt

[root@learnlinux test]# cat 1

yrwe

rtur4

36

264327


327

6

347

32467


7426

2365



2)查看内容,并为内容添加行号,空行不加行号

[root@learnlinux test]# cat -b 1

     1  yrwe

     2  rtur4

     3  36

     4  264327


     5  327

     6  6

     7  347

     8  32467


     9  7426

    10  2365



3)查看内容,并为内容添加行号,空行也添加行号

[root@learnlinux test]# cat -n 1

     1  yrwe

     2  rtur4

     3  36

     4  264327

     5

     6  327

     7  6

     8  347

     9  32467

    10

    11  7426

    12  2365

    13

    14

    15


4)打入新内容到文档,并覆盖原来内容

[root@learnlinux test]# cat 1.txt 

yrwe

rtur4

36

264327


327

6

347

32467


7426

2365


[root@learnlinux test]# cat > 1.txt <<eof   (>为重定向,>>为追加重定向,eof为开始和结束符,任意字符都可以,但开始和结尾必须相同)

> aabc

> shag

> jsahgj                       (为输入的内容)

> sahfj

> eof

[root@learnlinux test]# cat 1.txt 

aabc

shag

jsahgj

sahfj


5)在文档末端增加文本

[root@learnlinux test]# cat >>1.txt <<eof

> 1234

> 35436

> 165464

> 7547                          (为输入内容)

> 754

> eof

[root@learnlinux test]# cat 1.txt 

aabc

shag

jsahgj

sahfj

1234

35436

165464

7547

754


 

3,rm - remove files or directories(删除文件或目录)

        参数:

       -f, --force

              ignore nonexistent files, never prompt  (忽略不存在的文件,不提示)


       -i     prompt before every removal           (每次删除前提示)


       -I     prompt once  before  removing  more  than  three

              files,   or  when  removing  recursively.   Less

              intrusive than -i, while still giving protection

              against most mistakes

       -r, -R, --recursive

              remove  directories  and  their  contents recur-sively (递归地删除目录及其内容)


       -v, --verbose

              explain what is being done      (解释正在做的事情)

1)删除文件。

[root@learnlinux test]# rm -v test.txt   (-v输出删除信息)

removed `test.txt‘

[root@learnlinux test]# ll


[root@learnlinux test]# ll

total 12

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

-rw-r--r--. 1 root root    0 Apr 29 16:57 test.txt

[root@learnlinux test]# rm -i test.txt     (-i提示并问要删除文件吗?y确定,n取消)

rm: remove regular empty file `test.txt‘? y

[root@learnlinux test]# ll

total 12

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29



[root@learnlinux test]# ll

total 12

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

-rw-r--r--. 1 root root    0 Apr 29 16:58 test.txt

[root@learnlinux test]# rm -f test.txt      (-f强制删除)

[root@learnlinux test]# ll

total 12

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d


2)删除目录,要加-r参数

[root@learnlinux b]# rm b  (没有这个b目录时,删除目录b,会提示,如下面)

rm: cannot remove `b‘: No such file or directory  (rm:无法删除` b”:没有这样的文件或目录 。因为当前在目录b下,而b目录下并没有b目录)


[root@learnlinux test]# ll

total 12

drwxr-xr-x. 3 root root 4096 Apr 29 06:27 b

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 d

[root@learnlinux test]# rm b

[root@learnlinux test]# rm b          (不加参数-r时,会提示)

rm: cannot remove `b‘: Is a directory  (rm:不能删除`b‘:是一个目录)

[root@learnlinux test]# rm -r b        (加-r后,会立即删除)

[root@learnlinux test]# ll

total 8

drwxr-xr-x. 2 root root 4096 Apr 29 06:26 c

drwxr-xr-x. 2 root root 4096 Apr 28 14:29 


注意:rm命令要慎用,一旦删除,数据就会丢失。所以用该命令时,要先备份数据。切记,切记!!



4,rmdir -remove empty directories(删除空目录)


[root@learnlinux aa]# ll

total 8

drwxr-xr-x. 2 root root 4096 Apr 30 14:26 test1

drwxr-xr-x. 2 root root 4096 Apr 30 14:25 test2

[root@learnlinux aa]# cd test1

[root@learnlinux test1]# ll

total 0

-rw-r--r--. 1 root root 0 Apr 30 14:26 1

-rw-r--r--. 1 root root 0 Apr 30 14:26 2

-rw-r--r--. 1 root root 0 Apr 30 14:26 3

[root@learnlinux test1]# cd ../test2

[root@learnlinux test2]# ll

total 0

[root@learnlinux test2]# cd ../

[root@learnlinux aa]# rmdir test1

rmdir: failed to remove `test1‘: Directory not empty

[root@learnlinux aa]# rmdir test2

[root@learnlinux aa]# ll

total 4

drwxr-xr-x. 2 root root 4096 Apr 30 14:26 test1



5, head - output the first part of files(输出文件前面一部分)-----默认显示文件前十行


[root@learnlinux ~]# cat test.txt 

ekwlksdagl

sajgkjsagjs

249u49ajtu49

833t3  jsjsdfg

agkjkjs02393-e

faskjgjht934u

ashrkelyk23

92390-5035-=23943959

jastihioerooeeeeeejds

asjdfffffffks

2388888888883

rasjtgjijgtijgag


[root@learnlinux ~]# head test.txt 

ekwlksdagl

sajgkjsagjs

249u49ajtu49

833t3  jsjsdfg

agkjkjs02393-e

faskjgjht934u

ashrkelyk23

92390-5035-=23943959

jastihioerooeeeeeejds

asjdfffffffks

[root@learnlinux ~]# head -5 test.txt 

ekwlksdagl

sajgkjsagjs

249u49ajtu49

833t3  jsjsdfg

agkjkjs02393-e

[root@learnlinux ~]# head -12 test.txt  

ekwlksdagl

sajgkjsagjs

249u49ajtu49

833t3  jsjsdfg

agkjkjs02393-e

faskjgjht934u

ashrkelyk23

92390-5035-=23943959

jastihioerooeeeeeejds

asjdfffffffks

2388888888883

rasjtgjijgtijgag


6,tail - output the last part of files(输出文件结尾一部分)---默认结尾十行


[root@learnlinux ~]# cat test.txt 

ekwlksdagl

sajgkjsagjs

249u49ajtu49

833t3  jsjsdfg

agkjkjs02393-e

faskjgjht934u

ashrkelyk23

92390-5035-=23943959

jastihioerooeeeeeejds

asjdfffffffks

2388888888883

rasjtgjijgtijgag

[root@learnlinux ~]# tail test.txt 

833t3  jsjsdfg

agkjkjs02393-e

faskjgjht934u

ashrkelyk23

92390-5035-=23943959

jastihioerooeeeeeejds

asjdfffffffks

2388888888883

rasjtgjijgtijgag

[root@learnlinux ~]# tail -5 test.txt  

jastihioerooeeeeeejds

asjdfffffffks

2388888888883

rasjtgjijgtijgag

                        (空行也显示)

[root@learnlinux ~]# 


7,grep


Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是

Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

    grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被

看作文件名。搜索的结果被送到标准输出,不影响原文件内容

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回

1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。


1.命令格式:

    grep [option] pattern file

2.命令功能:

     用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活

3.命令参数:

    -a   --text   #不要忽略二进制的数据。

    -A<显示行数>   --after-context=<显示行数>   #除了显示符合范本样式的那一列之外,并显示该行之后的内容。

    -b   --byte-offset   #在显示符合样式的那一行之前,标示出该行第一个字符的编号。

    -B<显示行数>   --before-context=<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前的内容。

    -c    --count   #计算符合样式的列数。

    -C<显示行数>    --context=<显示行数>或-<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前后的内容。

    -d <动作>      --directories=<动作>   #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。

    -e<范本样式>  --regexp=<范本样式>   #指定字符串做为查找文件内容的样式

    -E      --extended-regexp   #将样式为延伸的普通表示法来使用。

    -f<规则文件>  --file=<规则文件>   #指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件

    内容,格式为每行一个规则样式

    -F   --fixed-regexp   #将样式视为固定字符串的列表。

    -G   --basic-regexp   #将样式视为普通的表示法来使用

    -h   --no-filename   #在显示符合样式的那一行之前,不标示该行所属的文件名称。

    -H   --with-filename   #在显示符合样式的那一行之前,表示该行所属的文件名称。

    -i    --ignore-case   #忽略字符大小写的差别。

    -l    --file-with-matches   #列出文件内容符合指定的样式的文件名称。

    -L   --files-without-match   #列出文件内容不符合指定的样式的文件名称。

    -n   --line-number   #在显示符合样式的那一行之前,标示出该行的列数编号。

    -q   --quiet或--silent   #不显示任何信息。

    -r   --recursive   #此参数的效果和指定“-d recurse”参数相同

    -s   --no-messages   #不显示错误信息。

    -v   --revert-match   #显示不包含匹配文本的所有行

    -V   --version   #显示版本信息。

    -w   --word-regexp   #只显示全字符合的列。

    -x    --line-regexp   #只显示全列符合的列。

    -y   #此参数的效果和指定“-i”参数相同。

    

    

4.规则表达式:

        ^  #锚定行的开始 如:‘^grep‘匹配所有以grep开头的行。     

$  #锚定行的结束 如:‘grep$‘匹配所有以grep结尾的行。

.  #匹配一个非换行符的字符 如:‘gr.p‘匹配gr后接一个任意字符,然后是p。 

*  #匹配零个或多个先前字符 如:‘*grep‘匹配所有一个或多个空格后紧跟grep的行。

.*   #一起用代表任意字符。 

[]   #匹配一个指定范围内的字符,如‘[Gg]rep‘匹配Grep和grep。

[^]  #匹配一个不在指定范围内的字符,如:‘[^A-FH-Z]rep‘匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

\(..\)  #标记匹配字符,如‘\(love\)‘,love被标记为1。

\<      #锚定单词的开始,如:‘\<grep‘匹配包含以grep开头的单词的行。

\>      #锚定单词的结束,如‘grep\>‘匹配包含以grep结尾的单词的行。

x\{m\}  #重复字符x,m次,如:‘0\{5\}‘匹配包含5个o的行。 

x\{m,\}  #重复字符x,至少m次,如:‘o\{5,\}‘匹配至少有5个o的行。

x\{m,n\}  #重复字符x,至少m次,不多于n次,如:‘o\{5,10\}‘匹配5--10个o的行。

\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:‘G\w*p‘匹配以G后跟零个或多个文字或数字字符,然后是p。

\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。 

\b    #单词锁定符,如: ‘\bgrep\b‘只匹配grep。

5. 使用实例:

  实例1:查找指定进程

  命令:

  ps -ef|grep svn 


  输出:

  [root@learn ~]# ps -ef|grep svn

   root      2748  2680  3 15:56 pts/0    00:00:00 grep svn


实例2:查找指定进程个数

命令:

ps -ef|grep -c svn

ps -ef|grep svn -c

输出:

[root@learn ~]# ps -ef|grep -c svn

1

[root@learn ~]# ps -ef|grep svn -c

1


实例3:从文件中读取关键词进行搜索

命令:

cat test.txt|grep -f test2.txt

输出:

[root@learn ~]# cat test.txt 

learn linux

show

beatuful

abc

redhat

linux

[root@learn ~]# cat test2.txt 

redhat

linux

abcdef

[root@learn ~]# cat test.txt|grep -f test2.txt 

learn linux

redhat

linux

 说明:

 输出test.txt文件中含有从test2.txt文件中读取出的关键词的内容行


实例3:从文件中读取关键词进行搜索 且显示行号

命令:

cat test.txt|grep -nf test2.txt

输出:

[root@learn ~]# cat test.txt 

learn linux

show

beatuful

abc

redhat

linux

[root@learn ~]# cat test2.txt 

redhat

linux

abcdef

[root@learn ~]# cat test.txt|grep -nf test2.txt

1:learn linux

5:redhat

6:linux

说明:

输出test.txt文件中含有从test2.txt文件中读取出的关键词的内容行,并显示每一行的行号


实例4:从文件中查找关键词


命令:

grep “Linux” test.txt


输出:

[root@learn ~]# grep  ‘linux‘ test.txt   

learn linux

linux

[root@learn ~]# grep  linux test.txt 

learn linux

linux

[root@learn ~]# grep  "linux" test.txt

learn linux

linux


实例5:从多个文件中查找关键词。


命令:


grep linux test.txt test2.txt


输出:

[root@learn ~]# grep linux test.txt test2.txt

test.txt:learn linux

test.txt:linux

test2.txt:linux

说明:

  多文件时,输出查询到的信息内容行时,会把文件名放在查找出来内容行最前面并且加上":"作为标示符


实例7:grep不显示本身进程


命令:

ps aux|grep \[s]sh

ps aux | grep ssh | grep -v "grep"


输出:

[root@learn ~]# ps aux|grep ssh

root       810  0.0  0.1   8944  1028 ?        Ss   14:03   0:00 /usr/sbin/sshd

root      2650  0.0  0.4  11860  3288 ?        Ss   15:28   0:00 sshd: test [priv]

test      2652  0.0  0.2  11860  1548 ?        S    15:28   0:00 sshd: test@pts/0 

root      2820  2.0  0.0   4356   712 pts/0    S+   16:44   0:00 grep ssh

[root@learn ~]# ps aux|grep \[s]sh

root       810  0.0  0.1   8944  1028 ?        Ss   14:03   0:00 /usr/sbin/sshd

root      2650  0.0  0.4  11860  3288 ?        Ss   15:28   0:00 sshd: test [priv]

test      2652  0.0  0.2  11860  1548 ?        S    15:28   0:00 sshd: test@pts/0 


实例8:找出以字母l开头的内容


命令:

grep ^l test.txt


输出:

[root@learn ~]# grep ^l test.txt 

learn linux

linux


实例9:找出非以字母l开头的内容


命令:

grep ^[^l] test.txt


输出:

[root@learn ~]# cat test.txt 

learn linux

show

beatuful

abc

redhat

linux

[root@learn ~]# grep ^[^l] test.txt

show

beatuful

abc

redhat


实例10:找出以linux结尾的行内容


命令:

grep linux$ test.txt


输出:

[root@learn ~]# cat test.txt 

learn linux

show

beatuful

abc

redhat

linux

[root@learn ~]# grep linux$ test.txt

learn linux

linux

[root@learn ~]#  cat test.txt|grep linux$

learn linux

linux


实例11:显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行


命令:

grep ‘[a-z]\{7\}‘ *.txt


输出:

[root@learn ~]# grep ‘[a-z]\{7\}‘ *.txt

test2.txt:abcdefghf

test.txt:beatuful

[root@learn ~]# 


实例12:显示包含ed或者at字符的内容行


命令:

grep -E "ed|at" test.txt


输出:

[root@learn ~]# grep -E "ed|at" test.txt

beatuful

redhat

[root@learn ~]# grep -nE "ed|at" test.txt

3:beatuful

5:redhat

说明:

   n给查出的行加上行号。


实例13:不区分大小写查找内容

命令:

grep -i B test.txt


输出

[root@learn ~]# cat test.txt 

learn linux

ABCDE

aVIlin

show

beatuful

abc

redhat

linux

[root@learn ~]# grep -i B test.txt 

ABCDE

beatuful

abc

[root@learn ~]# grep B test.txt 

ABCDE


8,sed----stream editor for filtering and transforming text用于筛选和转换文本的流编辑器


命令格式:

sed [OPTION]... {script-only-if-no-other-script} [input-file]...


参数:

       -n, --quiet, --silent   (取消默认输出)

              suppress automatic printing of pattern space

       -e script, --expression=script  (允许多点编辑)

              add the script to the commands to be executed

       -f script-file, --file=script-file

              add the contents of script-file to the commands to be executed将脚本文件的内容添加到要执行的命令

       --follow-symlinks

              follow  symlinks when processing in place; hard links will still be

              broken.

       -i[SUFFIX], --in-place[=SUFFIX]

              edit files in place (makes  backup  if  extension  supplied).   The

              default  operation  mode is to break symbolic and hard links.  This

              can be changed with --follow-symlinks and --copy.

       -c, --copy

              use copy instead of rename when shuffling files in -i mode.   While

              this  will  avoid  breaking links (symbolic or hard), the resulting

              editing operation is not atomic.  This is rarely the desired  mode;

              --follow-symlinks is usually enough, and it is both faster and more

              secure.

       -l N, --line-length=N

              specify the desired line-wrap length for the ala command

       --posix

              disable all GNU extensions.

       -r, --regexp-extended

              use extended regular expressions in the script.

       -s, --separate

              consider files as separate rather than as a single continuous  long

              stream.

       -u, --unbuffered


使用实例:


实例1:取消默认输出。


命令:

sed -n /ab/p test.txt


输出:

[root@learn ~]# sed /ab/p test.txt 

learn linux

ABCDE

aVIlin

show

beatuful

abc

abc

redhat

linux

[root@learn ~]# sed  -n /ab/p test.txt 

abc


实例2:允许多点编辑 同时删除含ab,A行的内容。


命令:

sed -e /ab/d  -e /A/d test.txt


输出:

[root@learn ~]# cat test.txt 

learn linux

ABCDE

aVIlin

show

beatuful

abc

redhat

linux

[root@learn ~]# sed -e /ab/d  -e /A/d test.txt    

learn linux

aVIlin

show

beatuful

redhat

linux


实例3:替换内容 将abc替换为123456789


命令:

sed -i s#abc#123456789#g test.txt


输出:

[root@learn ~]# sed s#abc#123456789#g test.txt  (没有加-i参数时,只是临时更改打印出来)

learn linux

ABCDE

aVIlin

show

beatuful

123456789

redhat

linux

[root@learn ~]# cat test.txt 

learn linux

ABCDE

aVIlin

show

beatuful

abc           (abc还在,所以并没有替换)

redhat

linux

[root@learn ~]# sed -i s#abc#123456789#g test.txt  (加-i后,直接更改文档内容)          

[root@learn ~]# cat test.txt                      

learn linux

ABCDE

aVIlin

show

beatuful

123456789

redhat

linux


实例4:打印奇数行或偶数行


命令:

 sed -n ‘p;n‘ test.txt 或 sed -n ‘1~2p‘ test.txt 奇数

 sed -n ‘n;p‘ test.txt 或 sed -n ‘2~2p‘ test.txt 偶数


输出:

[root@learn ~]# cat -n test.txt 

     1  learn linux

     2  ABCDE

     3  aVIlin

     4  show

     5  beatuful

     6  abc

     7  abc

     8  redhat

     9  linux

[root@learn ~]# sed -n ‘p;n‘ test.txt 

learn linux

aVIlin

beatuful

abc

linux

[root@learn ~]# sed -n ‘n;p‘ test.txt   

ABCDE

show

abc

redhat

[root@learn ~]# sed -n ‘1~2p‘ test.txt  

learn linux

aVIlin

beatuful

abc

linux

[root@learn ~]# sed -n ‘2~2p‘ test.txt 

ABCDE

show

abc

redhat


本文出自 “永不止步” 博客,请务必保留此出处http://learningwm.blog.51cto.com/10658232/1785569

Linux命令总结1

标签:linux命令总结

原文地址:http://learningwm.blog.51cto.com/10658232/1785569

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!