day08-Linux自有服务&软件包管理

2023-11-19

自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置)

学习目标

1、了解systemctl命令用途

2、掌握使用systemctl开启,关闭,重启服务

3、了解常见自有服务ntpd,firewalld,crond的作用

4、掌握ntpdate时间同步原理与实现

5、掌握防火墙的相关操作(添加和删除简单规则,开启,关闭防火墙)

6、了解源码包和二进制包的区别

7、掌握rpm包的卸载、安装以及更新操作

8、了解计划任务的作用

9、掌握计划任务的编辑

一、自有服务概述

​ 服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为"服务"
​ 举例:当我们使用SSH客户端软件连接linux的时候,我们的服务器为什么会对连接做出响应?是因为SSH服务开机就自动运行了。

​ 所谓自有服务,简单来说,可以理解为Linux系统开机自动运行的服务(程序)。

​ 我们如何管理这些自有服务呢?

二、systemctl管理服务命令

​ 在Centos7之前,通过service 和 chkconfig两个命令来管理服务

service: 负责启动,停止服务,显示服务状态

chkconfig: 指定服务是否开机启动

​ 从Centos7开始,统一使用systemctl来管理服务, systemctl同时具有service和chkconfig命令的功能。

1、显示服务

命令:systemctl

作用:管理服务

语法:#systemctl [选项]

选项:list-units --type service --all:列出所有服务(包含启动的和没启动的)

​ list-units --type service:列出所有启动的服务

用法一:systemctl list-units --type service --all 不加具体服务名
示例代码:
#systemctl list-units --type service --all
含义:列出所有服务,包括已运行的和没有运行的
空格可以翻页,q退出
用法二:systemctl list-units --type service 不加具体服务名
示例代码:
#systemctl list-units --type service
含义:列出已运行的服务
空格可以翻页,q退出

2、查看启动和停止服务

命令:systemctl

作用:管理服务

语法:#systemctl [选项] 服务名

选项: status:检查指定服务的运行状况

​ start:启动指定服务

​ stop:停止指定服务

​ restart:重启指定服务

​ reload:重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)

用法三:systemctl 选项 服务名
示例代码:
#systemctl status crond
含义:查看crond服务的状态

Active:active(running) 表示当前crond服务是运行状态。

用法四:systemctl 选项 服务名
示例代码:
#systemctl stop crond
含义:停止crond服务

Inactive,表示crond服务当前是停止状态

用法五:systemctl 选项 服务名
示例代码:
#systemctl start crond
含义:启动crond服务
用法六:systemctl 选项 服务名
示例代码:
#systemctl restart crond
含义:重启crond服务

#systemctl reload crond
含义:重新加载crond服务配置文件

3、服务持久化

​ 所谓服务持久化,就是服务在开机的时候,是否自动启动。

命令:systemctl

作用:管理服务

语法:#systemctl [选项] 服务名

选项: enable:指定服务开机自动启动

​ disable:取消服务开机自动启动

用法七:systemctl 选项 服务名
示例代码:
#systemctl disable crond
含义:取消crond服务开机启动
用法八:systemctl 选项 服务名
示例代码:
#systemctl disable crond
含义:指定crond服务开机启动

systemctl参数总结

参数 含义
list-units --type service --all 列出所有服务
list-units --type service 列出所有启动的服务
start 启动指定服务
stop 停止指定服务
status 检查指定服务的运行状况
restart 重启指定服务
reload 重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)
enable 指定服务开机自动启动
disable 取消服务开机自动启动

三、常用自有服务(ntp,firewalld,crond)

服务名 含义
ntpd 用于同步计算机的系统时间的服务
firewalld 防火墙服务
crond 计划任务服务

1、ntp时间同步服务

​ NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。

工作场景:

