- 查看最近进程
top
,查看root用户的进程top -u root
- 查看cpu信息
lscpu
链接 - 查看文件夹大小
du -sh dirname
,除去某些文件夹或文件du -sh plassout_new/less500_1 --exclude='tmp_*'
,统计底下子文件夹大小du -h plassout/ --max-depth=1
,按照文件大小排序du -hs * --exclude='tmp_*'| sort -rh | head -n 10
参考 Link - 合并多个文本文件
cat 1.txt 2.txt > all.txt
,可以用`cat seq.txt > all.txt` - 移动文件或目录
mv bfd/ database/
,可以直接移目录而无需加参数 - 重命名文件
mv 1.txt 2.txt
,将1改成2。 - 删除文件
rm 1.txt
,删除文件夹rm -rf bfd/
,-r表示乡下递归删除,-f表示强行删除,慎用!! - 复制文件
cp 1.txt text/
,复制文件夹cp -r dir1/ dir2/
,将dir1复制到dir2下,若dir2不存在则是重命名dir1变成dir2。 - 压缩.gz 不保留源文件
gzip filename
,保留gzip -c file >file.gz
,解压缩.gzgzip -d filename.gz
- 查找字符串
grep -C 5 "abc" file
,显示file中abc上下五行,并且有行数。grep "^>" 1CR5A.fasta.a3m| wc -l
查找这个文件中以字符”>”开头的数目 - 给权限
chmod 777 filename
,任何用户都有最高权限。4表读,2表写,1表执行。chmod 754
,其他用户只可读。 - 生成校验文件
md5sum file > file.md5
,检查md5sum -c file.md5
需将被校验的文件放到.md5同一目录。 - 添加环境变量,编辑~/.bash_profile文件,永久对当前用户生效。末尾加上
export PATH="$HOME/software/zsh/bin:$PATH"
,意思就是在原本的PATH后面加上zsh软件的路径,$HOME就等于家目录(~),如果在外面输export那句话就只在当前终端有效,换了就没用了。 - ;、&&、||是什么意思
- 分号: 顺序地独立执行各条命令, 彼此之间不关心是否失败, 所有命令都会执行。
- &&:顺序执行,前者成功才执行后者
- ||:顺序执行,前者失败才执行后者
- 默认情况下,
echo
输出的文本末尾会有一个回车符,-n
不输出该回车符。-e
解释特殊字符如hello\nworld
,就可换行输出。更多详见阮一峰bash手册 - 命令行分多行写只需在前一行末尾加
\
- %cpuusage = **(usertime + sys_time)/real_time* 100%,分别的意义链接
- time命令和/usr/bin/time命令。链接。time命令也能输出, (time ls) 2>file 关于shell:如何重定向“time”命令的输出?
- 查看Linux内核版本
uname -srm
链接 - 清除缓存
echo 3 > /proc/sys/vm/drop_caches
链接 - 查看内存缓存等
free -h
,-h表示human能看懂,-m表示单位mb链接 vim
命令模式,4w向前4个单词,4b向后四个单词,^首字母,$末尾。
删除所在行dd
。删除多行:[start],[end]d,例如.表示当前,$表示最后一行,从当前到末尾都删除:.,$d
,删除当前以下5行5dd
,跳到文件链接,链接
top
命令输出及使用详解。链接。 关于state的D(不可中断的睡眠状态)的解释链接截取文件部分内容到另一个文件
head -100 filename >a.txt
,sed -n '100,200p' filename >a.txt
,注意有个p删除第N行:sed -i ‘Nd’ filename 删除第M到N行: sed -i ‘M,Nd’ filename sed -e ‘/abc/d’ a.txt // 删除a.txt中含”abc”的行,但不改变a.txt文件本身,操作之后的结果在终端显示 sed -e ‘/abc/d’ a.txt > a.log // 删除a.txt中含”abc”的行,将操作之后的结果保存到a.log sed ‘/abc/d;/efg/d’ a.txt > a.log // 删除含字符串”abc”或“efg”的行,将结果保存到a.log 其中,”abc”也可以用正则表达式来代替。 ———————————————— 版权声明:本文为CSDN博主「realmeh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/realmeh/article/details/16340453
vim
,:%s/foo/bar/g
会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g) 链接wc -l a.txt
,计算a.txt的行数 链接free -h >> free.txt
如果要观察内存问题可以每次跑一个加一行这个,写进txt记录下来统计wget下载进度条变成多行显示的解决方法
#因为后面显示的eta太长导致自动换行了。
#注意文件路径是在:/usr/share/locale/zh_CN/LC_MESSAGES/
cd /usr/share/locale/zh_CN/LC_MESSAGES/
#先重命名
mv wget.mo wget.mo.bak
#从重命名后的文件里替换eta(英国中部时间)为ETA,并导出新文件
msgunfmt wget.mo.bak -o - | sed 's/eta(英国中部时间)/ETA/' | msgfmt - -o wget.mo
但是ssh远程wget还是多行,路径底下也没有wget.mo文件,且在远程那台直接下是单行输出没问题,本机也单行,没解决。
awk
awk ' NR%3==2 { print >> "./mem.txt" } ' free100.txt
提取提取每三行中的第二行,输出到新文件中。awk中间执行的程序用单引号,里面文件什么的用双引号,并且记得{后面接空格,>>代表追加,>单纯重定向。- awk获取字符串所在行号
awk '/MGYA00425288/ {print NR}' analysis_URL.txt
- awk提取时间戳
cat test | grep "INFO" | awk 'BEGIN{t=0} {if(NF==3){t+=1;if(t==3){time=$2}else if(t==4){split(time,t1,":");split($2,t2,":");print t2[1]*3600+t2[2]*60+t2[3]-(t1[1]*3600+t1[2]*60+t1[3])};if(t==12){t=0}}}'
- awk先匹配再{}
input=
ls ~/test100 | awk ‘ /.fasta$/ {c=c” -i ~/test100/“$0}END{print c}’`` #匹配.fasta结尾的文件名并输出到input,c=c就是最后会有很多个-i - 提取文件大小信息
ll part2_3 |awk '{print $9"\t"$5 >> "inputinfo"}'
- 文件去重
sort filename |uniq
[ls](https://link.zhihu.com/?target=https%3A//www.baidu.com/s%3Fwd%3Dls%26tn%3DSE_PcZhidaonwhc_ngpagmjz%26rsv_dl%3Dgh_pc_zhidao) [-l](https://link.zhihu.com/?target=https%3A//www.baidu.com/s%3Fwd%3D-l%26tn%3DSE_PcZhidaonwhc_ngpagmjz%26rsv_dl%3Dgh_pc_zhidao)t | head -n 10
显示最新十个文件
- kill -9 $(ps -ef | grep ssh | grep -v grep | awk ‘{print $2}’) #杀死所有ssh进程,例如wget脚本就是这个。杀死bash只是杀掉shell交互壳
mkdir -p runoob2/test
,-p就是确保runoob2目录存在,不存在就会建一个,没有-p会报错。cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
查看cpu型号 链接- pbs批量提交作业,用py和sh联用 链接
- 对vimrc文件进行注释 话前面加”就可以
- 命令行用for
for i in
ls; do echo **"$i\n"**; done
- 文件权限,除rwx还有s/t,t可以使一个目录既能够让任何用户写入文档,又不让用户删除这个目录下他人的文档。s即(SUID,Set UID)设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd.
chmod a+s filename
,设置t是chmod 1777 directoryname
,a是追加权限,i是锁定权限不能改,除非去掉i。Link - less直接跳到100行,less +100g xx.log
- ls忽略某些文件或文件夹
ls /path/to/dir -I "*.jpg" -I "*.avi"
,-i后面的就忽略Link - create -n protein_bert_bak —clone protein_bert 复制环境,将protein_bert复制一份到protein_bert_bak,跨计算机也可以只要把环境的文件包拷过去 Link
- 读某一行数据
head -n 2 filename | tail -n 1
就是显示前面两行的最后一行,就是第二行。Link - 将屏幕输出到日志,续写
ls -l | tee -a ./t.log
- vim 自动写开头 链接