Ubuntu问题集2.0

濮景龙
2023-12-01

版本:Ununtu 20.04 LTS


1. 实时显示网速、内存占用等

  • 添加库:sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
  • 更新软件列表:sudo apt-get update
  • 安装软件:sudo apt-get install indicator-sysmonitor
  • 运行软件:indicator-sysmonitor
  • 点右上角,选择Preference,进去勾选开机启动,并修改展示的格式。

2. 创建虚拟环境

  • 参考:https://linuxize.com/post/how-to-create-python-virtual-environments-on-ubuntu-18-04/
  • 下载python3-venv:sudo apt install python3-venv
  • 切换到用于存储这个虚拟环境的文件夹下,然后创建虚拟环境python3 -m venv hello, 其中hello是这个虚拟环境的名字,可以自选。
  • 开启虚拟环境:source hello/bin/activate
  • 然后终端指令前面就会加上(hello)提示这是在虚拟环境hello中
  • 注意!在这里面再查看python的版本python --version,会发现是3.x.x而不是2.x.x,所以可以用python代替python3,pip代替pip3。
  • 在里面下载包等造作完了想要退出虚拟环境,可以用deactivate

方法2(非sudoer):

  • 下载virtualenv
    pip3 install --user virtualenv
  • 切换到用于存储这个虚拟环境的文件夹下,然后创建虚拟环境virtualenv hello, 其中hello是这个虚拟环境的名字,可以自选。
  • 后面与上面那个方法相同

3. 设置命令走代理

  • 给terminal中执行的命令前面加上proxychains4即可。
  • 在这之前需要一些配置,见第12条。

4. 下载东西时Connection Refused

  • 比如用Python导入自然语言处理包nltk的时候,需要先下载
import nltk  
nltk.download('stopwords')
  • 但是会报错:

[nltk_data] Error loading stopwords: <urlopen error [Errno 111] [nltk_data] Connection refused>
False

  • 因为需要翻墙。在终端里这样就可以了:
    proxychains4 python3 -m nltk.downloader stopwords

5. 通过ssh连接到另一台电脑

  • 两台ubuntu之间
  • 远程机需要安装openssh server
    sudo apt-get install openssh-server
  • 远程机查看当前IP地址:
    ifconfig
  • 本地机通过ssh连接远程机:
    ssh 远程机用户名@远程机IP
  • 然后输入远程机的登录密码
  • 就好了

6. Ctrl+C无法终止进程

  • 在终端中Ctrl+C一般是终止进程,
  • 可以用Ctrl+Z令进程 暂停(前台进行转到后台)
  • 然后用jobs查看被暂停的进程的序号
  • 如果想要继续该进程,可以fg %序号继续运行前台程序。
  • 如果想要杀死该进程,可以kill %序号停止它。
  • 如果想要强行且彻底杀死该进程,可以kill -9 %序号强行结束它。

7. 结束某个后台进程

  • 用top.ps等方法查看正在运行的程序的PID
  • 再用kill PID(终止进程)或kill -9 PID(强行终止进程)方法终止进程,其中PID是正在运行的程序对应的一个序列号。

8. 持久化安装

  • pip install -t 安装地址可以指定安装地址
  • 如果要用Python运行,可以加入代码:
    import sys 
    sys.path.append('安装地址')
    
    

9. 桌面无反应

  • Ctrl + Alt + F3,其中F3可以是F2-F7中的任意一个,进入tty3(或2-7),可以用命令行模式。
  • ps -ef | grep 关键词可以得到关于该关键词的进程
  • 或者top进入应用监测界面,查看CPU和内存占用情况,找到最前面的,可以用kill PID来结束特定PID的进程。
  • Ctrl + Alt + F1回到之前的图形界面,可以看到刚才杀死的进程已经被杀死了。
  • 如果问题还是没有解决,桌面还是没有反应,回到Ctrl + Alt + F3的tty3,重启桌面。(图形化界面会被结束):
    sudo service gdm restart

    sudo service gdm restart

10.装系统时缺少grub文件

  • 因为识别不到EFI分区。
  • 格式化磁盘,重新分配空间。
  • 再重装系统,就能装上了。

11. 查看网络情况和本机IP

  • 先安装net-tools:sudo apt-get install net-tools
  • 查看本机网络情况:ifconfig

