tutor
Linux 与 VASP 作业提交基础教程
欢迎各位新同学!本教程旨在帮助你快速掌握在服务器上进行科研工作所需的基本 Linux 操作,并学会如何提交 VASP 计算任务。
目录
1. 简介
为什么使用 Linux 命令行?
在计算化学和计算物理领域,我们通常在远程的高性能计算(HPC)集群上进行模拟。这些集群几乎都使用 Linux 操作系统,并且主要通过命令行进行交互。熟练使用命令行是高效开展计算工作的必备技能。
2. 终端和 Shell
- 终端 (Terminal):是一个程序,它为您提供了一个与 Shell 交互的窗口。
- Shell:是一个命令解释器。它接收您输入的命令,然后让操作系统执行它们。最常见的 Shell 是 Bash (Bourne Again SHell)。
当你打开终端时,你会看到一个提示符,通常看起来像这样:
username@hostname:~$
这表示 Shell 已经准备好接收您的命令了。
3. 远程连接与文件传输
在自己的电脑上,你需要使用 ssh 和 scp 命令来连接远程服务器和传输文件。
-
ssh(Secure Shell): 远程登录到服务器。# 将 username 替换为你的用户名,server_address 替换为服务器的IP地址或域名 ssh username@server_address -
scp(Secure Copy): 在本地电脑和服务器之间传输文件。# 从本地上传文件到服务器 # scp [本地文件路径] username@server_address:[服务器上的目标路径] scp my_vasp_job.zip username@server_address:/home/username/vasp_jobs/ # 从服务器下载文件到本地 # scp username@server_address:[服务器上的文件路径] [本地目标路径] scp username@server_address:/home/username/vasp_jobs/OUTCAR ./
4. 基本命令
文件和目录操作
-
pwd(Print Working Directory): 显示当前所在的目录。pwd # 输出: /home/username -
ls(List): 列出当前目录下的文件和目录。ls # ls -l # 显示详细信息 # ls -a # 显示所有文件(包括隐藏文件) -
cd(Change Directory): 切换目录。cd /home/username/Documents # 切换到 Documents 目录 cd .. # 切换到上一级目录 cd ~ # 切换到主目录 cd - # 切换到上一个工作目录 -
mkdir(Make Directory): 创建一个新目录。mkdir my_project -
touch: 创建一个空文件或更新文件的时间戳。touch new_file.txt -
cp(Copy): 复制文件或目录。cp source.txt destination.txt # 复制文件 cp -r source_dir/ new_dir/ # 复制目录(需要 -r 选项) -
mv(Move): 移动或重命名文件/目录。mv old_name.txt new_name.txt # 重命名 mv my_file.txt /tmp/ # 移动文件到 /tmp 目录 -
rm(Remove): 删除文件或目录。rm file.txt # 删除文件 rm -r old_project/ # 删除目录(需要 -r 选项) # 请谨慎使用 rm -rf,它会强制删除所有内容且无法恢复! -
tar: 用于打包和解包文件(.tar.gz或.tgz格式很常用)。# 解压 a.tar.gz 文件 tar -zxvf a.tar.gz # 将 my_folder 文件夹打包为 my_folder.tar.gz tar -zcvf my_folder.tar.gz my_folder
查看文件内容
-
cat(Concatenate): 显示整个文件的内容。cat file.txt -
less: 分页查看文件内容。按q退出。less long_file.txt -
head: 查看文件的开头部分(默认前10行)。head file.txt # head -n 20 file.txt # 查看前20行 -
tail: 查看文件的结尾部分(默认后10行)。tail file.txt # tail -f log.txt # 实时查看文件更新,常用于日志监控
获取帮助
-
man(Manual): 显示命令的手册页。man ls -
--help: 大多数命令支持--help选项来显示简短的帮助信息。ls --help
5. 文件权限
使用 ls -l 可以看到类似 -rwxr-xr-- 的字符串。这表示文件的权限。
- 第一个字符:
d表示目录,-表示文件。 - 后面九个字符分为三组:
- 所有者 (User) 的权限
- 所属组 (Group) 的权限
- 其他用户 (Others) 的权限
- 每组权限包含:
r: 读 (Read)w: 写 (Write)x: 执行 (Execute)
chmod 命令用于修改权限。
# 给所有用户添加可执行权限
chmod +x script.sh
# 设置权限为 rwxr-xr-x (所有者可读写执行,组和其他用户可读可执行)
chmod 755 script.sh
6. 管道和重定向
-
重定向输出
>和>>:>: 将命令的输出写入文件(会覆盖文件原有内容)。>>: 将命令的输出追加到文件末尾。
ls -l > file_list.txt echo "Hello again" >> hello.txt -
管道
|: 将一个命令的输出作为另一个命令的输入。# 列出所有文件,然后用 grep 筛选出包含 "py" 的行 ls -l | grep "py"
7. 文本搜索
grep(Global Regular Expression Print): 在文件中搜索指定的文本模式。这对于检查 VASP 的输出文件OUTCAR至关重要。# 在 OUTCAR 中搜索 "error",检查是否有错误 grep "error" OUTCAR # 检查电子步是否收敛,"F=" 是 VASP 输出中总自由能的标志 grep "F=" OUTCAR # 递归地在目录中搜索 (-r) 并忽略大小写 (-i) grep -ri "database" /var/log/
下一步可以学习:
- 学习
sed和awk进行高级文本处理和数据提取。 - 编写更复杂的 Shell 脚本来自动化你的工作流。
- 了解如何分析
vasprun.xml文件。
祝您科研顺利!
浙公网安备 33010602011771号