某智运维---阶段1-运维基本功--1.3Linux基本命令(下)

Linux基本命令(下)

一、磁盘内存相关命令

1、df命令

命令:df

作用:查看磁盘的空间(disk free)

语法:# df [-h]

选项:-h表示可读性较高的形式展示大小
在这里插入图片描述
这几列依次是:Filesystem=>磁盘名称、Size=>总大小、Used=>被使用的大小、Avail=>剩余大小、Use%=>使用百分比、Mounted on=>挂载路径(相当于Windows 的磁盘符)

2、free命令

命令:free

作用:查看内存使用情况

语法:#free -m

选项:-m 表示以mb为单位查看(1g = 1024mb,1mb = 1024kb)
在这里插入图片描述
如上图所示,系统实际可用内存是不是free部分呢,不是的,系统实际内存占用以及可用内存有如下几个加减法:

used=total-freetotal=used+free

☆ 实际内存占用:used-buffers-cachedtotal-free-buffers-cached

☆ 实际可用内存:buffers+cached+free

第1行Mem数据:
total 内存总数: 979
used 已经使用的内存数: 539
free 空闲的内存数: 440
shared 共享内存数: 4
buffers Buffer Cache块设备缓存区内存数: 34
cached Page Cache文件缓存内存数: 182

第2行-/+ buffers/cache:
-buffers/cache 的内存数:323 (等于第1行的 used - buffers - cached)
+buffers/cache 的内存数: 656 (等于第1行的 free + buffers + cached)
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

第3行数据是Swap交换分区,也就是我们通常所说的虚拟内存。可以在内存不够使用的情况下当临时内存来使用,交换分区并不是越大越好,一般话它就等同于实际内存的大小。

二、与文件内容相关命令

1、head命令

命令:head

作用:查看一个文件的前n 行,如果不指定n,则默认显示前10 行。

语法:#head -n 文件路径 【n 表示数字】

示例代码:显示install.log 文件的前3行
在这里插入图片描述
示例代码:显示install.log 文件的前10行,使用head命令不指定的行数(默认10 行)
在这里插入图片描述

2、tail命令

命令:tail

作用:查看一个文件的末n 行,如果n 不指定默认显示后10 行

语法:# tail -n 文件路径 【n 表示数字】

示例代码:显示install.log 文件的最后5行
在这里插入图片描述
示例代码:显示install.log文件的最后10行
在这里插入图片描述

tail命令扩展

语法:# tail -f 文件路径

作用:查看一个文件动态变化的内容【变化的内容不能是用户手动增加的,必须要求是计算机帮我们写入的内容】

说明:tail -f命令一般用于查看系统的日志
在这里插入图片描述

退出tail -f 卡屏状态可以按下ctrl+c 键,在命令行中c 不再表示copy,而表示cancel(取消)

3、less与more命令

① less命令(推荐)

命令:less

作用:查看文件,按下辅助功能键(数字+回车、空格键(向下翻页)、上下方向键)查看更多

语法:# less 需要查看的文件路径

流程:不是加载整个文件,而是一点一点进行加载,相对而言,读取大文件时,效率比较高。

示例代码:使用less命令查看/root/install.log的文件内容
在这里插入图片描述

在退出的只需要按下q 键(quit)即可(此时ctrl+c 不好使)

扩展:less命令我们还可以进行关键词检索功能

/关键字,搜索成功后,文档中的所有关键字都会高亮。
n : next,向下切换关键字
N : shift + n,向上切换关键字

② more命令

命令:more

作用:查看文件,按下辅助功能键(空格、字母键b等价于back)查看更多

语法:#more 需要查看的文件路径

流程:more在读取文件时,默认已经加载文件的全部内容。
在这里插入图片描述

在退出的只需要按下q 键(quit)即可(此时ctrl+c 不好使)

4、wc命令

命令:wc,wc = word count

作用:用于统计文件内容信息(包含行数、单词数、字节数)

语法:# wc -lwc 需要统计的文件路径

-l:表示lines,行数(以回车/换行符为标准)
在这里插入图片描述

-w:表示words,单词数 依照空格来判断单词数量
在这里插入图片描述

-c:表示bytes, 字节数(空格,回车,换行)
在这里插入图片描述

特别注意:wc命令选项可以混在一起搭配使用,但选项的顺序不影响输出结果,第一个是行数,第二个是单词数,第三个数字节数。
在这里插入图片描述

5、du命令

命令:du