12. 令终端命令走代理

  • proxychains4可以在命令行使用代理,拉取一些包的时候很有用。
  • 安装proxychains4:
    sudo apt-get install proxychains4
  • 配置(以ssr为例):
    • 修改配置文件:
      sudo vim /etc/proxychains.config
    • 将最后一行的[ProxyList]中的“socks4 127.0.0.1 9050”改为
      socks5 127.0.0.1 1080
    • 保存并退出(:wq)
  • 使用:在终端的命令之前加上proxychains4即可。
    • 比如: python -m spacy download en_core_web_sm 下载en_core_web_sm时是下载不了的,会出现ConnectionError。但是proxychains4 python -m spacy download en_core_web_sm就可以啦!

13. 释放缓存和swap

  • 切换到root用户:
    sudo su
  • 将缓存中的内容写入磁盘:
    sync
  • 释放缓存:
    echo 3> /proc/sys/vm/drop_caches
    • 其中echo 1:释放页面缓存
    • echo 2:释放目录文件和inodes
    • echo 3:释放所有缓存
  • 关闭swap:
    swapoff -a
  • 重新开启swap:
    swapon -a

14. Windows远程登录ubuntu桌面

  • ubuntu安装xrdp:
    sudo apt-get install xrdp
  • ubuntu打开屏幕共享:Settings > Sharing > 右上角启用 > Screen Sharing 启用
    • 如果没有Screen Sharing或是无法启用Sharing,可以安装vino:
      sudo apt-get install vino
      然后重启reboot
  • Windows用自带的远程桌面连接,搜索RDP
    • 输入IP地址和用户名,连接即可。

15. Sogou拼音皮肤安装不了

  • 搜狗拼音官网下载皮肤:https://pinyin.sogou.com/skins/
  • 下载下来是一个.ssf文件,该文件格式文件相当于一个压缩文件,里面包含一些配置和几十张图片。按理来说可以直接双击运行。
  • 我在双击运行时报错:“Error: skin file should only contain one directory.”
  • 可以把后缀改为.zip,然后解压缩。但我的解压缩不了。
  • 找到搜狗输入法的皮肤的安装位置。
    • 通过dpkg -L sogoupinyin可以查到。
    • 我旧电脑的在/usr/share/sogouimebs/Resources/PC/skin/
    • 新电脑的在/opt/sogoupinyin/files/share/resources/skin/下面。
  • 然后把刚才下载的ssf文件复制过去。
  • 然后还是不行…

16. 指定安装镜像源

  • 直接下载包,可能速度比较慢,可以给命令后面加上
    -i https://pypi.mirrors.ustc.edu.cn/simple/

    • 比如:sudo pip3 install torch torchvision -i https://pypi.mirrors.ustc.edu.cn/simple/
  • 一劳永逸的方法:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

17. 和服务器之间传文件

  • scp命令:scp source ... target
    • 要指定端口的话就加上-P 1234,其中1234是需要指定的端口号
    • 要传输整个目录的话就加上-r
  • 从服务器上下载文件
    scp username@servername:/path/filename /var/www/local_dir(本地目录)
  • 上传本地文件到服务器
    scp /path/filename username@servername:/path
  • 从服务器下载整个目录
    scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
  • 上传目录到服务器
    scp -r local_dir username@servername:remote_dir

18. 下载opencv

  • 命令行:pip install opencv-python
  • 扩展包:pip install opencv-contrib-python

19. 安装特定版本的Python

  • Python官网下载Released Code源码安装包:https://www.python.org/downloads/source/
  • 解压
  • 进去看README
    • ./configure
    • make
    • make test
    • sudo make install
  • 即可。
  • 查看Python版本。并且可以alias python-python3

20. 注意:Ubuntu自带的Python不能卸载

  • 我卸载了Ubuntu16.04自带的Python3.5,然后字体显示有问,桌面也进不去了。因为系统的依赖很多,所以不能卸载。

21. 执行.sh文件

  • 直接命令行./xxx.sh

22. 查看代码量

  • cloc工具:
  • 先下载这个工具:sudo apt-get install cloc
  • 要查看某个文件夹内代码情况:cloc xxxx

23. 用pip升级包

  • 加上-U指令,比如:
    pip install -U numpy

24. pip安装指定版本的包

  • 加上==某版本即可。
  • 比如报错:

ERROR: tensorflow 2.4.1 has requirement grpcio~=1.32.0, but you’ll have grpcio 1.33.2 which is incompatible.

  • 解决:pip3 install grpcio==1.32.0

