BeagleBone Black教程之BeagleBone Black使用到的Linux基础

BeagleBone Black教程之BeagleBone Black使用到的Linux基础

BeagleBone Black涉及到的Linux基础

在许多没有Linux相关经验的人看来,Linux看起来很是可怕。一些“好”发行版会给你配备华丽的桌面(例如OpenSUSE使用的KDEUbuntu使用的Unity),“差一些”的就配备一些朴素的桌面(例如Xfce),而“没人性”的就只有命令行界面了。实际上Linux并不可怕,可怕的是连尝试的勇气都没有。本章就带你了解一下Linux最基础的命令行和文件系统。在你亲自尝试了其中的每一个命令以后,你就会了解到命令行的魔力,同时也为以后的学习打下基础。python

BeagleBone Black的命令行

在第2章中,咱们的主要任务就是链接BeagleBone,而且获得命令提示符。在命令提示符下,你能够输入命令来执行启动程序、管理文件、更新系统以及编译程序等等的操做。默认状况下,BeagleBone的命令提示符相似这样:linux

  • root@beaglebone:~#数据库

这看似是一串没规律的字符串,但其中大有文章,下面就来一一解释其中的各个部分:vim

  • q  root:这部分用来表示当前的登陆用户,这里是rootroot用户是一个特殊的用户,它存在于每个Linux系统中。它也被称做超级用户(superuser)或者系统管理员。固然,越大的能力对应越大的责任——你能够操做操做系统中的任何部分,固然包括修改系统配置以及删除整个系统。这也就印证了计算机界的一句话:再强大的系统也扛不住猪同样的管理员。浏览器

  • q  beaglebone:这部分用来表示主机名(hostname)。这是网络中其余计算机可使用这个名字访问到BeagleBone。固然,这个名字并非固定的,在本章以后的部分将会介绍如何修改它。安全

  • q  ~:这部分用来指示当前工做目录。它是你当在所在文件系统的路径。若是你不指定路径地使用建立文件的命令,那么文件就会建立在这个目录下。波浪号(~)在文件系统中并不存在,它是登陆用户home路径的简写方式。例如,若是使用root用户登陆,那么它表明路径/root;若是使用debian用户登陆,则表明/home/debian网络

  • q  #:这部分是输入提示符。同时也表示登陆的用户是超级用户。若是你使用普通用户登陆,它将变为$,如图3.1所示是使用普通用户debian登陆时的提示符。ssh

3.1  普通用户登陆编辑器

BeagleBone Black文件系统

与其余操做系统相似的,Linux文件系统用来组织文件或文件夹。文件系统的根目录(最高层目录)使用“/”来表示。在根文件系统中,有一些主要的目录被包含在绝大多数Linux系统中,如图3.2所示是BeagleBone上的Debian系统根目录下的子目录。学习

3.2  Debian的文件系统

其中几个主要目录的介绍在表3.1中。

3.1  根文件系统中的主要目录

在介绍了基本的目录结构以后,咱们就能够开始探索BeagleBoneLinux的文件系统了。你须要学习的第一个命令是pwd,它用来输出当前工做目录以指示你当前在文件系统中的位置:

  • debian@beaglebone:~$ pwd

  • /home/debian

上面的输出代表了你当前在所在的目录名为debian。这个目录在home目录下,而home目录在根(/)目录下。

BeagleBone Black改变路径

改变路径使用的命令是cd,例如将当前目录改成根目录:

  • debian@beaglebone:~$ pwd            #输出当前工做目录

  • /home/debian

  • debian@beaglebone:~$ cd /             #进入根目录

  • debian@beaglebone:/$ pwd              #再次输出当前工做目录

  • /

