掌握命令行的提示
当我第一次从Windows迁移到Ubuntu时,到目前为止,我要做的最艰巨的事情就是使用命令行。
当你习惯于指点和点击时,打字命令是一种外星人的体验。
当我与新的Ubuntu用户交谈时,他们常常对直接与他们的计算机交谈的想法感到不安。
是否有一个简单而友好的指南来帮助新用户熟悉命令行?
您有任何提示可以让您的体验更轻松或更有趣吗?
如果您正在寻找学习命令行的好指南,我最喜欢的是LinuxCommand.org
本指南将向您展示命令行的基础知识,甚至可以指导您编写有用的shell脚本。
也就是说,大多数用户不需要使用命令行进行大多数日常操作。 我认为命令行不应该阻止用户迁移到Ubuntu。 但是一旦你学会了命令行的力量,没有它你将无法生存!
以下是一些用于操作文件系统的常用命令:
-
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 /
因为它会擦除文件系统
1)标签完成:
节省大量时间。 如果要键入命令,则只需键入足够的命令即可提供只能以单一方式扩展的初始段,然后可以按TAB一次将初始段扩展为整个命令。 因此,例如,在我的系统上, umo TAB
扩展为umount
。 (在我的系统中,初始段只能以一种方式扩展,这是你安装的function等等)如果你输入的内容不足以使完成明确,TAB将不会扩展,但是第二个TAB将显示一个可能的完成列表。 所以,在我的系统上,你的um TAB TAB
产生:
umask umax_pp umount umount.hal
选项卡完成也适用于路径: cd /home/me/docs/reallylo TAB
如果是唯一的,将扩展为cd /home/me/docs/reallylongdirname
,如果不是唯一的,则提供候选连续列表,如上所述。
2) man some-command
或some-command --help
或some-command -h
:
如果你不记得命令是如何工作的,你可以在shell中获得文档。 man
通常提供最详细的信息。 通常,命令的--help
和-h
参数中的一个或两个提供简短摘要。
3) head
:
man some-command
接管终端并阻止您在显示man文本时输入命令。 man some-command | head
man some-command | head
将显示前10行。 man some-command | head -n
man some-command | head -n
将显示前n行。 在这两种情况下,您都会收到提示,以便在输入命令时可以在屏幕上显示man文本。
切换到zsh!
虽然它非常像bash,但它有很多很好的附加function(例如拼写错误,甚至在前面的路径组件或有用的小部件中调用当前命令的帮助(通过run-help;我输入mplayer
之后按ESC-h,然后打开手册页。关闭后我回到旧线))。
我推荐以下一本书,其中包括zsh,bash和其他一些shell:
从Bash到Z Shell:征服命令行 。 虽然它已经有几年了,但我很高兴这并没有让我远离购买它。 如果您不想切换到zsh,此建议也适用。
几年以来我一直在使用命令行(本地和通过SSH),我最近才切换到zsh自己(主要是因为我的自定义bash提示符,这是不兼容的)。 这是我的zsh配置 (集成在我的dotfiles存储库中 )。
你可以使用chsh -s /bin/zsh
切换你的shell(通过/ etc / passwd),或者只是从你当前的shell调用它,即在你的bash提示符中输入zsh
(你可能不得不先安装它( sudo apt-get install zsh
)。
“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
尝试用鱼
fish是类似UNIX的操作系统(如Linux)的用户友好命令行shell。
除了其他function之外,它还具有比bash更高级的选项卡完成function,这在学习时非常有用。
history | grep SOMETHING
history | grep SOMETHING
– 找到您之前使用的包含SOMETHING的命令。
fortune
– 🙂
要学习如何使用命令添加空格,然后在其末尾添加“–help” – 这将告诉您如何使用它并提供选项列表。
例如
cp --help
Ubuntu Pocket Guide and Reference提供了有关使用命令行的章节。 它可以快速启动并运行命令行。
也可以免费下载或在线阅读。
查找具有良好命令行索引的Ubuntu书籍,将其复制并将其放置在计算机附近。 强迫自己使用它。 一本很好的资源是“Ubuntu Linux Toolbox 1000+命令”这本书,涵盖了你需要知道的所有内容(http://www.amazon.com/Ubuntu-Linux-Toolbox-Commands-Debian/dp/0470082933)
但是,如果你不运行服务器,在Ubuntu桌面几乎所有的GUI都可用。
我建议使用CLI Companion :
CLI Companion是一个从GUI存储和运行终端命令的工具。 不熟悉终端的人会发现CLI Companion是熟悉终端并发挥其潜力的有用方式。 有经验的用户可以使用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发布 – 请查看此页面以获取更新版本。) – 或在使用sudo add-apt-repository -r ppa:clicompanion-devs/clicompanion-nightlies
安装后删除PPA sudo add-apt-repository -r ppa:clicompanion-devs/clicompanion-nightlies
。
通过阅读O’Reilly and Associates的The Bash Cookbook ,我学到了很多关于使用命令行并熟悉其工作的知识。 这是一本关于Bash脚本的书,但是大小合适的菜谱格式使它非常易于访问。 作为附带好处,如果您认为“哎呀,我确定要做X,但我不知道怎么做”,您可以使用目录查找X(以及Y和Z)并且对如何做到这一点有了一个好主意(以及如何通过指向其他配方和资源的指南来解释它可以进一步扩展您的理解)。
我一直在阅读官方的Ubuntu Server Book,(第2版)学习系统管理,不仅让我更善于使用命令行,而且我也开始学习操作系统本身的内部工作原理。
使用Ubuntu Server Edition可以帮助我更轻松地学习命令行,因为我没有回退的GUI。