25. 终端查看目录树

  • tree工具
  • 先下载:sudo apt-get install tree
  • 查看某文件夹的目录树:tree xxx

26. 将远程服务器映射到本地

  • 动机:在命令行交互窗口,想要查看服务器上的照片、修改代码之类的不是很方便。因此想要更方便地访问服务器上的文件。正好Ubuntu可以将远程服务器的文件夹映射到本地。
  • 打开本地文件夹。
  • 左侧最下方点击+ Other Locations
  • 然后文件夹最下边出现Connect to Server ... Enter server address ? ... Connect
  • 输入服务器地址,不同的连接方式可以点击那个问号小圈圈查看。比如通过ssh以某个用户名连接远程服务器就是:
    ssh://username@ipAddress
  • 这样就可以像访问本地文件一样访问服务器的文件了,比如查看图片、修改代码什么的。

27. 命令行查看文件夹下有多少个文件

  • 查看当前目录下有多少个文件:ls|wc -l
  • wc命令是查看文件信息的,wc --help可以查看其用法:
    • wc -cwc --bytes 查看文件字节数
    • wc -mwc --chars 查看文件 character 数
    • wc -lwc --lines 查看文件行数
    • wc -wwc --word 查看文件 word 数
    • wc -Lwc --max-line-length 查看maximum display width

28. ccmake找不到的报错

  • ccmake是一种curses based user interface for CMake,可以交互式进行配置。
  • ccmake .的时候提示找不到ccmake
  • 解决:下载cmake-curses-gui:
    sudo apt-get install cmake-curses-gui

29. conda 复制虚拟环境

  • 目的:复制一个虚拟环境到其他地方
  • 在本机上:
    • 直接克隆:conda create -n new_env_name --clone old_env_name
      其中new_env_nameold_env_name分别为对应的环境名。
  • 复制到其他机器:
    • 激活要导出的环境:
      conda activate xxx
    • 导出环境:
      conda env export > xxxx.yaml
    • 到需要的地方从文件创建环境:
      conda env create -f xxxx.yaml
  • 如果上面方法出现包的冲突,那么可以采用将全部packages都打包的克隆方法:
    • [参考] 知乎. https://zhuanlan.zhihu.com/p/87344422
    • 注意:打包的是二进制文件。所以要求原始平台和目标平台是同样的操作系统。
    • 使用Conda Pack亲测好用!!
      • 通过conda-forge安装Conda Pack,也可以用pip install:
        conda install -c conda-forge conda-pack
    • 打包一个环境(以下命令三选一):
      # Pack environment my_env into my_env.tar.gz
      conda pack -n my_env
      # Pack environment my_env into out_name.tar.gz
      conda pack -n my_env -o out_name.tar.gz
      # Pack environment located at an explicit path into my_env.tar.gz
      conda pack -p /explicit/path/to/my_env
      
    • 重现环境:
      # Unpack environment into directory `my_env`
      mkdir -p my_env
      tar -xzf my_env.tar.gz -C my_env
      # Use Python without activating or fixing the prefixes. Most Python
      # libraries will work fine, but things that require prefix cleanups
      # will fail.
      ./my_env/bin/python
      # Activate the environment. This adds `my_env/bin` to your path
      source my_env/bin/activate
      # Run Python from in the environment
      (my_env) $ python
      # Cleanup prefixes from in the active environment.
      # Note that this command can also be run without activating the environment
      # as long as some version of Python is already installed on the machine.
      (my_env) $ conda-unpack
      

30. 运行脚本时报错$'\r': command not found

  • 原因:这个.sh脚本文件是在Windows下编写的。
    • Windows中换行是\r\n
    • Linux中换行是\n
  • 解决:在命令行中对该脚本进行转换,比如:
    dos2unix 脚本名

31. 查看硬盘容量

  • 命令行 df -hl
  • 查看每个用户文件夹所占空间:
    • 先切换到home文件夹下:cd /home
    • 然后:sudo du -ah --max-depth=1
    • 上面这个指令也可以用于任何一个位置查看当前文件夹下的文件/文件夹的大小

