阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》

chen887625as

体验平台简介

阿里云开发者实验室提供免费云资源和丰富的场景化实践,旨在帮助开发者在学习应用技术,了解阿里云产品的特性。

阿里云体验实验室地址:https://developer.aliyun.com/adc/labs/

教程介绍

本场景将介绍 Linux 中常用的系统工作命令以及系统状态检测命令

场景体验

场景内容选自 阿里云体验实验室
本场景将提供一台配置了 Aliyun Linux 2 的 ECS 实例(云服务器)。您可以参考本教程学习 Linux 系统中的文本编辑工具 Vim 以及文本处理命令。

阿里云 Aliyun Linux 2 的 ECS 实例资源
https://developer.aliyun.com/adc/scenario/c8d3efc90d634366bc012a69129c9aef

涉及以下云产品和服务

[云服务器 ECS]
云服务器( Elastic Compute Service,简称 ECS )是阿里云提供的性能卓越、稳定可靠、弹性扩展的 IaaS ( Infrastructure as a Service )级别云计算服务。云服务器 ECS 免去了您采购 IT 硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云 ECS 持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

[Aliyun Linux 2]
Aliyun Linux 2 是阿里云推出的下一代 Linux 发行版,它为云上应用程序环境提供 Linux 社区的最新增强功能,在提供云上最佳用户体验的同时,也针对阿里云基础设施做了深度的优化。Aliyun Linux 2 OS 镜像可以运行在阿里云全规格系列 VM 实例上,包括弹性裸金属服务器 (神龙)。

目录一:常用系统工作命令

echo

命令描述:echo 命令用于在终端输出字符串或变量提取后的值。

命令格式:echo [字符串 | $变量]。

命令用法示例:

显示普通字符串

echo "Hello World"

显示变量
首先在 shell 环境中定义一个临时变量 name 。

export name="Tom"

使用 echo 命令将变量 name 的值显示到终端。

echo $name

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图

显示结果定向至文件
以下命令会将文本 This is a test text.输出重定向到文件 test.txt 中,如果文件已存在,将会覆盖文件内容,如果不存在则创建。其中>符号表示输出重定向。

echo "This is a test text." > test.txt

如果您希望将文本追加到文件内容最后,而不是覆盖它,请使用>>输出追加重定向符号。

显示命令执行结果
以下命令将会在终端显示当前的工作路径。

echo `pwd`

注意:pwd 命令是用一对反引号(``)包裹,而不是一对单引号('')。

使用$(command)形式可以达到相同效果。

echo $(pwd)

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(1)

date

命令描述:date 命令用于显示和设置系统的时间和日期。

命令格式:date [选项] [+格式]。

其中,时间格式的部分控制字符解释如下:

| 字符 | 说明 |

|--|--|

| %a | 当地时间的星期名缩写(例如: 日,代表星期日) |

| %A |当地时间的星期名全称 (例如:星期日)|

| %b |当地时间的月名缩写 (例如:一,代表一月) |

| %B |当地时间的月名全称 (例如:一月)|

| %c |当地时间的日期和时间 (例如:2005 年 3 月 3 日 星期四 23:05:25 ) |

| %C |世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20 )|

| %d | 按月计的日期(例如:01 ) |

| %D |按月计的日期;等于%m/%d/%y|

| %F | 完整日期格式,等价于 %Y-%m-%d |

| %j |按年计的日期( 001-366 )|

| %p | 按年计的日期( 001-366 ) |

| %r |当地时间下的 12 小时时钟时间 (例如:11:11:04 下午)|

| %R | 24 小时时间的时和分,等价于 %H:%M |

|%s |自 UTC 时间 1970-01-01 00:00:00 以来所经过的秒数|

| %T | 时间,等于%H:%M:%S |

| %U |一年中的第几周,以周日为每星期第一天( 00-53 )|

| %x | 当地时间下的日期描述 (例如:12/31/99 ) |

| %X |当地时间下的时间描述 (例如:23:13:48 )|

| %w | 一星期中的第几日( 0-6 ),0 代表周一 |

| %W | 一年中的第几周,以周一为每星期第一天( 00-53 )|

命令用法示例:

按照默认格式查看当前系统时间

date

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(2)

按照指定格式查看当前系统时间

date "+%Y-%m-%d %H:%M:%S"

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(3)

查看今天是当年中的第几天

date "+%j"

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(4)

将系统的当前时间设置为 2020 年 02 月 20 日 20 点 20 分 20 秒

date -s "20200220 20:20:20"

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(5)

校正系统时间,与网络时间同步
a. 安装 ntp 校时工具

yum -y install ntp
b. 用 ntpdate 从时间服务器更新时间
ntpdate time.nist.gov
输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(6)

wget

命令描述:在终端中下载文件。

命令格式:wget [参数] 下载地址。

参数说明:

| 参数 | 作用|

