Linux 爬坑記錄和Python、Go、Docker環(huán)境配置

Linux 學習記錄
一、相關(guān)問題
1. 解決E:無法獲得鎖/var/lib/apt/lists/lock-open(11資源暫時不可用),無法對狀態(tài)列表目錄加鎖
2. 時區(qū)理解GMT,UTC,CST和時間戳
3. 不能連接到 "ppa.launchpad.net",無法下載 "http://ppa.launc..."等提示
4. Linux卡死,界面只有鼠標能用
5.How to Upgrade my Ubuntu Version
6. windows下docker desktop運行報Hardware assisted virtualization and data execution protection must be enabled
二、相關(guān)操作
1. 如何更新ubuntu內(nèi)核5.0->5.3
2. 如何創(chuàng)建圖標到桌面
3. 如何卸載添加倉庫的PPA源
4. 下載了(WSL)ubuntu如何升級、換源和配置環(huán)境
5. Python、Java、Go環(huán)境變量設(shè)置
6. ubunt19.10安裝docker和鏡像加速設(shè)置

Linux 學習記錄

一、相關(guān)問題

1. 解決E:無法獲得鎖/var/lib/apt/lists/lock-open(11資源暫時不可用),無法對狀態(tài)列表目錄加鎖

sudo rm /var/lib/apt/lists/lock

運行sudo lsb_release -a 查看ubuntu代號時,提示執(zhí)行正常但是提示No LSB modules are available。

sudo apt-get install lsb-core

再次運行即可看到 LSB Version 有提示。

2. 時區(qū)理解GMT,UTC,CST和時間戳

UTC(Coordinated Universal Time)是世界標準時間,世界同一時間,世界協(xié)調(diào)時間,是一個標準而不是一個時區(qū)。使用一天 24 小時時間制,并結(jié)合了地球的自轉(zhuǎn)時間與原子鐘的高精度度量

GMT(Greenwich Mean Time)是格林威治標準時間,但從1972年開始,GMT 就不再是一個時間標準了,僅僅是一個時區(qū)的名字

CST卻同時可以代表如下 4 個不同的時區(qū):(美國,澳大利亞,中國,古巴)

Central Standard Time (USA) UT-6:00

Central Standard Time (Australia) UT+9:30

China Standard Time UT+8:00

Cuba Standard Time UT-4:00

時間戳一般指的是 unix時間戳10位(精確到秒數(shù),13位精確到毫秒),從1970年1月1日 0:0:0(GMT)開始到現(xiàn)在的秒數(shù)。

命令行輸入:

date   # 輸出當前時間信息,也可以指定格式輸出
2019年 09月 05日 星期四 10:45:59 CST
date  +%s  # 輸出當前unix時間戳,單位秒(十進制)
1567651512
date  -d @1567651512  # 輸出該時間戳下對應(yīng)的時間,可以指定格式輸出
2019年 09月 05日 星期四 10:45:12 CST

linux下進制轉(zhuǎn)換,printf {格式} {值}

printf  %x  1567651512  # 十進制轉(zhuǎn)換成十六進制
5d7076b8%  
printf  %d  0x5d7076b8  # 十六進制轉(zhuǎn)換成十進制,前面加0x表示十六進制轉(zhuǎn)八進制用 %o (字母o)

3. 不能連接到 ppa.launchpad.net:W: 無法下載 http://ppa.launc...等提示

有時候安裝第三方軟件,此時就需要先添加該軟件的PPA源,再安裝該軟件。

# 添加:
sudo add-apt-repository  ppa:app-name/ppa-name
# 更新并安裝
sudo apt-get update
sudo apt-get install xxx
# 刪除:
sudo add-apt-repository -r  http://ppa.launchpad.net/fossfreedom/indicator-sysmonitor/ubuntu

再次運行sudo apt-get upgrade就沒有之前的問題了

4. Linux卡死,界面只有鼠標能用

Linux 死機有很多種情況,最常見的是系統(tǒng)負載過高導(dǎo)致的??梢允沁\行內(nèi)存耗用極大的程序,也會迅速提升系統(tǒng)負載。

這里提供一種方法.只通過命令行解決。

快捷鍵輸入 ctrl+alt+F3 (嘗試按F1~F6)會出現(xiàn)黑色彈窗即可;然后提示你輸入 用戶名和密碼,輸入完畢回車就進入終端界面了,然后輸入top 查看那些比較消耗資源(依據(jù)cpu、mem)的進程一般在最上面,找到PID,迅速按下q;