32. 转移miniconda安装位置

  • 首先将miniconda的文件夹移动到新位置

  • 然后更改~/.bashrc文件里面的环境变量:
    vim ~/.bashrc
    将里面miniconda的路径改为新的路径

  • 更新一下:
    source ~/.bashrc

  • 更改新路径下conda的头文件的python路径:
    vim 啥啥啥新路径/miniconda3/bin/conda

    • 把第一行的python路径改为新的。
  • 最后,更新conda:conda update conda

  • ok~

  • 如果后面使用 pip 出现问题,还要更改 pip 的环境变量,再升级 pip 就可以了。

33. 使用 pip 时报错ModuleNotFoundError: No module named 'pip._internal'

  • 通过 python 更新 pip:
    python2 -m pip install --user --upgrade pip
    python3 -m pip install --user --upgrade pip
    
  • 即可。

34. 查看服务器上的 tensorboard 结果

  • 在服务器上运行 tensorboard ,可以指定端口,然后打开浏览器应网址查看结果。但是无法在本地电脑查看。
  • 做一个端口映射就好啦!比如登入服务器的时候:
    ssh -L 16009:127.0.0.1:6009 username@remote_server_ip
  • 所以就可以在服务器端正常启动tensorboard:
    tensorboard --logdir=xxx --port=6009
  • 然后在本地浏览器输入:
    127.0.0.1:16009
  • 就可以啦~

35. 使用GPU训练时报错RuntineError: CUDA run out of memory.

  • 在代码里清一下缓存就可以了:
    import gc
    gc.collect()
    torch.cuda.empty_cache()
    

36. 桌面无反应时电脑的安全重启

  • 按住Ctrl + Alt不要放,

  • 然后依次按 PrtSc, R, E, I, S, U, B 这七个键。

  • 解释:

    • 是一种系统请求, 直接交给内核处理。
    • 键盘上一般都有一个键SysRq, 和PrintScreen(截屏)在一个键位上,这就是系统请求的键。
    • 这个方法可以在死机的情况下安全地重启计算机, 数据不会丢失。

    其实 SysRq是一种叫做系统请求的东西, 按住 Alt-Print 的时候就相当于按住了SysRq键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。

    • 这个时候 reisub 中的每一个字母都是一个独立操作,分别表示:
      • r : unRaw 将键盘控制从 X Server 那里抢回来
      • e : tErminate 给所有进程发送 SIGTERM 信号,让它们自己解决善后
      • i : kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭
      • s : Sync 将所有数据同步至磁盘
      • u : Unmount 将所有分区挂载为只读模式
      • b : reBoot 重启

37. 在服务器上用jupyter-notebook选用虚拟环境

  • 在服务器上进入虚拟环境,然后下载ipykernel
    • conda activate env-xxx
    • pip install ipykernel
  • 将虚拟环境添加到 ipython 的 kernel 中:
    • python3 -m ipykernel install --user --name env-xxx --display-name xxx
  • 登入服务器的时候做一个地址映射,比如把服务器的6010端口映射到本地的16010端口:
    • ssh 16010:127.0.0.1:6010 username@ip
  • 然后在服务器启动notebook,指定端口,比如:
    • jupyter notebook --port=6010
  • 会给出一个notebook现在运行的网址,复制这个网址,把其中的6010改为16010(此例中)。
  • 选择1:在网页运行。
    • 把这个网址复制到本地的浏览器,
    • 然后选择kernel为前面添加过的xxx
  • 选择2:在 VS Code中运行。
    • 打开VS Code,按Ctrl + Shift + P进入命令模式,输入jupyter: specify a local or remote kernel server (大概是这个意思)
    • 然后选择指定一个比如URL的链接,将那个链接复制进去就好了~

38. 在python代码中下载数据集失败

  • 报错:

CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1125)

  • 解决:生成一个certificate。
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

39. 在命令行输出结果中查找

  • Ctrl + Shift + F

40. 自动刷新输出——watch命令

  • 在命令行输入watch即可查看用法
  • 语法为:watch [options] command
  • 比如:watch -n 10 nvidia-smi每十秒刷新一次显存使用情况。

41. 用tee命令在不影响终端输出内容的情况下将结果写到文件里

  • 比如:
  • python test.py | tee result.txt

42. 打乱一个文本文件的所有行

  • 使用shuf命令
  • 比如:
shuf input_file.txt -o  output_file.txt

43. anaconda 重命名虚拟环境

  • 重命名 = clone旧环境并赋予新名字 + 删除旧环境,即:

    conda create -n <new_name> --clone <old_name>
    conda remove -n <old_name> --all
    
    • 其中"<new_name>“和”<old_name>"分别为新名字和旧名字。