​ 公司开发了一个电商网站,由于访问量很大,网站后端由100台服务器组成集群。50台负责接收订单,50台负责安排发货,接收订单的服务器需要记录用户下订单的具体时间,把数据传给负责发货的服务器,由于100台服务器时间各不相同,记录的时间经常不一致,甚至会出现下单时间是明天,发货时间是昨天的情况。

1)NTP同步服务器原理

​ 标准时间是哪里来的?

​ 现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。

​ 在NTP中,定义了时间按照服务器的等级传播,Stratum层的总数限制在15以内

​ 工作中,通常我们会直接使用各个组织提供的,现成的NTP服务器

2)到哪里去找NTP服务器

​ NTP授时网站:http://www.ntp.org.cn/pool.php

3)时间同步操作

同步服务器时间方式有2 个:一次性同步手动同步、通过服务自动同步。

手动同步

用法一:ntpdate 时间服务器IP示例代码:#ntpdate 120.25.108.11含义:从服务器120.25.108.11同步标准网络时间到服务器(120.25.108.11服务器由阿里云提供,可以从http://www.ntp.org.cn/pool.php网站获取)注意:从网络同步时间,要确保自己的服务器可以访问互联网

错误信息:no servers can be used

含义:服务器不可用,这里的服务器是指网络上的时间服务器,不可用,不代表是对方服务器有问题,也有可能是你自己的服务器网络不通,无法连接到网络上的时间服务器。

自动同步

用法二:启动ntpd服务,并配置为开机启动示例代码:#systemctl start ntpd#systemctl enable ntpd含义:启动ntpd服务,并配置为开机启动,服务启动后,系统会自动同步网络时间注意:从网络同步时间,要确保自己的服务器可以访问互联网

问题1:启动ntpd服务后,是不是时间就自动同步了?

启动后就自动同步了

问题2:需不需要让ntpd服务,开机自动运行?

需要

ntpd服务配置文件位置 /etc/ntp.conf

2、firewalld防火墙

1)什么是防火墙

防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。

防火墙选择让正常请求通过,从而保证网络安全性。

Windows防火墙:

2)传统Linux防火墙

3、firewalld防火墙的概念

1)区域

CentOS6x中防火墙叫做iptables

CentOS7.x 中默认使用的防火墙是firewalld

​ firewalld增加了区域的概念,所谓区域是指,firewalld预先准备了几套防火墙策略的集合,类似于策略的模板,用户可以根据需求选择区域。

常见区域及相应策略规则

区域 默认策略
trusted 允许所有数据包
home 拒绝流入的流量,除非与流出的流量相关,允许ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过
internal 等同于home
work 拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp-client,dhcpv6-client服务通过
public 拒绝流入的流量,除非与流出的流量相关,允许ssh,dhcpv6-client服务通过
external 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过
dmz 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过
block 拒绝流入的流量,除非与流出的流量相关,非法流量采取拒绝操作
drop 拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作

2)运行模式和永久模式

运行模式:此模式下,配置的防火墙策略立即生效,但是不写入配置文件

永久模式:此模式下,配置的防火墙策略写入配置文件,但是需要reload重新加载才能生效。

firewall默认采用运行模式

4、firewalld防火墙的配置

1)查看,开启和停止firewalld服务

命令:systemctl

作用:管理服务

语法:#systemctl [选项] firewalld

选项: status:检查指定服务的运行状况

​ start:启动指定服务

​ stop:停止指定服务

​ restart:重启指定服务

​ reload:重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)

使用systemctl来管理firewalld的服务,具体命令前面已经讲过,只是服务名换成了firewalld,这里不再赘述

2) 管理firewall配置

命令:firewall-cmd

作用:管理firewall具体配置

语法:#firewall-cmd [参数选项1] …[参数选项n]

常用选项:

①查看默认使用的区域

用法一:firewall-cmd 选项示例代码:#firewall-cmd --get-default-zone含义:查看默认使用区域,当前默认使用区域为public

②查看所有可用区域

用法二:firewall-cmd 选项示例代码:#firewall-cmd --get-zones含义:查看所有可用区域

