《学习小组Day2笔记--Hocchan_7》


一、学习内容:


  1. 什么是linux,什么是服务器?
  2. 为什么学生信要用linux?
  3. 怎样召唤linux--阿里云服务器
  4. 怎样登录服务器--putty和terminal
  5. linux有哪些最基本的操作?

1.linux是什么?

linux是个操作系统(OS)。

  • 应用场景
  • 权限控制
  • 命令行模式
  • 目录结构

2. 为什么学生信的要用linux?

这是因为生物软件基于linux,系统开源免费,不需要图形界面,有效节约资源。命令行模式可以批量、高效地处理文件,满足数据分析的要求。当你需要跑几十、几百G数据的时候,用windows,电脑立刻就挂了。


3. 怎样召唤linux?

3.1. Windows10上的linux

(1)设置-更新和安全-针对开发人员-启用开发人员模式
(2)控制面板-控制面板-程序-启用或关闭windows功能-适用于Linux的windows子系统
(3)重启
(4)下载ubuntu。microsoft store里有
(5)启动ubuntu 和用户设置
正在安装-安装成功,设置用户名和密码,相当于注册,这里输入密码是没有任何提示的,一次性打完。
(6)更新
输入 sudo apt update
完成后输入 sudo apt upgrade
sudo 代表管理员,apt相当于install(安装),下载和安装了更新,就可以投入使用啦。

3.2. Windows7 上的linux

如果电脑配置不是很好的话,不推荐安装虚拟机,会很耗内存;一般的电脑配置(i3、i5CPU + 4G内存)推荐使用git bash ,有32位和64位选择https://git-scm.com/download/win
一路默认安装即可。

3.3. Mac上的linux

不需要安装任何东西,自带terminal,直接使用

3.4. 云服务器上的linux

注册阿里云免费服务器
https://free.aliyun.com/ntms/free/personal.html?handle=true
点免费领取=》登陆=》最下面支付宝图标(点击使用支付宝扫码登陆)=》实名认证=》返回领取
弹出的窗口是这样:需要选择操作系统(我们这里选择CentOS/7.4 64位系统)
【关于Linux系统,最常见的是CentOS和Ubuntu,二者大致相同】

点击控制台=》选三个杠=》选云服务器ECS


需要进行修改,实例id会在你登录服务器后显示,总不希望是一串乱码吧~然后登录密码肯定要自己设置的。



修改登录名



需要重启! 必须重启!??!

重启后,就可以远程登录了。
首次登陆的用户名是root用户,也就是管理员用户登陆。
我们可以用Windows的putty或者Mac的terminal登陆。


4.1. 如何使用putty远程登录服务器?

一开始注册的用户名是root,登陆密码就是你自定义的,但是输入密码是没有任何显示的(连星星符号都没有),你只管一次性打完,不要怀疑键盘坏了,输对了就能进去,输错了会给你三次重试的机会。
练习的时候使用云服务器的这个root用户是可以的,因为不管你出了什么差错,都可以重置恢复,但是实际运行项目肯定不能使用root用户,一般都是需要服务器管理员给你一个账号密码,让你远程登录。

IP地址拷贝你的公网IP(用于远程登录) ,然后打开putty,操作流程:在主机名称(或IP地址)输入你的公网IP,点击打开

登陆后会弹出一个对话框,选择yes ,然后弹出一行字:login as ,在后面输入root(也就是你的用户名)【当然如果你自己有服务器的话,申请时管理员会告诉你用户名和密码】,接着他会让你输入密码,你只需要输入自己刚才在阿里云改好的密码就行!

4.2. 如何使用terminal远程登录服务器?

mac terminal使用 ssh 用户名@IP地址 进行登录

5. linux有哪些最基本的操作?

目录管理

  1. pwd : print working directory,也就是打印当前路径,
    /root 就是当前路径【路径就是你的位置】

