Ubuntu包管理

apt

1
2
3
4
5
6
7
apt list --> 列出系统安装的包
apt show package --> 列出package包的详细信息
apt update --> 更新包列表信息
apt upgrade --> 升级可更新的包
apt install package --> 安装package包
apt remove package --> 移除package包
apt autoremove package --> 移除package及其关联包

apt-key

1
2
3
apt-key list --> 列出apt-key列表
sudo apt-key del key --> 删除key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys the_publickey

source.list

1
2
3
4
/etc/apt/source.list --> 官方源列表
/etc/apt/source.list.d --> 第三方ppa repository
sudo add-apt-repository ppa:<ppa to install> --> 添加ppa repo
sudo add-apt-repository -r ppa:<ppa to remove> --> 删除ppa repo

当通过命令删除ppa不能生效时,可以手动删除/etc/apt/source.list.d中对应的文件。

Linux查看系统信息

在使用Linux时,常常需要查看主机的一些状态信息,以确定主机运行状态,发现可能存在的问题以及原因,从而排除问题。

操作系统信息

1
2
3
4
uname -a --> 操作系统的详细信息
uname -r --> 操作系统的发现编号
uname -v --> 操作系统的版本
uname -m, p, i --> 操作系统的机器类型,处理器类型,硬件类型(64位机器显示x86_64)

硬盘信息

1
2
3
4
5
6
7
8
sudo blkid /dev/sda --> 输出磁盘/dev/sda的uuid
ls -l /dev/disk/by-uuid --> 输出系统所有磁盘的uuid
lsblk -f --> 输出系统磁盘的详细信息,包括uuid
df -h --> 以k,m,g为单位显示系统的磁盘使用状态
fdisk -l --> 当前系统连接的各个硬盘的信息
lsblk --> 当前系统的磁盘挂载状态
du -h -d 1 dir --> 查看dir目录的文件容量
tree -L 2 --> 显示当前目录的树形结构

CPU信息

1
2
3
4
grep 'physical id' /proc/cpuinfo | sort -u | wc -l --> 物理CPU个数
grep 'core id' /proc/cpuinfo | sort -u | wc -l --> CPU核心个数
grep 'processor' /proc/cpuinfo | sort -u | wc -l --> CPU线程数
dmidecode -t processor --> CPU的详细硬件信息

内存信息

1
2
3
free --> 系统当前的内存使用量和剩余量
dmidecode -t memory --> 内存的详细硬件信息
cat /proc/meminfo --> 系统的内存信息

GPU信息

1
2
3
lspci -vnn | grep VGA --> 查看当前VGA设备,有的显卡可能不会显示出来
lshw -C display --> 查看显卡设备,及其相关信息
nvidia-smi --> 输出Nvidia GPU的设备运行状态信息,可以使用watch命令获取更新的状态信息

进程信息

1
2
ps -A --> 系统的所有进程信息
top --> 动态显示系统的进程信息

网络信息

1
2
ifconfig --> 系统的网络接口信息
netstat --> 系统的网络端口状态信息

本文中的各种命令的详细用法,可以参见man7.org, 或者Linux命令大全

pandas Tutorial

pandas是非常好用的Python统计学扩展库,内置了多种非常便利的数据结构和函数,可以很容易地进行数据统计操作,是机器学习的强大工具。

Numpy

Numpy是一个应用更加广泛的数值计算库,pandas的部分数据结构基于Numpy,pandas可以直接支持对Numpy数据结构的转换。Numpy中最重要的数据结构是array,经常被使用。

SSH配置

ssh免密码登录

  1. 生成密钥对: ssh-keygen
  2. 将生成的密钥对放在本地的~/.ssh目录下
  3. 在本地~/.ssh/config中配置远程主机的IP地址和对应的私钥
  4. 将生成密钥的公钥,如id_rsa.pub上传到服务器的上。并将其加入到服务器中对应用户的~/.ssh/authorized_keys中,可使用指令cat id_rsa.pub > ~/.ssh/authorized_keys

scp免密码

  1. 在本地~/.ssh/config中配置远程主机的IP地址和对应的私钥
  2. 与使用ssh相同,将公钥上传到服务器中,并进行相关配置

sftp免密码

  1. 在服务器上安装openssh-sftp-server: sudo apt-get install openssh-sftp-server
  2. 通过以上的方式配置密钥对
  3. 在命令行中可以直接使用sftp命令连接服务器,但是推荐使用fileZilla
  4. 在fileZilla中Edit --> settings --> SFTP --> Add key file添加私钥,然后选择Interactive方式登录SFTP服务器即可

其他

以上服务均基于SSH协议,这些服务可以同时使用相同的密钥对。网上有sftp的安装配置文章,但是十分复杂麻烦,如果没有特殊需求,不修改任何配置是最好的方式。