作用:查看文件或目录(会递归显示子目录)占用磁盘空间大小 Disk Usage

语法:# du [-sh]

选项:-s :summaries,只显示汇总的大小,统计文件夹的大小

​ -h:表示以高可读性的形式进行显示,如果不写-h,默认以KB的形式显示文件大小

示例代码:统计/root/install.log文件大小
在这里插入图片描述
示例代码:统计/etc目录大小
在这里插入图片描述

6、find命令

命令:find

作用:用于查找文档(其选项有55 个之多)

语法:# find 路径范围 选项1 选项1的值 [选项2 选项2 的值…]

选项:

-name:按照文档名称进行搜索(支持模糊搜索)

* : 通配符,匹配任意个任意字符

-type:按照文档的类型进行搜索

文档类型:"-" 表示文件(在使用find 的时候需要用f 来替换),"d"表示文件夹

示例代码:使用find 来搜索httpd.conf 文件
在这里插入图片描述
示例代码:搜索/etc 目录下所有的conf 后缀文件(*.conf),*表示通配符
在这里插入图片描述

注:如果使用了*,建议给整个文件名加上引号,谨记!!!

* :通配符不仅可以用于搜索,还可以用于删除

示例代码:使用find 来搜索/etc/ppp目录下所有的文件夹
在这里插入图片描述

三、日期时间命令

1、date命令(重点)

① 获取时间

命令:date

作用:表示获取系统时间

语法1:# date 输出的形式:2018 年 3 月 24 日 星期六 15:54:28 CST

语法2:# date “+%F” (等价于# date “+%Y-%m-%d” ) 输出形式:2018-03-24

语法3:# date “+%F %T” 引号表示让 “年月日与时分秒” 成为一个不可分割的整体

等价操作# date “+%Y-%m-%d %H:%M:%S”,输出的形式:2018-03-24 16:01:00

语法4:获取之前或者之后的某个时间(备份)

# date -d “-1 day” “+%Y-%m-%d %H:%M:%S”

符号的可选值:+(之后) 或者 - (之前)

单位的可选值:day(天)、month(月份)、year(年)

序号格式符说明
1%F表示完整的年月日,形如2018-12-31
2%T表示完整的时分秒,形如08:00:00
3%Y(year)表示四位年份
4%m(month)表示两位月份(带前导0)
5%d(day)表示日期(带前导0)
6%H(hour)表示小时(带前导0)
7%M(minute)表示分钟(带前导0)
8%S(second)表示秒数(带前导0)

示例代码:输出当前系统时间,时间格式:“日/月/年 时:分:秒”
在这里插入图片描述
在这里插入图片描述
示例代码:获取7 天之前的时间,格式为年-月-日 时:分:秒
在这里插入图片描述

② 设置时间

命令:date

作用:表示设置系统时间

选项:-s, --set=STRING,设置系统时间
在这里插入图片描述

2、hwclock命令

① 获取时间

命令:hwclock

作用:表示获取计算机硬件RTC时间 Hardware Clock
在这里插入图片描述

② 设置时间

命令:hwclock

作用:设置计算机硬件RTC时间

选项1:-w,将Linux系统时间保存到硬件RTC中
在这里插入图片描述
选项2:-s,将RTC中的时间保存到Linux系统时间中
在这里插入图片描述

3、cal命令(了解)

命令:cal

作用:操作系统日历 calendar

语法1:# cal 等价于 #cal -1 直接输出当前月份的日历
在这里插入图片描述
语法2:# cal -3 表示输出上一个月+本月+下个月的日历
在这里插入图片描述
语法3:# cal -y 年份数字 表示输出某一个年份的日历(1-9999)
在这里插入图片描述

4、扩展:bash中的引号

☆ 双引号"" : 会把引号的内容当成整体来看待,允许通过$符号引用其他变量值

在这里插入图片描述
☆ 单引号’’ : 会把引号的内容当成整体来看待,禁止引用其他变量值,shell中特殊符号都被视为普通字符
在这里插入图片描述
☆ 反撇号`` : 反撇号和$()一样,引号或括号里的命令会优先执行,如果存在嵌套,反撇号不能用
在这里插入图片描述

四、管道命令(重点)

1、管道符

管道符:|

作用:管道是一种通信机制,通常用于进程间的通信。它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
在这里插入图片描述

2、过滤功能

# ls / | grep “y”
grep 指令用于“过滤”
grep 语法:grep 选项 文件路径/内容