在执行cd命令以后再执行pwd能够看到当面目录已经变为了根目录(/),同时你应该注意到命令提示符$前面的“~”变成了“/”。固然想要回到用户目录,可使用“~”也可使用用户目录的绝对路径“/home/debian”:

  • debian@beaglebone:/$ cd ~                       #进入用户目录

  • debian@beaglebone:~$ pwd                      #输出当前工做目录

  • /home/debian

  • debian@beaglebone:~$ cd /home/debian/                #进入/home/debian目录

  • debian@beaglebone:~$ pwd            #再次输出当前工做目录

  • /home/debian

符号“~”是用户目录的简写,cd命令使用它能够方便地回到用户目录。但cd命令还提供了一种回到用户目录的最简单方式——不指定参数:

  • debian@beaglebone:~$ cd /              #进入根目录

  • debian@beaglebone:/$ pwd              #输出当前工做目录

  • /

  • debian@beaglebone:/$ cd                 #进入用户主目录

  • debian@beaglebone:~$ pwd            #再次输出当前工做目录

  • /home/debian

要切换到当前目录的父目录也很是容易,使用“..”做为cd的参数便可:

  • debian@beaglebone:~$ pwd                      #输出当前工做目录

  • /home/debian

  • debian@beaglebone:~$ cd ..                      #进入当前目录的父目录

  • debian@beaglebone:/home$ pwd            #再次输出当前工做目录

  • /home

  • debian@beaglebone:/home$ cd ..            #进入当前目录的父目录

  • debian@beaglebone:/$ pwd                       #再次输出当前工做目录

  • /

从上面的一系列命令能够看出,咱们使用两次“cd ..”从用户目录返回到了根目录(/)。固然,“..”一样能够像使用普通目录那样使用:

  • debian@beaglebone:~$ pwd                      #输出当前工做目录

  • /home/debian

  • debian@beaglebone:~$ cd ../../tmp          #进入当前工做目录父目录的父目录下的tmp

  • debian@beaglebone:/tmp$ pwd                #再次输出当前工做目录

  • /tmp

cd ../../tmp”的含义就是向上走两个目录,而后进入同一目录下的tmp目录。

BeagleBone Black中列出目录下的内容

列出目录下的内容使用ls命令。如今将当前目录导航到根目录,而后使用ls便可查看根目录下的全部子目录:

  • debian@beaglebone:/tmp$ cd /                           #进入根目录

  • debian@beaglebone:/$ ls                                     #列出目录下的内容

  • bin   dev  home  lost+found  mnt  proc  run   selinux  sys  usr

  • boot  etc  lib   media       opt  root  sbin  srv      tmp  var

这些目录中的绝大部分都在表3.1中有说明。若是你还想了解这些目录的更多信息,那么能够为ls传递-l参数:

  • debian@beaglebone:/$ ls -l

  • total 76

  • drwxr-xr-x   2                   root root  4096        May 15 10:34            bin

  • drwxr-xr-x   3         root root  4096        May 15 10:27            boot

  • drwxr-xr-x  14          root root  3640        May 15 10:19            dev

  • drwxr-xr-x 106                    root root  4096        Nov 10 15:53            etc

  • drwxr-xr-x   3                   root root  4096        May 15 10:52            home

  • drwxr-xr-x  15          root root  4096        May 13 21:30            lib

  • drwx------   2           root root   16384      May 15 10:19            lost+found

  • drwxr-xr-x   2                   root root  4096        Oct 30 13:31             media

  • drwxr-xr-x   2                   root root  4096        Apr 20  2014           mnt

  • drwxr-xr-x   5                   root root  4096        May 15 10:27            opt

  • dr-xr-xr-x 111            root root     0         Jan  1  1970                   proc

  • drwx------   4           root root  4096        Oct 30 17:27             root

  • drwxr-xr-x  23           root root   740        May 15 10:19            run

  • drwxr-xr-x   2                   root root  4096        May 15 10:39            sbin

  • drwxr-xr-x   2                   root root  4096        Jun 10  2012                    selinux

  • drwxr-xr-x   2                   root root  4096        May 15 10:13            srv

  • dr-xr-xr-x   12         root root     0         Jan  1  2000                   sys

  • drwxrwxrwt   8        root root  4096        Nov 10 15:17            tmp

  • drwxr-xr-x  10          root root  4096        Feb 21  2014                    usr

  • drwxr-xr-x  12          root root  4096        May 15 10:32            var