|--|--|

| -b | 后台下载 |

| -P |下载到指定目录|

| -t | 最大重试次数 |

| -c |断点续传|

| -p | 下载页面内所有资源,包括图片、视频等 |

| -r |递归下载|

命令使用示例:

下载一张图片到路径 /root/static/img/中,-p 参数默认值为当前路径,如果指定路径不存在会自动创建。

wget -P /root/static/img/ http://img.alicdn.com/tfs/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(7)

ps
命令描述:ps 命令用于查看系统中的进程状态。

命令格式:ps [参数]。

命令参数说明:

| 参数 | 作用 |

|--|--|

| -a | 显示现行终端机下的所有程序,包括其他用户的程序 |

| -u |以用户为主的格式来显示程序状况|

| -x | 显示没有控制终端的进程,同时显示各个命令的具体路径 |

| -e |列出程序时,显示每个程序所使用的环境变量|

| -f | 显示当前所有的进程 |

| -t |指定终端机编号,并列出属于该终端机的程序的状况|

命令使用示例:

ps -ef | grep sshd

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(8)

top

命令描述:top 命令动态地监视进程活动与系统负载等信息。

命令使用示例:

top

输出结果:
阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(9)

命令输出参数解释:

以上命令输出视图中分为两个区域,一个统计信息区,一个进程信息区。

统计信息区

  • 第一行信息依次为:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5 分钟、15 分钟内的平均值,数值越小意味着负载越低)。
  • 第二行信息依次为:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
  • 第三行信息依次为:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
  • 第四行信息依次为:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
  • 第五行信息依次为:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、预加载内存量。

进程信息区

| 列名 | 含义 |

|--|--|

| PID | 进程 ID |

| USER |进程所有者的用户名|

| PR | 进程优先级 |

| NI |nice 值。负值表示高优先级,正值表示低优先级|

| VIRT | 进程使用的虚拟内存总量,单位 kb |

| RES | 进程使用的、未被换出的物理内存大小,单位 kb|

| SHR | 共享内存大小,单位 kb |

| S | 进程状态 D:不可中断的睡眠状态 R:正在运行 S:睡眠 T:停止 Z:僵尸进程 |

| %CPU| 上次更新到现在的 CPU 时间占用百分比|

| %MEM |进程使用的物理内存百分比|

| TIME+ | 进程使用的 CPU 时间总计,单位 1/100 秒|

| COMMAND |命令名|

按 q 键退出监控页面。

pidof

命令描述:pidof 命令用于查询指定服务进程的 PID 值。

命令格式:pidof [服务名称]。

命令参数说明:

| 参数 | 说明 |

|--|--|

|-s | 仅返回一个进程号 |

| -c |只显示运行在 root 目录下的进程,这个选项只对 root 用户有效|

| -o | 忽略指定进程号的进程 |

| -x |显示由脚本开启的进程|

命令使用示例:

查询出 crond 服务下的所有进程 ID 。

pidof crond

输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(10)

kill

命令描述:kill 命令用于终止指定 PID 的服务进程。

kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9)信息尝试强制删除程序。

命令格式:kill [参数] [进程 PID]。

命令使用示例:

删除 pid 为 1247 的进程。

kill -9 1247

killall

命令描述:killall 命令用于终止指定名称的服务对应的全部进程。

命令格式:killall [进程名称]。

命令使用示例:

删除 crond 服务下的所有进程。

killall crond

reboot

命令描述:reboot 命令用来重启系统。

命令格式:reboot [-n] [-w] [-d] [-f] [-i]。

命令参数说明:

-n:保存数据后再重新启动系统。
-w:仅做测试,并不是真的将系统重新开机,只会把重新开机的数据写入记录文件 /var/log/wtmp 。
-d:重新启动时不把数据写入记录文件 /var/tmp/wtmp 。
-f:强制重新开机,不调用 shutdown 指令的功能。
-i:关闭网络设置之后再重新启动系统。
命令使用示例:

reboot

poweroff

命令描述:poweroff 命令用来关闭系统。

命令使用示例:

poweroff

目录二:系统状态检测命令

ifconfig

命令描述:ifconfig 命令用于获取网卡配置与网络状态等信息。

命令示例:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(11)

命令输出说明:

  • 第一部分的第一行显示网卡状态信息。
    • eth0 表示第一块网卡。
    • UP 代表网卡开启状态。
    • RUNNING 代表网卡的网线被接上。
    • MULTICAST 表示支持组播。
  • 第二行显示网卡的网络信息。
    • inet ( IP 地址):172.16.132.195 。
    • broadcast (广播地址):172.16.143.255 。
    • netmask (掩码地址):255.255.240.0 。
    • RX 表示接收数据包的情况,TX 表示发送数据包的情况。
    • lo 表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址( 127.0.0.0/8 或
      ::1/128 )不同,回环网卡对系统显示为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。