针对上面这个命令说明:
① 以管道作为分界线,前面的命令有个输出,后面需要先输入(缺少查找范围),然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入。
为了便于理解,上述的指令变相实现可以如下:
# ls / > xxx.txt 将ls /的结果保存到xxx.txt文件中
# grep “y” xxx.txt 使用grep指令搜索xxx.txt中的包含y的行grep 指令:主要用于过滤
语法:# grep [选项] “搜索关键词” 搜索范围

示例代码:获取/根目录下包含关键字"y"的文件信息
在这里插入图片描述
示例代码:搜索/root/install.log文件中包含mysql关键词的行信息
在这里插入图片描述

3、特殊功能

通过管道的操作方法来实现less 的等价效果(了解)

例如:源指令是"less xxx.txt"使用管道的话则可以写成:cat xxx.txt | less

之前可以通过less命令查看一个文件,可以# less 路径

现在通过管道还可以:#cat 路径 | less

示例代码:
在这里插入图片描述

4、扩展处理

问题:请使用学过的命令,来统计某个目录下的文档的总个数?

示例代码:使用Linux命令统计“/”下的文档的个数
在这里插入图片描述

示例代码:用户在计算机中有一个配置文件(/etc/passwd),一般情况下,一个用户会占用一行配置,请你使用现学的管道统计当前计算机中一共有多少个用户个信息
在这里插入图片描述

5、xargs命令扩展

问题:为什么需要xargs命令?

答:之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令。

首先来看一个命令:

find /etc -name "*.conf" | ls -l (错误)
find /etc -name "*.conf" | xargs ls -l (正确)

在这里插入图片描述
xargs特别说明:

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

示例代码:多行输入单行输出
在这里插入图片描述
示例代码:-n 选项多行输出
-n3 3列输出
在这里插入图片描述

五、Linux高级命令

1、hostname命令

命令:hostname

作用:操作服务器的主机名(读取、设置)

语法1:# hostname
获取主机名.完整域名

语法2:# hostname -f
全限定域名(FQDN)

web01.itcast.cn

web02.itcast.cn

在这里插入图片描述
语法3:# hostname FQDN全限定域名
临时设置主机名称
在这里插入图片描述

2、id命令

命令:id

作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。

语法1:# id 默认显示当前执行该命令的用户的基本信息
在这里插入图片描述
语法2:# id 用户名, 显示指定用户的基本信息
在这里插入图片描述
如何验证以上信息是否正确?

答:验证用户信息:通过文件/etc/passwd,验证用户组信息:通过文件/etc/group

3、ps命令(重点)

指令:ps【process show】

作用:主要是查看服务器的进程信息

选项含义:

-e:等价于“-A”,表示列出全部(all)的进程
-f : 表示full,显示全部的列(显示全字段)
在这里插入图片描述

列的含义:
UID  :该进程执行的用户ID
PID  :进程ID
PPID :该进程的父级进程ID,如果找不到,则该进程就被称之为僵尸进程(Parent Process ID)
C	 :Cpu的占用率,其形式是百分数
STIME:进程的启动时间
TTY	 :终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起
扩展:Ctrl + Alt + F1 ~ F6,可以进入到不同的终端设备
TIME :进程实际使用CPU的时间
CMD  :该进程的名称或者对应的路径

示例代码:在ps的结果中过滤出想要查看的进程状态"crond"进程(100%使用的命令)

语法:ps -ef | grep “进程名称”【Linux/Unix命令格式】
在这里插入图片描述

注意查询结果:其中如果只有一条则表示没查到对应的进程(这1 条表示刚才ps 指令的自身)。只有查到的结果多余1 条,才表示有对应的进程。

补充:针对上述情况的优化:如果没有对应的进程,则什么都不显示。

思路:在现有的基础之上再次使用管道去处理下(-v 选项表示“排除”)。
在这里插入图片描述

注意:使用以上指令时,需要提前启动Firefox浏览器

在这里插入图片描述

扩展:ps aux【BSD格式命令,注意没有横杠"-"】
在这里插入图片描述

USER:该 process 属于哪个使用者账号
PID :该 process 的ID
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有
- R :该程序目前正在运作,或者是可被运作
- S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
- T :该程序目前正在侦测或者是停止了
- Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令

4、top命令(重点)

作用:查看服务器的进程占的资源(100%使用) Plants VS zombies

语法:# top (动态显示)

退出命令:按下q 键

补充:

  • load average,一般单核情况,这个值不能超过1,超过1代表CPU超负荷运行。
  • 用1分钟、5分钟、15分钟的数值/逻辑的CPU数量
  • CPU:2颗CPU,每颗2核,所以逻辑CPU数量 = 4

