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人!

相關文章
相關標籤/搜索