/boot:系统启动相关文件,如内核,initrd,以及grub(BootLoader)
/dev:设备文件 — 体现了LInux的“一切皆文件”思想
/etc : 配置文件。大多数为纯文本文件
/home:用户的家目录
/root:管理员的家目录
/lib:公共库文件(不能单独执行, 只能被调用)
/lib/modeles:内核??槲募?。
/media:挂载点目录,挂载移动设备(如U盘)
/mnt: 挂载额外的临时文件(如第二块硬盘)
/opt:可选目录(现在基本没用)
/proc:伪文件系统,内核映射文件,系统启动后才出现文件, 关机就空
/sys:伪文件系统,跟硬件设备相关的属性映射文件,关机就空
/tmp:临时文件,/var/tmp是另一个临时文件目录
【所有用户都可以操作,但只能删自己的,不能删别人的】
/var:可变化的文件
/bin:(binary) 可执行文件,用户命令
/sbin:管理命令
/bin、/sbin都是可执行程序,运行时依赖的库都放在/lib下,配置文件放在/etc
/usr:(universal shared readonly,只读文件)

/usr下也有/bin,/sbin,/lib,与系统提供基本功能相关;
根目录下的/bin,/sbin,/lib与系统启动相关,必需的;
/usr/local:/bin,/sbin,/lib,第三方软件存放路径,非必需

  1. ls 显示列表,不管是文件夹还是文件,都能显示

ls -l使用ls的长格式,可以显示更多的信息,包括文件的权限、所有者、大小、最后更改日期等。
ls -a查看包含以.开头的隐藏文件
ls -lh显示文件大小

  1. cd 接一个目录名,进入该目录

cd -cd .. 返回刚才的目录
cd . "."表示当前目录
cd / "/"表示根目录
主目录(家目录):直接cd 或者cd ~(波浪线)
练习:进入tmp目录,然后查看当前路径,然后返回主目录

  1. mkdir :make directory-- 创建你的空目录

mkdir -p ~/MM/NN :建立主目录下的MM包含的子目录NN
mkdir -p mnt/test/{x/m,y} 在mnt/test/文件夹下创建x和y文件夹,x文件夹下创建m文件
mkdir biosoft ##存放生信软件
mkdir project ##存放生信项目
mkdir tmp ##存放一些杂七杂八
mkdir src ##存放源代码
mkdir del ##过会要用
‘#’后面是注释,就是解释代码的文字。是不参与运行的


文件管理

  1. rm 删除操作

rm file删除文件直接
rmdir删除空文件夹
rm -r删除有内容的文件夹,逐级删除目录下的子目录
rm * 删除当前目录下所有文件
rm –f 强制删除文件,删除时,不提出任何警告讯息。
rm –i 删除文件前均会询问是否删除,y/n指示下一步。
rmdir dirname 删除空目录。
练习:删除刚才的del空目录

  1. touch通过改时间戳来创建新的空文件,可连续创建。
  2. vi 新建脚本或者文本文档(vi是linux中的文本编辑器)
  3. stat 用于显示文件的属性/状态信息。能看到那三个时间戳 [访问、更改、改变]。
  4. cp 复制文件
    使用:cp file1 file2
    多个文件到一个目录
    使用:cp {file1, 2,3} /dir/ --> 花括号展开机制

cp –i 覆盖相同名称文件前先询问用户
cp –R 递归拷贝,即拷贝时将所有目录一并拷贝
cp -p 保留源文件或目录的属性
cp -d 当复制链接文件时,把指向的文件一并复制。简而言之,保持链接
cp -a(= -dpR) 保留所有原始属性,比-p保留的更多,常用于备份目录或文件
练习:将刚才新建的文件复制一个,叫做new_file.txt

  1. mv 将文件移入文件夹,或者重命名
    使用:mv file 路径
    练习:将新文件new_file.txt,重命名为home.txt ,移动到主目录下(路径是~)

文本查看【只用于文本!不要用来打开二进制文件】

  1. cat 查看并直接将内容输出到屏幕

cat > file.txt
.....(输入内容)【按Ctrl+c 可结束输入】

cat –n file.txt 在显示内容前加上行号
cat -ns file1 > file2 将1文件拷贝到2中,并加上行号(-n),遇到多行空格只显示一行(-s)

nl -n ln -b t file : file中的每行最前边显示行号(-n ln),并且空格不加行号
(-b t), 如果想在空格处加上,用-b a

  1. tac 反向显示cat
  2. head 默认输出前10行
  3. tail 默认输出后10行

tail -n 自定义输出几行
例如:head -n 3 hello_world.txt
【注意-n与head之间有空格,-n和3之间空格可有可无】
练习: 查看刚才自己的文件


tail -f 查看文件尾部,不退出,等待显示后续追加至此文件的新内容
【用途:监控web服务器中哪个用户正在访问哪个网页】

  1. less 逐页显示文本

less -S 规则输出
less -N 显示行号