③列出当前使用区域配置

用法三:firewall-cmd 选项示例代码:#firewall-cmd --list-all含义:查看所有可用区域

④列出所有区域的配置

用法四:firewall-cmd 选项示例代码:#firewall-cmd --list-all-zones含义:查看所有可用区域

⑤添加允许通过的服务或端口

用法五:firewall-cmd 选项示例代码:#firewall-cmd --zone=public --add-port=1024/tcp含义:在public区域,添加允许tcp协议的1024端口通过的规则#firewall-cmd --zone=public --add-service=ftp含义:在public区域,添加允许ftp服务通过的规则

⑥去掉允许通过的服务或端口

用法五:firewall-cmd 选项示例代码:#firewall-cmd --zone=public --remove-port=1024/tcp含义:在public区域,去掉允许tcp协议的1024端口通过的规则#firewall-cmd --zone=public --remove-service=ftp含义:在public区域,去掉允许ftp服务通过的规则

⑦永久模式参数permaent

用法七:firewall-cmd 选项示例代码:#firewall-cmd --permanent --zone=public --add-port=1024/tcp含义:在public区域,使用permanent参数,永久添加允许1024端口通过的规则

⑧重新加载配置reload

用法七:firewall-cmd 选项示例代码:#firewall-cmd --reload含义:重新加载配置

5、计划任务crontab

1)计划任务的作用

作用:操作系统不可能24 小时都有人在操作,有些时候想在指定的时间点去执行任务(例如:每天凌晨 2 点去重新启动Apache),此时不可能真有人每天夜里 2 点去执行命令,这就可以交给计划任务程序去执行操作了。

2)查看计划任务

语法:# crontab 选项

常用选项:

-l:list,列出指定用户的计划任务列表

-e:edit,编辑指定用户的计划任务列表,简单来说,计划任务就是一个文件

-u:user,指定的用户名,如果不指定,则表示当前用户

-r:remove,删除指定用户的计划任务列表

示例代码:列出当前用户的计划任务列表

上述的提示,代表 root 用户没有计划任务需要去做。

3)编辑计划任务(重点)

进入计划任务编辑文件

打开计划任务编辑文件后,可以在此文件中编写我们自定义的计划任务:

计划任务的规则语法格式,以行为单位,一行则为一个计划:

分 时 日 月 周 需要执行的命令

例如:0 0 * * * reboot,代表每天0时0分执行reboot指令。

取值范围(常识):分:0~59时:0~23日:1~31月:1~12周:0~7,0 和 7 表示星期天四个符号:*:表示取值范围中的每一个数字-:做连续区间表达式的,要想表示1~7,则可以写成:1-7/:表示每多少个,例如:想每 10 分钟一次,则可以在分的位置写:*/10,:表示多个取值,比如想在 1 点,2 点 6 点执行,则可以在时的位置写:1,2,6

特别补充:在Linux系统中,有些命令不能直接在计划任务中使用,使用后,其也不会生效。如useradd命令。如果想让其生效必须使用完整路径。

问题:如何查询一个命令的真实路径在哪个位置?

答:使用whereis 命令名称

4)几个小案例

问题1:每月1、10、22 日的4:45 重启network 服务

问题2:每周六、周日的1:10 重启network 服务

问题3:每天18:00 至23:00 之间每隔30 分钟重启network 服务

问题4:每隔两天的上午8 点到11 点的第3 和第15 分钟执行一次重启

分时日月周 命令或服务

问题1:45 4 1,10,22 * * service network restart

问题2:10 1 * * 6,7 service network restart

问题3:*/30 18-23 * * * service network restart

问题4:3,15 8-11 */2 * * reboot

案例:每1 分钟往 root 家目录中的 readme.txt 中输一个1,为了看到效果使用追加输出【输出使用echo 命令,语法:# echo 输出的内容】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dElzleHv-1624347775996)(media/image-20190115120136784-7524896.png)]

