电子说
简介
本指南假定您有权访问Linux计算机上的Shell。所有示例都使用运行Raspbian的Raspberry Pi。如果还没有,则应该从“ Linux”开始?什么是命令行?什么是命令行?
选择自己的冒险
这是Adventure,这款游戏几乎与Unix一样古老,并且比Linux更旧:
像外壳一样,冒险的界面完全由文本组成。
您可以通过键入命令并读取响应与游戏世界互动。例如,请输入ENTER BUILDING或GET LAMP。
浏览机器
外壳与游戏世界很像,只是您要导航计算机的文件系统,而不是放置满是房间和物体的地图并处理其中包含的文件。
文件系统,操作系统启动,运行软件,保存文件,拍照等所需的一切都组织成目录。我们通常在Windows和Macintosh世界中将这些文件夹称为“文件夹”,但是概念是相同的。目录只是一种特殊的文件,可以包含其他文件,包括目录。

作为用户,您有一个主目录。在外壳中,〜(代字号)是此的常用缩写。在这种情况下,它指向/home/pi。
登录到您的Pi,获取一个终端,然后验证一下:
pwd代表 p rint w d 诱惑。 Unix传统中的命令倾向于使用简短的,隐秘的名称。有些容易记住,因为它们代表明显的东西。
如果您对Pi有所了解,就会发现它包含各种东西。您只需要知道更多命令。以下页面快速介绍了一些基础知识。
列出文件:ls
ls用于 l i s t个文件(请注意第一个字母是字母L,而不是数字1!)
让我们从主目录尝试:
注意第二条命令及其输出?
ls -a显示 a ll目录中的文件,包括隐藏的文件。为什么有隐藏文件?因为在Unix世界中,所有目录都包含两个特殊的子目录:
。指向当前目录-/home/pi与/home/pi/。
。.指向父目录,保存当前目录的目录-/home/pi/。.实际上只是/home/
ls通常会隐藏所有以点开头的内容,因为这些内容实际上并不会向用户传达任何额外的信息。
更复杂的是,传统上特殊配置文件存储在~中,并命名为.something,以便默认情况下它们不会显示在目录列表中。
要查看有关单个文件的更多详细信息?
对于 l 列表,-l选项将为您提供几列有用的数据。对于名为.bashrc的文件,您具有:
下载:文件
复制代码
-rw-r--r-- 1 pi pi 3243 Sep 8 20:23 .bashrc -rw-r--r-- 1 pi pi 3243 Sep 8 20:23 .bashrc
-rw-r--r--是文件类型和模式或权限。在这种情况下,该文件是普通的旧文件(不是目录或其他特殊文件),并且:
r eableable和 w 由其所有者riteable
r 由其小组可食用
r 由所有人可食用
该行的其余部分,依次为:
1是文件的硬链接数
pi,重复两次,告诉您文件的所有者和组
3243是文件占用的字节数
Sep 8 20:23是文件的修改时间
您不需要对此事太担心了-请记住-l为您提供了更多细节。
更改目录:cd
要在目录之间移动,请使用cd进行 c hange d 诱惑。
您可以指定cd 相对路径,如下所示:
请记住,“ 。.”是“该目录之上的目录”的快捷方式。/p》
您还可以使用绝对路径,如下所示:
请记住,/是文件系统的 root ,
Raspbian中的默认图形文件管理器以其他操作系统可能熟悉的方式显示根目录:

