Linux基础知识

释放内存

使用sync命令做同步,以确保文件系统的完整性,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。

sync
echo 3 > /proc/sys/vm/drop_caches

释放缓存数字参数说明

0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存

多文件复制、剪切

对过多的文件进行复制或剪切时会报错:-bash: /bin/cp: Argument list too long

解决方法:使用xargs

-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替

#将from_folder下的文件剪切到to_folder文件夹下
ls from_folder/* | xargs -i mv {} to_folder/

find from_folder/ -name '*.*' |xargs mv --target-directory=to_folder/

#复制前一万个文件到 tmp 下
ls |head -n 10000 |xargs -i cp {} /tmp

#复制后一万个文件到 tmp 下
ls |tail -n 10000 |xargs -i cp {} /tmp

重定向

标准输出默认是打印到控制台,如果要导入到文件,就需要使用>或>>,>和>>都是重定向输出,> 会覆盖已有的文件内容,而>>会附加到已有内容之后。

< 和 << 是输入重定向符号,从文件中读取内容。

标准输入(standard input)的文件描述符是 0

标准输出(standard output)的文件描述符是 1

标准错误(standard error)的文件描述符是 2

1> 指标准信息输出路径(也就是默认的输出方式)

2> 指错误信息输出路径

2>&1是把错误输出导入(合并)到标准输出流中

例:cat >>filetest 2>&1 <<MAYDAY 就是从MAYDAY中读取文件内容,将标准输出与错误输出一并送入filetest文件中。

vim删除

字符删除

x            删除光标所在处字符

X            删除光标所在前字符

单词删除

dw            删除到下一个单词开头

de            删除到本单词末尾

dE            删除到本单词末尾包括标点在内

db            删除到前一个单词

dB            删除到前一个单词包括标点在内

很明显,d是delete的缩写,而上面的x则是老式的清除意思

要注意的是e b会忽略标点,如don't,它们会把这当做三个单词don、‘ 和 t 来删除

而大写的E B则不会

行删除

dd            删除一整行,3dd代表删除三行

D d$          删除光标位置到本行结尾

d0            删除光标位置到本行开头

删除命令需要配合移动命令才能发挥更多作用

查找文件并将结果输出到1.txt中:

包含路径:

find -name '*QC*' > 1.txt

不包含路径:

find -name '*QC*' -exec cp {} ./1/ \;

find -name "Coverage*" |xargs -i cp {} ./1

替换文件中的字符:

sed -i 's/test/T7M816-D/g' *sh

批量操作

替换文件内容:

for i in `ls`; do mv $i `echo $i |sed 's/aaa/bbb/g' |sed 's/aaa/bbb/g'`; done

批量建文件夹:

for i in `ls`; do mkdir `echo $i |sed 's/_R1_001.fastq.gz//'`; done

作业管理

后台运行

nohup <COMMAND> &

nohup:永久执行,即使断开SSH也不影响运行,标准输出改到当前目录下的nohup.out文件。

&:后台运行,结果仍会输出到屏幕上。

(<command> &)

使用括号表示该进程的父ID为1,因此不属于当前终端的子进程,从而不受HUP信号影响。

 

将命令后台运行:

nohup/setsid 是临时需要时最方便的方法

disown 补救当前已经在运行了的作业

screen 在大批量操作时不二的选择

查看后台作业状态

jobs   参数:

-l:列出PID 

-r:列出仅在后台运行的作业

-s:仅列出暂停的作业

 

jobs命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)

过滤掉含有“grep”的进程

ps -aux| grep chat.js| grep -v 'grep'

查找并杀死进程

ps -ef | grep ***** | awk '{print $2}' | xargs kill -9

ps -ef | grep ***** | awk '{cmd = "kill "$2; system(cmd)}'

ps -ef | grep ***** | awk '{print "kill " $2}' | sh

其他命令

将前台作业放到后台并暂停:

ctrl + z

运行后台暂停的作业:

bg
bg <%jobnumber>

将后台作业拿到前台运行:

fg
fg <%jobnumber>

终结进程:

kill <PID>
kill <%jobnumber>

批量删除:

qstat -u AGIS |sed 1,3d |awk '{print $1}' |while read xx;do qdel $xx;done

使用命令合并两个pdf文件

pdfunite a.pdf b.pdf c.pdf abc.pdf

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf mine1.pdf mine2.pdf

#an improved version for low resolution PDFs:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=merged.pdf mine1.pdf mine2.pdf

gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in1.pdf in2.pdf in3.pdf ...

查看服务器参数

查看CPU型号:

cat /proc/cpuinfo

查看物理CPU个数:

grep 'physical id' /proc/cpuinfo |sort -u |wc -l

cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

每个CPU有多少核心:

grep 'core id' /proc/cpuinfo |sort -u |wc -l

cat /proc/cpuinfo |grep "cores"|uniq 

查看逻辑CPU个数:

cat /proc/cpuinfo |grep "processor"|wc -l

查看线程数:

grep 'processor' /proc/cpuinfo | sort -u | wc -l

查询当前整个系统已用的线程或进程数:

pstree -p | wc -l

查看版本当前操作系统内核信息

uname -r
uname -a

查看当前操作系统版本信息

cat /proc/version

lsb_release -a

跨服务器传输数据:

#不加密传输
rcp -r git/ yuanyuan.zhang@10.86.2.10:/Data/testresults/qPCR

#加密传输
scp -r git/ yuanyuan.zhang@10.86.2.10:/Data/testresults/qPCR

查看所有用户组:

cat /etc/group | grep AGIS

查看节点使用内存情况:

qhost

free -g

显示瞬间行程的动态

ps

#以用户为主的格式来显示程序状况
ps u

定时任务

查看/var/log/cron.log文件是解决定时任务出错的重要途径。

crontab <command>

crontab <参数>

-u :只有 root 才有权限执行这个任务,也就是帮其他使用者创建/移除 crontab 定时任务

-e :编辑 crontab 的内容

-l  :显示 crontab 的内容

-r  :移除所有 crontab 的内容,若仅要移除某一项,请用 -e 编辑

*  *  *  *  *  command
分     时  日  月   周   命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值