uname

命令描述:uname 命令用于查看系统内核与系统版本等信息。

命令语法:uname [-amnrsv][--help][--version]

命令使用示例:

显示系统信息。

uname -a

命令输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(12)

显示当前系统的硬件架构。

uname -i

命令输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(13)

显示操作系统发行编号。

uname -r

命令输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(14)

显示操作系统名称。

uname -s

命令输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(15)

显示主机名称。

uname -n

命令输出结果:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(16)

uptime

命令描述:uptime 用于查看系统的负载信息。

命令使用示例:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(17)

命令输出说明:

| 负载信息 | 命令输出值 |

|--|--|

| 当前服务器时间 | 14:20:27 |

| 当前服务器运行时长 |2 min|

| 当前用户数 | 2 users |

| 当前负载情况 |load average: 0.03, 0.04, 0.02 (分别取 1min,5min,15min 的均值)|

free

命令描述:free 用于显示当前系统中内存的使用量信息。

命令语法:free [-bkmotV][-s <间隔秒数>]。

命令参数说明:

| 参数 | 说明 |

|--|--|

| -b | 以 Byte 为单位显示内存使用情况 |

| -k |以 KB 为单位显示内存使用情况|

| -m | 以 MB 为单位显示内存使用情况 |

| -h | 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。 |

命令使用示例:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(18)

命令输出说明:

| 参数 | 说明 |
|--|--|
| total | 物理内存总数 |

| used |已经使用的内存数|

| free | 空间的内存数 |

| share |多个进程共享的内存总额|

| buff/cache | 应用使用内存数 |

| available |可用的内存数|

| Swap | 虚拟内存(阿里云 ECS 服务器默认不开启虚拟内存) |

who

命令描述:who 命令显示关于当前在本地系统上的所有用户的信息。

命令使用示例:

  • 显示当前登录系统的用户

    阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(19)

  • 显示用户登录来源

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(20)

  • 只显示当前用户

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(21)

  • 精简模式显示

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(22)

last

命令描述:last 命令用于显示用户最近登录信息。

命令使用示例:

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(23)

由于这些信息都是以日志文件的形式保存在系统中,黑客可以很容易地对内容进行篡改,所以该命令输出的信息并不能作为服务器是否被入侵的依据。

history

命令描述:history 命令用于显示历史执行过的命令。

bash 默认记录 1000 条执行过的历史命令,被记录在~/.bash_history 文件中。

命令使用示例:

  • 显示最新 10 条执行过的命令。

阿里云体验实验室 体验教程《 Linux 指令入门-系统管理》插图(24)

清除历史记录。

history -c

阿里云体验实验室地址:https://developer.aliyun.com/adc/labs/

Linux 中怎么找到 alias 命令在哪定义的

azev:看 home 目录下的.bashrc .bash_profile /etc/bashrc 里都没有定义 但 which 看确实是个 alias 那会在哪里呢?

Win+ Linux 双系统到底有什么弊端和优点?

RiceMarch:最近对折腾 Linux 有点小兴趣,想要了解下 Linux 下的开发,跑虚拟机感觉有点变扭。 准备装个双系统,开始一腔热血,思考半天准备 win10+manjaro 双系统。 但身边的朋友却说双系统有很多的问题,确实不太懂这方面的知识。 想请教下各位。 双系统有什么弊端? 又有什么优点? 目前渣配: 256 固态 1T 机械 UEFI+G…

安卓系统会不会替代桌面系统(WIN/ Linux 桌面系统)?

moregun:当然这个前提是国内市场,要自主系统,要更好过渡。大家讨论讨论。1. 软件生态:在尝试过深度系统后,发现国内 Linux 系统下的软件还是比较少的。现在国内软件开发商更多的是基于手机安卓系统或者 IOS,毕竟市场体量在这里。对于普通用户,家用或者办公,好像目前安卓下的 APP 都能搞定,不足的方面可以慢慢补全。可能对于专业性强的软件,比如调音 …

Linux 教程《 Linux 指令入门-文本处理》-阿里云体验实验室

chen887625as:## 体验平台简介阿里云开发者实验室提供免费云资源和丰富的场景化实践,旨在帮助开发者在学习应用技术,了解阿里云产品的特性。阿里云体验实验室地址:[https://developer.aliyun.com/adc/labs/]( https://developer.aliyun.com/adc/labs/)## 教程介绍[本文将介绍如…

Linux 装软件有没有可能变得像 Windows 那样方便

Osk:感觉现在 linux 很多发行版都离不开网络了,没有网就麻烦大了。 与之对应的,Windows 就没有这么多心智负担。Windows 槽点虽多,不过是真的方便,就拿最近部署一个 python 简单程序来说: python for windows 有 embedded zip 版本,系统甚至都可以不用安装 python 直接用它配置一下作为一个环境:解…