OpenFoam Linux 命令指南
本指南提供了与OpenFOAM用户常用的Linux的信息和终端命令示例。输入的命令参考了OpenFOAM的命令,例如,里面包括了OpenFOAM在Linux的环境变量。如果这些命令在安装有OpenFOAM的机器上执行并且用户的环境变量被设置用于OpenFOAM,这些关于OpenFOAM的命令将仅如所述的那样工作。
环境变量
Linux使用指定一组的值的环境变量来影响计算机运行方式。 OpenFOAM配置设置环境变量主要是为了提供使用OpenFOAM的快捷方式,并帮助OpenFOAM的编译。快捷环境变量通常由开始FOAM_,而编译环境变量开始WM_。
env :列出shell(终端)中的所有环境变量
env | grep ^ FOAM_ :列出由FOAM_开始的环境变量
echo$ FOAM_SRC :返回(由$ ...表示)的OAM_SRC的环境变量的值
导航
从终端,您可以浏览文件系统,其中文件组织在目录树(文件夹)中。用户文件系统上的home或top目录通过HOME环境变量来指定(通常为/home/(通过输入echo $ HOME检查))。整个文件系统的根目录(包括系统文件)通常用/表示。您所在的当前目录由 . 来表示。比当前目录高一级的目录表示为..。
pwd :打印当前目录(找到您所在的目录)
cd ~ :将目录切换到主目录(〜是一个快捷的意思$ HOME)
cd constant :常量更改为当前目录中名为constant的目录
cd .. :向上移动一个目录
目录列表
ls :列出当前目录中的文件
ls /etc :列出/etc目录中的文件(系统目录)
ls -a :列出所有文件,包括以.开头的隐藏文件,例如.bashrc
ls -l :包含文件所有权和权限的长列表格式的列表
ls-al :列出所有具有长列表格式的文件
创建,复制,移动和删除文件和目录
数据存储在文件中,文件系统来管理文件和目录的名称和层次结构。复制命令(cp)将文件数据复制到具有新名称的文件。移动命令(mv)简单地重命名文件或目录,或者改变其在目录层次中的位置,因此不涉及文件数据的写入。
echo "Hello World" > file1.txt
创建一个包含文本HelloWorld的新文件file1.txt
mkdir newDir :创建一个新目录newDir
cp file1.txt file2.txt
通过复制file1.txt创建一个新文件file2.txt
mv file2.txt newDir1/
将file2.txt移动到newDir目录
cp -r newDir1 newDir2
将newDir1的目录和内容(-r =“递归”)复制到新目录newDir2
mv file1.txt file3.txt
重命名file1.txt,例如 file3.txt
rm file3.txt :删除file3.txt
rm -rf newDir1 :删除newDir1目录和内容
cp newDir2/file2.txt file1.txt
将file2.txt从newDir1目录复制到当前目录中的file1.txt
打印到终端
有时,将文本文件打印到终端是很有用的。
cat file1.txt :将file1.txt文件打印到终端
less $ WM_PROJECT_DIR/Allwmake
滚动终端中的Allwmake文件;键入<SPACE>滚动,Q退出
head -10 $ WM_PROJECT_DIR/Allwmake
打印Allwmake的前10行
tail -5 $ WM_PROJECT_DIR/Allwmake
打印Allwmake的最后10行
表达式匹配
使用grep命令搜索表达式的文件可能很有用。
grep -h build $ WM_PROJECT_DIR/Allwmake
-h:打印包含表达式build的Allwmake文件行
grep -h -i BuIlD $ WM_PROJECT_DIR/Allwmake
-i:打印包含BuIlD的文件行Allwmake,忽略大小写
grep -l if $ WM_PROJECT_DIR/Allwmake
-l:打印文件名Allwmake到终端,如果它包含表达式构建
grep -H if $ WM_PROJECT_DIR/Allwmake
-H:打印包含表达式的文件的文件名和行
查找文件/目录
find命令允许我们快速搜索归档系统中的文件。
find $ FOAM_SRC
打印OpenFOAMsrc目录中的所有文件,目录和链接
find $ FOAM_SRC -name fvMesh.H
在FOAM_SRC中打印名为fvMesh.H的文件和链接(或目录)
find $ FOAM_SRC -name fvMesh.H -type f
在FOAM_SRC中打印仅名为fvMesh.H的文件
find $ FOAM_SRC -name fvMesh.H -type l
在FOAM_SRC中打印仅名为fvMesh.H的链接
find $ FOAM_SRC -name“*.[CH]”-type f
打印仅在FOAM_SRC中以.H或.C结束(*表示“任字符”)的文件
在大量文件中搜索表达式
结合find和grep允许我们在大量文件中搜索一个表达式。例如,要搜索所有OpenFOAM .C源文件以查找包含表达式kepsilon(不区分大小写)的文件:
find $ FOAM_SRC -name“* .C”| xargs grep -l -i kepsilon
另一种语法,但是执行速度较慢:
find $ FOAM_SRC -name“* .C”-exec grep -l -i kepsilon {} \;
过程处理
当键入终端命令行时,执行进程(或作业)。例如,我们可能希望执行一个运行名为gedit的文本编辑器的进程。我们可以打开前面提到的Allwmake文件
gedit $ WM_PROJECT_DIR/Allwmake
这将在终端窗口的前台启动gedit应用程序。我们现在无法控制窗口中的命令行提示。重新获得控制的一种方法是关闭编辑器;一个强力的方法来做到这一点,就是在终端中按<CTRL-C>终止进程。
或者,我们可以保持该过程存活,并在终端中按<CTRL-Z>。这将停止进程,允许我们重新获得对命令提示符的控制。从那里,我们可以通过在终端中键入fg在前台重新启动进程,在这种情况下,我们再次失去终端提示。或者,我们可以通过输入bg在后台重新启动进程,允许gedit运行并控制提示。
如果我们希望从开始就在后台执行gedit,我们可以在执行时添加&到命令行,即
gedit $ WM_PROJECT_DIR/Allwmake &
有关运行进程的信息可以通过键入下面这个命令来显示
ps
输出会显示进程ID号(PID)。可以使用kill命令终止进程。它向具有指定PID的进程发送信号,其中-9选项将导致进程被终止。例如,要使用PID2222杀死进程:
kill -9 2222
killall命令可以杀死所有gedit进程,例如:
killall -9 gedit