Linux命令简介
1 Linux系统的命令概述
- 在 Linux 操作系统中,凡是在字符操作界面中输入能够完成特定操作和任务的字符串都可以称为命令。
- 严格来说,命令通常只代表实现某一类功能的指令或程序的名称。
1.1 Shell
- Linux 命令的执行必须依赖于 Shell 命令解释器。
- Shell 实际上是在 Linux 操作系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命令并进行解释,将需要执行的操作传递给系统内核执行,Shell 在用户和内核之间充当了“翻译官”的角色。
- 当用户登录到 Linux 系统时,会自动加载一个 Shell 程序,以便给用户提供可以输入命令的操作系统。Bash 是 Linux 操作系统中默认使用的 Shell 程序,文件位于/bin/bash。
1.2 Linux命令分类
根据 Linux 命令与 Shell 程序的关系,Linux 命令一般分为以下两种类型:
- 内部命令
- 外部命令
内部命令 | 外部命令 |
---|---|
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,有Shell加载后才能执行 |
1.3 Linux命令
- 格式:命令字 [选项] [参数] 操作对象
- 命令字、选项、参数之间用空格分开,多余的空格将被忽略。
- [ ]括起来的部分表示可以省略,即命令行可以只有命令字,也可以只有命令字、选项,或者只有命令字、参数。
- 命令字
- 命令字即命令名称,是整条命令中最关键的一部分。在 Linux 的字符操作界面中,使用命令字唯一确定一条命令,因此在输入命令时一定要确保输入的命令字正确。
- 在 Linux的命令环境中,无论是命令名还是文件名,对英文字符的处理是区分大小写的,操作时需要注意。
- 选项
- 选项的作用是调节命令的具体功能,决定这条命令如何执行。同一个命令字配合不同的选项使用时,可以获得相似但具有细微差别的功能。
- 命令使用的选项有如下一些特性:
- 不同的命令字能够使用的选项也会不同(选项的个数和内容)。
- 选项的数量可以是多个,也可以省略。同时使用多个选项时,选项之间使用空格分隔。若不使用选项,将执行命令字的默认功能。
- 使用单个字符的选项时,一般在选项前使用“-”符号(半角的减号符)引导,称为短格式选项,如“-l”。多个单字符选项可以组合在一起使用,如“-al”等同于“-a -l”。
- 使用多个字符的选项时,一般在选项前使用“–”符号(两个半角的减号符)引导,称为长格式选项,如“–help”。
- 有些命令字对于同一功能会同时提供长、短两种格式的选项。长格式的选项意义明确,容易记忆,而短格式的选项结构简单、输入快捷。两种格式可以混用。
- 注意:
- Linux区分大小写,参数有多个的时候,可以分开写,也可以合并写,参数如果用简写使用-开头,如果写单词全拼,用–开头。
- 命令帮助:对于不熟悉的命令和参数,可以使用帮助来查看。如:命令 --help;除了–help之外,还有一个帮助命令,这个命令显示的信息更完整,这个命令是:man 命令。
在实际使用 Linux 命令行的过程中,“选项”和“参数”的称谓经常混淆,甚至前后顺序也允许颠倒,但一般不会影响命令的执行效果,所以很多时候并不做严格区分。
1.4 编辑Linux命令行
编辑Linux命令行的辅助操作
- Tab 键:自动补齐
该功能只能向后补齐,且必须以已输入的部分字符开头,能够唯一定位一个命令字或文件、目录名,否则可按两次 Tab键,系统将输出可用的名称列表。 - 反斜杠“\”:强制换行
- Ctrl+U组合键:清空至行首
- Ctrl+K组合键:清空至行尾
- Ctrl+L组合键:清屏
- Ctrl+C组合键:取消本次命令编辑
2 Linux系统的命令帮助
2.1 使用help命令
- help 命令本身是 Linux Shell 中的一个内建指令,其用途是查看各 Shell 内部命令的帮助信息。
- 使用 help 命令时,只需要添加内部命令的名称作为参数即可。
- 例如,执行“help pwd” 命令可以查看 Shell 内部命令 pwd 的帮助信息(pwd 命令用于显示当前用户所在的工作目录)。
2.2 使用“–help”选项
- 对于大多数 Linux 外部命令,可以使用一个通用的命令选项“–help”来显示对应命令字的格式及选项等帮助信息。若该命令字没有“–help”选项,一般只会提示简单的命令格式。
- 例如,执行“ls --help”命令可以查看 ls 命令的帮助信息(ls 命令用于显示文件或目录列表信息)
2.3 使用man手册
- man 手册页(Manual Page)是 Linux 操作系统中最为常用的一种在线帮助形式,绝大部分的外部软件在安装时为执行程序、配置文件提供了详细的帮助手册页。这些手册页中的信息按照特定的格式进行组织,通过统一的手册页浏览程序 man 进行阅读。
- 例如,执行“man file”命令可以查看 file 命令的手册页信息(file 命令用于判断文件的类型)
- 在阅读 man 手册页时将以全屏的文本方式显示,并且提供了交互式的操作环境。
- 按↑、↓方向键可以向上、向下滚动一行文本内容;按 Page Up 键和 Page Down 键可以向上、向下翻页显示;按 Q 键或 q 键可以随时退出手册页的阅读环境;按/键后可以对手册内容进行查找,如输入“/-v”可以查找到“-v”选项的帮助信息,若找到的结果有多个,还可以按 n 键或N 键分别向下、向上进行定位选择。
- 如果需要将 man 手册页的内容保存成文本文件以便在其他系统中查看,可以结合 col命令去除手册页中的格式控制字符,并将显示结果保存为新的文件。
man ls | col -b > lshelp.txt- col 是一个命令程序,用于过滤文本中的一些特殊控制字符
- 管道:用竖杠符号“|”表示,用于将前面命令的屏幕输出结果作为后面命令的操作对象(输入)
- 重定向输出:用大于符号“>”表示,前面的命令成功执行以后,其屏幕输出结果将保存到“>”号后边指定的文件中,而不是直接输出到屏幕,因此称为重定向
3 Linux系统的基础命令
3.1 查看系统版本
- 语法 : cat /etc/*release
- *release 表示显示任意以release结尾的文件
3.2 date命令
用于打印或设置系统的日期和时间,能够显示当前时间,支持多种时间格式的自定义输出,可以设置系统时间(需要管理员权限)。
- 基本语法:
date [选项]… [+格式]
date [选项] [MMDDhhmm[[CC]YY][.ss]] - 显示当前时间:
直接输入 date 即可显示当前的系统时间。 - 设置系统时间:
通过格式 date -s “YYYYMMDD hh:mm:ss” 可以设置具体的日期和时间。
3.3 hwclock命令
hwclock命令用于显示与设定硬件时钟
- 语法:
hwclock [–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test][–utc][–set --date=<日期与时间>] - 参数:
–adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用–adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
–debug 显示hwclock执行时详细的信息
–directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟
–hctosys 将系统时钟调整为与目前的硬件时钟一致
–set --date=<日期与时间> 设定硬件时钟
–show 显示硬件时钟的时间与日期
–systohc 将硬件时钟调整为与目前的系统时钟一致
–test 仅测试程序,而不会实际更改硬件时钟
–utc 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。 - 查看硬件时钟:hwclock
- 设置硬件时钟时间(将系统时间写入硬件时钟):hwclock --systohc
- 从硬件时钟读取时间,设置系统时间:hwclock --hctosys
3.4 Linux系统硬件时钟和系统时间
在Linux系统中,硬件时钟(也称为实时时钟或RTC, Real-Time Clock)和系统时间(也称为软件时钟或内核时钟)是两个不同的概念,它们各自扮演着重要的角色。
3.4.1 硬件时钟 (RTC)
- 定义:
硬件时钟是指计算机主板上的一个物理时钟装置,它即使在计算机关闭或断电的情况下也能保持运行。RTC通常由一个小的电池供电,确保时间信息不会丢失。 - 功能:
- 主要负责保存系统的当前时间和日期,以便在系统启动时提供一个初始的时间设置。
- 它在系统未启动时也能保持准确的时间,从而为系统提供了重启后的基本时间参考。
- 特点:
- 在系统未启动时也能保持准确的时间。
- 一般存储的是协调世界时(UTC),但也可以配置为本地时间(这取决于系统的设置)。
- 通过 hwclock 命令可以查看和设置硬件时钟。
3.4.2 系统时间
- 定义:
系统时间是由操作系统内核维护的一个虚拟时钟,它依赖于CPU的时钟周期来计时。当系统启动时,它会根据硬件时钟初始化,并且在系统运行期间持续更新。 - 功能:
用于记录和管理所有与时间相关的操作,如文件的时间戳、日志记录、定时任务等。它是Linux系统中所有应用程序和服务获取当前时间的主要来源。 - 特点:
- 只在系统运行时有效;一旦系统关闭或重启,这个时钟就会停止计时。
- 系统时间通常是基于协调世界时(UTC),然后根据系统的时区设置转换为本地时间。
- 系统时间可以通过网络时间协议(NTP)进行同步,以确保与互联网标准时间服务器的时间一致。
- 通过 date 和 timedatectl 命令可以查看和设置系统时间。
3.4.3 两者区别
- 电源依赖性:硬件时钟在系统关闭后仍然保持工作,而系统时间则依赖于系统的运行状态。这意味着硬件时钟可以在系统未通电的情况下继续计时,而系统时间则会在系统关闭后停止。
- 准确性:硬件时钟可能会有轻微的漂移,尤其是在长时间未校准的情况下。相比之下,系统时间可以通过NTP服务定期与外部时间服务器同步,因此通常更加准确。
- 初始化:系统启动时,硬件时钟的时间会被用来初始化系统时间。之后,系统时间会独立运行,并可能通过NTP等方式进行调整,而不再直接依赖硬件时钟。
- 作用范围:硬件时钟仅用于保存基本的时间信息,而系统时间则涉及到整个操作系统的各种时间敏感型操作,如文件系统的时间戳、日志记录、计划任务执行等。
3.4.5 时间不同步的危害
硬件时钟和系统时间不同步可能会给Linux系统带来一系列问题,影响系统的稳定性和可靠性:
- 日志记录错误
- 计划任务执行失败
- 文件系统和数据库一致性问题
- 网络通信问题
- 应用程序行为异常
- 审计和合规性问题
3.4.6 时间同步
为了确保系统时间的准确性,通常建议采取以下措施:
- 启动时同步
在系统启动时,使用 hwclock --hctosys 将硬件时钟的时间复制到系统时间。这一步骤确保了系统启动时能够获得一个相对准确的时间起点。 - 运行时同步
在系统运行期间,使用NTP服务(如 ntpd 或 systemd-timesyncd)来定期同步系统时间。这有助于保持系统时间与全球标准时间的一致性,特别是在网络连接可用的情况下。 - 关机时同步
在系统关闭前,使用 hwclock --systohc 将系统时间写回到硬件时钟,以确保下一次启动时的时间是准确的。这对于那些不经常连接到互联网的系统尤为重要,因为它们无法通过NTP服务来频繁校正时间。
如果在生产环境中,不建议写一个定时器自动同步硬件时钟脚本。如果时间更新跳跃幅度太大,请仔细评估时间更新后是否会对已运行系统造成影响,避免同步后依赖于时间戳的系统业务出现重大问题。
3.5 清屏命令
clear:用于清除终端屏幕上的内容,使屏幕变得干净整洁。这在终端显示的信息过多,或者你想要一个全新的工作界面时非常有用。
3.6 logout命令
logout:用于退出系统(注销)
3.7 shutdown命令
shutdown 命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。
- 语法:shutdown [-t seconds] [-rkhncfF] time [message]
- 参数说明:
- -t seconds : 设定在几秒钟之后进行关机程序。
- -k : 并不会真的关机,只是将警告讯息传送给所有使用者。
- -r : 关机后重新开机。
- -h : 关机后停机。
- -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
- -c : 取消目前已经进行中的关机动作。
- -f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
- -F : 关机时,强迫进行 fsck 动作。
- time : 设定关机的时间。
- message : 传送给所有使用者的警告讯息。
3.7.1 关机
shutdown -h 指定时间,此处-h参数是halt的缩写。
- shutdown -h now 代表立刻关机
- shutdown -h 10 代表10分钟以后关机
- shutdown -h 20:00:00 代表晚上八点整关机
- poweroff:立刻关机
3.7.2 重启
shutdown -r 指定时间,-r是reboot的缩写,代表重启
reboot本身也是一个重启命令
- shutdown -r now 代表立刻重启
- shutdown -r 10 代表10分钟以后重启
- shutdown -r 20:00:00 代表晚上八点整重启
- reboot 代表立即重启