文本处理

  1. cut 用来分割字段

cut -d (delimiter)指定分隔符, 默认tab?!静恍枰崭?,直接加分隔符即可】
cut -f 显示第几个字段
cut -f 1,3 显示第1和第3个
cut -f 1-3 显示第1-3个
例如 cut -d: -f1 /etc/passwd 就抽取了这个文件的第一列

  1. sort 默认根据ASCII表中的顺序升序排序

sort -n 按照数值大小排序,而非字母
sort -r (reverse) 降序排序
sort -t 指定字段分隔符 【等同于cut -d
sort -k 指定字段【等同于cut -f
sort -u 不管是否相邻,只要重复,行就显示一次
sort -f 排序时忽略字符大小写

  1. uniq
    【与sort不同。在它看来,只有相邻的重复行才算做重复行。所以常与sort连用】

uniq -c 每列旁边显示该行重复出现的次数
uniq -d 仅显示重复出现的行列 (一个代表)
uniq -D 显示所有的重复行列 (全部)

  1. wc word count 文本统计
    结果依次显示为:行数、单词数、字节数

wc -l 只显示行数
wc -w 只显示单词数
wc -c 显示字节
wc -L 最长的一行包含了多少个字符

统计/bin目录下命令个数:ls /bin | wc -l

  1. tr 字符转换或删除 translate or delete characters

例如: tr 'ab' 'AB' 引号中的叫做字符集
这样就把包含字符集a、b的文件对应替换为A、B
但是tr不能直接加文件,如果想对一个文件中字符进行替换
使用输入重定向<
tr 'ab' 'AB' < /etc/passwd
将所有小写都换成大写:tr 'a-z' 'A-Z'
tr -d 删除出现在字符集中的所有字符
如: tr -d 'ab'

  1. sed 编辑工具

sed -s 替换
sed 's/A/B/' A替换成B
sed -a 行下添加
sed 'a X' 在每一行下面添加X
sed ‘1,2a A\nB\nC’ 在1-2行的下边分别添加3行,3行内容分别是A、B、C,\n是换行
sed -i 行上添加
sed 'i X' 在每一行上面添加X
sed -c 行替换
sed ‘c A’ 所有的行内容都分别替换为A
sed ‘1,2c A’ 1-2行作为整体替换为A
sed ‘1,2c A\nA’ 1-2行分别替换为A
sed -d 行删除
sed -y 字符替换

sed 'y/a:/f@/' a.txt a替换为f,:替换为@
删除前7行没用的,并输出至txt文件中
sed '1,7d' *.gff3 > test.txt

  1. grep 查找文件里符合条件的字符串
    主要有两种,一种基础模式就是grep,一种拓展模式叫做egrep。
    egrep的特点就是支持更多的元字符

正则表达式:
它的语法结构有两套系统组成,元字符(metacharacters) + 普通字符
元字符主要由以下字符组成:
^ $ . [] {} - ? + () | \

grep -n 输出包含匹配字符串的行数。
grep -c 显示有多少行被匹配到(count)
grep -i 忽略匹配字段和匹配内容的大小写
grep -o 只打印匹配到的内容
grep -A/B n 显示搜索内容后面n行/显示搜索内容的前面n行
grep -v 反转查找。即显示出没有 '搜寻字符串' 内容的那一行。
grep --color=always 始终高亮显示搜索字段
【~/.bashrc 内加上这行:alias grep='grep --color=auto 再以 source ~/.bashrc来立即生效即可,这样每次运行grep都会自动加上颜色显示?!?br> grep -E 将范本样式为延伸的普通表示法来使用。(即使用扩展正则表达式)

行首字节 ^
行尾字节 $
^[0-9] 以数字开始的行,[]内可列举字母
^[124ab] 以1,2,4,a,或b开头的行
grep \'^.\' myfile.txt 列出所有以句点开头的行
ls -l | grep '^a'
通过管道过滤ls -l输出的内容,只显示以a开头的行。
grep '[a-z]{5}' aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
grep \'w(es)t.*1\' aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(1),找到就显示该行。

  1. awk 目前只会提取符合要求的列,默认分隔符是空格

awk {’print $1‘} test.txt 提取第一列

awk -F : '{print $2}' 以‘:’为分隔符 提取第二列

  1. echo 打印到终端

