关于我如何在Linux过渡中幸存下来的笔记
从Windows切换到Linux真的很可怕。 但是,如果您可以在最初的几个月中生存下来,那么回报将是指数级的。 这是我如何生存的。
TLDR
- 尽管我只是Linux的业余爱好者,但我能够幸免于过渡并从中受益。 因此,这些是我给面临类似情况的人的笔记。
- 选择Ubuntu开始。 了解更多并可以自行决定后,请选择其他口味。
- 熟悉以下命令ssh,pwd,ls,cd,mv,cp,scp,grep,find和rm。 提示您可以使用https://tldr.ostera.io/cp来熟悉这些命令的最常用选项。
- 学习使用| 符号。 使用此功能,您可以将一个命令的输出作为下一个命令的输入。
长版
在我的第一家公司中,我们广泛使用Windows,无论是用于开发的台式机还是用于部署代码的服务器。 因此,当我搬到第二家公司时,我全都在OSS上工作,而使用linux对我来说却是艰巨的任务。 对于第一个月左右,这对我来说是一场噩梦。
经历了那场噩梦并幸免于难,我正在列出这份清单,以帮助那些像我这样试图过渡的人。
新环境
一般来说,过渡是困难的。 新环境可能令人恐惧。 如果您是Windows用户,但从未使用过太多命令行,那么过渡到Linux真的很可怕。 不要担心,因为这通常是许多第一次进行此过渡的人的经验。
我个人认为很难过渡的两个主要原因是缺乏熟悉度和害怕搞砸。
缺乏熟悉
为了解决熟悉问题,我开始在办公室笔记本电脑和个人笔记本电脑上使用linux。 我开始阅读有关Linux的博客,并在Twitter上关注了一些有趣的与Linux相关的帐户。 我向那些精通Linux的人伸出援手。 我将走到他们的小隔间,并要求他们向我展示他们的指挥历史。 我从中学到了很多。 大多数时候,因为它存在于他们的肌肉记忆中,所以无法解释。 但是他们的历史是个宝库。
我建议运行以下命令。 您将获得有关经常使用哪些命令的许多见解。
历史| awk'{$ 1 =””; 打印$ 0}'| 排序| uniq -c | 排序-nr | 头-20
在办公室中顶级Linux专家的终端上运行命令。 向他们询问您不熟悉的命令,并且您应该学到的知识远超过几本书可以教您的内容。 不要忘记这些是经过战斗考验的命令,因此比博客中的标准示例更有价值。
担心搞砸
我已经使用Linux几年了,但我仍然对此感到恐惧。 当我开始时,这种恐惧是多重的。 对我很有帮助的一件事是,我与公司的Linux专业人员交谈并被列入黑名单。 我不应该使用或谨慎使用的命令列表。 sudo rm -rf在列表中排名第一。 如果您像我一样着急,可以在本地计算机上使用https://github.com/nivekuil/rip 。 当我正经历这个阶段的“恐惧搞砸了的” https://twitter.com/chakri_iiith和https://twitter.com/tuxnani是的格雷亚帮助。 找到你的天使,他们会帮助你面对恐惧。
现在您的恐惧已得到解决,让我们开始吧。
为什么要学习Linux
有许多原因让您学习Linux。 您可以准备以下文章,学习Linux有什么好处 , 为什么应该切换到Linux,以及在学习编程的同时学习 Linux 是否值得我花时间。 只需通过Google搜索,您就可以获取有关为什么要学习Linux的多篇文章。 但是,这是我应该学习的两个主要理由。
- Linux无处不在 :Linux无处不在。 因此,无论您是否知道,都很有可能已经在使用linux。 因此,了解Linux的基础知识在许多情况下都可以派上用场。 如果您是一名程序员,那么机会很大。 Linux服务器上部署了大量的应用程序。 因此学习它可以成为救生员。
- Linux是通用的 : Linux和MAC都基于UNIX构建。 因此,如果您对Linux终端感到满意,那么您也应该能够在MAC终端中使用大多数命令。 Android使用Linux内核。 Raspberry Pi使用Linux。 许多嵌入式设备使用Linux。
您为什么开始学习Linux?
学习Linux可能有很多原因。 但是,如果您是一名程序员,则很可能会陷入以下两个类别之一。
- 您会读到有关Linux可以完成的出色工作的信息,或者是从一个不能停止对Linux狂热的朋友那里听到的。 因此,您想让Linux变得肮脏。
- 您的笔记本电脑或台式机具有非Unix操作系统。 但是您的应用程序/网站已部署在Linux服务器上。 因此,您希望对Linux感到满意,或者想在Linux下生存。
如果您属于第一类,那么您将拥有世界上所有的时间。 因此,请抽出宝贵的时间。 如果您属于第2类,那么您很有可能在截止日期之前运行。
曼命令是你的朋友吗? 还是?
当您想学习Linux时,获得的第一个技巧是“使用man命令,这是您的朋友”。 尽管有一定的道理,但对于许多初次使用的用户来说,它可能是压倒性的。 您通常需要的只是命令中最常用的方案的选项,而这正是手册页中缺少的内容。 这恰恰是TLDR项目试图解决的问题。
只需比较这两个命令的输出即可了解我的意思。
首先,手册页的输出。
现在是TLDR项目的输出。
你看得到差别吗? TLDR就像我为自己编写的命令注释一样。 我觉得很方便。 我使用nodejs命令安装了TLDR sudo npm i -g tldr如果您还没有安装nodejs,我建议您这样做,因为有许多非常方便的节点包。 您可以使用Digitial Ocean的本安装手册来安装nodejs 。
我想在这篇文章的所有命令上分享我的笔记。 但是我遇到了安德鲁(Andrew)的一个帖子,他在其中转换了101个bash命令
https://dev.to/awwsmm/101-bash-commands-and-tips-for-beginners-to-experts-30je#whereis-which-whatis
他对所有命令进行了分类,并且还提供了很好的示例。 我不能做得更好。 因此,我在这里留下了您可以阅读的链接。
了解bash配置文件
我发现bash配置文件是bash配置文件非常方便。 如果您想知道差异以及它们如何工作,请查看https://stackoverflow.com/a/415444/493742
我遵循的一条经验法则是将我的所有配置添加到.bash_profile,并确保在.bash_profile文件中加载.bashrc。 我将我喜欢的别名添加到该文件中。 我将.bash_profile的基本版本保留在我的私人要旨中,并在所需的服务器上下载了该版本的原始版本。
学习使用Emacs
我最近寻找的一件事是通用性。 emacs中使用的大多数命令也可以在Linux shell中使用。 例如,您可以使用CTRL / CMD + A转到shell和emacs的行首。 在shell和emacs中都可以使用许多这样的命令。 我认为这是一个巨大的优势。
由于它是命令行编辑器,因此您可以轻松地将其安装在任何服务器上。 通常,在我有root权限的每台服务器上都安装Emacs。 我不确定这是否是一个好习惯,但是我通常觉得很方便。 是的,我决定不学习Nano或Vim。 如果您愿意,可以烤我。
管它
Linux中的Pipe命令使您可以将一个命令的输出用作下一个命令的输入。 一旦掌握了一些Linux命令(例如grep,sort,awk,uniq,head和tail),这将非常有用。 这些命令的管道功能非常强大。 例如,我永远不记得ls中仅显示文本文件的选项是什么。 我只是做
ls -l | grep txt
我知道这既快速又肮脏,但是在大多数情况下都可以使用。
例如,如果我们查看第一部分中使用的历史记录处理命令
history | awk '{ $1=””; print $0 }' | sort | uniq -c | sort -nr | head -20
我们将使用history命令的输出,并将其传递到awk以从输出中删除行号。 然后我们传递输出,以便可以对其进行排序。 然后,我们传递输出以仅过滤出唯一的行以及出现的次数。 然后,我们将其传递给sort命令,再传递给sort命令,以相反的顺序对其进行排序。 然后,将其传递给head命令,以仅列出历史记录中前20条最常用的命令。
那有多酷? 第一次学习时,我印象深刻。 美丽的是,您几乎修改了上面的命令,以在一天的大部分时间内从命令行中了解需求。
GREP它
如果您习惯了SDK和GUI编辑器GREP,这似乎没有什么限制。 但大多数情况下,差异化之处在于您可以链接非常方便的grep命令的输出。 大多数时候,我并不真正担心grep查询的性能。 只有当grep查询的性能很重要时,我才花时间在上面。 在所有其他情况下,我发现最好多次击败grep和chain。
因此,例如,当我想查看已加载的服务列表时,我迅速查看了该模式并使用了以下命令。
systemctl list-units --all | grep service | grep loaded
所以在这里,我要做的是将结果集减少到包含单词service的那些行,从该结果集中我再次过滤掉也包含load的行。 另外,让我们要删除包含退出的行,然后可以将查询修改为
systemctl list-units --all | grep service | grep loaded | grep -v exited
用grep管道grep非常方便。
在我们关闭之前
对我而言,在Linux上工作时的主要标准不是被命令行和学习曲线所淹没。 我设计了适合自己需求的学习途径。 让我知道这是否适合您。 如果您也是已成功从其他操作系统过渡到linux的用户,请分享您的注意事项。
From: https://hackernoon.com/linux-survival-guide-for-beginners-c18bfd982036