在末行模式下输入:wq保存并退出,使用tail -f查看readme.txt动态变化

注意:在计划任务中,默认最小单位就是分,不能再小了。如果需要做到秒级别则需要配合研发相关代码。

5)扩展

① crontab 权限问题

crontab是任何用户都可以创建的计划任务,但是超级管理员可以通过配置来设置某些用户不允许设置计划任务 。

黑名单配置文件位于:/etc/cron.deny 里面写用户名,一行只能写一个

白名单还有一个配置文件

/etc/cron.allow (本身不存在,自己创建)

注意:白名单优先级高于黑名单,如果一个用户同时存在两个名单文件中,则会被默认允许创建计划任务。

② 查看计划任务文件保存路径

问题:计划任务文件具体保存在哪里呢?

答:/var/spool/cron/用户名文件中,如果使用root用户编辑计划任务,则用户文件名为root

③ 查看计划任务日志信息

问题:在实际应用中,我们如何查看定时任务运行情况?

答:通过计划任务日志,日志文件位于/var/log/cron

四、Linux软件包

1、软件包概述

​ 这是什么?

​ Linux下也有很多可以安装的软件,而这些软件的安装包可细分为两种,分别是源码包二进制包

1)源码包

​ 源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。计算机只能识别机器语言,也就是二进制语言,所以源码包安装之前需要编译。

​ 编译过程耗时较长
​ 大多数用户不懂开发,编译过程中可能会有各种错误,用户无力解决。

​ 为了解决使用源码包安装的问题,Linux 软件包的安装出现了使用二进制包的安装方式。

2)二进制包

​ 二进制包,也就是源码包经过成功编译之后产生的包。

​ 二进制包是 Linux 下默认的软件安装包,目前主要有以下 2 大主流的二进制包管理系统:

  • RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
  • DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。

RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写

​ 作用:rpm 的作用类似于豌豆荚,华为应用市场,App Store,主要作用是对linux 服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装/更新。

2、如何获取rpm包

要想装软件,和windows 下一样,先得找到安装包:xxx.rpm

软件包的获得方式:

