windows系统中Linux用法
- Linux是什么?一种操作系统,多用户、多任务
- 安装gitforwindows实现部分Linux命令:Windows系统中可以实现上百个Linux命令,但无法安装Linux软件
- 在图形界面打开terminal或看到如下界面,此为我们大部分时候的工作环境
ct:用户名
ehbio:如果是登录的远程服务器,则为宿主机的名字
~:代表家目录,在我们进入新的目录后,这个地方会跟着改变
$:用来指示普通用户输入命令的地方
- Linux所有目录都在根目录下,用/表示。在访问目录是一般加上/指示相对于绝对路径。登录上之后即在家目录下(~或/home/ct)
- 目录结构
- /:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者
- /bin:bin就是二进制的引文缩写,在一般的系统当中,都可以在这个目录下找到Linux常用的命令。系统所需要的那些命令位于此目录。/usr/bin/usr/local/bin
- /etc (Editable Text Configuration): 这个目录是最重要的目录之一,存放了系统管理时要用到的各种配置文件和子目录。
- /home:如果建立一个用户,用户名是“XX”,那么在/home目录下就有一个对应的/home/XX的路径,用来存放用户的主目录
- /lib: lib是库(library)的英文缩写,主要用来存放系统动态连接共享库。千万不要对这个目录进行操作,发生问题时系统将无法工作
- /mnt: 用于存放挂载储存设备的挂载目录,比如磁盘阵列、U盘等。
- 下面以Win10 + Rstudio +gitforwindows 运行Linux命令为例
Linux基本命令: [[email protected] ~]$ 命令[-选项] 参数1 参数2 ……
说明:命令永远以可执行程序开始;[-选项]的方括号表示该项目是可选的,不需实际输入;不同项之间以空格分隔,命令行以回车结束并即刻执行;Linux区分大小写
8. 常用命令
pwd #显示当前工作目录(print working directory)
cat #查看文件(concatenate files and print),与<<END连用用于读入大段数据。输入cat <<END
之后,回车,会看到终端出现一个大于号,大于号后面可以输入内容,再回车,继续输入内容,直到我们输入END
(大写的,与上面一致),输入过程结束,我们输入的内容都显示在了屏幕上
ls #显示当前文件夹(list)
ls -l #列表显示
ls –l dir #显示目录下dir下的文件
mkdir #新建文件夹 (make directory)
mkdir test #创建目录
cd #切换工作目录(change dir)
cd test #进入test目录
cd ..#后退到上一级目录,.代表上级目录,..代表上一级目录,../../表示上两层目录
cd ./test 等同于cd test
cp #拷贝文件,原文件移动到目标位置(copy)
cp test.sh.file_temp.txt #复制文件
cp test.sh test #复制文件到指定目录
mv #移动或改名文件(move)
mv test.sh temp.sh #移动,不更改目录则为改名
rm #删除文件(remove)
rm test/test.sh #删除文件
rm –r test #删除文件夹
Fastq文件操作
gunzip:解压文件
head example.fq 显示文件头,查看钱6行可使用-n 6
tail example.fq 显示文件尾
less –S example.fq 按页查看文件,-S不换行,空格翻页,q退出
获取所有样品名字
cut -f 1 metadata.txt
获取所有样品名字时跳过第一行
tail -n +2 metadata.txt | cut –f 1
sed替换文字内容
sed ‘s/original/new’文件A:文件A中的原始的替换成新的
例:metadata中Beijing写错了,需要替换为Nanjing
sed ‘s/Beijing/Nanjign/’ metadata.txt
tr:字符替换工具
程序中几个符号
=:一个等号表示赋值
==:表示判断两侧的变量是否相等,如FNR==1,若相等返回True
!=:表示判断两侧的变量是否不相等,若不等,返回False
+=:自加操作a+=1等同于a=a+1
%:取余数
+,-,*,/:加减乘除
&&,||,!:逻辑与,逻辑或,逻辑非
():一般用于函数中,传递参数
[]:一般用于索引列表或字典,取出列表中第几位元素,或字典中某个key对应的value
{}:代码块,多行语句放在一起,属于一个层级
“”,‘’:双引号和单引号括起的是字符串,bash中双引号中的变量可以解析,单引号不可以。同样的引号不可以嵌套,如awk“{print“ehbio”}”是不对的,要写成awk‘{print“ehbio”}’或awk“{print‘ehbio’}”
/t:代表TAB键
*:代表任意字符
|:管道符,传递数据,上一条命令的输出作为下一条命令的输入
`>`是一个重定向符号,即把前面命令的输出写入到`>`后面的文件中
-:表示标准输入,一般用于1个程序需要多个输入的时候
<:标准输入,后面可以跟可以产生输出的命令,一般用于1个程序需要多个输入的时候
# cat命令之前也用过,输出一段文字
# diff是比较2个文件的差异的,需要2个参数
# - (短横线)表示上一个命令的输出,传递给diff
# < 表示其后的命令的输出,也重定向给diff
[email protected]:~$ cat <<END | diff - <(echo "1 2 3" | tr ' ' '\n')
> 2
> 3
> 4
> END
0a1
> 1
3d3
< 4
快捷键:
Tab键:自动补全或提示相关结果
Ctrl+C:中止命令
Ctrl+A:回到命令的行首,用于修改命令或注释掉命令
!!:表示上一条命令
# !!表示上一条命令
# :gs表示替换,把上一个命令中全部的ehbio替换为ehbio3; g: global; s: substitute
[email protected]:~/ehbio_project$ !!:gs/ehbio/ehbio3
#cut -f 1 -d ' ' ehbio3.fa | tail -n 4
which:表示查看命令的路径
注意:命令跟参数之间要有空格