1. 程式人生 > >樹莓派基礎使用整理

樹莓派基礎使用整理

簡介

  • linux需要登陸、關閉系統等;
  • linux系統有普通使用者和超級使用者
  • 普通使用者使用者名稱:任意
  • 超級使用者使用者名稱:root
  • linux檔案系統大小寫嚴格區分!!!

安裝

時間太長忘了安裝過程,下次裝的時候再補,不過掛載時需要加上’\’資料夾

在忘記root密碼時修改密碼

  1. 開機按 F12 (或長按Shift), 進入GRUB介面.
    • 一開始可能有奇奇怪怪的東西,按相應的按鍵即可進行選擇;
    • 選擇 Advanced options for Ubuntu
    • 選擇Ubuntu, Linux 3.5.0-17-generic
    • Ubuntu, Linux 3.5.0-17-generic (恢復模式) (或recovery mode)
    • 在恢復模式處, 按e, 進入Ubuntu恢復模式的指令碼編輯介面,找到以下語句: 開頭是linux, 後面有… ro recovery nomodeset,將ro recovery nomodeset,改為rw single init=/bin/bash(注:如不修改此處, 後面進入root後,但是不能修改檔案)
    • 以上修改意為改為可讀可寫的單使用者模式, 之後按Ctrl + x, 進入單使用者模式, 此時的使用者即位root使用者(以上步驟是為了進入可讀寫的root使用者模式.以下步驟為修改root密碼)
    • 進入命令列後, 在命令列中執行​passwd root​輸入兩次新的密碼即可.​

目錄結構

linux目錄結構

啟動後常規設定

  • 命令列與桌面的切換

    ctrl+alt+F7  命令列->桌面
    ctrl+alt+F1~F6  桌面->命令列
    

常用指令

安裝與解除安裝

  • apt-get install xxx :安裝xxx

  • apt-get remove xxx :解除安裝xxx

  • apt-get remove –purge xxx :解除安裝xxx同時刪除配置檔案

  • apt-get update :更新軟體資訊資料庫

  • apt-get upgrade :進行系統升級

  • apt-cache search :搜尋軟體包

使用者設定

  • who

    檢視現在有誰在登陸狀態

  • who am i
    檢視我的使用者名稱等
  • date
    顯示當前日期
  • locale
    顯示環境變數
  • echo

    顯示資訊,如歷史記錄、日期等

    • echo $HOME:顯示當前資料夾
    • echo string:顯示字串
    • 加’\’可以在第二行繼續輸入
  • alias

    alias rm='exam'將某一常用命令取一個別名

  • 清除螢幕:

    • ctrl+l:(快捷鍵)
    • clear:(cmd)
    • reset:(cmd)

檔案

  • cd
    • cd :返回家目錄
    • cd /path :設定當前目錄為/path
  • sudo mkdir filepath

    新建資料夾(exam等)

  • sudo rmdir filepath
    刪除資料夾
  • chmod

    改變檔案屬性(rw…)
    如’chmod -w file.c’刪除了當前目錄下file.c的可寫屬性

  • more

    more filename檢視當前資料夾下的檔案內容

  • cat
    新建檔案
    • cat > filename:新建一個名為filename的檔案,回車後會需要繼續輸入檔案內容,結束後按回車,再ctrl+D結束輸入(直接ctrl+C也可以)
  • pwd

    顯示當前目錄

  • ls

    顯示當前資料夾下的檔案(可見的)

    • 若使用ls -a,則顯示所有檔案,包括不可見的
    • ls -l顯示資料夾裡檔案的詳細資訊,如讀寫狀態,編輯日期等
  • find

    find . -name "*.c":在當前資料夾下查詢字尾名為.c檔案
    find / -name "*.c":在根目錄下查詢字尾名為.c檔案
    find filepath -name "*.c":在filepath目錄下查詢字尾名為.c檔案

  • grep
    grep content filename查詢filename裡與content相同的行
    grep content filename -c查詢filename裡與content相同的行,並顯示行號
  • sort
    檔案中的行進行排序
  • comm
    對檔案進行比較
    • comm file1 file2 先輸出相同的行,再輸出僅在某一檔案中出現的行
  • cp
    cp file1 file2複製檔案
  • diff
    diff file1 file2比較2個檔案
  • rm

    rm filename 刪除檔案

    rm filename -i刪除檔案時會有提示確認刪除

  • mv
    mv file1 file2
  • wc
    wc filename:依次顯示行數、單詞數、字元數、檔名

