《 Python树莓派编程》——2.2 命令

    xiaoxiao2024-04-21  13

    本节书摘来自华章出版社《Python树莓派编程》一书中的第2章,第2.2节,作者[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    2.2 命令

    为了灵活使用Linux命令行,你需要在切换文件系统时使用如cd和ls这样的命令。运行程序的命令也是在控制台输入的。表2-1中列出了一些你会用到的比较基础的,以及应该学会的命令。

    表2-1续

    表2-1中列出的命令大都易于理解,但仍有一些需要解释一下。

    man:这条命令无疑是最重要的命令。如果你不确定一条命令的作用是什么,或者它使用了什么选项/参数,在终端输入man命令,你将在弹出的UNIX帮助手册中得到你想要的信息。在弹出的页面内,最先显示的通常是命令的名称,以及它的各种排列的摘要,命令的细节描述,所涉及的选项及参数,及它们的作用。当你浏览帮助手册时,按Enter键翻页,按q键返回到终端页面。

    ls:这条命令列出了你当前所在目录的文件信息,可以使用–l和–a这样的参数列出类似于文件权限和修改日期等信息。当使用–l参数时,显示的文件内容的第一部分如下:

     

     "这表示该文件是一个目录文件(d),其所属的用户拥有读、写和执行该文件的权力,同组的用户拥有读和执行的权力,其他用户拥有读和执行的权力。在我们使用树莓派时,通常都是文件的所有者,因此文件权限不会有什么影响。但有时,当你需要将一个文件设置为可执行时,你会用到chmod这个命令,我们会在其他章节对此进行介绍(见第7章)。ls命令也有一些很有用的参数。ls –F列出了当前目录下的文件,但在目录文件后面会多一个“/”符号。ls –a列出所有文件,包括隐藏文件(隐藏文件是指那些以.或..开始的文件,用ls命令查看文件时这些文件并不显示)。

    cd路径名称:就像你想的那样,这条命令会将当前目录转到你指定的目录下。有一些特殊的目录,如cd ~,会转到home目录(“~”或者波浪形,都表示home目录),cd ../会转到当前文件夹的上级目录。换言之,如果你在~/Desktop/MyFiles这个目录下,输入

     

    你将转到~/Desktop目录,输入

     

    你将转到home目录中(~/),输入

     

    你将离开MyFiles目录,并转到MyOtherFiles目录中。

    如果直接输入cd并按Enter键,无论你在什么目录下,你都会回到home目录中。

    pwd:这是个你需要了解的不错的命令。当你不知道当前目录时,pwd会告诉你所在的位置,会从根目录开始给出当前的路径。当你在目录中4.5层深度而且还有一些重名的文件夹时,便会十分有帮助,例如:

     

    当你处于以上的位置时,终端显示的信息仅仅是

     

    这时,这条命令就发挥作用了。

    rm:使用rm命令就像将文件拖入回收站一样,但有一点不同,就是无论是因为何种目的,该删除操作无法撤销,因此要考虑清楚!

    mkdir和rmdir:mkdir和rmdir命令用于创建和删除文件夹。使用rmdir命令时需要注意,要删除的文件夹必须是空文件夹,不然操作系统不会允许你删除它。你也可以在rmdir命令后加-p参数,这意味着你将删除一个文件夹(一定要是空文件夹)及其父文件夹,例如,当你输入:

     

    系统将会删除this_directory/、bar/和foo/这三个文件夹。

    mv和cp:简单地说,mv和cp命令可能需要花一些时间来熟悉一下。mv命令除了移动文件外,有时也代表重命名一个文件。如:

     

    会将myfile.txt文件重命名为myfile2.txt文件

    在mv命令结构中,通过明确目录的深度,可以将文件从一个文件夹移动到另一个。例如,我在MyFiles文件夹下有一个名为myfile.txt的文件。我可以通过以下命令移动并重命名该文件(从文件夹中):

     

    这样,myfile.txt将会从当前文件夹下移出,移动到MyOtherFiles文件夹内,并重命名为myfile2.txt。

    cp命令和mv命令类似,但它是复制文件而不是移动重命名文件,因此源文件不会改变。同样,你可以根据明确的目录深度,使用cp命令跨文件夹复制文件。例如,输入

     

    即将myfile.txt复制到desktop目录下(假设你仍在Desktop/MyFiles/directory目录内)。

    cat:使用cat命令是浏览文件最快速的方法,比如文本文件,无需用编辑器打开便可浏览。输入cat和文件名,终端上便会显示出文件的内容,即便这个文件不是文本文件(如果试着对一个图像使用cat的话,你会看到一堆乱码)。如果想要逐行浏览而不是全文浏览,可以使用more命令。这条命令首先会将整个屏幕填满第一批文字,之后每按下Enter键会显示余下的文字,一次一行。

    date:输入date命令(不加参数)会在终端上输出系统日期和时间。如果加上一些参数,你可以按照你的格式设置日期和时间。

    echo:这条命令仅仅是将你输入的内容回显到终端内。这在终端操作时并不是个十分常用的命令,但当你编写shell脚本时(预先准备好一系列命令,并在终端内运行),就与一般计算机程序语言的print功能类似。

    grep:尽管man命令也许是命令中最重要的一个,但grep命令可能是功能最强大的。它是一个可以搜索文件或目录的搜索程序。它将你输入的正则表达式作为搜索的条件,并在“管道”另一端将搜索到的内容输出到屏幕或其他文件中。正是由于可以识别正则表达式,因此它的功能十分强大。如果你不太熟悉,这里解释一下,正则表达式是构成检索模式的一组字符,而且这串字符通常看起来像一门外语。如:

     

    这条语句将在fruitlist.txt中逐行搜索以“a”开始,以“ple”结束,两者之间仅含有一个字符的单词,并将结果输出到屏幕上。使用“|”或管道(pipe),可以将结果输出到不同的地方,如将结果输出至文本文件中。grep的强大和复杂程度足以用几章来说明,但是现在,我们仅仅知道它的存在即可。

    ./文件名:这条命令可以轻松运行一个可执行文件。但记住,这仅当文件在当前用户下有可执行权限且可被执行时才会起作用,如果用户不具备相应权限或者文件根本就不可执行的话,会提示错误。

    exit:最后一个重要的命令是exit,它将结束终端内执行的任何一个任务(也称作shell),并且关闭终端。

    最新回复(0)