sudo apt install openssh-server報錯:
解決辦法: sudo apt install openssh-client=1:8.2p1-4 降級安裝后再安裝openssh-server
sudo systemctl status ssh 顯示運行狀態
Ubuntu隨附了一個名為UFW的防火牆配置工具。如果在系統上啟用了防火牆,請確保打開SSH端口:
sudo ufw allow ssh
現在,您可以從任何遠程計算機通過SSH連接到Ubuntu系統。Linux和macOS系統默認安裝了SSH客戶端。要從Windows計算機連接,請使用SSH客戶端(例如PuTTY)。
連接到SSH服務器
要通過LAN連接到Ubuntu計算機,請調用ssh命令,然后輸入用戶名和IP地址,格式如下:
ssh username@ip_address
確保
username
使用實際用戶名和ip_address
安裝SSH的Ubuntu計算機的IP地址進行更改。
如果您不知道IP地址,則可以使用以下ip
命令輕松找到它:
ip a
從輸出中可以看到,系統IP地址為10.0.2.15
。
找到IP地址后,通過運行以下ssh
命令登錄到遠程計算機:
ssh linuxize@10.0.2.15
首次連接時,您會看到如下消息:
The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?
鍵入yes
你會被提示輸入您的密碼。
Warning: Permanently added '10.0.2.15' (ECDSA) to the list of known hosts.
linuxize@10.0.2.15's password:
輸入密碼后,將收到默認的Ubuntu消息:
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-26-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
...
現在,您已登錄到Ubuntu計算機。
在NAT后連接到SSH
要通過Internet連接到您的家用Ubuntu計算機,您需要知道您的公共IP地址,並將路由器配置為接受端口22上的數據,並將其發送到運行SSH的Ubuntu系統。
要確定你想SSH到機器的公網IP地址,只需訪問以下網址:https://www.baidu.com/s?wd=ip。
在設置端口轉發時,每個路由器都有不同的方式來設置端口轉發。您應該查閱路由器文檔,以了解如何設置端口轉發。簡而言之,您需要輸入進行請求的端口號(默認SSH端口為22)和您先前ip a
在運行SSH的計算機上找到的私有IP地址(使用命令)。
找到IP地址並配置路由器后,您可以通過輸入以下內容登錄:
ssh username@public_ip_address
如果要將計算機暴露在Internet上,則最好實施一些安全措施。最基本的方法是將路由器配置為在非標准端口上接受SSH流量,並將其轉發到運行SSH服務的計算機上的端口22。
您還可以設置基於SSH密鑰的身份驗證並連接到Ubuntu計算機,而無需輸入密碼。
在Ubuntu上禁用SSH
要在您的Ubuntu系統上禁用SSH服務器,只需運行以下命令即可停止SSH服務:
sudo systemctl disable --now ssh
稍后,要重新啟用它,請輸入:
sudo systemctl enable --now ssh
結論
我們已經向您展示了如何在Ubuntu 20.04上安裝和啟用SSH。現在,您可以登錄計算機並通過命令提示符執行日常sysadmin任務。
如果要管理多個系統,則可以通過在SSH配置文件中定義所有連接來簡化工作流程。更改默認的SSH端口,可以降低自動攻擊的風險,從而為您的系統增加一層額外的安全保護。
有關如何配置SSH服務器的更多信息,請閱讀Ubuntu的SSH / OpenSSH /配置指南和官方SSH手冊頁。
查看Ubuntu系統的版本號
a@a-desktop:~$ cat /etc/issue
Ubuntu 20.04.1 LTS \n \l
a@a-desktop:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
查看Ubuntu系統位數
a@a-desktop:~$ uname -ar
Linux dell 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
安裝cuda時 提示toolkit installation failed using unsupported compiler解決方法
在安裝cuda的時候,有時候會提示toolkit installation failed using unsupported compiler
。這是因為GCC版本不合適所導致的。
解決的方法很簡單,直接在安裝命令之后加-override
再安裝,一般來說就沒什么問題了。如:sudo ./cuda_6.0.37_linux_64.run -override
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver.
更新一下!!!
最安全的做法是重裝顯卡驅動,有豐富的linux調試經驗到的人可以參考下我的文章,小白千萬不要按照我的這篇文章來做!!!
按照我這篇文章來做的時候有以下注意:!!!
一定要看一下自己的之前能用的內核是什么,不要一切都按照我的配置來,每個人的機器都有自己之前的配置,不然很容易導致沒有內核可用而導致無法開機或者桌面驅動不可用導致的重復輸入密碼而進入桌面!!!
這是一個巨坑
重要的話說三遍
- 不要更新你的Ubuntu內核
- 不要更新你的Ubuntu內核
- 不要更新你的Ubuntu內核
為什么呢?
因為當你更新你的內核之后,你進入的系統默認使用最新的,而這個最新的卻不會把你之前安裝的nvidia驅動也遷移過來,所以導致:
驅動崩壞——>重裝驅動——>更新內核——>驅動崩壞——>重裝驅動
的死循環。
那么現在除了重裝驅動還有救么?有!
我們要去做的,就是修改系統配置使啟動系統時啟用我們之前的內核
在終端輸入:
grep menuentry /boot/grub/grub.cfg
你就可以看見你的啟動項里面的所有內核。比如我的:
如果你沒有更改過的話,那么你默認啟動的是:
這會默認使用你最新的內核。
以我為例,我的擁有有效驅動的內核為:
也就是高級選項下第三個內核,使用我要去在grub里面設置默認啟用這個內核(當然,你在系統啟動時手動選擇也可以,具體grub是啥限於篇幅就不介紹了)
現在我們可以修改我們的grub配置項了:
sudo nano /etc/default/grub
以我為例,修改grub配置如下,黃線標注出來的選項默認是0,我們需要更改它到高級選項下的第三個內核,就改為"1> 2",注意">"和"2"之間有一個空格:
之后我們使用:
sudo update-grub
更新配置就完成了我們的默認內核設置。重啟電腦,使用更新后的默認選項便可以挽救我們的電腦啦~~~
GPU 調用問題:failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
字面意思是GPU不可用。
但是我nvdia-smi了一下,發現服務器幾個gpu都是空的啊。不可能啊。而且我的運行有加前綴:
CUDA_VISIBLE_DEVICES=2 python test.py
思來想去,查來查去,還是CUDA_VISIBLE_DEVICES的問題。原來代碼隱藏的某處,把這個數值寫死了,寫成了
CUDA_VISIBLE_DEVICES=-1意為使用cpu。。。
命令行傳進去的值被里面覆蓋了。好吧。改寫后就正常了。
https://help.ubuntu.com/18.04/installation-guide/i386/ch03s07.html
安裝 Ubuntu 預安裝硬件和操作系統設置
調用 BIOS 設置菜單
BIOS 提供啟動計算機和允許操作系統訪問硬件所需的基本功能。您的系統提供 BIOS 設置菜單,用於配置 BIOS。要進入 BIOS 設置菜單,您必須在打開計算機后按鍵或按鍵組合。通常是del鍵或 F2 鍵,但某些制造商使用其他key。通常,啟動計算機時會有一條消息,說明要按哪個鍵進入設置屏幕。
啟動設備選擇
在 BIOS 設置菜單中,您可以選擇應按哪個順序檢查可引導操作系統的設備。可能的選擇通常包括內部硬盤hdd、CD/DVD-ROM 驅動器和 USB 大容量存儲設備,如 USB 記憶棒或外部 USB 硬盤。在現代系統上,也經常有可能通過 PXE 啟用網絡引導。
根據您選擇的安裝介質(CD/DVD ROM、USB bar、網絡引導),如果尚未啟用相應的引導設備,則應啟用這些設備。
大多數 BIOS 版本允許您在系統啟動時調用啟動菜單,在該菜單中選擇計算機應為當前會話啟動的設備。如果此選項可用,BIOS 通常會在系統啟動時顯示一條短消息,如"按 F12啟動菜單"。用於選擇此菜單的實際鍵因系統而異;常用的鍵是F12,F11和F8。 在此菜單中選擇設備不會更改 BIOS 的默認啟動順序,即您可以將內部硬盤配置為普通主引導設備時,可以從 U 盤啟動一次。
如果您的 BIOS 沒有為您提供啟動菜單來臨時選擇當前啟動設備,則必須更改 BIOS 設置,以使應從中啟動的設備成為主引導設備。debian-installer
不幸的是,有些計算機包含錯誤 BIOS 版本。即使 BIOS 設置菜單中有適當的選項,並且將斗桿選為主引導設備,從 U 盤啟動也可能無法正常工作。在某些系統上,使用 USB 作為引導介質是不可能的;其他人可以通過改變設備類型在BIOS設置從默認的"USB-hdd/USB/USB ZIP/USB CDROM"從usb外設啟動。特別是,如果您在 U 盤上使用混合 CD/DVD 映像(參見 4.3.1 節"使用混合 CD 或 DVD 映像准備 USB 記憶棒"),將設備類型更改為"USB CDROM"有助於使用某些 BIOS,這些 BIOS不會從 USB 硬盤模式下從 USB 記憶棒啟動。debian-installer
如果您無法操作 BIOS 直接從 U 盤啟動,您仍然可以選擇使用復制到該棒的 ISO。使用第 4.4 節"為硬盤啟動准備文件"啟動,在掃描安裝程序 ISO 映像的硬盤后,選擇 USB 設備並選擇安裝映像。debian-installer
帶 UEFI 固件的系統
UEFI (" 統一可擴展固件接口 ") 是一種新型的系統固件,用於許多現代系統,除其他用途外,還打算取代經典的PC BIOS。
目前,大多數使用 UEFI 的 PC 系統在固件中還具有所謂的"兼容性支持模塊"(CSM),它為操作系統提供與經典 PC BIOS 完全相同的接口,因此可以不更改使用為經典 PC BIOS 編寫的軟件。 盡管如此,UEFI 打算有一天完全更換舊的 PC BIOS,而不完全向后兼容,並且已經有很多系統有 UEFI,但沒有 CSM。
在使用 UEFI 的系統上,在安裝操作系統時需要考慮一些事項。固件加載操作系統的方式在經典 BIOS(或 CSM 模式下的 UEFI)和本機 UEFI 之間根本不同。一個主要區別是硬磁盤分區在硬盤上的記錄方式。當 CSM 模式下的經典 BIOS 和 UEFI 使用 DOS 分區表時,本機 UEFI 使用不同的分區方案,稱為"GUID 分區表" (GPT)。在單個磁盤上,對於所有實際目的,只能使用兩個磁盤中的一個,如果一個磁盤上具有不同操作系統的多引導設置,則所有磁盤都必須使用相同類型的分區表。僅在本機 UEFI 模式下才能從具有 GPT 的磁盤啟動,但隨着硬盤大小的增長,使用 GPT 變得越來越常見,因為經典 DOS 分區表無法解決大於 2 TB 的磁盤,而 GPT 允許更大的磁盤。BIOS(或CSM模式下的 UEFI)和本機 UEFI 之間的另一個主要區別是存儲引導代碼的位置以及必須采用的格式。這意味着每個系統都需要不同的引導加載程序。
在使用 CSM 在 UEFI 系統上啟動時,后者變得非常重要,因為檢查它是在 BIOS - 還是本機 UEFI 系統上啟動的,並安裝相應的引導加載程序。通常,這只會起作用,但在多引導環境中可能會出現問題。在某些具有 CSM 的 UEFI 系統上,可移動設備的默認引導模式可能不同於從硬盤啟動時實際使用的模式,因此,當從 USB 棒以不同於從硬盤啟動另一個已安裝的操作系統時使用的不同模式啟動安裝程序時,可能會安裝錯誤的引導加載程序,並且完成安裝后系統可能無法啟動。從固件引導菜單中選擇引導設備時,某些系統為每個設備提供兩個單獨的選擇,以便用戶可以選擇引導是發生在 CSM 還是本機 UEFI 模式下。debian-installer
debian-installer
禁用 Windows 8 [快速啟動]功能
Windows 8 提供了一項名為"快速啟動"的功能,可縮短系統啟動時間。從技術上講,當啟用此功能時,Windows 8 不會執行真正的關閉,在被命令關閉時不會執行真正的冷啟動,而是執行類似於部分掛起到磁盤的檢查,以減少"啟動"時間。只要 Windows 8 是計算機上唯一的操作系統,這是沒有問題的,但是當您進行雙引導設置時,可能會導致問題和數據丟失,其中另一個操作系統訪問與 Windows 8 相同的文件系統。在這種情況下,文件系統的真實狀態可能不同於 Windows 8 認為在"啟動"之后的狀態,這可能會導致文件系統在進一步寫入文件系統訪問時損壞。因此,在雙啟動設置中,為了避免文件系統損壞,必須禁用Windows 中的"快速啟動"功能。
可能還需要禁用"快速啟動",甚至允許訪問 UEFI 設置以選擇啟動其他操作系統或 。在某些 UEFI 系統上,固件通過不初始化鍵盤控制器或 USB 硬件來減少"啟動"時間;在這些情況下,必須引導到 Windows 並禁用此功能以允許更改啟動順序。debian-installer
需要注意的硬件問題
USB BIOS 支持和鍵盤。如果您沒有 PS/2 風格的鍵盤,但只有 USB 型號,在一些非常舊的 PC 上,您可能需要在 BIOS 設置中啟用舊鍵盤仿真,以便能夠在引導加載器菜單中使用鍵盤,但這不是現代系統的問題。如果您的鍵盤在引導加載器菜單中不起作用,請參閱主板手冊,並在 BIOS 中查找"舊鍵盤仿真"或"USB 鍵盤支持"選項。
4.6.獲取系統安裝介質, 自動安裝系統(Kickstart 文件示例):https://help.ubuntu.com/18.04/installation-guide/i386/ch04s06.html
w3m . # 字符畫顯示目錄結構