在此处双击文件夹图标等效于键入cd foldername。在顶部的位置栏中输入完整路径,例如“/home/pi”,等同于键入cd /home/pi。
花一些时间在根目录。 (这里有很多东西,而且像命令名称一样,乍一看可能很隐晦。不要担心它似乎有点压倒一切;您只是得到了铺垫。)
一些有趣的地方:
/etc充满了系统范围的配置文件
/proc和/sys充满了有关正在运行的程序和内核的信息
/var包含诸如日志文件之类的东西,这些文件是系统在操作过程中写入的
/dev包含映射到连接到系统的设备(例如驱动器,网络接口和虚拟终端)的文件
查找内部文件:猫,少,头和尾
我说过“环顾根目录”,但是我省略了一些重要的工具。您已经知道用ls列出目录的内容,但是如果要查看单个文件的内容怎么办?
在图形文件管理器中,您可以双击一个图标,然后让您的桌面环境确定用于打开此类文件的适当应用程序。外壳采用了非常不同的方法。在文件上使用什么命令完全取决于您要完成什么。
cat
cat与猫无关。这是 cat enate的缩写,它转储文本文件的内容。猫会考虑很多事情,但通常不会考虑文本文件。
例如,以下内容包含有关系统处理器的基本信息:
少
有时候,您需要查看一个很长的文件,该文件占用的空间比您已经进入了终端。
less是所谓的寻呼机。它将一次显示一个文件的一页,让您可以随意在文件中上下滚动。
/usr/share/dict/american-english是一长串已知文件美国英语单词。 (如果不可用,请尝试/usr/share/dict/words,它应指向Pi的语言环境的字典。)尝试在less中打开它。
在less内,有一个 ton 个不同的键是可用。基础知识很容易记住,但是联机帮助列出了各种高级功能。
空格前进一页
上下箭头
j和k滚动一行
/搜索文本
q外壳
h显示帮助屏幕
head和尾巴
有时,您只想快速查看文件的开头或结尾。这对于了解超大文件的内容以及查看最新添加的内容(如通常在其后附加新数据的日志)很有用。
如果要查看的行数与默认行数不同,可以指定:
获得超级能力:sudo
现在,您可能偶然发现了一个文件,似乎对您来说是个禁区。有点奇怪吧?是您的计算机-为什么看不到所有内容?
事实证明您可以。您只需要声明一些权限,这就是sudo出现的地方。
您经常需要使用sudo来更改系统范围的配置文件,查看有安全隐患的东西或安装新软件。
我们将更详细地讨论每个主题,但现在请记住公式是:
下载:文件
复制代码
sudo [your command here] sudo [your command here]
如果您是第一次使用sudo,或者几分钟后第一次使用它,系统将提示您输入密码。
sudo会让您遇到麻烦
如果您认为访问对某些文件和操作的限制必须存在是有原因的,您是对的。默认情况下,Raspbian被配置为一个相当开放的系统,与做事相比,做事具有更高的优先级。必须始终将需要使用sudo视为
在任何系统上,始终尝试确保在运行命令之前先了解命令的作用,或者至少一定要确定信任告诉您运行它的人或网站。
obxcd
本教程的一个很大的副作用是,您现在可以从xkcd.com(Unix书呆子的圣地)获得“ Unix书呆子笑话漫画”。笑话评论):
创建目录和文件:mkdir并触摸
mkdir
假设您要创建自己的目录?
我经常在我的主目录中保留一个名为“ notes”的目录,包含一些文本文件。
touch
假设我们要添加一个hello.txt到该目录?
touch不会在文件中 放入任何内容。
touch还有另一件事要知道:如果稍后再在同一文件上运行它……
。..,您将更新时间戳记。这看似微不足道,但却经常出人意料。
当然,这显然是一个人为的例子。如果要使用文本文件,则可能需要在其中放置 。这是编辑器出现的地方。
编辑文件:nano
nano是一个小型文本编辑器。您可以将其视为Windows记事本的终端版本。

此界面的优点在于,它可以告诉您确切的操作。屏幕的底部两行是最常用命令的备忘单。
请记住,^表示“与Ctrl键同时按下”。 Ctrl-X将退出,Ctrl-O将保存文件,等等。记住这些并不需要很长时间,但是不必猜测就很好。
“文本编辑器的朋友”
文本编辑器似乎不是最有趣的软件,但是您很快就会发现,对于文本编辑器来说,它是必不可少的许多您想要在Shell环境中完成的事情。
nano实际上是一种基线编辑器:它可以完成工作,并且很容易新用户。
大多数现代系统都会默认安装它。
在诸如Emacs和Vim之类的终端中,可以使用的功能实际上要强大得多,但是这些选择具有更陡峭的学习曲线,因此,我们暂时在我们的示例中使用nano。
移动,重命名和复制文件:mv和cp
mv
在两种情况下,您需要mv:一种是文件错误的目录。另一个是文件本身的 name 名称错误。
假设您已确定hello.txt确实不属于您的notes目录。
在此示例中,我们说“移动“ hello.txt向上一级目录”。
我们可以指定。.而不是使用/home/pi。键入几个点会更快。键入~的速度甚至更快。
现在,假设您已经确定hello.txt本身被称为错误的事情,而应该改为hello_world.txt。
请记住目录为只是一种特殊的文件。 mv将用于移动整个目录,就像移动单个文件一样。
移动文件可以覆盖其他文件
始终请确保在移动文件时不会覆盖重要的内容。为了避免这种情况,需要了解几个好标记:
mv- i对于 i 交互式-mv在覆盖任何文件之前会询问您要做什么。
mv -n 用于“ n o垃圾”。将跳过所有文件的覆盖。
mv -b 制作一个 b 确认要替换的文件。
cp
要复制文件,请使用cp:

