吾生有涯 学海无涯
析模有界 知识无界

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

内容纲要

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

1 环境变量

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

命令 命令说明
env 列出终端(shell)中的所有环境变量
`env grep ^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.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

5 输出到终端

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

命令 命令说明
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行

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 应用程序。此时,我们将无法控制该窗口中的命令行提示符。恢复控制的一种方法是关闭编辑器;强行操作的方式是在终端中按下 来终止进程。

或者也可以保持进程运行状态,然后在终端中按下 。这样会暂停进程,使我们重新获得命令提示符的控制权。之后,我们可以在终端中输入 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(可通过 终止)和 jobs

原文:https://cfd.direct/openfoam/linux-guide/


(完)

本篇文章来源于微信公众号: CFD之道

赞(1) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《OpenFOAM应用中可能用到的高频Linux命令》
文章链接:https://www.topcfd.cn/39530/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册