2019年4月11日 星期四

常用指令

apt 指令:
指令說明
sudo apt-get update更新套件清單。
sudo apt-get upgrade升級系統已安裝套件的版本,此指令可一次升級所有已安裝套件的版本,也可以單獨升級某指定套件。
sudo apt-get dist-upgrade  <name>升級系統已安裝套件的版本,一併升級具相依性套件的版本。
sudo apt-get install  <name>安裝套件。
sudo apt-get remove  <name>移除套件,但保留該套件設定檔。
sudo apt-get autoremove  <name>移除套件,並且移除與該套件具有相依性之套件。
sudo apt-get --purge remove  <name>移除套件,一併移除該套件設定檔。
sudo apt-get clean移除套件的安裝原始檔。
sudo apt-get autoclean移除已經無法再下載的套件安裝原始檔。
sudo apt-get check檢查套件是否有相依性的問題。
apt-cache search  <name>透過此指令,我們可以使用關鍵字來搜尋套件完整名稱,name 為某套件的查詢關鍵字。
apt-cache showpkg  <name>查詢某套件的所有資訊。
apt-cache pkgnames  <name>查詢系統中所有可用的套件名稱。
apt-cache depends  <name>查詢與某套件有依存關係的所有套件,並顯示是否有衝突套件及建議取代套件。
P.S. Ubuntu 不允許同一個時間下有兩個不同的套件管理運作,如出現下列的錯誤訊息,就表示有人同時跟你在做套件安裝啦!
E: 無法取得『/var/lib/dpkg/lock』鎖。- open(11 資源暫時無法取得)
E: Unable to lock the adminitration directory(/var/lib/dpkg/), is another process using it ?
設定檔:/etc/apt/sources.list下載路徑:/var/cache/apt/archives
如果發生連不到 tw.archive.ubuntu.com 的情形,可參考該篇文章來修改其它更新網站的連線。
# sudo cp -p /etc/apt/sources.list /etc/apt/sources.list.default
# sudo sed -i 's/tw.archive.ubuntu.com/mirror.nttu.edu.tw/g' /etc/apt/sources.list
# sudo apt-get update


dpkg 指令:
指令說明
sudo dpkg --install xxx.deb安裝套件(等同 rpm -i)
sudo dpkg -i xxx.deb安裝套件(等同 rpm -i)
dpkg -l列出系統中已安裝的所有套件(等同 rpm -qa)
dpkg -l |grep <name>套件關鍵字查詢,name 為某已安裝套件的查詢關鍵字
dpkg -l *<name>*安裝或未安裝的套件查詢,name 為某套件全名,可用萬用字元輔助查詢
dpkg --search <name>顯示該檔案屬於哪個套件(等同 rpm -qf),name 為包含完整路徑的檔案名稱
dpkg --listfiles <name>列出套件有哪些檔案安裝在系統中(等同 rpm -ql)
dpkg --status <name>列出套件說明(等同 rpm -qi)
dpkg -s <name>列出套件說明(等同 rpm -qi)
dpkg --get-selections顯示目前各個軟體套件的安裝狀態(未安裝、正確安裝、被移除、完整移除、安裝失敗等等)
sudo dpkg --remove xxx.deb刪除套件,但保留設定檔(等同 rpm -e)
sudo dpkg -r xxx.deb刪除套件,但保留設定檔(等同 rpm -e)
sudo dpkg --purge xxx.deb刪除套件,不保留設定檔
sudo dpkg -P xxx.deb刪除套件,不保留設定檔
升版的指令如下:
# sudo do-release-upgrade
如果要下載開發中的版本,再加上 -d 的參數即可。

2019年4月8日 星期一

cu: /dev/ttyS0: Line in use

cu: open (/dev/ttyS0): Permission denied
cu: /dev/ttyS0: Line in use
There is probably no real usage of the line, but a permission issue. quick and dirty way to test for me was to execute:
ls -la /dev/ttyUSB0
sudo chmod 666 /dev/ttyUSB0
and retry cu. If it starts working, you need to take care of the respective udev file and the user permissions/groups. For my device it looked like this (being member in plugdev group):
> cat /etc/udev/rules.d/42-CP210x.rules 
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SUBSYSTEMS=="usb",
ACTION=="add", MODE="0666", GROUP="plugdev"
source:
https://superuser.com/questions/794309/linux-tells-me-a-serial-port-is-in-use-but-it-isnt

2019年4月6日 星期六

Ubuntu cp 和 mv 指令

Ubuntu  cp 和 mv 指令複製和搬移整個資料夾


    在 Ubuntu / Linux 上,複製檔案是用 cp 指令,而搬移檔案則是用 mv 指令 ( mv 也可以拿來做更名用哩 !) ,cp 這個指令可以用 -r 或大寫 -R 選數來指示說要複製子資料夾,其實,這個 r 的意思是 recursive ( 遞迴 ),就是等於告訴 cp 指令要整個資料夾都去繞一圈的意思,所以,用 cp 指令複製整個資料夾的指令如下: ( 以阿舍要複製 /home/ayu/xyz 整個資燉夾到 /tmp 為例 )

$ cp -r home/ayu/xyz/. /tmp

另外,如果是要搬移整個資料的話只要在來源和目的資料夾( 已經存在的 ) 加個 “/” 就可以了,例如,阿舍要將 drupal_commons 這個資料夾裡的所有檔案和資料夾都要搬到 xyz 這個資料夾裡,那麼操作指令就是下面這樣。

$ mv drupal_commons/ xyz/

而如果是要用 mv 指令來變更檔案名稱的,就是在 mv 指令的後面直接放原始檔案的完整路徑和新檔案名稱及完整路徑就可以了,舉例來說,阿舍要把家目錄下的 xyz.txt 檔案名稱換成 abc.txt 的話,操作指令如下:

$ mv ~/xyz.txt ~/abc.txt

Linux 系統中,重新命名資料夾或檔案也可以透過同一個指令來達成,這個指令是 mv!mv 是 move 的縮寫,他除了移動檔案資料夾的功能外也可以同時重新命名。
所以其實仔細想想拿他來重新命名檔案也不會很難理解啦,
重新命名時只是把檔案移動到同一個資料夾,然後趁著移動時把檔名給順便改了!

說了這麼多那 mv 指令到底該怎麼使用呢?
# mv $1 $2
# $1: 舊檔案或資料夾名稱
# $2: 新的檔案或資料夾名稱
mv oldname.txt newname.txt

上面的方法是用來重新命名單一檔案或資料夾,
但是當一個目錄資料夾底下有很多有特定規則檔名的檔案需要改名,
例如相機產生的檔案 IMG001.jpg~IMG999.jpg 超多檔案,
這絕對不可能直接用 mv 一個個慢慢敲來改名的。
這時候另一個指令就可以派上用場了,
rename 這個指令可以用來批次修改檔名共同的部分,使用方式如下:
# rename $1 $2 $3
# $1: 要被取代的關鍵字
# $2: 新的關鍵字
# $3: 檔名符合這個規則的才取代

# 把 IMG001.jpg, IMG002.jpg… 換成 img001.jpg, img002.jpg… 
rename IMG img IMG*

# 把所有 .htm 檔案改成 .html
rename .htm .html *.htm

# 把檔案 foo1, ..., foo9, foo10, ..., foo278.
# 改成 foo001, ..., foo009, foo010, ..., foo278.
rename foo foo0 foo?
rename foo foo0 foo??