但是,尝试复制目录的行为很奇怪:

默认情况下,cp跳过目录。为什么?好吧,在Stack Exchange上对此进行了很好的讨论,但是简短的答案可能是将所有内容复制到目录中可能是非常昂贵的操作。 (想象一下,如果一个目录包含成千上万个文件。)
要复制目录,我们需要给cp -r标志以启用递归。这是更广泛的模式的一部分:为了使许多命令能在充满文件的整个目录上运行,必须使用标志来指定递归操作,该标志通常为-r或-R。
复制文件可以覆盖其他文件
与mv一样,请始终确保不要通过复制来破坏重要内容。 -i,-n和-b标志在这里也起作用。
删除文件和目录:rm
警告:这是龙!
如果要彻底 r e m 保存文件,则需要rm。对于单个文件,只需指定文件名:
就像cp一样,如果要获取目录,则需要-r进行 r 递归。 i 互动的-i也可以使用,如果我想非常小心自己在做什么,我经常使用它。
您会睁大眼睛!
您应该始终对rm保持谨慎,而对 recursive 则要加倍小心em》 rm。确保您知道自己在哪个目录中,要删除的东西所在的位置以及确定要删除它总是一个好主意。
与图形文件管理器不同,rm并没有撤消按钮或可用来检索内容的回收站。文件丢失后,您将只能花大力气才能将其取回(如果有的话)。 轻踩一下!
磁盘空间,内存使用和CPU负载:du,df,空闲和w
du
通常需要弄清楚文件正在使用多少空间,尤其是在像Raspberry Pi这样的小型设备上,其中存储空间经常受到限制。这是du(即使您的“磁盘”可能是SD卡,也请考虑 d isk u )的地方。默认情况下,输出为非常冗长且难以阅读,因此我通常使用-h表示 h 单位可读的数字,使用-s表示 s 摘要。
您还可以指定路径,并且没有-s它将告诉您它查看的每个文件的大小。
df
有时,通过检查剩余的空间来解决这个问题更容易
df( d isk f ree)提供了快速摘要,按设备和设备所在位置细分附加到:
免费
A RAM比Raspberry Pi上的存储更受限制。 free提供了有关计算机内存状态的有用的快速摘要:
同样,-h会为您提供 h 单位可读的数字。这是如何读取这些数字的很好的细分。
w
了解最近登录的 w 用户,系统的正常运行时间和CPU负载平均值也很有用5、15分钟。这就是w提供的信息:
您也可以通过运行uptime来获得第一位。
什么是平均负载?
这是一个棘手的问题。您需要知道的第一件事是,数字越大意味着负载越大。第二件事是,您拥有多少处理器很重要-从精神上将看到的数字除以处理器的数量,这就是您应该担心的数字。
您应该担心的数字是多少?这得看情况。这是一个很好的详细说明。
进一步阅读
外壳是整个文化的组成部分,具有自己的历史和文学作品。没有比任何一种正确的方法来了解人类文化更正确的方法了。以下是一些可能对您有所帮助的建议。
也许不足为奇的是,Wikipedia拥有许多有关命令行实用程序的良好信息。您可以在他们的Unix入门附近的任何地方开始获利。例如,此Unix命令列表。
有一个Unix和Linux堆栈交换。
我之前提到 Unix编程环境,作者Brian Kernighan和Rob Pike。这是一本难得的技术书,值得您在首次发行后30多年的时间使用。
我的Elem Siever等人撰写的 Linux in a Nutshell 版本已经十年了。或更多,但我仍然会不时翻阅它并学习一些新知识。
最后,我在 userland:一本关于人类命令行的书。如果本指南不能解决问题,那么 userland 关于该主题的更多文学知识和详细知识可能值得一试。 (不利的一面是,动画GIF数量不多。)
目前仅此而已,请继续关注-从这里开始,我们将继续解决高级Shell用法:
Shell Magic的插图指南:标准I/O和重定向,其中涵盖了管道,重定向和标准IO之类的功能,这些功能使我们可以将小命令拼接在一起-真正的shell的强大功能。
别名,通配符,循环以及其他用于减少键入次数和完成更多操作的技术。
编写脚本来解决较大的问题。
系统管理任务,例如通过apt和其他程序包管理器升级和安装软件。
进行数据处理很有趣和利润。
责任编辑:wv
全部0条评论
快来发表一下你的评论吧 !