Linux学习笔记——DAY1登录及常用命令

本文是来自【生信人应该这样学linux】的学习笔记,希望能在5天内看完视频!
生信人应该这样学linux
优雅的Linux
cheatsheet
生物信息学100个软件安装代码
优秀学员笔记
linux命令行文本操作一文就够

督促自己好好学习,天天向上呀!


常用命令

1.登录及熟悉服务器

w显示当前登录用户
ssh username@ip地址 登录ssh
passwd username更改用户密码
df -h查看硬盘信息
free -m看可用内存
ifconfig查看ip地址
su切换用户

2.文件

linux所有目录都在/下面
tree -h显示当前文件夹下结构及文件大小(各子文件夹下有哪些文件)。若无tree命令,可sudo yum install tree下载;出现乱码时可将 alias tree='tree --charset ASCII'加入~/.bashrc文件里
pwd 显示当前路径
touch创建新文件
history显示历史命令
mkdir创建文件夹
mkdir folder{1..10}创建了folder1-10个文件夹
mkdir -p folder1/folder2/folder3若folder不存在,创建folder,且可以同时递归创建多层;若folder存在,则不创建

[user@lab temp]$ mkdir -p folder_{1..5}/folder_{1..5}
[user@lab temp]$ ls */
folder_1/:
folder_1  folder_2  folder_3  folder_4  folder_5

folder_2/:
folder_1  folder_2  folder_3  folder_4  folder_5

folder_3/:
folder_1  folder_2  folder_3  folder_4  folder_5

folder_4/:
folder_1  folder_2  folder_3  folder_4  folder_5

folder_5/:
folder_1  folder_2  folder_3  folder_4  folder_5

cd ~ 回到自己主目录
|管道符,传递数据

grep文本搜索
history | grep cat将history的结果传递给grep 查找cat

top 查看进程
&放在最后,命令在后台执行
ps默认展示显示运行在当前控制台下的属于当前用户的进程
ps -a 显示除控制进程( session leader① )和无终端进程外的所有进程
ps -ef标准格式显示进程 -e显示所有进程,-f显示完整格式的输出
sleep 沉睡

*通配符

echo将内容打印到屏幕
echo {1..10} 打印1-10
echo $PATH变量在shell里是$变量名变量名要大写
echo $PATH | tr ":", "\n" tr将一个字符替换为另一个字符
export PATH=$PATH:/cluster/home/yzhan/bin/bin/ 将路径导出到环境变量中

wsx@wsx-ubuntu:~ echo $PATH | tr ":", "\n"
/opt/scm/bin
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/opt/ibutils/bin

which mkdir 查看mkdir命令的位置
man ls 查看ls的帮助文档
locate file_name searches a file

cp file file_copy copy a file
cp -r copy files contained in directories
rm file deletes a file
rm -rf同时删除文件及目录
mv file1 file2 moves or renames a file
rename regexp files renames multiple files


PS1="\[\e[32;1m\]\u[\e[33;1m\]\t\[\e[35;1m\]\w\n\[\e[0;40m\]$" PS1="\[\e[35;1m\][\u@\h \W]$>\[\e[0m\]"使界面好看一点(慎用)

3. 压缩与解压缩

1.压缩

2.解压缩

unzip file.zip
tar xvfj file.tar.bz2
tar xvfz file.tar.gz
gunzip file

3. 批量解压缩

for i in `ls *tar.gz`
do 
tar -zxvf $i
done
tar –xvf file.tar  解压 tar包

tar -xvfz file.tar.gz 解压tar.gz

tar -xvfj file.tar.bz2   解压 tar.bz2

tar –xZvf file.tar.Z   解压tar.Z

unrar e file.rar 解压rar

unzip file.zip 解压zip

linux下解压命令大全

.tar

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

———————————————

.gz

解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

.tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

———————————————

.bz2

解压1:bzip2 -d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

———————————————

.bz

解压1:bzip2 -d FileName.bz

解压2:bunzip2 FileName.bz

压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz

压缩:未知

———————————————

.Z

解压:uncompress FileName.Z

压缩:compress FileName

tar.Z

解压:tar Zxvf FileName.tar.Z

压缩:tar Zcvf FileName.tar.Z DirName

———————————————

.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

cat file 查看文件
cat -n file 查看的同时显示行数
cat > test.txt 创建并开启输入文件模式,之后ctrl+c退出即可
cat file1 file2 > file3 merges files 1 and 2 into file3
cat *fasta > all.fastaconcatenates all fasta files in
the current directory
head file prints first lines from a file
head -n 5 file prints first five lines from a file
tail file prints last lines from a file
tail -n 5 file prints last five lines from a file

less file view a file
less -N file includes line numbers
less -S file chops long lines
less -SN file q退出
space bar翻页, g第一行, G最后一行,j下, k上, /<pattern>往下搜索模式,?<pattern>往上搜索模式, n前一个匹配字符,N后一个匹配字符。

more test.txt慢慢查看文件的内容,q退出,Enter向下查看

wc file counts lines, words and bytes of the file
wc -l filecount lines