在这里插入图片描述

表头含义:
PID	:进程ID
USER:该进程对应的用户
PR	:优先级
VIRT:虚拟内存
RES	:常驻内存
SHR	:共享内存,计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
S	:表示进程的状态status(sleeping,其中S 表示睡眠,R 表示运行)
%CPU:表示CPU 的占用百分比
%MEM:表示内存的占用百分比
TIME+  :执行的时间
COMMAND:进程的名称或者路径

注:在运行top 的时候,可以按下方便的快捷键:

M(大写):表示将结果按照内存(MEM)从高到低进行降序排列;

P(大写):,表示将结果按照CPU 使用率从高到低进行降序排列;

1 :当服务器拥有多个cpu 的时候可以使用“1”快捷键来切换是否展示显示各个cpu 的详细信息;
在这里插入图片描述

5、service命令(重点)

命令:service

作用:用于控制一些软件的服务启动/停止/重启

语法:# service 服务名 start/stop/restart/status状态

注:服务名可以去/etc/init.d 目录下寻找

服务和进程有啥区别?
服务≠进程
进程是指运行的程序(状态不一定是正在运行:run/sleep/stop/zombieˈzɑ:mbi']僵尸)
服务是进程的一个"外壳",用于控制对进程的启动/停止/重启操作

示例代码:启动本机中的sshd服务

# service  sshd   start|stop|restart|status

示例代码:重启网络network服务

# service  network restart

示例代码:启动本机安装的Apache(网站服务器软件),其服务名httpd
在这里插入图片描述

通过ps -ef 得到的结果发现apache启动的进程存在父子关系

了解:在centos7 中,service 命令将会被systemctl 所替代(#systemctl start/restart/stop 服务名)。但是,service 命令在centos7 中同时兼容。

6、kill命令

命令:kill

作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)

语法:# kill 进程ID (语法需要配合ps 一起使用)如果需要杀死子进程,则可以直接杀父进程

示例代码:使用kill命令干掉Apache的进程
在这里插入图片描述

备注:在互联网中,经常看到kill -9 进程PID,强制杀死某个进程,kill -l

7、killall命令

命令:killall

作用:与kill 命令作用相似,但是比kill 更加好用的杀死进程的命令

语法:# killall 进程名称
在这里插入图片描述

扩展:pkill 进程名称,与killall类似,杀死所有进程

8、ifconfig命令

命令:ifconfig

作用:获取网卡的相关信息

语法:# ifconfig
在这里插入图片描述

在上述的信息中,可以得知以下信息:

这里有2 个网卡;其IP地址是inet addr(圈红的地方)

☆ eth0 是默认的第一块网卡

☆ lo(loop,循环)表示回环网卡

9、uname命令

命令:uname

作用:获取计算机操作系统相关信息

语法1:# uname 获取操作系统的类型

语法2:# uname -a,选项-a代表all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)
在这里插入图片描述

10、netstat命令

命令:netstat

作用:查看网络连接状态

语法:netstat -tnlp

选项:-t:表示只列出tcp 协议的连接;

​ -n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示;

​ -l :表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接;

​ -p:表示显示发起连接的进程pid 和进程名称;
在这里插入图片描述

Protocol:协议(tcp、upd、http、https、icmp、ssh…)
Receive:接收
Send:发送

六、练习题

1、如何通过命令行重启linux 操作系统?

2、如何在命令行中快速删除光标前/后的内容? 前:ctrl + u 后:ctrl + k

3、如何删除/tmp 下(不要求递归)所有A 开头的文件?

答:rm /tmp/A*

4、系统重要文件需要备份,如何把/etc/passwd 备份到/tmp 目录下?

5、如何查看系统最后创建的3 个用户?

答:tail -3 /etc/passwd

6、什么命令可以统计当前系统中一共有多少账户?

答:可以统计一下/etc/passwd文件中一共有多少行,这个问题就解决了

7、如何创建/tmp/test.conf 文件?

8、如何查看/etc/passwd 的头3 行和尾3 行?

9、如何一次性创建目录/text/1/2/3/4?

10、如何最快的返回到当前账户的家目录?

11、如何查看/etc 所占的磁盘空间(文件夹大小)?

12、如何删除/tmp 下所有的文档?

13、尝试启动Apache 的服务,并且检查是否启动成功。

14、使用已学命令杀死Apache 的进程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值