导读
在线记笔记,呵护健忘的自己。
一、sed
替换、删除、插入
sed 's/ /_/g' ## 替换所有空格
sed -i '1 i query\tmatch' file
# 在第一行前插入一行,直接覆盖文件
sed '1d' file
# 删除file第一行
二、awk
判断、统计、选择、打印
awk '{SUM+=$5}END{print SUM}' file # 统计某一列之和
awk '{print $2}' file # 打印某一列
awk '{if($2==0 || $2==16) print $0}' file # 打印“列”满足条件的指定“行”
awk '{if($3!="tRNA" && $3!="rRNA") print $0}' file # 打印“列”满足条件的指定“行”
awk 'NR==1{print}' file # 打印指定行
awk -F, file # 读取csv文件
awk -F"," file # 读取csv文件
awk '{$2=null;print $0}' file # 删除某一列
awk 'BEGIN{OFS=",";}{print $0}' # 保存csv文件
三、for
循环:
for i in `ls ./`;do echo $i;done
# 获取某文件夹下的所有文件名
for i in $(find -name "*.ffn");do cp $i ./wd/;done
# 获取所有子目录下的所有特定文件
for i in $(find -name "*.ffn");do cat $i >> ../bacteria.fastq;done
# 批量合并子目录下特定文件
for i in `find -name 'bin.*'`; do
file=${i##*/}
route=${i%bin*}
mv $i ${route}${file}.gene.abun.txt
done
# 修改文件名,find搞定复杂路径
for i in Bin_all/bin.*.faa; do
base=${i##*/} # 取👉,切两刀
name=${base%.faa} # 取👈,切一刀
command -i $i -o $name.raw &
done
# 常用的command for循环
四、sort
排序:
sort file # 排序
sort -t "," -k 1n,1 -k 3rn,3 file
# 按第一列正排序,按第三列反排序
-t 指定文本分隔符
-k 指定排序列
-n 按数字进行排序
-r 翻转排序结果
五、uniq
去重、重复统计
uniq file # 去重
sort file | uniq # 排序,去重
uniq -c file # 去重,计数
六、grep
匹配查找:
grep -E '^>.*$' file # 提取特定行
grep -E '^[^#]' file # 提取非xx的行
grep -n "^.*ID=rna23.*$" file
# 显示特定行的信息,显示行数
grep -v '^$' file # 删除空行
grep -v '^$\|_' file
# 匹配不符合条件的 \|: 或者转义。删除空行和有下划线的行
grep -v -E '^$|_' file
# 使用正则表达式;删除空行和有下划线的行
zcat file.fq.gz | grep '@' | wc -l
# 查看压缩文件特定行行数
ls -l | grep -c '^d'
# 文件数量统计
1 普通文件的文件权限第一个字符为“-”
2 目录文件的文件权限第一个字符为“d”
3 字符设备文件的文件权限第一个字符为“c”;
4 块设备文件的文件权限第一个字符为“b”
5 符号链接文件的文件权限第一个字符为“s”
七、ln
软链接、删除软链接
ln -s /media/cheng/disk1/huty/ huty
# 嫌弃路径太长创建软连接,一键到达目的地
rm -rf ./huty
# 删除软连接
ln -s $(readlink -f ./phylophlan.py) ~/bin/
# 软件,软链接
rm -rf ./huty,会删除数据
八、ps、kill
查看、杀死进程:
ps -df | grep '[ametag]' # 查看ametag进程信息
kill -9 22608 # 通过进程号,杀死进程
九、sleep
数秒:
sleep 1800 # 30分钟
while :
do
if [ `ps -ef | grep 'diamond blastp' | wc -l` != 1 ]; then
sleep 300 # 5分钟
continue
fi
break
done
# 一直循环,等待diamond blastp的进程结束,再继续下游分析,下游分析需要diamond的结果
十、mount
挂载:
sudo fdisk -l # 查看磁盘情况
Disk /dev/sdb: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
sudo mkdir disk1 # 创建挂载点
sudo mkdir disk2
sudo mkdir disk3
sudo mount /dev/sdb /[route]/disk2 # 挂载硬盘sdb到/media/cheng/disk2
sudo mount /dev/sdc /[route]/disk1 # 挂载硬盘sdc到/media/cheng/disk1
sudo mount /dev/sdd /[route]/disk3 # error,磁盘分区
sudo mount -t ntfs /dev/sdd1 /[route]/disk3
sudo umount /dev/sdb # 弹出设备
umount -l /dev/sdd1
umount -f /dev/sdd1
修改虚拟目录/dev/shm大小:
如果需要使用到这个目录,并且默认的大小不够使用,而其他程序占用的内存又比较少的时候,可以修改器最大占用内存的大小,来达到自己的目的。其实修改它的原理很简单,对其进行重新挂载即可,挂载的时候指定挂载参数。
$ df -h
tmpfs 504G 320K 504G 1% /dev/shm
$ sudo mount -o size=1000g -o remount /dev/shm/
$ df -h
tmpfs 1000G 320K 1000G 1% /dev/shm
参考:https://www.cnblogs.com/oloroso/p/5405113.html
十一、ssh
远程登录:
ssh admin@192.168.1.xx # 一台服务器登录到另一台服务器
$ 输入密码
十二、scp
远程传输:
scp file user@192.168.1.x:/home/
# win10 cmd和服务器可直接互通
十三、md5sum
查看文件的MD5信息:
$md5sum file
22d6e7e468afedf0f7cbe3997610452a file
$cat MD5_file.txt
22d6e7e468afedf0f7cbe3997610452a file
# 文件不改变,MD5就不会改变。MD5是一个文件的唯一序列号。
十四、chown、chmod
更改文件拥有者、更改文件使用权限:
drwxr-xr-x 7 root root 4096 11月 8 17:40 disk1/
$ sudo chown cheng disk1 # 更改拥有者
drwxr-xr-x 7 cheng root 4096 11月 8 17:40 disk1/
$ chmod 777 disk1 # 更改权限
drwxrwxrwx 7 cheng root 4096 11月 8 17:40 disk1/
网友评论