这个列表给出了更全面的信息,包括权限、全部者、大小、修改时间等。

BeagleBone Black建立文件和目录

为了不破坏文件系统,在继续学习以前咱们应该回到咱们的用户目录:

  • debian@beaglebone:/$ cd

  • debian@beaglebone:~$ pwd

  • /home/debian

若是你是以root用户登陆的,那么可使用su命令切换到其余用户。BeagleBone使用的Debian系统默认已经建立了一个名为debian的用户,可使用以下的命令切换:

  • su debian

在切换用户以后首先查看当前目录下的内容:

  • debian@beaglebone:~$ ls

  • bin  Desktop

能够看到,在debian用户的目录下已经有两个文件了。 

建立目录可使用mkdir命令。下面的命令在当前目录下建立名为myDir的目录:

  • debian@beaglebone:~$ mkdir myDir

  • debian@beaglebone:~$ ls

  • bin  Desktop  myDir

再次使用ls后,能够看到新目录已经被建立。若是你想建立一个新文件,而且向其中写入一些简单的内容,使用以下的命令能够方便地完成:

  • debian@beaglebone:~$ echo 'Hello, world!' > hello.txt

上面的语句使用大于符号(>)将“Hello, world!”重定向到了hello.txt文件。因为hello.txt以前并不存在,因此这条命令会建立这个文件,使用ls命令能够看到这个新文件:

  • debian@beaglebone:~$ ls

  • bin  Desktop  hello.txt  myDir

须要特别注意的是,若是hello.txt文件已经存在,那么前面的命令会清空文件中的内容。cat命令能够将文件中的内容输出:

  • debian@beaglebone:~$ cat hello.txt

  • Hello, world!

若是你只是想在原来文件内容的基础上追加一些内容,那么须要使用“>>”符号重定向。下面的命令将“Yes!”追加到hello.txt文件中:

  • debian@beaglebone:~$ echo 'Yes!' >> hello.txt

使用cat命令再次查看hello.txt文件:

  • debian@beaglebone:~$ cat hello.txt

  • Hello, world!

  • Yes!

能够看到,“Yes!”已经被正确地添加进去。若是你只是想建立一个空文件而不进行任何操做,那么可使用以下的命令:

  • debian@beaglebone:~$ > empty.txt

是的,直接使用重定向符“>”便可,上面的命令在当前目录下创建了名为empty.txt的空文件。使用ls命令便可看到新建的文件:

  • debian@beaglebone:~$ ls

  • bin  Desktop  empty.txt  hello.txt  myDir

固然,重定向符号不只仅能够重定向echo,还能够重定向cat的输出,以下的命令就将hello.txt中的内容输入到empty.txt文件中去:

  • debian@beaglebone:~$ cat hello.txt > empty.txt

使用cat查看hello.txtempty.txt的内容:

  • debian@beaglebone:~$ cat hello.txt

  • Hello, world!

  • Yes!

  • debian@beaglebone:~$ cat empty.txt

  • Hello, world!

  • Yes!

能够看到,这两个文件中的内容是彻底一致的。前面介绍的这些命令能够建立文件并简单地写入一些内容。若是你想要查看并编辑内容的话,仍是使用一个编辑器比较好。在Linux系统中,一般都带有nano编辑器。下面的命令使用nano打开empty.txt文件:

  • debian@beaglebone:~$ nano empty.txt

nano是字符界面下的文本编辑器,如图3.3是打开empty.txt文件后的效果。

3.3  nano编辑器

