常用Linux命令
常用系统工作命令
1.echo命令
作用:用于在终端输出字符串或变量提出后的值,格式为"echo [字符串 | $变量]"
例如:
把指定字符串"anmtdyd"输出到终端屏幕
使用$变量的方式提取变量SHELL的值,并将其输出到终端屏幕
2.date命令
作用:显示及设置系统的时间和日期,格式:date [选项] [+指定的格式]
参数 | 作用 |
"%t" | 跳格 |
"%H" | 小时(00~23) |
"%I" | 小时(00~23) |
"%M" | 分钟(00~59) |
"%S" | 秒(00~59) |
"%j" | 今年中的第几天 |
按照默认格式查看当前系统时间
按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的date命令
将系统的当前时间设置为2018年10月14日18点38分
参数"%j"可用来查看今天是当前中的第几天,这个参数能够很好地区分备份时间的新旧,即数字越大,越靠近当前时间
3.reboot命令
作用:重启系统(由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启)
4.poweroff命令
作用:关闭系统(该命令与reboot命令相同,都会涉及硬件资源的管理权限,因此默认只有root管理员才可以关闭)
5.ps命令
作用:查看系统中的进程状态,格式为”ps [参数]“
参数 | 作用 |
-a | 显示所有进程 |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示:
参数 | 作用 |
R(运行) | 进程正在运行或运行队列中等待 |
S(中断) | 进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态 |
D(不可中断) | 进程不响应系统异步信号,即便用kill命令也不能将其中断 |
Z(僵死) | 进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放 |
T(停止) | 进程收到停止信号后停止运行 |
查看系统所有进程状态
6.top命令
作用:用于动态地监视进程活动与系统负载等信息
top命令相当强大,能够动态地查看系统运维状态,完全将它看作Linux中的”强化版Windows任务管理器“
第一行:
20:03:41 :系统当前时间
1:08:系统已运行的时间(系统已运行1个小时,8分钟)
3 users:当前有三个用户登录
load average:系统负载(分别为5分钟、10分钟和15分钟的平均值,数值越小表示负载越低),数据时每隔5秒钟检查一次活跃的进程数,然后按特定的算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:
497 total:当前进程总数
1 running:当前有1个进程正在运行
496 sleeping:当前有496个进程正处于睡眠状态中
0 stopped:当前有0个进程处于停止状态
0 zombie:当前有0个进程处于僵死状态
第三行:
1.8 us:用户占用资源百分比
0.4 sy:运行中的进程数
0.0 ni:改变过优先级的进程资源百分比
97.7 id:空闲的资源百分比
0.1 wa:IO等待占用CPU的百分比
0.0 hi:硬中断(Hardware IRQ)占用CPU的百分比
0.0 si:软中断(Software Interrupts)占用CPU的百分比
第四行:
1870784 total:物理内存总量
1060232 used:内存使用量
810552 free:内存空闲量
924 buffers:作为内核缓存的内存量
第五行:
2097148 total:虚拟内存总量
0 used:虚拟内存使用量
2097148 free:虚拟内存空闲量
355228 cached Men:已被提前加载的内存量
7.pidof命令
作用:查询某个指定服务进程的PED值,格式为“pidof [参数] [服务名称]”
每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程
8.kill命令
作用:用于终止某个指定PID的服务进程,格式为“kill [参数] [进程PID]”
9.killall命令
作用:用于终止某个指定名称的服务所对应的全部进程,格式为“kill [参数] [服务名称]”
系统状态监测命令
1.ifconfig命令
作用:用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]”
使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量
2.uname命令
作用:用于查看系统内核与系统版本等信息,格式为“uname [-a]”
在使用uname命令时,一般会固定搭配上-a参数来完整地查看当前系统地内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息
如果要查看当前系统版本地详细信息,则需要查看redhat-release文件
3.uptime命令
作用:用于查看系统的负载信息,格式为“uptime”
它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况;负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5
4.free命令
作用:用于显示当前系统中内存的使用量信息,格式为“free [-h]”
为了保证Linux系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。在使用free命令时,可以结合使用-h参数以更人性化的方式输出当前内存的实时使用量信息
参数 | 作用 |
total | 内存总量 |
used | 已用量 |
free | 可用量 |
shared | 进程共享的内存量 |
buffers | 磁盘缓存的内存量 |
cached | 缓存的内存量 |
5.who命令
作用:查看当前登入主机的用户终端信息,格式为“who [参数]”
可以快速显示出所有正在登陆本机的用户的名称以及他们正在开启的终端信息
第一列:登陆的用户名
第二列:终端设备
第三列:登陆到系统的时间
6.last命令
作用:查看所有系统的登录记录,格式为“last [参数]”
可以查看本机的登录记录。但是,由于这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改。千万不要单纯以该命令地输出信息而判断系统有无被恶意入侵!
7.history命令
作用:用于显示历史执行过地命令,格式为“history [-c]”
执行此命令能显示出当前用户在本地计算机中执行过地最近1000条命令记录
如果觉得1000不够用,还可以自定义/etc/profile文件中的HISTSIZE变量值
在使用history命令时,如果使用-c参数则会清空所有的命令历史记录。还可以使用“!编码数字”的方式来重复执行某一次的命令。
8.sosreport命令
作用:用于收集系统配置及架构信息并输出诊断文档,格式为“sosreport”
当Linux系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,或让他们能提前了解某些复杂问题
工作目录切换命令
1.pwd命令
作用:用于显示用户当前所处的工作目录,格式为“pwd [选项]”
2.cd命令
作用:用于切换工作路径,格式为“cd [目录名称]”
这个命令是最常用的命令之一,可以通过cd命令迅速、灵活地切换到不同地工作目录
例如:进入到“/etc”目录下
进入到“bin”目录下
此时,返回到上一目录(即“/etc”目录)
快速切换到用户的家目录
3.ls命令
作用:用于显示目录中的文件信息,格式为“ls [选项] [文件]”
所处的工作目录不同,当前工作目录下的文件肯定也不同。“-a”参数看到全部文件(包括隐藏文件),“-l”参数查看文件的属性、大小等详细信息
如果想要查看目录属性信息,则需要额外添加一个-d参数
文本文件编辑命令
1.cat命令
作用:用于查看纯文本文件(内容较少的),格式为“cat [选项] [文件]”
cat命令后面追加一个“-n”参数,显示行号信息
2.more命令
作用:用于查看纯文本文件(文件较多的),格式为“more [选项] 文件”
如果需要阅读长篇小说或者非常长的配置文件,那么“cat”就真的不适合了,因为一旦使用cat命令阅读长篇的文本内容,信息就会在屏幕上快速翻滚,导致自己还没有来得及看到,内容就已经翻篇了,因此对于长篇的文本内容,推荐使用“more”命令来查看,“more”命令会在最下面使用百分比的形式来提示您已经阅读了多少内容,还可以使用空格键或者回车键来向下翻页
3.head命令
作用:用于查看纯文本文档的前N行,格式为“head [选项] [文件]”
在阅读文本内容时,谁也难以保证会按照从头到尾的顺序往下看完整个文件,如果只想看文本中前20行的内容,head命令就可以排上用场了
4.tail命令
作用:用于查看纯文本文档的后N行或持续刷新内容,格式为“tail [选项] [文件]”
我们可能还会遇到另外一种情况,比如需要查看文本内容的最后20行,这时就需要用到tail命令了,tail命令的操作方法与head命令非常相似,只需要执行“tail -n 20 文件名”命令就可以达到这样的效果。tail命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,这特别有用,此时的命令格式为“tail -f 文件名”
5.tr命令
作用:用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”
我们想要快速地替换文本中的一些词汇,又或者把整个文本内容都进行替换,如果进行手工替换,难免工作量太大,尤其是需要处理大批量的内容时,进行手工替换更是不现实。这时,就可以先使用cat命令读取待处理的文本,然后通过管道符把这些文本内容传递给tr命令进行替换操作即可。
6.wc命令
作用:用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”
参数 | 作用 |
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
7.stat命令
作用:用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”
8.cut命令
作用:用于按“列”提取文本字符,格式为“cut [参数] 文本”
在Linux系统中,如何准确地提取出最想要地数据,这也是应该重点学习地内容。一般而言,按基于“行”地方式来提取数据时比较简单的,只需要设置好要搜索地关键词即可。但是如果按列搜索,不仅要使用-f参数来设置需要看地列数,还需要使用-d参数来设置间隔符号。passwd在保存用户数据信息时,用户信息地每一项值之间是采用冒号来间隔的,接下来使使用下述命令尝试提取出passwd文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容
9.diff命令
作用:用于比较多个文本文件的差异,格式为“diff [参数] 文件”
使用diff --brief命令显示比较后的结果,判断文件是否相同
使用-c参数命令来描述文件内容具体的不同
文件目录管理命令
1.touch命令
作用:用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”
“touch”命令主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面
参数 | 作用 |
-a | 仅修改“读取时间”(atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 同时修改atime和mtime |
修改文件的时间示例
2.mkdir命令
作用:用于创建空白的目录,格式为“mkdir [选项] 目录”
在Linux系统中,文件夹是最常见的文件类型之一
3.cp命令
作用:用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”
在Linux系统中,复制操作具体分为3种情况:
- 如果目标文件是目录,则会把源文件复制到该目录中
- 如果目标文件也是普通文件,则会询问是否要覆盖它
- 如果目标文件不存在,则执行正常的复制操作
参数 | 作用 |
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr |
5.mv命令
作用:用于剪切文件或文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”
剪切不同于复制,因为它会默认把源文件删除掉,只保留剪切后的文件,如果在同一目录中对一个文件进行剪切操作,其实就是对其进行重命名
5.rm命令
作用:用于删除文件或目录,格式为“rm [选项] 文件”
在Linux系统中删除文件时,系统会默认询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在rm命令后跟上-f参数来强制删除,如果要删除一个目录,需要在rm命令后跟上-r参数才可以,否则删不掉
6.dd命令
作用:用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”
dd命令是一个比较重要而且比较有特色的一个命令,他能够让用户按照指定大小和个数的数据块来复制文件的内容。当然如果愿意的话,还可以在复制过程中转换其中的数据。Linux系统中有一个名为/dev/zero的设备文件,这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。
参数 | 作用 |
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“块”的个数 |
dd命令从/dev/zero设备文件中取出一个为560MB的数据块,然后保存成名为“560_file”的文件
dd命令的功能也绝不仅限于复制文件这么简单,如果想把光驱设备中的光盘制作成iso格式的镜像文件,在Windows系统中需要借助于第三方软件才能做到,但在Linux系统中可以直接使用dd命令来压制出光盘镜像文件,将它变成一个可立即使用的iso镜像
bs块与count个数关系:560M=bs(560M)容量 x count(1)次数
7.file命令
作用:用于查看文件的类型,格式为“file 文件名”
由于文本、目录、设备等这些一切都统称为文件,我们又不能单凭后缀就知道具体的文件类型,这时就需要使用file命令来查看文件类型了
打包压缩与搜索命令
1.tar命令
作用:用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]”
参数 | 作用 |
-c | 创建和压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-P | 保留原始的权限与属性 |
-p | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
将打包后的压缩文件指定解压到/root/etc目录中
2.grep命令
作用:用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”
参数 | 作用 |
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有“关键词”的行 |
grep命令是用途最广泛的文本搜索匹配工具,最常用的两个参数:-n参数用来显示搜索到信息的行号,-v参数用于反选信息(即没有包含关键词的所有信息行)
在Linux系统中,/etc/passwd文件时保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用grep命令来查找出当前系统中不允许登录系统的所用用户信息
3.find命令
作用:用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”
在Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(比如:文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上
参数 | 作用 |
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
--type b/d/c/p/l/f | 匹配文件类型(后面的字母参数一次表示为块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec ...... {} \; | 后面可跟用于进一步处理搜索结果的命令 |
-exec参数重要的作用:用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,虽然exec是长格式形式,但依然只需要一个减号(-)
根据文件层次标准(Filesystem Hierarchy Standard)协议,Linux系统中的配置文件会保存到/etc目录中
在整个系统中搜索权限中包括SUID权限的所有文件,只需要使用-4000即可