然后輸入 sudo kill <pid>,例如sudo kill 1434.

最后按alt + print 回到桌面,重新登錄,然后update,upgrade更新系統(tǒng),重啟即可。

top
q
sudo kill  PID_Num1   PID_Num2   PID_Num3...
# 同時按 Alt + Print 按鍵,回到桌面;有時候會讓你重新登錄。
------------
# 成功進入后打開新的終端更新系統(tǒng)
sudo apt-get update
sudo apt-get upgrade

5.How to Upgrade my Ubuntu Version

update-manager -c -d

6. windows下docker desktop運行報Hardware assisted virtualization and data execution protection must be enabled

根據(jù)意思結(jié)合docker運行需要Hyper-V組件和vmware支持。解決方法如下:

  • 確保主板bios支持虛擬化(如果之前安裝能用vmware則說明已經(jīng)使能,后者右擊任務(wù)欄,查看任務(wù)管理器->性能->CPU查看右下角是否virtualization:enable)
  • 必須確保hyper-v組件已經(jīng)開啟。可通過如下PowerShell (管理員身份)命令啟動執(zhí)行[開始菜單右擊->管理員]
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
  • 組件開啟后要保證守護進程開啟(data execution protection must be enable)
bcdedit /set hypervisorlaunchtype auto</pre>
  • 重啟電腦,重新運行docker即可
shutdown -r -t 0

二、相關(guān)操作

1. 如何更新ubuntu內(nèi)核5.0->5.3

系統(tǒng)跟內(nèi)核是不一樣的,例如Ubuntu14和Ubuntu18.04,一般叫做版本號,每個版本號都有一個代號bionic,disco等等;同樣他們的內(nèi)核也是不一樣的,例如kernel 3.6和kernel5.0,但是內(nèi)核可以升級。

如何升級?內(nèi)核版本多樣該選擇那個?

建議選擇stable穩(wěn)定版本的。
進入 官網(wǎng) 下載網(wǎng)速慢的用vpn帆強,選擇stable下載,然后把原來的系統(tǒng)config放到新的解壓后的目錄中,具體查詢百度

這里用簡單的升級內(nèi)核的方法

進入主線的kernel內(nèi)核,網(wǎng)址見下,選擇相應(yīng)版本,注意選擇Build for amd64那塊的
https://kernel.ubuntu.com/~kernel-ppa/mainline

如圖
linux_kernel.png

選擇四個后綴為.deb的即可,見圖兩個header,一個image,一個module(含有g(shù)eneric)

https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-headers-5.3.0-050300_5.3.0-050300.201909152230_all.deb

https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-headers-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb

https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-image-unsigned-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb

https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-modules-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb

下載完后

然后更改權(quán)限,復(fù)制到 /usr/src路徑下,然后解壓安裝

sudo dpkg -i *.deb

等待完成后,重啟系統(tǒng)

reboot

2. 如何創(chuàng)建圖標到桌面

首先進入/usr/share/applications/路徑下,創(chuàng)建xxxx.desktop文件。以創(chuàng)建pycharm為例

cd /usr/share/applications/
 # 這個不是桌面顯示的文件,是必須創(chuàng)建這個后綴文件并且寫上代碼后才可以,可理解腳本
sudo touch  Pycharm.desktop 
sudo chmod 777 Pycharm.desktop # 這個是為了修改文件可以保存
vim Pycharm.desktop

[Desktop Entry]
Name=Pycharm
Comment=Pycharm-2019.1.3--Python IDE Exec=/home/jackmin/MyApplication/Pycharm-2019.1.3/bin/Pycharm.sh Terminal=false
Type=Application
Icon=/home/jackmin/MyApplication/Pycharm-2019.1.3/bin/Pycharm.png Categories=Pycharm;

然后保存,esc -> : -> wq 然后回車。可在左下角 顯示應(yīng)用程序 中看到圖標。
相關(guān)參數(shù)說明,這里以GoLand為例:

[Desktop Entry]    # 創(chuàng)建一個Desktop Entry實體,固定用法
Name=GoLang      # 桌面的圖標名稱
Comment=GoLang-2019.2.3--Go IDE       # 鼠標放在上面的提示信息
# 執(zhí)行程序的路徑,以實際安裝的具體路徑為準
Exec=/home/jackmin/MyApplication/GoLand-2019.2.3/bin/goland.sh
# 打開程序后任務(wù)欄是以終端圖標(黑框)顯示,false為用自帶的程序圖標顯示
Terminal=false
# 類型
Type=Application
 # 桌面呈現(xiàn)的圖標的路徑,以實際安裝路徑為準