44. 使用GPU训练时报错:RuntimeError: DataLoader worker (pid 1123843) is killed by signal: Killed. ,且网页等都崩溃了。

  • 原因:显存和swap都炸了(用system-monitor看的)。
  • 解决:减小代码中的DataLoadernum_workers

45. 更改root用户密码

  • 如果之前没有设置过root的密码的话,
  • 就在当前用户下sudo passwd
  • 然后设置新的密码
  • su就可以用新的密码进入root了。

46. 程序切换前后台

  • 把程序放到后台运行:Ctrl +z
  • 把某个程序切换到前台运行fg %<number>
    • 其中<number>是程序编号

47. 命令行设置CPU并行计算

  • 并行计算的命令:parallel
  • 安装方式:sudo apt-get install parallel
  • 使用方法:
    parallel [options] [command [arguments]] < list_of_arguments
    • 设置核数:-jobs n
      • 其中n为CPU核数,即并行线程数。

48. 对MRI图像通过deface进行anonymize

  • 下载deface的工具mri_deface
  • 安装:
gunzip mri_deface-v1.22-Linux64.gz
cp mri_deface-v1.22-Linux64.gz
mri_deface chmod a+x mri_deface
gunzip talairach_mixed_with_skull.gca.gz
gunzip face.gca.gz
  • 使用:
mri_deface my_T1.nii talairach_mixed_with_skull.gca face.gca my_T1_defaced.nii
  • tip: 可以作为freesurfer pipeline的一部分。

49. 查看某个PID对应进程的详细信息

  • 通过topnvidia-smi等方法可以查看到进程对应的PID
  • 查看该PID对应进程的详细信息:ll /proc/PID
    • 其中PID为要查询的的进程号。

50. 禁用搜狗输入法的简繁切换快捷键

  • 搜狗输入法默认的简体繁体切换的快捷键是Ctrl+Shift+F,但是这个会和PyCharm的全局搜索键冲突。
  • 现在想要禁用or修改搜狗输入法的简繁切换键。
  • 方法1:
    • 打开输入法设置界面,找到简繁切换快捷键的设置,修改。
  • 方法2:
    • 在设置界面找不到那个选项。
    • 那就修改配置文件。
    • 先修改搜狗拼音的配置文件:
      vim ~/.config/sogoupinyin/conf/env.ini
      ShortCutFanJian=1改为ShortCutFanJian=0
    • 然后修改fcitx的配置文件:
      vim ~/.config/fcitx/conf/fcitx-chttrans.config
      #Hotkey=CTRL_SHIFT_F的注释取消,并改成一个不常用的快捷键,比如Hotkey=CTRL_SHIFT_Alt_F
    • 然后重启搜狗输入法。
    • 就ok了。

51. jupyter notebook 配置虚拟环境

  • 终端激活虚拟环境,然后安装ipykernel:
    conda install ipykernel
  • 把环境写入ntoebook的kernel中:
    python -m ipykernel install --user --name <env_name> --display-name <display_name>
    • 其中,<env_name>为虚拟环境的名称,<display_name>为要显示的名称。
  • 然后运行jupyter notebook就可以了。