固然,这个编辑器是不支持鼠标操做的,一切操做都使用键盘完成,一些经常使用的操做都在屏幕下边作了提示,其中符号“^”表示键盘上的Ctrl键。移动光标可使用方向键;保存文件使用Ctrl+O;退出nano则使用Ctrl+X。固然,nano能够完成的功能远不像看起来那么简陋,它还能够执行搜索、剪贴板操做以及拼写检查。使用Ctrl+G组合键能够查看更多关于nano的信息。

BeagleBone Black复制、移动(剪切)和重命名文件

在命令行下复制文件使用的命令是cp,在3.2.3节中咱们建立了myDir文件夹。下面的命令将hello.txt复制一份到myDir中:

  • debian@beaglebone:~$ cp hello.txt myDir

使用ls命令查看myDir目录下的内容:

  • debian@beaglebone:~$ ls myDir

  • hello.txt

使用cat命令查看hello.txt中的内容:

  • debian@beaglebone:~$ cat myDir/hello.txt

  • Hello, world!

  • Yes!

能够看到hello.txt中的内容与myDir目录外的hello.txt中的内容是一致的。

移动文件的命令与复制命令相似,只不过直接移动文件而不进行复制,使用的命令是mv。在使用这个命令前咱们列出当前用户目录下的文件:

  • debian@beaglebone:~$ ls

  • bin  Desktop  empty.txt  hello.txt  myDir

下面的命令将empty.txt文件移到myDir文件夹中:

  • debian@beaglebone:~$ mv empty.txt myDir

执行完成后再次查看当前目录下的文件:

  • debian@beaglebone:~$ ls

  • bin  Desktop  hello.txt  myDir

能够看到,empty.txt文件已不复存在。查看myDir目录下的文件:

  • debian@beaglebone:~$ ls myDir

  • empty.txt  hello.txt

能够看到,empty.txt出如今了myDir目录下。

mv命令的一个技巧用法就是重命名文件。在操做以前先确认当前目录下的文件:

  • debian@beaglebone:~$ ls

  • bin  Desktop  hello.txt  myDir

下面的操做将hello.txt重命名为yes.old

  • debian@beaglebone:~$ mv hello.txt yes.old

再次查看当前目录下的文件:

  • debian@beaglebone:~$ ls

  • bin  Desktop  myDir  yes.old

能够看到,hello.txt已经被重命名为yes.old

BeagleBone Black删除文件和目录

rm命令用来删除文件。例如删除yes.old可使用以下的命令:

  • debian@beaglebone:~$ rm yes.old

若是你想删除一个目录以及其中的全部文件,那么可使用-r选项。下面的命令删除myDir及其下面的全部文件:

  • debian@beaglebone:~$ rm -r myDir

须要注意的是,删除后的文件没法恢复,请三思然后行。

BeagleBone Black系统设置

就想其余计算机同样,你可能设置一些选项来符合你的口味,如设置壁纸、设置语言、设置时区等。下面就介绍一些你可能想要设置的项目,其中包括日期和时间、软件安装和更新、修改主机名以及设置密码。

BeagleBone Black日期和时间

如今的绝大多数计算机中都有一个实时时钟,它经过一个后备电池来在电脑关机的时候保持正确的时间。可是不幸的是在BeagleBone中并无配备这样的设备。也就是说在你刚启动BeagleBone后,它并不知道当前的时间。查看系统中的时间可使用date命令:

  • debian@beaglebone:~$ date

  • Mon Nov 10 17:29:34 CST 2014

固然,在系统启动以后就能够正确地计时了,你只须要手动为他设置一个正确的时间便可。可是,每次系统启动都这样作是任何人受不了的。幸运的是,若是将BeagleBone接入互联网,它就能够经过NTP来设置时间。固然,你可能发现你的BeagleBone已经联网了,可是时间仍是不正确的。这是由于你还须要进行一些设置。

1.设置时区

你须要作的第一件事情就是设置时区(Timezone)。板子上已经预置了时区的数据库,你须要作的就是将对应的时区连接到/etc/localtime。首先,你应该备份原来的配置,将localtime重命名为localtime.old

  • root@beaglebone:~# mv /etc/localtime /etc/localtime.old

