Skip to content

LV240-系统管理命令简介

系统管理

1. 显示或设置时间: date

1.1 使用格式

date 命令可以按照指定格式显示日期,只键入 date 则以默认格式显示当前时间。一般格式如下:

shell
date [OPTION]... [+FORMAT]
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

这里的选项其实一般都不怎么用的上,这里就不啰嗦了。

1.2 时间显示格式

在 Linux 系统中,时间显示有多种格式,常见的包括:

  • CST (China Standard Time):中国标准时间,即 UTC+8 时区时间。这是中国使用的标准时间。
  • UTC (Coordinated Universal Time):协调世界时,是世界标准时间,通常用于服务器和网络时间同步。
  • GMT (Greenwich Mean Time):格林威治标准时间,与 UTC 时间基本一致,但 GMT 是基于英国格林威治的天文时间。
  • 本地时间:根据系统设置的时区显示的时间。

时间格式转换示例:

shell
# 显示 UTC 时间
date -u

# 显示本地时间(默认)
date

# 显示带 UTC 时间戳的时间
date --iso-8601=seconds

时间格式转换和显示示例:

shell
# 当前时间(CST)
hk@vm:~$ date
2022年 10月 20日 星期四 14:28:19 CST

# UTC 时间
hk@vm:~$ date -u
Thu Oct 20 06:28:19 UTC 2022

# ISO 8601 格式时间
hk@vm:~$ date --iso-8601=seconds
2022-10-20T14:28:19+08:00

从上面的示例可以看出:

  • CST 时间比 UTC 时间快 8 小时(+08:00)
  • ISO 8601 格式时间显示了时区信息
  • 不同时间格式可以相互转换

1.3 [+FORMAT]

我们来了解一下自定义时间,我们先要自定义显示时间格式的话,可以这样:

shell
date "+现在时间是: %Y-%m-%d %H:%M:%S"

当我们不希望出现无意义的 0 时(比如说 2020/01/01),则可以在标记中插入-符号,比如说date '+%-H:%-M:%-S'会把时分秒中无意义的 0 给去掉,像是原本的 09:09:09 会变为 9:9:9 。另外,只有取得权限者(比如说 root )才能设定系统时间。当我们以 root 身分更改了系统时间之后,要以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续保持最新的正确值。

时间和日期的格式

text
%%   输出字符 %
%a   星期几的缩写 (Sun..Sat)
%A   星期的完整名称(Sunday..Saturday)。 
%b   缩写的月份名称(例如,Jan)
%B   完整的月份名称(例如,January)
%c   本地日期和时间(例如,Thu Mar  3 23:05:25 2005)
%C   世纪,和%Y类似,但是省略后两位(例如,20)
%d   日 (01..31)
%D   日期,等价于%m/%d/%y
%e   一月中的一天,格式使用空格填充,等价于%_d
%F   完整的日期;等价于 %Y-%m-%d
%g   ISO 标准计数周的年份的最后两位数字
%G   ISO 标准计数周的年份,通常只对%V有用
%h   等价于 %b
%H   小时 (00..23)
%I   小时 (01..12)
%j   一年中的第几天 (001..366)
%k   小时,使用空格填充 ( 0..23); 等价于 %_H
%l   小时, 使用空格填充 ( 1..12); 等价于 %_I
%m   月份 (01..12)
%M   分钟 (00..59)
%n   新的一行,换行符
%N   纳秒 (000000000..999999999)
%p   用于表示当地的AM或PM,如果未知则为空白
%P   类似 %p, 但是是小写的
%r   本地的 12 小时制时间(例如 11:11:04 PM)
%R   24 小时制 的小时与分钟; 等价于 %H:%M
%s   自 1970-01-01 00:00:00 UTC 到现在的秒数
%S   秒 (00..60)
%t   插入水平制表符 tab
%T   时间; 等价于 %H:%M:%S
%u   一周中的一天 (1..7); 1 表示星期一
%U   一年中的第几周,周日作为一周的起始 (00..53)
%V   ISO 标准计数周,该方法将周一作为一周的起始 (01..53)
%w   一周中的一天(0..6),0代表星期天
%W   一年中的第几周,周一作为一周的起始(00..53)
%x   本地的日期格式(例如,12/31/99)
%X   本地的日期格式(例如,23:13:48)
%y   年份后两位数字 (00..99)
%Y   年
%z   +hhmm 格式的数值化时区格式(例如,-0400)
%:z  +hh:mm 格式的数值化时区格式(例如,-04:00)
%::z  +hh:mm:ss格式的数值化时区格式(例如,-04:00:00)
%:::z  数值化时区格式,相比上一个格式增加':'以显示必要的精度(例如,-04,+05:30)
%Z  时区缩写 (如 EDT)