Icon=/home/jackmin/MyApplication/GoLand-2019.2.3/bin/goland.png
Categories=GoLand;

3. 如何卸載添加倉庫的PPA源

PPA,英文全稱為 Personal Package Archives,即個人軟件包檔案。是 Ubuntu Launchpad 網(wǎng)站提供的一項源服務(wù),允許個人用戶上傳軟件源代碼,通過 Launchpad 進行編譯并發(fā)布為二進制軟件包,作為 apt / 新立得(Synaptic)源供其他用戶下載和更新。
PPA 的一般形式是: ppa:user/ppa-name

添加 PPA 源

# 添加 PPA 源的命令為
sudo add-apt-repository ppa:user/ppa-name 
#添加好記得要更新一下: 
sudo apt-get update

刪除 PPA 源

# 刪除 PPA 源的命令格式則為:
sudo add-apt-repository -r ppa:user/ppa-name
# 例如:sudo add-apt-repository -r [https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu](https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu)
# 然后進入 /etc/apt/sources.list.d目錄,將相應(yīng) ppa 源的保存文件刪除。
# 也可以直接將 /etc/apt/sources.list自己添加的無效源刪掉或者注釋 
# 最后同樣更新一下
sudo apt-get update

4. 下載了(WSL)ubuntu如何升級、換源和配置環(huán)境

這里用WSL舉例,因為是最新的win10預(yù)覽版本,開啟wsl2 。具體如何安裝參考教程

管理員身份運行powershell輸入 wsl --set-default-version 2

查看當前的wsl版本信息 wsl -l -v 看到version是2即可。

NAME STATE VERSION
Ubuntu Running 2

啟動Ubuntu后,默認從商店安裝的不一定時最新的版本,故需要升級,但是考慮網(wǎng)絡(luò)訪問問題,先換源,再升級。

  • 換源需要遵循版本對應(yīng),通過查看lsb_release -a知道codename為 bionic(這個后面要用)

No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic

# 先備份
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bank
# 再創(chuàng)建并編輯(也可以直接編輯不備份)
sudo vim /etc/apt/sources.list
# 復(fù)制下面的內(nèi)容,將codename換成上面查到的代號 bionic(以阿里的源為例)如下,如果是disco就換disco
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

然后更新下,并安裝

sudo apt-get update && sudo apt-get upgrade
  • 升級前先切換成root用戶
sudo su
do-release-upgrade

這里會提示需要修改一個文件

Checking for a new Ubuntu release
There is no development version of an LTS available.
To upgrade to the latest non-LTS develoment release
set Prompt=normal in /etc/update-manager/release-upgrades.

# 先去修改
sudo vim /etc/update-manager/release-upgrades
# 然后修改lts為normal
Prompt=normal

運行do-release-upgrade 安裝確認即可;如果不換源,會導(dǎo)致升級很慢。我這里就直接從18.04lts升到了19.10

重新查看版本信息 lsb_release -a 時codename變成了eoan

這時候在查看 /etc/apt/sources.list 文件已經(jīng)自動被改為 eoan

  • 安裝oh-my-zsh
# 安裝zsh包
sudo apt-get install zsh
# 切換終端shell默認的bash為zsh
sudo chsh -s /bin/zsh
# 重啟下reboot
?
# 安裝zsh,需要提前安裝好git
sudo apt-get install git
# 更新下
sudo apt-get update && sudo apt-get upgrade
# 安裝oh-my-zsh
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
# (可選)安裝語法高亮和自動補全
cd ~/.oh-my-zsh/plugins
# 語法高亮
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 自動補全
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
# 然后需要在~/.zshrc聲明下這幾個插件,找到plugins=()里面添加
vim ~/.zshrc
....
plugins=(
git
zsh-syntax-highlighting
zsh-autosuggestions
)
# 保存,更新
source  ~/.zshrc
# 退出重登即可

如果有換中文、亂碼等情況,請參考這里 教程

5. Python、Java、Go環(huán)境變量設(shè)置

  • Java安裝和環(huán)境配置參考原先 教程
# 也可以安裝默認的openjdk
sudo apt install default-jdk
  • Python 安裝和環(huán)境配置

