要成为一名高效的Linux shell脚本程序员,我必须学习哪些命令?

要成为一名高效的Linux shell脚本程序员,我必须学习哪些命令?,linux,command-line,shell,Linux,Command Line,Shell,我最近开始涉足Linux开发领域。我想学习一些新东西,觉得bash可能会很有趣。随着我对bash编程的进一步了解,我发现有很多有用的工具可供使用(例如grep,tr,awk,等等),有太多的工具,我不知道哪些是“重要的”学习工具 Shell脚本命令在很大程度上取决于系统本身的配置,并且随着时间的推移可能会发生剧烈的变化,这与大多数编程语言不同(在大多数编程语言中,核心库与语言本身一起提供,并表示程序员在与外部世界交互时将使用的“核心”命令集)。所以, 作为一名现代Linux shell脚本程序员

我最近开始涉足Linux开发领域。我想学习一些新东西,觉得bash可能会很有趣。随着我对bash编程的进一步了解,我发现有很多有用的工具可供使用(例如
grep
tr
awk
,等等),有太多的工具,我不知道哪些是“重要的”学习工具

Shell脚本命令在很大程度上取决于系统本身的配置,并且随着时间的推移可能会发生剧烈的变化,这与大多数编程语言不同(在大多数编程语言中,核心库与语言本身一起提供,并表示程序员在与外部世界交互时将使用的“核心”命令集)。所以,


作为一名现代Linux shell脚本程序员,我应该熟悉哪些命令行工具?

如您所述,学习awk、sed和grep。他们将是你的好朋友。 另外,非常重要的是,要学会正确使用文本编辑器,如vim


我还建议您熟悉好的脚本语言,如perl或python。

如您所述,学习awk、sed和grep。他们将是你的好朋友。 另外,非常重要的是,要学会正确使用文本编辑器,如vim

我还建议您熟悉一种好的脚本语言,如perl或python。

试试看。人们在那里会想出各种各样的东西,你一定会找到未来可能有用的东西的例子

但一般来说,最常用的命令by可以作为指导

当然,这里有龙,列出了你不应该做的事情:

试试看。人们在那里会想出各种各样的东西,你一定会找到未来可能有用的东西的例子

但一般来说,最常用的命令by可以作为指导


当然,这里有龙,列出了你不应该做的事情:

你应该知道这张清单上的一切:


也许并非所有的东西都是必不可少的,但至少对每一项都有一个粗略的概述,这对基本功能有很大帮助。

您可能应该了解以下列表中的所有内容:


也许并非所有的东西都是必不可少的,但至少对每一项都有一个粗略的概述,这对基本功能有很大帮助。

我特别建议您熟悉locate、grep和find。接下来是sed、awk和vim,围绕它们的是cat、less、tail/head、ls(是的,ls!),以及bash可以帮助您的许多方法


特别是关于Bash:当心Bash主义

我特别建议您熟悉locate、grep和find。接下来是sed、awk和vim,围绕它们的是cat、less、tail/head、ls(是的,ls!),以及bash可以帮助您的许多方法

特别是关于Bash:当心Bash主义

您应该了解一些基于控制台的文本编辑器。pico就足够了。我自己也是一个vi人,尽管emacs也是可以接受的。(尽管我会推荐vi:这在几乎任何unix平台上都是事实上的标准,像grep/sed这样的东西的行为与vi非常相似。)

其他:

屏幕:当您没有gui或不想/无法打开许多终端窗口或PuTTY会话时,非常有用。允许您打开多个shell会话,并且可以在它们之间切换(以及其他许多事情)

top:用于监视进程/cpu使用率/内存使用率

watch:每“n”秒运行一个命令并显示其输出。例如,
watch-n1“ls-aio”
每1秒执行一次“ls-aio”。

你应该知道一些基于控制台的文本编辑器。pico可能就足够了。我自己是一个vi人,尽管emacs也是可以接受的。(尽管我会推荐vi:这在几乎任何unix平台上都是事实上的标准,像grep/sed这样的东西的行为与vi非常相似。)

其他:

屏幕:当您没有gui或不想/无法打开许多终端窗口或PuTTY会话时非常有用。允许您打开多个shell会话,并且可以在它们之间切换(以及许多其他事情)

top:用于监视进程/cpu使用率/内存使用率


watch:每“n”秒运行一个命令并显示其输出。例如,
watch-n1“ls-aio”
每1秒执行一次“ls-aio”。

忘了提到这两篇文章:
忘记提到这两篇文章:
显然取决于你在做什么,但我从
find
grep
rsync
ssh
中得到了很多好处。简单的方法也很有用:
cat
tail
wc
ps
。对于
循环和通配符语法,你也可以做很多事情是必要的。例如

  $ for i in {app,web}{01,02}; do ssh $i date; done

这将ssh到主机app01、app02、web01和web02中,并对每个主机执行
date
命令。

显然取决于您正在做什么,但我从
find
grep
rsync
ssh
中获得了很多好处。简单的方法也很有用:
cat
tail
ode>wc
ps
。使用
for
循环也可以做很多事情,通配符语法是必不可少的。例如

  $ for i in {app,web}{01,02}; do ssh $i date; done

这将ssh到主机app01、app02、web01和web02中,并对每个主机执行
date
命令。

perl、xargs、lsof、find、grep、bash、tar、gzip、tr、tail、diff、patch和bc


以及(单一UNIX规范)中的所有内容。

perl、xargs、lsof、find、grep、bash、tar、gzip、tr、tail、diff、patch和bc

以及(单一UNIX规范)中的所有内容。

  • 压缩和解压缩各种档案
  • 使用手册页
  • 他总是这样