[调教命令行06]条条大道通罗马,罗马罗马你在哪(学习技巧)

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

感谢参考原文-http://bjbsair.com/2020-04-01/tech-info/18440.html

你可能遇到一些棘手的问题,通过搜索得到想要的结果,但下次还是要通过搜索解决问题,这种低效的手段不是我们所想要的。典型的就是一个线上运维工程师,当问题来临时,不会给你留太多的现场学习时间。

为了达到更高效的训练,我们要做两件事情:第一,总结归纳;第二,触类旁通。Linux的命令也是如此,一个问题,通常会有多种解决方式,要通过变化找出其中的共性。

这涉及到一些设计者对于规范约定俗成的遵守。一般的,你只需要掌握一小部分命令,然后对大批命令达到了解的程度,就可以在命令行的世界里游刃有余。举个例子,你知道ls是列出文件目录,你就会联想到lscpu是列出cpu信息;lsmem是列出内存信息;lsblk是磁盘信息等。这种共性很多,比如top系列,stat系列。

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[[email protected] ~]# lsmem
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15
Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls
  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的
  • --help 很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\[email protected]"}
EOF

再次执行man命令,就可以看到彩色的信息了。

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[[email protected] ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。

标志意义

^行首

$行尾

.任意单个字符

*匹配0个或者多个前面的字符

+1个或者多个匹配

?0个或者1个匹配

{m}前面的匹配重复m次

{m,n}前面的匹配重复m到n次

[]匹配一个指定范围内的字符

[^]匹配指定范围外的任意单个字符

\转义字符

[0-9]匹配括号中的任何一个字符,or的作用

``or,或者\b匹配一个单词。比如\blucky\b 只匹配单词lucky

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串。

# 匹配996开头的行
[[email protected] ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .
# 匹配996结尾的行
[[email protected] ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996
# 匹配到icu和icuuuuuu
[[email protected] ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......
# 再次匹配到996
[[email protected] ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
[[email protected] ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有不包含996的行,良心命令,泪奔
[[email protected] ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配boss和icu
[[email protected] ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
# 匹配所有行
[[email protected] ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

3、小结

本小节是学习技巧方面的内容,但我们依然接触到一些硬核知识。这可能是除了正统的命令集合之外,最经常被使用的技巧了。接下来,我们介绍了一些简单的正则,这些正则可用用在很多命令中。我们还提供了一个把man命令变成彩色的小脚本,下面的文章中,会默认你已经把这一步给操作了。

彩色能够增加阅读效果(色盲除外)。

4、思考&扩展

1、回过头去,执行一下man cat,是否发现了一个叫做tac的命令?它是干什么的?

2、上面提到的stat系列,你能想象iostat大体是干什么用的么?

3、grep -v是什么意思?

4、了解一下和mv非常像的rename命令来批量修改文件,看能否使用上面的正则。

5、有些命令如果拼写错误,如何快速修正?靠搜索么?了解一下fuck命令。我没有说错。

6、下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

End

咦?小王呢?

环顾四周,一片空空。别说罗马,小王都不见了。

原文地址:https://www.cnblogs.com/lihanlin/p/12619005.html

时间: 2024-10-07 08:48:17

[调教命令行06]条条大道通罗马,罗马罗马你在哪(学习技巧)的相关文章

github版本库使用详细教程(命令行及图形界面版)

Git是一个分布式的版本控制系统,作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括 Rubinius和Merb在内的很多知名项目都使用了Git.Git同样可以被诸如Capistrano和Vl

三个网站让你成为Linux命令行高手

[转载自http://www.linuxeden.com/html/news/20091119/69183.html] Linux的命令行是通向Linux高级应用的必经之路,Linux系统管理员.开发者都是学习对象.Susan Linton向我们推荐了三个学习Linux命令行的网站,现在介绍给大家: 1. LinuxCommand LinuxCommand是一个学习Linux命令行最好的网站之一.网站分为:学习Shell.写Shell脚本.脚本库.超级MAN页面. 2. O'Reilly的Lin

github版本库使用详细图文教程(命令行及图形界面版)

投稿:mdxy-dxy 字体:[增加 减小] 类型:转载 时间:2015-08-06我要评论 今天我们就来学习github的使用,我们将用它来管理我们的代码,你会发现它的好处的,当然是要在本系列教程全部完成之后,所以请紧跟站长的步伐,今天是第一天,我们来学习如何在git上建立自己的版本仓库,并将代码上传到仓库中 Git是一个分布式的版本控制系统,作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现

linux awk用法(主要为命令行)

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

Hadoop常见重要命令行操作及命令作用

关于Hadoop [[email protected] ~]# hadoop --help Usage: hadoop [--config confdir] COMMAND where COMMAND is one of: fs run a generic filesystem user client version print the version jar <jar> run a jar file checknative [-a|-h] check native hadoop and co

命令行参数选项处理:getopt()及getopt_long()函数使用

在运行某个程序的时候,我们通常使用命令行参数来进行配置其行为.命令行选项和参数控制 UNIX 程序,告知它们如何动作.当 gcc的程序启动代码调用我们的入口函数 main(int argc,char *argv[]) 时,已经对命令行进行了处理.argc 参数包含程序参数的个数,而 argv 包含指向这些参数的指针数组. 程序的参数可以分为三种:选项,选项的关联值,非选项参数.例如: $gcc getopt_test.c -o testopt getopt_test.c是非选项参数,-o是选项,

监控之cacti的安装部署(监控本机及其他主机+支持多线程+命令行监控)

主机环境   redhat6.5 64位 实验环境   服务端1 ip 172.25.25.1            服务端2 ip 172.25.25.2 安装包     cacti-0.8.8h.tar.gz      php-snmp-5.3.3-26.el6.x86_64.rpm cacti-spine-0.8.8g.tar.gz 防火墙状态:关闭 Selinux状态:Disabled 1.配置安装cacti及测试 A)配置安装cacti [[email protected] Asia]

识别Mac电脑上文件的命令行技巧

原文链接:File it away 有时你会因一个文件而迷惑,这个文件可能是在你的文件夹中的一个未知类型的文件,它可能是你的父母或者客户给你的.不幸的是,你不知道它到底是一种什么样的文件.在Mac上文件是不带有拓展名的,所以可能并没有足够的信息来告诉你"Flongnozzle-2012"到底包含了什么内容.然而终端(Terminal)可以为你提供一些便利,你可以使用一些内嵌的命令行工具来帮助你鉴别文件. 识别文件内容 对于这种情况,file命令恰好是我所需要的.file指令可以检测一个

转:SQLServer的命令行工具-sqlcmd等..

转:http://blog.csdn.net/leamonjxl/article/details/6428753 和往常一样,我们先使用 /?来看看sqlcmd的启动参数们: C:Documents and Settingschenxie.IFLYTEK>sqlcmd.exe /? Microsoft (R) SQL Server 命令行工具 版本 9.00.1399.06 NT INTEL X86 版权所有 (c) Microsoft Corporation.保留所有权利. 用法: Sqlcm