a. 去官网去下载(http://rpm.pbone.net);

b. 不介意老版本的话,可以从光盘(或者镜像文件)中读取;

3、从光盘获取

3.1 虚拟机中加载光盘

3.2 使用 # lsblk(list block devices)或者df -T 查看块状设备的信息

Name:名称Size:设备大小Type:类型MountPoint:挂载点此界面类似于Windows 下的磁盘管理界面:

3.3 进入/run/media/root/CentOS 7 x86_64/Packages目录

#/run/media/root/CentOS 7 x86_64/Packages

#ls

4、查询某个软件安装情况

语法:# rpm -qa | grep 软件名称

选项:

-q:查询,query

-a:全部,all

示例代码:查询firefox浏览器的安装情况,已安装

#rpm -qa |grep firefox

示例代码:查询qq软件的安装情况,未安装

#rpm -qa |grep qq

5、卸载某个软件

卸载某个软件

语法:# rpm -e 软件的名称(建议写完整的名称,通过-qa 查询)

案例:卸载火狐浏览器

#rpm -qa |grep firefox 首先查询firefox软件的完整名称
firefox-45.7.0-2.el6.centos.x86_64

#rpm -e firefox-45.7.0-2.el6.centos.x86_64

卸载完成后,单击firefox浏览器图标,运行

6、安装某个软件

命令:rpm

作用:管理rpm软件包

语法:# rpm -ivh 软件包完整路径名称

选项:

-i:install,安装

-v:显示进度条

-h:表示以"#"形式显示进度条

示例代码:将刚刚卸载的firefox火狐浏览器重新安装(在DVD光盘1中)

用法:rpm -ivh 软件包名称示例代码:#cd /run/media/root/CentOS\ 7\ x86_64/Packages/进入光盘Packages目录,里面存放了很多rpm的安装包#ll |grep firefox查看Packages目录下,包含firefox的安装包#rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm使用rpm命令,安装firefox软件包#rpm -qa |grep firefox查询是否安装完成

安装完成后,打开firefox浏览器

7、更新某个软件

语法:# rpm -Uvh 完整的安装包路径

选项:

-U:upgrade,升级

-v:表示显示进度条

-h:表示以#形式显示进度条

这里我会提供给大家firefox的高版本的安装包

firefox-60.8.0-1.el7.centos.x86_64.rpm 这个包是用来升级的

firefox-68.4.1-1.el7.centos.x86_64.rpm

用法:rpm -Uvh 软件包名称示例代码:#rpm -qa |grep firefox查询当前firefox的版本#ll查看root目录下,我们刚刚拷到虚机上的RPM安装包的名称#rpm -Uvh firefox-60.8.0-1.el7.centos.x86_64.rpm使用rpm命令,安装60.8.0版本的软件包#rpm -qa |grep firefox查询升级后的firefox版本

8、rpm扩展

8.1依赖关系

一个软件必须先有其他软件才能运行,例如之前xmind启动过程中提示的缺少DLL,称之为依赖

WAMP(Windows + Apache + MySQL + PHP)安装前必须先安装VC++ 2014 x86_64,这种情况就称之为有依赖关系。

60.8.0的firefox可以更新成功

下面我们尝试更新到68.4.1的版本

用法:rpm -Uvh 软件包名称#rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm使用rpm命令,安装68.4.1版本的软件包

错误提示:

error:Failed dependencies:

提示安装68版本的firefox需要依赖nspr4.21的版本,nss的3.44的版本,这就是我们说的依赖关系

为了解决依赖关系的问题,有另外一个管理工具叫做yum,后面我们会讲到

8.2 查看文件所属的包名(实用)

语法:# rpm -qf 需要查询的文件路径

选项:

-f:查询文件所属包

示例代码:查询/etc/ntp.conf 属于哪个软件包?

8.3查询软件安装完成后,生成了哪些文件

语法:# rpm -ql 需要查询的软件包名称

#rpm -ql firefox

#rpm -ql openssh

特别说明:软件安装完成后,一共生成了以下几类文件配置文件类:/etc目录程序文件本身,二进制文件命令:/usr/sbin目录文档手册:/usr/share/doc或man目录

9、扩展:光盘的挂载和解挂

① 解挂操作

命令:umount

语法:# umount 当前设备的挂载点(路径)

例如:

#umount /run/media/root/CentOS\ 7\ x86_64/

② 挂载光盘

首先新建一个挂载点,然后使用mount命令进行挂在,挂载点可以理解为就是一个空目录

命令:mount

语法:# mount 设备文件原始地址(/dev目录) 要挂载的位置路径(盘符)

设备原始地址:地址统一都在/dev 下,然后根据大小确定具体name 值,拼凑在一起组成原

始地址,例如当前:"/dev/sr0"

用法:mount 设备 挂载点示例代码:#mkdir /mnt/dvd新建一个目录作为挂载点#mount /dev/sr0 /mnt/dvd将光驱设备/dev/sr0 挂载到 /mnt/dvd这个挂载点#df -T可以看到已经成功挂载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

day08-Linux自有服务&软件包管理 的相关文章

  • 在 linux shell 中执行程序时得到“dquote>”

    当我在 Linux shell 中执行脚本时 我得到以下输出 dquote gt 这是什么意思 这意味着您执行了一行仅包含一个双引号字符的代码 如下所示 echo Hello shell 正在等待其他报价
  • 使用 Google Breakpad 的小型转储无法显示应用程序崩溃的行号

    我在崩溃时获得了应用程序的小型转储文件 但它没有给我诸如函数名称和行号之类的详细信息 输出如下 Operating system Linux 0 0 0 Linux 3 3 8 2 2 1 SMP Thu May 12 13 30 26 U
  • 访问附加到 ELF 二进制文件的数据

    我有一个静态 ELF 二进制文件 它从 zip 文件中读取数据 为了简化分发 我想将 zip 文件附加到二进制文件中 如下所示 cat mydata zip gt gt mybinary 我知道这样做不会损坏 mybinary 但我不知道如
  • 使用 Shell 脚本自动安装 R-Studio

    有没有办法在 Linux 系统上自动安装 R Studio 它应该自动检测操作系统并安装具有所需依赖项的 R 和 R Studio 谢谢 我准备了以下 shell 脚本来使安装完全自动化 bin bash Program R Studio
  • Linux 中的 C 聊天室 / Socket 编程

    我有一个简单的服务器和客户端 C 代码来使用线程 pthread 库 为多客户端创建一个聊天室 我一直遇到的问题是 我无法想出一种方法让服务器将客户端通过套接字发送到所有其他客户端的每条消息写入 我在这里读过其他类似的帖子 但很无奈 请帮助
  • 使用 libjpeg 编写 jpeg(段错误)

    尝试使用 libjpeg 从一些原始数据写入 jpeg 文件 它会触发分段错误jpeg start compress 这是代码的相关部分 void write sub image char filename int start int en
  • OpenSSL 和 CryptoJS SHA256 加密转换

    我的问题是 OpenSSL 的新版本与 CryptoJS 的默认设置不兼容 openssl enc 用于基于密码的密钥派生的默认哈希值 1 1 0 中更改为 SHA256 而较低版本中更改为 MD5 https unix stackexch
  • -bash:!/usr/bin/env:未找到事件[重复]

    这个问题在这里已经有答案了 我在尝试将 shebang 写入 python 脚本时收到此奇怪的错误消息 echo usr bin env python gt scripts sandbox py bash usr bin env event
  • 执行bash脚本时如何显示行号

    我有一个测试脚本 其中有很多命令并将生成大量输出 我使用set x or set v and set e 因此当发生错误时脚本将停止 但我还是很难定位到哪一行执行停止了 从而定位问题所在 有没有一种方法可以在每行执行之前输出脚本的行号 或者
  • 执行 grails/groovy 时,Linux 上没有可用的控制台输出

    当执行 groovy 脚本或 grails 应用程序时 没有可用的输出 输入 gt 只有一个清晰的控制台屏幕 即使不启动 X Window System 输出也是不可见的 我也尝试过 grailscompile plain output 也
  • 使用 M1 在 dockerized Linux 上安装节点画布

    我有以下Dockerfile我在 MacBook Air M1 上运行 所以在 docker 中我有带有 M1 的 linux FROM node 16 7 0 WORKDIR work CMD while true do sleep 10
  • 删除损坏的链接 Unix

    我想删除损坏的链接 但在此之前我想确认目录中是否存在链接文件 我们来调用一下链接A if a A then print ya A is ther fi But if A链接已损坏 那么我该如何检查 find L type l找到损坏的符号链
  • x86-64 Linux 中不再允许使用 32 位绝对地址?

    64 位 Linux 默认使用小内存模型 将所有代码和静态数据置于 2GB 地址限制以下 这确保您可以使用 32 位绝对地址 旧版本的 gcc 对静态数组使用 32 位绝对地址 以便节省相对地址计算的额外指令 然而 这不再有效 如果我尝试在
  • Gnu 时间和格式化输出

    我想使用 gnu time 来测量一些小 c 程序的运行时间 人 中写道 f FORMAT format FORMAT Use FORMAT as the format string that controls the output of
  • 使用Visual C++进行Linux开发时是否可以直接使用linux文件夹/usr/include

    我尝试使用针对 ubuntu 16 04 VM 的 Visual C for Linux Development 插件 与虚拟机的连接以及本地文件传输到远程文件夹 home user projects projectx 均成功 但是 当我尝
  • 文件在 rpm 规范文件中列出两次

    我的规范文件的文件部分如下所示 files prefix htdocs config prefix htdocs share settings config inc php 现在 由于配置文件已经包含在 prefix htdocs 我收到警
  • 如何使用AWK从文件中连续输出行

    我有一个多行文件 我想连续输出文件的某些行 比如第一次 从第1行打印到第5行 下次 打印第2行到第6行 依此类推 我发现 AWK 是一个非常有用的函数 我尝试自己编写代码 但它什么也没输出 以下是我的代码 bin bash for n in
  • 如何向正在运行的 Linux 进程发送 Ctrl-Break?

    我正在调试在 Sun 的 JDK 1 4 2 18 上运行的应用程序中的内存泄漏 该版本似乎支持命令行参数 XX HeapDumpOnCtrlBreak 这可能会导致 JVM 在遇到控制中断时转储堆 如何将其发送到 Linux 机器上的后台
  • 堆内存和Slab分配

    我很困惑heap and free list 我有几个问题 我对C中malloc的工作原理有自己的理解 如果我错了 请纠正我 堆内存是否被组织为数据的链表 空闲列表 块 堆内存和空闲列表有区别吗 我对存储分配的理解 有待改进 当我们调用ma
  • 如何在带有空格的目录上使用 find ?

    这里有一些奇怪的事情 mkdir p 1 2 3 4 touch 1 2 3 4 file jpg for f in find type f name jpg do echo f done 这返回 1 2 3 4 file jpg and

随机推荐

  • tengine [emerg] invalid IPv6 address in resolver “[fe80::1%enp2s0]“ in .../nginx.conf:137

    错误 nginx emerg invalid IPv6 address in resolver fe80 1 enp2s0 in usr local nginx conf nginx conf 137 解决 1 vim etc resolv
  • kafka(三)重平衡

    历史文章 kafka 一 kafka的基础与常用配置 文章目录 一 kafka消费者组 二 重平衡 Rebalance 2 1 重平衡触发条件 2 2 重平衡策略 2 2 1 Range 平均分配 2 2 2 RoundRobin 轮询分配
  • 独家

    作者 Damir Yalalov 翻译 陈超 校对 赵茹萱 本文约1100字 建议阅读5分钟 本文介绍了ChatGPT如何解决简单的机器学习任务并给出了鸢尾花分类和城市预测两个案例 一句话概括 ChatGPT可以帮助你完成简单的机器学习任务
  • ldconfig: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

    libcuda so
  • 【宠粉福利】这次我们准备了 iPhone 12、AirPods Pro、罗技鼠标等大礼等你来领!...

    喜迎开学季 C 站开豪礼 最高可开 iphone 12 盲盒开出的不只是一份礼物 更是对于一切美好的期待 拆开一个盲盒 就像开始一场未知的爱丽丝梦游仙境 为 两点一线 朝九晚九 的生活 埋下一刻期待的种子 去收获一份未知的惊喜 这次 价格再
  • CentOS 7 关闭网络限制

    1 安装CentOS 7 3操作系统mini版本即可 2 设置关闭Selinux 编辑 etc selinux config vi etc selinux config SELINUX disabled 重启机器 查看selinux状态 s
  • C++中的namespace

    namespace中文意思是命名空间或者叫名字空间 传统的C 只有一个全局的namespace 但是由于现在的程序的规模越来越大 程序的分工越来越细 全局作用域变得越来越拥挤 每个人都可能使用相同的名字来实现不同的库 于是程序员在合并程序的
  • 手撕计算机网络——应用层(四):P2P

    前言 进入应用层学习也有了一段时间了 接下来的这篇文章中小荔枝会将应用层P2P结构体系于我们客户 端系统体系在分发文件中的机理进行整理 希望今天能结束应用层学习哈哈哈 运输层我来啦 目录 前言 一 P2P的自拓展性 二 BitTorrent
  • 【高德地图API】从零开始学高德JS API(八)——地址解析与逆地址解析

    摘要 无论是百度LBS开放平台 还是高德LBS开放平台 其调用量最高的接口 必然是定位 其次就是地址解析了 又称为地理编码 地址解析 就是将地址转换为经纬度 而逆地址解析 就是将经纬度转换为地址 经纬度一般是由专业测绘机构用GPS采集 然后
  • Shell——脚本执行命令和控制语句

    前言 在正常情况下 shell按顺序执行每一条语句 直至碰到文件尾 if选择结构示例 if后面紧跟判断条件 then后面是执行语句 fi是结束标志 多重if结构示例 case多选结构 通常用于在一系列模式中匹配某个变量的值 命令 只在cas
  • CH7-查找

    文章目录 1 查找的基本概念 2 线性表的查找 2 1 顺序查找 线性查找 算法2 1 0 类型定义 算法2 1 1 顺序查找 算法2 1 2 改进后的顺序查找 性能分析 2 2 折半查找 二分或对分查找 算法2 2 1 非递归算法 算法2
  • 基于容器PaaS云技术平台方案

    本文以容器技术建设 PaaS 平台即服务 云平台的解决方案为例 分析其如何实现系统资源的集中管理 动态分配 监控 共享和调度 如何实现应用的统一部署和业务连续性保障 实现多数据中心的高可用 推动系统架构及流程的调整 应对云计算时代所带来的变
  • 分析研究<<一战到底>>节目规则演变

    分析研究 lt lt 一战到底 gt gt 节目规则演变 一 研究范围 江苏卫视2012年3月2日推出益智答题类节目 研究时间截止 2014年1月4日星期六 二 规则演变 1 初始规则 2012年3月2日规则 1 每期参加节目的有11人 分
  • 01-ZooKeeper快速入门

    1 Zookeeper概念 Zookeeper是Apache Hadoop项目下的一个子项目 是一个树形目录服务 zookeeper翻译过来就是 动物园管理员 它是用来管理Hadoop 大象 Hive 蜜蜂 Pig 小猪 的管理员 简称ZK
  • C语言程序设计 现代方法(第2版)电子书pdf下载

    C语言程序设计 现代方法 第2版 下载链接 https pan baidu com s 1XIKYGAxGhRTscgibAj3kgQ 提取码获取方式 关注下面微信公众号 回复关键字 1129
  • 关于猜数字游戏以及关机指令

    这几天学习到了一些没有接触过的东西 因此在这里记录下 首先是猜数字游戏 这个小程序特别简单 只要知道相关的几个关键函数就能明白 它的主要函数有rand 返回随机数 以及srand 用来设置随机数的起点 以及time 代码如下 include
  • 【QTUM量子链中国区】零撸180元攻略

    QTUM量子链中国区 于2020年1月7日正式上线 实名认证 无需上传 通过后赠送体验矿机一台 周期30天 总产量10QTUM 价值130元 进入官方QQ群可以目测到 这个新出的项目非常火爆 问题是 QTUM量子链中国区和著名的QTUM量子
  • ABAP 参照TR创建副本TR并释放

    简介 一般项目中为了后期传输的统一性 都会采用传输副本请求的方式来避免出现一个需求有过多的工作台TR的情况 但是常规的创建副本请求的方式不是很便捷 因此本文介绍一种参照已有TR创建副本TR的样例 效果 代码 Report YSTMS
  • Ljavax/validation/ParameterNameProvider

    利用宝塔部署项目war包出现 Ljavax validation ParameterNameProvider 的错误 初始化org springframework validation beanvalidation OptionalVali
  • day08-Linux自有服务&软件包管理

    自有服务 即不需要用户独立去安装的软件的服务 而是当系统安装好之后就可以直接使用的服务 内置 学习目标 1 了解systemctl命令用途 2 掌握使用systemctl开启 关闭 重启服务 3 了解常见自有服务ntpd firewalld