1.4 使用实例

1.4.1 格式化时间显示
shell
hk@vm:~$ date "+现在时间是: %Y-%m-%d %H:%M:%S"
现在时间是: 2022-10-20 14:28:14

hk@vm:~$ date
2022年 10月 20日 星期四 14:28:19 CST
1.4.2 设置时间
shell
date -s                         # 设置当前时间,只有root权限才能设置,其他只能查看
date -s 20120523                # 设置成20120523,这样会把具体时间设置成00:00:00
date -s 01:01:01                # 设置具体时间,不会对日期做更改
date -s "01:01:01 2012-05-23"   # 这样可以设置全部时间
date -s "01:01:01 20120523"     # 这样可以设置全部时间
date -s "2012-05-23 01:01:01"   # 这样可以设置全部时间
date -s "20120523 01:01:01"     # 这样可以设置全部时间
1.4.3 时间格式转换
shell
hk@vm:~$ date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"
2009/12/12 00:00.00

# apache 格式转换
hk@vm:~$ date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
2009-12-05 00:00.37

2. 关机重启: reboot、shutdown、init

2.1 reboot

reboot 命令用于重启系统,一般就直接 reboot 就可以了,它也有一些参数,但是似乎没用过,这里就不写了。

2.2 shutdown

shutdown 命令可以用来进行定时关机,并且在关机以前传送讯息给所有使用者正在执行的程序,也可以用来重开机。一般格式如下:

shell
shutdown [-t seconds] [-rkhncfF] time [message]

参数说明如下:

参数 说明
-t seconds 设定在几秒钟之后进行关机程序
-k 并不会真的关机,只是将警告讯息传送给所有使用者
-r 关机后重新开机
-h 关机后停机
-n 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机
-c 取消目前已经进行中的关机动作
-f 关机时,不做 fsck 动作(检查 Linux 档系统)
-F 关机时,强迫进行 fsck 动作
time 设定关机的时间
message 传送给所有使用者的警告讯息
#### 2.3 init

init 命令是 Linux 下的进程初始化工具, init 进程是所有 Linux 进程的父进程,它的进程号为 1 ,是 Linux 内核引导运行的,是系统中的第一个进程。一般格式如下:

shell
init [option]

参数说明

  • option :选项
option 说明
0 停机或者关机(不能将 init default 设置为 0)
1 单用户模式,只 root 用户进行维护
2 多用户模式,不能使用 NFS(Net File System)
3 完全多用户模式(标准的运行级别)
4 安全模式
5 图形化(即图形界面)
6 重启(不要把 init default 设置为 6)

3. 检测磁盘空间: df

3.1 使用格式

df 命令作用是列出文件系统的整体磁盘空间使用情况。一般格式如下:

shell
df [option] [file_name]

选项有很多,我们这里就不详细写了,直接看后面的常用示例。

3.2 使用实例

  • 显示文件系统类型