若是你使用的是普通用户,则须要在命名前加上sudo

  • debian@beaglebone:~$ sudo mv /etc/localtime /etc/localtime.old

如今咱们就能够查看数据库中容许的时区了:

  • debian@beaglebone:~$ ls /usr/share/zoneinfo/

  • Africa           Chile              Factory           Iceland         MET             posix           UCT

  • America            CST6CDT       GB             Indian          Mexico           posixrules       Universal

  • Antarctica        Cuba             GB-Eire          Iran            MST             PRC           US

  • Arctic            EET              GMT           iso3166.tab     MST7MDT      PST8PDT     UTC

  • Asia            Egypt                       GMT0          Israel           Navajo           right             WET

  • Atlantic           Eire                GMT-0          Jamaica                NZ               ROC         W-SU

  • Australia         EST              GMT+0         Japan        NZ-CHAT       ROK           zone.tab

  • Brazil            EST5EDT        Greenwich       Kwajalein      Pacific              Singapore      Zulu

  • Canada      Etc                Hongkong      Libya          Poland           SystemV

  • CET           Europe            HST            localtime       Portugal           Turkey

须要注意的是,一些时区可能包含在以洲命名的文件夹中,例如上海,就包含在Asia中:

  • debian@beaglebone:~$ ls /usr/share/zoneinfo/Asia/

  • Aden           Choibalsan     Irkutsk           Kuwait          Qyzylorda        Tokyo

  • Almaty          Chongqing      Istanbul          Macao         Rangoon       Ujung_Pandang

  • Amman      Chungking      Jakarta          Macau         Riyadh          Ulaanbaatar

  • Anadyr          Colombo       Jayapura       Magadan       Saigon          Ulan_Bator

  • Aqtau           Dacca          Jerusalem      Makassar      Sakhalin         Urumqi

  • Aqtobe          Damascus     Kabul          Manila          Samarkand     Ust-Nera

  • Ashgabat        Dhaka          Kamchatka     Muscat         Seoul           Vientiane

  • Ashkhabad     Dili             Karachi         Nicosia        Shanghai       Vladivostok

  • Baghdad       Dubai          Kashgar        Novokuznetsk           Singapore       Yakutsk

  • Bahrain          Dushanbe       Kathmandu     Novosibirsk     Taipei            Yekaterinburg

  • Baku            Gaza                   Katmandu    Omsk        Tashkent        Yerevan

  • Bangkok        Harbin         Khandyga      Oral                    Tbilisi

  • Beirut            Hebron                 Kolkata        Phnom_Penh Tehran

  • Bishkek          Ho_Chi_Minh   Krasnoyarsk  Pontianak       Tel_Aviv

  • Brunei           Hong_Kong            Kuala_Lumpur Pyongyang   Thimbu

  • Calcutta          Hovd                   Kuching      Qatar           Thimphu

接下来须要作的就是创建localtime到指望时区的符号连接,这里以Shanghai为例:

  • root@beaglebone:~# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

若是你使用的是普通用户登陆,则须要在命令前加上sudo

  • debian@beaglebone:~$ sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

符号连接就相似Windows操做系统下的快捷方式。

2.同步时间

在设置完时区之后,就能够手动触发一次时间同步了。在Debian下使用的命令是ntpdate-debian

  • root@beaglebone:/home/debian# ntpdate-debian

  • 10 Nov 17:55:25 ntpdate[3536]: adjust time server 202.112.31.197 offset -0.448913 sec

再次执行date便可查看同步后的时间:

  • debian@beaglebone:~$ date

  • Mon Nov 10 17:57:11 CST 2014

如今,只要BeagleBone上电,时间就会被追踪。BeagleBone同时也将NTP同步设置为每小时执行一次,这就会致使BeagleBone在上电的一段时间内时间不正确。你可使用上面的命令来强制进行同步。

BeagleBone Black软件安装和更新

