本文简单介绍OpenFOAM使用过程中可能会涉及到的Linux常识。
注:
本文内容取自Wolf Dynamics公司的培训教材“The Linux Terminal: A Crash Introduction”。
”
1 Linux简介
Linux是一个类Unix系统。UNIX是由最初的AT&T UNIX衍生而来的多任务、多用户、稳定和便携的计算机操作系统系列,由贝尔实验室在20世纪70年代开发。可以在笔记本电脑、台式PC、服务器和超级计算机中找到UNIX/Linux。
UNIX/Linux系统由三个组件组成:内核、外壳和程序。
-
内核是操作系统的中枢。它为程序分配时间和资源,并处理调度和系统管理(文件、进程、设备、网络、内存等)。 -
外壳(或终端)充当用户和内核之间的接口。 -
程序是用户使用的各种应用程序。Linux中的大多数程序都是开源和免费的,但也可以找到商业程序。有些程序可能有GUI界面,或者只能通过终端访问。
一些关于Linux的描述:
-
最初是由Linus Torvalds开发的 -
Linux开发始于1991年 -
Linux得到世界范围的社区(志愿者和商业实体)的支持 -
免费开放源代码(内核) -
广泛的Linux应用程序都是免费和开源的。 -
它可以安装在各种各样的硬件上(笔记本电脑、台式PC、服务器、超级计算机、手机、嵌入式微芯片等) -
Linux系统安全、稳定、快速、高度可配置 -
它是开发应用程序的理想操作系统。它附带了许多编译器、解释器和库 -
大多数现代Linux版本都带有GUI(类似于Windows或MacOSX),它提供了一种与操作系统交互的简单方式 -
对于带有GUI的程序未涵盖的操作,或当没有可用的图形界面时,需要终端知识
一些常见的Linux操作系统包括:Red Hat、CentOS、Fedora、OpenSUSE、Slackware、Debian、Ubuntu、Mint、Arch等。
2 开源软件
开源(Open Source)指的是人们可以修改和共享的东西,它们被设计为可公开访问。开源软件是包含源代码的软件,任何人都可以对其代码进行检查、修改和增减。开源软件通常以公共协作方式开发的,并免费提供。
当前有许多开放源码软件许可证,这里仅列举一些常用的:
-
GNU General Public License (GPL) -
Apache License -
BSD License -
Creative Commons -
European Commission License (EUPL) -
MIT License
3 GPL
OpenFOAM遵循GNU通用公共许可证(GNU General Public License,GPL)。GPL的一些主要特点包括:
-
根据GNU通用公共许可证(GPL),用户拥有复制、分发和/或修改源代码的法律许可 -
包括根据GPL许可的源代码的软件继承GPL许可证 -
如果重新分发已编译的GPL软件的二进制文件(免费或收费),则必须由发行商提供源代码 -
该许可证旨在提供自由,特别是它不会强迫软件用户公开修改或开发。这意味着GPL软件可以用作内部专有软件的基础 -
当我们谈到自由软件时,我们指的是自由,而不是价格 -
通用公共许可证旨在确保您可以自由分发自由软件的副本(如果您愿意,还可以向其收费)、您可以收到源代码或可以在需要时获得源代码、您可以在新的免费程序中更改软件或使用软件的一部分,并且您知道您可以做这些事情
4 终端
当我们谈论Linux终端时,我们谈论的是一款模拟物理终端VT220或其前身VT102的软件。
终端仿真器或shell为用户和操作系统之间的接口。shell是一个读取终端中的命令(从键盘)并将结果发回终端(到屏幕)的程序,其充当命令行解释器或CLI。
目前有许多命令shell,仅举几个例子
-
Bourne shell(Sh) -
Korn shell(Ksh) -
C shell(Csh) -
Tee shell(Tcsh) -
Bourne-Again shell(Bash)
用shell编写的程序称为脚本。
在Ubuntu系统中启动shell很容易,任何位置点击鼠标右键,选择菜单项Open in terminal
即可开启。在终端中输入命令echo $SHELL
,若给出的结果是/bin/bash
则表示使用的是bash。
5 常用操作命令
这里简单介绍在Linux中可能用到的终端操作命令。
5.1 目录操作
Linux中与文件操作的命令很多,这里仅介绍使用频率最高的几个。这些命令包括:pwd、ls、cd、mkdir、rmdir、tree。
1、pwd命令
pwd命令可以显示当前路径,如下图所示。
2、ls命令
ls命令用于列出文件路径下的文件信息,此命令可以带有参数。若不带参数表示列举当前路径下的文件信息。若想要查看路径下的所有信息,可以带有参数-al
。
3、cd命令
cd命令用于切换文件路径。如下图所示可以从当前路径切换到指定的文件路径。利用命令cd ..
可以进入当前路径的父目录;命令cd ~
和cd
命令可以快速进入根目录。
4、mkdir命令
利用mkdir
命令可以创建目录。如下所示利用mkdir命令创建了一个名为test的文件夹。
5、rmdir命令
利用rmdir
命令可以删除一个文件夹。如下所示利用命令rmdir test
删除了当前路径下的test文件夹。
若文件夹不是空文件夹,此时可以是用rm -r
命令进行删除。
6、tree命令
tree
命令并非原生命令,需要单独安装。若为ubuntu系统,可以使用apt-get install tree
命令进行安装。利用tree命令可以以树状形式显示文件信息。
tree
命令可以带有参数-L
用来控制显示深度,如下面的命令只显示当前目录下的一级路径。
5.2 文件命令
下面了解一下在Linux终端中操作文件的命令,这些命令包括:cat、touch、more、head、tail、less、rm、cp、mv、file等。
cat
命令可用于创建、合并和/或显示文件。执行下面的命令:
mkdir task
cd task
cat > file1.txt
这里利用命令cat > file1.txt
创建并打开文件file1.txt,之后可以在终端输入想要输入的内容,按ctrl+c
组合键完成内容输入并写入文件。
注:
这里的
>
符号为重定向,符号后面接文件名表示将内容输入到文件中。”
此时可以使用more
命令或任何文本编辑器查看文本文件中的内容:
more file1.txt
具体操作如下图所示。
显示文件内容可以使用cat
命令,也可以使用more
命令。
若想要部分显示文件内容,可以使用head
命令和tail
命令,这两个命令可以显示文件头部或尾部的少量信息,在打开大文件时很有用。
创建一个文件除了可以使用cat
命令进行重定向外,还可以使用touch
命令。如命令touch file2.txt
可以在当前路径下创建一个名为file2.txt的文件。
删除一个文件,可以使用rm
命令。如下所示利用rm
命令删除file2.txt文件。
利用cp
命令将一个文件的内容拷贝到另一个文件。
注:
若想要拷贝文件目录,可以使用cp命令带上参数-r。
”
若想要修改文件名称,可以使用命令mv
,此命令的本意为移动对象,不过如果将一个文件以不同的名称移动到相同的路径下,事实上也是为文件修改名称。如下图所示将文件file2.txt的文件名改为file3.txt。
向文件追加信息,可以使用cat
命令。如下所示。注意使用的是>>
,若使用>
则会覆盖目标文件中的内容。
5.3 通配符
Linux中有三种通配符:
-
*
:可以匹配任何字符或字符串 -
?
:可以匹配单个字符 -
[]
:可以匹配字符范围
如图所示示例。
5.4 IO重定向
IO重定向通常使用符号>
及>>
来实现。若目标文件已存在,利用>
会覆盖目标文件的内容,而>>
会将新的内容追加到目标文件的末尾。
如下图所示的示例将命令ls -al
的结果输出到文件dir.txt中。
5.5 进程处理
Linux常用的进程管理命令包括ps、top、kill、jobs、bg、fg等。
ps
命令可以列举出系统当前正在运行的命令进程。
清除进程可以使用kill
命令。首先可以使用ps
命令找到PID,然后利用命令kill PID
关闭进程。
kill 12
5.6 查看CPU信息
想要查看CPU信息,可以使用命令lscpu
来实现,如下图所示。
5.7 信息查找
在文件或目录中查找信息,可以使用grep、find、which
等命令实现。
如下图所示命令在根目录/
中查找存在字符串hostname文件夹。
若想要查找包含字符串的文件,可以使用命令grep
,如下图所示命令grep -r -n "user" /etc
为在路径/etc
中查找包含字符串user的文件。-r
表示搜索子文件夹中的文件,-n
表示输出行号。
若想要找寻linux命令所在的路径,可以使用命令which
,如下图所示为输出命令find
所在的文件路径。
5.8 命令组合
linux中可以将多个命令组合在一起使用。这里可以使用|
及xargs
来实现。
如下图所示命令ls -lR /usr/bin/ | grep "wc"
列举出路径usr/bin的详细信息,并在其中查找存在字符串wc的文件。
xargs可以直接调用命令,如下图所示的命令操作,先利用touch创建了5个文件,然后利用rm命令删除f1.txt与f5.txt。
5.9 压缩与解压文件
Linux中有非常多的用于文件压缩与解压的命令,比较常用的如tar、zip、unzip等。
如当前路径下存在一个名为dir.txt的文件,现在想要压缩dir.txt文件,可以使用下面的命令将其压缩为文件dir.tar.gz:
tar -czvf dir.tar.gz dir.txt
若想要解压dir.tar.gz文件,可以使用命令:
tar -xzvf filename.tar.gz
也可以使用zip和unzip命令,与上面等同命令形式为:
zip dir.zip dir.txt
unzip dir.zip
zip命令不是linux系统内置命令,在使用此命令之前可以使用sudo apt install zip
先行安装。
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册