前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux学习-文件和目录

Linux学习-文件和目录

作者头像
生信宝典
发布2018-02-05 10:51:51
3.4K0
发布2018-02-05 10:51:51
举报
文章被收录于专栏:生信宝典生信宝典

为什么要用Linux系统

个人认为,Linux操作系统和类Linux操作系统的命令行界面是最适合进行生物信息分析的操作系统。原因有三点:

  • 长期运行的稳定性
  • 多数软件只有Linux版本
  • 强大的Bash命令简化繁琐的操作,尤其是大大简化重复性工作

但对于初学者来说,接触和理解Linux操作系统需要一些时间和摸索。陡然从可视化点选操作的Windows进入到只有命令行界面的Linux,最大的陌生感是不知道做什么,不知道文件在哪?本文希望能通过几个示例帮助大家适应Linux系统。

如何获取Linux系统

  • 如果自己的单位有共有服务器,可以尝试申请账号。
  • 自己的电脑安装双系统或虚拟机
  • 购买一块云服务器
  • 试验下在线学习平台实验楼 https://www.shiyanlou.com (里面也有不少Linux教程,任意点一个进去,双击桌面的Xfce图标,都可以启动Linux终端)
  • <生信宝典>微信公众号后台回复向管理员索要

初识Linux系统

登录Linux系统后,呈现在眼前的是这样一个界面:

代码语言:javascript
复制
Last login: Mon Jun  5 16:56:56 2017 from 219.241.208.209

Welcome to aliyun Elastic Compute Service!

ct@ehbio:~$

首先解释下出现的这几个字母和符号:

  • ct: 用户名
  • ehbio:如果是登录的远程服务器,则为宿主机的名字
  • ~: 代表家目录, 在我们进入新的目录后,这个地方会跟着改变
  • $: 用来指示普通用户输入命令的地方;对根用户来说一般是#
  • http://bashrcgenerator.com/可视化定制不同的显示方式。

我的电脑在哪?

打开Windows,首先看到的是桌面;不爱整理文件的我,桌面的东西已经多到需要2个屏幕才能显示的完。另外一个常用的就是我的电脑,然后打开D盘,依次点开对应的文件夹,然后点开文件。

Linux的文件系统组织方式与Windows略有不同,登录进去就是家目录,可视为Windows下的桌面。在这个目录下,我们可以新建文件、新建文件夹,就像在桌面上的操作一样。

如果想查看当前目录下都有什么内容,输入命令 ls,回车即可 (ls可以理解为单词list的缩写)。当前目录下什么也没有,所以没有任何输出。

代码语言:javascript
复制
ct@ehbio:~$ ls

如果错把l看成了i,输入了is,则会出现下面的提示未找到命令。如果输入的是Linux基本命令,出现这个提示,基本可以判定是命令输入错了,瞪大眼睛仔细看就是了。 在敲完命令回车后,注意查看终端的输出,以判断是否有问题。

代码语言:javascript
复制
ct@ehbio:~$ is
-bash: is: 未找到命令
# 大小写敏感
ct@ehbio:~$ lS
-bash: lS: 未找到命令

当前目录下只有一个文件,看不出效果,我们可以新建几个文件和文件夹,来查看下。

mkdir是新建一个目录 (make a directory);data是目录的名字。 如果目录存在,则会出现提示,”无法创建已存在的目录”。这时可以使用参数-p忽略这个错误。

代码语言:javascript
复制
ct@ehbio:~$ mkdir data
ct@ehbio:~$ mkdir ls
data
ct@ehbio:~$ mkdir data
mkdir: 无法创建目录"data" : 文件已存在
ct@ehbio:~$ mkdir -p data

cat是一个命令,主要用来查看文件;在这与<<END连用用于读入大段数据。输入cat <<END之后,回车,会看到终端出现一个大于号,大于号后面可以输入内容,再回车,继续输入内容,直到我们输入END (大写的,与上面一致),输入过程结束,我们输入的内容都显示在了屏幕上。

代码语言:javascript
复制
ct@ehbio:~$ mkdir data
ct@ehbio:~$ cat <<END
> a
> bc
> END
a
bc

`>`是一个重定向符号,即把前面命令的输出写入到`>`后面的文件中。如下所示,新建了一个`Fasta`格式的文件。
`ls -l`列出文件的详细信息;`-l`表示命令行参数,是程序预留的一些选项,保证在不更改程序的情况下获得更灵活的操作。可使用`man ls`查看`ls`所有的命令行参数, 上下箭头翻页,按`q`退出查看。(man: manual, 手册)

```bash
ct@ehbio:~$ cat <<END >data/test.fa
> >SOX2
> ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
> ACGATGAGGAGTAGGAGAGAGGAGG
> >OCT4
> ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
> AGAGTAGAGAGA
> >NANOG
> ACGATGCGATGCAGCGTTTTTTTTTGGTTGGATCT
> CAGGTAGGAGCGAGGAGGCAGCGGCGGATGCAGGCA
> ACGGTAGCGAGTC
> >mYC HAHA
> ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
> CAGGACAGGAGCTA
> end
> END
## 注意命令和参数之间的空格
ct@ehbio:~/data$ ls-l
-bash: ls-l: 未找到命令
ct@ehbio:~$ ls -l
总用量 4
## d: dir; 表示data是个目录
## rwx:表示目录的权限,暂时忽略,或自己在线搜索
drwxrwxr-x 2 ct ct 4096 6月   8 14:52 data
ct@ehbio:~$ ls -l data
总用量 4
## 开头的`-`表示test.fa是个文件
-rw-rw-r-- 1 ct ct 284 6月   8 14:48 test.fa

查看写入的文件的内容,cat 文件名;需要注意的是文件所在的目录,默认是当前目录;如下面第一个命令,会提示cat: test.fa: 没有那个文件或目录,是因为当前目录下不存在文件test.fa。(注意文件末尾的end)

代码语言:javascript
复制
ct@ehbio:~$ cat test.fa
cat: test.fa: 没有那个文件或目录
ct@ehbio:~$ cat data/test.fa 
>SOX2
ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
ACGATGAGGAGTAGGAGAGAGGAGG
>OCT4
ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
AGAGTAGAGAGA
>NANOG
ACGATGCGATGCAGCGTTTTTTTTTGGTTGGATCT
CAGGTAGGAGCGAGGAGGCAGCGGCGGATGCAGGCA
ACGGTAGCGAGTC
>mYC HAHA
ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
CAGGACAGGAGCTA
end

test.fa在目录data下,可以先进入data目录,然后再查看文件。类比于Windows下先点开一个文件夹,再点开下面的文件。

cd (change dir)切换目录。

head查看文件最开始的几行,默认为10行,可使用-n 6指定查看前6行。

代码语言:javascript
复制
ct@ehbio:~$ cd data
ct@ehbio:~/data$ head -n 6 test.fa 
>SOX2
ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
ACGATGAGGAGTAGGAGAGAGGAGG
>OCT4
ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
AGAGTAGAGAGA

另外lessmore也可以用来查看文件,尤其是文件内容特别多的时候。

代码语言:javascript
复制
ct@ehbio:~/data$ less test.fa 
# q: 退出
# 上下箭头、空格翻页

前面使用的命令,有几个用到了参数如ls -l, head -n 6等,需要注意的是命令跟参数之间要有空格

终端运行man ls可以查看ls所有可用的参数,上下箭头翻页,按q退出查看。(man: manual, 手册)

代码语言:javascript
复制
ct@ehbio:~/data$ man ls
NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the  FILEs  (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

       --author
              with -l, print the author of each file

       -b, --escape
              print C-style escapes for nongraphic characters
       ....

两个有意思的命令,tac: 文件翻转;rev每列反转。

代码语言:javascript
复制
ct@iZ8vb3e9jtel4m99ss6e7eZ:~/data$ cat <<END | tac
> first
> second
> third
> END
third
second
first
ct@iZ8vb3e9jtel4m99ss6e7eZ:~/data$ cat <<END | rev
> abcde
> xyz
> END
edcba
zyx

注:

  • 这里我们假设所有的文件和文件夹都放置于家目录下
  • Linux的家目录严格来说可能类似于Windows下的C:\Users\ct
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信宝典 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要用Linux系统
  • 如何获取Linux系统
  • 初识Linux系统
  • 我的电脑在哪?
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档