Ubuntu入门
你可以使用neofetch查看系统信息,我这里是一台WSL2
无头环境(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 |
# 查看所有已安装软件(这个信息量巨大,而且有重复信息,不简易使用) |
如果遇到报错:“E: Unable to locate package”,可以执行一次更新
sudo apt-get update |
VS Code
- 在Windows系统中安装VS Code,并选择添加PATH
- 在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" |
生成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
提交
# 添加要提交的内容 |
分支
# 展示所有分支 |
Tmux
经常使用Windows系统的同学,直接使用Linux会感觉我好像一次只能干一件事(尤其是你运行了一个Web后端),因为Windows所有窗口都是一个个单独的进程,UI和逻辑也是多线程,于是我们可以轻松在多个前台任务中切换
其实Linux也是一个多线程多进程的操作系统,我们也可以同时执行多个前台任务,使用的就是Tmux
你可以认为Tmux就是一个个窗口,你可以打开、挂起、恢复窗口,你可以开一个窗口用于开Web后端,然后开另一个窗口做其他事情
命令
# 展示当前所有的窗口 |
快捷键
快捷键 | 描述 |
---|---|
ctrl+B | 进入命令模式 |
shift+’ | 创建一个split窗口 |
命令模式+ C | 创建一个新的窗口 |
命令模式下 + D | 挂起当前窗口 |
命令模式下 + [ | 开启上下滚动模式(可以看之前的命令行输出,按ctrl+C退出) |
命令模式下 + / | 搜索内容,按n匹配下一个 |
命令模式下 + x + y | 强制退出tmux窗口 |
命令模式下 + p | 回到上一个tmux窗口 |
Pip
# 下载包 |
Anaconda3
非常好用的Python环境管理工具,你可以创建多个虚拟Python环境,不用再考虑版本问题了
# 创建一个环境,python版本指定为3.10 |
SSH
我们经常使用SSH连接其他远程主机,但SSH经常会断掉,其实我们只需要在config里加一个参数,即可让SSH连接定时发送一段空数据包,以实现维持连接的效果
Host xxx.com |
压缩软件
# 解压 xxx.tar.xz |
CUDA
# 查看cuda版本 |