包管理系統
sudo apt-get install synaptic

激活 Canonical 合作伙伴軟件倉庫
Canonical 合作伙伴軟件倉庫,提供了一些專有的應用程序,這些應用程序都是免費的,但也都是閉源的。它們包括 Adobe Flash 插件之類的軟件。該存儲庫中的軟件將出現在 Ubuntu 軟件中心搜索結果中,但必須要啟用這些軟件源以后才能安裝。
要啟用該庫,請遵照上述步驟打開在軟件和更新 中的其他軟件標簽頁。如果您在列表中看到Canonical 合作伙伴倉庫,請確保將其選中,然后關閉 軟件和更新 窗口。如果沒有看到該庫,單擊添加,然后輸入:
deb http://archive.canonical.com/ubuntu focal partner
點添加源,然后關閉軟件和更新窗口,等待 Ubuntu 軟件中心下載軟件庫信息。
鍵盤導航: https://help.ubuntu.com/lts/ubuntu-help/keyboard-nav.html.zh-CN
https://help.ubuntu.com/lts/ubuntu-help/keyboard-shortcuts-set.html.zh-CN
預定義的快捷鍵
自定義快捷鍵
若要在鍵盤設置中創建自己的應用程序鍵盤快捷方式:
-
單擊+按鈕。將顯示"添加自定義快捷方式"窗口。
-
鍵入名稱以標識快捷方式,鍵入命令以運行應用程序。例如,如果您想要打開節奏框的快捷方式,可以命名它音樂並使用節奏框命令。
-
單擊剛剛添加的行。打開"設置自定義快捷方式"窗口時,按住所需的快捷方式鍵組合。
-
單擊"添加"。
鍵入的命令名稱應是有效的系統命令。您可以通過打開終端並在中鍵入來檢查該命令能否正常工作。打開應用程序的命令不能與應用程序本身具有相同的名稱。
如果要更改與自定義鍵盤快捷方式關聯的命令,請單擊快捷方式的名稱。將顯示"設置自定義快捷方式"窗口,您可以編輯該命令。
ubuntu software安裝軟件提示snap無法安裝has install-snap change in progress
我用ubuntu software裝啥軟件,都是各種snap報錯,就沒有成功過。每次都是提示snap錯誤,懷疑是snap自身的問題,嘗試在命令模式下載安裝。
用windows思維理解,就是圖片界面安裝出錯,需要在任務管理器先結束安裝進程,然后DOS命令下重新安裝。
查看命令如下:
snap changes
接下來我們把對應ID的進程關閉掉。我當前在安裝的是pycharm專業版,它的ID為9,參考命令如下:
sudo snap abort 9
進程結束以后,直接用命令snap進行下載,不要用軟件管理器下載,像我當前在下載的是pycharm的專業版(這下載速度不是一般的慢,但是懶得再去單獨下載安裝包)。命令參考:
snap install --classic pycharm-professional
圖片參考如下:
超簡單!Linux下FTP服務器的安裝和配置(基於Ubuntu)
sudo apt-get install vsftpd
我這里已經是安裝過了
二、配置vsftpd.conf文件,這里是不允許匿名登錄的情況
1、進入etc目錄
cd /etc/
2、進入編輯
sudo vi vsftpd.conf
3、去掉Listen=YES anonymous_enable=NO local_enable=YES write_enable=YES前面的#號
要注意的是,如果你沒有涉及到ipv6地址,listen_ipv6=YES記得要注釋掉,不然的話會出現connection refused,至少我是這樣了TAT
4、在文件末尾插入
pasv_min_port=10060
pasv_max_port=10090
此為vsftpd被動模式(pasv)的端口范圍
5、保存退出
三、添加FTP用戶
1、在一個合適的地方創建文件夾,這個文件夾作為用戶的根目錄,並設置好權限。例如:/home/ubuntu/ftp
2、執行如下語句添加用戶(username為用戶名)
sudo useradd -d /home/ubuntu/ftp -s /bin/bash username
3、執行如下語句設置密碼(username為用戶名)
sudo passwd username
四、啟動ftp服務
sudo service vsftpd start
五、Enjoy!
六、中文亂碼問題:
配置最后一行,啟用 utf8_filesystem=YES
Ubuntu下如何查看已安裝軟件版本
如何查看Ubuntu下安裝過的全部軟件。
-
查看安裝的所有軟件【帶簡介】
➜ ~ dpkg -l
查看輸出:
➜ ~ dpkg -l 期望狀態=未知(u)/安裝(i)/刪除(r)/清除(p)/保持(h) | 狀態=未安裝(n)/已安裝(i)/僅存配置(c)/僅解壓縮(U)/配置失敗(F)/不完全安裝(H)/觸發器等待(W)/觸發器未決(T) |/ 錯誤?=(無)/須重裝(R) (狀態,錯誤:大寫=故障) ||/ 名稱 版本 體系結構: 描述 +++-==================================-======================-======================-========================================================================= ii a11y-profile-manager-indicator 0.1.10-0ubuntu3 amd64 Accessibility Profile Manager - Unity desktop indicator ii account-plugin-facebook 0.12+16.04.20160126-0u all GNOME Control Center account plugin for single signon - facebook ii account-plugin-flickr 0.12+16.04.20160126-0u all GNOME Control Center account plugin for single signon - flickr ii account-plugin-google 0.12+16.04.20160126-0u all GNOME Control Center account plugin for single signon
-
查看軟件安裝的路徑
dpkg -L | grep terminator
查看輸出
3.使用apt查看已安裝版本
apt list --installed
查看輸出
當然,需要找特定的軟件,只需要后面跟grep就好了。
小結
dpkg -l大法好。
解決Could not load dynamic library 'libcudart.so.10.0'的問題
問題表現與分析
在安裝了CUDA和CUDNN還有Tensorflow最新的2.0正式版本后,我在使用Pycharm寫TF代碼並運行時,遇到這樣的問題
主要表現就是提示找不到動態庫文件,掃了一眼文件名,都是CUDA的庫文件,那怎么會說找不到
2019-10-15 19:19:41.440285: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1 2019-10-15 19:19:41.465433: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2019-10-15 19:19:41.465758: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties: name: GeForce RTX 2080 Ti major: 7 minor: 5 memoryClockRate(GHz): 1.665 pciBusID: 0000:01:00.0 2019-10-15 19:19:41.465809: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.465841: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.465870: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcufft.so.10.0'; dlerror: libcufft.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.465900: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcurand.so.10.0'; dlerror: libcurand.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.465930: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcusolver.so.10.0'; dlerror: libcusolver.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.465959: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcusparse.so.10.0'; dlerror: libcusparse.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.468179: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7 2019-10-15 19:19:41.468189: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1641] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform. Skipping registering GPU devices... 2019-10-15 19:19:41.468361: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA 2019-10-15 19:19:41.490938: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3696000000 Hz 2019-10-15 19:19:41.492057: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x520eba0 executing computations on platform Host. Devices: 2019-10-15 19:19:41.492085: I tensorflow/compiler/xla/service/service.cc:175] StreamExecutor device (0): Host, Default Version 2019-10-15 19:19:41.559665: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2019-10-15 19:19:41.560029: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5241a20 executing computations on platform CUDA. Devices: 2019-10-15 19:19:41.560040: I tensorflow/compiler/xla/service/service.cc:175] StreamExecutor device (0): GeForce RTX 2080 Ti, Compute Capability 7.5 2019-10-15 19:19:41.560084: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix: 2019-10-15 19:19:41.560088: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 2019-10-15 19:19:41.562457: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2019-10-15 19:19:41.562855: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties: name: GeForce RTX 2080 Ti major: 7 minor: 5 memoryClockRate(GHz): 1.665 pciBusID: 0000:01:00.0 2019-10-15 19:19:41.562913: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.562945: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.562975: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcufft.so.10.0'; dlerror: libcufft.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.563004: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcurand.so.10.0'; dlerror: libcurand.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.563032: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcusolver.so.10.0'; dlerror: libcusolver.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.563062: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcusparse.so.10.0'; dlerror: libcusparse.so.10.0: cannot open shared object file: No such file or directory 2019-10-15 19:19:41.563069: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7 2019-10-15 19:19:41.563073: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1641] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform. Skipping registering GPU devices... 2019-10-15 19:19:41.563080: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix: 2019-10-15 19:19:41.563083: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 0 2019-10-15 19:19:41.563086: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0: N 2019-10-15 19:19:41.563504: I tensorflow/core/common_runtime/direct_session.cc:359] Device mapping: /job:localhost/replica:0/task:0/device:XLA_CPU:0 -> device: XLA_CPU device /job:localhost/replica:0/task:0/device:XLA_GPU:0 -> device: XLA_GPU device
本來以為是因為我的環境變量沒有配置清楚,但是試着測試了一下CUDA和CUDNN都在該在的位置,在終端上也能正常的運行
后面發現這個問題的出現是由於目前版本的Tensorflow還只能支持CUDA10.0,而英偉達的CUDA則是更新到了10.1,要解決這個問題,其實可以通過兩個版本切換的方式來達到,要用哪個切換哪個
解決流程
下載CUDA10.0,我電腦上面已經配置了10.1版本了
wget https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux
添加可執行權限
sudo chmod +x cuda_10.0.130_410.48_linux
以sudo執行這個安裝程序,記得這樣選,只安裝CUDA10.0但是不要安裝驅動程序,選項可以參考我這邊的截圖
然后就會開始安裝了,安裝完成之后,sudo vim ~/.bashrc 修改環境變量,修改前如下
修改后,把這部分我們先前配置的刪除,替換成如下,保存文件
export CUDA_HOME=/usr/local/cuda export LD_LIBRARY_PATH=/usr/local/cuda/lib64:"$LD_LIBRARY_PATH:/usr/loacl/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" export PATH=/usr/local/cuda/bin:$PATH
使用 source ~/.bashrc 來應用環境配置,如果一切就緒,應該使用nvcc --version顯示的就是CUDA 10.0版本了
arenascat@TensorSystem:~$ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:01_CDT_2018 Cuda compilation tools, release 10.0, V10.0.130
如果Pycharm那邊再運行python還是沒成功,就先把cuda目錄文件刪除,這個文件其實是一個軟鏈接,之后,再重建一個鏈接就好了
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-10.0/ /usr/local/cuda
再次運行調用了tensorflow-gpu的代碼,可以看到已經成功的讀取了庫
如果要設置為CUDA 10.1的話,把上面的10.0改一改就行了
如果這個問題不能解決的話,再試試多設置一下環境變量,新建一個文件
sudo vi /etc/profile.d/cuda.sh
把以下內容復制進去並保存
export PATH=$PATH:/usr/local/cuda/bin
export CUDADIR=/usr/local/cuda
這一個位置也要新建一個文件,如果你裝了10.1可能里面會已經有一個cuda10.1.conf不用管它
sudo vi /etc/ld.so.conf.d/cuda.conf
文件里面有這一句
/usr/local/cuda/lib64
應用設置
sudo ldconfig
密碼策略
最小密碼長度
默認情況下,Ubuntu 需要 6 個字符的最小密碼長度,以及一些基本的熵檢查。這些值在文件中受控制,下面概述。/etc/pam.d/common-password
password [success=1 default=ignore] pam_unix.so obscure sha512
如果要將最小長度調整為 8 個字符,請將相應的變量更改為最小值=8。修改概述如下。
password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=8
密碼過期
創建用戶帳戶時,應制定策略,規定用戶具有最小和最大密碼期限,強制用戶在密碼過期時更改其密碼。
-
若要輕松查看用戶帳戶的當前狀態,請使用以下語法:
sudo chage -l username
下面的輸出顯示了有關用戶帳戶的有趣事實,即沒有應用任何策略:
Last password change : Jan 20, 2015 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
-
要設置這些值中的任何一個,只需使用以下語法,然后按照交互式提示操作:
sudo chage username
以下是如何手動將顯式到期日期 (-E) 更改為 01/31/2015、最低密碼期限 (-m) 5 天、最大密碼期限 (-M) 90 天、密碼過期后 30 天的不活動期 (-I) 以及密碼過期前 14 天的警告時間段 (-W) 的示例:
sudo chage -E 01/31/2015 -m 5 -M 90 -I 30 -W 14 username
-
若要驗證更改,請使用前面提到的相同語法:
sudo chage -l username
下面的輸出顯示已為帳戶建立的新策略:
Last password change : Jan 20, 2015 Password expires : Apr 19, 2015 Password inactive : May 19, 2015 Account expires : Jan 31, 2015 Minimum number of days between password change : 5 Maximum number of days between password change : 90 Number of days of warning before password expires : 14
禁用用戶的 SSH 訪問
如果用戶以前設置過 SSH 公鑰身份驗證,則只需禁用/鎖定用戶密碼不會阻止用戶遠程登錄服務器。他們仍然能夠獲得對服務器的 shell 訪問權限,而無需任何密碼。請記住,請檢查用戶主目錄中是否允許這種類型的經過身份驗證的 SSH 訪問的文件,例如 。/home/username/.ssh/authorized_keys
刪除或重命名用戶主文件夾中的目錄,以防止進一步的 SSH 身份驗證功能。.ssh/
請務必檢查殘障用戶建立的任何 SSH 連接,因為它們可能具有現有的入站或出站連接。殺死任何找到的。
who | grep username (to get the pts/# terminal)
sudo pkill -f pts/#
僅對應具有 SSH 的用戶帳戶進行 SSH 訪問。例如,您可以創建一個名為"sshlogin"的組,並將組名稱添加為與文件中的變量關聯的值。AllowGroups
/etc/ssh/sshd_config
AllowGroups sshlogin
然后將允許的 SSH 用戶添加到組"sshlogin",然后重新啟動 SSH 服務。
sudo adduser username sshlogin
sudo systemctl restart sshd.service
nmtui

Ubuntu 20.04 GUI 安裝分步說明
$ sudo apt update $ sudo apt install tasksel
$ sudo tasksel install ubuntu-desktop
https://linuxconfig.org/ubuntu-20-04-gui-installation
在 Ubuntu / Debian Linux 上安裝 TimeShift
TimeShift 尚未正式托管在 Ubuntu 和 Debian 倉庫中。考慮到這一點,我們將運行以下命令來添加 PPA:
# add-apt-repository -y ppa:teejee2008/ppa
https://zhuanlan.zhihu.com/p/94105263