抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Ubuntu入门

你可以使用neofetch查看系统信息,我这里是一台WSL2

neofetch

无头环境(Headless Environment)是指没有GUI的计算环境

常用快捷键

快捷键 意义
ctrl+C 关掉当前运行的程序
ctrl+R 搜索过去运行过的命令

常用命令

命令 意义
ls -a 查看当前目录内容
cd 路径名 路径跳转
clear 清空窗口
find 文件名 找出当前文件夹内符合条件的文件 支持正则
whoami 查看当前用户身份
pwd 查看当前工作目录
cat test.txt 查看文件内容
cat > new.txt 新建文件
cat file1 file2 > file 合并文件
mkdir 文件夹名 创建文件夹 -p可以创建多级文件夹
cp src dst 复制文件
kill 进程名 杀死进程
unzip 解压zip文件 需要先安装unzip
rm test.txt 删除文件 -r递归删文件夹 -f强删
nvidia-smi 查看当前N卡驱动
echo <变量名称> 打印一个变量 echo $xxx 打印环境变量
eval $(命令内容) 执行一个命令 可以传入很多参数
bash <程序名称> 用bash执行一个程序 可以再前面加一些临时的变量,如venv_dir=- bash ./webui.sh
chmod u+x <文件名> 给文件持有者添加执行权限 也有数字模式,比如chmod 777 <文件名>
curl <链接> 访问一个链接 使用-X POST可以用POST请求类型,使用-v可以显示详细信息
export no_proxy=“$no_proxy, x.x.x.x” 对某个链接关闭代理 修改后存储在~/.bashrc中
source ~/.bashrc 让shell读取并执行脚本 这里作用是立刻应用之前对~/.bashrc的修改
df -h / 查看磁盘剩余空间

文件访问

Windows访问Linux文件,路径为\\wsl$\Ubuntu-20.04\home\username

Linux访问Windows文件,路径为/mnt/c/Users/username

在本地和远端服务器通过SSH传递文件

scp <local path> xxx.com:/xxx

常用软件

apt-get

Linux内置的包管理器,可以非常优雅地安装管理各种包、软件

# 安装git
sudo apt-get install git
# 安装tbb
sudo apt-get install libtbb-dev
# 查看所有已安装软件(这个信息量巨大,而且有重复信息,不简易使用)
$sudo apt-cache search all
# 查看所有已安装软件(去重)
$sudo apt-cache search all | wc
#查看所有名字中带gcc的软件
$sudo apt-cache search all | grep gcc

如果遇到报错:“E: Unable to locate package”,可以执行一次更新

sudo apt-get update

VS Code

  1. 在Windows系统中安装VS Code,并选择添加PATH
  2. 在WSL中如果要打开当前目录,直接输入
$code .

推荐安装VS Code的WSL插件

使用快捷键CTRL+SHIFT+P,打开命令面板,键入WSL,进行一些设置

C++

包名 描述
g++ C++编译器
libtbb-dev tbb并行库
cmake 项目构建
git 版本管理
gfortran fortran编译器
liblapack-dev、liblapacke-dev BLAS和LAPACK线代库
gdb 调试器

Git

配置

使用Git前需要先配置git config,可以输命令,也可以无脑用vscode改.gitconfig文件

git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"

生成SSH公钥

SSH公钥对Linux很重要,比如SSH连接、Git都会用到

生成方法很简单,生成后你可以将.ssh/id_rsa.pub的内容拷贝到需要密钥的网站

ssh-keygen -t rsa -C <邮箱>

拉取项目

项目拉取有两种常见方法

  • ssh:需要配置SSH Key,只能拉自己的项目,但不提交时不需要账号密码

  • https:非常方便,只需要git clone,而且可以拉别人的项目,但提交时需要输入账号密码

    • 其实你也可以在输入一次密码后输入
git config --global credential.helper store

我们这里说的密码是token,可以去Github生成token

提交

# 添加要提交的内容
git add <文件名/文件夹名>
# 提交所有内容(不包含忽略文件),并设置提交信息为“这是一段话”
git commit -a -m <信息>

分支

# 展示所有分支
git branch -a
# 切分支
git checkout <分支名>

Tmux

经常使用Windows系统的同学,直接使用Linux会感觉我好像一次只能干一件事(尤其是你运行了一个Web后端),因为Windows所有窗口都是一个个单独的进程,UI和逻辑也是多线程,于是我们可以轻松在多个前台任务中切换

其实Linux也是一个多线程多进程的操作系统,我们也可以同时执行多个前台任务,使用的就是Tmux

你可以认为Tmux就是一个个窗口,你可以打开、挂起、恢复窗口,你可以开一个窗口用于开Web后端,然后开另一个窗口做其他事情

命令

# 展示当前所有的窗口
tmux ls
# 杀掉某个窗口
tmux kill-window -t <窗口编号>
# 新建某个窗口
tmux newn -s <session名称>
# 挂起,窗口内的程序会继续运行,直接关窗口也是这样
tmux detach
# 打开最近一个窗口
tmux a
# 关闭当前窗口
exit

快捷键

快捷键 描述
ctrl+B 进入命令模式
shift+’ 创建一个split窗口
命令模式+ C 创建一个新的窗口
命令模式下 + D 挂起当前窗口
命令模式下 + [ 开启上下滚动模式(可以看之前的命令行输出,按ctrl+C退出)
命令模式下 + / 搜索内容,按n匹配下一个
命令模式下 + x + y 强制退出tmux窗口
命令模式下 + p 回到上一个tmux窗口

Pip

# 下载包
pip install <包名>
# 查看是否有某个包
pip show <包名>
# 查看某个包的版本
pip list | grep <包名>

Anaconda3

非常好用的Python环境管理工具,你可以创建多个虚拟Python环境,不用再考虑版本问题了

# 创建一个环境,python版本指定为3.10
conda create -n <环境名> python=3.10 pip
# 切换环境,成功切换后bash左侧会有一个(环境名)
conda activate <环境名>
# 删除环境
conda remove -name <环境名> --all
# 查看所有环境
conda env list

SSH

我们经常使用SSH连接其他远程主机,但SSH经常会断掉,其实我们只需要在config里加一个参数,即可让SSH连接定时发送一段空数据包,以实现维持连接的效果

Host xxx.com
ServerAliveInterval 40

压缩软件

# 解压 xxx.tar.xz
tar -xf xxx.tar.xz
# 解压 xxx.zip
unzip xxx.zip

CUDA

# 查看cuda版本
nvcc -V

评论