今天是生信小组学习的第二天,今天学习了如何召唤Linux。在正式开始前,我利用MindMaster软件做了一个思维导图整理出了今天教程的提纲。
1. 什么是Linux,什么是服务器?
Linux
简单点说,Linux是一种操作系统,它与Windows、Mac共同组成目前最主流的三大操作系统,可以这么说,只要你使用电脑,就离不开它们。作为不同的操作系统,自然也就存在很多不同的地方。其中Windows是目前PC使用最多的一种系统,因为它是通过图形操控的,很容易上手使用;Mac系统也致力于方便人们的体验方面;而Linux的操作方式是通过命令行执行的,需要一定的理论基础,所以常常就只有程序员、数据分析人员等等的专业人员才会用到它。相比Windows和Mac而言,Linux优点就在于,这个系统是免费的、开源的、而且稳定安全。
服务器
服务器的英文名称是Supercomputer,顾名思义,就是超级计算机,和普通计算机相比,他的处理器、内存、储存容量等等都要比PC的配置高很多。因此,服务器能满足一些特殊的需求,比如大数据的云计算、分析等。同时,服务器还能满足多个用户同时使用,且互不干扰。目前,由于Linux系统的优点,目前市场上几乎所有的服务器都是使用的Linux操作系统。
2. 学习生信前为什么要先学Linux?
2.1 许多生信相关的软件如fastqc、smatools等都是基于Linux开发的,只能在Linux操作系统下才能运行。
2.2 Linux是免费开源的,需要软件成本低,且由于开源,几乎世界上使用Linux的人都能参与到改进Linux的工作中,从而使得Linux也相对更加稳定和安全。
2.3 Linux主要通过命令行执行指令,对图形界面需求低,这也就为计算机节约了许多资源,更有利于计算分析。
2.4 Linux可以通过命令行批量、大量的处理文件,这就使得工作更加的高效便捷,这也是图形操作系统无法实现的。
3. 如何召唤Linux?
根据操作系统的不同召唤Linux的方法分为以下几种:
Windows
3.1 Windows10系统可以直接从系统中调出Linux子系统使用,具体方法见生信小白第一天-0成本召唤linux
3.2 非Windows10用户可以通过安装虚拟机的方式安装一个Linux系统,也就是常说的安装双系统。详细步骤见Slash·Young 虚拟机中安装Linux教程
3.3 Mac 系统可以直接从terminal进入,然后使用Linux。
3.4 当然也可以在闲置电脑上安装Linux纯系统,具体步骤可上网检索。
4. 如何登陆服务器?
一般我们登陆的服务器都是云服务器,我们需要通过一些软件来进行远程登陆。Windows常用putty、xshell,Mac则是用terminal或iterms登录。在这里用的是putty程序远程登录的。具体操作如下
4.1 在官网下载安装putty(过程不赘叙)
5. Linux的一些基本操作
由于我的电脑是Windows系统的,需要安装一个Linux系统,通过几种方法对比,我选择调用Windows系统中的Linux子系统的方法来满足需求。具体操作步骤如下:生信小白第一天-0成本召唤linux
基本操作
5.1 显示当前路径(pwd)
xiangwei@pc:~$ pwd
/home/xiangwei
xiangwei@pc:~$
输入命令pwd后,输出的结果/home/xiangwei就是当前的工作路径
5.2 创建目录(mkdir)与显示(ls)
xiangwei@pc:~$ ls
SRR3589958 System database mafft_7.450-1_amd64.deb miniconda3
xiangwei@pc:~$ mkdir bioinformation
xiangwei@pc:~$ ls
SRR3589958 bioinformation mafft_7.450-1_amd64.deb
System database miniconda3
xiangwei@pc:~$
当我输入ls指令后输出了一些内容,接着输入mkdir bioinformation指令后,显示结果就多出了一个绿色的bioinformation,这表明我成功创建了一个bioinformation目录。
5.3 删除文件\目录(rm\rm -r)
xiangwei@pc:~$ rm SRR3589958
xiangwei@pc:~$ ls
System bioinformation database mafft_7.450-1_amd64.deb miniconda3
xiangwei@pc:~$ rmdir
rmdir: missing operand
Try 'rmdir --help' for more information.
xiangwei@pc:~$ rmdir database
rmdir: failed to remove 'database': Directory not empty
xiangwei@pc:~$ rmdir bioinformation
xiangwei@pc:~$ ls
System database mafft_7.450-1_amd64.deb miniconda3
rm 文件名就是删除文件,rmdir 空目录就是删除空的目录,否则就会输出failed to remove 'database': Directory not empty的错误指令,rm -r 就是删除非空的目录。
注意:*如果rm -rf 后面不加目录名就会导致整个服务器中的东西都会被删除,其中-r 表示递归,rm加上此命令就可以删除多级的目录,而-f 表示强制删除,且无提示。
5.4 复制文件以及转移文件(cp / mv)
xiangwei@pc:~/database$ cd
xiangwei@pc:~$ ls
System database mafft_7.450-1_amd64.deb miniconda3
xiangwei@pc:~$ cp System System1
xiangwei@pc:~$ ls
System System1 database mafft_7.450-1_amd64.deb miniconda3
xiangwei@pc:~$ mv System1 database
xiangwei@pc:~$ cd database
xiangwei@pc:~/database$ ls
System1
如图,我通过 cp System System1 指令将System复制并重命名为System1,然后通过mv System1 database 指令,将System1 转移到空目录database中,最后通过ls指令可以看到成功复制System 并转移到其他目录中。
5.5 其它指令 可在网址中查询
6. 解决问题
问题
·ls输出的是横向的列表,怎样输出长·格式列表?
·如何查看长格式列表中文件的大小?
·查看Linux系统版本、内存与硬盘空间?
·怎样建立类似/tmp/tmp1/tmp1.1 这样的层级目录?
·怎样删除这些层级目录?
解决方法
xiangwei@pc:~$ ls -li
total 3560
21673573206774087 -rw-rw-rw- 1 xiangwei xiangwei 0 Nov 25 16:27 System
8162774324759008 drwxrwxrwx 1 xiangwei xiangwei 4096 Mar 3 19:31 database
844424930862977 -rw-rw-rw- 1 xiangwei xiangwei 3643904 Aug 23 2019 mafft_7.450-1_amd64.deb
5629499534358554 drwxrwxrwx 1 xiangwei xiangwei 4096 Dec 11 17:14 miniconda3
在ls命令后面加上-li就可以以长列表的格式输出内容,而且还显示文件大小。其中-l 表示以长列表输出,-i 表示显示文件大小。
xiangwei@pc:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
xiangwei@pc:~$ free -m
total used free shared buff/cache available
Mem: 8101 3427 4449 17 223 4542
Swap: 9745 16 9729
xiangwei@pc:~$ df -lm
Filesystem 1M-blocks Used Available Use% Mounted on
rootfs 121403 96456 24948 80% /
none 121403 96456 24948 80% /dev
none 121403 96456 24948 80% /run
none 121403 96456 24948 80% /run/lock
none 121403 96456 24948 80% /run/shm
none 121403 96456 24948 80% /run/user
cgroup 121403 96456 24948 80% /sys/fs/cgroup
如图分别使用lsb_release -a\free -m\df -lm 就可以查看安装的Linux系统的版本、内存和硬盘空间。
xiangwei@pc:~$ mkdir -p 1/2/3
xiangwei@pc:~$ ls
1 System database mafft_7.450-1_amd64.deb miniconda3
xiangwei@pc:~$ cd 1
xiangwei@pc:~/1$ ls
2
xiangwei@pc:~/1$ cd 2
xiangwei@pc:~/1/2$ ls
3
如图,通过命令mkdir -p 1/2/3就建立了一个深层目录,要点就是加一个 -p指令。
xiangwei@pc:~$ rm -r 1
xiangwei@pc:~$ ls
System database mafft_7.450-1_amd64.deb miniconda3
删除命令rm 加上 -r 就可以删除掉1/2/3这个层级目录,而不需要一层一层的删除目录,简单省事。
今天的学习内容差不多就这么多,期待明天的新内容。