前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1.必须掌握的Linux命令

1.必须掌握的Linux命令

原创
作者头像
用户8006012
修改2022-05-07 18:04:24
5140
修改2022-05-07 18:04:24
举报
文章被收录于专栏:DATABASE

1.echo命令

echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为“echo [字符串] [$变量]”。

这是Linux系统中最常用的几个命令之一,它的操作却非常简单,执行“echo字符串”或“echo $变量”就行,其中$符号的意思是提取变量的实际值,以便后续的输出操作。

例如,把指定字符串“Linux”输出到终端屏幕的命令为:

代码语言:javascript
复制
[root@linuxprobe ~]# echo Linux

该命令会在终端屏幕上显示如下信息:

代码语言:javascript
复制
Linux

下面使用“$变量”的方式提取出变量SHELL的值,并将其输出到屏幕上:

代码语言:javascript
复制
[root@linuxprobe ~]# echo $SHELL
/bin/bash

2.date命令

date命令用于显示或设置系统的时间与日期,语法格式为“date [+指定的格式]”。

用户只需在强大的date命令后输入以“+”号开头的参数,即可按照指定格式来输出系统的时间或日期,这样在日常工作时便可以把备份数据的命令与指定格式输出的时间信息结合到一起。例如,把打包后的文件自动按照“年-月-日”的格式打包成“backup-2020-9-1.tar.gz”,用户只需要看一眼文件名称就能大致了解到每个文件的备份时间了。date命令中常见的参数格式及其作用如表2-4所示。

表2-4                                               date命令中的参数及其作用

参数

作用

%S

秒(00~59)

%M

分钟(00~59)

%H

小时(00~23)

%I

小时(00~12)

%m

月份(1~12)

%p

显示出AM或PM

%a

缩写的工作日名称(例如:Sun)

%A

完整的工作日名称(例如:Sunday)

%b

缩写的月份名称(例如:Jan)

%B

完整的月份名称(例如:January)

%q

季度(1~4)

%y

简写年份(例如:20)

%Y

完整年份(例如:2020)

%d

本月中的第几天

%j

今年中的第几天

%n

换行符(相当于按下回车键)

%t

跳格(相当于按下Tab键)

按照默认格式查看当前系统时间的date命令如下所示:

代码语言:javascript
复制
[root@linuxprobe ~]# date
Sat Sep 5 09:13:45 CST 2020

按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的date命令如下所示:

代码语言:javascript
复制
[root@linuxprobe ~]# date "+%Y-%m-%d %H:%M:%S"
2020-09-05 09:14:35

将系统的当前时间设置为2020年11月1日8点30分的date命令如下所示:

代码语言:javascript
复制
[root@linuxprobe ~]# date -s "20201101 8:30:00"
Sun Nov 1 08:30:00 CST 2020

再次使用date命令并按照默认的格式查看当前的系统时间,如下所示:

代码语言:javascript
复制
[root@linuxprobe ~]# date
Sun Nov 1 08:30:08 CST 2020

date命令中的参数%j可用来查看今天是当年中的第几天。这个参数能够很好地区分备份时间的早晚,即数字越大,越靠近当前时间。该参数的使用方式以及显示结果如下所示:

代码语言:javascript
复制
[root@linuxprobe ~]# date "+%j"
306

3.timedatectl命令

timedatectl命令用于设置系统的时间,英文全称为“time date control”,语法格式为“timedatectl [参数]”。

发现电脑时间跟实际时间不符?如果只差几分钟的话,我们可以直接调整。但是,如果差几个小时,那么除了调整当前的时间,还有必要检查一下时区了。timedatectl命令中常见的参数格式及作用如表2-5所示。

表2-5                                               timedatectl命令中的参数以及作用

参数

作用

status

显示状态信息

list-timezones

列出已知时区

set-time

设置系统时间

set-timezone

设置生效时区

查看系统时间与时区的方法如下:

代码语言:javascript
复制
[root@linuxprobe ~]# timedatectl status
               Local time: Sun 2020-09-06 19:51:22 CST
           Universal time: Sun 2020-09-06 11:51:22 UTC
                 RTC time: Sun 2020-09-06 19:51:21
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no

如果您查到的时区不是上海(Asia/Shanghai),可以手动进行设置:

代码语言:javascript
复制
[root@linuxprobe ~]# timedatectl set-timezone Asia/Shanghai

如果时间还是不正确,可再手动修改系统日期:

代码语言:javascript
复制
[root@linuxprobe ~]# timedatectl set-time 2021-05-18

而如果想修改时间的话,也很简单:

代码语言:javascript
复制
[root@linuxprobe ~]# timedatectl set-time 9:30
[root@linuxprobe ~]# date 
Tue May 18 09:30:01 CST 2021

4.reboot命令

reboot命令用于重启系统,输入该命令后按回车键执行即可。

