shell编程
基础命令
软件环境变量设置
将软件的脚本设置到个人环境变量中
echo "export PATH=$PATH:/opt/biosoft/vcftool/bin/" >> ~/.bashrc
source
查看文件
head -n 5
tail -n 5
cat -n 显示行号,全面内容显示
more ,分页显示
less -S file_name 不拆行
less -SN 格式化排版,显示行号
ls -lht 显示文件的详细信息,大小,时间
文件管理
touch new_file 创建文件
echo "hello world" > data.txt 重定向,覆盖
echo "hello world" >> data.txt 重定向,追加
rm file_name 删除文件
rm -r dir 删除目录
rm -rf * 删除文件夹下所有内容,无提醒
mv -f file1 file2 ~/Box 将文件移动到文件夹里,无提醒
mv file1 file2 将文件file1 命名为file2
mkdir -p /dir1/dir2 创建多层文件夹
链接
软链接,将原文件生成快捷方式,删除快捷方式,不影响原文件,可以用于文件 或目录
ln -s file1 file2
ln -s 源文件 生成的链接文件一定要全目录,否则报错
1.软链接,以路径的形式存在。类似于 windows 中的快捷方式;所以,当移动源文件的位置或修改源文件名称时,软链接会失效。
2.软链接可以对一个不存在的文件名进行链接;
3.软链接可以对目录进行链接;
4.软链接可以 跨文件系统 ,硬链接不可以;
5.不增加源文件的链接数。
硬链接,将原文件生成备份,id与原文件一样,只能用于文件,不能用于目录
硬链接,与源文件名称互为别名,不占用实际空间,直接指向文件在磁盘上的物理地址;所以无论怎样移动源文件或修改其名称,硬链接都不会失效。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
4.增加源文件的链接数。
ln file1 file2
ln 源文件 生成的链接文件
文件权限
r w x
chmod u+x test.sh 对脚本增加执行权限
chmod 777 test.sh 对所有用户增加所有权限
文件查找
find [path] [expression]
find -name trinity.fasta 当前目录下查找
find -name *.fasta 当前目录所有fasta文件
which filename 搜索文件的环境变量,所在目录
which ls 搜索脚本的所在目录
grep ">" file.fasta 查找所有> 开头的行
grep ">" file.fasta > ID.fata
cut -d 分隔符 -f 指定列 第一列为1
cut -d "" -f 1,2 |head 空格为分隔符,选取第一列,第二列
cut -f 1-10
cut -f 1,2,3,3,4,5,6
cuf -f 1,2,3,5-8
wc -l filename 显示行号
sort filename 按第一列ASCII码排序
sort -k 2 -n filename 按第二列排序的数值大小排序,从小到达
sort -k 2 -n -r filename 倒序
sort -u filename 删除重复的行,相当高于sort file|uniq
sort file |uniq -d 显示重复的行
sort file |uniq -c 显示每行出现的次数
sort -k 2 -n file |cut -d " " -f 2|uniq -c 将第二列进行每行的次数统计
压缩
gzip file 压缩 ,不会保留原文件
gzip -c file.fasta file.fasta.gz 生成压缩文件,保留原文件
gunzip file.fasta.gz 解压文件
gunzip -c file.fasta.gz 保留文件
zcat file.fasta.gz |less -S 查看压缩文件
打包
tar
-c 压缩 -v 显示压缩过程 -f指定压缩文件 -z 用gzip压缩文件 -x解压文件
tar -zxvf file.tar 解压文件
tar -zcvf file.tar.gz file1 file2 压缩文件
后台运行
防止:当关掉连接终端或者其它原因,如网络不稳定等,运行中的程序也会自动被中断。
nobup script.sh &
[1] 106421
运行后生产PID号
可以使用ps或top查看某个程序ID
如果想中断某个程序,
kill PID
远程数据传输
scp [参数][原路径][ 目标路径]
scp file1 user@ip:/home/user/data 将文件传输到远程电脑
scp user@ip:/home/user/data/file1 /home/user/data 将远程电脑传到到本电脑
scp -r 传输目录
cp -r 拷贝目录
ssh user:passwd@ip 远程登录
readlink -f file1 查看文件的完整路径 /home/manager/Test/file1
pwd 查看当前目录的路径
ifconfig 查看ip地址,一般为第二行的inet addr:192.168.1001.70开头
文件下载
wget url 下载url地址的文件
axel -n 8 如果文件很大,可以多线程下载。(有些网站上的文件不支持这个命令,这时就用 wget)
目录路径
/home/shengwu004/example/longReads.fa
basename /home/shengwu004/example/longReads.fa
获得
longReads.fa
basename /home/shengwu004/example/longReads.fa .fa
获得
longReads
dirname /home/shengwu004/example/longReads.fa
获得
/home/shengwu004/example/
readlink -f file 获得全路径文件路径
pwd 获得当前文件夹路径
查看服务器配置
df -h 服务器的磁盘大小和使用情况
du -h 可以查看某个目录中所有文件的大小
查看帮助
man
--help
-h
history