掌握命令行的技巧[关闭]


29

当我第一次从Windows迁移到Ubuntu时,到目前为止,我要做的最艰巨的任务是使用命令行。

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

当我与新的Ubuntu用户交谈时,他们通常不愿意直接与他们的计算机交谈。

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

您有什么技巧可以使体验更轻松或更有趣?


4
对于它的价值,Ubuntu会努力(至少比其他任何Linux发行版都更加努力),如果不想的话,不要让您使用命令行。但是总有一些事情在命令行上比在GUI中更容易/更快捷。因此,了解它是一个好主意(也是一个好问题)。
David Z

Answers:


17

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

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

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


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 /因为这会删除文件系统


5
嘿,为sudo rm警告+1 :)
Nicholas Knight

2
不要忘记有关臭名昭著的forkbomb“:(){:|:&}; ::”的注释,该分支本质上派生了无限数量的新进程,并逐渐降低了系统速度,直​​到系统耗尽资源而需要重新启动系统。有关更多信息,请参见en.wikipedia.org/wiki/Fork_bomb
Evan Plaice 2010年

12

1)制表符补全:

节省大量时间。如果要键入命令,则只需键入足够多的命令即可提供只能以一种方式扩展的初始段,然后可以按一次TAB键将初始段扩展到整个命令。因此,例如,在我的系统上umo TAB扩展为umount。(在我的系统上,初始段只能以一种方式扩展,这取决于所安装的功能,等等。)如果键入的内容不足以使完成内容明确,TAB将不会展开,但是第二个TAB将显示可能完成的清单。因此,在我的系统上,um TAB TAB收益:

umask       umax_pp     umount      umount.hal

制表符补全也可以在路径上使用:cd /home/me/docs/reallylo TAB如果唯一,则将扩展到cd /home/me/docs/reallylongdirname,如果不是唯一,则将提供候选连续列表,um如上。

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

如果您不记得命令的工作方式,则可以在外壳程序中找到文档。man通常会提供最详细的信息。通常,命令的--help-h参数之一或两者都提供简短的摘要。

3)head

man some-command接管终端,并防止您在显示手册文本时输入命令。man some-command | head将显示前10行。man some-command | head -n将显示前n行。在这两种情况下,都将提示您返回,以便您在输入命令时在屏幕上看到该手册文本。


当我使用时man some-command,man允许我在页面中上下滚动。这不是平常的吗?
Michael Crenshaw

@ mac9416:的确如此。我从来没有尝试过:-[修改了答案以考虑到这一点。谢谢!
vanden

是的,man使用寻呼机(通常为less)。如果要以类似方式检查文件,请键入less somefile。如果您习惯了vim,可以使用jk键滚动。
2010年

公平地说,并非所有shell都提供制表符补全功能。
内森·奥斯曼

@乔治·爱迪生(George Edison):确实如此。但是,如果这是一个有问题的新用户(正像在问题中那样),那么他们将不太可能从默认值更改外壳程序,因此具有制表符补全功能。
vanden 2010年

7

切换到zsh!

尽管它非常类似于bash,但它具有许多出色的附加功能(例如,错字校正,即使在前面的路径组件中,也可以是有用的小部件,它可以为当前命令调用帮助(通过run-help;例如,在键入后mplayer,按ESC-h ,它将打开手册页。关闭后,我回到旧行)。

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

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

您可以chsh -s /bin/zsh用来切换外壳程序(通过/ etc / passwd),也可以只从当前外壳程序调用它,即zsh在bash提示符下键入(您可能必须先安装外壳程序(sudo apt-get install zsh))。


5

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

$ apropos [my query]

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

$ apropos copy

将列出一堆命令,其中

cp (1) - copy files and directories

是一个。

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

$ apropos -s1 [my query]

然后使用“ man”查找有关命令的更多信息。例如

$ man cp

+1是第一个被提及的人man。太棒了!
贾森主义

4

尝试用鱼

fish是用于类似UNIX的操作系统(例如Linux)的用户友好命令行外壳。

除其他功能外,它还具有比bash更高级的制表符完成功能,这在学习时非常有帮助。

替代文字

https://www.pablumfication.co.uk/2010/02/26/fish/

http://fishshell.org/index.php


1
我喜欢历史记录搜索功能。只需键入任何内容,按向上箭头键,您就在历史记录中搜索这些相同的单词。节省时间。
哈维尔·里维拉

fishshell.org的链接已过时。fishshell.com是新的。
NES

2

history | grep SOMETHING —查找之前使用的包含某些内容的命令。

fortune -:-)


2
为此,我使用Ctrl+R SOMETHING(不同之处在于这给出了最后一次出现)。重复Ctrl+R查找SOMETHING以在命令历史记录中查找更多的事件。
Bert Van Vreckem

2

要了解如何使用命令,请在其末尾添加一个空格,然后在其末尾添加“ --help”-这将告诉您如何使用它并提供选项列表。

例如

cp --help

警告,这不适用于所有命令!
SilverWolf-恢复莫妮卡


2

我建议使用CLI Companion

CLI Companion是从GUI存储和运行终端命令的工具。不熟悉终端的人会发现CLI伴侣是了解终端并释放其潜力的有用方法。有经验的用户可以使用CLI Companion将其广泛的命令列表存储在可搜索的列表中。

在此处输入图片说明

您可以通过运行以下命令获取它:

sudo add-apt-repository ppa:clicompanion-devs/clicompanion-nightlies
sudo apt-get update
sudo apt-get install clicompanion

如果您不想添加PPA,请尝试使用此文件的12.04版本(最新版本1.1-6,于2012-04-14发行-请在此页面上找到较新的版本。)-或使用安装后删除PPA sudo add-apt-repository -r ppa:clicompanion-devs/clicompanion-nightlies


1

查找具有良好命令行索引的Ubuntu书,将其归零并将其放在计算机附近。强迫自己使用它。本书“ Ubuntu Linux Toolbox 1000+命令”是不错的参考资料,涵盖了所有您需要了解的内容(http://www.amazon.com/Ubuntu-Linux-Toolbox-Commands-Debian/dp/0470082933)

但是,如果您不运行服务器,则在Ubuntu桌面中,几乎所有内容都可以通过GUI使用。


0

通过阅读O'Reilly and Associates的The Bash Cookbook,我学到了很多有关使用命令行的知识,并且对使用命令行感到很满意。这是一本有关Bash脚本的书,但是菜谱格式的一口大小块使它非常易于使用。作为附带的好处,如果您认为“ Gee,我肯定会做X,但我不知道如何做”,则可以使用目录查找X(以及Y和Z)。对如何做到有一个好主意(以及如何与其他可以进一步加深理解的食谱和资源的指针一起得体的解释)。


0

我一直在阅读《 Ubuntu Server官方书》(第二版),以学习系统管理,不仅我变得更加擅长使用命令行,而且我也开始学习OS本身的内部工作原理。

使用Ubuntu Server Edition可以帮助我更轻松地学习命令行,因为我没有可以使用的GUI。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.