52. pycharm专业版学生认证激活

  • 官网用学校邮箱进行认证:https://www.jetbrains.com/zh-cn/community/education/#students
  • 下载professional版本的pycharm安装包(.tar.gz文件)。
  • 解压缩文件,并cd进入(下面称为{install_path}
  • 进入{install_path}/bin文件夹,
  • 运行安装脚本:./pycharm.sh
  • 等着,好了之后用JB Account登录

53. 运行PyCharm

  • 当前问题:PyCharm图标固定不到侧边栏,在app中也搜不到。

  • 解决:把install的路径加到用户的环境变量中,以后每一次用命令行打开。

  • 方法:

    • 记pycharm安装的路径为:${install_path}
    • 修改用户环境变量文件:vim ~/.bashrc
    • 添加:
      # PyCharm
      export PYCHARMPATH=${install_path}/bin/
      export PATH=$PYCHARMPATH:$PATH
      

    其中${install_path}为自己pycharm的安装路径。

    • 保存,退出,并更新:
      source ~/.bashrc
    • 以后再运行的时候,打开终端,直接输入pycharm.sh就可以啦。

54. conda激活虚拟环境时报错CommandNotFoundError

  • 目标命令:进入一个虚拟环境conda activate mri
  • 报错信息:

CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’.
To initialize your shell, run
$ conda init <SHELL_NAME>

  • 原因:上一次进入虚拟环境后没有正常退出。
  • 解决:
    source activate
    conda deactivate
    • 然后就可以正常使用啦。

55. anaconda安装package时显示找不到

  • conda-forge也添加到channel中:conda config --append channels conda-forge
  • 于我而言,这个还是解决不了问题。
  • 采用了pip install xxx就解决了。

56. pycharm代码和远程同步

56.1. 基本配置

  1. 假设服务器 IP 地址为 90.0.0.50,已经开启 SSH 服务,并且安装了 Python,本地 Project 名为 ML-Project
  2. 首先配置 Pycharm 服务器的代码同步,打开 Tools -> Deployment -> Configuration,点击左边的 + 添加一个部署配置,输入配置名 NameType 选择 SFTP,然后确认。
  3. 配置远程服务器的 IP,端口,用户名和密码,Root Path 是项目文件在远程服务器中的根目录,根据需求配置,例如 /home/ubuntu/ML,这个目录需要登录用户的创建权限。
  4. 点击 Mappings,将 Local Path 设置为 Windows 下的工程目录,例如 D:\Projects\ML-Project,自己视情况设定。将 Deployment path on server 设置为远程服务器中的项目目录,例如 /ML-Project,注意目录前要加 /,不然后面运行程序会找不到文件,Web path on server 暂时不用设置,貌似 Web 相关的程序会用到,需要用到的话请自行 Google。
  5. 点击 Excluded Paths 可以设置一些不想同步的目录,例如软件的配置文件目录等。
  6. 另外打开 Tools -> Deployment -> Options,将 Create Empty directories 打上勾,要是指定的文件夹不存在,会自动创建。

56.2. 上传和下载文件

  1. 有几种方法可以实现本地和远程文件的同步,手动和当文件保存后自动触发,手动触发需要点击 Tools -> Deployment -> Upload to sftp,自动触发勾选 Tools -> Deployment -> Automatic Upload
  2. Pycharm 还提供了对比文件的功能,本人几乎没有需求,请自行 Google 探索。

56.3. Pycharm 远程调试

  1. 这里介绍远程解释器的使用,也就是使用服务器上面安装的 Python 解释器。
  2. 选择 File -> Settings,选择 Project -> Project Interpreter,然后在右边,点击那个小齿轮进行设置。
  3. 点击 Add Remote,选择 SSH Credentials,填写主机的 SSH 配置信息,Python interpreter path 选择自己需要的远程服务器的解释器,然后在运行程序的时候,也就是点击 Run 的时候选择刚刚配置的解释器就能远程调试了,基本跟使用本地解释器没有什么区别。

57. 命令行删除文件夹和子文件夹下的所有某种文件

  • find . -name '*.png' -exec rm -rf {} \;

58. 查看当前正在运行的jupyter notebook的位置

  • jupyter notebook list

59. ubuntu桌面鼠标点不动

  • 鼠标点不动,但是显示还是在变化的,键盘也能用。
  • 方法1:
    • Ctrl + Alt + F1进入console,
    • 然后Ctrl + Alt + F7切回来。
    • 这个方法我没有试过,不知道可行不。
  • 方法2:
    • Ctrl + Alt + T打开Terminal
    • sudo pkill Xorg
    • 输入密码
    • 回车
    • 然后会重启桌面,再login就好了。这样的话之前的进程也都会被kill。

60. 在jupyter lab中添加某个虚拟环境的kernel

  • 首先,在命令行activate到那个虚拟环境
    • 比如source xxx/bin/activate
      • 其中xxx是虚拟环境所在路径名。也可以通过conda对虚拟环境进行激活。
  • 然后,在该虚拟环境中下载ipykernel
    • 比如pip install ipykernel
  • 然后,将该kernel加入名单:
    • 比如python -m ipykernel install --user --name venv --display-name "seg"
      • 其中venv是虚拟环境的名称,"seg"为将要在kernel中展示的名称,前者视情况而定,后者自己定义即可。
  • 最后,运行jupyter lab:
    • jupyter lab
    • 选择新的kernel即可。

61. 安装.deb安装包

  • sudo dpkg -i xxx.deb

62. Docker的安装和使用

  • 安装:
    • 菜鸟教程,https://www.runoob.com/docker/ubuntu-docker-install.html
 类似资料: