掌握命令行的技巧

Hel*_*lix 29 command-line

当我第一次从 Windows 迁移到 Ubuntu 时,迄今为止我必须做的最令人生畏的事情是使用命令行。

当您只习惯于指向和单击时,键入命令是一种陌生的体验。

当我与新的 Ubuntu 用户交谈时,他们通常对直接与他们的计算机交谈的想法感到不安。

是否有简单友好的指南来帮助新用户熟悉命令行?

您有什么提示可以使体验更轻松或更有趣吗?

Dar*_*-on 17

如果您正在寻找学习命令行的好指南,我最喜欢的是LinuxCommand.org

该指南将向您展示命令行的基础知识,甚至会指导您编写有用的 shell 脚本。

也就是说,大多数用户不需要在大多数日常操作中使用命令行。我不认为命令行应该阻止用户迁移到 Ubuntu。但是,一旦您了解了命令行的强大功能,您将离不开它!


Nat*_*man 15

以下是一些用于操作文件系统的常用命令:

  • cp [src] [dest] - 将 src 复制到 dest
  • mv [src] [dest] - 将 src 移动到 dest(也用于重命名)
  • cd [dir] - 将当前目录更改为 dir
  • pwd - 打印当前目录
  • cat [file] - 将文件内容打印到屏幕上
  • rm [file]- 删除文件1
  • rmdir [dir] - 删除一个空目录

为任何命令添加前缀sudo会导致命令以 root 用户身份执行。

1 - 不要输入,sudo rm -rf /因为它会擦除文件系统

  • 嘿,对于 sudo rm 警告 +1 :) (5认同)
  • 不要忘记关于臭名昭著的 forkbomb ":(){ :|:& };:" 的注释,它本质上分叉了无限数量的新进程并逐渐减慢系统,直到它耗尽需要重新启动系统的资源。有关更多信息,请参阅 http://en.wikipedia.org/wiki/Fork_bomb。 (2认同)

van*_*den 12

1)标签完成:

一个巨大的节省时间。如果您正在键入命令,则只需键入足够的命令以提供只能以单一方式扩展的初始段,然后可以按一次 TAB 将初始段扩展为整个命令。因此,例如,在我的系统上umo TAB扩展为umount. (在我的系统上,初始段只能以一种方式扩展取决于您已安装的功能等。)如果您输入的内容不够明确,TAB 将不会扩展,但第二个 TAB 将显示一个可能完成的列表。所以,在我的系统上,um TAB TAB产生:

umask       umax_pp     umount      umount.hal
Run Code Online (Sandbox Code Playgroud)

选项卡完成也适用于路径:cd /home/me/docs/reallylo TAB如果唯一,将扩展为cd /home/me/docs/reallylongdirname,如果不是唯一,则提供与um上述相同的候选延续列表。

2)man some-commandsome-command --helpsome-command -h

如果您不记得命令是如何工作的,您可以直接在 shell 中获取文档。man通常提供最详细的信息。通常,命令的--help-h参数之一或两者提供简短摘要。

3)head

man some-command接管终端并阻止您在显示 man 文本时输入命令。man some-command | head将显示前 10 行。man some-command | head -n将显示前 n 行。在这两种情况下,您都会得到提示,这样您就可以在输入命令时在屏幕上显示 man 文本。


blu*_*yed 7

切换到 zsh!

虽然它与 bash 非常相似,但它具有许多开箱即用的不错的附加功能(例如,即使在前面的路径组件中也可以更正拼写错误,或者是一个有用的小部件来调用当前命令的帮助(通过 run-help;例如,我在输入后按 ESC-h mplayer,它会打开手册页。关闭它后,我又回到了旧行))。

我推荐以下这本书,其中涵盖了 zsh、bash 和其他一些 shell:
从 Bash 到 Z Shell:征服命令行。虽然它已经有几年的历史了,但我很高兴这并没有让我放弃购买它。如果您不想切换到 zsh,此建议也适用。

几年以来我一直在使用命令行(在本地和通过 SSH),我最近才自己切换到 zsh(主要是因为我的自定义 bash 提示符不兼容)。这是我的zsh 配置(集成在我的dotfiles 存储库中)。

您可以使用chsh -s /bin/zsh切换您的 shell(通过 /etc/passwd),或者只是从您当前的 shell 中调用它,即输入zsh您的 bash 提示符(尽管您可能必须先安装它 ( sudo apt-get install zsh)。


Dav*_*ngs 5

“apropos”(或等效的:“man -k”)来查找执行某事的命令。

$ apropos [my query]
Run Code Online (Sandbox Code Playgroud)

例如,要找到复制文件的命令:

$ apropos copy
Run Code Online (Sandbox Code Playgroud)

会列出一堆命令,其中

cp (1) - copy files and directories
Run Code Online (Sandbox Code Playgroud)

是一个。

“cp”是命令,“1”是手册中出现的部分。第 1 部分是一般用户命令(其他部分包括诸如库调用之类的内容,您不会对此感兴趣)。要将搜索限制为仅第 1 部分,请使用:

$ apropos -s1 [my query]
Run Code Online (Sandbox Code Playgroud)

要了解有关命令的更多信息,请使用“man”。例如

$ man cp
Run Code Online (Sandbox Code Playgroud)