當決定使用 Ubuntu 來開發時

本篇文章主要持續記錄和總結 ubuntu 的必備基礎和使用過程當中遇到的各類問題

安裝

下載 Ubuntu Kylin

圖片描述

最新 ubuntu-kylincss

使用 UltraISO 製做 U 盤啓動盤

寫入硬盤鏡像

入門

瞭解目錄

  • /home 用戶的主目錄
  • /boot 啓動目錄,啓動相關文件
  • /sbin 超級用戶才能使用的目錄
  • /root 超級用戶的主目錄
  • /proc 系統內存的映射
  • /dev 設備文件保存目錄
  • /etc 配置文件保存目錄
  • /lib 系統庫保存目錄
  • /usr 系統軟件資源目錄
  • /var 常常變化目錄,常常放日誌文件
  • /tmp 臨時目錄

終端

# 新窗口打開終端
$ ctrl + alt + t
$ ctrl + shift + n
# 新標籤頁打開終端
$ ctrl + shift + t
# 全屏
$ ctrl + m

獲取 root 權限

$ sudo passwd root      // 激活帳號,設置密碼
$ sudo passwd -l root   // 再次禁用 root 賬號

安裝

$ sudo apt-get install package    // 安裝包
$ sudo dpkg -i package_file.deb   // 安裝 .deb 文件

刪除

$ sudo apt-get remove package           // 刪除包
$ sudo apt-get remove --purge package   // 刪除包和配置文件
$ sudo dpkg -r package_name             // 卸載 .deb 文件
$ sudo dpkg -P package                  // 刪除包和配置文件

更新

$ sudo apt-get update   // 更新源
$ sudo apt-get upgrade  // 更新已安裝的包

清理

$ sudo apt-get autoclean  // 清理已經卸載的包
$ sudo apt-get clean      // 清理全部的安裝包
$ sudo apt-get autoremove // 清理因依賴而安裝但如今再也不須要的包

極有可能遇到的一些問題

開機啓動項沒有 windows

$ sudo update-grub

更改 hosts

$ sudo gedit /etc/hosts

最新 hostshtml

安裝搜狗輸入法

下載 -> 系統設置 -> 語言支持 -> 鍵盤輸入法系統 => fcitx

解決端口衝突

$ lsof -i:8000      // 查看 8000 端口
$ kill 對應的 pid     // 中止使用這個端口的程序

經過文件設置環境變量

# 對全部用戶生效
- /etc/profile:爲系統的每一個用戶設置環境信息
- /etc/bashrc:每次新打開一個終端 shell,該文件被讀取

# 對單個用戶生效
- /.bash_profile:當用戶登陸時該文件僅執行一次
- /.bashrc:當登陸以及每次打開新的 shell 時,該文件被讀取

使用 source /etc/environment 可使變量設置在當前窗口當即生效,需 註銷/重啓 以後,才能對每一個新終端窗口都生效java

設置 JAVA 環境變量

$ sudo gedit /etc/profile  // 更改配置文件

# set java environment
export JAVA_HOME=/home/feng/download/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

$ source /etc/profile  // 使其生效

Java SE Development Kit 8 Downloadsnode

沒有 WIFI 選項

$ sudo apt install linux-generic-hwe-16.04  // LTSEnablementStack

使用 vim

$ sudo apt install vim

如何讓 vim 成爲咱們的神器linux

對文件的操做

$ pwd         // 輸出當前工做目錄的絕對路徑
$ rmdir       // 移除空文件
$ rm -rf      // 刪除目錄包含子目錄和文件
$ mv          // 重命名/移動文件/目錄
$ cp          // 複製文件
$ cp -r       // 複製目錄
$ ls -l       // 顯示文件詳細信息
$ chmod -/+   // 修改文件權限

# 壓縮和解壓文件
// .zip:支持不一樣操做系統
zip -r XX.zip XX    # 壓縮
unzip XX.zip        # 解壓

// .tar:僅打包,沒有壓縮
tar cvf XX.tar XX            # 壓縮
tar xvf XX.tar -C /XX/XX     # 解壓

// .tar.gz:使用普遍,快速壓縮和提取
tar zcvf XX.tar.gz XX        # 壓縮
tar zxvf XX.tar.gz XX        # 解壓

// .tar.bz2:壓縮效果最佳,相對速率較慢
tar zcvf XX.tar.bz2 XX        # 壓縮
tar zxvf XX.tar.bz2 XX        # 解壓

截屏

gnome-screenshot

編輯圖片

sudo apt-get install gimp

gimp 相似 PS,功能十分強大,若只是裁剪圖片,可使用自帶的截屏軟件 gnome-screenshotgit

扁平化主題

clipboard.png

Flatabulous

Ubuntu Tweak:
# GTK 主題:Flatabulous
# 圖表主題:Ultra-Flat
# 光標主題:DMZ-Black
# 窗口主題:Flatabulous

Flatabulousgithub

護眼應用

f.lux

f.luxshell

使用 curl

一個利用 URL 語法在 命令行 下工做的 文件傳輸工具json

# 執行下載
// 抓取頁面內容到一個文件中
curl -o index.html https://www.baidu.com/

// 後面的 url 具體到某個文件
curl -O https://github.com/FengShangWuQi/to-vim/blob/master/images/vim.png

// 只打印頭部信息
curl -I https://www.baidu.com/

// 顯示抓取錯誤
curl -f https://segmentfault.com/n/1330000011469701

// 不顯示進度信息
curl -s -o vim.png https://github.com/FengShangWuQi/to-vim/blob/master/images/vim.png

