Linux包含大量的命令,但是我在这里只挑选一些最重要的和常用到的一些命令。

  • cat 从第一个字节开始正向查看文件的内容。会在终端中打印出文件的具体内容。同时,日常使用中常用的cat命令还具有一个重要合并功能:cat file1 file2 > file 3命令可以合并file1file2文件为新的file3文件。
  • cd 更改当前终端所在目录。换句话说,它将会将你移动到文件系统中的一个新位置。如果要切换到当前目录中的目录,只需键入cd和另一个目录的名称。注意可以是绝对目录页可以是相对目录。cd ./表示进入当前目录,cd ../表示回到上一级目录。
  • ls 可能是大多数Linux用户遇到的第一个命令。也是平时工作中最常用的命令。它列出指定目录中的文件和文件夹。默认情况下,ls查看当前目录。对于ls,可以使用很多选项,强烈建议查看它的手册页。这里给出了一些常见的例子。列出当前目录中的文件和文件夹:ls -l 使用-l (long)选项列出当前目录中的文件和文件夹的详细清单。ls -lh使用人性化的文件大小包括-h (human)选项。ls -lha 显示包含隐藏文件。
  • pwd 没啥好说的,Print Working Directory的缩写从根/目录打印工作目录(当前目录)。
  • mv 将文件和目录从一个目录移动到另一个目录。同时它还允许重命名文件。要移动一个文件,必须告诉mv文件在哪里,以及希望将其移动到哪里。在本例中我们从/Users/dongfan/test目录中将file1移动到directory_1目录中,并重命名为test1
  • mkdir 在文件系统中创建新的目录。必须将新目录的名称提供给mkdir。如果新目录不在当前目录中,则必须提供新目录的路径。例如在当前目录中创建两个名为“directory_2”和“directory_3”的新目录,请使用以下两个命令:
  • df 该命令显示安装在计算机文件系统上的大小、使用空间和可用空间。最有用的两个选项是-h(human)和-x(排除)选项。-h选项以Mb或Gb而不是字节显示大小。
  • grep 搜索包含搜索模式的行。在查看alias命令时,我们使用grep搜索另一个程序ps的输出。grep命令还可以搜索文件的内容。这里,我们在当前目录中的所有文本文件中搜索单词“This”。
  • head 给出了文件前10行代码的清单。如果希望看到更少或更多行,请使用-n 选项。在本例中,我们使用head,默认值为10行。然后使用head -n 3 test_head命令只显示3行。
  • diff 该命令比较两个文本文件,并显示它们之间的差异。有许多选项可以根据您的需求定制显示。挺常用的命令,比如可以比较在VASP优化后CONTCARPOSCAR文件的差异:
  • echo 将文本字符串打印到终端中。例如下面的命令将在终端窗口上打印单词“A string of text”。同时echo命令可以显示环境变量的值,例如$USER、$HOME和$PATH环境变量。其中包含用户名、用户的主目录以及当用户在命令行上键入某些内容时为匹配命令而搜索的路径的值。
  • tail 给出一个文件最后10行的内容。如果希望看到更少或更多行,请使用-n (number)选项。但是tail还有一个非常实用的应用就是使用tail -f /var/log/messages 实时查看被添加到一个文件中的内容。比方说我们可以实时查看VASP计算的log文件。
  • exit 关闭一个终端窗口,结束shell脚本的执行,或者将从ssh远程访问会话中注销。远程连接超算或者服务器时候会用到。
  • find 如果你不记得将文件放在哪里,可以使用find命令跟踪。但是必须告诉find从哪里开始搜索以及在寻找什么。在本例中,匹配当前文件夹,-name选项告诉find查找名称与搜索模式匹配的文件。find / -name file1表示从 ‘/‘ 开始进入根文件系统搜索文件和目录。
  • kill 从命令行终止进程。可以通过提供要杀死的进程的进程ID (PID)来实现这一点。但是,不要随意终止进程。使用方法:ps -e | grep name,其中name表示程序名称,从而获得该程序的进程ID,随后kill PID即可结束该进程。
  • tar 使用tar命令可以创建包含许多其他文件的存档文件(也称为tarball),也就是压缩包。这使得分发文件集合更加方便。还可以使用tar从存档文件中提取文件。通常要求tar压缩归档文件。要创建存档文件,需要告诉tar存档文件中包含哪些文件,以及希望存档文件具有的名称。以下使用了-c (create)选项和-v (verbose)的选项。verbose选项在将文件添加到归档文件时,通过将文件列表到终端窗口,提供一些视觉反馈。选项-f (filename)后面跟着所需的存档名称。在这个例子中,它是test.tar。其中./*表示当前目录下所有的文件会被压缩。tar -zxvf archive.tar.gz表示解压一个gzip格式的压缩包。
  • gzip 压缩文件,但是默认情况下它会删除原始文件,只留下压缩版本。要同时保留原始版本和压缩版本,请使用-k (keep)选项。
  • ssh 使用ssh命令连接到远程Linux集群并登录到帐户。要建立连接,必须提供您的用户名和远程计算机的IP地址或域名。在本例中,root用户以192.168.4.23登录计算机。回车后输入密码即可。Linux系统输入密码不会显示,正确输入后回车即可。
  • chmod 设置文件或文件夹上的文件权限。主要用于定义谁可以读、写或执行文件或者程序。当使用-l (long format)选项列出文件时,将看到一串字符,如下所示

    如果第一个字符是a或者-,表示是一个文件,如果是d则是一个目录。、在每个集合中,r代表读,w代表写,x代表执行。通常使用chmod +x program会将名为program的程序赋予可执行权限。

以下是系统管理方面最长用到的几个命令,熟练以上命令搞DFT计算就基本可以了,最好的学习方法是需要用到的时候再去查询相关命令和使用方法。

  • passwd 更改用户的密码。只需输入passwd就可以更改当前用户的密码。还可以更改其他用户帐户的密码,但必须使用sudo。系统将要求输入两次新密码。

  • ping 检查特定ip地址的网络连接情况,通常用于帮助排除网络问题。

  • ps ps命令列出正在运行的进程。在没有任何选项的情况下使用ps会列出当前shell中运行的进程。

  • alias 很有用的设置命令,可以给特定命令提供其他名称。例如alias cls=clear会将clear命令设置一个cls的名称,这样只需要输入cls即可达到clear的效果,非常方便。clear是清屏命令。

  • shutdown 关机。使用不带参数的关机将在一分钟内关闭您的计算机。如果需要立刻关机则输入shutdown now

  • top 显示与Linux机器相关的数据的实时显示。屏幕顶部是状态摘要。第一行显示了时间和计算机运行了多长时间,有多少用户登录了它,以及过去1、5和15分钟的平均负载。第二行显示任务的数量及其状态:运行、停止、休眠和僵死。

  • uname 使用-a (all)选项查看所有内容。使用-s(内核名)选项查看内核的类型。使用-r(内核发布)选项查看内核发布。使用-v(内核版本)选项查看内核版本。

  • w 列出当前登录的用户。

  • whoami 前登录的用户,或者谁登录到无人操作的Linux终端。

5. Homework

  • 熟练以上常用操作命令

References

[1] https://www.howtogeek.com/412055/37-important-linux-commands-you-should-know/