grep pattern file Prints lines matching a pattern
grep -c ‘pattern’ file counts lines matching a pattern
grep -n ‘pattern’ file同时显示行数
grep -c "[^ \\n\\t]" some_data.bed grep命令实现非空行计数
cat -n test.bed | grep H3K4me1
grep -v pattern file选择不带pattern的行; -o选项只抽离输出匹配的部分;-v选项排除匹配到的,-w进行完全匹配。这样可以防止,你想排除 abc结果把 abc1, abcd也排除掉了。-B指定输出包括匹配到的前多少行,比如 -B1就是前一行; -A指定输出包括匹配到的后多少行,比如 -A2就是包括了后两行。 -C指定输出包括匹配到的前后多少行。 grep支持基本正则表达式, -E指定支持扩展表达式,或者用egrep命令。


cut -f 1,3 file retrieves data from selected column in a tab-delimited file,显示文件的1,3列,-d指定分隔符,如-d ,指定,为分隔符
cut -f 1-3 file显示文件的1到3列
cut -f 1-3 test.bed | awk '{print $1$2}'传递给awk让其打印1-2行
cut -f 1-3 test.bed |awk '{print $1":"$2","$3}' 双引号
cut -c1-3 file显示文件的1-3个字符
得到坐标可以索取序列
column -t将输出列排列整齐,-s指定分隔符


sort排序应用

sort默认用空格或tab键作为域(列)分隔符
sort -t如果我们用其他形式的分隔符,需要用-t选项指定。

sort -k1,1V -k2,2nr test.bed

sort -k选项指定某列的排序方式。而每次使用 -k选项都要带上指定列的范围(start, end)。如果只指定一列,就为(start,start)了,像上面命令的 sort -k1,1就是。
sort -k2,2n这里的 n指定程序把第二列当做数值对待。如果不做设定,都是当做字符对待(shell都是这么对待数值数据的)。所以总结其他这一行命令就是对第一列按照字符排序,第二列按照数值排序。
sort -r反向排序,如果你只想反转一列,可以把它加在 -k选项后。
sort -V这里可以添加 V选项修改,让shell按照数字顺序排序而不是查字典的形式。
sort -M根据时间戳按月排序(3字符月份)
sort -c检查一个文件是不是已经按照过某种方式排过序了,一般echo $?shell返回0表示成功执行。

wsx@wsx-ubuntu:~$ sort -k1,1 -k2,2n test.bed | sort -k1,1 -k2,2 -c

sort:-:2:无序: chr1    10  19

wsx@wsx-ubuntu:~$ echo $?

1

wsx@wsx-ubuntu:~$ sort -k1,1 -k2,2n test.bed | sort -k1,1 -k2,2n -c

wsx@wsx-ubuntu:~$ echo $?

0

awk用法

awk的程序结构是pattern {action}

pattern可以是表达式或者正则表达式。pattern有点像 if语句,当它满足时就会执行相应的动作。

另一个 awk核心是它用$0表示所有列,$1$2...等等表示对应的列

wsx@wsx-ubuntu:/tmp$ awk '{ print $2 "\t" $3}' example.bed

26    39

32    47

11    28
wsx@wsx-ubuntu:/tmp$ awk '{ print $2 $3}' example.bed

2639

3247

1128

wsx@wsx-ubuntu:/tmp$ awk '{ print $2 , $3}' example.bed

26 39

32 47

11 28

awk作为一门编程语言,它支持各种操作符(运算,逻辑,判断)喔。

wsx@wsx-ubuntu:/tmp$ awk '$3 - $2 >18' example.bed
chr1    9   28
wsx@wsx-ubuntu:/tmp$ awk '$1 ~/chr1/ && $3 - $2 > 10' example.bed
chr1    26  39
chr1    32  47
chr1    9   28
# 这里 ~ 符号用来匹配正则表达式

还有 awk存在一些变量,像 NR表示行号, OFS表示输出分隔符等

wsx@wsx-ubuntu:/tmp$ awk 'NR >= 3 && NR <= 5' example.bed
chr3    11  28
chr1    40  49
chr3    16  27

如果我们想把 gtf文件转换成为 bed格式,可以使用

wsx@wsx-ubuntu:~/Work/research/Promoter_Research$ head -n1000 Homo_sapiens.GRCh37.75.gtf | awk '!/^#/{ print $1 "\t" $4-1 "\t" $5}'| head -n 3
1    11868   14412
1    11868   14409
1    11868   12227

软件安装示例

非二进制可执行文件

cd ~/biosoft
mkdir samtools &&  cd samtools
wget https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2
tar xvfj samtools-1.3.1.tar.bz2
cd samtools-1.3.1
./configure --prefix=/home/jianmingzeng/biosoft/myBin
make
make install
~/biosoft/myBin/bin/samtools --help
~/biosoft/myBin/bin/plot-bamstats --help
cd htslib-1.3.1
./configure --prefix=/home/jianmingzeng/biosoft/myBin
make
make install
~/biosoft/myBin/bin/tabix
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,230评论 0 0
  • 第1章 小试牛刀 $ 是普通用户,# 表示管理员用户 root。 shebang:#!。sharp / hash ...
    巴喬書摘阅读 6,680评论 1 4
  • 此篇文章内容是我很久以前在印象笔记中的一个知识总结,大概122个Linux指令。如今,写出来就当再回顾一遍了。若有...
    StephenZhang01阅读 1,184评论 0 5
  • ls ls -l ls -la ls -li ls -hmkdir mkdir -P cat ca...
    Helen_Cat阅读 265评论 0 0
  • 查询命令 find * find [指定查找目录] [查找规则] [查找完后执行的action]* find ~/...
    chapa阅读 803评论 0 5

友情链接更多精彩内容