下載Python-3.8.2.tar.xz文件后,解壓到/usr/local/路徑

sudo tar -C /usr/local -xvf Python-3.8.2.tar.xz
cd /usr/local/Python-3.8.2
# 在安裝前需要先安裝一些依賴
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
# 執(zhí)行configure腳本,優(yōu)化python二進制文件
./configure --enable-optimizations
# 啟動構(gòu)建Python過程
make -j 8
# 構(gòu)建完成安裝python文件,不使用install是為了避免將本地有自帶的python3覆蓋
sudo make altinstall
# 添加環(huán)境變量或者建立軟鏈接
sudo ln -s /usr/local/Python-3.8.2/python /usr/local/bin/python
# 輸入查看版本(不建立軟鏈接,直接Python3.8 -V也是可以的)
$ python -V
Python 3.8.2
# 添加pip軟鏈接,并升級
sudo ln -s /usr/local/bin/pip3.8 /usr/local/bin/pip
$ pip -V
pip 19.2.3 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
# 升級pip
pip install --user --upgrade pip
# 對python換源
sudo mkdir -m=777 ~/.pip/
sudo vim pip.conf
# 輸入
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
timeout = 6000
trusted-host = mirrors.aliyun.com
  • Go 安裝和環(huán)境配置

類似Python的做法,下載go1.14.linux-amd64.tar.gz文件后,解壓到/usr/local路徑(推薦)

sudo tar -C /usr/local -zxvf go1.14.linux-amd64.tar.gz
cd /usr/local/go
# 這里go不需要想Python一樣編譯,已經(jīng)是生成好的了,所以添加到環(huán)境變量即可,或者添加軟鏈接。
# 建議go添加環(huán)境變量,然后還需要添加工作目錄
# 在終端的配置文件中添加環(huán)境變量(等號左右無空格)
sudo vim ~/.zshrc
# 在前面添加
export GOROOT=/usr/local/go/bin
export PATH=$GOROOT:$PATH
# 測試版本
$ go version
go version go1.14 linux/amd64
# 添加工作路徑(本人在$home路徑創(chuàng)建)
sudo mkdir -m=777 $HOME/Projects_repo/go
# 進入目錄創(chuàng)建src、pkg、bin目錄
# src ---- 里面每一個子目錄,就是一個包。包內(nèi)是Go的源碼文件
# pkg ---- 編譯后生成的,包的目標文件
# bin ---- 生成的可執(zhí)行文件
# 再次修改~/.zshrc。將之前的PATH追加$HOME/Projects_repo/go
export PATH=$GOROOT:$HOME/Projects_repo/go:$PATH
# 后面開發(fā)go的話在src目錄下建項目文件夾,然后再在項目文件中添加.go程序

6. ubunt19.10安裝docker和鏡像加速設(shè)置

前言

For WSL

因為之前docker不支持最新版的Ubuntu19.10文檔一直沒有更新,現(xiàn)在官方已經(jīng)支持了。例外,由于WSL屬于win10高版本,對于WSL版本為1是不能直接運行使用的(但不代表不支持),需要配合windows環(huán)境(守護進程模式)使用;通信上(與daemon)可看成是C/S架構(gòu)的。因而要借助Windows的docker根據(jù)遠程ip訪問。

如果現(xiàn)在已經(jīng)安裝我上面說的開啟了WSL2(需要開啟了Windows Insider模式,預(yù)覽版用戶),本人當前電腦win10 version 2004 OS build 19041.113.現(xiàn)在可以直接通過localhost 從 Windows 訪問 Linux 網(wǎng)絡(luò)應(yīng)用程序. 其次,最新版的Windows docker也支持了wsl2,安裝了Windows版本的docker,就可以直接在wsl里面使用docker。(簡單設(shè)置即可)

至于加速,如果有阿里云或者其他云廠商賬號,可以在鏡像加速服務(wù)里找到自己的私有鏡像加速register.

如果是windows用戶,直接在docker desktop的設(shè)置中docker enginer的configure添加

docker_register.jpg

For Linux

安裝過程 =>> 官網(wǎng)傳送門

如果是linux用戶在vim /etc/docker/daemon.json里面添加;如果沒有私有的鏡像加速,添加官方的國內(nèi)鏡像,或者阿里其他的官網(wǎng)鏡像即可

{
 "registry-mirrors": ["https://registry.docker-cn.com","私有的鏡像服務(wù)器地址"]
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容