生信入门系列之-linux-入门(四):基础命令(下)

在实际的 linux 服务器中运行软件时,经常会为一些长时间运行的任务而头疼。当关掉连接终端或者其它原因,如网络不稳定等,运行中的程序也会自动被中断。那么怎么去解决上述问题呢?可以用命令 nohup,像这样运行:

nohup script.sh &

其中 script.sh 是一个shell 脚本,当然也可以替换成其它的软件或命令。如下图所示:

1

其中的“13632”PID,PID 是进程的代号,每个进程有唯一的 PID 编号。每个命令或程序运行后都会产生一个 PID。

可以用命令 pstop 命令查看某个程序的 PID:

ps 查看:

2

top 查看:

5

top 命令来实时监测系统正在运行什么程序以及系统现在的存储内存消耗等,其中有 PID 信息。

如果想中断某个程序,可以用 kill 命令:

kill PID

有时需要在 Linux 下进行远程拷贝文件的命令,可以用命令 scp(本地有 linux 终端):

scp [参数] [原路径] [目标路径]

如果拷贝文件:

# 将文件从本电脑上传到远程服务器 data 目录里
# xxx.xxx.xxx.xxx 代表 ip 地址
scp file1 [email protected]:/home/liuhui/data
# 将文件从远程服务器拷贝到本地电脑,并保存到 sample_data 目录里
scp [email protected]:/home/liuhui/data/file1 /home/liuhui/sample_data

/home/liuhui/data/file1 的路径如果很长,可以用 readlink 命令获得(在这里不是必须的,但这个命令在 shell 脚本中用比较方便):

readlink -f filename

10

ip 地址可以用 ifconfig 命令查看:

9

如果要拷贝目录, 则加一个参数 -r,和命令 cp 类似。

有时需要从网上下载软件,可以用 wget 命令(在 windows 也有同名软件):

wget url

“url” 是文件的下载地址,鼠标右键可以获取:

7

运行 wget 命令:

6

如果文件很大,可以尝试用命令 axel 多线程下载(有些网站上的文件不支持这个命令,这是就用 wget):

8

下载速度明显提升很多,因为我用参数 -n 指定适用 8 个线程(普通笔记本 4 个线程)。

在 shell 脚本(以后会有一个系列讲 shell 脚本)中经常会用到两个命令,basenamedirname。下面举例说明。

假如我有这个信息:

/home/shengwu004/example/longReads.fa

通过 basename,可以得到:

[[email protected] example]$ basename /home/shengwu004/example/longReads.fa
longReads.fa

也可以去掉后缀:

basename /home/shengwu004/example/longReads.fa .fa
longReads

dirname 则相反:

[[email protected] example]$ dirname /home/shengwu004/example/longReads.fa
/home/shengwu004/example

服务器的磁盘大小和使用情况是我们比较关心的,可以用 df 查看:

11

命令 du 可以查看某个目录中所有文件的大小,:

12

如果想了解某个命令的所有参数,可以用 man 查看,如:

man du

14

按上下键翻页,按 q 退出。

用命令 history 可以查看所有用过命令:

history

15

命令及简单描述

命令
nohup script.sh & 后台运行命令或程序
top 显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
ps 列出当前进程的快照,就是执行ps命令的那个时刻的那些进程
kill 根据PID,强制终止后台运行的命令或程序
scp 远程拷贝文件或目录
ifconfig 查看和配置网络设备
wget 下载文件
axel 多线程加速下载文件
readlink 获取文件的绝对路径和文件名的组合
basename 去掉路径信息
dirname 获得路径信息
df 查看磁盘空间占用情况
du 显示每个文件和目录的磁盘使用空间
man 查看命令帮助文档
history 查看历史命令