由于不同的Linux发行版自带的命令集有所不同,这里根据POSIX标准中给出的命令集作为参照,对openEuler操作系统中常用的命令进行大致分类和介绍。
● uname命令:用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
● date命令:显示或设置系统时间与日期。
● locale命令:将有关当前语言环境或全部公共语言环境的信息写到标准输出上。
● logname命令:可以显示自己初次登录到系统中的用户名,主要识别sudo前后情形,与whoami相反。
● who命令:显示目前登录系统的用户信息。
● whoami命令:显示当前的用户是谁,也就是显示自己的用户名。
● df命令:列出文件系统的整体磁盘空间的使用情况。可以用来查看磁盘已被使用多少空间。
● du命令:也是查看使用空间的,但是与df命令不同的是,du命令会列出当前目录下所有文件的磁盘占用情况。
● env命令:用于显示系统中已存在的环境变量。
● getconf命令:用于获取系统信息,比如getconf PAGE_SIZE查看系统内存页面大小。
● logger命令:是一个Shell命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。
● man命令:是Linux下的帮助命令,通过它可以查看Linux中的命令帮助、配置文件帮助和编程帮助等信息。
● useradd命令用来新建一个用户,groupadd命令用来新建用户组,usermod命令修改用户信息,passwd命令用来更改用户密码。
● chmod命令用来变更文件或目录的权限。chown命令用于改变某个文件或目录的所有者和所属的组,可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。chgrp命令用于修改文件(或目录)的所属组。为了方便初学者记忆,可以将chgrp理解为“change group”的缩写。
● newgrp命令可以切换用户的有效组。
● id命令可以显示真实有效的用户ID UID和组ID GID。UID是一个用户的唯一身份标识。组ID(GID)则对应多个UID。id命令已经默认预装在大多数Linux系统中。要使用它,只需要在控制台输入id。
● umask命令设置用户创建文件的默认权限。
● cd命令:是Change Directory的缩写,用来切换工作目录。
● ls命令:用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以区分不同类型的文件。
● mkdir命令:用来创建目录。
● mv命令:用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
● cp命令:用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制到一个指定文件名的具体的文件或一个已经存在的目录下。此命令还支持同时复制多个文件。
● rm命令:可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除。对于链接文件,只是删除整个链接文件,而原有文件保持不变。注意,使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复。unlink命令通过系统调用函数unlink删除指定的文件,和rm命令作用一样,都是删除文件。在openEuler中,删除操作需要输入Yes才能生效。
● pwd命令:是Print Working Directory的缩写,其功能是显示当前所在工作目录的全路径。主要用在当不确定当前所在位置时,查看当前目录的绝对路径。
● ar命令:是一个备份压缩命令,用于创建、修改备存文件(archive),或从备存文件中提取成员文件。此命令最常见的用法是将目标文件打包为静态链接库。
● unzip命令:用于解压缩由zip命令压缩的“.zip”压缩包。
● zcat命令:用于不真正解压缩文件,就能显示压缩包中文件内容的场合。
● cksum命令:是检查文件的CRC是否正确,确保文件从一个系统传输到另一个系统的过程中不被损坏。这种方法要求校验和在源系统中被计算出来,在目的系统中又被计算一次,两个数字进行比较,如果校验和相等,则该文件被认为是正确传输的。
● touch命令:用于创建文件或修改文件/目录的时间戳。
● vi命令:是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫Vim,它是vi的增强版,与vi编辑器完全兼容,而且实现了很多增强功能。
● ed命令:是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。ed命令并不是一个常用的命令,一般使用比较多的是vi命令。
● sed命令:是一个面向字符流的非交互式编辑器,也就是说,sed不允许用户与它进行交互操作。
● awk命令:是一个强大的文本分析工具,相对于grep的查找、sed的编辑,awk在对数据分析并产生报告时,显得尤为强大,简单来说,awk 将数据逐行读入,以空格作为默认分隔符,对每行进行切片,并对切开的部分进行各种分析处理。printf是awk的重要格式化输出命令。
● iconv命令:用来转换文件的编码方式,比如它可以将UTF8编码转换成GB18030编码,反过来也行。
● cat命令:将文件或标准输入组合输出到标准输出。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。cat命令的名称来源于concatenate一词。
● more命令:是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。
● head命令:用来显示档案的开头,默认打印其相应文件的开头10行。
● tail命令:用于输入文件中的尾部内容,默认在屏幕上显示指定文件的末尾10行。
● file命令:用来探测给定文件的类型。
● find命令:用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时不设置任何参数,则此命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
● grep命令:是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式打印,它的使用权限是所有用户。
● sort命令:在Linux中非常有用,它将文件进行排序,并将排序结果标准输出。
● tsort命令:对文件执行拓扑排序。
● wc命令:为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
● join命令:用于将两个文件中指定栏位内容相同的行连接起来。找出两个文件中指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
● split命令:可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,以提高可读性、生成日志等。
● csplit命令:用于将一个大文件分割成小的碎片,并且将分割后的每个碎片保存成一个文件。碎片文件的命名类似“xx00”“xx01”。csplit是split的一个变体,split只能够根据文件大小或行数来分割,但csplit能够根据文件本身特点来分割。
● ln命令:是Linux中又一个非常重要的命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。
● cmp命令:用来比较两个文件是否有差异。当相互比较的两个文件完全相同时,则该指令不会显示任何信息。若发现有差异,预设会标识出第一个不同之处的字符和列数编号。
● diff命令:用来比较两个文件或目录的不同,并且是以行为单位来比对的。一般是用在ASCII纯文本文件的比对上。因为是以行为比对的单位,所以diff通常用在同一文件(或软件)的新旧版本差异对比上,常常用于生成源代码的补丁包文件(patch)。
● patch命令:用于修补文件,就不得不提到diff命令,也就是制作patch的必要工具,此命令用来检查文件中不可移植的部分。
● dd命令:将指定大小的数据块复制为一个文件,并在复制的同时进行指定的转换。
● bg命令:将进程搬到后台运行,使前台可以执行其他任务。该命令的运行效果与在命令后面添加符号&的效果是相同的,都是将其放到系统后台执行。
● fg命令:将进程搬到前台运行。
● nohup命令:可以在退出账户之后继续运行相应的进程,nohup是no hang up的缩写,即不挂起。
● jobs命令:查看当前有多少在后台运行的命令。
● fuser命令:是用来显示一个进程所有正在使用的file、filesystem或者sockets。
● ps命令:用于报告当前系统的进程状态。可以搭配kill命令随时中断、删除不必要的程序。此命令是基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。
● kill命令:通过向进程发送指定的信号来结束相应进程。在默认情况下,采用编号为15的TERM信号。此信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。
● nice命令:用于以指定的进程调度优先级启动其他程序。
● renice命令:可以修改正在运行的进程的调度优先级。
● time命令:可以获取一个程序的执行时间,包括程序的实际运行时间以及程序运行在用户态和内核态的时间。
● ipcs命令:输出当前系统下各种方式的IPC状态信息(共享内存、消息队列、信号)。
● ipcrm命令:移除一个消息对象,或者共享内存段,或者一个信号集,同时会将相关数据也一起移除。当然,只有超级管理员或者IPC对象的创建者才有这项权利。
● mkfifo命令:创建一个FIFO特殊文件,是一个命名管道,可以用于进行进程间通信。
● c99—— compile standard C programs。
● fort77—— FORTRAN compiler。
● yacc代表Yet Another Compiler Compiler。
● m4命令:是一个宏处理器,将输入复制到输出,同时将宏展开。宏可以是内嵌的,也可以是用户定义的。
● make命令:是GNU的工程化编译工具,用于执行Makefile工程文件编译众多相互关联的源代码文件,以实现工程化的管理,提高开发效率。
● nm命令:用于显示二进制目标文件的符号表。
● od命令:用于将指定文件内容以八进制、十六进制或其他格式显示,通常用于显示或查看文件中不能直接显示在终端的字符。
● strip命令:从字面上可以把它理解成脱衣服的意思,简单地说,就是给文件脱掉外衣,具体就是从特定文件中剥掉一些符号信息和调试信息,使文件变小。
● expand命令:用于将文件的制表符(TAB)转换为空白字符(space),将结果显示到标准输出设备。
● mesg命令:用于设置当前终端的写权限,即是否让其他用户向本终端发信息。将mesg设置为y时,其他用户可利用write命令将信息直接显示在屏幕上。
● read命令:从键盘读取变量的值,通常用在Shell脚本中与用户进行交互的场合。
● tty命令:可以查看现在使用的终端标识。
● stty命令:对当前为标准输入的设备设置某些I/O选项,该命令将输出写到当前为标准输出的设备中。
● tee命令:读取标准输入,把这些内容同时输出到标准输出和(多个)文件中,此命令可以重定向标准输出到多个文件。
● crontab命令:可以在固定的间隔时间执行指定的系统指令或Shell脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
● sh命令:Shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。
● test命令:Shell环境中测试条件表达式的实用工具。
● expr命令:一款表达式计算工具,用来完成表达式的求值操作。
● command命令:调用指定的命令并执行,命令执行时不查询Shell函数。此命令只能执行Shell内部的命令。
● echo命令:用于在Shell中打印Shell变量的值,或者直接输出指定的字符串。
● at命令:用于在指定时间执行命令。允许使用一套相当复杂的指定时间的方法。
● batch命令:用于在指定时间,当系统不繁忙时执行任务,用法与at命令相似。
● basename命令:用于显示去除路径和文件后缀部分的文件名或者目录名。
● bc命令:英文全拼为“Binary Calculator”,是一种支持任意精度的交互执行的计算机语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便地进行浮点运算。
● cal命令:名字来自英语单词“Calendar”,用于显示当前日历或者指定日期的日历,如果没有指定参数,则显示当前月份。
● getopt命令:与getopts都是Bash中用来获取与分析命令行参数的工具,常用在Shell脚本中分析脚本参数。
● dirname命令:去除文件名中的非目录部分,仅显示与目录有关的内容。
● hash命令:负责显示与清除命令运行时系统优先查询的哈希表(hash table)。Linux系统下会有一个哈希表,每个Shell独立,第一次使用该命令时,Shell解释器默认会从PATH路径下寻找该命令的路径。第二次使用该命令时,Shell解释器首先会查看哈希表,表中没有该命令时才会去PATH路径下寻找。
● sleep命令:常用于在Shell脚本中延迟时间。
● wait命令:用来等待命令的命令,直到其执行完毕后返回终端。该命令常用于Shell脚本编程中,待指定的命令执行完成后,才会继续。
● xargs命令:xargs是给命令传递参数的过滤器,也是组合多个命令的工具。其可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据,还可以将单行或多行文本输入转换为其他格式,例如多行变单行、单行变多行。
● true和false命令:始终返回设定的退出状态。程序员和脚本通常使用退出状态评估命令执行得成功与否(0为成功,非0为不成功)。