本指南提供适用于OpenFOAM用户的Linux信息及终端命令示例。命令中涉及OpenFOAM,例如包含OpenFOAM的Linux环境变量。这些引用OpenFOAM的命令只有在安装了OpenFOAM且用户环境变量已配置为支持OpenFOAM的机器上执行时,才能正常运行。
Linux系统使用环境变量,这是一系列影响计算机运行方式的值。OpenFOAM配置主要通过设置环境变量来提供使用OpenFOAM的快捷方式以及帮助编译OpenFOAM。用于快捷方式的环境变量通常以FOAM_
开头,而编译相关的环境变量则以WM_
开头。
命令 | 命令说明 | |
---|---|---|
env | 列出终端(shell)中的所有环境变量 | |
`env | grep ^FOAM_` | 列出以 FOAM_ 开头的环境变量 |
echo $FOAM_SRC | 返回 FOAM_SRC 环境变量的值(用 $... 表示) |
可以在终端中浏览文件系统的目录结构(文件夹树形组织)。用户文件系统的主目录或顶级目录由环境变量 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 | 创建一个名为 file1.txt 的新文件,其中包含文本 Hello World |
mkdir newDir | 创建一个新目录 newDir |
cp file1.txt file2.txt | 通过复 制 file1.txt 创建一个新文件 file2.txt |
mv file2.txt newDir1/ | 将 file2.txt 移动到 newDir 目录中 |
cp -r newDir1 newDir2 | 复 制目录 newDir1 及其内容到一个新目录 newDir2 (-r 表示“递归地”) |
mv file1.txt file3.txt | 将file1.txt 重命名为file3.txt |
rm file3.txt | 删除文件 file3.txt |
rm -rf newDir1 | 删除newDir1 目录及其内容 |
cp newDir2/file2.txt file1.txt | 将 newDir1 目录下的 file2.txt 复 制到当前目录的 file1.txt 。 |
有时将文本文件输出到终端可能是有用的。
命令 | 命令说明 |
---|---|
cat file1.txt | 将 file1.txt 文件的内容输出到终端 |
less $WM_PROJECT_DIR/Allwmake | 在终端滚动查看 Allwmake 文件;键入 <空格> 进行滚动,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 :输出文件 Allwmake 中包含表达式 build 的的行 |
grep -h -i BuIlD $WM_PROJECT_DIR/Allwmake | -i :输出文件 Allwmake 中包含 BuIlD 的行,不区分大小写 |
grep -l if $WM_PROJECT_DIR/Allwmake | -l :如果文件名Allwmake 包含表达式build ,则将其输出到终端。 |
grep -H if $WM_PROJECT_DIR/Allwmake | -H :输出包含表达式的文件名和行。 |
find
命令允许我们在文件系统中快速搜索文件。
命令 | 命令说明 |
---|---|
find $FOAM_SRC | 输出OpenFOAM src 目录(FOAM_SRC )中的所有文件、目录和链接 |
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
选项会强制终止进程。例如,要杀死PID为2222的进程:
kill -9 2222
killall
命令可以杀死所有同名进程,比如:
kill all -9 gedit
其他用于显示运行中进程的有用命令有 top
(可通过 <CTRL-C>
终止)和 jobs
。
原文:https://cfd.direct/openfoam/linux-guide/
”
(完)来源:CFD之道