第一部分:文献检索与下载

课程内容

课程目的

二、Linux入门

来自RUNOOB的Linux教程

简介 Linux (Linux is not Unix)

  • 内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。
  • Linux 内核最初由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
  • Linux 系统是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
  • Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux 发行版

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。

Linux内核心

  • 市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等

知名的Linux发行版本

Ubuntu 安装

虚拟机 (Virtual Machine)

  • 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

常见的虚拟机软件

  • VMware:功能强大被视为虚拟机应用程序的行业标准。
  • Virtual Box:Sun Oracle出品的开源、轻量级虚拟机平台。
  • Parallels Desktop: Mac 平台虚拟机

下载:Virtual Box 6.0.8 下载:Ubuntu 18.04 Bionic Beaver

How to?

如何使用Ubuntu系统

Linux常用命令

  • ls: 展示Linux 系统目录结构
  • 树状目录
  • 在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点/开始的倒置的树状结构。

两个特殊的目录:

  • 当前目录,可以使用一个点 . 来表示
  • 另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示。

如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件

  • cd: 切换目录;
  • pwd, mkdir, rmdir, cp, rm, mv
  • 绝对路径: 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
  • 相对路径: 路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man
  • ssh: 远程登录, ssh ubuntu@***

Linux下常用的终端编辑器

  • nano
  • emacs
  • vim

Linux 入门教材:

三、Docker 入门

  • Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从Apache2.0协议开源。
  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 架构

  • Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
  • Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker | OOP ——– | — 容器 | 对象 镜像 | 类

组件 | 作用 ——– | — Docker 镜像(Images) | Docker 镜像是用于创建 Docker 容器的模板。 Docker 容器(Container) | 容器是独立运行的一个或一组应用。 Docker 客户端(Client) | Docker 客户端通过命令行或者其他工具使用Docker API 与 Docker 的守护进程通信。 Docker 主机(Host) | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 Docker 仓库(Registry) | Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。 Docker Hub 提供了庞大的镜像集合供使用。

Docker 安装

  1. Docker 安装: sudo apt-get install docker.io
  2. 启动docker后台服务:sudo service docker start
  3. 测试运行: sudo docker run hello-world

Docker 镜像使用

列出镜像列表

  • ‘sudo docker imges’ 选项说明 REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小
  • 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。 使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下:
  • sudo docker run -t -i ubuntu:15.10 /bin/bash 查找镜像 我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/ 我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。
  • sudo docker search httpd 获取镜像
  • sudo docker pull ubuntu:15.10 创建镜像 1.从已经创建的容器中更新镜像,并且提交这个镜像 2.使用 Dockerfile 指令来创建一个新的镜像 更新镜像 更新镜像之前,我们需要使用镜像来创建一个容器
  • docker run -t -i ubuntu:15.10 /bin/bash
  • docker commit -m="message: update" -a="author" containerid zhhzhc/ubuntu:v2
  • docker images查看

Docker 容器应用举例

运行一个web应用

在docker容器中运行一个 Python web应用

  • docker pull training/webapp # 载入镜像
  • docker run -d -P training/webapp python app.py -d:让容器在后台运行。 -P:将容器内部使用的网络端口映射到我们使用的主机上。 查看 WEB 应用容器
  • sudo docker ps
  • 查看端口,通过浏览器访问应用 通过 -p 参数来设置不一样的端口
  • docker run -d -p 5000:5000 training/webapp python app.py

Google Mirror

  • sudo docker-compose -d docker-compose.yaml文件内容为:
    version: "2"
    services:
      google_mirror:
          image: jim3ma/google-mirror
          container_name: google-mirror
          ports:
              - "80:80"
    
  • sudo docker run -d -p 80:80 jim3ma/google-mirror

思考使用其他的镜像?

  • `sudo docker run -d -p 12345:12345 oddrationale/docker-shadowsocks -s 0.0.0.0 -p 12345 -k 12345 -m aes-256-cfb

四、Google 使用技巧

  • intitle: 搜索的范围局限在标题上,只对网页的标题进行搜索并且配对,最后将结果返回给用户。 intitle: scientific computing google会检索所有的网页,只要出现 scientific 或者 computing 其中的一个就会被匹配
  • allintitle: 标题包含所有关键词。allintitle: scientific computing
  • site: 把搜索限制在站点域名之内。scientific computing site: arxiv.org
  • "": 精确匹配双引号中的关键词 其它: inurl, intext, inanchor, filetype:pdf

Google Scholar 使用技巧

五、文献与图书下载

Sci-hub

  • 简介: Sci-Hub是一个线上数据库,其上提供62,000,000篇科学学术论文和文章。网站通过“.edu”代理服务器访问相关页面,也就是借用各个学校的权限,将之集成,实现文献免费下载。网站每天会上传新的论文文章,通过输入文献的链接或者DOI或者PubMed号可以下载几乎所有SCI论文。
  • 作者: 哈萨克斯坦软件开发暨神经技术研究生亚历珊卓·艾尔巴金(Alexandra Elbakyan)建立,在2011年9月5日正式上线
  • 镜像: Sci-Hub站点的本体由于受到了各大出版垄断集团的打击,经常无法访问,国内有一个网站会列出大陆地区可以正常访问的站点。www.sci-hub.tw
  • 图书下载: 2013年开始,Sci-Hub与俄罗斯的教育书籍和档案数据库创世纪图书馆(Library Genesis - LibGen)合作,在其开发的网站gen.lib.rus.es可以下载大部分英文书籍。

使用方法

  • 可以采用论文标题,doi以及URL网址等方式进行检索下载,其中最有效的方式是URL网址,其次是doi (digital object identifier),最后才是论文标题。
  • 在出版社域名后加.sci-hub.tw下载文献。 https://www.springer.com.sci-hub.tw/gp/book/9783642640988

sci-hub是一个很好的文献下载工具,但是它并不是很好的文献检索工具,直接输入作者或者关键字是没用的,输入卷期号也并不能得到相关文献,因此,推荐大家将google scholarsci-hub结合起来使用,采用google scholar进行检索,得到相关文献的URL网址之后,再采用sci-hub来免费下载文献

六、数学新闻订阅

  • 英文 NA-Digest
  • 中文 CAM-Digest
  • The CAM/NA Digest are collections of articles on topics related to computational and applied mathematics and those who practice it