shell
hk@vm:~$ df -T # 加上目录路径就可以看到指定目录的文件系统类型
文件系统       类型                 1K-块      已用     可用 已用% 挂载点
udev           devtmpfs           1977176         0  1977176    0% /dev
tmpfs          tmpfs               401592     31500   370092    8% /run
/dev/sda1      ext4              81451752  13001104 64290036   17% /
tmpfs          tmpfs              2007952     45200  1962752    3% /dev/shm
tmpfs          tmpfs                 5120         4     5116    1% /run/lock
tmpfs          tmpfs              2007952         0  2007952    0% /sys/fs/cgroup
vmhgfs-fuse    fuse.vmhgfs-fuse 278929404 181423696 97505708   66% /mnt/hgfs
tmpfs          tmpfs               401592        80   401512    1% /run/user/1000

4. 检测目录所占磁盘空间: du

4.1 使用格式

du 和 df 类似, du 侧重在文件夹和文件的磁盘占用方面,而 df 则侧重在文件系统级别的磁盘占用方面。一般使用格式:

shell
du [option][dir_or_file_name]

option

option说明
-s或--summarize仅显示指定目录或文件的总大小,而不显示其子目录的大小。
-h或--human-readable以K,M,G为单位,提高信息的可读性。
-k或--kilobytes以1024 bytes为单位。

4.2 使用实例

shell
hk@vm:~$ du -sh 5linux/
2.8G	5linux/

5. 查看或配置网卡信息: ifconfig

5.1 使用格式

ifconfig 工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。但是在运行时可能会提示未安装该工具(如果之前没有安装过的话),根据系统提示执行相应的命令进行工具安装即可。一般格式如下

shell
ifconfig [网络设备] [选项] [参数] # 但是一般就是直接 ifconfig 查看网络配置信息而已

参数说明】参数特别多,但是貌似一般不怎么用。

常用命令

shell
ifconfig -a                                 # 显示所有网络设备信息
ifconfig eth0 down                          # 关闭指定的网络设备
ifconfig eth0 hw ether aa:cc:bb:dd:ee:ff    # 设置网络设备的类型与硬件地址
ifconfig eth0 up                            # 启动指定的网络设备
ifconfig eth0 mtu<>                      # 设置网络设备的最大传输单元(MTU)
ifconfig eth0 netmask<子网掩>              # 设置网络设备的子网掩码
ifconfig eth0 [IP地址]                      # 指定网络设备的IP地址。

5.2 使用实例

shell
hk@vm:~$ ifconfig
ens33     Link encap:以太网  硬件地址 00:0c:29:dc:97:38  
          inet 地址:192.168.19.140  广播:192.168.19.255  掩码:255.255.255.0
          inet6 地址: fe80::ec18:46b3:f09b:2115/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:69723 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:34505 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:28541354 (28.5 MB)  发送字节:10261211 (10.2 MB)

ens37     Link encap:以太网  硬件地址 00:0c:29:dc:97:42  
          inet 地址:192.168.10.101  广播:192.168.10.255  掩码:255.255.255.0
          inet6 地址: fe80::fc30:db60:f384:6805/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:119696 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:110068 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:10082240 (10.0 MB)  发送字节:153554413 (153.5 MB)

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:27817 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:27817 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:2134713 (2.1 MB)  发送字节:2134713 (2.1 MB)

6. 测试远程主机连通性: ping

6.1 使用格式

执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机是否运作正常。一般格式如下:

shell
ping [option][主机名称或IP地址] # 可以是网址,如 www.baidu.com

参数说明

option说明
-c指定发送的数据包数量,例如 -c 4 表示发送 4 个数据包。
-s指定每个数据包的大小(字节),默认是 56 字节。
-q安静模式,只显示开始和结束的统计数据,不显示每个数据包的详细信息。

6.2 使用实例

shell
hk@vm:~$ ping www.baidu.com
PING www.a.shifen.com (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95: icmp_seq=1 ttl=128 time=14.1 ms
64 bytes from 36.152.44.95: icmp_seq=2 ttl=128 time=14.0 ms
64 bytes from 36.152.44.95: icmp_seq=3 ttl=128 time=13.9 ms
64 bytes from 36.152.44.95: icmp_seq=4 ttl=128 time=13.7 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 13.738/13.973/14.148/0.182 ms