// 顯示下載進度條
curl -# -o vim.png https://github.com/FengShangWuQi/to-vim/blob/master/images/vim.png

// 經過 ftp 下載文件
curl -O -u 用戶名:密碼 ftp://@ip:port/static/style.css
curl -O ftp://用戶名:密碼@ip:port/static/style.css

// 經過 ftp 上傳
curl -T style.css ftp://用戶名:密碼@ip:port/static/css/

# 發送請求
// GET
curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource

// POST
curl -i -H "Content-Type: application/json" -X POST -d '{"username":"xyz","password":"xyz"}' http://hostname/resource

更新源失敗

# 錯誤提示
校驗數字簽名時出錯。此倉庫未被更新,因此仍然使用此前的索引文件。GPG 錯誤:https://dl.yarnpkg.com/debian stable InRelease: 因爲沒有公鑰,沒法驗證下列簽名: NO_PUBKEY

# 錯誤緣由
- 人爲形成,更新系統或添加 PPA
- 平白無故出現,如軟件源服務器被黑形成了簽名被篡改、文件被替換或與服務器的中間傳輸被某些人重置(如DNS被污染)
- 儲存 APT 數據和 GPG 簽名的目錄 /var/lib/apt/ 損壞(這種狀況通常會同時伴有其餘嚴重問題)

# 解決方案
# 從新加入以上出現問題的apt-key
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com PGP簽名

錄製 GIF

# byzanz
byzanz 能製做文件小,清晰的 GIF 動態效果圖,不足就是,目前只能經過輸入命令方式來錄製

## 安裝
sudo apt-get install byzanz

## 主要參數
-d, --duration=SECS     動畫的時間 (默認:10 秒)
-e, --exec=COMMAND      Command to execute and time
--delay=SECS            開始以前的延時(默認:1 秒)
-c, --cursor            錄製鼠標光標
-a, --audio             錄音
-x, --x=像素            要錄製矩形的 X 座標
-y, --y=像素            要錄製矩形的 Y 座標
-w, --width=像素        錄製矩形的寬度
-h, --height=像素       錄製矩形的高度
-v, --verbose           詳細
--display=顯示          要使用的 X 顯示

# xwininfo
查詢要錄製的窗口位置、寬度和高度

# 示例
byzanz-record -x 0 -y 24 -w 1920 -h 1056 -c -d 10 --delay=3 -v app.gif

硬連接與軟連接

爲解決 文件的共享 使用,Linux 系統引入了兩種連接:硬連接(hard link) 與軟連接(又稱 符號連接,即 soft link 或 symbolic link)ubuntu

# 硬連接
ln 源文件 目標文件
- 文件有相同的 inode 及數據塊
- 只能對已存在的文件進行建立
- 不能交叉文件系統進行硬連接的建立
- 不能對目錄進行建立,只可對文件建立
- 刪除一個硬連接文件並不影響其餘有相同 inode 號的文件

# 軟連接
ln -s 源文件或目錄 目標文件或目錄
- 軟連接有本身的文件屬性及權限等
- 可對不存在的文件或目錄建立軟連接
- 軟連接可交叉文件系統
- 軟連接可對文件或目錄建立
- 建立軟連接時,連接計數 i_nlink 不會增長
- 刪除軟連接並不影響被指向的文件,但若被指向的原文件被刪除,則相關軟鏈接被稱爲死連接(即 dangling link,若被指向路徑文件被從新建立,死連接可恢復爲正常的軟連接)

修改終端提示符

圖片描述

PS1Linux 終端用戶的一個 環境變量,用來定義命令行提示符的參數

# 查看默認設置
echo $PS1

# 經常使用參數及其含義
\H    完整的主機名
\h    主機中的第一個名字
\u    當前用戶的帳號名稱
\w    完整的工做目錄名稱
\$    提示字符,若是是root用戶,提示爲#,普通用戶則爲$

# 臨時修改
$ export PS1='[\u@\h\w]\$'

# 永久修改
$ vim /.bashrc
編輯 PS1

Tmux

Tmux 是 Linux 的 終端利器,不只能夠拆分窗口,還能夠在在 SSH 環境下,避免網絡不穩定,致使工做現場的丟失

clipboard.png

# 幾個重要的概念
- session:會話,一個服務器能夠包含多個會話
- window:窗口,一個會話能夠包含多個窗口
- pane:面板,一個窗口能夠包含多個面板

# 經常使用快捷鍵
## session
- 建立會話
tmux new -s
- 從新開啓會話
tmux a -t
- 查看全部會話
tmux ls
- 刪除某個會話
tmux kill-session -t
- 刪除全部會話
tmux kill-server

$  重命名會話
s  切換會話
d  退出會話
D  選擇要退出的會話

## window
- 查看全部窗口
tmux lsw
- 交換窗口順序
swap-window -s 3 -t 1

c  建立新窗口
w  列出全部窗口
n  後一個窗口
p  前一個窗口
f  查找窗口
,  重命名當前窗口
&  關閉當前窗口
窗口號  切換窗口到指定窗口號

## pane
%  垂直分割
"  水平分割
o  切換窗格
x  關閉窗格
q  查看窗格編號
z  窗格最大化
{  與上一個窗格交換位置
}  與下一個窗格交換位置
space 切換窗格佈局

## 其餘
t  顯示時鐘
?  列出全部快捷鍵
:  命令提示符

個性化定製:gpakosz/.tmux

總結

關於 Ubuntu,若是還有 更有意思的內容或問題,歡迎在評論中交流

相關文章
相關標籤/搜索