1. 程式人生 > >linux/ubuntu 常用操作

linux/ubuntu 常用操作

1.按照程序名字 kill
一種方法是使用 pkill(pkill 按照名稱 pattern kill 掉), 但是, 有時候 pkill 不好使, 還是用最原始的方法吧,即

ps -ef | grep "name" | awk '{print $2}' | xargs kill -9

其中:

awk '{print $2}'$2:表示第二個欄位,表示第2列,即程序號PID; 
print $2 : 列印第二個欄位
awk '{print $2}'  $fileName :   一行一行的讀取指定的檔案, 以空格作為分隔符,列印第二個欄位
比如有這樣一個檔案
a1  b1  c1  d1
a2  b2  c2  d2
執行的結果是,輸出
b1
b2
kill -9 強殺程序;
xargs 使用上一個操作的結果作為下一個命令的引數使用
注:本來就是針對字元操作的,無需使用XAGRS,直接管道即可.對於不是對字元進行操作的才需要用xargs!

結束同一個程式的多個例項:

for pid in $(ps -ef | awk '/some-search/ {print $2}'); do kill -9 $pid; done

2.安裝源裡提供的驅動

# 移除顯示卡驅動
sudo apt-get purge nvidia-*
# 新增第三方 repository
sudo add-apt-repository ppa:graphics-drivers/ppa
# 更新源 && 安裝對應版本的驅動
sudo apt-get update sudo apt-get install nvidia-version

手動安裝顯示卡:過程比較簡單, 官網下載顯示卡驅動檔案, *.run 結尾的. 然後執行該檔案
核心升級後導致顯示卡驅動失效的解決辦法:

切換到 /usr/src/ 目錄下, 會看到該目錄下有各種核心檔案的原始碼和一個 NVIDIA 顯示卡驅動的資料夾. 該資料夾的命名方法為 nvidia-version, 例如, nvidia-367.44. 這個命名方式很重要, 後面會用到.
使用 dkms rebuild 該驅動
使用 dkms install 該驅動
例如:
cd /usr/src/
dkms build -m nvidia -v 367.44 dkms install -m nvidia -v 367.44

3.解決不能輸入中文的問題
ubuntu 輸入:sudo locale-gen zh_CN.UTF-8,然後修改環境變數 LANG 與本地相同

4.notebook 中顯示圖片

% matplotlib inline
# 設定顯示影象的尺寸
matplotlib.rcParams['figure.figsize']=[16, 9]
# 或者
matplotlib.rcParams["figure.dpi"] = 120

5.修改預設的文字編輯器

sudo update-alternatives --config editor

6.單機多 GPU 使用單個 GPU 的一種方式(TensorFlow)

CUDA_VISIBLE_DEVICES=0 python my_script.py
這種方式, TF 的計算和視訊記憶體再用都只是使用 0 號 GPU, 不需要對程式碼做出改動. 推薦使用.

7.儲存 numpy 資料
Python 的 pickle 方法在儲存的內容大於 4G 的時候會報錯, bug造成的, 如果是影象的 numpy 資料可以直接使用 numpy 的 savez 來儲存資料.

np.savez("dataset", train_data=train_data, train_label=train_label, val_data=val_data, val_label=val_label)
# 資料被儲存為 dataset.npz
# 讀取資料
dataset = np.load("./dataset")
train_data, train_label, val_data, val_label = dataset["train_data"], dataset["train_label"], dataset["val_data"], dataset["val_label"]

8.遍歷目錄下面的所有指定型別的檔案,包括子目錄的檔案

def mk_list(target=None):
    """create a list file of all images"""
    matches = []
    for root, dirnames, filenames in os.walk(target):
        for filename in fnmatch.filter(filenames, '*.jpg'):
            matches.append(os.path.join(root, filename))
    f = open(__imglist__, w)
    for img in matches:
        f.write(img + '\n')
    return matches

9.安裝依賴

安裝gcc等編譯工具:apt-get install build-essential
fortran編譯工具(安裝python wrapper 時候需要fortran編譯器):apt-get install gfortran
安裝git (下載 caffe的時候會用到):apt-get install git