echo -e "Hello world\nI love bioinformatics" > test.txt
-e 内容中有特殊字符就需要加(比如换行符\n)处理特殊字符
""中就是打印的内容
>字符输出到哪里(覆盖原文件)
>> (添加到原文件底部)

解压

tar结尾 tar -xvf
gz 结尾 gunzip
tar.gz结尾 tar -xzvf
bz2结尾 tar -jxvf
zip结尾 unzip
rar结尾 unrar e


  • 附加
  1. ls输出的是横向的列表,怎样输出长格式列表(提示:搜索ls)
    ls -l
  2. 如何查看长格式列表中文件的大小?(提示:ls)
    ls -lh
  3. 查看Linux系统版本、内存与硬盘空间?(提示:分别是三个命令)
    lsb_release -a
    free -m
    df -lm
  4. 怎样建立类似/tmp/tmp1/tmp1.1 这样的层级目录(提示:搜索mkdir)
    mkdir -p tmp/tmp1/tmp1.1
  5. 怎样删除这些层级目录(提示:搜索rm)
    rm -r tmp*
    切记
    rm -rf tmp* 不要使用

实用小技能

tree

下载安装:

http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz
tar -zxvf tree-1.7.0.tgz
cd tree-1.7.0.tgz && make install

记得将安装完的程序导入自己的环境变量
那么如何设置自己的环境变量呢,简单说一下:

mkdir -p /place you like/soft (这里命名和存放位置自定义)
echo export PATH=/your install environment path/bin:$PATH >> ~/.bashrc
source ~/.bashrc

设置好后,将软件copy到环境变量

cp tree /your environment PATH/

使用就很简单啦:tree -h dir
(-h 意思是-human-readable,很方便地将文件大小表示出来)

常用Linux查看配置tip

  • df : disk free 显示磁盘空余
  • du: disk usage 是对文件和目录磁盘使用的空间的查看

du -ch file1 file2 显示几个文件大小并count总和
du -h | sort -nr | head -10 列出前10个占空间最大的文件,降序排列
cat /proc/cpuinfo | grep process | wc -l 查看cpu个数,方便以后跑程序设置线程数
uname -a 查看linux 内核/操作系统/CPU信息

grep练习

1. 搜索特定信息

搜索基因组注释文件.gff中特定基因信息
grep "AT1G01680" *.gff | head -n5

2. 排除特定信息

搜索AT1G01680这个基因,但排除其中feature项的protein
grep "AT1G01680" *.gff | grep -v "protein" | head -n5

3. 查找特定序列并计算出现了几次

grep -c "CAAATTGAATTAAG" *.fas
或者: grep "CAAATTGAATTAAG" *.fas | wc -l
如果单纯输出 就用grep -o

4. 精准匹配某个基因

搭配正则表达式。要匹配开头为AT1G250,结尾为3的基因名
grep "AT1G250.*3$" *.gff

  1. 非空行计数
    grep -c "[^ \\n\\t]"

grep并非完美

查找TAIR10_chr_all.fas 中95-100之内的‘CCACT’碱基

  • 先查看一下
    tail -n100 TAIR10_chr_all.fas | head -n5
  • 用肉眼就能看到'CCACT',但是如果用grep搜索 是没有结果的
    tail -n100 TAIR10_chr_all.fas | head -n5 | egrep 'CCACT'
  • 用grep还是能实现,就是不那么优雅:
    tail -n100 TAIR10_chr_all.fas | head -n5 | tr -d '\n' | egrep 'CCACT'
    【tr -d(delete) 是删除特定字段】
    更快捷的办法
    可以使用emboss套件下的dreg, 它是针对核酸;如果是氨基酸序列和翻译后的蛋白序列,使用preg
    tail -n 1000 chr22.fa | head -n 5 | dreg -filter -pattern 'TAATA'
最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容

  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,092评论 0 0
  • 一、学习内容: 什么是linux,什么是服务器? 为什么学生信要用linux? 怎样召唤linux--阿里云服务器...
    yhh_hygge阅读 595评论 0 0
  • 本文笔记源自这里——[实验楼]欢迎大家在下面交流其中有问题的地方喜欢请点收藏,每日更新(全部已亲自实践). 一. ...
    东皇Amrzs阅读 3,977评论 7 54
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 1,566评论 0 0
  • python 笔记22 Ubuntu 介绍 1、Ubuntu 安装 2、Ubuntu 安装VMware tools...
    flamingocc阅读 859评论 0 0