磁碟

  • free

    顯示記憶體使用情況

命令的輸入與輸出

  • 執行shell命令時,有3個標準檔案
    1. 標準輸入檔案
    2. 標準輸出檔案
    3. 標準錯誤輸出檔案
  • cat

    • cat後面不接任何提示符時,表示一直接受標準輸入,每次按回車,都會將輸入的內容輸出到螢幕上
    • 要想結束輸入,只需按下ctrl+D
    • cat < filename 將檔案裡的內容輸出到螢幕上
    • cat > filename 寫檔案(沖掉原來的內容)
    • cat >> filename向檔案裡新增內容
  • echo

    • echo content > filename:將content寫進filename中(沖掉原來的內容)
    • cat < file1 > file2:將file1中的內容輸出到file2,即相當於複製
  • |

    • 名為”無名管道”,連線內容,前面的是輸出到管道,後面的是從管道輸入資料
    • ls -l | wc -l:ls -l內容輸出到管道,wc -l從管道獲取輸入
    • `command表示command為一個命令(反引號引起來)echo`pwd` 為執行pwd命令

檔案與目錄的概念

  • 用’/’表示目錄與子目錄等
  • Linux服從FSSTND規範,一些典型目錄

    • / : 根目錄
    • /bin : 可執行檔案
    • /boot : 系統啟動時用到的檔案,引導linux等時用到其中的一些資訊
    • /dev : 包含所有linux系統中使用的外部裝置,但外設的驅動程式不在這裡(一般放在核心中或者model中)
    • /etc : 存放系統管理時要用到的各種配置檔案
    • /sbin : 存放系統管理員的系統管理程式
    • /home : 如果建立一個使用者名稱,為”guoruoyu”,則系統在/home下會有一個/home/guoruoyu的路徑,存放使用者的主目錄
    • /lib : 存放系統動態連結庫
    • /mnt: (empty generally)一般為空,可以將別的檔案系統掛載在該目錄下
    • /proc:獲取系統資訊
    • /root:超級使用者的主目錄
    • /tmp:存放不同程式執行時產生的臨時檔案
    • /usr:linux系統中佔用硬碟空間最大的目錄
  • 連線

    • ln:為檔案新建一個連結,常分為符號連結和硬連結
      • ln -s file1 newfile1符號連結,新建一個newfile1的名稱,但是它是file1的內容
      • 建立符號連結後,刪除連結沒關係,但是不能刪除原始檔,否則more newfile1時,會顯示no such file or directory
      • ln file1 file2硬連結,相當於複製,因為刪除原始檔後
      • 硬連結不能跨檔案系統,且不能為目錄建立硬連結
  • chmod設定檔案訪問許可權

    • 方法
      • 使用字串設定許可權
      • 使用8進位制數設定許可權
    • chown 改變檔案所有權
      • chown username filename改變檔案主人為username
      • 普通使用者不能將檔案所有權改變為root
    • chgrp 改變組
  • gzip 壓縮和解壓縮檔案

    gzip filename壓縮檔案壓縮,字尾名會加上.gz
    gunzip filename將檔案解壓縮
    gzip -d filename將檔案解壓縮,和上面一樣

  • tar檔案打包

    • tar cvf fileg.tar file1
    • tar zcvf fileg.tar.gz file1
  • man獲取聯機幫助

    • man ls
  • which檔案或指令的位置

  • whereis cmd:指令的幫助手冊

文字編輯

  1. vi
    • vi filename:對文字進行編輯
  2. emacs

系統管理

使用者和工作組管理

  • head /etc/passwd 檢視使用者屬性
  • ls -l /etc passwd shadow檢視使用者的許可權對加密後的登陸資訊的訪問許可權(普通使用者沒有讀的許可權)
  • /etc/group存放著組的基本資訊
  • useradd username:新增一個使用者,使用者名稱為username,如果不給它設定引數,它不自動生成/home下的主目錄、使用者密碼和系統的shell
  • adduser username新建使用者名稱為username的使用者,系統會產生提示,最終建立一個使用者(適合初級使用者,因為不像上面需要記住很多引數選項)
  • userdel username刪除使用者,沒有引數時只刪除username,userdel -r user刪除使用者的同時刪除該使用者主目錄
  • deluser username刪除使用者
  • usermod 改變使用者的名稱
  • groupadd:新增組,
    • groupadd -r groupname 建立系統組賬號,id不能大於500
    • groupadd groupname建立組,id大於500

*groupmod 刪除

密碼管理

  • passwd
  • gpasswd -a username groupname 新增使用者到組
  • gpasswd -d username groupname 將使用者從組刪除
  • su - username切換到其他使用者

程序管理

程序

  • ps:輸出最近的程序,不會輸出其他欄位

    • ps -eu
    • ps u -e列出所有的程序資訊

      sleep 2000& :產生一個程序
      ps -l
      kill 4678   :殺死程序(4678是sleep的PID號) 
      ps -l   :檢視程序(發現產生的程序消失)   
      

      sleep 2000 睡眠2000s,&表示後臺程序

  • ctrl+C:(快捷鍵)終止當前程序

  • kill -9 PID:PID為bash的PID,相當於登陸,如果不加-9,登入狀態的程序殺不掉

執行緒

程序中的一個執行體,一個程序中的各個執行緒共享程序擁有的資源

可以把一個程序分成若干個執行緒

 提高程序執行效率
 程序分工細化

檢視登入使用者及日誌檔案

  • w
    • 檢視登入資訊,返回登入時間、時長等資訊
  • 檢視日誌檔案系統
    • 日誌在/var/log下,包含許多日誌檔案
      • dmesg :系統自啟動以來產生的所有的訊息

linux網路基礎

基本指令

  • hostname:顯示主機名稱
  • ifconfig:顯示網路配置

    • ifconfig eth0:檢視系統的配置
    • ifconfig eth0 ipaddress:修改網路ip地址為ipaddress
    • ifconfig eth0 down:關閉本地連線
    • ifconfig eth0 up
  • sudo /etc/init.d/networking restart

  • sudo /etc/init.d/networking start:開啟網路服務(和redhat linux有所不同)
  • sudo /etc/init.d/networking stop
  • service network:檢視網路服務
  • more /etc/init.d/networking儲存網路資訊的檔案
  • route:檢視路由資訊

    • destination:路由的目標ip地址
    • gateway:閘道器使用的主機名或者ip地址
    • route add ipaddress:增加路由的ip地址
  • ping網路測試指令

    • ping netaddr -c num:向網址傳送num個報文,檢測收發狀態
  • traceroute:跟蹤網路

  • netstat:顯示各種與網路相關的狀態資訊

    • netstat -i:網路統計資訊
    • netstat -r顯示閘道器資訊
  • nslookup:查詢DNS資料庫

    • 輸入指令後,輸入網址即可查詢網址ip地址等資訊
  • tcpdump

網路檔案

  • 網路設定:/etc/sysconfig/network
  • 埠號和伺服器之間的對映:/etc/services
  • 配置DNS客戶 /etc/resolv.conf
  • 主機地址、子網掩碼和閘道器:/etc/init.d/network(這個版本好像不行)

intranet伺服器

samba(一組軟體)

linux gcc使用

  • 安裝gcc

    sudo apt-get install build-essential

  • 檢視版本
    gcc --version

編譯、連結等指令

  • 無選項編譯連結
    • gcc file.c:預處理、編譯、連結生成a.out
    • ./a.out:執行a.out
    • file a.out:檢視檔案的型別(一般是elf型別的可執行程式,說明後綴不影響檔案型別)
  • 選項-o
    • gcc file.c -o file.o:生成file.out
  • 其他:相關連結

文字編輯器

有用連結

vi/vim使用

  • 安裝vim
    • apt-get install vim(vi一般是自帶的,ubuntu沒有自帶vim)

vim的狀態

  • 命令列模式
    • 按esc到達命令列模式
  • 插入模式
    • 按i到達插入模式
  • 底行模式
    • 將檔案儲存或者退出vi,也可以設定編輯環境
  • [esc]+:+q+!:不儲存退出
  • [esc]+:+w+q:儲存後退出

程序建立系統呼叫

程序建立

  • 指令: fork(主要) vfork clone

    int var = fork();
    var<0:建立不成功
    var=0:
    var>0:

raspberry 使用手冊

登陸

  • root yourname(超級使用者)
  • pi yourname(系統自動建立的使用者)
  • gf yourname(處理網頁的使用者)

顯示器、鍵盤連上直接登陸

遠端登陸

  • 工具
    • advanced ip scanner
    • putty
  • 網口和路由器相連,為路由器上接個口和樹莓派相連,用advanced ip scanner掃描樹莓派的ip地址,用putty連上即可
    • 這個找了好長時間。。之前樹莓派沒地址,用dos嘗試ping了一個地址,再次掃描時就發現樹莓派的地址變成它了。
  • 首次登陸,需要配置
    • rasp-config要配置,有幾個比較重要的地方
      • sudo raspi-config(沒有空格)
      • expand filesystems
      • 時區配置
      • 修改密碼
  • 為方便以後登陸時不用老查詢ip地址,可以設定靜態ip地址
    • 自己上網找,反正我沒試成功,最後還得重新寫SD卡

*啟用root使用者
* sudo passwd root

軟體安裝與刪除

  • sudo apt-get remove [package name]刪除軟體或包
  • sudo apt-get install [package name]安裝軟體或包

無線驅動的安裝與使用

遠端登陸樹莓派的圖形介面

  • 網址
  • 如果提示找不到,可以嘗試修改軟體源。
  • 安裝之後,用vncserver :1啟動服務,在windows上用VNC viewer即可登陸圖形介面,比如說ip地址為192.168.0.111,開啟的埠號為1,則需要同192.168.0.111:1進行連結即可。
    • 注:這塊樹莓派的口令是########

檔案傳輸

  • 直接開啟winscp直接拖拽檔案即可。

開機自啟動檔案

  • /etc/rc.local 在該檔案中新增相應命令即可

gpio操作

下載wiringPi的庫

測試語句

  • gpio -v :版本號
  • gpio readall :gpio的所有管腳定義

基本

  • 在/root/wiringPi/examples中有許多例子,可以參考
  • lsusb檢視usb介面使用細節
  • 開機自動傳送ip到郵箱:網址

各種庫的說明

  • 使用wiringPi庫時,用C語言開發,此時管腳定義是gpio readall中的wPi對應的管腳,設定時,直接用相應的數字即可。
  • 使用python開發時對應的管腳,就是按照physical順序排列的管腳

有用的網站

進入樹莓派的圖形化介面

  • python
  • mathematic

python 開發

進入

  • 命令列敲入python即可

攝像頭模組使用

  • 安裝與使能
    • sudo apt-get update 更新
    • sudo raspi-config點選”enable camera”
    • 重啟即可
  • 使用

    • raspistill -o filename.jpg -t time
      • 當前目錄下於time秒之後拍照,生成一張filename.jpg的圖片
      • 如果要檢視命令的全部選項,直接raspistill,回車即可
    • raspivid -o filename.h264 -t 10000
      • 拍視訊,生成10s、filename.h264的視訊。
      • raspivid直接回車,可以檢視全部選項
      • 如果需要轉成MP4格式的檔案,可以參考上面的連結。
  • 樹莓派攝像頭實現實時監控和視訊資料傳輸

  • 注:寫地址時,記得加上http://,否則顯示無法開啟

樹莓派搭建伺服器

  • 為方便上傳與下載檔案使用(圖片、視訊等)
  • 步驟
    • 安裝vsftpd
    • 配置各種關於vsftpd的檔案
      • 在遇到530、453等網路問題時,基本都是配置檔案出現問題,按照檔案詳細說明中進行配置即可
  • 搭建web伺服器的方法連結
    • 之後只需登陸該介面即可檢視各種樹莓派上生成的網頁

樹莓派基於webiopi的網頁控制

  • 執行webiopi

    webiopi -d -c /etc/webiopi/config

    一般埠為8000,之後只需登入”http://192.168.0.111:8000/“即可,使用者名稱是webiopi,密碼是raspberry

  • 登入之後可以通過點選按鈕控制GPIO的狀態
  • 要想修改初始化檔案,只需修改’/etc/webiopi/config’檔案即可
  • 連線
  • 啟動方法(root下)

    cd /etc/init.d
    ./webiopi start
    

若要停止該服務,只需要./webiopi start即可

樹莓派上python2.7的計算機視覺程式設計

  • 安裝PIL庫(在樹莓派上這個方法似乎不可行,因為幾種檔案格式都不支援)

    • 下載包 wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
    • 解壓 tar xvfz Imaging-1.1.7.tar.gz
    • 找到Imaging-1.1.7/setup.py,修改以下的語句

      TCL_ROOT = "/usr/lib64/"
      JPEG_ROOT = "/usr/lib64/"
      ZLIB_ROOT = "/usr/lib64/"
      TIFF_ROOT = "/usr/lib64/"
      FREETYPE_ROOT = "/usr/lib64/"
      LCMS_ROOT = "/usr/lib64/"
      
    • 安裝檢查 python /root/nowamagic_venv/Imaging-1.1.7/setup.py build_ext -i
    • 安裝 python /root/nowamagic_venv/Imaging-1.1.7/setup.py install