首页/文章/ 详情

OpenFOAM应用中可能用到的高频Linux命令

2小时前浏览4

本指南提供适用于OpenFOAM用户的Linux信息及终端命令示例。命令中涉及OpenFOAM,例如包含OpenFOAM的Linux环境变量。这些引用OpenFOAM的命令只有在安装了OpenFOAM且用户环境变量已配置为支持OpenFOAM的机器上执行时,才能正常运行。

1 环境变量

Linux系统使用环境变量,这是一系列影响计算机运行方式的值。OpenFOAM配置主要通过设置环境变量来提供使用OpenFOAM的快捷方式以及帮助编译OpenFOAM。用于快捷方式的环境变量通常以FOAM_开头,而编译相关的环境变量则以WM_开头。

命令命令说明
env列出终端(shell)中的所有环境变量
`envgrep ^FOAM_`列出以 FOAM_ 开头的环境变量
echo $FOAM_SRC返回 FOAM_SRC 环境变量的值(用 $... 表示)

2 浏览文件

可以在终端中浏览文件系统的目录结构(文件夹树形组织)。用户文件系统的主目录或顶级目录由环境变量 HOME 指定,通常为 /home/(可以通过输入 echo $HOME 查看)。整个文件系统(包括系统文件)的根目录通常表示为 /。当前所在的目录用 . 表示,而比当前目录高一级的目录用 .. 表示。

命令命令说明
pwd输出当前目录(找出你所在的目录)
cd ~更改目录到主目录(~$HOME 的快捷方式)
cd constant切换到当前目录中名为 constant 的子目录
cd ..切换到上一级目录

3 目录列表

命令命令说明
ls列出当前目录下的文件
ls /etc列出 /etc 目录下的文件
ls -a列出所有文件,包括以.开头的隐藏文件,例如.bashrc
ls -l包含文件所有权和权限的长列表格式
ls -al列出所有文件,使用长列表格式

4 创建、 复 制、移动和删除文件和目录

数据被存储在文件中,文件系统负责管理文件和目录的命名及层次结构。复 制命令 (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.txtfile1.txt重命名为file3.txt
rm file3.txt删除文件 file3.txt
rm -rf newDir1删除newDir1目录及其内容
cp newDir2/file2.txt file1.txtnewDir1 目录下的 file2.txt 复 制到当前目录的 file1.txt

5 输出到终端

有时将文本文件输出到终端可能是有用的。

命令命令说明
cat file1.txtfile1.txt 文件的内容输出到终端
less $WM_PROJECT_DIR/Allwmake在终端滚动查看 Allwmake 文件;键入 <空格> 进行滚动,Q 退出
head -10 $WM_PROJECT_DIR/Allwmake输出Allwmake的前10行。
tail -5 $WM_PROJECT_DIR/Allwmake输出 Allwmake 的最后10行

6 表达匹配

使用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:输出包含表达式的文件名和行。

7 查找文件/目录

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结尾的文件(*表示任意字符)

8 在大量文件中搜索一个表达式

结合使用 findgrep 允许在大量文件中搜索一个表达式。如要搜索所有 OpenFOAM .C 源文件以找到一个包含表达式 kepsilon(不区分大小写)的文件:

find $FOAM_SRC -name "*.C" | xargs grep -l -i kepsilon

一种执行速度较慢的替代语法:

find $FOAM_SRC -name "*.C" -exec grep -l -i kepsilon {} \;

9 进程操作

在终端输入命令时,会启动一个进程(或任务)进行执行。例如,我们可能希望执行一个进程来运行名为 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之道

OpenFOAM控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-29
最近编辑:2小时前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2541粉丝 11057文章 716课程 27
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