Linux 命令行基础知识
系统信息命令
本节中的命令将帮助系统管理员熟悉他们负责的系统:
不带选项运行时,hostname将显示/etc/hosts或/etc/hostname中定义的系统主机名。通过添加-I(或等效的--all-ip-addresses),将返回所有网络接口上配置的所有地址。
可以分别使用du和df轻松找到磁盘使用情况和可用存储空间。
严格来说,前者将按文件或目录估算文件空间使用情况,而后者将按每个文件系统报告相同的信息。两者都支持-h标志,该标志将输出格式化为人类可读的格式(例如 10K、15M、3G),而不是使用字节。
当组合开关-sch后面跟着目录和星号通配符*时, du可以汇总目录及其子目录的总数。此外,还会提供总计。换句话说,
du -sch /var/log/*
将打印/var/log中所有文件和子目录的文件空间使用情况以及总计。如果只查看总计,请从-sch中删除c。
- 在规划可在系统上运行的软件类型时,内存和 CPU 是另一组重要信息。
例如,您不会在只有 1 GB RAM 的机器上运行邮件服务。要了解 CPU 的架构、内核数、供应商 ID、型号名称和速度(以及更多),可以使用 lscpu 。另一方面, free命令(顺便说一下,它还支持 -h以人性化的形式返回输出)显示系统中的可用内存量和已用内存量。
- 正常运行时间是一项关键指标,它指示系统运行的时间。如果您只想知道机器运行了多长时间,请使用-p选项。如果删除该标志,正常运行时间还将返回当前系统时间、登录用户数以及过去 1、5 和 15 分钟的平均负载。
文本处理命令
人们常说,在 Unix 及其衍生产品中,一切都是文件,因此需要掌握命令行文本处理工具。以下命令是每个系统管理员的必备命令。当我们在 Linux 社区中说一切都是文件 时,我们的意思是每个系统对象都可以作为文件以常规意义打开、读取和写入(前提是您拥有执行此操作所需的权限)。
- 要显示文件的前十行或后十行,请分别使用head或tail。
如果您有兴趣从文件开头或末尾检查不同数量的行,可以使用head -n或tail -n后跟一个整数和文件名称。例如,
head -n 2 /etc/passwd
将返回/etc/passwd的前两行。通常,我们会对查看文件的最后几行感兴趣,并在添加更多行时对其进行监视。当我们想要在记录事件时监视系统日志时,就是这种情况。为此,我们使用tail -f后跟日志文件的路径,例如
tail -f /var/log/httpd/access_log
grep student /etc/passwd
要忽略大小写以便Student和StUdEnT也匹配,请使用
grep -i student /etc/passwd
反而。
您还可以使用正则表达式代替简单模式。为此,请添加-E开关,如下所示
grep -E 'svm|vmx' /proc/cpuinfo
其中'svm|vmx'是与字符串svm或vmx匹配的正则表达式。顺便说一下,此命令检查您的 CPU 上是否启用了虚拟化。
- 为了搜索系统对象(很可能是我们想要查找或使用的文件或目录),我们将使用find。
首先,我们需要指出必须开始搜索的目录、对象类型和名称。虽然我们可以添加其他过滤条件来缩小搜索范围,但这是find用法的典型示例。例如,
find /etc -type f -name sshd_config
将从/etc开始搜索名为sshd_config的常规文件(类型 f)。
- 要从文件的每一行中提取部分内容,cut将是我们最好的盟友。
此工具通常与-d一起使用,以指定用单引号括起来的分隔符,-f后跟数字、范围或逗号分隔的文件列表,以指示我们感兴趣的部分。
如果要列出/etc/passwd中找到的用户(第 1 个字段)及其默认 shell(第 7 个字段),则可以使用
cut -d':' -f1,7 /etc/passwd
要添加主目录(第 6 个字段),您可以使用
cut -d':' -f1,6-7 /etc/passwd
反而。
空文件、重定向和管道
Linux 允许您使用touch命令后跟新文件的名称来创建空文件。这对于为沙盒环境初始化文件非常有用。如果touch后跟现有文件的名称,则其修改时间将更新为当前系统时间。
- 要在一个步骤中初始化文件并向其添加内容(或覆盖其内容),我们将使用>重定向运算符,后跟文件名。请记住,重定向运算符前面必须跟有将输出插入到文件中的命令。
例如,
cut -d':' -f1,7 /etc/passwd > usersandshells.txt
将在当前工作目录中创建一个名为usersandshells.txt的文件(如果它以前不存在)或用命令的输出覆盖其内容(如果该文件存在)。
- 为了避免在添加内容时覆盖现有文件,请改用>>。如果文件不存在,此方法还会初始化该文件。
重要的是要注意,使用>或>>并不是一个万能的解决方案,而是取决于使用它的具体场景。
- 通常,您需要将两个或多个命令链接在一起,以便将一个命令的输出作为下一个命令的输入发送。
为此,我们将使用竖线|,也称为管道。因此,
cut -d':' -f1,7 /etc/passwd | grep student
将从cut -d':' -f1,7 /etc/passwd的输出中过滤出包含单词 student 的行。
- 为了对文件中或命令输出的唯一行进行排序,我们将一起使用sort和uniq。
为了说明这一点,你可以这样做
cut -d':' -f7 /etc/passwd | sort | uniq
这将返回/etc/passwd中列出的帐户的默认 shell。sort遵循第一个管道,然后将其输出发送到uniq ,而不是相反,这是有充分理由的。后者要求事先对其输入进行排序,以返回唯一的行。
请继续阅读本系列的下一篇指南《Linux 中的用户和组管理》,以继续学习 Linux 管理。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~