2014年2月13日 星期四

樹莓派常用的 Linux 指令

我的樹莓派安裝好 Rasbian 後, 接下來就是要熟悉 Linux 作業系統的操作指令. 登入樹苺派的 Rasbian Linux 後, 預設是在 /home/pi 目錄下 (就是那條蟲 ~), 預設有下列目錄與檔案 :

Desktop  Documents  indiecity  ocr_pi.png  python_games  Scratch

以下整理了一些常用的指令 :
  1. 系統環境 :
    $ uname -a  (查詢 CPU 架構, Pi 3 是 ARMv71)
    $ lsb_release -a (查詢 Linux 散佈版本資訊)
  2. 系統登入登出與關機 :
    樹莓派預設帳號是 pi, 密碼是 raspberry, 但如果在設定時有改過密碼, 就要用新密碼登入.
    登出系統的指令是 logoutexit, 執行後會回到登入前狀態 (按 Ctrl-D 亦可).
    關機指令是 sudo haltsudo poweroff, 關不掉時用 sudo poweroff -f  (強制), 然後直接關掉電源即可.
    $ sudo su (以 root 身分登入, 退出用 exit)
  3. 進入 GUI 圖形介面 :
    $ startx   (進入 X 視窗系統)
  4. 系統設定 :
    $ sudo raspi-config   (進入系統設定表單)
  5. 顯示自己的 IP
    $ sudo /etc/rc.local
  6. 允許 SSH 遠端登入
    $ sudo update-rc.d -f ssh defaults 20
  7. 重新啟動 (reboot)
    $ sudo reboot
    $ sudo sync;
    $ sudo shutdown -r now
  8. 顯示網路設定
    $ ifconfig  (全部)
    ifconfig wlan0 (只顯示無線網路卡 wlan0)
  9. 系統更新
    sudo apt-get update (取得遠端更新伺服器的套件檔案清單)
    sudo apt-get upgrade (更新已安裝套件)
    $ sudo apt-get clean (清除更新時所下載回來的檔案)
  10. 應用程式或套件安裝移除 (參考 PyPi)
    python3 -m pip install --upgrade pip (更新 pip 本身版本)
    python3 -m pip install --user --upgrade requests  (更新 requests)
    $ sudo apt-get install PKGNAME (安裝 PKGNAME)
    sudo apt-get install zip unzip (安裝 zip unzip)
    sudo apt-get --purge remove PKGNAME  (移除 PKGNAME)
    sudo apt-get remove --purge 'mysql-.*'   (移除 MySQL 伺服器)
    $ pip install PKGNAME  (安裝 PKGNAME)
    pip install "PKGNAME==1.0.4"  (安裝 PKGNAME-指定版本)
    pip install "PKGNAME>=1.0.4"  (安裝 PKGNAME-指定最小版本)
    $ pip install -U PKGNAME  (更新 PKGNAME)
    $ pip uninstall PKGNAME (移除 PKGNAME)
    $ sudo apt-get autoremove  (自動移除已不需要的套件)
    $ pip list (顯示已安裝之套件)
    註 :  Python 3 使用 pip3; Python 2 使用 pip2, 而 pip 則是安裝至目前環境 (Python2/3)
    $ pip --version  (查詢 pip 版本)
  11. 查詢程式安裝位置 :
    $ where python
    $ which python  
  12. 重新命名檔案
    $ sudo mv old_name new_name
  13. 複製檔案
    $ sudo cp interfaces /etc/network/interfaces
    $ sudo cp wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf
  14. 移除檔案 
    $ rm file_name
    $ rm -f file_name (強制刪除)
    $ rm -rf dir_name (強制刪除目錄及其下的全部檔案與子目錄)
  15. 查詢檔案 :
    $ df  (列出全部硬碟使用情形, 單位 byte)
    $ df -h (列出全部硬碟使用情形, 人性化以 MB/GB 為單位)
    df -Bm (列出全部硬碟使用情形, 以 MB 為單位)
    $ sudo find . -name 'test.py'   (查詢現在目錄下是否有 test.py)
    sudo find . -name '*.py'       (查詢以 .py 結尾之檔案)
    sudo find / -name 'test'.py'    (查詢根目錄下是否有 test.py)
    sudo find / -name 'test*'         (查詢根目錄下以 test 開頭的檔案)
  16. 掃描無線基地台
    $ sudo iwlist wlan0 scan    
  17. 重新啟動網路卡設定 (即 /etc/network/interfaces 之設定)
    $ sudo /etc/init.d/networking restart
  18. 重置網路卡
    sudo ifdown wlan0 (拉下來)
    sudo ifup wlan0 (拉上去)
  19. 連線主機
    $ ping yahoo.com  
  20. 查詢區網 IP :
    $ hostname -I 
    $ ifconfig 
  21. 壓縮解壓縮 :
    $ tar -zcvf myfile.tar.gz mydir  (將 mydir 目錄下的檔案全部壓縮成 myfile.tar.gz)
    $ tar -zxvf myfile.tar.gz  (將 myfile.tar.gz 解壓縮到 myfile 資料夾)
    $ gzip -r mydir (將 mydir 目錄下的檔案全部壓縮)
    $ gzip -d myfile.gz (將 myfile.gz 解壓縮)
    $ zip zippedfile file1 file2 file3 (將 file1, file2, file3 壓縮成 zippedfile, , 須安裝 zip)
    $ zip -r myfile.zip mydir  (將 myfile 含子資料夾壓縮成 myfile.zip, 須安裝 zip)
    $ unzip myfile.zip  (解壓縮 zip 檔, 須安裝 unzip)
  22. 系統管理 :
    $ su  (切換到管理者帳號)
    $ ps -aux   (查看有多少程序在執行, 可查得其 PID 與程式名稱 COMMAND)
    $ sudo kill 123  (刪除 PID=123 的執行中程序)
    $ clear   (清空畫面)
    $ passwd  (更改密碼)
    $ su   (從現在登入帳號轉改換為系統管理者權限, 須輸入管理者帳號)
    $ exit  (離開系統管理者權限回到原本登入帳號權限)
    $ free -h (檢查記憶體剩下多少)
    $ df -h (檢查 SD 卡剩餘多少空間)
  23. 使用者管理 :
    $ sudo useradd tony  (新增使用者帳號 tony)
    $ sudo userdel tony   (刪除帳號為 tony 的使用者)
    $ sudo usermod -d /var/www/html/tony tony  (更改帳號 tony 的預設目錄)
  24. Apache+MySQL 伺服器
    sudo apt-get install apache2  (安裝 Apache2 網頁伺服器)
    sudo apt-get install php5 libapache2-mod-php5  (安裝 PHP5 語言解譯引擎)
    $ sudo /etc/init.d/apache2 restart  (重啟 Apache 伺服器)
    sudo service apache2 restart  (重啟 Apache 伺服器)
    $ sudo apt-get install mysql-server mysql-client php5-mysql (安裝 MySQL 伺服器)
    $ sudo apt-get install php5-mcrypt  (安裝  PHP5 安全性模組)
    mysql -u root -p  (以 root 帳號進入 MySQL 命令列, 須輸入密碼)
    systemctl status mysql.service  (顯示 MySQL 服務之狀態 Active/Failed)
    sudo service mysql restart  (重啟 MySQL 伺服器)
    $ use TABLE_NAME  (進入資料表, 可下達 SQL 指令)
    $ exit   (跳出 MySQL 命令列) 
  25. VNC 伺服器
    $ sudo apt-get install tightvncserver   (安裝 VNC 伺服器)
    $ sudo tightvncserver  (啟動與設定 VNC 伺服器)
    $ vncserver :1 (執行 VNC 伺服器)
    vncserver :1 -geometry 1366x768 -depth 16 -pixelformat rgb565 (指定解析度與彩色)
    $ sudo vncserver -kill :1 (結束)
    $ vncpasswd  (修改連線密碼)
    $ service vncserver restart (重新啟動 VNC 伺服器)
  26. GCC :
    gcc -o helloworld helloworld.c  (將 helloworld.c 編譯成 helloworld)
  27. Crontab :
    $ crontab -e (編輯 crontab)
    crontab -l (顯示 crontab)
    crontab -r (刪除 crontab)
    crontab -i (刪除 crontab 前提示)
    sudo cat /var/log/cron.log  (查看 crontab 執行記錄檔)
    sudo nano /etc/rsyslog.conf  (編輯系統紀錄設定檔, 拿掉 cron.* 前之 # 即啟用 cron 紀錄)
    sudo /etc/init.d/rsyslog restart  (重啟系統紀錄設定檔, cron 紀錄設定生效)
  28. 查詢 Debian 版本 :
    cat /etc/debian_version
從 MobaXterm 進入 X 視窗不是用 startx, 要下 :

$ lxsession&

第五章、 Linux 常用網路指令 (鳥哥)
# GNU / Linux 各種壓縮與解壓縮指令
# Linux / UNIX: Delete a file

2016-03-27 補充 :

為了少敲些字, 密碼我都改成跟帳號一樣 pi.


沒有留言 :