su - root
dpkg-reconfigure locales
然後英文語系及zh_tw.utf-8 和 big 5 打勾,接著預設選 zh_tw.utf-8 ,然後重開機或是登出登入即可。
2019年11月12日 星期二
2019年11月4日 星期一
Putty 中文顯示
要讓PUTTY顯示中文,除了自己要安裝中文的編譯器之外,就是要有良好設定了 ~~~
參考網路文章
Server 端設定
#vi /etc/profile
LC_CTYPE=en_US.ISO8859-1; export LC_CTYPE
LC_CTYPE=zh_TW.UTF-8; export LC_ALL
LANG=zh_TW.UTF-8; export LANG
SSH 連線軟體 Putty 設定:
Change Settings ->> Translation ->> Character set translation on received data ->> 選UTF-8
#vi /etc/profile
LC_CTYPE=en_US.ISO8859-1; export LC_CTYPE
LC_CTYPE=zh_TW.UTF-8; export LC_ALL
LANG=zh_TW.UTF-8; export LANG
SSH 連線軟體 Putty 設定:
Change Settings ->> Translation ->> Character set translation on received data ->> 選UTF-8
以Big5顯示
#vi /etc/profile
LC_CTYPE=en_US.ISO8859-1; export LC_CTYPE
LC_CTYPE=zh_TW.Big5; export LC_ALL
LANG=zh_TW.Big5; export LANG
SSH 連線軟體 Putty 設定:
Change Settings ->> Appearance ->> Cursor appearance ->> 改成 Underline
Change Settings ->> Appearance ->> Font settings ->> Change ->> 字型 選"細明體或新細明體" 字集 選 "CHINESE_BIG5"
Change Settings ->> Translation ->> Character set translation on received data ->> 選 User font encoding
#vi /etc/profile
LC_CTYPE=en_US.ISO8859-1; export LC_CTYPE
LC_CTYPE=zh_TW.Big5; export LC_ALL
LANG=zh_TW.Big5; export LANG
SSH 連線軟體 Putty 設定:
Change Settings ->> Appearance ->> Cursor appearance ->> 改成 Underline
Change Settings ->> Appearance ->> Font settings ->> Change ->> 字型 選"細明體或新細明體" 字集 選 "CHINESE_BIG5"
Change Settings ->> Translation ->> Character set translation on received data ->> 選 User font encoding
這文章是人家寫的啦 ~~ 現在來找一下參數的解釋好了 ~~ 不然都是用人家的東西有點不好意思。
LC_CTYPE 類別是用來作 locale 下的字元處理~~而我們可以利用這個指令charmap來看一下這些屬於locale下的字元有哪些。而這些字元就是你可以顯示的東西,之前還有查過一些可以顯示的環境設定,不過都沒有用,我也不知道為啥,這個是我目前測試過可以用的。
OS : Fedora 14
gcc: 4.5.1
2019年10月27日 星期日
Linux 的 su 與 sudo 指令教學與範例
Linux 的 su 與 sudo 指令教學與範例
這裡介紹 Linux 中 su 與 sudo 指令的使用方式,並提供幾個常用的範例。
Linux 系統最高權限的管理者帳號為 root,也稱為超級使用者(superuser)帳號,這個帳號在使用上沒有任何限制,管理者只要取得這個帳號就可以對系統進行各種變更,例如格式化與掛載硬碟、新增或刪除使用者帳號、更改各種系統服務、更新系統等。
然而由於 root 權限非常高,縱使是 Linux 老手在使用時也必須非常小心,若下錯指令是有可能造成系統損毀的,因此在管理 Linux 系統時,通常不建議直接使用 root 登入系統進行所有的操作,有些人為了方便甚至使用 root 登入後進入 X Window 的桌面環境,這會讓整個桌面環境中所有的應用程式都直接取得 root 權限,任何程式都可以在未經許可的狀況下存取或更改系統的任何設定,對於 Linux 伺服器來說這樣的動作是非常危險的。
為了避免不小心把系統搞砸,降低出錯的機率,在維護 Linux 系統時標準的作法是使用一般的帳號登入,遇到需要 root 權限時,再使用 su 或 sudo 取得較高的權限進行系統變更,以下是 su 與 sudo 的用法教學。
su 指令
su 指令可以讓一般的 Linux 使用者取得 root 權限,取得 root 權限的使用者就如同 root 一樣可以對系統進行各種變更動作。su
單純執行 su 並輸入 root 的密碼之後,就可以取得 root 權限,在不過這種情況下,雖然使用者帳號的 user id 變成 0(root 的 user id),但是其他的環境變數並沒有跟著改變。
su 指令
若只是單純需要以 root 權限做一些更改檔案等小動作,以上面這種簡單的 su 用法就夠了,而如果是要進行比較複雜的系統管理,牽涉到許多 root 帳號的環境變數(例如 PATH 或 MAIL 等)時,就要改用下面這種方式:su -
在 su 後面加上一個減號後,就可以仿照 root 登入的方式,進入一個完整的 shell 環境,這個新的 shell 環境就跟使用 root 重新登入一樣。
su - 指令
不管是使用 su 或是 su -,都會開啟一個新的 shell 環境,在完成所有需要 root 權限的工作之後,要執行 exit 或是按下 Ctrl + d 才會離開該 shell。若在進入新的 shell 之後,僅只需要執行一行簡單的指令,執行完後就馬上跳出,可以使用 -c 參數來指定要執行的指令內容:su - -c "service nginx reload"
上面這個例子就會仿照重新登入的方式進到 root 帳號的 shell,並執行 service nginx reload,完成後就自動離開 root 的 shell。
su 除了可以讓一般使用者取得 root 權限之外,也可以取得其他的帳號權限,我們可以使用 -l 參數指定帳號名稱:su -l seal
上面這行指定可以取得 seal 這個帳號的權限,而這裡在輸入密碼時就要輸入 seal 這個帳號的密碼。如果您是在 root 權限之下透過 su 指令來取得一般使用者的權限,這種狀況就可以不需要輸入該使用者的密碼。
sudo 指令
sudo 指令類似 su,也是可以用來取得 root 或是其他帳號的權限,不過它在取得 root 或其他帳號權限的時候,是輸入自己的密碼,而不是 root 或其他帳號的密碼,使用上比較方便。
Ubuntu Linux 系統預設在安裝時基於安全考量,並不會啟用 root 帳號,無法用 root 直接登入系統,所有的系統管理動作都是透過 sudo 來取得 root 權限。
sudo 在使用上會跟 su -c 類似,執行完指定的指令之後就會自動離開,這個例子會以 root 權限執行 ls,查看一般使用者無法讀取的目錄:sudo ls /usr/local/protected
若要查看 gtwang 這個使用者家目錄的檔案,可以切換為該帳號的權限之後,再用 ls 查看:sudo -u gtwang ls ~gtwang
切換為 www 這個網頁伺服器用的系統帳號權限,編輯網頁檔案:sudo -u www vi ~www/htdocs/index.html
sudo 也可以用 -g 參數來取得指定群組的權限,例如取得 adm 群組權限後,查看系統的記錄檔:sudo -g adm view /var/log/syslog
等待十五分鐘之後重新開機:sudo shutdown -r +15 "quick reboot"
許多人會習慣拿 sudo 與 su 放在一起使用,這樣藉由 su 取得一個新的 shell,而且也不用輸入 root 的密碼,通常在 Ubuntu Linux 中很常用:sudo su -
/etc/sudoers 設定檔
sudo 可以在不需要 root 密碼的情況下取得 root 權限,當然在正常的 Linux 系統中不可能讓所有的使用者都可以使用 sudo,它是依據 /etc/sudoers 設定檔來管控的,只有在這個檔案中有被特別設定的使用者或群組才能使用 sudo 指令。
在編輯 /etc/sudoers 的時候,請使用 visudo 這個指令來開啟 vi 編輯器進行編輯,系統會在編輯完成後自動檢查設定檔的語法是否正確,避免錯誤的語法導致 sudo 無法使用。
個別使用者設定
/etc/sudoers 對個別使用者設定的語法格式如下:帳號名稱 來源主機=(可切換帳號) 可執行的指令
其中四的欄位的意義為: 帳號名稱
可以使用 sudo 的帳號名稱。 來源主機
限制使用者從特定網路主機連線時,才能使用 sudo 指令,可用來防止入侵者從不明的主機登入攻擊。若指定為 ALL 則代表不限制來源主機。 可切換帳號
可以取得哪些帳號的權限。若指定為 ALL 則代表可以取得任何帳號的權限。 可執行的指令
在取得特殊權限後,可以執行的指令。若指定為 ALL 則代表可以執行任何令。
若要讓 gtwang 這個帳號可以使用 sudo 執行所有的指令,則在 /etc/sudoers 中加入這一行設定:gtwang ALL=(ALL) ALL
基本上讓使用者允許使用 sudo 指令取得 root 權限,就等同於讓該使用者成為一位系統管理者了,所以別隨便開放 sudo 給一般的使用者,尤其是對於 Linux 不甚熟悉的人。
假設 accmgr 這個管理者是專門幫使用者重新這定密碼的,我們就可以透過這樣的設定限制 accmgr 這個管理者只能使用 root 權限執行 passwd 來更改使用者的密碼,而不能做其他的事情:accmgr ALL=(root) /usr/bin/passwd
上面這種寫法有一個漏洞,就是 accmgr 也可以更改 root 帳號的密碼,如果 root 的密碼可被任意更改,整個系統的管理權限也會被取得,所以我們必須防止 accmgr 更動 root 的密碼:accmgr ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
這裡我們將可執行的指令加上更多的限制,首先是不可以直接執行 /usr/bin/passwd,僅允許 /usr/bin/passwd 加上一般的使用者帳號,然後將 /usr/bin/passwd root 這個更改 root 密碼的指令也禁止。
群組設定
如果要對特定群組底下的所有帳號一次開放權限,可以使用這樣的群組設定語法:%群組名稱 來源主機=(可切換帳號) 可執行的指令
群組設定的語法跟個別帳號的方式相似,只不過群組的名稱在指定時前面要加上一個百分比 % 的符號,而其餘欄位則都相同。例如若要讓 wheel 群組中的所有使用者都可以使用 sudo,則加入:%wheel ALL=(ALL) ALL
不用輸入密碼
如果想要讓特定的使用者可以在不需要輸入密碼的情況下,直接使用 sudo,可以加入 NOPASSWD 的設定,例如:gtwang ALL=(ALL) NOPASSWD:ALL
讓整個群組的使用者都不需要密碼:%wheel ALL=(ALL) NOPASSWD:ALL
在沒有加入 NOPASSWD 的設定之下,如果使用者在五分鐘之內連續使用 sudo 好幾次,那麼只有在第一次使執行時需要輸入密碼,隨後再次執行 sudo 時,系統就不會要求使用者重複輸入,這樣的設計是預設五分鐘之內連續執行的指令應該都是同一人所為,所以不用再次輸入密碼,但若是超過五分鐘之後,就要重新驗證密碼。
使用別名
有的時候 /etc/sudoers 的設定比較複雜,例如遇到很多的使用者以及指令組合的狀況時,我們可以使用別名(alias)的方式來管理設定:User_Alias MYACC = accmgr, gtwang, seal Cmnd_Alias MYEXE = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root MYACC ALL=(root) MYEXE
這裡我們使用 User_Alias 建立一個帳號別名 MYACC,其內容就是等號後方的那些帳號名稱,而 Cmnd_Alias 則是建立指令的別名,若要建立來源主機的別名則可用 Host_Alias,所有的別名都要以大寫英文字母來命名,這樣的話就可以將冗長的設定簡化,並且重複使用,日後要修改也會比較方便。
Debian 10 如何設定語系
到這個 /var/lib/locales/supported.d 資料夾看看有沒有一個叫做 locale 的檔案,有的話直接修改,沒有就新增一個,其實,不管有沒有這個檔案,都可用下面這個指令來編輯,反正沒有的話, vi 就會變成是要新增檔案哩 !
sudo vi /var/lib/locales/supported.d/local
打開之後,請加入下面這幾行字串,如果已經有的,就不用再加了,只要加沒有的就可以了,不然,把下面這幾行複製貼上來蓋掉原來的,也是可以的,然後,在加好之後就存檔離開。
zh_TW.UTF-8 UTF-8
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_TW BIG5
接著,請執行下列任一指令來產生語系檔,而產生出來的語系檔案會放在 /usr/lib/locale 資料夾。
sudo locale-gen
或
sudo dpkg-reconfigure locales
上面的指令執行完成後,先登出再登入,或是重新啟動之後,再用下面的指令來檢查已安裝的語系,應該就會看到 zh_TW 了哩 !
locale -a
或是第二種方法
怎麼讓 Debian 10 出現的訊息變成是中文的呢 ? 會遇到這個問題的情況,在安裝的過程中,忘了或沒去變更預設的語系 (locale),所以,Debian 10 就會使用預設的美國英文 (en_US.UTF-8) 來做為系統的語系,因此,所有的訊息就都是英文
首先,可以先用 locale 指令確認一下目前使用的語系為何,預設的情況下,應該會看到像下面這樣,所有的語系設定都是 en_US.UTF-8 的。
$ locale
LANG=en_US.UTF-8
LANGUAGE= LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
確定沒有設定成中文後,接下來就要把 Debian 10 的語系來改成中文了,台灣的正體中文使用的語系代碼是「zh_TW」,所以,操作步驟的指令們就是下面這樣。
sudo locale-gen zh_TW
sudo locale-gen zh_TW.UTF-8
sudo dpkg-reconfigure locales
sudo update-locale LANG="zh_TW.UTF-8" LANGUAGE="zh_TW"
上面的指令都跑完後,用 locale 指令來看的話,語系還會是原來的 en_US.UTF-8,會這樣,是因為要語系環境變數要登出再登入才會變更哩 ! 因此,設定完成後,請先登出再登入,再用 locale 指令來看,應該就會是 zh_TW.UTF-8 了哩 !
$ locale
確定沒有設定成中文後,接下來就要把 Debian 10 的語系來改成中文了,台灣的正體中文使用的語系代碼是「zh_TW」,所以,操作步驟的指令們就是下面這樣。
sudo locale-gen zh_TW
sudo locale-gen zh_TW.UTF-8
sudo dpkg-reconfigure locales
sudo update-locale LANG="zh_TW.UTF-8" LANGUAGE="zh_TW"
上面的指令都跑完後,用 locale 指令來看的話,語系還會是原來的 en_US.UTF-8,會這樣,是因為要語系環境變數要登出再登入才會變更哩 ! 因此,設定完成後,請先登出再登入,再用 locale 指令來看,應該就會是 zh_TW.UTF-8 了哩 !
$ locale
LANG=zh_TW.UTF-8
LANGUAGE=zh_TW
LC_CTYPE="zh_TW.UTF-8"
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE="zh_TW.UTF-8"
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES="zh_TW.UTF-8"
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
LC_ALL=
之後,如果需要再改回英文語系的話,就只要執行下面這一行指令,然後,再登出再登入或重新開機之後,就會回到英文語系了哩 ! ...
sudo update-locale LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8"
另外,附帶一提的,如果你有遇到類似像下面這樣的錯誤訊息的話,也是和語系設定有關,y就是沒有產生相對的語系檔,一樣用上面提到的指令來產生,應該就可以解決了哩 ! ...
....
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory .....
或是參考這篇
在 Ubuntu 16.04 中設定 locale 環境變數
新裝乾淨的 ubuntu 通常 locale 都沒設好,這會導致一些錯誤,像是 pip install 就會炸了
123456789 $ pip install virtualenvwrapperTraceback (most recent call last): File "/usr/bin/pip", line 11, in <module> sys.exit(main()) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib/python2.7/locale.py", line 581, in setlocale return _setlocale(category, locale)locale.Error: unsupported locale setting
這裡簡單備忘一下如何快速將 locale 全域設成 zh_TW.UTF-8
設定要產生的語系 /var/lib/locales/supported.d/<config name>
產生語系設定檔 $ sudo locale-gen 去吃第 1. 點的設定
update-locale 語系,由系統寫入全域設定 /etc/default/local
以下說細一點,有錯請指正
首先用 $ locale 看一下現在的語系設定
$ localelocale:
之後,如果需要再改回英文語系的話,就只要執行下面這一行指令,然後,再登出再登入或重新開機之後,就會回到英文語系了哩 ! ...
sudo update-locale LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8"
另外,附帶一提的,如果你有遇到類似像下面這樣的錯誤訊息的話,也是和語系設定有關,y就是沒有產生相對的語系檔,一樣用上面提到的指令來產生,應該就可以解決了哩 ! ...
....
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory .....
或是參考這篇
在 Ubuntu 16.04 中設定 locale 環境變數
新裝乾淨的 ubuntu 通常 locale 都沒設好,這會導致一些錯誤,像是 pip install 就會炸了
123456789 $ pip install virtualenvwrapperTraceback (most recent call last): File "/usr/bin/pip", line 11, in <module> sys.exit(main()) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib/python2.7/locale.py", line 581, in setlocale return _setlocale(category, locale)locale.Error: unsupported locale setting
這裡簡單備忘一下如何快速將 locale 全域設成 zh_TW.UTF-8
設定要產生的語系 /var/lib/locales/supported.d/<config name>
產生語系設定檔 $ sudo locale-gen 去吃第 1. 點的設定
update-locale 語系,由系統寫入全域設定 /etc/default/local
以下說細一點,有錯請指正
首先用 $ locale 看一下現在的語系設定
$ localelocale:
Cannot set LC_CTYPE to default locale:
No such file or directorylocale: Cannot set LC_ALL to default locale:
No such file or directory
LANG=en_US.UTF-8
LANGUAGE=LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
新增一個檔案在 /var/lib/locales/supported.d/locale,內容如下
12 zh_TW.UTF-8 UTF-8en_US.UTF-8 UTF-8
用 locale-gen 產生設定檔,可用 $ locale -a 列出目前支援的語系設定
$ sudo locale-genGenerating locales (this might take a while)...
新增一個檔案在 /var/lib/locales/supported.d/locale,內容如下
12 zh_TW.UTF-8 UTF-8en_US.UTF-8 UTF-8
用 locale-gen 產生設定檔,可用 $ locale -a 列出目前支援的語系設定
$ sudo locale-genGenerating locales (this might take a while)...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8... done
en_GB.UTF-8... done
en_HK.UTF-8... done
en_IE.UTF-8... done
en_IN.UTF-8... done
en_NG.UTF-8... done
en_NZ.UTF-8... done
en_PH.UTF-8... done
en_SG.UTF-8... done
en_US.UTF-8... done
en_ZA.UTF-8... done
en_ZM.UTF-8... done
en_ZW.UTF-8... done
zh_TW.UTF-8... done
Generation complete.
用 $ sudo update-locale LC_ALL="zh_TW.UTF-8" 將設定檔寫入, 設定 LC_ALL 會覆寫全部 locale 中全部 LC_ 開頭的設定,這個指令會去寫 /etc/default/locale,所以也可以 cat 它確認究竟寫了什麼設定進去,當然也可以只 update 自己想要的參數,改完重新登入即可
檢查一下
$ localeLANG=en_US.UTF-8
用 $ sudo update-locale LC_ALL="zh_TW.UTF-8" 將設定檔寫入, 設定 LC_ALL 會覆寫全部 locale 中全部 LC_ 開頭的設定,這個指令會去寫 /etc/default/locale,所以也可以 cat 它確認究竟寫了什麼設定進去,當然也可以只 update 自己想要的參數,改完重新登入即可
檢查一下
$ localeLANG=en_US.UTF-8
LANGUAGE=LC_CTYPE="zh_TW.UTF-8"
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE="zh_TW.UTF-8"
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES="zh_TW.UTF-8"
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
bash: warning: setlocale: LC_ALL: cannot change locale
用 SSH 登入遠端伺服器時,看到「-bash: warning: setlocale: LC_ALL: cannot change locale」的錯誤訊息嗎? 會遇到它是因為 SSH 連線上遠端主機時,會自動將本機的 LC_* 變數(locale)傳送一份到遠端主機,如果伺服器上不支援你指定的語系,就會出現「-bash: warning: setlocale: LC_ALL: cannot change locale」錯誤啦!
要解決這個錯誤,有幾種做法,最治標的做法是幫遠端伺服器補上缺少的語系,這邊以 zh_TW.UTF-8 舉例,至於你需要補上的語系,可以看錯誤訊息的最後面:
以 Mac 為例,在 /etc/ssh/ssh_config 裡面,把 SendEnv LANG LC_* 註解掉即可,完成後:
要解決這個錯誤,有幾種做法,最治標的做法是幫遠端伺服器補上缺少的語系,這邊以 zh_TW.UTF-8 舉例,至於你需要補上的語系,可以看錯誤訊息的最後面:
sudo locale-gen zh_tw.UTF-8 sudo update-locale幫每台機器都補上語系很麻煩,你也可以將 SSH 的自動傳送 LC_* 功能關掉,讓遠端伺服器用它預設的語系,如果你的操作都是英文,其實不會有太大問題。
以 Mac 為例,在 /etc/ssh/ssh_config 裡面,把 SendEnv LANG LC_* 註解掉即可,完成後:
Host * # SendEnv LANG LC_*
Download xfce theme manager
Get it here: https://github.com/KeithDHedger/Xfce-Theme-Manager/releases
Unpack, then cd into the folder and execute following commands:
et voila, you have the XFCE Theme manager in your menu
Unpack, then cd into the folder and execute following commands:
./configure --prefix=/usr
make
sudo make install
et voila, you have the XFCE Theme manager in your menu
如何解決 Debian 10 連線 telnet ptt.cc 出現一堆亂碼!!(非完全解決)
編碼的問題,查了一下解決的方式如下,
因為系統預設是 UTF-8 的環境,如果要連到 Big-5 的 BBS 站台,
1.就要透過 luit 來指定編碼:
luit -encoding big5 telnet ptt.cc
2.另外一個解決方法ssh bbsu@ptt.cc??
3.還有一個解決方法,如果是桌面linux,直接調終端機編碼就行
因為系統預設是 UTF-8 的環境,如果要連到 Big-5 的 BBS 站台,
1.就要透過 luit 來指定編碼:
luit -encoding big5 telnet ptt.cc
2.另外一個解決方法ssh bbsu@ptt.cc??
3.還有一個解決方法,如果是桌面linux,直接調終端機編碼就行
如何在 Debian 10 用 iconv 指令轉換文字檔編碼(Big5 轉 UTF8、UTF8 轉 Big5 )
本篇介紹如何在 Mac OS X 或 Linux 中使用
有時候使用一般的編輯器開啟文字檔(
在 Mac OS X 或 Linux 系統上,我們可以使用
Vim 開啟文字檔
目前大部份比較新的系統或是應用程式應該都會採用 UTF-8 的方式編碼,而一些比較舊的系統可能還是會沿用以往舊式的 BIG-5,基本上不管要怎麼轉換編碼,通常都可以使用
iconv
指令轉換 Big5 與 UTF8 等文字編碼,解決開啟文字檔產生亂碼的問題。有時候使用一般的編輯器開啟文字檔(
*.txt
或 *.html
等)時,如果文字的編碼不正確,就會出現一大堆亂碼。在 Mac OS X 或 Linux 系統上,我們可以使用
iconv
指令來處理各種文字編碼的問題,在 Mac OS X 與大部份的 Linux 系統上內建就有這個指令,不需要安裝,使用方式也都相同。BIG-5 轉 UTF-8
若要將一個文字檔從 BIG-5 編碼轉換為 UTF-8 編碼,可以執行:iconv -f BIG-5 -t UTF-8 big5.txt > utf8.txt其中
big5.txt
是輸入的文字檔檔名,轉換出來會輸出到 utf8.txt
這個檔案中。-f
參數是指定輸入檔的編碼,而 -t
則是指定輸出檔的編碼,我們可以使用 -l
參數查詢 iconv
所支援的編碼列表:iconv -l
UTF-8 轉 BIG-5
若要將 UTF-8 編碼的文字檔轉為 BIG-5,則執行:iconv -f UTF-8 -t BIG-5 utf8.txt > big5.txt經過
iconv
轉換成正確的編碼之後,就可以正常顯示文字檔的內容了。Vim 開啟文字檔
目前大部份比較新的系統或是應用程式應該都會採用 UTF-8 的方式編碼,而一些比較舊的系統可能還是會沿用以往舊式的 BIG-5,基本上不管要怎麼轉換編碼,通常都可以使用
iconv
來處理。
如何在 Debian 10 將 VIM 將ANSI檔案轉存為UTF-8編碼
工作上常常會把 Excel 轉存為 CSV 後,再利用有正規表示式 (regular expression) 置換能力的 VIM 來轉換為 SQL 語句。
但是 Excel 轉存的 CSV 檔是 ANSI 編碼,如果出現 UTF-8 的特殊怪字時,會無法存檔。這時候就要下個轉編碼格式儲存的指令:
這個指令是 Google 查到 "How can I change a file's encoding with vim?" 這篇文章看到的。
使用vim做到這一點是完全可能的,為什麼不簡單使用iconv?我的意思是-加載文本編輯器只是為了進行編碼轉換似乎就像對釘子太小使用了太大的錘子。
只是:
It could be useful to change the encoding just on the command line before the file is read:
但是 Excel 轉存的 CSV 檔是 ANSI 編碼,如果出現 UTF-8 的特殊怪字時,會無法存檔。這時候就要下個轉編碼格式儲存的指令:
:write ++enc=utf-8讓寫檔時是以 UTF-8 格式儲存之。
這個指令是 Google 查到 "How can I change a file's encoding with vim?" 這篇文章看到的。
:write ++ enc = utf-8 russian.txt因此,您應該能夠在write命令中更改編碼。
使用vim做到這一點是完全可能的,為什麼不簡單使用iconv?我的意思是-加載文本編輯器只是為了進行編碼轉換似乎就像對釘子太小使用了太大的錘子。
只是:
iconv -f utf-16 -t utf-8 file.xml > file.utf8.xml
這樣就完成了。It could be useful to change the encoding just on the command line before the file is read:
rem On MicroSoft Windows vim --cmd "set encoding=utf-8" file.ext # In *nix shell vim --cmd 'set encoding=utf-8' file.ext
Linux install pstree
Linux pstree shows running processes as a tree. The tree is rooted at either pid or init if pid is omitted. If a user name is specified, all process trees rooted at processes owned by that user are shown.
Install pstree
#On Mac OS
brew install pstree
#On Fedora/Red Hat/CentOS
yum install psmisc #using psmisc package for pstree
#On Ubuntu/Debian APT
apt-get install psmisc
After above opeation, we can use
# man pstree | less
to check whether the installation is successful.
Install pstree
#On Mac OS
brew install pstree
#On Fedora/Red Hat/CentOS
yum install psmisc #using psmisc package for pstree
#On Ubuntu/Debian APT
apt-get install psmisc
After above opeation, we can use
# man pstree | less
to check whether the installation is successful.
如何在 Debian 10 安裝 nslookup , dig , host 這 3 個指令
依序輸入下面的 2 行指令,即可在 Debian 10 裡安裝 nslook , dig , host 這 3 個查詢 DNS 的指令唷
apt-get update
apt-get install dnsutils -y
等安裝完畢後,即可使用這 3 個 DNS 查詢指令~!!
apt-get update
apt-get install dnsutils -y
等安裝完畢後,即可使用這 3 個 DNS 查詢指令~!!
如何在 Debian 10 上安裝 Visual Studio Code
Visual Studio Code 是一個很棒的文字編輯器,美觀又輕巧,廣受很多人的歡愛。
那我們現在就開始在 Debian 10 Buster 上安裝和使用 Visual Studio Code 吧~
下載 Visual Studio 的 DEB 檔案。
https://code.visualstudio.com/
接著回到下載的地方輸入
cd ~/Downloads
ls -lh
就會看到剛剛下載的 DEB 檔案,那麼我們就來安裝吧。輸入下方指令
sudo apt install ./code*.deb
接著就會自動安裝,然後安裝完成後,在確認看看是否正確安裝。
code --version
如果出現 x.xx.x 及 MD5 和 x64 之類的,就代表成功嚕~
現在我們可以在選單裡,找到 Visual Studio Code 了
接著或許有人打開時發現是英文版,那想要使用中文版怎麼辨呢?
按 Ctrl+Shift+P ,會出現命令列,輸入 config 接著找到 configure Display Language 點擊之後,會出現
en
install additional languages <==選這個
接著最左邊就會跳到選擇需要安裝的語言,我們就選擇
Chinese (Traditional) Language Pack for Visual Studio Code (中文繁體)然後有一個小小綠色的 "install" 就點擊下去吧,接著就會自動安裝好,然後右下角會出現是否要轉成中文,點擊 ok 然後 Visual Studio Code 就會重開嚕,進去後就會變繁體中文了。
然後你想要換成英文或是其他語言也可以用同樣的方法唷~
或是你要改 .josn 檔也可以把en改成zh-TW, locale.json 位於下列位置
祝大家順利唷~^^
那我們現在就開始在 Debian 10 Buster 上安裝和使用 Visual Studio Code 吧~
下載 Visual Studio 的 DEB 檔案。
https://code.visualstudio.com/
接著回到下載的地方輸入
cd ~/Downloads
ls -lh
就會看到剛剛下載的 DEB 檔案,那麼我們就來安裝吧。輸入下方指令
sudo apt install ./code*.deb
接著就會自動安裝,然後安裝完成後,在確認看看是否正確安裝。
code --version
如果出現 x.xx.x 及 MD5 和 x64 之類的,就代表成功嚕~
現在我們可以在選單裡,找到 Visual Studio Code 了
接著或許有人打開時發現是英文版,那想要使用中文版怎麼辨呢?
按 Ctrl+Shift+P ,會出現命令列,輸入 config 接著找到 configure Display Language 點擊之後,會出現
en
install additional languages <==選這個
接著最左邊就會跳到選擇需要安裝的語言,我們就選擇
Chinese (Traditional) Language Pack for Visual Studio Code (中文繁體)然後有一個小小綠色的 "install" 就點擊下去吧,接著就會自動安裝好,然後右下角會出現是否要轉成中文,點擊 ok 然後 Visual Studio Code 就會重開嚕,進去後就會變繁體中文了。
然後你想要換成英文或是其他語言也可以用同樣的方法唷~
或是你要改 .josn 檔也可以把en改成zh-TW, locale.json 位於下列位置
- Windows
%APPDATA%\Code\User\locale.json
- macOS
$HOME/Library/Application Support/Code/User/locale.json
- Linux
$HOME/.config/Code/User/locale.json
祝大家順利唷~^^
Debian 10 dpkg-reconfigure 指令找不到如何解決
dpkg-reconfigure 是非常好用的,但剛安裝好 Debian 10 時,發現不能用,這時我們就要來修改嚕
dpkg-reconfigure 是在 /usr/sbin 裡頭,是給系統管理員使用的指令,但安裝好時,PATH卻還沒設定好,所以並不能使用,那我們來設定吧!
輸入下方指令
export PATH=$PATH:/usr/sbin
接著輸入下方指令
echo $PATH
這樣就能用嚕~!!
或是開啟 /etc/environment 在裡頭修改
sudo vi /etc/environment
添加下列文字在檔案裡。
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
然後保存離開,登出在登入,這樣就能用嚕~
dpkg-reconfigure 是在 /usr/sbin 裡頭,是給系統管理員使用的指令,但安裝好時,PATH卻還沒設定好,所以並不能使用,那我們來設定吧!
輸入下方指令
export PATH=$PATH:/usr/sbin
接著輸入下方指令
echo $PATH
這樣就能用嚕~!!
或是開啟 /etc/environment 在裡頭修改
sudo vi /etc/environment
添加下列文字在檔案裡。
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
然後保存離開,登出在登入,這樣就能用嚕~
Linux 使用 dd 指令將 ISO 檔製作成 Live USB 隨身碟
這裡介紹如何在 Linux 中將一般 Linux 的 ISO 檔用
大部分的 Linux 發行版都會以 ISO 映像檔的形式提供使用者下載,以前大家都會將 ISO 映像檔用燒錄成 CD 或 DVD 安裝光碟,再放進機器的光碟機中安裝系統,不過現在光碟片已經逐漸被 USB 隨身碟所取代了,有些新電腦甚至已經不再配有光碟機,以 USB 隨身碟的方式來安裝系統已經成為主流。
製作 Linux 的 USB 安裝隨身碟時,會將 USB 隨身碟內的資料完全刪除,所以使用前請先確認沒有任何重要資料在 USB 隨身碟中。
如果手上沒有可用的 USB 隨身碟,也可以拿 SD 或 MicroSD 等記憶卡,接上讀卡機之後也可以作為安裝 Linux 用的儲存媒體,其使用方式跟一般的 USB 隨身碟一模一樣。
STEP 1
將 USB 隨身碟插入 Linux 的電腦中,查詢一下目前所有硬碟與 USB 隨身碟的狀況。
一般來說在 USB 隨身碟插入 Linux 系統之後,系統會自動將其掛載,我們必須先從這個列表中找出我們要使用的 USB 隨身碟是那一個,最簡單的方式就是從這裡的
這裡我所要使用的 USB 隨身碟,對應的硬碟路徑則是
STEP 2
使用
假如 ISO 的檔案名稱為 debian-10-1-0-adm64.iso ,則輸入下方指令
sudo dd if=debian-10-1-0-adm64.iso of=/dev/sdb bs=1M conv=fdatasync
這個指令是將整個 ISO 檔的內容寫入 USB 隨身碟,所以要等比較久一點,在寫入的期間並不會有任何輸出訊息,完成後會出現類似這樣的訊息:
輸入 lbslk 可以看見下方指令
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 103.3G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 15.9G 0 part [SWAP]
sdb 8:16 0 7.5G 0 disk
├─sdb1 8:17 0 335M 0 part /media/pai/Debian 10.1.0 amd64 n
└─sdb2 8:18 0 2.8M 0 part
udisksctl unmount -b /dev/sdb1
dd
指令寫入 USB 隨身碟,製作成 Live USB 或是安裝系統用的隨身碟。大部分的 Linux 發行版都會以 ISO 映像檔的形式提供使用者下載,以前大家都會將 ISO 映像檔用燒錄成 CD 或 DVD 安裝光碟,再放進機器的光碟機中安裝系統,不過現在光碟片已經逐漸被 USB 隨身碟所取代了,有些新電腦甚至已經不再配有光碟機,以 USB 隨身碟的方式來安裝系統已經成為主流。
製作 Linux 的 USB 安裝隨身碟時,會將 USB 隨身碟內的資料完全刪除,所以使用前請先確認沒有任何重要資料在 USB 隨身碟中。
如果手上沒有可用的 USB 隨身碟,也可以拿 SD 或 MicroSD 等記憶卡,接上讀卡機之後也可以作為安裝 Linux 用的儲存媒體,其使用方式跟一般的 USB 隨身碟一模一樣。
STEP 1
將 USB 隨身碟插入 Linux 的電腦中,查詢一下目前所有硬碟與 USB 隨身碟的狀況。
lsblk出現下方訊息
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 119.2G 0 disk ├─sda1 8:1 0 103.3G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 15.9G 0 part [SWAP] sdb 8:33 1 7.4G 0 disk └─sdb1 8:33 1 7.4G 0 part
一般來說在 USB 隨身碟插入 Linux 系統之後,系統會自動將其掛載,我們必須先從這個列表中找出我們要使用的 USB 隨身碟是那一個,最簡單的方式就是從這裡的
SIZE
來看,若看不出來的話,就打開其掛載的目錄,實際看一下裡面的內容。這裡我所要使用的 USB 隨身碟,對應的硬碟路徑則是
/dev/sdb
,找到這個代號之後,就可以繼續下一步了。在判斷磁碟代號的時候,要非常小心,絕對不可以搞錯,如果誤判磁碟代號的話,在執行後續的資料寫入動作時,就會可能造成整個系統損毀。STEP 2
使用
dd
指令將 Linux 的 ISO 映像檔寫入 USB 隨身碟:假如 ISO 的檔案名稱為 debian-10-1-0-adm64.iso ,則輸入下方指令
sudo dd if=debian-10-1-0-adm64.iso of=/dev/sdb bs=1M conv=fdatasync
這個指令是將整個 ISO 檔的內容寫入 USB 隨身碟,所以要等比較久一點,在寫入的期間並不會有任何輸出訊息,完成後會出現類似這樣的訊息:
/dev/sdc bs=1M 1520+0 records in 1520+0 records out 1593835520 bytes (1.6 GB) copied, 493.732 s, 3.2 MB/s這樣就完成了 USB 隨身碟的製作了。
輸入 lbslk 可以看見下方指令
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 103.3G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 15.9G 0 part [SWAP]
sdb 8:16 0 7.5G 0 disk
├─sdb1 8:17 0 335M 0 part /media/pai/Debian 10.1.0 amd64 n
└─sdb2 8:18 0 2.8M 0 part
接著 umount 卸載,然後安全的關閉 USB 的電源,讓 USB 安全的移除就可以拔出 USB 了。
udisksctl power-off -b /dev/sdb
或是下方指令也行。
udisks --unmount
或是下方指令也行。
udisks --unmount
udisks --detach /dev/sdb
這樣就能安全的把 USB 安全的拔出來了喔~拔下來的 USB 就是可開機安裝的 Debian 嚕
Copyright by JuJuLa.org
這樣就能安全的把 USB 安全的拔出來了喔~拔下來的 USB 就是可開機安裝的 Debian 嚕
Copyright by JuJuLa.org
如何在 Debian 10 安裝 Google Chrome
Google Chrome 是個非常好用的瀏覽器,那麼我們要如何在 Debian 10 裡頭安裝呢?
1. 首先我們要先下載 Google-Chrome 的 .deb 版本,使用終端機命令列,用 wget 來下載 Google Chrome .deb 軟體包,在終端機輸入下列指令。
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
下載的檔案會在 /home。
2. 安裝 Google-Chrome ,下載完畢後,使用 apt 安裝 Google Chrome
sudo apt install ./google-chrome-stable_current_amd64.deb
安裝完畢後,請輸入 google-ghrome ,或是用非 root 帳號直接輸入 google-chrome 也行,另一個方法是當安裝完畢後,會在你的功能選單裡的應用程式,網際網路工具看到 Google Chrome ,接著點取執行,然後看要不要設成預設的瀏覽器及是否回傳統計資料給 Google 。
3. 更新 Google Chrome
在安裝 Google Chrome 過程裡已經將更新清單加入你的系統中 ,我們可以使用 Cat 指令來驗證是否已建立更新清單。
cat /etc/apt/sources.list.d/google-chrome.list
輸入上方指令後,如果出現下方訊息,就代表已經在更新清單中了。
Output
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
如果 Google Chrome 有發佈新版本時,你可以透過桌面版的軟體更新工具,或是在終端機下達命令來更新 Google Chrome 軟體包。
$ sudo apt update
$ sudo apt upgrade
這樣就能順利的使用 Google Chrome ,且在每次有更新的時候,就能順便更新唷。
4. 移除下載的 Google-Chrome 下載包,請在 /home 目錄輸入方指令
ls
則會看到 google-chrome-stable_current_amd64.deb ,因為我們安裝好了,現在把這個下載的檔案刪除。
rm google-chrome-stable_current_adm64.deb 或是 rm google*.deb 或 rm *.deb 都行。
5. 安裝好了的 Google-Chrome 檔案位置,更新位置,及指令位置在那裡呢?
檔案更新設定檔
/etc/apt/sources.list.d/google.chrome.list
6. 如果想要刪除 Google-Chrome 呢,要怎麼刪除?輸入下方指令即可。
sudo apt-get purge google-chrome-stable
sudo apt-get autoremove
1. 首先我們要先下載 Google-Chrome 的 .deb 版本,使用終端機命令列,用 wget 來下載 Google Chrome .deb 軟體包,在終端機輸入下列指令。
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
下載的檔案會在 /home。
2. 安裝 Google-Chrome ,下載完畢後,使用 apt 安裝 Google Chrome
sudo apt install ./google-chrome-stable_current_amd64.deb
安裝完畢後,請輸入 google-ghrome ,或是用非 root 帳號直接輸入 google-chrome 也行,另一個方法是當安裝完畢後,會在你的功能選單裡的應用程式,網際網路工具看到 Google Chrome ,接著點取執行,然後看要不要設成預設的瀏覽器及是否回傳統計資料給 Google 。
在安裝 Google Chrome 過程裡已經將更新清單加入你的系統中 ,我們可以使用 Cat 指令來驗證是否已建立更新清單。
cat /etc/apt/sources.list.d/google-chrome.list
輸入上方指令後,如果出現下方訊息,就代表已經在更新清單中了。
Output
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
如果 Google Chrome 有發佈新版本時,你可以透過桌面版的軟體更新工具,或是在終端機下達命令來更新 Google Chrome 軟體包。
$ sudo apt update
$ sudo apt upgrade
這樣就能順利的使用 Google Chrome ,且在每次有更新的時候,就能順便更新唷。
4. 移除下載的 Google-Chrome 下載包,請在 /home 目錄輸入方指令
ls
則會看到 google-chrome-stable_current_amd64.deb ,因為我們安裝好了,現在把這個下載的檔案刪除。
rm google-chrome-stable_current_adm64.deb 或是 rm google*.deb 或 rm *.deb 都行。
5. 安裝好了的 Google-Chrome 檔案位置,更新位置,及指令位置在那裡呢?
檔案更新設定檔
/etc/apt/sources.list.d/google.chrome.list
檔案安裝在這裡
/opt/google/chrome/
指令放在這裡,因為 Debian 有分使用者,及全部共用的指令,所以這兩個地方都會有指令。
/bin/google-chrome
/bin/google-chrome-stable
/usr/bin/google-chrome
/usr/bin/google-chrome-stable
sudo apt-get remove google-chrome-stable
如果想要清除的乾淨一點,不拖泥帶水的話,就輸入下方這兩行指令。
sudo apt-get purge google-chrome-stable
這樣就能順利的使用 Google Chrome ,且在每次有更新就會通知你唷。如果不想使用也了解到要如何解除安裝了唷~
Copyright by JuJuLa.org
如何在 Debian 10 桌面 使用 fcitx 安裝嘸蝦米及新酷音
嘸蝦米是個很好用的輸入法,但在 Linux 要使用嘸蝦米是非常麻煩的,因為 行易有限公司 沒有發行 Linux 版本的,早期要在 Linux 上安裝嘸蝦米輸入法時,常常查遍各文章,然後一直試,可能試個好幾天都還試不出來,還好在各位蝦友的努力之下, fcitx 也有嘸蝦米可以用嚕~
Debian 10 的系統安裝好之後,裡頭其實就有預設 fcitx 的輸入法,這時就只要在終端機輸入下面兩個指令之後,就能順利的把嘸蝦米叫出來唷~
如果要安裝注意的話,請輸入下方這行
sudo apt-get install fcitx-chewing
接著在選單->應用程式->系統->系統設定->區域設定裡選擇 fcitx ,然後登出或是重開機登入後,就能看到 fcitx 裡頭有 嘸蝦米 可以用嚕,這麼好用的輸入法,就快點來用吧 ^o^
Copyright by JuJuLa.org
Debian 10 的系統安裝好之後,裡頭其實就有預設 fcitx 的輸入法,這時就只要在終端機輸入下面兩個指令之後,就能順利的把嘸蝦米叫出來唷~
安裝fcitx與嘸蝦米table:
sudo apt-get install fcitx fcitx-m17n
sudo apt-get install fcitx-table-boshiamy
sudo apt-get install fcitx fcitx-m17n
sudo apt-get install fcitx-table-boshiamy
如果要安裝注意的話,請輸入下方這行
sudo apt-get install fcitx-chewing
接著在選單->應用程式->系統->系統設定->區域設定裡選擇 fcitx ,然後登出或是重開機登入後,就能看到 fcitx 裡頭有 嘸蝦米 可以用嚕,這麼好用的輸入法,就快點來用吧 ^o^
Copyright by JuJuLa.org
訂閱:
文章 (Atom)