由于重启计算机这种操作会涉及硬件资源的管理权限,因此最好是以root管理员的身份来重启,普通用户在执行该命令时可能会被拒绝。reboot的命令如下:

代码语言:javascript
复制
[root@linux ~]# reboot

5.poweroff命令

poweroff命令用于关闭系统,输入该命令后按回车键执行即可。

与上面相同,该命令也会涉及硬件资源的管理权限,因此最好还是以root管理员的身份来关闭电脑,其命令如下:

代码语言:javascript
复制
[root@linux ~]# poweroff

6.wget命令

wget命令用于在终端命令行中下载网络文件,英文全称为“web get”,语法格式为“wget [参数] 网址”。

借助于wget命令,可以无须打开浏览器,直接在命令行界面中就能下载文件。如果您没有Linux系统的管理经验,当前只需了解一下wget命令的参数以及作用,然后看一眼下面的演示实验就够了,切记不要急于求成。后面章节将逐步讲解Linux系统的配置管理方法,可以等掌握了网卡的配置方法后再来进行这个实验操作。表2-6所示为wget命令中的参数以及参数的作用。

表2-6                                                wget命令中的参数以及作用

参数

作用

-b

后台下载模式

-P

下载到指定目录

-t

最大尝试次数

-c

断点续传

-p

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

-r

递归下载

7.ps命令

ps命令用于查看系统中的进程状态,英文全称为“processes”,语法格式为“ps [参数]”。

估计读者在第一次执行这个命令时都要惊呆一下—怎么会有这么多输出值,这可怎么看得过来?其实,高手通常会将ps命令与第3章的管道符技术搭配使用,用来抓取与某个指定服务进程相对应的PID号码。ps命令的常见参数以及作用如表2-7所示。

表2-7                                                  ps命令中的参数以及作用

参数

作用

-a

显示所有进程(包括其他用户的进程)

-u

用户以及其他详细信息

-x

显示没有控制终端的进程

Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。

R(运行):进程正在运行或在运行队列中等待。 S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该   状态。 D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。 Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。 T(停止):进程收到停止信号后停止运行。

代码语言:javascript
复制
[root@linux ~]# ps -aux

8.pstree命令

pstree命令用于以树状图的形式展示进程之间的关系,英文全称为“process tree”,输入该命令后按回车键执行即可。

前文提到,在执行ps命令后,产生的信息量太大又没有规律,很难让人再想看第二眼。如果想让进程以树状图的形式,有层次地展示出进程之间的关系,则可以使用pstree命令:

代码语言:javascript
复制
[root@linux ~]# pstree

9.top命令

top命令用于动态地监视进程活动及系统负载等信息,输入该命令后按回车键执行即可。

代码语言:javascript
复制
[root@linux ~]# top

第1行:系统时间、运行时间、登录终端数、系统负载(3个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“99.9 id”意味着有99.9%的CPU处理器资源处于空闲。

第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。

第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。

10.nice命令

nice命令用于调整进程的优先级,语法格式为“nice优先级数字 服务名称”。

在top命令输出的结果中,PR和NI值代表的是进程的优先级,数字越低(取值范围是-20~19),优先级越高。在日常的生产工作中,可以将一些不重要进程的优先级调低,让紧迫的服务更多地利用CPU和内存资源,以达到合理分配系统资源的目的。例如将bash服务的优先级调整到最高:

代码语言:javascript
复制
[root@linux ~]# nice -n -20 bash
[root@linux ~]#

11.pidof命令

pidof命令用于查询某个指定服务进程的PID号码值,语法格式为“pidof [参数] 服务名称”。

每个进程的进程号码值(PID)是唯一的,可以用于区分不同的进程。例如,执行如下命令来查询本机上sshd服务程序的PID:

代码语言:javascript
复制
[root@linuxprobe ~]# pidof sshd
2156

12.kill命令

kill命令用于终止某个指定PID值的服务进程,语法格式为“kill [参数] 进程的PID”。

接下来,使用kill命令把上面用pidof命令查询到的PID所代表的进程终止掉,其命令如下所示。这种操作的效果等同于强制停止sshd服务。

代码语言:javascript
复制
[root@linuxprobe ~]# kill 2156

但有时系统会提示进程无法被终止,此时可以加参数-9,表示最高级别地强制杀死进程:

代码语言:javascript
复制
[root@linuxprobe ~]# kill -9 2156

13.killall命令

killall命令用于终止某个指定名称的服务所对应的全部进程,语法格式为“killall [参数] 服务名称”。

通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果用kill命令逐个去结束这些进程会比较麻烦,此时可以使用killall命令来批量结束某个服务程序带有的全部进程。下面以httpd服务程序为例,来结束其全部进程。由于RHEL 8系统默认没有安装httpd服务程序,因此大家此时只需看操作过程和输出结果即可,等学习了相关内容之后再来实践。

代码语言:javascript
复制
[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd
[root@linuxprobe ~]# 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档