若是你的BeagleBone接入和互联网,那么安装或者更新软件和代码库是很是容易的。软件是以包的形式分发的,在Debian下,使用apt-get来进行软件包管理。

apt-get保存了一份最新软件版本的数据库,可是随着时间的推移,这个数据库就过时了。因此,在安装软件包以前,首先须要更新这个数据库。更新的命令很是简单,以下:

  • root@beaglebone:~# apt-get update

此时,屏幕会滚动一些字符串以表示正在执行的步骤。若是你想将你安装的软件所有更新到最新版本,则能够执行upgrade命令:

  • root@beaglebone:~# apt-get upgrade

这个命令依赖于你的网络情况以及须要更新的软件包的数量,整个处理过程可能会经历至关长的一段时间。

若是你想安装肯定的软件或者代码库,你可使用install参数以及相应软件包的名字,例如安装VIM可使用以下的命令:

  • root@beaglebone:~# apt-get install vim

若是你不想进行upgrade整个系统而只是想升级某个软件,那么能够为upgrade指定要升级的软件包的名字。以下是升级Python的命令:

  • root@beaglebone:~# opkg upgrade python

BeagleBone Black修改主机名

默认状况下,BeagleBone使用beaglebone来标识本身,因此你能够在浏览器中使用http://beaglebone.local或者在SSH客户端中使用ssh root@beaglebone.local来访问它。在大多数状况下是不须要修改它的。可是若是在你的路由器中同时接入多个BeagleBone,你就不知道这个主机名对应的板子了。这就须要为他们分别指定一些个性化的名字。

主机名保存在/etc/hostname中,你可使用cat查看其中的内容:

  • root@beaglebone:~# cat /etc/hostname

  • beaglebone

要修改主机名很是容易,只须要将你想要的主机名写入hostname便可,可使用nano也可使用echo,这里以使用echo演示:

  • root@beaglebone:~# echo 'mybeaglebone' > /etc/hostname

上面的命令将板子的主机名改成“mybeaglebone”。须要注意的是主机名只能够包含字母、数字和下划线,不能够包含@#$等这些特殊符号。

为了Beaglebone能够认出本身的主机名,还须要修改hosts文件:

  • root@beaglebone:~# nano /etc/hosts

hosts文件的内容如图3.4所示。

3.4  hosts文件

咱们须要将其中的“beaglebone”改成对应的主机名,以后保存修改并退出nano。修改完以后,你须要重启Beaglebone。在登陆系统以后,就能够看到修改后的主机名了。

BeagleBone Black设置密码

在默认状况下,Debianroot用户是没有设置密码的,若是你只经过USB的方式链接或者在本身的私有网络中使用Beaglebone,那么有没有密码都无所谓。可是若是你将Beaglebone接入公共的互联网,最好仍是为它设置一个惟一的密码。

Linux中,设置和修改密码均使用passwd

  • root@beaglebone:~# passwd

  • Enter new UNIX password:                                             #输入的密码不回显

  • Retype new UNIX password:                                          #输入的密码不回显

  • passwd: password updated successfully

root用户想要设置其余用户的密码能够为passwd命令指定参数,例以下面的命令为debian用户设置密码:

  • root@beaglebone:~# passwd debian

  • Enter new UNIX password:

  • Retype new UNIX password:

  • passwd: password updated successfully

BeagleBone Black关机

虽然直接切断Beaglebone的电压也能够关机,可是可能会形成数据丢失或者损坏文件系统。正确关闭Beaglebone的方法是执行shutdown命令:

  • root@beaglebone:~# shutdown -h now

上面的命令会使板子当即执行关机命令,固然关机过程须要持续必定的时间。当用户LED再也不闪烁而且电源指示灯熄灭的时候,你就能够安全地拔下电源了。当再次将电源接入,板子会再次启动。若是你只是想让板子重启,则只须要执行reboot命令便可:

  • root@beaglebone:~#reboot

本文选自:BeagleBone Black快速入门教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

相关文章
相关标签/搜索