如前所言,时间宝贵!读者并不需要系统学习 Linux、Bash 之类的知识。后续系列总会详细给出每一处的终端命令。

常用命令

以下命令总结供查询使用。命令的使用均会在以后的讨论中的具体场合演示,所以请不必担心,也不要浪费时间专门的去学习。

路径移动

使用 ctrl + alt + T 打开终端之后,使用 cd 命令进行路径移动

1
2
3
4
5
// terminal
cd // 回到主目录
cd .. // 返回上一层级目录
cd - // 返回上一次目录
cd $FOAM_TUTORIALS/incompressible/icoFoam // 进入特定文件夹

路径显示

显示路径、目录结构等

1
2
3
4
// terminal
pwd // 显示当前路径
l // 显示当前目前所有文件/文件夹
ls // 显示当前目前所有文件/文件夹

终端中复制路径使用 ctrl + shift + c ,粘贴使用 ctrl + shift + v

tree

查看文件夹树状结构

1
2
3
// terminal
tree /Path/ -L 2 -d
tree /Path/ -L 1 -f
  • Path 指定需要显示的目录
  • -L 指定树状展开层级,后接数字指定层级
  • -d 指定仅显示文件夹
  • -f 指定仅显示文件

如果显式失败,请按照终端上的提醒,安装 tree

可是在终端中使用 tree --help 查看标识符的用处。后续命令都可以查看帮助。

新建

可以新建文件或者文件夹

1
2
3
4
5
6
// terminal
touch test.cpp // 新建空白文件
touch test/test.cpp // 指定已存在目录下新建文件

mkdir filePath/test // 已存在目录下新建文件目录
mkdir -p filePath/test // 新建多级文件夹

删除

1
2
3
4
// terminal
rm test.cpp // 删除文件
rm -rf test // 删除文件夹
rm -i '*log' // 删除所有带log字段的文件

修改

1
2
3
4
// terminal
mv test.cpp myTest.cpp // 修改为新名称
mv file1 file2 file3 /filePath // 修改到其他目录
mv * ../ // 当前目录所有目标修改到上一层级

拷贝

1
2
3
// termianl
cp -r --parents $FOAM_APP/solvers/incompressible/icoFoam $WM_PROJECT_USER_DIR // 带路径拷贝
cp -r test/test.cpp mytest.cpp // 仅拷贝文件

文件阅读

使用多种命令直接在终端阅读文件内容

1
2
3
// terminal
cat test.cpp // 完全显示,适合简单文件
more test.cpp // 部分显示,按键继续显示,不如直接打开

文件打开

通过命令行使用应用打开文件

1
2
3
4
// termianl
vi test/test.cpp // 通过vim打开
code test/test.cpp // 通过vscode打开
gedit test/test.cpp & // 通过gedit打开,且后台启动进程

命令启动

可以使用命令行通过默认应用(可能是 gedit)打开文件,或者通过资源管理器打开文件夹

1
2
3
4
// termianll
open test.cpp
open /home/aerosand
open .

环境变量

OpenFOAM 提供了一系列的环境变量以方便使用。

对于 OpenFOAM2212 版本,启用 OpenFOAM 环境变量

1
2
// bashrc
alias of2212="source /usr/lib/openfoam/openfoam2212/etc/bashrc"

查看与 OpenFOAM 相关的环境变量

1
2
// terminal
env | grep -i 'OpenFOAM'

常用 OpenFOAM 环境变量

  • $FOAM_USER_APPBIN
  • $FOAM_USER_LIBBIN
  • $FOAM_RUN
  • $WM_PROJECT_USER_DIR
  • $WM_PROJECT_DIR
  • $FOAM_APP
  • $FOAM_SRC
  • $FOAM_UTILITIES
  • $FOAM_TUTORIALS

快捷命令

查看已存在快捷命令

1
2
// terminal
alias | grep -i 'FOAM'

常见 OpenFOAM 快捷命令

命令解释
foam进入 OpenFOAM 主目录
tut进入 OpenFOAM 的 /tutorials 文件夹
src进入 OpenFOAM 的 /src 文件夹
app进入 OpenFOAM 的 /applications 文件夹
util进入 OpenFOAM 的 /applications/utilities 文件夹
sol进入 OpenFOAM 的 /appications/solvers 文件夹
run进入 $FOAM_USER_DIR/run

查找命令 find

很多时候,查找文件或者文件夹都是必不可少的,比如

1
2
// terminal
find $WM_PROJECT_DIR -type d -name '*fvPatch*'
  • $WM_PROJECT_DIR 环境变量,查找的路径位置
  • -type d 查找文件夹类型
  • -name 指定名称大小写敏感
  • '*fvPatch*' 查找的名称中只要中间包含 fvPatch 字段即可,单引号双引号都可以
1
2
// terminal
find $FOAM_TUTORIALS -type f -iname '*dict'
  • -type f 查找文件类型,不写的时候缺省为查找文件类型
  • -iname 指定名称大小写不敏感

查询命令 grep

有时候,不仅要查找文件或者文件夹,也需要查找某个文件内的字段,比如

1
2
// terminal
grep -r -n 'LES' $FOAM_SOLVERS
  • -r 递归(必须使用,不需要明白为什么)
  • -n 查询结果中显示行号
  • 'LES' 查询的字,如果是连续的字符,可以不加单引号或者双引号
  • $FOAM_SOLVERS 查询的路径位置

高级查找

结合 findgrep 命令,比如

1
2
// terminal
find $FOAM_TUTORIALS -type f | xargs grep -sl 'noSlip'
  • xargs 即 extended arguments,用来组合多个命令
  • -sl 压缩错误信息,且仅显示文件名
  • 'noSlip' 包含该字段的文件

OpenFOAM 工具

1
2
3
4
5
6
7
8
9
10
// terminal
foamNewApp mytest // 新建标准应用模板
foamListTimes -rm // 清理算例的计算时间步结果
foamCleanTutorials // 还原算例
foamCleanPolyMesh // 仅清理网格
foamListTimes -rm -processor // 如果并行计算,仅清理某个处理器计算结果

// 使用 pyFoam
icoFoam | tee log.run
pyFoamPlotWatcher.py log.run

其他

http://www.wolfdynamics.com/wiki/tipsandtricks.pdf