使用tail命令可以打印一个文件末尾部分的内容,如图1-2所示。
图1-2
很多命令都有对应的信息页(info pages),这些页面要比帮助页面(man pages)详细很多。如果要获取这些命令的更多信息,可以使用info命令。例如,使用info nano命令返回nano的入门指南:
现在我们已经掌握了如何访问文件夹并且查看里面的文件,是时候学习如何创建、查看并且修改文件与文件夹了。这些指令一点都不难,在你们能熟练运用它们之后,便可以轻松地在文件系统中工作。
我们首先学习如何创建一个新的文件夹。再次打开一个新的终端,并且来到你自己的用户目录(home文件夹),输入“mkdir tempfolder”,再用ls指令查看当前目录,如下所示:
pi@raspberrypi:~ $ mkdir tempfolder pi@raspberrypi:~ $ ls Desktop Downloads Pictures Templates miniconda python_games Documents Music Public Videos miniconda3 tempfolder
mkdir表示新建一个文件夹。接下来让我们做一个小练习,帮助你熟悉这条命令。
输入“cd tempfolder”,然后复制一些文件到当前目录。
首先,确认你已经安装了Python游戏。如果没有,你可以进入系统的Preferences,然后选择Recommended Software,再单击Python游戏旁边的选项来进行安装。我们使用下面的命令来进行复制:
cp /usr/share/python_games/fourinarow.py . cp /usr/share/python_games/4row_* .
注意
(1)在我的树莓派上python_games会安装在这个位置,在不同的机器上可能会有不同的情况。
(2)如果要快速打开一个文件,还可以按下Alt+F2组合键,会弹出一个窗口,在里面输入相关引用的指令名,比如“lxterminal”,就可以更简便地打开一个应用。
(3)上述命令末尾的“.”表示当前目录,也就是我们要把文件复制到的文件夹。同时,4row_*可以理解为所有以4row_开头的文件。*一般被我们称作通配符,可以匹配任意长度的字符串,包括空字符串。?可以匹配一个单独的字符。
输入“python fourinarow.py”,你就可以运行游戏了,界面如图1-3所示。
图1-3
可以用文本编辑器来修改这个游戏的源代码,比如,我们使用内置的nano编辑器,如图1-4所示。
图1-4
nano编辑器的历史比我们熟悉的Ctrl+C快捷键还要久远,同时与我们熟悉的记事本有不太一样的设计,所以可能用起来会觉得有点奇怪。
nano的快捷键(在编辑器下面有标示)设置比较奇怪,但是值得学习,有助于以后使用各种Linux类系统。
接下来请你按指示进行操作。首先,使用命令nano fourinarow.py打开游戏的源代码文本文件。使用箭头向下走9行,再将BOARDHEIGHT从6改为10。nano的最后两行列出了它的快捷键。^表示Ctrl,Ctrl+O表示保存文件,Ctrl+X表示退出编辑。现在打开这个程序会出现一个更大的棋盘,展示的空间更大了。但是,这样一来桌面顶部会缺少空间,所以我们还是把BOARDHEIGHT改为9。
通过cat命令你可以直接在终端输出fourinarow.py的文件内容(cat fourinarow.py),但是文件很大时这样做会在终端有大量的文字输出。想要一次查看一部分,可以使用翻页程序。输入less fourinarow.py命令能够让你使用PAGE UP和PAGE DOWN来上翻和下翻页面。单击Q键可以退出less命令(这对man页面也适用)。
获取帮助
当你想要查看关于一些命令的基本帮助时,不需要总是进入对应的man页面,只需要输入--help参数。比如,你可以试一试“rm --help”。
cat、head、tail、less及more指令在你日后的使用过程中非常重要,同时它们完成的功能也是非常类似的,都是把一个文本文件的内容输出到终端上,但是输出的格式与方法会不尽相同。了解它们的最好方式就是打开命令行,选取任意一个文件作为实验对象,然后看一看这些命令在这个文件上的作用。以下是一些示例:
head、tail与head指令会直接输出文件的内容,cat会输出全部内容,head会输出上半部分的内容,而tail会输出末尾部分的内容。
more命令类似cat,不过会以一页一页地形式显示,更方便用户逐页阅读,而最基本的指令就是按空白键(space)显示下一页,按B键就返回(back)前一页显示;less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。同时,more相比less更为方便的是more到达文件末尾会自动退出,不需要我们再去按Q键。在需要向终端打印文件内容时,可以只用cat,该命令是以后我们最常用的文件指令之一。
cat是concatenate的缩写。当你对多个文件使用cat时,它会把它们拼接起来,示例如下:
pi@raspberrypi:~/python_games $ echo a > a.txt pi@raspberrypi:~/python_games $ echo b > b.txt pi@raspberrypi:~/python_games $ cat a.txt b.txt a b
head与tail命令分别可以显示文件的前几行与后几行。举例来说,head fourinarow.py会显示文件的前10行。head -n 5 fourinarow.py会显示文件的前5行,tail -n 5 fourinarow.py会显示文件的后5行。你也可以使用缩写语法,比如head -5 fourinarow.py也可以显示前5行。
如果要删除文件,可使用rm命令:
pi@raspberrypi:~/python_games $ rm -rf *
使用rm时一定要小心,比如上面的语句指令就是整个系统上最危险的指令之一。
nano afile.txt会创建一个新文件afile.txt。尝试着不做任何事直接退出,看看会发生什么。
如果我们直接退出,那么上面的操作会新建一个空的文件,名字是afile.txt。现在,假设要删除这个文件,或者是别的一些不再需要的文件,可以使用rm命令。rm命令跟之前的ls等命令不一样,非常危险并且具有破坏性,应该小心使用。虽然它有一些保护机制,但是使用者还是能很容易地避开这些保护机制。永远不要尝试rm -rf /,这样会删除系统上的所有文件。更严重的是,这个操作是无法撤销的。
现在让我们回到tempfolder文件夹,看一看在这一章里新建的文件。输入“ls”命令,你会看到刚刚复制进来的文件。接下来尝试着用如下命令删除文件:
rm fourinarow.py rm 4row_*.png
使用cd ..命令回到/home/pi文件夹。rm -r tempfolder会删掉现在已经空了的文件夹。-r选项在删除文件夹时是必须使用的,同时这个选项也会递归删掉所有文件夹内的文件。