关于linux:掌握了这几个-Linux-命令可以让你工作效率提升三倍

很多程序员相熟了在 Windows 环境下开发,而咱们服务器个别都是 Linux 零碎。当有一天你须要在 Linux 服务器上做一些配置或者故障排除的时候,你会很困惑,不晓得如何下手。起因是对 Linux 罕用的命令还不相熟,明天我就给大家介绍几个 Linux 常用命令。把握它们的用法后,咱们在应用 CRMEB 买通版零碎的时候就能蛟龙得水,能够大大提高工作效率。 1、top 命令第一个命令是 top,这是 Linux 下罕用的性能剖析工具,能够实时显示零碎中各个过程的资源占用状况,相似于 Windows 下的工作管理器。 每个顶部行示意一种类型的性能数据: top:这一行是汇总信息,09:26:48 是零碎工夫;up 169 days 示意运行工夫;1 user 示意以后登录用户数;load average 是负载状况,前面的三个数字别离示意 1 分钟、5 分钟、15 分钟的负载状况 load average 的数据是每隔 5 秒钟查看一次流动过程的数量,而后计算结果。 Tasks 工作:total 示意过程总数;running 示意正在运行的过程;sleeping 示意休眠的过程;stopped 示意已进行的过程;zombie 示意僵尸过程。 CPU 状态:us 是用户空间占用 CPU 的百分比;sy 是内核空间占用 CPU 的百分比;ni 是扭转过优先级的过程占用 CPU 的百分比;id 是 闲暇 CPU 百分比;wa 是 IO 期待占用 CPU 的百分比;hi 是硬中断占用 CPU 的百分比;si 是软中断占用 CPU 的百分比。 ...

September 13, 2022 · 2 min · jiezi

关于linux:王道2022CLinux语言短期班完结无密

download:王道-2022C-Linux语言短期班完结无密零碎根底相关性应用root用户的环境变量切换到root用户su-显示当前工作门路pwd显示以后零碎默认语言和键盘布局。显示零碎反对的所有语言区域列表。系统配置的默认语言为中文区域设置CTL set-locale lang = zh _ cn.gb2312。重启机器关机断电退出以后shell登记/退出。 命令帮忙 命令帮忙人工命令信息命令列出的命令的简短用法信息(应用whatis报告谬误时,须要运行mandb命令来生成索引文件)whatis命令 日常应用命令 或显示更改日期。显示日历校准计算文本行数或字符数以及其余相干信息wc找到命令的绝对路径列出最近应用的命令的数量(默认状况下,1000个命令保留在rehl下)历史编号默认状况下,显示前10行文本。如果须要显示更多的行,能够通过加减数字来实现表头[+-数字]默认状况下,显示最初10行文本。如果想显示更多,能够加减尾数[+- number]从上到下显示文本内容从下到上显示文本内容切换工作门路cd显示目录内容复制文件或目录。复制目录时,增加-r选项意味着递归复制cp。重命名/挪动文件或目录删除文件或目录。删除目录时,增加-r选项示意递归,增加-f选项示意强制删除,不揭示rm。创立目录,应用-p选项递归创立mkdir创立一个空文件,或更新工夫戳触摸列表目录树树查看文件sha 1 sum sha 224 sum sha 256 sum sha 384 sum sha 512 sum。mcrc md5的值md5sum逐屏浏览文本内容 用户、组和权限 打印用户身份信息id更改用户用户的明码明码用户增加用户useradd更改了增加的用户Usermod的相干信息(uid、gid和组)删除用户用户增加组组增加删除组组删除更改用户权限和组、id和其余更改同时,将文件的用户和组更改为student chown student . student file。更改文件所属的组chgrp。更改文件权限chmod屏蔽模式更改umask 网络配置相关性 杂项网络配置相干文件存储在/etc/sys config/network-scripts/if CFG-*/etc/hosts #动态IP到名称解析文件/etc/hostname #主机名配置文件接口命名规定Eth #以太网接口Wlanx #无线网卡接口Xx # PPPoE拨号接口复制代码vi编辑配置文件以配置网络配置的动态IPv4地址(VI手动编辑配置文件)cat/etc/sys config/network-scripts/if CFG-DEVICE= #在此填写物理网卡名称BOOTPROTO=none #地址调配类型{dhcp|none|static}IPADDR=1.2.3.4 #IPv4地址前缀= 24 #网络掩码网关=1.2.3.254 #GWDNS1=1.2.3.254DNS2=1.2.3.253ONBOOT=yes #配置是否在疏导时启用该接口。 systemctl重新启动网络配置动静IPv4地址(vi手动编辑配置文件)cat/etc/sys config/network-scripts/if CFG-DEVICE= #在此填写物理网卡名称BOOTPROTO=dhcp #地址调配类型{dhcp|none|static}ONBOOT=yes #配置是否在疏导时启用该接口。 systemctl重新启动网络配置DNS客户端 cat /etc/resolv.conf搜寻redhat.com #搜寻域1.2.3.4域名服务器4.3.2.1域名服务器配置动态IP到名称解析列表。当内部网中没有DNS服务器时,您能够编辑hosts文件来实现IP地址到名称的解析 卡特彼勒/etc/主机server1.example.com服务器1服务器2 server2.example.com更改主机名 cat /etc/hostnameServer.example.com复制代码 解压缩相干 水手c创立测试列表x解压缩f文件名解压缩到指定的目录z采纳gzip压缩采纳Bzip2压缩。用jxz压缩 ...

September 13, 2022 · 1 min · jiezi

关于linux:Linux服务器下搭建SFTP服务

我租了一个3A服务器,我把我的办法教给你们,有问题能够后盾私信我SFTP是基于默认的22端口,是ssh内含的协定,只有启动了sshd就能够应用。sftp采纳的是ssh加密隧道,装置性方面较ftp强,而且依赖的是零碎自带的ssh服务本次应用liunx自带的internal-sftp1、创立用户并设置明码 useradd -s /bin/false sftpuserpasswd sftpuser2、批改/etc/ssh/sshd_config配置文件正文掉上面这行 Subsystem sftp /usr/libexec/openssh/sftp-server同时增加以下内容: Subsystem sftp internal-sftp #指定应用sftp服务应用零碎自带的internal-sftp Match user sftpuser #匹配用户,如果要匹配多个组,多个组之间用逗号宰割ChrootDirectory /data/sftp #设定属于用户组sftp的用户拜访的根文件夹如设置 /data/sftp 作为sftpuser 的sftp根目录ForceCommand internal-sftp #指定sftp命令,强制执行外部sftp,并疏忽任何 ~/.ssh/rc文件中的命令X11Forwarding no #这两行,如果不心愿该用户能应用端口转发的话就加 上,否则删掉AllowTcpForwarding no3、敞开selinux批改/etc/sysconfig/selinux配置文件将文件中的SELINUX=enforcing 批改为 SELINUX=disabled而后执行以下命令setenforce 0 (// 0是敞开,1是开启 )4、重启sshdfuwu systemctl restart sshd 或systemctl restart sshd.service #重启sshdsystemctl status sshd.service5、权限赋予批改sftp-users用户组用户目录权限因为应用了ChrootDirectory /data/sftp 作为sftpuser的sftp根目录,当初来批改权限ChrootDirectory设置的目录权限及其所有的下级文件夹权限,属主和属组必须是root;ChrootDirectory设置的目录权限及其所有的下级文件夹权限,只有属主能领有写权限,也就是说权限最大设置只能是755因为/data/sftpuser 是root创立的,权限755,如果sftpuser间接sftp过来是没有权限写入,因而,须要/data/sftp下创立新目录并给与qhlh权限创立文件夹:mkdir /data/sftp/wly权限赋予 chown sftpuser:sftpuser /data/sftp/wly 将目录给用户chmod 755 /data/sftp/wly #权限也只能是755,否则无奈限度目录6、测试验证应用Sftp sftpuser@192.168.31.49或应用filezilla客户端连贯到sftp服务器应用filezilla客户端连贯到sftp服务器上传一份文件验证: 7、异样问题: 当本来sftp运行一段时间后忽然不行报如下谬误并且服务器也连贯不上sftp 工具报错:无奈初始化sftp协定,主机是sftp服务器吗?很大起因是password aged、明码老化、有效期曾经生效导致会话失败!sftp默认明码有效期是30天解决方案如下:1、间接用命令批改用户明码有效期:chage -M 99999 username--sftp用户名2、批改/etc/shadow文件:3、批改/etc/login.defs文件:(注:login.defs文件参数只对创立普通用户失效,对root用户有效。shadow文件比login.defs文件优先级要高!)

September 9, 2022 · 1 min · jiezi

关于linux:关于-eBPF-安全可观测性你需要知道的那些事儿

许庆伟:龙蜥社区eBPF技术摸索SIG组 Maintainer & Linux Kernel Security Researcher。本文是作者在 PODS 2022 大会上对于内核平安方面的一些思考和心得,本次分享将从监控和可观测性、eBPF 平安可观测性剖析、内核平安可观测性瞻望三个方面开展。一、eBPF 平安可观测性的前景瞻望从下图能够看到,监控只是可观测性的冰山一角,而大部分都暗藏在水面之下的深层次问题无奈简略通过监控解决。 监控(Monitoring) vs 可观测性(Observability) 目前监控也开始可视化,但绝大部分都是当时预约义参数,而后预先查看日志,进行剖析。监控的毛病包含: 1)可扩展性差,须要批改代码和编译;验证周期长;数据起源窄等问题。 2)可观测性是通过被动定制度量的收集和内核数据聚合,包含以下三种: Logging 实时或者预先特定事件信息分布式服务器集群的海量数据溯源图离散信息整顿各种异步信息 Tracing 数据源:提供数据起源采集框架:往上对接数据源,采集解析发送数据,往下对用户态提供接口前端交互:对接 Tracing 内核框架,间接与用户交互,负责采集配置和数据分析 Metrics(度量) 这也是可观测性与监控最次要的区别。 零碎中某一类信息的统计聚合,比方 CPU、内存、网络吞吐、硬盘 I/O、硬盘应用等状况。当度量值触发异样阈值时,零碎能够收回告警信息或被动解决,比方杀死或隔离过程; 次要目标:监控(Monitoring)、预警(Alert)。 总结一下监控和可观测性的区别: 监控:收集和剖析零碎数据,查看零碎以后的状态,对可预感的问题进行剖析解决。 可观测性:通过观察零碎并掂量零碎的外部状态,从其内部输入的数据推断进去零碎此时处于某种程度的度量,特地是咱们所关怀的场景和事件。 二、eBPF 平安可观测性剖析平安:指的是某种对象或者对象属性不受威逼的状态。 平安可观测性: 通过观测整个零碎,从低级别的内核可见性到跟踪文件拜访、网络流动或能力(capability)变动,始终到应用层,涵盖了诸如对易受攻击的共享库的函数调用、跟踪过程执行或解析收回的 HTTP 申请。因而这里的平安是整体的概念。提供对各种内核子系统的可观测性,涵盖了命名空间逃逸、Capabilities 和特权降级、文件系统和数据拜访、HTTP、DNS、TLS 和 TCP 等协定的网络流动,以及零碎调用层的事件,以审计零碎调用和跟踪过程执行。从日志、跟踪及度量三个维度查看相干输入,进而来掂量零碎外部平安状态的能⼒。eBPF 的平安可观测性体现为对内核来说其存在感极低但观测能力却异样弱小(药效好,副作用小): 程序沙箱化:通过 eBPF 验证器爱护内核稳固运行。侵入性低:毋庸批改内核代码,且毋庸进行程序运行。透明化:从内核中通明收集数据,保障企业最重要的数据资产。可配置:Cilium 等自定义乃至自动化配置策略,更新灵活性高,过滤条件丰盛。疾速检测:在内核中间接解决各种事件,不须要回传用户态,使得异样检测不便和疾速。其中 eBPF 程序沙箱化,更加离不开平安模式的 eBPF Verifier(其中最重要的是边界查看): 领有加载 eBPF 程序的流程所需的特权无 crash 或其余异样导致系统解体的状况程序能够失常完结,无死循环查看内存越界查看寄存器溢出eBPF 的可观测性利用场景次要有以下三类: 1.云原生容器的平安可观测性 随着云网边端的急速倒退,人们的眼光越发的聚焦在目前最炽热的云原生场景上。Falco、Tracee、Tetragon、Datadog-agent、KubeArmor 是现阶段云原生场景下比拟风行的几款运行时防护计划。 这些计划次要是基于 eBPF 挂载内核函数并编写过滤策略,在内核层出现异常攻打时触发预置的策略,无需再返回用户层而间接收回告警甚至阻断。 以预防的形式在整个操作系统中执行安全策略,而不是对事件异步地做出反馈。除了可能为多个层级的访问控制指定容许列表外,还可能自动检测特权和 Capabilities 降级或命名空间提权(容器逃逸),并主动终止受影响的过程。 ...

September 9, 2022 · 2 min · jiezi

关于linux:Java并发编程解析-解析AQS基础同步器的设计与实现

关健术语 本文用到的一些要害词语以及罕用术语,次要如下: 信号量(Semaphore): 是在多线程环境下应用的一种设施,是能够用来保障两个或多个要害代码段不被并发调用,也是作零碎用来解决并发中的互斥和同步问题的一种办法。信号量机制(Semaphores): 用来解决同步/互斥的问题的,它是1965年,荷兰学者 Dijkstra提出了一种行之有效的实现过程互斥与同步的办法。管程(Monitor) : 个别是指治理共享变量以及对共享变量的操作过程,让它们反对并发的一种机制。根本概述在Java畛域中,咱们能够将锁大抵分为基于Java语法层面(关键词)实现的锁和基于JDK层面实现的锁。 在Java畛域中, 尤其是在并发编程畛域,对于多线程并发执行始终有两大外围问题:同步和互斥。其中: 互斥(Mutual Exclusion):一个公共资源同一时刻只能被一个过程或线程应用,多个过程或线程不能同时应用公共资源。即就是同一时刻只容许一个线程访问共享资源的问题。同步(Synchronization):两个或两个以上的过程或线程在运行过程中协同步调,按预约的先后秩序运行。即就是线程之间如何通信、合作的问题。针对对于这两大外围问题,利用管程是可能解决和实现的,因而能够说,管程是并发编程的万能钥匙。 尽管,Java在基于语法层面(synchronized 关键字)实现了对管程技术,然而从应用形式和性能上来说,内置锁(synchronized 关键字)的粒度绝对过大,不反对超时和中断等问题。 为了补救这些问题,从JDK层面对其“反复造轮子”,在JDK外部对其从新设计和定义,甚至实现了新的个性。 在Java畛域中,从JDK源码剖析来看,基于JDK层面实现的锁大抵次要能够分为以下4种形式: 基于Lock接口实现的锁基于ReadWriteLock接口实现的锁基于AQS根底同步器实现的锁基于自定义API操作实现的锁从浏览源码不难发现,在Java SDK 并发包次要通过AbstractQueuedSynchronizer(AQS)实现多线程同步机制的封装与定义,而通过Lock 和 Condition 两个接口来实现管程,其中 Lock 用于解决互斥问题,Condition 用于解决同步问题。 一. 根本实践在并发编程畛域,有两大外围问题:一个是互斥,即同一时刻只容许一个线程访问共享资源;另一个是同步,即线程之间如何通信、合作。 在操作系统中,个别有如果I/O操作时,对于阻塞和非阻塞是从函数调用角度来说的,其中: 阻塞:如果读写操作没有就绪或者实现,则函数始终期待。非阻塞: 函数立刻调用,而后让应用程序轮询循环。而同步和异步则是从“读写是次要是由谁实现”的角度来说的,其中: 同步: 读写操作次要交给应用程序实现异步: 读写操作次要由操作系统实现,个别实现之后,回调函数和事件告诉应用程序。其中,信号量机制(Semaphores)是用来解决同步/互斥的问题的,然而信号量(Semaphore)的操作扩散在各个过程或线程中,不不便进行治理,因每次需调用P/V(来自荷兰语 proberen和 verhogen)操作,还可能导致死锁或毁坏互斥申请的问题。 因为PV操作对于解决过程互斥/同步编程简单,因此在此基础上提出了与信号量等价的——“管程技术”。 其中,管程(Monitor)当中定义了共享数据结构只能被管程外部定义的函数所批改,所以如果咱们想批改管程外部的共享数据结构的话,只能调用管程外部提供的函数来间接的批改这些数据结构。 一般来说,管程(Monitor)和信号量(Semaphore)是等价的,所谓等价指的是用管程可能实现信号量,也能用信号量实现管程。 在管程的倒退历程上,先后呈现过Hasen模型、Hoare模型和MESA模型等三种不同的管程模型,当初正在宽泛应用的是MESA模型。 在MESA模型中,管程中引入了条件变量(Conditional Variable)的概念,而且每个条件变量都对应有一个期待队列(Wait Queue)。其中,条件变量和期待队列的作用是解决线程之间的同步问题。 而对于解决线程之间的互斥问题,将共享变量(Shared Variable)及其对共享变量的操作对立封装起来,个别次要是实现一个线程平安的阻塞队列(Blocking Queue),将线程不平安的队列封装起来,对外提供线程平安的操作方法,例如入队操作(Enqueue)和出队操作(Dequeue)。 在Java畛域中,对于Java语法层面实现的锁(synchronized 关键字), 其实就是参考了 MESA 模型,并且对 MESA 模型进行了精简,个别在MESA 模型中,条件变量能够有多个,Java 语言内置的管程(synchronized)里只有一个条件变量。 这就意味着,被synchronized 关键字润饰的代码块或者间接标记静态方法以及实例办法,在编译期会主动生成相干加锁(lock)和解锁(unlock)的代码,即就是monitorenter和monitorexit指令。 对于synchronized 关键字来说,次要是在Java HotSpot(TM) VM 虚拟机通过Monitor(监视器)来实现monitorenter和monitorexit指令的。 同时,在Java HotSpot(TM) VM 虚拟机中,每个对象都会有一个监视器,监视器和对象一起创立、销毁。 监视器相当于一个用来监督这些线程进入的非凡房间,其任务是保障(同一时间)只有一个线程能够拜访被爱护的临界区代码块。 实质上,监视器是一种同步工具,也能够说是JVM对管程的同步机制的封装实现,次要特点是: 同步:监视器所爱护的临界区代码是互斥地执行的。一个监视器是一个运行许可,任一线程进入临界区代码都须要取得这个许可,来到时把许可偿还。合作:监视器提供Signal机制,容许正持有许可的线程临时放弃许可进入阻塞期待状态,期待其余线程发送Signal去唤醒;其余领有许可的线程能够发送Signal,唤醒正在阻塞期待的线程,让它能够从新取得许可并启动执行。在Hotspot虚拟机中,监视器是由C++类ObjectMonitor实现的,ObjectMonitor类定义在ObjectMonitor.hpp文件中,其中: ...

September 8, 2022 · 6 min · jiezi

关于linux:Linux云主机安全入侵排查步骤

导语 常常有用户报障零碎被植入恶意程序,如挖矿软件、ddos攻打病毒、syn映射攻打病毒等,能够依照以下流程为用户排查入侵病毒类型: 一、定位病毒过程 对于用户反馈云主机性能卡顿,CPU和内存占用较高的状况: 执行TOP命令,查看占用CPU较高的异样过程,个别多为80%以上,有个别病毒占用CPU可能不高,然而从command名称显著不是零碎过程或用户过程,如TSM,Lixsyn,ynlyvtpxia等。 如图所示: 留神运行异样过程的用户,大部分为root,也有可能为其余利用用户,个别为能够登录零碎的用户,病毒破解用户登录明码后应用该用户登录零碎,依据入侵的用户的权限等将病毒程序上传到不同目录,此类病毒个别具备避免被删除和过程主动启动的性能。 即无奈从目录中删除,删除后还会主动复原。应用Kill -9命令清理过程后片刻会再次主动启动该过程。 上图红框中的即为病毒程序,尽管占用CPU和出网带宽不高,然而依然具备避免删除和主动启动的特色。 找到过程后记录PID过程号,后续定位病毒程序未知会用到。 对于用户反馈连贯云主机卡顿,但CPU和内存占用不高的状况,可能是云主机出网带宽跑满导致。此时ping云主机公网IP会呈现大量丢包。 通过VNC连贯云主机,应用iftop命令能够定位到占用带宽较高的过程(iftop命令应用教程可参考文档《Linux流量监控工具 - iftop (最全面的iftop教程)》:https://developer.jdcloud.com...),个别多为同一端口有大量内部公网IP的数据进出,此种景象也多为病毒或歹意攻打导致。 应用iftop -P定位占用流量较高的端口,再应用lsof -i:端口号命令查看占用端口的过程号并记录。 二、定位病毒程序地位 依照第一步定位的病毒过程号定位运行的病毒程序门路,命令如下: ll /proc/过程号 linux零碎对于每个运行的过程会在/proc目录下建设以过程号命名的长期目录,该目录记录了过程的相干信息,其中exe我的项目即为过程对应的程序门路,如图所示: 病毒文件被上传到了/usr/bin目录下,显然病毒获取了root权限。有时也会搁置在/tmp目录下,因病毒取得的不同用户权限而异。进入文件所在门路,大多数病毒文件删除后还会再次出现,无奈彻底清除。 这也是咱们个别倡议用户中毒后重置零碎的起因。将病毒文件或者病毒文件所在的由病毒创立的目录生成tar包,而后应用lrzsz工具下载至本地。 单个文件之所以打tar包是防止下载至本地后避免被杀毒软件删除,之后上传至病毒剖析网站后如果不是tar包格局有时也会无奈剖析出后果。 病毒剖析网站有很多,罕用的有:https://x.threatbook.cn/http://www.virustotal.comhttp://r.virscan.org 以https://x.threatbook.cn/为例,关上网页后,点击下图红框的上传文件,抉择病毒tar包上传。 期待文件上传实现后,点击上面红框中的扫描文件,进入剖析页面,网站会应用不同的安全软件剖析病毒并给出剖析后果。 有些能检测出是病毒,有些检测不是病毒,有一款以上的文件报毒即可确认是病毒。 如图所示,扫描出病毒是DDoS攻打病毒 。 确认病毒类型后,能够尝试参考文档《Linux系统对DDoS木马病毒排查及革除》(附产品)进行革除。 如果无奈彻底清除,倡议备份好零碎中的集体数据后应用公有镜像或官网镜像重置零碎。 通常绝大多数平安入侵都是通过齐全凋谢的端口策略以及利用破绽实现,因而应用默认平安组凋谢所有端口的平安危险极高。 特地提醒: 针对linux云主机,建议您绑定linux凋谢22端口平安组,移除默认平安组,独自凋谢须要的端口,操作方法请参考下列文档: 平安组概述(https://docs.jdcloud.com/cn/v...) 平安组绑定云主机(https://docs.jdcloud.com/cn/v...) 平安组解绑云主机(https://docs.jdcloud.com/cn/v...) 配置平安组入站规定(https://docs.jdcloud.com/cn/v...) 配置平安组出站规定(https://docs.jdcloud.com/cn/v...) 批改ssh协定端口(https://docs.jdcloud.com/cn/v...) 应用简单明码并定期更换 同时定期对您的云主机制作公有镜像(https://docs.jdcloud.com/cn/v...)和云硬盘快照(https://docs.jdcloud.com/cn/c...),备份您的系统配置和数据,以便在出现意外时能够应用公有镜像重置您的零碎。

September 7, 2022 · 1 min · jiezi

关于linux:安装-Linux-Mint-21-后要做的12件事情

Linux Mint 毫无疑问是超高人气的 Linux 桌面发行版,最近代号为 Vanessa 的 Linux Mint 21 曾经公布。 在本文中,咱们将学习装置 Linux Mint 21 后要做的 12 件事。 (1) 应用 timeshift 配置备份第1件重要的事件是应用 timeshift 工具启用零碎备份。从零碎菜单中,搜寻 timeshift 并启动它。 单击向导,依据要求进行设置。基本上,它有四个步骤 Snapshot Type (choose Rsync)Snapshot Location (Disk like /dev/sda2 or /dev/sda3)Snapshot Levels (Daily, hourly, weekly & monthly)User Home directories (Select the folders to be backed up)当初,单击 Create 以创立零碎的第一个快照 创立快照后,您能够应用该快照复原零碎,以防配置谬误或意外失落数据。 (2) 禁用 Linux Mint 欢送屏幕在装置 Linux Mint 21 之后,每当咱们登录到桌面环境,咱们都会看到上面的画面 因而,要禁用它,勾销选中 “show this dialogue at startup” 选项 ...

September 7, 2022 · 1 min · jiezi

关于linux:Linux拿到一台虚拟机Linux该干什么

【Linux】拿到一台虚拟机Linux该干什么?引言很多时候咱们喜爱在本人电脑上装一台Linux虚拟机玩,然而每次装好之后根本都是两眼无神,不晓得下一步干啥,所以这篇文章次要就是解决装置好Linux之后,倡议做的一些操作,帮忙疾速构建本地可用环境。 本文演示的Linux版本为CenterOs7.9,应用的镜像是官网7.9的Miniual版本(也就是最小体积版本),VM Tool 的版本为16.2.3 build-19376536。整个过程步骤非常简略,比拟适宜老手应用。 一、步骤1.1 虚拟机连贯通过虚拟机登录到LInux,切换Root角色,应用sudo vi /etc/ssh/sshd_config批改文件,留神不要改错文件。 sudo vi /etc/ssh/sshd_config# 批改端口Port 10022# 因为是新的Linux虚拟机,倡议还是先保留22端口,等能失常用10022登陆再去掉,万一10022登不上就嗝屁了(并不会)Port 22# 不容许 ROOT 登陆,不成文规定PermitRootLogin: no1.2 禁止root登陆执行命令vi /etc/ssh/sshd_config,找到PermitRootLogin,将前面的yes改为no。 记得把后面的正文 # 勾销,这样root就不能近程登录了!通常用一般账号登录进去,要用到root的时候进入零碎再应用命令su root。 也能够构建 给予sudo权限的用户 操作本人的虚拟机(下文介绍),总之就是不要Root间接登录。 vi 命令是没有色彩提醒的,所以如果想要更好的配置浏览体验,通常须要装置vim,命令yum install vim -y。 再次强调拿到虚拟机之后第一手操作是敞开Root登录,不论是否为本地LInux服务。 # 不容许 ROOT 登陆PermitRootLogin: no批改实现之后的效果图: 如果找不到配置,查看是否批改的是ssh_config,而不是sshd_config文件!## 1.3 改登录端口(ssh) 长期新增端口办法不倡议应用,这里记录改文件永恒失效的方法。 因为是本人本地的虚拟机,所以间接图省事,把防火墙敞开,这样也不要老是去配端口。 vi /etc/ssh/sshd_config依据要求加上本人须要的端口,将#Port 22的正文去掉并且换行退出Port 10022,如果是不是减少而是想间接批改端口的话,这里倡议先保留22端口,等新端口能够登录再去掉。 另外再介绍一下,443是https应用的端口,3128是squid应用的端口,一万以内的端口应用频率很高。 如果是本人应用倡议应用大端口,比方10000~65535以上,根本不会有中间件和其余的抵触问题。 对于一些本人程序应用的端口,也是数倡议千位数字后面加一个1,,根本能够保障不抵触。 批改实现之后肯定要记得 重启ssh服务:systemctl restart sshd.service,或者间接重启虚拟机Linux零碎。 检测本人增加了多少凋谢的端口 :firewall-cmd --zone=public --list-ports。当然我这里演示是间接关掉防火墙,对外是畅通无阻的。 长期新增办法(不倡议应用):firewall-cmd --zone=public --add-port=12280/tcp --permanent ,--permanent就是让端口永恒失效 不倡议应用起因,第一个是不晓得端口加来干嘛用的,前面容易忘,第二个是这个操作只能长期失效,重新启动又会还原。 不倡议应用的其余起因是执行此命令会把文件的所有正文清空!!留神改端口之后尝试内部连贯是生效的,因为还有selinux和防火墙须要解决,这里仍然图省事一并给他关了。 1.4 敞开linux外部防火墙firewalld 的根本应用如下: ...

September 7, 2022 · 2 min · jiezi

关于linux:阿里云ECS后台CPU占用100top却找不到

上周公司阿里云服务器后盾报警,CPU占用霎时飙升到100%: 首先想到应用top命令查问CPU占用详情: 发现过程占用CPU都比拟低,在CPU占用一栏发现只有ni的占用比拟高。 先理解一下CPU相干监控项: us: 用户空间占用CPU百分比。sy: 内核空间占用CPU百分比。ni:用户过程空间扭转优先级的过程占用CPU百分比。id: 闲暇CPU百分比。ni示意用户过程扭转优先级占用,这个解释有些形象,简略来说就是优先过程调配工夫片占用总过程CPU的百分比。 ni越高示意某个过程优先级越高,占用的CPU占比也就越高。这么诡异的程序应用top命令找不到,再应用htop查找,没有装置先应用命令装置: yum -y install epel-releaseyum -y install htop而后输出htop查问: 发现cryto相干字段的过程CPU特地高,首先用kill -9杀死过程。kill过程之后,过了几秒,相干的过程又死灰复燃了。找了很多文章,发现cryto是一个挖矿的病毒。 解决方案在htop中找到cryto过程对应的门路,删除该目录上面所有的文件。全局搜寻cryto,把呈现的文件或者目录全副删除。查看防火墙是否敞开,开启防火墙,装置安全软件查杀,全盘查杀整个服务器。总结后盾报警CPU占用100%,应用top命令找不到占用高的过程,但发现ni占比过高,ni示意优先级过程占用CPU的百分比。阐明这个过程始终在长时间的占用CPU。应用htop找到过程,发现是cryto占用很高,cryto是挖矿病毒,kill过程之后,过程又死灰复燃。找到过程对应的目录,以及全局搜寻cryto关键字,删除所有上述目录,再查看后盾,CPU占比降落。参考linux top中nice的含意

September 7, 2022 · 1 min · jiezi

关于linux:Java-并发编程解析-如何正确理解Java领域中的并发锁我们应该具体掌握到什么程度

天穹之边,浩瀚之挚,眰恦之美; 悟心悟性,虎头蛇尾,惟善惟道! —— 朝槿《朝槿兮年说》 写在结尾 对于Java畛域中的锁,其实从接触Java至今,我置信每一位Java Developer都会有这样的一个感觉?不论是Java对锁的实现还是利用,真的是一种“群英荟萃”,而且每一种锁都有点各有各的驴,各有各的本,各不相同。 在很多状况下,以及在各种锁的利用场景里,各式各样的定义,难免会让咱们感觉莫衷一是,很难分明该如何对这些锁做到得心应手? 在并发编程色世界中,个别状况下,咱们只需理解其是如何应用锁之后就曾经满足咱们大部分的需要,然而作为一名对技术钻研有执念和激情的人来说,深刻探索和剖析才是对技术的探秘之乐趣。 作为一名Java Developer来说,深刻探索和剖析和正确理解和把握这些锁的机制和原理,须要咱们带着一些理论问题,通过对其探索剖析和加上理论利用剖析,能力真正意义上了解和把握。 一般来说,针对于不同场景提供的锁,都用于解决什么问题?不论是从实现形式上,还是从应用场景上,都能够应答这些锁的特点,咱们又该如何意识和了解? 接下来,明天咱们就一起来盘一盘,Java畛域中那些并发锁,盘点一下相干的锁,从设计根本思维和设计实现,以及利用剖析等方面来总体剖析探讨一下。 关健术语 本文用到的一些要害词语以及罕用术语,次要如下: 过程(Process): 计算机中的程序对于某数据汇合上的一次运行流动,是零碎进行资源分配和调度的根本单位,是操作系统构造的根底。在晚期面向过程设计的计算机构造中,过程是程序的根本执行实体;在当代面向线程设计的计算机构造中,过程是线程的容器。线程(thread): 操作系统可能进行运算调度的最小单位。它被蕴含在过程之中,是过程中的理论运作单位。在Unix System V及SunOS中也被称为轻量过程(Light-Weight Processes),但轻量过程更多指内核线程(Kernel Thread),而把用户线程(User Thread)称为线程。根本概述 在Java畛域中,单纯从Java对其实现的形式上来看,咱们大体上能够将其分为基于Java语法层面(关键词)实现的锁和基于JDK层面实现的锁。 基于这两个基本点,能够作为咱们对于Java畛域中的锁的一个根底意识,这对于咱们意识和理解Java畛域中的锁领导一个参考方向。 一般来说,锁是并发编程中最根底和最罕用的一项技术,而且在Java的外部JDK中其应用也是十分地宽泛。 接下来,咱们便一起探索和认识一下Java畛域中的各种各样的锁。 一.锁的根本实践锁的根本实践次要是指从锁的根本定义和根本特点以及根本意义去剖析的个别模型实践,是一套帮忙咱们意识和理解锁的简略的思维方法论。 个别在理解一个事物之前,咱们都会依照根本定义,根本特点以及根本意义去对待这个事物。在计算机的世界里,锁自身也和咱们理论生存一样,也是一个比拟广泛且利用场景繁多的一种事物。 比方,在操作系统中,也定义了各种各样的锁;在数据库系统中也呈现了锁。甚至,在CPU处理器架构中都会看见锁的身影。 然而,这里就会有一个问题:既然都在应用锁,可是对于锁该去如何定义,仿佛都很难给出一个精确的定义? 换而言之,这兴许就是咱们对于锁只是晓得有这个货色,然而始终有云里雾里的根本起因。 从实质上讲,计算机软件开发畛域中的锁是一种协调多个过程 或者多个线程对某一个资源的拜访的管制机制,其外围是作用于资源,也作用于着这个定义中提到的过程和线程等。其中: 过程(Process): 操作系统进行资源分配和调度的根本单位,是计算机程序中的实体,其中,程序是指令、数据及其组织模式的形容。线程(Thread) : 操作系统可能进行运算调度的最小单位,一条线程指的是过程中一个繁多程序的控制流,一个过程中能够并发多个线程,每条线程并行执行不同的工作。一般来说,线程次要分为位于零碎内核空间的线程称为内核线程(Kernel Thread)和位于应用程序的用户空间的线程被称为用户线程(User Thread)两种,其中: 也就是咱们个别说的Java线程等均属于用户线程,而内核线程次要是操作系统封装的函数库以及API等。 而且最关健的就是,咱们素日里所提到Java线程和JVM都是位于用户空间之中,从Java层到操作系统零碎的线程调度程序来看,个别流程是:java.lang.Thread(Target Thread)->Java Thread->OSThread->pthread->Kernel Thread。 简略来说,在Java畛域中,锁是用于管制多个线程访问共享资源的工具。个别,锁提供对共享资源的独立拜访:一次只有一个线程能够获取锁,所有对共享资源的拜访都须要先获取锁。然而,某些锁能够并发访问共享资源。 对于并发访问共享资源来说,次要是根据当初大多数操作系统的线程的调度形式是抢占式调度,因而加锁是为了保护数据的一致性和完整性,其实就是数据的安全性。 综上所述,咱们便能够失去一个对于锁的根本概念模型,接下来咱们便来一一盘点以下次要有哪些锁。 二.锁的根本分类在Java畛域中,咱们能够将锁大抵分为基于Java语法层面(关键词)实现的锁和基于JDK层面实现的锁。 单纯从Java对其实现的形式上来看,咱们大体上能够将其分为基于Java语法层面(关键词)实现的锁和基于JDK层面实现的锁。其中: Java内置锁:基于Java语法层面(关键词)实现的锁,次要是依据Java语义来实现,最典型的利用就是synchronized。Java显式锁:基于JDK层面实现的锁,次要是依据基于Lock接口和ReadWriteLock接口,以及对立的AQS根底同步器等来实现,最典型的有ReentrantLock。须要特地留神的是,在Java畛域中,基于JDK层面的锁通过CAS操作解决了并发编程中的原子性问题,而基于Java语法层面实现的锁解决了并发编程中的原子性问题和可见性问题。 除此之外之外,在Java并发容器中曾用到过一种Segment数组构造来实现的分段锁。 而从具体到对应的Java线程资源来说,咱们依照是否含有某一个性来定义锁,次要能够从如下几个方面来看: 从加锁对象角度方面上来看,线程要不要锁住同步资源 ? 如果是须要加锁,锁住同步资源的状况下,个别称其为乐观锁;否则,如果是不须要加锁,且不必锁住同步资源的状况就属于为乐观锁。从获取锁的解决形式上来看,假如锁住同步资源,其对该线程是否进入睡眠状态或者阻塞状态?如果会进入睡眠状态或者阻塞状态,个别称其为互斥锁,否则,不会进入睡眠状态或者阻塞状态属于一种非阻塞锁,即就是自旋锁。从锁的变动状态方面来看,多个线程在竞争资源的流程细节上是否有差异? 首先,对于不会锁住资源,多个线程只有一个线程能批改资源胜利,其余线程会根据理论状况进行重试,即就是不存在竞争的状况,个别属于无锁。其次,对于同一个线程执行同步资源会主动获取锁资源,个别属于偏差锁。然而,对于多线程竞争同步资源时,没有获取到锁资源的线程会自旋期待锁开释,个别属于轻量级锁。最初,对于多线程竞争同步资源时,没有获取到锁资源的线程会阻塞期待唤醒,个别属于重量级锁。从锁竞争时公平性上来看,多个线程在竞争资源时是否须要排队期待?如果是须要排队期待的状况,个别属于偏心锁;否则,先插队,而后再尝试排队的状况属于非偏心锁。从获取锁的操作频率次数来看,一个线程中的多个流程是否能够获取同一把锁?如果是能够屡次进行加锁操作的状况,个别属于可重入锁,否则,能够屡次进行加锁操作的状况属于非可重入锁。从获取锁的占有形式上来看,多个线程能不能共享一把锁?如果是能够共享锁资源的状况,个别属于共享锁;否则,独占锁资源的状况属于排他锁。针对于上述形容的各种状况,接下来,咱们便来一起具体看看,在Java畛域中,这个锁的具体情况。 三.Java内置锁在Java畛域中,Java内置锁次要是指基于Java语法层面(关键词)实现的锁。 在Java畛域中,咱们把基于Java语法层面(关键词)实现的锁称为内置锁,比方synchronized 关键字。 对于synchronized 关键字的解释,最间接的就是Java语言中为开发人员提供的同步工具,能够看作是Java中的一种“语法糖”。次要主旨在于解决多线程并发执行过程中数据同步的问题。 不像其余的编程语言(C++),在解决同步问题时都须要本人进行锁解决,次要特点就是简略,间接申明即可。 在 Java 程序中,利用 synchronized 关键字来对程序进行加锁,其实现同步的语义是互斥锁。既能够用来申明一个 synchronized 代码块,也能够间接标记静态方法或者实例办法。 ...

September 7, 2022 · 2 min · jiezi

关于linux:crontab-开机启动-frp-失败

crontab 开机启动 frp : ╰─➤ crontab -l @reboot cd /home/bot/opt/frp && nohup ./frpc -c ./frpc.ini > run.log 2>&1 &然而没有一次是胜利的,看看 run.log 外面都是啥吧! 2022/08/06 21:54:13 [1;33m[W] [service.go:104] login to server failed: dial tcp 124.222.178.120:7000: connect: network is unreachable[0mdial tcp 124.222.178.120:7000: connect: network is unreachable可看到 network is unreachable 为什么呢? 我猜想就是 crontab 开机启动 frp 太快了,Linux 的网络模块可能都还没有失常工作,就能够启动 frp 了,天然就网络不可达 如何解决呢? ╰─➤ crontab -l @reboot sleep 10 && cd /home/bot/opt/frp && nohup ./frpc -c ./frpc.ini > run.log 2>&1 &此时来看,所有都显得失常了 ...

September 6, 2022 · 1 min · jiezi

关于linux:apt-update和apt-upgrade命令-有什么区别

这些是apt update和apt upgrade命令。apt update 和 apt upgrade 是许多 Linux 用户最罕用但被误会的两个命令。对于某些人来说,它们扮演着雷同的角色,但事实并非如此。在本指南中,咱们试图辨别两者之间的差别以及如何应用它们。1)apt update命令这是一个次要在新零碎装置之后或装置新软件包之前调用的命令。apt update 命令更新 Linux 零碎的包索引或包列表。它不会降级任何软件包,正如一些 Linux 用户被误导的那样。/etc/apt/sources.list包索引文件是一个文件或数据库,其中蕴含在位于该文件的存储库中定义的软件包列表。其余软件包列表位于/etc/apt/sources.list.d 目录中。运行此命令十分平安。如果因为某种原因停止或拔掉电源,您能够从进行的中央复原。三星 Galaxy S22 Ultra vs iPhone 13 Pro Max vs Pixel 6 Pro在终端上应用 cat 命令查看源列表文件。$ cat /etc/apt/sources.list /etc/apt/sources.list 文件要更新软件包列表,请调用以下命令:对于 Ubuntu 18.04 及更高版本$ sudo apt update 对于 Ubuntu 16.04 及更早版本$ sudo apt-get update2)apt upgrade命令须要将您的软件包降级到最新版本?而后apt upgrade是要执行的命令。apt upgrade 命令不带任何参数,将零碎上所有过期的软件包降级到最新版本。如果须要任何依赖项,该命令还会触发新软件包的装置。除此之外,apt upgrade还会装置您零碎所需的所有安全更新,这增强了您零碎的安全性。要列出须要降级的软件包,请运行apt list --upgradable命令。事实上,这是在apt update输入的最初显示的提醒。 因而,要查看筹备降级的软件包,请运行:$ sudo apt list --upgradable 要降级所有过期的软件包并利用安全补丁,请运行以下命令:$ sudo apt upgrade 在运行时不中断或不进行 apt 降级更平安。要记住的几件事:如果因为某种原因中断,您是否有一个很好的备份能够复原?您是否将日志发送到另一个近程零碎?有手动编译的软件吗?概括apt update命令用于同步零碎上的软件包列表。它为您零碎上的 PPA 和存储库获取最新的软件包列表,并确保它们是最新的。apt upgrade命令将软件包降级到最新版本,并在须要它们作为依赖项时装置新软件包。它不会删除任何包,如果指定要删除任何包,它会跳过它们。 ...

September 6, 2022 · 1 min · jiezi

关于linux:如何从-Linux-Mint-20-升级到-Linux-Mint-21

Linux Mint 21 是一个长期反对版本,直到2027年。它基于 Ubuntu 22.04 LTS,并蕴含了许多改良和加强,例如: Linux 内核 5.15用于治理蓝牙设施的Blueman引入过程监视器来检测自动更新和零碎快照改良的缩略图改良的便签改良的XApps先决条件领有admin 权限的sudo用户零碎根目录闲暇磁盘空间20GB+稳固的网络连接留神: 不能间接将 Linux Mint 20.1 或 20.2 降级到 Linux Mint 21,须要先将系统升级到 20.3 $ sudo apt update $ sudo apt upgrade当系统升级到 Linux Mint 20.3 后,持续前面的操作 从Linux Mint 20.3 降级到 21备份文件在开始降级零碎之前,强烈建议您备份所有文件和文件夹,以便如果降级失败,您将处于平安的地位。此外,您能够应用 TimeShift 来备份和还原整个零碎。备份所有文件后,您能够平安地降级零碎。 (第1步) 装置更新咱们将应用 mintupgrade 实用程序帮忙实现降级。 运行以下命令装置所有可用的更新 $ sudo apt update$ sudo apt upgrade -y装置完所有更新后,重启零碎 $ sudo reboot(第2步) 装置 Mintupgrade 实用程序关上终端,运行以下命令 $ sudo apt update$ sudo apt install mintupgrade -y(第3步) 查看更新执行 mintupgrade 命令,它将启动降级工具的图形界面。 ...

September 5, 2022 · 1 min · jiezi

关于linux:Linux安装dockercompose

先装置好DockerCentos7离线装置Docker Linux下装置docker-compose官网下载: https://github.com/docker/com...下载对应版本: https://github.com/docker/com...下载x86架构: docker-compose-Linux-x86_64 #拷贝到/usr/local/bin/目录cp docker-compose-Linux-x86_64 /usr/local/bin/docker-compose#可执行权限chmod +x /usr/local/bin/docker-compose#查看版本docker-compose version#显示如下docker-compose version 1.25.5, build 8a1c60f6Docker-py version: 4.1.0CPython version: 3.7.5OpenSSL version: OpenSSL 1.1.01 10 Sep 2019

September 3, 2022 · 1 min · jiezi

关于linux:Java-并发编程解析-如何正确理解Java领域中的锁机制我们一般需要掌握哪些理论知识

天穹之边,浩瀚之挚,眰恦之美; 悟心悟性,虎头蛇尾,惟善惟道! —— 朝槿《朝槿兮年说》 写在结尾 提起Java畛域中的锁,是否有种“道不尽红尘奢恋,诉不完世间恩怨“的”感同身受“之感?细数那些个“玩意儿”,你对Java的激情是否还如初恋般“人生若只如初见”? Java中对于锁的实现真堪称是“百花齐放”,依照编程敌对水平来说,美其名曰是Java提供了品种丰盛的锁,每种锁因其个性的不同,在适当的场景下可能展现出十分高的效率。 然而,从了解的难度上来讲,其类型错中简单,次要起因是Java是依照是否含有某一个性来定义锁的实现,如果不能正确理解其含意,理解其个性的话,往往都会深陷其中,难可自拔。 查问过很多技术材料与相干书籍,对其介绍真堪称是“不置可否”,惟恐咱们搞懂了似的,然而这也是咱们无奈绕过去的一个“坎坎”,除非有其余的抉择。 作为一名Java Developer来说,正确理解和把握这些锁的机制和原理,须要咱们带着一些理论问题,通过个性将锁进行分组归类,能力真正意义上了解和把握。 比方,在Java畛域中,针对于不同场景提供的锁,都用于解决什么问题?其实现形式是什么?各自又有什么特点,对应的利用有哪些? 带着这些问题,明天咱们就一起来盘一盘,Java畛域中的锁机制,盘点一下相干知识点,以及不同的锁的实用场景,帮忙咱们更快捷的了解和把握这项必备技术奥义。 关健术语 本文用到的一些要害词语以及罕用术语,次要如下: 线程调度(Thread Scheduling ):零碎调配处理器使用权的过程,次要调度形式有两种,别离是协同式线程调度(Cooperative Threads-Scheduling)和抢占式线程调度(Preemptive Threads-Scheduling)。线程切换(Thread Switch ):次要是指在并发过程中,多线程之间会对上下文进行切换资源,并穿插执行的一种并发机制。指令重排(Command Reorder ): 指编译器或处理器为了优化性能而采取的一种伎俩,在不存在数据依赖性状况下(如写后读,读后写,写后写),调整代码执行程序。内存屏障(Memory Barrier): 也称内存栅栏,内存栅障,屏障指令等, 是一类同步屏障指令,是CPU或编译器在对内存随机拜访的操作中的一个同步点,使得此点之前的所有读写操作都执行后才能够开始执行此点之后的操作。 根本概述 纵观Java畛域中“形形色色”的锁,咱们能够根据Java内存模型的工作机制,来具体分析一下对应问题的提出和体现,这也不失为关上Java畛域中锁机制的“敲门砖”。 从实质上讲,锁是一种协调多个过程 或者多个线程对某一个资源的拜访的管制机制。 一.计算机运行模型计算机运行模型次要是形容计算机系统体系结构的根本模型,个别次要是指CPU处理器构造。 在计算机体系结构中,中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算外围(Core)和管制外围( Control Unit)。它的性能次要是解释计算机指令以及解决计算机软件中的数据。 一个计算可能运行起来,次要是依附CPU来负责执行咱们的输出指令的,通常状况下,咱们都把这些指令统称为程序。 个别CPU决定着程序的运行速度,能够看出CPU对程序的执行有很重要的作用,然而一个计算机程序的运行快慢并不是齐全由CPU决定,除了CPU还有内存、闪存等。 由此可见,一个CPU次要由管制单元,算术逻辑单元和寄存器单元等3个局部组成。其中: 管制单元( Control Unit): 属于CPU的管制指挥核心,次要负责指挥CPU工作,通过向算术逻辑单元和寄存器单元来发送控制指令达到管制成果。算术逻辑单元(Arithmetic Logic Unit, ALU): 次要负责执行运算,个别是指算术运算和逻辑运算,次要是根据管制单元发送过去的指令进行解决。寄存器单元(Register Unit): 次要用于存储长期数据,保留着期待解决和曾经解决的数据。一般来说,寄存器单元是为了缩小CPU对内存的拜访次数,晋升数据读取性能而提出的,CPU中的寄存器单元次要分为通用寄存器和专用寄存器两个种,其中: 通用寄存器:次要用于长期寄存CPU正在应用的数据。专用寄存器:次要用于长期寄存相似指令寄存器和程序计数器等CPU中专有用处的数据。其中: 指令寄存器:用于存储正在执行的指令程序计数器: 保留期待执行的指令地址简略来说,CPU与主存储器次要是通过总线来进行通信,CPU通过管制单元来操作主存中的数据。而CPU与其余设施的通信都是由管制来实现。 综上所述,咱们便能够失去一个计算机内存模型的大抵雏形,接下来,咱们便来一起盘点解析是计算机内存模型的根本奥义。 二.计算机内存模型计算机内存模型个别是指计算零碎底层与编程语言之间的束缚标准,次要是形容计算机程序与共享存储器拜访的行为特色体现。 依据介绍计算机运行模型来看,计算机内存模型能够帮忙以及领导咱们了解Java内存模型,次要在如下的两个方面: 首先,零碎底层心愿可能对程序进行更多的优化策略,个别次要是针对处理器和编译器,从而进步运行性能。其次,为编程语言带来了更多的可编程性问题,次要是简单的内存模型会有更多的束缚,从而减少了程序设计的编程难度。由此可见,内存模型用于定义处理器间的各层缓存与共享内存的同步机制,以及线程与内存之间交互的规定。 在操作系统层面,内存次要能够分为物理内存与虚拟内存的概念,其中: 物理内存(Physical Memory): 通常指通过装置内存条而取得的长期贮存空间。次要作用是在计算机运行时为操作系统和各种程序提供长期贮存。常见的物理内存规格有256M、512M、1G、2G等。虚拟内存(Virtual Memory):计算机系统内存治理的一种技术。它使得应用程序认为它领有间断可用的内存(一个间断残缺的地址空间),它通常是被分隔成多个物理内存碎片,还有局部临时存储在内部磁盘存储器上,在须要时进行数据交换。个别状况下,当物理内存不足时,能够用虚拟内存代替, 在虚拟内存呈现之前,程序寻址用的都是物理地址。 从常见的存储介质来看,次要有:寄存器(Register),高速缓存(Cache),随机存取存储器(RAM),只读存储器(ROM)等4种,依照读取快慢的程序是:Register>Cache>RAM>ROM。其中: 寄存器(Register): CPU处理器的一部分,次要分为通用寄存器和专用寄存器。高速缓存(Cache):用于缩小 CPU 处理器拜访内存所需均匀工夫的部件,个别是指L1/L2/L3层高级缓存。随机存取存储器(Random Access Memory,RAM):与CPU间接替换数据的外部存储器,它能够随时读写,而且速度很快,通常作为操作系统或其余正在运行中的程序的长期数据存储媒介。只读存储器(Read-Only Memory,ROM):所存储的数据通常都是装入主机之前就写好的,在工作的时候只能读取而不能像随机存储器那样轻易写入。因为CPU的运算速度比主存(物理内存)的存取速度快很多,为了进步处理速度,古代CPU不间接和主存进行通信,而是在CPU和主存之间设计了多层的Cache(高速缓存),越凑近CPU的高速缓存越快,容量也越小。 ...

September 2, 2022 · 2 min · jiezi

关于linux:10Linux基础SHELL入门1

@TOC 10_Linux根底-SHELL入门1一. 输入输出重定向回顾1 输入输出重定向 输出 read -p “请输出” a -p 提醒 a 赋值给a read -s 明码暗藏 --------------------------------------------------------------- 输入 echo \# echo -e “abc\t abc” 转义字符输入 abc abc \# echo “abc\t abc” abc\t abcecho -n 不接换行 echo -e 转义字符输入 二. 2个非凡文件知识点2 2个非凡文件 两个非凡文件 ·/dev/null:过滤规范错误信息 ·/dev/zero:用来创立指定长度文件 /dev/null:黑洞文件,不保留,不输入的信息,就丢到黑洞文件 /dev/zero:用来生成指定大小的文件,生成一堆0 示例:/dev/zero:用来生成指定大小的文件,生成一堆0 /dev/zero个别用作生成指定大小的文件,做测试用 dd是一个备份命令,也能够产生一个指定大小的文件 if 输出文件 input file of 输入文件 output file bs 输入的数据的单位大小 count 输入的数据单位数量 示例:\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\__\_ [root@sanchuang-linux dev]# dd if=/dev/zero of=/tmp/test.dd bs=1M count=5记录了5+0 的读入记录了5+0 的写出5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.00196718 s, 2.7 GB/s[root@sanchuang-linux dev]# du -sh /tmp/test.dd 5.0M /tmp/test.ddif 从哪里导进来 , of 导出去这个文件 , bs 数据单位大小 , count数据单位数量三. here document知识点3 here document ...

September 2, 2022 · 7 min · jiezi

关于linux:09Linux基础SHELL标准输入与标准输出重定向管道

@TOC 09_Linux根底-SHELL-规范输出与规范输入-重定向-管道作业 编辑文本文件/home/text/file1,分4行输出bbb bbb bbb、 ddd ddd ddd、aaa aaa aaa、ccc ccc ccc。 保留不要退出; 在末行模式下关上一个新文件/text/file2; 在file2中输出内容为eee eee eee在这一行内容之后, 将file1的内容读入到file2中,接着在命令模式下依照 abcde的显示程序调整每行的地位,最初保留退出; 同时编辑file1和file2,接着从file1切换到file2,而后 再疾速切换回来,接着将file2的内容读到file1内容的开端,显示文件file1内容的行号,复制3到6行到file1 内容的开端; 利用替换命令将全文的每行第一个ccc都替换为333; 将全文中所有aaa都替换为111,撤销行号,最初不保 存退出;[root@sanchuang-linux chenpeng]# mkdir /home/text2[root@sanchuang-linux chenpeng]# cd /home/text2[root@sanchuang-linux chenpeng]# mkdir /text2[root@sanchuang-linux text2]# vim file1:r /text2/file2aaa aaa aaabbb bbb bbbccc ccc cccddd ddd dddeee eee eee[root@sanchuang-linux text2]# vim file1 /text2/file2:n:N:set nu:%s/ccc/333:%s/aaa/111/g:set nonu:q!练习1: 1.进入/lianxi目录# cd /lianxi 2.复制/etc/passwd文件到当前目录下,而后应用vim编辑当前目录下的passwd# cp /etc/passwd . # vim passwd 3.显示一下行号:set nu 4.复制第5到10行的内容,粘贴到开端,删除最初一行的最初一个单词:5 ; 6yy ; G ; p ; dw 5.删除第9行和第10行:9 ; 2dd 6.将root改为gen:%s/root/gen/g 7.删除局部bash字符串:%s/bash//gc 8.疾速达到第5行,而后再跳到第1行,再跳到最初一行:5 ; :1 ; G 9.剪切第6-7行,粘贴到开端:6 ; 2dd ; G ; p 10.退出并且保留:wq 11.复制/etc/hosts文件到当前目录下,将第1列的ip地址复制,而后粘贴到文件的开端# /etc/hosts . ; # vim hosts ; ctrl+v ; y ; G ;p一. SHELL-规范输出与规范输入学习内容:重定向和文件目录高级操作 ...

September 2, 2022 · 10 min · jiezi

关于linux:Linux卸载openjdk并安装Oracle-jdk

Linux卸载openjdk#查看版本java -version显示如下: 自带的openjdkopenjdk version "1.8.0_275"OpenJDK Runtime Environment (build 1.8.0_275-b01)OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)#查看jdk装置软件rpm -qa|grep java显示如下:java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64javapackages-tools-3.4.1-11.el7.noarchjava-1.8.0-openjdk-headless-1.8.0.275.b01-0.el7_9.x86_64python-javapackages-3.4.1-11.el7.noarchtzdata-java-2020d-2.el7.noarch#卸载openjdk #.noarch结尾的能够不必删除rpm -e --nodeps java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.275.b01-0.el7_9.x86_64装置Oracle jdk官网下载地址: https://www.oracle.com/java/t...下载Linux x86版本: jdk-8u275-linux-x64.tar.gz #解压tar -zxvf jdk-8u275-linux-x64.tar.gz#查看目录pwd/home/software/jdk1.8.0_275#设置环境变量vim /etc/profile#开端增加export JAVA_HOME=/home/software/jdk1.8.0_275export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin:wq!#保留退出#使配置失效source /etc/profile#查看版本java -version显示如下:java version "1.8.0_275"Java(TM) SE Runtime Environment (build 1.8.0_275-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.275-b11, mixed mode)参考链接: https://www.cnblogs.com/yyjf/...

September 2, 2022 · 1 min · jiezi

关于linux:08Linux基础vimtmux字符编码

@TOC 08_Linux根底-vim-tmux-字符编码一. vim文本编辑器-vim(==编辑文本==)Windows:记事本、word、sublime、pycharm 能编辑音乐、视频、图片?答:不能,==只能编辑文本== Linux: vi(==字符界面==),vim(==字符界面==),gedit(==图形化==)==unix 都会装置vi== vim 是vi的==加强版==(在vi根底上增加其余性能) vim编辑器作用vim编辑器==作用==: ==1、编写脚本、程序== ==2、批改配置文件== ==3、做一些文本处理== vim模式vim有三种最罕用最根本的模式:命令模式、编辑模式(插入模式)、末行模式、可视模式,替换模式 vim有三种最罕用最==根本==的模式: ==命令模式== ==编辑模式== ==末行模式== 还有另外两种==不罕用==模式: ==视图模式== ==替换模式== vim命令模式==命令模式:vim a / ESC== ==无奈编辑==,只容许删除、复制、粘贴、撤销等快捷操作,关上文件时==默认==进行此模式==yy 复制== ==p 粘贴== ==dd 删除== ==u 撤销== ==命令模式== 相当于一个==两头==介 每个模式==退出== 都会==回到命令模式==,命令模式能够进入所有模式 vim编辑模式编辑模式 ESC ==i== -- 插入 -- 插入模式,进行==文本编辑==----------------------------------------------------------------------- 操作键 性能 ==i== 光标在==以后==地位进入插入模式 I 光标==跳到行首==并进入插入模式 a 光标==后退一格==并进入插入模式 A 光标==退到行尾==并进入插入模式 ==o== 在光标所在==行下新起一行==并进入插入模式 ==O== 在光标所在==行上新起一行==并进入插入模式 s ==删除==光标==所在字符==并进入插入模式 S ==删除==光标所在==行==并进入插入模式vim末行模式末行模式 ESC ==:== : ...

September 2, 2022 · 6 min · jiezi

关于linux:07Linux基础计划任务备份脚本变量定义和使用

@TOC 07_Linux根底-打算工作-备份脚本-变量定义和应用一. 打算工作次要内容:周期性的打算工作crontab ==/var/spool/cron/ 对立寄存打算工作的目录== ==/var/log/cron 日志文件== ==/etc/cron cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/ crontab的逆风车== /etc/crontab ==crontab -l== ==crontab -e== crontab ==-u cali== -e crontab -u cali -l ==如何晓得打算工作是否执行?== ==用户没有登录,打算工作是否执行?答:会执行== ==黑客也会去利用打算工作定时执行程序,你如何去查看?== ==annacron 将电脑主机因为系统故障关机导致打算工作没有被执行,失常启动后,anacron会去检测没有执行的打算任何,从新执行一次==at 一次性的打算工作 ==at 11:45== ==at -l== cron打算工作 1.什么是打算工作? (闹钟) 打算什么时候去做什么事件一次性的打算工作 at周期性的打算工作 crontablinux零碎里的==执行打算工作的过程==--》==crond== crond会==每分钟==去查看下所有用户的打算工作 \# ps aux|grep crond root 887 0.0 0.1 36300 3508 ? Ss 9月24 0:00 /usr/sbin/==crond== -n root 16948 0.0 0.0 12320 984 pts/0 S+ 10:05 0:00 grep --color=auto ==crond== ...

September 2, 2022 · 7 min · jiezi

关于linux:06Linux基础NGINX和浏览器网页的关系云服务器ssh登陆安装NGINX上传网页

@TOC 06_Linux根底-NGINX和浏览器、网页的关系-云服务器ssh登陆-装置NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器反对下载性能-备份脚本一. NGINX和浏览器、网页的关系nginx是一个web服务器html语言编写网页cd /usr/local/nginx htmlcd html/ (注:寄存网页门路)思考: 1.网页和nginx的关系 nginx将网页发送给浏览器 2.浏览器和nginx的关系 浏览器问nginx要网页 nginx将网页发送给浏览器 3.浏览器和网页的关系 浏览器是能读懂网页的html,js,css代码,渲染出成果 web:网站表单信息放到数据库里去,nginx只能拜访动态页面,Python把信息传到数据库里。Python——》flask web后端——》user表如何判断nginx是否运行?1.看过程 ps aux|grep nginx2.看端口 netstat -anplut项目组: 1.前端 2.后端 3.运维 4.测试 5.dba 6.项目经理cd /usr/local/nginx/html/ 放网页rz 只能传文件,不能传文件夹二. 云服务器ssh登陆-装置NGINX-上传网页本人的虚拟机的linux零碎里呢?(如何上传本人的网页到linux零碎呢) Xshell连过来本人的云服务器,如何上传本人的网页到云服务器呢? 1.xshell --》公网ip(云服务器的公网ip)106.54.83.86 (注:xshell连贯) 用户名root --》明码是有个初始密码 (注:passwd 改明码) 2.本人去编译装置nginx--》倡议应用脚本装置-->启动nignx 3.上传本人的网页到nginx的html目录下 (注:scp或上传Windows【中间环节】) 4.去拜访106.54.83.86(注)脚本:# cat onekey_install_nginx_v2.sh #!/bin/bash#1.下载nginx软件包mkdir -p /nginx2cd /nginx2curl -O http://nginx.org/download/nginx-1.19.2.tar.gz#2.解压,进入文件夹tar xf nginx-1.19.2.tar.gzcd nginx-1.19.2#3.编译前的配置 #新建用户sanchuang9useradd sanchuang9 #装置gcc和pcre-devel软件包,因为nginx须要这些软件,解决软件的依赖关系yum install gcc make pcre-devel zlib-devel -y #配置nginx,指定装置门路和启动nginx的用户名./configure --prefix=/usr/local/nginx2 --user=sanchuang9 #4.编译make#5.编译装置make install#6.敞开防火墙服务和设置开机不要启动service firewalld stopsystemctl disable firewalld #7.批改PATH变量,不便能够间接应用nginxecho "PATH=$PATH:/usr/local/nginx2/sbin" >>/root/.bashrcip add 看的是私网IPscp 近程copy/usr/local/nginx/sbin/nginx 启动nginxps aux|grep nginx 查看nginx过程搞一个本人的网站 1.购买一个云服务器--》阿里云或者腾讯云,华为云,亚马逊收费试用 --》学生版 10元/月 2.购买域名 5元/年 在哪里购买的云服务器,就在哪里买域名,不便备案 3.备案 如果不备案,不能失常的应用域名去拜访cat /etc/centos-release 查看centos版本三. 压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器反对下载性能次要内容:压缩命令-tar(重点) 对文件和文件夹进行压缩 ...

September 2, 2022 · 5 min · jiezi

关于linux:05Linux基础NGINX编译安装^判断是否启动^修改端口^启动停止重启

@TOC 05_Linux根底-NGINX编译装置^判断是否启动^批改端口^启动进行重启^相干门路^中文乱码-Windows、Linux文件传输一. 回顾// service sshd restart 刷新sshd服务 信息会写到/var/log/messages里,tail -f /var/log/messages动静监控 /var/log/messages 记录日志// root用户有权限,能够更改普通用户明码,明码123也能胜利 一个平安的明码有:大小写、数字、特殊符号、足够的长度 Sanchuang123#// 1.显示ps aux查看过程命令输入信息,从第2行到9行,并且显示行号。 ps aux|cat -n|head -9|tail -8 ps aux|cat -n|sed -n ‘2,9p’ 2.应用find命令查找出/find目录下大小大于1M并且名字里蕴含vmlinuz的文件 find /find -size +1M -iname “*vmlinuz*” find /find -size +1M -iname “*vmlinuz*” -exec ls -hl {} \; (注1:ls -hl命令) 查找出daydayup的文件而后删除它 find / -name “daydayup” -exec rm -rf {} \; (注2:字符串用””引号引起来) 3.将最近3小时内/lianxi目录下文件大小大于10K的文件 挪动到/back目录下 find /lianxi -mmin -180 -size +10k -type f -exec mv {} /back \; 4.查找/home目录下用户是root,文件类型是f,这2个条件必须满足,而后再满足大小大于2k或者文件名蕴含cali的文件中的一个条件,查找进去后,复制到/lianxi目录下。 find /home -user root -type f \( -size +2k -o -name "*cali*" \) -exec cp {} /lianxi \;二. NGINX// nginx是一个web服务器软件,是应用c语言开发的软件,俄罗斯人开发 http://nginx.org/ nginx是开源收费的软件(增值的插件免费) 国内出名互联网公司都在应用nginx: 淘宝,腾讯,百度,京东,小米,美团,字节跳动,金山云,37互娱等 http://nginx.org/en/download.html ...

September 2, 2022 · 3 min · jiezi

关于linux:04Linux基础cattac重定向EOFShellmorepslesshead

04_Linux根底-.&..-cat-tac->&>>-EOF-Shell-more-ps-less-head-tail-sed-grep-which-whereis-PATH-bash-/usr-locate-find一. 回顾回顾// 将/home/目录下的所有文件和文件夹复制到/jindafu目录下 cp /home/* . -r#注:复制文件夹 接-r 递归复制(因为提到了文件夹)#注:所有 通配符*// 复制/etc/hosts文件到jindafu,不给予笼罩揭示 用cp的绝对路径 which cp 失去cp的门路 /usr/bin/cp /etc/hosts .#注:不给予揭示 输出cp命令的绝对路径 因为cp命令是别名 所有会有揭示// 将xiena目录改名为xienana mv xiena/ xienana// 将singer目录下的所有文件复制到hejiong目录下 cp haiquan/singer/* hejiong/#注:所有 通配符*#注:复制文件不接-r// 删除所有的xienana目录 find命令 或 tree查看xienana在哪 rm -rf 门路 find /hunantv/ -name “xienana” -exec rm -rf {} \;// 查看目录构造 tree 查看类型 file// echo $PS1 $PS2 怎么看PS1 PS2// hostname 查看主机名// echo $SHELL 查看默认shell (是bash)// cat /ect/shells 查看机器里有哪些shell sh bash exit#/etc 寄存配置文件// d 目录 - 一般文件 l 链接文件 c 字符设施文件(显示) b 块设施文件 (磁盘)// reboot 重启机器// clear 清屏// 别名 alias , unalias , vim /root/.bashrc// env 环境变量 set 所有变量二. . .. 删不掉// rm -rf 不会删除暗藏文件 rm -rf .lixh 删除暗藏文件 .和..删不掉三. cat// ls 查看文件夹里的内容 cat 1.查看文件里的内容 2.能够将多个文件连贯到一起输入 -n, --number 给输入的行进行编号 用途2: cat tangliangfei.txt wangtc.txt (连接功能) 先将tangliangfei.txt内容输入,再将wangtc.txt内容输入tac 与 cat// tac 逆序显示,从最初一行到第一行 不能接-n cat 正序显示,从第一行到最初一行 (有-n选项)四. 重定向// > 输入重定向,会笼罩原来的内容,如果文件不存在会主动新建 重定向:就是将在屏幕上输入的内容,扭转输入的方向,输入到文件里 >> 追加输入重定向,不会笼罩原来的内容,只是在开端追加,如果文件不存在会主动新建 >会笼罩原来的内容,>>不笼罩,开端追加 # cat tangliangfei.txt wangtc.txt >tang_wang.txt # echo 123456789 >>tang_wang.txt (学会cat与>、>>的组合)五. here document// 生成指定内容的文件 --》here document --》次要用在写脚本生成指定的内容 // <<EOF 定义的完结字符串 当输出EOF的时候,完结 end of file # cat >chenpeng.txt <<EOF (注1:前面不肯定非得EOF,但要起的有意义)> chen peng (注2:1个>符号,原来内容会被笼罩)> jiangsu> xinhua> nongda> linux> cali> EOF (注3:点回车)# cat >>cali.txt <<end(注1:2个>符号,内容追加,不笼罩)> sanchuang> nongda> changsha六. Shell 脚本// shell脚本: 其实是一个文件,文件外面有很多的linux命令,这个文件能够执行,被执行的时候,会执行文件里的所有的命令# vim first_shell.sh#!/bin/bash(注1:申明这个脚本应用的解释器是bash)mkdir -p /test(注2:存在不报错,不存在就新建)cd /testmkdir sc{1..100}touch pengyf{1..100}.txtcp /etc/hosts /testcat >sanchuang.txt <<EOF(注3:回车后间接打,文本文件里没有提示符>)sanchuang hunan changsha furongqu hunannongdafeng de yonglinuxEOF(注4:完结)echo "####################################"cat -n sanchuang.txt echo "####################################"脚本写好了↑↑↑# bash first_shell.sh 执行脚本(注:内容如下)#################################### 1 sanchuang hunan changsha furongqu hunannongda 2 feng de yong 3 linux####################################// 脚本在执行的时候,是从第1条命令,自上而下执行,如果两头有命令执行失败,前面的命令还是会执行的(Python两头出错,没有异样捕捉的话,不再执行)七. more// more命令 分页显示 (注1:没有-n选项,cat有-n选项) 用处:全屏形式分页显示文件内容交互操作方法: 按Enter键向下逐行滚动 按空格键向下翻一屏、按b键向上翻一屏 back 按q键退出 (注2:显示完主动退出,与less的差异)# more messages 八. ps aux// # ps aux 查看linux以后运行的过程的信息--》工作管理器(ps -aux也能够) # ps -aux|more # cat messages |more 和 more messages 一样 # cat -n messages |more 显示行号九. less// less命令 用处:与more命令雷同,但扩大性能更多 交互操作方法: 与more命令根本相似,但个别操作会有些出入 【page down】【page up】上翻下翻页(注1:more不反对) 显示完不退出,按q退出 (注2:与more的差异) (注3:也反对空格、b、Enter,但凡more反对的less都反对)# less messages # cat messages |less十. head// head命令(注1:默认取前10行,间断的几行) 用处:查看文件结尾的一部分内容(默认为10行) 格局:head -n number 文件名 格局:head -数字 文件名 cat -n passwd |head 显示前10行,有编号 head passwd 显示前10行,没有编号 head -5 passwd 显示前5行(没编号) head -n 5 passwd 显示前5行(没编号,与上一条命令成果一样)十一. tail// tail命令 用处:查看文件结尾的少部分内容(默认为10行) 格局:tail -n number 文件名 格局:tail -数字 文件名 tail -f 文件名 = tailf # 注:tailf不晓得怎么用 #注:tail -f 动静的监控文件开端的变动tail passwd 取开端10行(无编号)cat -n passwd |tail 取开端10行(有编号)cat -n passwd |tail -5 取开端5行(有编号)cat -n passwd |tail -1 最初1行(有编号)cat -n passwd |tail -n 3 取开端3行(有编号)tail -n 2 passwd 显示最初2行tail -n -2 passwd 与上条成果一样tail -n +2 passwd 显示从第2行到开端 (注1:用途:统计有多少行的时候,不想显示首行,统计磁盘挂载的时候不想看到题目这一行) (注2:df -Th 显示linux里的磁盘分区的应用状况) df -Th|tail -n +2 统计磁盘挂载不显示题目行 df -Th|tail -n +2|wc -l 统计行数# tail -f feng.txt 动静的监控文件开端的变动(注4:常常用来查看日志文件的变动,依据日志的记录去排错)(注2:从新关上窗口连过来,左边批改文件内容,右边动静监控文件开端的变动,一有新的内容就显示)(注3:Ctrl+C 强行终止)tail -f 扩大 特地适宜看某些日志文件 /var 寄存动态变化的文件 variable 变量,变动的,可变的 log 日志:是程序记录它产生的事件# cd /var/log (注1:/var/log 寄存大量日志文件)# tail -f secure 查看secure日志文件 (注2:secure 平安)(注3:别的窗口做操作,日志文件开端动静更新)十二. sed 1.取出passwd的第3行 # cat -n /etc/passwd|head -3|tail -1 (注1:先取前3行,再取最初1行,用|管道) # cat /etc/passwd|head -3|tail -1 (注2:与下面命令比,没有编号3) 2.取出passwd文件的第5行到10行 #注:这种 先看开端 用head 因为行数是从前到后计算的 # cat -n /etc/passwd|head |tail -6 (注3:先head取默认前10行,再取后六行) (注4:从第5行到10行,tail -6,不是-5) # cat -n messages |head -200|tail -101 (100到200行) 3.取出第3行,第5行,第10行 # sed -n '1p;3p;5p' passwd (注5:-n是选项,符合要求的选项显示进去,不是显示行号的意思) 练习3扩大 // sed -n 作用:只是显示符合要求的行(注9:不符合要求的行不显示) 1p;3p;5p 1p 显示第1行 p 是print命令 ; 命令连贯符号 # cat -n passwd |sed -n ‘1p;3p;5p’ (注6:显示1、3、5行,有编号) # sed -n '1p;3p;5p' passwd (注7:没有编号) (注10:用双引号””也能够) # cat -n passwd |sed -n '3p;5p;10p' 显示不间断的3,5,10行的内容 (这样写显示行号) # cat -n passwd |sed -n '3,10p' 显示第3行到第10行的内容,两头是间断的 # cat -n passwd |sed '3,10p'(注8:sed后不接-n的话,会显示所有的行[包含不符合要求的行],只不过3到10行输入两遍,所有肯定要接-n)总结:sed 1.显示间断的 2.显示不间断的十三. grep// grep 文本过滤 (过滤的是文件,不是文件夹目录) grep “root” /etc/passwd 蕴含root的行 grep “^liang” /etc/passwd 以liang结尾的行 grep “bash$” /etc/passwd 以bash结尾的行 Ctrl + c 终止// 文本处理三剑客 sed grep awk十四. whichwhich 查找可执行文件并显示所在的地位 搜寻范畴由PATH环境变量指定 # which mkdir /usr/bin/mkdir # cd /usr/bin/ # ll mkdir -rwxr-xr-x. 1 root root 195192 4月 10 02:53 mkdir rwxr-xr-x 权限 r 读 read --》cat vim w 写 write --》 vim >> x 执行 execute ---》运行 # ll first_shell.sh -rw-r--r--. 1 root root…… (注1:脚本无可执行权限) # bash first_shell.sh (注2:用bash去执行它) # chmod +x first_shell.sh (注3:给它可执行权限) -rwxr-xr-x. root root…… (注4:有可执行权限了) # ./first_shell.sh (注5:间接执行,间接在以后终端执行,以后bash执行) # /lianxi/first_shell.sh (注6:接绝对路径,接文件,间接执行) # chmod -x first_shell.sh (注7:勾销可执行权限) # /lianxi/first_shell.sh -bash: /lianxi/first_shell.sh: 权限不够 (勾销可执行权限后不能间接执行)whereis// whereis 查找命令放到哪里(注1:跟which很像)(注2:没什么用,man手册在哪里不是很重要) # whereis mkdir mkdir: /usr/bin/mkdir /usr/share/man/man1/mkdir.1.gz (注2:压缩文件,是它的文档) 1.查看命令安放门路 2.该命令man手册的门路(man的时候看的内容的寄存门路) //whereis和which的区别 Which不显示man手册的门路,whereis显示man手册的门路 # whereis mkdir mkdir: /usr/bin/mkdir /usr/share/man/man1/mkdir.1.gz # which mkidr /usr/bin/mkdir //whereis和which 都是到PATH变量里去找的 (共同点)十五. PATH//PATH是门路which命令在查找命令的时候,会到PATH变量指定的门路下查找# which fengdeyong/usr/bin/which: no fengdeyong in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)(备注1:红色为门路 备注2:多个文件夹用:冒号隔开)# echo $PATH (注3:$PATH 援用PATH变量)/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin查找的程序是从左往右找,如果在第1个外面找到了,就不会往后面找,以此类推深刻了解 PATH 变量的作用1.编写一个schello.c的文件 ...

September 2, 2022 · 7 min · jiezi

关于linux:一些shell脚本的写法

在shell脚本中按行读取配置文件信息,并近程连贯Oracle数据库,为库中的表创立20170101到20220101日期的分区 #!/bin/bash#读取Lv_ConfigDb配置信息if [ -f $Lv_ConfigDb ] ; then while read line do #连贯数据库信息 Lv_str=`sed -n '2p' ${Lv_ConfigDb} | awk -F"=" '{print $2}'` #获取第二行数据,以=号为分隔符,取第二个字符串 #sqlplus目录 Lv_sqlplus=`sed -n '4p' ${Lv_ConfigDb}| awk -F"=" '{print $2}'` #同理获取第四行数据 #sq1文件目录 Lv_table=`sed -n '10p' ${Lv_ConfigDb}| awk -F"=" '{print $2}'` done < $Lv_ConfigDbelse echo "${Lv_ConfigDb}不存在”fipartition=${Lv_table}partition_table2.txt1=$(cat "$Lv_table"/partition_table2.txt| wc -l) #获取文件中共有多少条数据echo ${1}for((i=1;i<=$1;i++))dotable=$(sed -n "$i"p $partition)${Iv_sq1p1us} ${Iv_str} <<EOFdeclare cursor acur is select to_char(to_date('20170101','yyyymmdd')+rowmum-1,'yyymmdd') from dual connect by rowmum<=to_date('20210617','yyyymmdd')-to_date ('20170101', 'yyymmdd')+1; --获取两段日期之间所有日期的游标 v_day varchar2(8 char):=";begin open acur; loop fetch acur into v_day; dbms_output.put_line(v_day); exit when acur%notfound; execute immediate 'alter table $table add partition P_'||v_day||' values('||v_day||')'; end 1oop; close acur;end;/exit;EOFecho $tableecho "表分区己创立"echo "--------------------------------------------"done

September 2, 2022 · 1 min · jiezi

关于linux:03Linux基础文件类型主辅提示符第1提示符Linux命令内外部命令

03_Linux根底-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令-快捷键-改为英文编码-3个工夫-stat-{1..100}-du-cd-cp-file-mv-echo-id-shell-ln-env-set-which-rpm-/usr-/与/root-hostname-vim-cat-pwd-alias-unalias-ls-ASCII-wc-chmod一. stat 与 ll// stat 与 ll stat 只能看本人。 ll能看文件夹上面的货色。// 选项组合(不分先后顺序) 如 ls -Al (2个性能一起显示)// du -sh 统计文件和文件夹大小// mkdir -p 如果父目录不存在,就新建 如果文件夹存在,就不报错 // 写脚本常常用到 -v 给揭示(显示曾经创立胜利)(没什么用)stat 与 ll 与 ls -l -d// stat 与 ll 与 ls -l -d stat 只能看自身的文件信息(文件夹自身) ll 能看文件夹上面的货色(文件夹外面的) ls -l -d 只看它本人的详细信息 不看外面的(文件夹自身) 二. 汇合 {xx,xxx}1条命令建多个文件夹#注:关键点{}// mkdir hunantv/{weishi,jingshi,dushi} 一条命令建多个文件夹 在 China_voice门路下建 hunantv文件夹下的 文件夹(hunantv在 China_voice下) {weishi,jingshi,dushi} 示意一个汇合,有独特的上一级目录 只建一个文件夹的时候,不能用 { } 括起来,{ } 会成为文件名。// 一条命令实现(日常用的不多) 外面有好几级 父目录不存在时候 接 -p 选项 ...

September 2, 2022 · 7 min · jiezi

关于linux:yaml文件格式说明及编写教程

倡议应用3A服务器来搭建好玩的试验,比拟不便 1、ymal介绍k8s是容器编排引擎,应用yaml来编排部署利用特点:1、缩进示意层级关系 2、不反对制表符“tab”缩进,须要应用空格缩进 3、通常结尾缩进两个空格 4、关键词字符后缩进一个空格,比方冒号与逗号前面须要缩进一个字符 5、“---”示意YAML格局,一个文件的开始 6、“#”示意正文以下yaml为例 等同于 kubectl create deployment web --image=lizhenliang/java-demo --replicas=3 -n default2、编写示例yaml在应用中咱们可能存在API版本不统一导致报错,能够通过命令查看版本kubectl api-resources |grep Deployment1、其中,标签个别定义两个,由我的项目与利用组成,#键:值 可任意定义。例如project:ec app: portal2、matchLabels必须与上面的labels保持一致,否则apply会报错例如上面这个创立deployment的yamlkind: Deploymentmetadata: name: web666 namespace: team-aspec: replicas: 3 selector: matchLabels: project: ec app: portaltemplate: metadata: labels: project: ec app: portalspec: containers: - name: web image: lizhenliang/java-demo:latest其中,标签能够为两个,他是以键值对的形式存储,但matchLabels的值必须与labels相等,不相等会创立报错,而service是以标签来管制pod replicas为正本数,image为拉取镜像名2、创立serviceapiVersion: v1kind: Servicemetadata: name: web666 namespace: team-aspec: ports: port: 80protocol: TCPtargetPort: 8080 selector:project: ecapp: portal type: NodePort标签与命名空间要确保与deployment统一执行两个yaml文件 kubectl apply -f deployment.yaml ...

September 2, 2022 · 1 min · jiezi

关于linux:linux-安装minio并设置开机自启动

我应用的环境是应用3A服务器搭建的 1,筹备装置目录和文件零碎:CentOs 进入装置目录cd /home/miniominio下载地址也能够在线下载二进制文件wget https://dl.min.io/server/mini...2,装置2.1赋权chmod +x minio2.2设置用户名、明码 批改Minio的初始账号密码(也能够不批改)初始账号:minioadmin初始密码:minioadmin设置控制台账号(起码3位)export MINIO_ACCESS_KEY=admin 设置明码(起码8位)export MINIO_SECRET_KEY=123456782.3创立存储目录及日志文件 创立存储目录mkdir -p /home/minio/data 进入 cd /home/minio创立日志文件 touch minio.log3后盾启动3.1进入执行文件目录cd /opt/minio 后盾启动nohup /home/minio/minio server --address :9800 --console-address :9889 /home/minio/data >/home/minio/minio.log 2>&1 &备注: nohup:后盾启动 ./minio server:启动命令 --address :9800:指定API端口 --console-address :9000:指定控制台端口 /home/minio/data:指定存储目录 /home/minio/minio.log 2>&1 :控制台日志重定向到/home/minio/minio.log文件中 &:后盾运行注:--console-address :9000启动Minio (须要进入minio寄存目录下)#50000 固定端口号 否则每次启动Minio会随机生成一个不一样的端口(控制台会有打印信息)4.将Minio设置成零碎服务: 以上步骤,如果Ctrl+C退出后,这个Minio服务同时也进行了如果须要它在后盾运行就须要把它增加到后盾服务里边切换文件目录cd /usr/local/minio 创立目录mkdir conf 创立配置文件mkdir minio.conf minio.conf文件内容数据寄存目录MINIO_VOLUMES="/usr/local/data" 端口号设置MINIO_OPTS="--console-address :9000" 用户名MINIO_ROOT_USER="minio" 明码MINIO_ROOT_PASSWORD="12345678" 在/etc/systemd/system目录下新建一个minio.service切换文件目录cd /etc/systemd/system 创立配置文件mkdir minio.service minio.service文件内容[Unit]Description=MinIODocumentation=https://docs.min.ioWants=network-online.targetAfter=network-online.target minio文件具体位置AssertFileIsExecutable=/usr/local/minio/minio[Service] User and group 用户 组User=rootGroup=root ...

September 2, 2022 · 1 min · jiezi

关于linux:Github加速的10种方式

我应用3A服务器搭建的环境,也举荐给你们官网链接:www.cnaaa.com 一、 dev-sidecar- 强烈推荐开发者边车,命名取自service-mesh的service-sidecar,意为为开发者打辅助的边车工具通过本地代理的形式将https申请代理到一些国内的减速通道上1 下载安装包release下载Gitee ReleaseGithub ReleaseWindows: 请抉择DevSidecar-x.x.x.exeMac: 请抉择DevSidecar-x.x.x.dmgUbuntu: 请抉择DevSidecar-x.x.x.deb其余linux: 请抉择DevSidecar-x.x.x.AppImage (未做测试,不保障能用)linux装置阐明请参考 linux装置文档留神:因为没有买利用证书,所以利用在下载安装时会有“未知发行者”等平安提醒,抉择保留即可。2 装置后关上留神:mac版装置须要在“零碎偏好设置->安全性与隐衷->通用”中解锁并容许利用装置 3 装置根证书第一次关上会提醒装置证书,依据提醒操作即可更多无关根证书的阐明,请参考 为什么要装置根证书?根证书是本地随机生成的,所以不必放心根证书的平安问题(本利用不收集任何用户信息)你也能够在减速服务设置中自定义根证书(PEM格局的证书与私钥)火狐浏览器须要手动装置证书4 开始减速吧去试试关上github第一次拜访会去国外的dns服务器上获取ip,会比较慢一点,前面就快了 二、GitHub 镜像拜访这里提供两个最罕用的镜像地址:https://github.com.cnpmjs.orghttps://hub.fastgit.org也就是说下面的镜像就是一个克隆版的 GitHub,你能够拜访下面的镜像网站,网站的内容跟 GitHub 是残缺同步的镜像,而后在这个网站外面进行下载克隆等操作三、GitHub 文件减速利用 Cloudflare Workers 对 github release 、archive 以及我的项目文件进行减速,部署无需服务器且自带CDN.https://gh.api.99988866.xyzhttps://g.ioiox.com以上网站为演示站点,如无奈关上能够查看开源我的项目:gh-proxy-GitHub(https://hunsh.net/archives/23/) 文件减速自行部署。四、 Github 减速下载只须要复制以后 GitHub 地址粘贴到输入框中就能够代理减速下载!地址:http://toolwa.com/github/ 五、 减速你的 Githubhttps://github.zhlh6.cn输出 Github 仓库地址,应用生成的地址进行 git ssh 等操作六、 谷歌浏览器 GitHub 减速插件(举荐) 七、 GitHub raw 减速GitHub raw 域名并非 github.com 而是 raw.githubusercontent.com,上方的 GitHub 减速如果不能减速这个域名,那么能够应用 Static CDN 提供的反代服务。将 raw.githubusercontent.com 替换为 raw.staticdn.net 即可减速。八、 GitHub + Jsdelivrjsdelivr 惟一美中不足的就是它不能获取 exe 文件以及 Release 处附加的 exe 和 dmg 文件。也就是说如果 exe 文件是附加在 Release 处然而没有在 code 外面的话是无奈获取的。所以只能当作动态文件 cdn 用处,而不能作为 Release 减速下载的用处。九、 通过 Gitee 直达 fork 仓库下载网上有很多相干的教程,这里简要的阐明下操作。拜访 gitee 网站:https://gitee.com/ 并登录,在顶部抉择“从 GitHub/GitLab 导入仓库” 如下: ...

September 2, 2022 · 1 min · jiezi

关于linux:Mac下根目录和家目录的区别

很多人对这两个目录的概念不是特地分明,明天来解说一下 家目录(home)关上一个终端 首先映入眼帘的就是这个~符号,这个符号代表着家目录的意思。(不要问为什么非得是~符号,这是约定俗成的,也没有特地的含意) 此时咱们敲下pwd(print work directory)打印当前工作目录。 会发现咱们明明没有干什么操作,就莫名其妙进入到了Users/ffffang这个文件下来了。(ffffang也就是你的主机名) 能够在终端下输出hostname查看 此时咱们持续输出cd ..(change directory)一个点代表着当前目录,两个点就代表着下级目录。加上 cd也就是回到下级目录的意思。咱们先别着急干别的,先看看这个文件夹是什么 输出open .,别忘了之前咱们说过的,一个点代表当前目录,那么open就是关上当前目录的意思。 能够看到咱们目前在这个目录。 咱们持续输出 cd ..,持续返回上一层目录, 会发现咱们当初所处的地位是一个/,接着输出open .来查看一下这个文件到底有什么。 会发现这里其实是咱们的系统目录,外面装着一些mac零碎的代码,咱们持续试一试cd ..持续退 ok,聪慧的你会发现,如同到了止境,曾经无奈再会退了。其实这里就是根目录,顾名思义,如同一个树根一样,你曾经到了零碎的文件的止境。根目录其实家目录仅仅只是根目录下的一个文件夹而已。家目录名字其实是用户目录的一个昵称罢了。(我是这样了解的),有了这两个目录符号~和/,你能够在任何一个目录下疾速回到起始地位,或者在当前目录下登程,疾速定位其它目录下的文件。 demo假如我当初在这个文件下,我当初想疾速回到位于我家目录下的某个文件,那么我不必一层一层的cd .. 间接在你以后的文件夹下,按cd ~/而后按tab补全,即可疾速进入你想去的那个文件夹下。 个别咱们用到根目录的状况很少,大部分状况都是在家目录下工作。 总结其实家目录就是根目录下的一个子文件夹而已。

September 1, 2022 · 1 min · jiezi

关于linux:Linux查看硬盘fdisk-lsblk

摘要本文将探讨如何在 Linux 中查看硬盘和硬盘分区。引言首先,咱们须要弄清楚 Linux 中硬盘和硬盘分区的命名规定。硬盘命名规定因为 Linux 中所有的设施都是以文件的模式呈现,因而硬盘也不例外,也是用一个文件来示意。硬盘设施文件名格局个别为 /dev/xxy。前两个字母 xx 表明硬盘类型:sd:示意这个硬盘是采纳 SCSI SATA 或 USB 接口的硬盘hd:示意这是一个采纳 IDE 接口的硬盘(目前根本不必了)y 则表明硬盘是用此类接口的第几个硬盘。y 个别是 a-z 之间的英文字符。例如,/dev/shd 示意这是第四个应用 IDE 接口的硬盘。分区命名规定接下来,咱们介绍 Linux 中硬盘分区的命令规定。分区同样以一个文件的模式呈现,硬盘上分区文件的命令规定个别为 /dev/xxyn,比硬盘文件多了一个 n,n 示意分区,主分区或拓展分区用数字 1-4 示意,逻辑分区从5 开始。如 /dev/hda3 示意在第一个 IDE 硬盘上的第三个主分区或拓展分区。用法fdiskLinux 中应用 fdisk -l 硬盘名|分区名 命令能够显示或操作磁盘分区表。例如,查看零碎中的第一个硬盘: root@centos:~# fdisk -l /dev/sdaDisk /dev/sda:1.84 TiB,2000398934016 字节,3907029168 个扇区Disk model: ST2000NX0253单元:扇区 / 1 * 512 = 512 字节扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节磁盘标签类型:gpt磁盘标识符:27E8F38B-1909-4730-B931-D399FF19A594设施 终点 开端 扇区 大小 类型/dev/sda1 2048 4095 2048 1M BIOS 启动/dev/sda2 4096 976895 972800 475M Microsoft 根本数据/dev/sda3 976896 3726032895 3725056000 1.8T Linux LVM输入信息分为两局部。第一局部显示硬盘的基本参数,包含容量、磁头数和扇区数等。第二局部显示硬盘的分区状况。如果硬盘没有分区,这部分是空白;如果曾经分区,每行将代表一个分区,各个字段的定义如下:Device:分区名Boot:是否容许规范 DOS PC 主疏导记录疏导该分区(该标记对 Linux 的 GRUB 疏导装载程序没有意义)Start:分区起始柱面End:分区完结柱面Blocks:大小为 1k 的块的数量Id:分区的预期用处(并不是实在用处,82 示意交互分区,83 示意数据分区)值得一提的是,目前逐步成为支流的固态硬盘中,尽管没有盘片、磁头、扇区这些物理整机,但固态硬盘的接口标准、定义性能及应用办法上与一般机械硬盘完全相同。因而,逻辑上固态硬盘也有柱面、扇区,磁头等参数。上一篇文章介绍了应用 fdisk 命令查看指定硬盘设施或分区的信息。本文将介绍一个新的命令 lsblk,该命令以十分敌对的形式列出零碎中所有硬盘设施及分区的状况,为咱们分区或创立文件系统做好筹备。lsblk除 fdisk 外,咱们更举荐应用 lsblk 命令来查看零碎中所有的硬盘状况,lsblk 会显示零碎中除了内存虚构磁盘外的所有可用块设施的信息: ...

September 1, 2022 · 2 min · jiezi

关于linux:InfluxDB安装以及使用

一、简介InfluxDB是一种时序数据库,用来寄存监控数据。InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需内部依赖。其次要特色性能1)基于工夫序列,反对与工夫无关的相干函数(如最大,最小,求和等)2)可度量性:你能够实时对大量数据进行计算3)基于事件:它反对任意的事件数据InfluxDB的次要特色1)无构造(无模式):能够是任意数量的列2)可拓展的3)反对min, max, sum, count, mean, median 等一系列函数,不便统计4)原生的HTTP反对,内置HTTP API5)弱小的类SQL语法6)自带治理界面,方便使用二、下载安装 我应用的是3A服务器搭建的windows server,挺不错的 1、下载influxdb1.8.4,windows安装包如下:【influxDB】windows装置influxdb1.8.4+管理工具下载链接_旧梦如风F的博客-CSDN博客ps:官网下载2.0版本短少配置文件,1.8启动就能用双击influxd.exe启动即可2、解压到安装盘(不必装置),目录为:批改配置文件InfluxDB 的数据存储次要有三个目录。默认状况下是 meta, wal 以及 data 三个目录,服务器运行后会主动生成。meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件。wal 目录寄存预写日志文件,以 .wal 结尾。data 目录寄存理论存储的数据文件,以 .tsm 结尾。如果不应用influxdb.conf配置的话,那么间接双击关上influxd.exe就能够应用influx,此时下面三个文件夹的目录则寄存在Windows零碎的C盘User目录下的.Influx目录下,默认端口为8086,以下为批改文件夹地址,以及端口号办法。1、批改以下局部门路 2、如果须要更改端口号,则批改以下局部配置 批改配置后启动形式InfluxDB 应用时须要首先关上Influxd.exe,间接关上会应用默认配置,须要应用已配置的配置文件的话,须要指定conf文件进行启动,启动命令:influxd --config influxdb.conf 如果呈现下列状况,启动失败,还须要批改influxdb.con     在influxdb.conf中批改如下一行,批改地址并且关上正文,批改后保留 再次运行 influxd --config influxdb.conf 命令呈现如下信息启动胜利     ps:启动运行influxd命令的话,应用默认配置,关上默认8086端口号的服务 4、启动influxd后,窗口不要敞开。再启动一个cmd窗口,执行如下命令:influxps:InfluxDB自带一个客户端程序influx,可用来增删改查等操作数据库 ps:扩大influxdb应用的端口如下:8083:InfluxDB 的 Web 治理界面端口,web治理端 http://ip:8083 用户名和明码都是admin,8086:HTTP API 监听端口8088:集群端口(目前还不是很分明, 配置在全局的bind-address,默认不配置就是开启的) 全局配置reporting-disabled = false # 该选项用于上报influxdb的应用信息给InfluxData公司,默认值为falsebind-address = ":8088" # 备份复原时应用,默认值为80881、meta相干配置[meta]dir = "/var/lib/influxdb/meta" # meta数据寄存目录retention-autocreate = true # 用于管制默认存储策略,数据库创立时,会主动生成autogen的存储策略,默认值:truelogging-enabled = true # 是否开启meta日志,默认值:true2、data相干配置[data]dir = "/var/lib/influxdb/data" # 最终数据(TSM文件)存储目录wal-dir = "/var/lib/influxdb/wal" # 预写日志存储目录query-log-enabled = true # 是否开启tsm引擎查问日志,默认值: truecache-max-memory-size = 1048576000 # 用于限定shard最大值,大于该值时会回绝写入,默认值:1000MB,单位:bytecache-snapshot-memory-size = 26214400 # 用于设置快照大小,大于该值时数据会刷新到tsm文件,默认值:25MB,单位:bytecache-snapshot-write-cold-duration = "10m" # tsm引擎 snapshot写盘提早,默认值:10Minutecompact-full-write-cold-duration = "4h" # tsm文件在压缩前能够存储的最大工夫,默认值:4Hourmax-series-per-database = 1000000 # 限度数据库的级数,该值为0时勾销限度,默认值:1000000max-values-per-tag = 100000 # 一个tag最大的value数,0勾销限度,默认值:1000003、coordinator查问治理的配置选项[coordinator]write-timeout = "10s" # 写操作超时工夫,默认值: 10smax-concurrent-queries = 0 # 最大并发查问数,0无限度,默认值: 0query-timeout = "0s # 查问操作超时工夫,0无限度,默认值:0slog-queries-after = "0s" # 慢查问超时工夫,0无限度,默认值:0smax-select-point = 0 # SELECT语句能够解决的最大点数(points),0无限度,默认值:0max-select-series = 0 # SELECT语句能够解决的最大级数(series),0无限度,默认值:0max-select-buckets = 0 # SELECT语句能够解决的最大"GROUP BY time()"的工夫周期,0无限度,默认值:04、retention旧数据的保留策略[retention]enabled = true # 是否启用该模块,默认值 : truecheck-interval = "30m" # 查看工夫距离,默认值 :"30m"5、shard-precreation分区预创立[shard-precreation]enabled = true # 是否启用该模块,默认值 : truecheck-interval = "10m" # 查看工夫距离,默认值 :"10m"advance-period = "30m" # 预创立分区的最大提前工夫,默认值 :"30m"6、monitor 管制InfluxDB自有的监控零碎。 默认状况下,InfluxDB把这些数据写入_internal 数据库,如果这个库不存在则主动创立。 _internal 库默认的retention策略是7天,如果你想应用一个本人的retention策略,须要本人创立。[monitor]store-enabled = true # 是否启用该模块,默认值 :truestore-database = "_internal" # 默认数据库:"_internal"store-interval = "10s # 统计距离,默认值:"10s"7、admin web治理页面[admin]enabled = true # 是否启用该模块,默认值 : falsebind-address = ":8083" # 绑定地址,默认值 :":8083"https-enabled = false # 是否开启https ,默认值 :falsehttps-certificate = "/etc/ssl/influxdb.pem" # https证书门路,默认值:"/etc/ssl/influxdb.pem"8、http API[http]enabled = true # 是否启用该模块,默认值 :truebind-address = ":8086" # 绑定地址,默认值:":8086"auth-enabled = false # 是否开启认证,默认值:falserealm = "InfluxDB" # 配置JWT realm,默认值: "InfluxDB"log-enabled = true # 是否开启日志,默认值:truewrite-tracing = false # 是否开启写操作日志,如果置成true,每一次写操作都会打日志,默认值:falsepprof-enabled = true # 是否开启pprof,默认值:truehttps-enabled = false # 是否开启https,默认值:falsehttps-certificate = "/etc/ssl/influxdb.pem" # 设置https证书门路,默认值:"/etc/ssl/influxdb.pem"https-private-key = "" # 设置https私钥,无默认值shared-secret = "" # 用于JWT签名的共享密钥,无默认值max-row-limit = 0 # 配置查问返回最大行数,0无限度,默认值:0max-connection-limit = 0 # 配置最大连接数,0无限度,默认值:0unix-socket-enabled = false # 是否应用unix-socket,默认值:falsebind-socket = "/var/run/influxdb.sock" # unix-socket门路,默认值:"/var/run/influxdb.sock"9、subscriber 管制Kapacitor承受数据的配置[subscriber]enabled = true # 是否启用该模块,默认值 :truehttp-timeout = "30s" # http超时工夫,默认值:"30s"insecure-skip-verify = false # 是否容许不平安的证书ca-certs = "" # 设置CA证书write-concurrency = 40 # 设置并发数目,默认值:40write-buffer-size = 1000 # 设置buffer大小,默认值:100010、graphite 相干配置[[graphite]]enabled = false # 是否启用该模块,默认值 :falsedatabase = "graphite" # 数据库名称,默认值:"graphite"retention-policy = "" # 存储策略,无默认值bind-address = ":2003" # 绑定地址,默认值:":2003"protocol = "tcp" # 协定,默认值:"tcp"consistency-level = "one" # 一致性级别,默认值:"onebatch-size = 5000 # 批量size,默认值:5000batch-pending = 10 # 配置在内存中期待的batch数,默认值:10batch-timeout = "1s" # 超时工夫,默认值:"1s"udp-read-buffer = 0 # udp读取buffer的大小,0示意应用操作系统提供的值,如果超过操作系统的默认配置则会出错。 该配置的默认值:0separator = "." # 多个measurement间的连接符,默认值: "."11、collectd[[collectd]]enabled = false # 是否启用该模块,默认值 :falsebind-address = ":25826" # 绑定地址,默认值: ":25826"database = "collectd" # 数据库名称,默认值:"collectd"retention-policy = "" # 存储策略,无默认值typesdb = "/usr/local/share/collectd" # 门路,默认值:"/usr/share/collectd/types.db"auth-file = "/etc/collectd/auth_file"batch-size = 5000batch-pending = 10batch-timeout = "10s"read-buffer = 0 # udp读取buffer的大小,0示意应用操作系统提供的值,如果超过操作系统的默认配置则会出错。默认值:012、opentsdb[[opentsdb]]enabled = false # 是否启用该模块,默认值:falsebind-address = ":4242" # 绑定地址,默认值:":4242"database = "opentsdb" # 默认数据库:"opentsdb"retention-policy = "" # 存储策略,无默认值consistency-level = "one" # 一致性级别,默认值:"one"tls-enabled = false # 是否开启tls,默认值:falsecertificate= "/etc/ssl/influxdb.pem" # 证书门路,默认值:"/etc/ssl/influxdb.pem"log-point-errors = true # 出错时是否记录日志,默认值:truebatch-size = 1000batch-pending = 5batch-timeout = "1s"13、udp[[udp]]enabled = false # 是否启用该模块,默认值:falsebind-address = ":8089" # 绑定地址,默认值:":8089"database = "udp" # 数据库名称,默认值:"udp"retention-policy = "" # 存储策略,无默认值batch-size = 5000batch-pending = 10batch-timeout = "1s"read-buffer = 0 # udp读取buffer的大小,0示意应用操作系统提供的值,如果超过操作系统的默认配置则会出错。 该配置的默认值:0 14、continuous_queries[continuous_queries]enabled = true # enabled 是否开启CQs,默认值:truelog-enabled = true # 是否开启日志,默认值:truerun-interval = "1s" # 工夫距离,默认值:"1s"五、InfluxDB数据库常用命令1、显示数据库:show databases 2、创立数据库:create database myfirstdb ...

August 31, 2022 · 3 min · jiezi

关于linux:ubuntu2204桌面版开启root用户登陆

ubuntu22.04桌面版开启root用户登陆ubuntu22.04桌面版默认不反对root用户登陆,测试环境每次都要敲个sudo,切实没有必要以上环境都是部署在3A服务器上的,感兴趣的敌人能够本人部署一套尝试下1.将上面两个文件/etc/pam.d/gdm-password和/etc/pam.d/gdm-autologin中的一行代码 auth required pam_succeed_if.so user != root quiet_success2.批改/root/.profile文件 - mesg n 2> /dev/null || true+ tty -s && mesg n || true另外,桌面版也不反对root用户远程登陆,上面是开启办法 1.装置openssl-server apt install openssh-server2.批改/etc/ssh/sshd_config文件 - #PermitRootLogin prohibit-password+ PermitRootLogin yes3.重启ssh服务 service ssh restart测试: ssh root@localhost

August 31, 2022 · 1 min · jiezi

关于linux:从零搭建-100askimx6ullpro-开发板运行环境2kernel-buildroot

一、对于 kernel1、下载tiansong@tiansong:~$ pwd/home/tiansong# 下载tiansong@tiansong:~/100ask_imx6ull_pro$ git clone http://source.codeaurora.cn/external/imx/linux-imx# 切换分支tiansong@tiansong:~/100ask_imx6ull_pro$ cd linux-imx/## 查看所有分支tiansong@tiansong:~/100ask_imx6ull_pro/linux-imx$ git branch -a## 切换到 imx 最新分支tiansong@tiansong:~/100ask_imx6ull_pro/linux-imx$ git checkout remotes/origin/imx_5.4.70_2.3.0## 确认是否切换胜利tiansong@tiansong:~/100ask_imx6ull_pro/linux-imx$ git log -12、 开发板文件适配默认的配置文件复制公版提供的默认配置文件tiansong@tiansong:~/100ask_imx6ull_pro/linux-imx/arch/arm/configs$ pwd/home/tiansong/100ask_imx6ull_pro/linux-imx/arch/arm/configstiansong@tiansong:~/100ask_imx6ull_pro/linux-imx/arch/arm/configs$ cp imx_v7_defconfig 100ask_imx6ull_pro_emmc_defconfig复制公版提供设施树tiansong@tiansong:~/100ask_imx6ull_pro/linux-imx/arch/arm/boot/dts$ pwd/home/tiansong/100ask_imx6ull_pro/linux-imx/arch/arm/boot/dtstiansong@tiansong:~/100ask_imx6ull_pro/linux-imx/arch/arm/boot/dts$ cp imx6ull-14x14-evk-emmc.dts 100ask_imx6ull_pro_emmc.dtstiansong@tiansong:~/100ask_imx6ull_pro/linux-imx/arch/arm/boot/dts$ cp imx6ull-14x14-evk.dts 100ask_imx6ull_pro.dtstiansong@tiansong:~/100ask_imx6ull_pro/linux-imx/arch/arm/boot/dts$ cp imx6ul-14x14-evk.dtsi 100ask_imx6ull_pro.dtsi批改 100ask_imx6ull_pro_emmc.dts#include "imx6ull-14x14-evk.dts"#include "100ask_imx6ull_pro.dts批改 100ask_imx6ull_pro.dts#include "imx6ull.dtsi"#include "imx6ul-14x14-evk.dtsi"model = "Freescale i.MX6 ULL 14x14 EVK Board";#include "100ask_imx6ull_pro.dtsi"model = "100ASK IMX6ULL PRO EMMC Board";批改 100ask_imx6ull_pro.dtsi# 1.批改 backlight_display 节点backlight_display: backlight-display { compatible = "pwm-backlight"; pwms = <&pwm1 0 1000>; // 默认设施树中频率过高,背光管制芯片 滋滋滋 ~ brightness-levels = <0 4 8 16 32 64 128 255>; default-brightness-level = <6>; status = "okay";};# 2.批改网口节点&fec1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet1>; phy-mode = "rmii"; phy-handle = <&ethphy0>; status = "disabled"; // 批改};&fec2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet2>; phy-mode = "rmii"; phy-handle = <&ethphy1>; phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>; // 新增 phy-reset-duration = <50>; // 新增 status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy0: ethernet-phy@2 { reg = <0>; smsc,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET_REF>; clock-names = "rmii-ref"; }; ethphy1: ethernet-phy@1 { reg = <1>; smsc,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET2_REF>; clock-names = "rmii-ref"; }; };};pinctrl_enet2: enet2grp { fsl,pins = < MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0 MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0 MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0 MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0 MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0 MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031 /* used for phy reset */ MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x1b0b0 // 减少复位引脚 >;};# 3.批改 lcd 节点&lcdif { assigned-clocks = <&clks IMX6UL_CLK_LCDIF_PRE_SEL>; assigned-clock-parents = <&clks IMX6UL_CLK_PLL5_VIDEO_DIV>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lcdif_dat &pinctrl_lcdif_ctrl>; display = <&display0>; status = "okay"; reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; display0: display@0 { bits-per-pixel = <24>; bus-width = <24>; display-timings { native-mode = <&timing0>; timing0: timing0 { clock-frequency = <50000000>; hactive = <1024>; vactive = <600>; hfront-porch = <160>; hback-porch = <140>; hsync-len = <20>; vback-porch = <20>; vfront-porch = <12>; vsync-len = <3>; hsync-active = <0>; vsync-active = <0>; de-active = <1>; pixelclk-active = <0>; }; }; };}; pinctrl_lcdif_ctrl: lcdifctrlgrp { fsl,pins = < MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79 MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79 MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79 MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79 /* used for lcd reset */ MX6UL_PAD_LCD_RESET__GPIO3_IO04 0x1b0b0 // 减少复位引脚 >; };批改 /home/tiansong/100ask_imx6ull_pro/linux-imx/arch/arm/boot/dts/Makefiledtb-$(CONFIG_SOC_IMX6UL) += \...imx6ull-14x14-evk.dtb \100ask_imx6ull_pro.dtb \ # 新增imx6ull-14x14-evk-emmc.dtb \100ask_imx6ull_pro_emmc.dtb \ # 新增...3、配置及编译装置环境依赖sudo apt-get install libssl-dev生成 .config 文件tiansong@tiansong:~/100ask_imx6ull_pro/linux-imx$ pwd/home/tiansong/100ask_imx6ull_pro/linux-imxtiansong@tiansong:~/100ask_imx6ull_pro/linux-imx$ make distcleantiansong@tiansong:~/100ask_imx6ull_pro/linux-imx$ make 100ask_imx6ull_pro_emmc_defconfig图形化配置使能 SMSC PHY 反对, 目录项:Device Drivers --> Network device support --> PHY Device support and infrasttructure ...

August 30, 2022 · 3 min · jiezi

关于linux:Java-并发编程解析-如何正确理解Java对象创建过程我们主要需要注意些什么问题

天穹之边,浩瀚之挚,眰恦之美; 悟心悟性,虎头蛇尾,惟善惟道! —— 朝槿《朝槿兮年说》 写在结尾 从接触 Java 开发到当初,大家对 Java 最直观的印象是什么呢?是它宣传的 “Write once, run anywhere”,还是目前看曾经有些过于形式主义的语法呢?有没有静下心来认真想过,对于 Java 到底理解到什么水平? 自从业以来,对于Java的那些纷纷扰扰的问题,咱们或多或少都有些道不明,说不清的情绪,始终心惊肉跳,甚至困惑着咱们的,可曾入梦。 是不是有着,不管查阅了多少遍的材料,以及翻阅了多少技术大咖的书籍,也未能解开心里那由来已久的纳闷,就像一个个未解之谜个别萦绕心扉,惶惶不可终日? 我始终都在问本人,一段Java代码的中类,从编写到编译,通过一系列的步骤加载到JVM,再到运行的过程,它到底是如何运作和流转的,其机制是什么?咱们看到的后果到底是如何出现进去的,这其中产生了什么? 尽管,从学习Java之初,咱们都会理解和记忆,以及在起初大家在提及的时候,大多数都是一句“咱们应该都不生疏”,甚至“我置信大家都了然于心”之类话“走马观花”般轻描淡写。 然而,如果真的要问一问的话,能具体说道一二的,想必都会以“夏虫不可语冰“的喜剧演出了吧!作为一名Java Develioer来说,正确理解和把握这些原理和机制,早曾经不是什么”不能说的机密“。 带着这些问题,今日咱们便来扒一扒一个Java对象中的那些枝末细节,一个Java对象是如何被创立和执行的,咱们又该如何了解和意识这些原理和机制,以及在日常开发工作中,咱们须要留神些什么? 关健术语 本文用到的一些要害词语以及罕用术语,次要如下: 指针压缩(CompressedOops) : 全称为Compressed Ordinary Object Pointer,在HotSpot VM 64位(bit)虚拟机为了晋升内存使用率而提出的指针压缩技术。次要是指将Java程序中的所有对象援用指针压缩一半,次要论述的是一个指针大小占用一个字宽单位大小,即就是HotSpot VM 64位(bit)虚拟机的一个字宽单位大小是64bit,在理论工作时,本来的指针会压缩成32bit,Oracle JDK从6 update 23开始在64位零碎上开始反对开启压缩指针,在JDK1.7版本之后默认开启。指针碰撞(Bump the Pointer), 指的Java对象为调配堆内存的一种内存调配形式,其调配过程是把内存分为已分配内存和空间内存别离处于不同的一侧,次要通过一个指针指向分界点辨别。个别JVM为一个新对象分配内存的时候,把指针往往闲暇内存区域挪动指向雷同对象大小的间隔即可。个别实用于Serial和ParNew等不会产生内存碎片,且堆内存残缺的收集器。闲暇列表(Clear Free List): 指的Java对象为调配堆内存的一种内存调配形式,其调配过程是把内存分为已分配内存和空间内存互相交织,JVM通过保护一张内存列表记录的可用空间内存块,创立新对象须要调配堆内存时,从列表中寻找一个足够大的内存块调配给对象实例,同步更新列表记录状况,当GC收集器产生GC时,把已回收的内存更新到内存列表。个别实用于CMS等会产生内存碎片,且堆内存不残缺的收集器。逃逸剖析(Escape Analysis): 在编程语言的编译优化原理中,剖析指针动静范畴的办法称之为逃逸剖析。次要是判断变量的作用域是否存在于其余内存栈或者线程中,当一个对象的指针被多个办法或线程援用时,咱们称这个指针产生了逃逸。其用来剖析这种逃逸景象的办法,就称之为逃逸剖析。跟动态代码剖析技术中的指针剖析和形状剖析相似。标量替换(Scalar Replacement):次要是指应用标量替换聚合量(Java中的对象实例),把一个对象进行分解成一个个的标量进行逃逸剖析,不可选的对象能力进行标量替换。标量次要是指不可分割的量,一般来说次要是根本数据类型和援用类型。栈上调配(Allocation on Stack): 个别Java对象创立进去会在栈上进行内存调配,不是所有的对象都能够实现栈上调配。要想实现栈上调配,须要进行逃逸剖析和标量替换。根本概述 Java 自身是一种面向对象的语言,最显著的个性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),可能非常容易地取得跨平台能力;另外就是垃圾收集(GC, Garbage Collection),Java 通过垃圾收集器(Garbage Collector)回收分配内存,大部分状况下,程序员不须要本人操心内存的调配和回收。 咱们日常会接触到 JRE(Java Runtime Environment)或者 JDK(Java Development Kit)。 JRE,也就是 Java 运行环境,蕴含了 JVM 和 Java 类库,以及一些模块等。而 JDK 能够看作是 JRE 的一个超集,提供了更多工具,比方编译器、各种诊断工具等。 ...

August 30, 2022 · 2 min · jiezi

关于linux:rsyslog详解

这边应用的是3A服务器一、日志介绍日志概念 日志是零碎用来记录零碎及利用程序运行时的一些相干信息的文本文件 日志作用 日志是为了保留相干程序的运行状态、错误信息等,为了对系统进行剖析、保留历史记录以及在呈现谬误时发现、剖析谬误应用 linux系统日志类型 内核信息 服务信息 应用程序信息 二、rsyslog1、rsyslog介绍rsyslog是linux零碎中用来实现日志性能的服务。默认曾经装置,并且主动启用。 作用:次要用来采集日志,不生产日志 其个性包含: 反对输入日志到各种数据库,如 MySQL,PostgreSQL,MongoDB ElasticSearch,等等;通过 RELP + TCP 实现数据的牢靠传输(基于此联合丰盛的过滤条件能够建设一种 牢靠的数据传输通道供其余利用来应用);精密的输入格局管制以及对音讯的弱小 过滤能力;高精度工夫戳;队列操作(内存,磁盘以及混合模式等); 反对数据的加密和压缩传输等。2、rsyslog概念facility 设施,用来定义日志音讯的起源,不便对日志进行分类 日志类型 日志内容kern 内核信息user 用户程序产生的相干信息mail 邮件系统信息daemon 守护过程产生的信息auth pam认证零碎信息syslog 日志零碎本身信息authpriv ssh、ftp等登录信息cron 零碎执行定时工作产生的信息lpr 打印相干信息mark 服务外部的信息,工夫标识uucp Unix-to-Unix Copy 两个unix之间的相干通信local0-local7 保留,本地应用priority 日志级别,定义不同音讯的级别 日志等级 阐明(级别从低到高,记录信息越来越少)0 debug 蕴含具体的开发情报的信息,通常只在调试一个程序时应用。1 info 通用性信息,个别用来提供有用信息,2 notice 失常信息,然而较为重要,可能须要解决3 warning 正告信息4 error/err 错误信息,某个性能或者模块不能失常工作的信息5 crit 重大级别,零碎或整个软件不能失常工作的信息,例如硬盘谬误6 alert 须要立即批改的信息,如零碎数据库被毁坏,ISP连贯失落。7 emerg 紧急情况,内核奔溃等重要信息none 什么也不记录日志设施的配置 符号 阐明. 比前面还要高的信息等级都会记录下来.= 只有前面这个音讯等级会被记录下来.! 除了前面的音讯等级,其余的都会被记录下来(留神后面须要先有其余过滤规定,否则什么不记录)3、rsyslog配置rsyslog.conf组成modules,模块,配置加载的模块,如:ModLoad imudp.so配置加载UDP传输模块 global directives,全局配置,配置ryslog守护过程的全局属性,比方主信息队列大小(MainMessageQueueSize) rules,规定(选择器+动作),每个规定行由两局部组成,selector局部和action局部,这两局部由一个或多个空格或tab分隔,selector局部指定源和日志等级,action局部指定对应的操作 模板(templates) 输入(outputs) ...

August 30, 2022 · 2 min · jiezi

关于linux:Linux-chkconfig命令

chkconfig命令用于查看,设置零碎的各种服务 语法: Chkconfig [--add] [--del] [--list] [零碎服务] 或 chkconfig [--level <等级代号>] [零碎服务] [on/off/reset]援用参数: --add 减少所指定的零碎服务援用--del 删除所指定的零碎服务援用--list 查看服务状况援用--level <等级代号> 指定读取零碎服务要在哪一个执行等级中开启&敞开 等级代表(查看服务时前面呈现的数字): 0:关机援用1:单用户模式援用2:无网络连接的多用户命令行模式援用3:有网络连接的多用户命令行模式援用4:保留,未应用援用5:带图形界面的多用户模式援用6:重新启动命令实例: Chkconfig --list #查看chkconfig所有的服务援用Chkconfig --list sshd #指定查看显示sshd服务的状况援用Chkconfig sshd on #开启sshd服务援用Chkconfig sshd off #敞开sshd服务援用Chkconfig --add name #减少一项新的服务援用Chkconfig --del name #删除服务援用Chkconfig [--level levels] name #设置某一服务在指定的运行级是被启动还是进行或者重置的援用

August 29, 2022 · 1 min · jiezi

关于linux:Linux安装与卸载Jenkins

Jenkins是一个开源软件我的项目,是基于Java开发的一种继续集成工具,用于监控继续反复的工作,旨在提供一个凋谢易用的软件平台,使软件我的项目能够进行继续集成 环境:应用3A服务器搭建的centos71、卸载Jenkins rpm卸载 rpm -e jenkins查看是否卸载胜利rpm -ql jenkins彻底删除残留文件find / -iname jenkins | xargs -n 1000 rm -rf基本上靠以上三步能将Jenkins残留文件卸载洁净。 2、装置Jenkins下载地址:https://mirrors.jenkins.io/re... 我应用的是这个版本 首先先创立jenkins目录mkdir -p jenkinscd /usr/local/jenkins解压文件rpm -ivh jenkins-2.365-1.1.noarch.rpm间接启动服务systemctl start jenkins就算报错也没事, 批改jekins配置文件 将/usr/bin/java  改成  /usr/local/jdk/jdk1.8.0_241/bin/java vi /etc/init.d/jenkins 我的jdk装置目录是/usr/local/java,也就是JAVA_HOME的地位   这步很要害,肯定要找到你装置jdk的门路 应用which java   配置jenkis的端口为8888,默认8080,与tomcat抵触(举荐) 找到批改端口号   JENKINS_PORT="8080",批改成JENKINS_PORT="8888"vi /etc/sysconfig/jenkins  OK,你能够试着启动一下你的Jenkins 重启systemctl start jenkins 如果报错也没关系,如下图他会提醒你输出如下命令就启动了systemctl daemon-reload 而后拜访你的服务地址就行了如:http://116.62.45.44:8888 

August 29, 2022 · 1 min · jiezi

关于linux:进行中-从零搭建-100askimx6ullpro-开发板运行环境

文章假设读者肯定水平理解 linux 基础知识文章来源于《嵌入式linux齐全开发手册》- IMX6ull 开发板从零移植篇区别在于:本文形容从各个网站(官网)下载最新 ubuntu、穿插编译器、uboot、kernel、buildroot 从零开始构建,更靠近理论工程环境(可同时穿插参阅两份文章)一、对于 ubuntu下载安装最新桌面 LTS 版本 ubuntu失常步骤装置(参考网络其它文章)几个要害的设置 磁盘大小:60GB 以上网络连接:应用桥接网络(复制网络连接状态)[路由器连贯开发板和电脑]二、对于穿插工具链1、下载ARM开发者核心下载穿插编译工具链 host 为 linux `x86_64 linux`imx6ul 为 arm_A7 架构 `AArch32`imx6ul 反对硬件浮点 `hard fllat`需反对 linux 操作系统 `none-linux`2、配置解压缩tiansong@tiansong:~/100ask_imx6ull_pro$ lsarm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xztiansong@tiansong:~/100ask_imx6ull_pro$ tar -xvf arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xztiansong@tiansong:~/100ask_imx6ull_pro$ lsarm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz设置环境变量tiansong@tiansong:~$ vim ~/.bashrc# 在文件开端追加export ARCH=armexport CROSS_COMPILE=arm-none-linux-gnueabihf-export PATH=$PATH:/home/tiansong/100ask_imx6ull_pro/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin# 使环境变量在以后终端失效tiansong@tiansong:~/100ask_imx6ull_pro$ source ~/.bashrc验证是否配置胜利tiansong@tiansong:~/100ask_imx6ull_pro$ arm-none-linux-gnueabihf-gcc -vUsing built-in specs.COLLECT_GCC=arm-none-linux-gnueabihf-gccCOLLECT_LTO_WRAPPER=/home/tiansong/100ask_imx6ull_pro/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin/../libexec/gcc/arm-none-linux-gnueabihf/11.3.1/lto-wrapperTarget: arm-none-linux-gnueabihfConfigured with: /data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/configure --target=arm-none-linux-gnueabihf --prefix= --with-sysroot=/arm-none-linux-gnueabihf/libc --with-build-sysroot=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/install//arm-none-linux-gnueabihf/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/host-tools --with-mpfr=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/host-tools --with-mpc=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/host-tools --with-isl=/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-linux-gnueabihf/host-tools --with-arch=armv7-a --with-fpu=neon --with-float=hard --with-mode=thumb --with-arch=armv7-a --with-pkgversion='Arm GNU Toolchain 11.3.Rel1'Thread model: posixSupported LTO compression algorithms: zlibgcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)三、对于 uboot1、下载# 下载tiansong@tiansong:~/100ask_imx6ull_pro$ tiansong@tiansong:~/100ask_imx6ull_pro$ git clone https://source.codeaurora.cn/external/imx/uboot-imxtiansong@tiansong:~/100ask_imx6ull_pro$ lsarm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf uboot-imx# 查看仓库所有分支tiansong@tiansong:~/100ask_imx6ull_pro$ cd uboot-imx/tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ git branch -a...remotes/origin/imx_v2020.04_5.4.70_2.3.0...# 切换到 imx 最新分支tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ git checkout remotes/origin/imx_v2020.04_5.4.70_2.3.0Updating files: 100% (11834/11834), done.Note: switching to 'remotes/origin/imx_v2020.04_5.4.70_2.3.0'.You are in 'detached HEAD' state. You can look around, make experimentalchanges and commit them, and you can discard any commits you make in thisstate without impacting any branches by switching back to a branch.If you want to create a new branch to retain commits you create, you maydo so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name>Or undo this operation with: git switch -Turn off this advice by setting config variable advice.detachedHead to falseHEAD is now at 62a81128c0 MLK-25878: imx8: scu: Increase sendmsg timeout for SCFW MU# 确认是否却换胜利tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ git log -1commit 62a81128c07c3efc123039f796ffc43b4eacbf04 (HEAD, origin/imx_v2020.04_5.4.70_2.3.0)Author: Nitin Garg <nitin.garg@nxp.com>Date: Fri Apr 29 10:54:20 2022 -0500 MLK-25878: imx8: scu: Increase sendmsg timeout for SCFW MU Similar to receivemsg, sendmsg function should also use 1 sec timeout for MU communication with SCFW. Signed-off-by: Nitin Garg <nitin.garg@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com>2、开发板文件适配前置阐明:有多处关联,移植尽量一口气实现默认的配置文件复制公板提供的默认配置文件tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ cd configs/tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/configs$ ls *mx6ull_14x14_evk* -l-rw-rw-r-- 1 tiansong tiansong 1988 8月 26 10:36 mx6ull_14x14_evk_defconfig # imx6ullevk公板默认的配置文件,默认只反对 SD 卡启动-rw-rw-r-- 1 tiansong tiansong 1963 8月 26 10:36 mx6ull_14x14_evk_emmc_defconfig # imx6ull 反对 emmc 启动形式启动的配置文件-rw-rw-r-- 1 tiansong tiansong 2095 8月 26 10:36 mx6ull_14x14_evk_nand_defconfig # imx6ull 反对 nand 启动形式启动的配置文件-rw-rw-r-- 1 tiansong tiansong 2007 8月 26 10:36 mx6ull_14x14_evk_optee_defconfig # imx6ull 反对 optee 零碎的配置文件-rw-rw-r-- 1 tiansong tiansong 1958 8月 26 10:36 mx6ull_14x14_evk_plugin_defconfig # imx6ull 反对扩大性能的配置文件,次要是烧写性能-rw-rw-r-- 1 tiansong tiansong 2057 8月 26 10:36 mx6ull_14x14_evk_qspi1_defconfig # imx6ull 反对扩大性能的配置文件,次要是烧写性能tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/configs$ cp mx6ull_14x14_evk_emmc_defconfig 100ask_imx6ull_pro_emmc_defconfigtiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/configs$ ls 100ask_imx6ull_pro_emmc_defconfig -l-rw-rw-r-- 1 tiansong tiansong 1982 8月 26 10:54 100ask_imx6ull_pro_emmc_defconfig批改复制的配置文件 (三处)CONFIG_TARGET_MX6ULL_14X14_EVK=yCONFIG_TARGET_100ASK_IMX6ULL_PRO_EMMC=yCONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk/imximage.cfg"CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/100ask/100ask_imx6ull_pro_emmc/imximage.cfg"CONFIG_DEFAULT_DEVICE_TREE="imx6ull-14x14-evk-emmc"CONFIG_DEFAULT_DEVICE_TREE="100ask_imx6ull_pro_emmc"板件级反对头文件复制公板提供的.h文件tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ cd include/configs/tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ cd include/configs/tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/include/configs$ cp mx6ullevk.h 100ask_imx6ull_pro_emmc.h批改复制的.h文件 (两处)#ifndef __MX6ULLEVK_CONFIG_H#define __MX6ULLEVK_CONFIG_H#ifndef __100ASK_IMX6ULL_PRO_EMMC_CONFIG_H#define __100ASK_IMX6ULL_PRO_EMMC_CONFIG_H文件夹复制公板提供的文件夹tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ cd board/# 创立二级目录,100ask族和100ask_imx6ull_pro_emmc族tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/board$ mkdir 100asktiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/board$ mkdir 100ask/100ask_imx6ull_pro_emmc# 复制 common 文件夹tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/board$ cp freescale/common 100ask/# 复制 freescale/mx6ullevk/* 下所有公板文件tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/board$ cp freescale/mx6ullevk/* 100ask/100ask_imx6ull_pro_emmc/# 查看文件数,确认是否操作胜利tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/board$ cd 100ask/tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/board/100ask$ tree.├── 100ask_imx6ull_pro_emmc # 重视批改 !!│   ├── 100ask_imx6ull_pro_emmc.c│   ├── built-in.o│   ├── imximage.cfg│   ├── imximage_lpddr2.cfg│   ├── Kconfig│   ├── MAINTAINERS│   ├── Makefile│   ├── plugin.S│   └── README└── common ├── arm_sleep.c ├── built-in.o ├── cadmus.c ├── cadmus.h ├── cds_pci_ft.c ├── cds_via.c ... ...tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/board/100ask$ cd 100ask_imx6ull_pro_emmc/复制 mx6ullevk.ctiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/board/freescale/mx6ullevk$ cp mx6ullevk.c 100ask_imx6ull_pro_emmc.c 批改 Makefileobj-y := 100ask_imx6ull_pro_emmc.o批改 Kconfigif TARGET_100ASK_IMX6ULL_PRO_EMMC # 留神与 100ask_imx6ull_pro_emmc_defconfig 中 CONFIG_TARGET_100ASK_IMX6ULL_PRO_EMMC=y 对应 config SYS_BOARD default "100ask_imx6ull_pro_emmc" # 100ask_imx6ull_pro_emmc 留神与后续多处对应config SYS_VENDOR default "100ask"config SYS_CONFIG_NAME default "100ask_imx6ull_pro_emmc"config SYS_TEXT_BASE default 0x87800000endif批改 MAINTAINERS 【留神门路填写正确】MX6ULLEVK BOARDM: Peng Fan <peng.fan@nxp.com>S: MaintainedF: board/100ask/100ask_imx6ull_pro_emmc/F: include/configs/100ask_imx6ull_pro.hF: configs/100ask_imx6ull_pro_emmc_defconfig批改 imximage.cfgPLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000PLUGIN board/100ask/100ask_imx6ull_pro_emmc/plugin.bin 0x00907000批改 imximage_lpddr2.cfgPLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000PLUGIN board/100ask/100ask_imx6ull_pro_emmc/plugin.bin 0x00907000减少图像化反对批改 /home/tiansong/100ask_imx6ull_pro/uboot-imx/arch/arm/mach-imx/mx6/Kconfig【留神门路】config TARGET_MX6ULL_14X14_EVK bool "Support mx6ull_14x14_evk" select BOARD_LATE_INIT select DM select DM_THERMAL select MX6ULL imply CMD_DM# 在 TARGET_MX6ULL_14X14_EVK 之下增加,留神与 100ask_imx6ull_pro_emmc_defconfig 中 CONFIG_TARGET_100ASK_IMX6ULL_PRO_EMMC=y 对应 config TARGET_100ASK_IMX6ULL_PRO_EMMC bool "Support 100ask_imx6ull_pro_emmc" select BOARD_LATE_INIT select DM select DM_THERMAL select MX6ULL imply CMD_DM# 文件开端增加,留神门路source "board/100ask/100ask_imx6ull_pro_emmc/Kconfig"默认的设施树复制公板设施树文件 imx6ull-14x14-evk-emmc.dtstiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/arch/arm/dts$ pwd/home/tiansong/100ask_imx6ull_pro/uboot-imx/arch/arm/dtstiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/arch/arm/dts$ ls imx6ull-14x14-evk* -l-rw-rw-r-- 1 tiansong tiansong 407 8月 26 10:36 imx6ull-14x14-evk.dts-rw-rw-r-- 1 tiansong tiansong 570 8月 26 10:36 imx6ull-14x14-evk-emmc.dts-rw-rw-r-- 1 tiansong tiansong 1184 8月 26 10:36 imx6ull-14x14-evk-gpmi-weim.dtstiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx/arch/arm/dts$ cp imx6ull-14x14-evk-emmc.dts 100ask_imx6ull_pro_emmc.dts编辑设施树文件 100ask_imx6ull_pro_emmc.dts# 察看 100ask_imx6ull_pro_emmc.dts 文件内容,依赖于 imx6ull-14x14-evk.dts#include "imx6ull-14x14-evk.dts"# 察看 imx6ull-14x14-evk.dts, 依赖于多个文件 #include "imx6ull.dtsi"#include "imx6ul-14x14-evk.dtsi"#include "imx6ul-14x14-evk-u-boot.dtsi"交融 100ask_imx6ull_pro_emmc.dts 、 imx6ull-14x14-evk.dts 和 imx6ul-14x14-evk.dtsi 到 100ask_imx6ull_pro_emmc.dts批改 lcd 和 phy 设施树参数以下为批改好的设施树:/* * Copyright 2019 NXP * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. *//dts-v1/;#include "imx6ull.dtsi"/ { model = "i.MX6 ULL 14x14 EVK Board"; compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull"; aliases { spi5 = &{/spi4}; }; chosen { stdout-path = &uart1; }; memory@80000000 { device_type = "memory"; reg = <0x80000000 0x20000000>; }; reg_sd1_vmmc: regulator-sd1-vmmc { compatible = "regulator-fixed"; regulator-name = "VSD_3V3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>; off-on-delay-us = <20000>; enable-active-high; }; reg_can_3v3: regulator-can-3v3 { compatible = "regulator-fixed"; regulator-name = "can-3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpios = <&gpio_spi 3 GPIO_ACTIVE_LOW>; }; spi4 { compatible = "spi-gpio"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_spi4>; status = "okay"; pinctrl-assert-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; gpio-sck = <&gpio5 11 0>; gpio-mosi = <&gpio5 10 0>; cs-gpios = <&gpio5 7 0>; num-chipselects = <1>; #address-cells = <1>; #size-cells = <0>; gpio_spi: gpio@0 { compatible = "fairchild,74hc595"; gpio-controller; #gpio-cells = <2>; reg = <0>; registers-number = <1>; registers-default = /bits/ 8 <0x57>; spi-max-frequency = <100000>; }; }; // 新增背光管制节点 backlight { compatible = "pwm-backlight"; pwms = <&pwm1 0 1000>; brightness-levels = <0 1 2 3 4 5 6 8 10>; default-brightness-level = <8>; status = "okay"; };};&clks { assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; assigned-clock-rates = <786432000>;};&i2c2 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; status = "okay"; codec: wm8960@1a { #sound-dai-cells = <0>; compatible = "wlf,wm8960"; reg = <0x1a>; wlf,shared-lrclk; };};&fec1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet1>; phy-mode = "rmii"; phy-handle = <&ethphy0>; status = "disabled"; // 网口 1 未应用,状态禁用};&fec2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet2>; phy-mode = "rmii"; phy-handle = <&ethphy1>; phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>; // 减少复位 phy-reset-duration = <25>; // 复位持续时间 status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy0: ethernet-phy@2 { reg = <0>; smsc,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET_REF>; clock-names = "rmii-ref"; }; ethphy1: ethernet-phy@1 { reg = <1>; // phy 地址 smsc,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET2_REF>; clock-names = "rmii-ref"; }; };};&can1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flexcan1>; xceiver-supply = <&reg_can_3v3>; status = "okay";};&can2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_flexcan2>; xceiver-supply = <&reg_can_3v3>; status = "okay";};&i2c1 { clock-frequency = <100000>; pinctrl-names = "default", "gpio"; pinctrl-0 = <&pinctrl_i2c1>; pinctrl-1 = <&pinctrl_i2c1_gpio>; scl-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>; sda-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; status = "okay"; mag3110@e { compatible = "fsl,mag3110"; reg = <0x0e>; };};&lcdif { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lcdif_dat &pinctrl_lcdif_ctrl>; display = <&display0>; status = "okay"; reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; // 减少复位 display0: display@0 { bits-per-pixel = <24>; bus-width = <24>; display-timings { // 时许调整 native-mode = <&timing0>; timing0: timing0 { clock-frequency = <50000000>; hactive = <1024>; vactive = <600>; hfront-porch = <160>; hback-porch = <140>; hsync-len = <20>; vback-porch = <20>; vfront-porch = <12>; vsync-len = <3>; hsync-active = <0>; vsync-active = <0>; de-active = <1>; pixelclk-active = <0>; }; }; };};&pwm1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm1>; status = "okay";};&qspi { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_qspi>; status = "okay"; flash0: n25q256a@0 { #address-cells = <1>; #size-cells = <1>; compatible = "micron,n25q256a", "jedec,spi-nor"; spi-max-frequency = <29000000>; reg = <0>; };};&sai2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai2>; assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>, <&clks IMX6UL_CLK_SAI2>; assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; assigned-clock-rates = <0>, <12288000>; fsl,sai-mclk-direction-output; status = "okay";};&snvs_poweroff { status = "okay";};&tsc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_tsc>; xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>; measure-delay-time = <0xffff>; pre-charge-time = <0xfff>; status = "okay";};&uart1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1>; status = "okay";};&uart2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart2>; uart-has-rtscts; status = "okay";};&usbotg1 { dr_mode = "otg"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb_otg1>; status = "okay";};&usbotg2 { dr_mode = "host"; disable-over-current; status = "okay";};&usbphy1 { fsl,tx-d-cal = <106>;};&usbphy2 { fsl,tx-d-cal = <106>;};&usdhc1 { pinctrl-names = "default", "state_100mhz", "state_200mhz"; pinctrl-0 = <&pinctrl_usdhc1>; pinctrl-1 = <&pinctrl_usdhc1_100mhz>; pinctrl-2 = <&pinctrl_usdhc1_200mhz>; cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>; keep-power-in-suspend; wakeup-source; vmmc-supply = <&reg_sd1_vmmc>; status = "okay";};&usdhc2 { pinctrl-names = "default", "state_100mhz", "state_200mhz"; pinctrl-0 = <&pinctrl_usdhc2_8bit>; pinctrl-1 = <&pinctrl_usdhc2_8bit_100mhz>; pinctrl-2 = <&pinctrl_usdhc2_8bit_200mhz>; bus-width = <8>; non-removable; status = "okay";};&wdog1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_wdog>; fsl,ext-reset-output;};&iomuxc { pinctrl-names = "default"; pinctrl_csi1: csi1grp { fsl,pins = < MX6UL_PAD_CSI_MCLK__CSI_MCLK 0x1b088 MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK 0x1b088 MX6UL_PAD_CSI_VSYNC__CSI_VSYNC 0x1b088 MX6UL_PAD_CSI_HSYNC__CSI_HSYNC 0x1b088 MX6UL_PAD_CSI_DATA00__CSI_DATA02 0x1b088 MX6UL_PAD_CSI_DATA01__CSI_DATA03 0x1b088 MX6UL_PAD_CSI_DATA02__CSI_DATA04 0x1b088 MX6UL_PAD_CSI_DATA03__CSI_DATA05 0x1b088 MX6UL_PAD_CSI_DATA04__CSI_DATA06 0x1b088 MX6UL_PAD_CSI_DATA05__CSI_DATA07 0x1b088 MX6UL_PAD_CSI_DATA06__CSI_DATA08 0x1b088 MX6UL_PAD_CSI_DATA07__CSI_DATA09 0x1b088 >; }; pinctrl_enet1: enet1grp { fsl,pins = < MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0 MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0 MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0 MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 >; }; pinctrl_enet2: enet2grp { fsl,pins = < MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0 MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0 MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0 MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0 MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0 MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031 /* used for pht reset */ MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x79 >; }; pinctrl_flexcan1: flexcan1grp{ fsl,pins = < MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020 MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020 >; }; pinctrl_flexcan2: flexcan2grp{ fsl,pins = < MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020 MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020 >; }; pinctrl_i2c1: i2c1grp { fsl,pins = < MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0 MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0 >; }; pinctrl_i2c1_gpio: i2c1grp_gpio { fsl,pins = < MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x1b8b0 MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x1b8b0 >; }; pinctrl_i2c2: i2c2grp { fsl,pins = < MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0 MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0 >; }; pinctrl_lcdif_dat: lcdifdatgrp { fsl,pins = < MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79 MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79 MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79 MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79 MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79 MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79 MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79 MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79 MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79 MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79 MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79 MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79 MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79 MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79 MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79 MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79 MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79 MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79 MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x79 MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x79 MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x79 MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x79 MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x79 MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x79 >; }; pinctrl_lcdif_ctrl: lcdifctrlgrp { fsl,pins = < MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79 MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79 MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79 MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79 /* used for lcd reset */ MX6UL_PAD_LCD_RESET__GPIO3_IO04 0x1b0b0 >; }; pinctrl_qspi: qspigrp { fsl,pins = < MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK 0x70a1 MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x70a1 MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01 0x70a1 MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02 0x70a1 MX6UL_PAD_NAND_CLE__QSPI_A_DATA03 0x70a1 MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B 0x70a1 >; }; pinctrl_sai2: sai2grp { fsl,pins = < MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088 MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088 MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088 MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088 MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x17059 >; }; pinctrl_pwm1: pwm1grp { fsl,pins = < MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0 >; }; pinctrl_sim2: sim2grp { fsl,pins = < MX6UL_PAD_CSI_DATA03__SIM2_PORT1_PD 0xb808 MX6UL_PAD_CSI_DATA04__SIM2_PORT1_CLK 0x31 MX6UL_PAD_CSI_DATA05__SIM2_PORT1_RST_B 0xb808 MX6UL_PAD_CSI_DATA06__SIM2_PORT1_SVEN 0xb808 MX6UL_PAD_CSI_DATA07__SIM2_PORT1_TRXD 0xb809 MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x3008 >; }; pinctrl_spi4: spi4grp { fsl,pins = < MX6UL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1 MX6UL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1 MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1 MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000 >; }; pinctrl_tsc: tscgrp { fsl,pins = < MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0 MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0 MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0 MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0 >; }; pinctrl_uart1: uart1grp { fsl,pins = < MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1 >; }; pinctrl_uart2: uart2grp { fsl,pins = < MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1 MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1 >; }; pinctrl_usb_otg1: usbotg1grp { fsl,pins = < MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x17059 >; }; pinctrl_usdhc1: usdhc1grp { fsl,pins = < MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10071 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */ MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */ MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */ >; }; pinctrl_usdhc1_100mhz: usdhc1grp100mhz { fsl,pins = < MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 >; }; pinctrl_usdhc1_200mhz: usdhc1grp200mhz { fsl,pins = < MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 >; }; pinctrl_usdhc2: usdhc2grp { fsl,pins = < MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x17059 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 >; }; pinctrl_usdhc2_8bit: usdhc2grp_8bit { fsl,pins = < MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059 MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059 MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059 MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059 >; }; pinctrl_usdhc2_8bit_100mhz: usdhc2grp_8bit_100mhz { fsl,pins = < MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100b9 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170b9 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170b9 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170b9 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170b9 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170b9 MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170b9 MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170b9 MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170b9 MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170b9 >; }; pinctrl_usdhc2_8bit_200mhz: usdhc2grp_8bit_200mhz { fsl,pins = < MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100f9 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170f9 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170f9 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170f9 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170f9 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170f9 MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170f9 MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170f9 MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170f9 MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170f9 >; }; pinctrl_wdog: wdoggrp { fsl,pins = < MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY 0x30b0 >; };};留神 backlight 为新减少节点,用于 lcd 背光管制留神 fec1 节点,批改为禁用留神 fec2 节点,减少复位反对,SMSC 反对留神lcdif 节点,批改复位反对,批改屏幕控制器时许留神 usdhc2 节点,来自于 imx6ull-14x14-evk-emmc.dts留神 pinctrl_enet2 节点,MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x79留神 pinctrl_lcdif_ctrl节点,MX6UL_PAD_LCD_RESET__GPIO3_IO04 0x1b0b0批改 /home/tiansong/100ask_imx6ull_pro/uboot-imx/drivers/net/phy/phy.cint genphy_config_aneg(struct phy_device *phydev){ int result; phy_reset(phydev); // 新增 if (phydev->autoneg != AUTONEG_ENABLE) return genphy_setup_forced(phydev); result = genphy_config_advert(phydev); // ...}3、配置及编译装置环境依赖sudo apt install makesudo apt install bison flex生成 .config 文件tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ pwd/home/tiansong/100ask_imx6ull_pro/uboot-imxtiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ make 100ask_imx6ull_pro_emmc_defconfig图像化配置tiansong@tiansong:~/100ask_imx6ull_pro/uboot-imx$ make menuconfig确认板级反对, 目录项 ARM architecture ...

August 26, 2022 · 10 min · jiezi

关于linux:02Linux基础文件系统层次结构提示符进程命令格式隐藏文件通配符绝对相对路径1100ls

02_Linux根底-ls-mkdir-cd-pwd-man-useradd-su-rm-tree-tab-passwd-w-ssh-touch-date-stat-cp-mv-du-文件系统层次结构-提示符-过程-命令格局-暗藏文件-通配符-相对/相对路径-{1..100}一. 根本命令lsls --- 查看文件夹内容 ==> list ls -l// ls -l 显示文件的详细信息 // ls -l 显示文件的详细信息 (大略能看到文件工夫 ,不具体) ll 是 ls -l 的别名 其余参数-l 显示文件的详细信息 // use a long listing format ( 应用长格局显示 )-a 显示所有的文件和文件夹包含.和..-A 显示所有的文件和y文件夹,然而不包含.和..// ls -a 显示所有的文件和文件夹 包含 . 和 ..mkdirmkdir --- 新建文件夹 ==> make directory(目录) --- mkdir能够一次性建多个文件夹 空格隔开 --- 默认状况下 新建文件夹放在你所在的文件夹里 --- windows下 --- dir ==> Windows外面显示文件夹下内容 (等同于Linux ls) --- mkdir ==> Windows里建目录 mkdir -p// mkdir -p ( -P 的作用 ) 1 .如果文件存在就不报错 2 .当父目录不存在就新建 ...

August 26, 2022 · 3 min · jiezi

关于linux:Xshell-lrzsz-实现Linux与Windos文件互传

一、介绍 lrzsz是一款在linux里可代替ftp上传和下载的程序。博主应用是Centos零碎,配置好Yum源后,应用Yum下载并装置lrzsz程序。 下载应用“sz”命令,sz全称send(发送),输出sz时、服务器发送文件,也就是本地从服务器上下载文件。 上传应用“rz”命令,rz全称received(接管),输出rz时、服务器接管文件,也就是文件从本地上传到服务器。环境:租3A服务器,应用xshell连贯二、装置lrzsz1、装置1)命令yum -y install lrzsz2)实例[root@wangwu ~]# yum -y install lrzsz Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile ... ... ...2、查看1)命令yum info lrzsz2)实例[root@wangwu ~]# yum info lrzsz #查看软件信息 Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Installed Packages Name : lrzsz Arch : x86_64 Version : 0.12.20 Release : 36.el7 Size : 181 k Repo : installed From repo : anaconda Summary : The lrz and lsz modem communications programs ...

August 24, 2022 · 1 min · jiezi

关于linux:linux-网络dig查询DNS详解

文章目录 1.dig是什么 2.dig组成 3.dig实例1.dig是什么dig,和nslookup作用有些相似,都是DNS查问工具 什么是CNAME:一个域名能够有两种类型的指向,如果一个 域名指向 称为一个 记录 (Record)的话,那么就有两种 记录类型 (Record Type),别离是: A记录 :指向一个IP地址CNAME :指向一个其余的域名 2.dig组成输入后果大抵分成4个局部,实际上可能还包含更多的内容,总共会有以下6个局部: Header : 包含软件版本,全局变量以及除音讯头以外的其余局部的信息,比方上例中,显示有1个QUERY,2个ANSWERQUESTION SECTION : 申请参数信息,也就是你的输出ANSWER SECTION : 从DNS查问到的信息,也就是输入,显示 i.zhouliang.pro 是CNAME,指向mydomain.lofter.com ,而后者是一个A记录,指向一个IP地址AUTHORITY SECTION : 蕴含DNS域名服务器的受权信息,上例中不蕴含这一部分,如果用这个命令就能够看到 dig@ns1.redhat.com redhat.com ,这里的 @ 符号用于指定查问所应用的DNS服务器ADDITIONAL SECTION : 蕴含AUTHORITY SECTION中的域名服务器的IP地址,同样,上例中也不蕴含这一部分Stats section : 最下方的一部分,显示了查问工夫等额定信息如果你设置的dnsserver是一个域名,那么dig会首先通过默认的上连DNS服务器去查问对应的IP地址,而后再以设置的dnsserver为上连DNS服务器。没有设置@dnsserver,那么dig就会顺次应用**/etc/resolv.conf里的地址作为上连DNS服务器。对querytype有所理解,你能够设置A/AAAA/PTR/MX/ANY**等值,默认是查问A记录。 +nocomments – 不显示正文+noauthority – 不显示AUTHORITY SECTION+noadditional – 不显示ADDITIONAL SECTION+nostats – 不显示Stats section+noanswer – 不显示ANSWER SECTION+noall - 不显示所有的信息,个别会这样用 dig zhouliang.pro +noall +answer和下面参数对应还有 +comments , +answer 等,后文有示例,此处不赘述。另外,还有如下两个参数须要理解: +short - 显示简短的信息-t 指定查问的记录类型,能够是CNAME、A、MX、NS,别离示意CNAME、A记录、MX记录、DNS服务器,默认是A-x 示意反向查找,也就是依据IP地址查找域名-c 能够设置协定类型(class),包含IN(默认)、CH和HS-f dig反对从一个文件里读取内容进行批量查问-4和-6 用于设置仅实用哪一种作为查问包传输协定,别离对应着IPv4和IPv6-q 显式设置你要查问的域名1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.3.dig实例$ dig www.oolec.com1.即查问域名的A记录,查问的dns服务器将采纳系统配置的服务器,即/etc/resovle.conf 中的。 ...

August 23, 2022 · 1 min · jiezi

关于linux:linux-查看安装的系统版本linux之查看版本信息命令

在做试验的时候,咱们首先要查看以下版本信息,只有晓得了版本信息的状况,才晓得零碎的个性,坐骑试验来才不会不知所措,上面就让我带大家走近版本信息命令 查看装置时零碎版本信息cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 6.4 (Santiago) 查看零碎内核版本等信息uname -aLinux nan 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux 3.查看零碎版本信息 cat /etc/issueRed Hat Enterprise Linux Server release 6.4 (Santiago) Kernel \r on an \m 4.查看内核实时记录的零碎版本信息 cat /proc/versionLinux version 2.6.32-358.el6.x86_64 (mockbuild@x86-022.build.eng.b...) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Tue Jan 29 11:47:41 EST 2013参考链接:4 Ways to Check OS Version in Linux ...

August 23, 2022 · 1 min · jiezi

关于linux:Linux-之-文件最大打开数量

liunx中文件句柄有两个限度一种是用户级的,一种是零碎级的(也叫内核级) Linux最大关上文件句柄数,即关上文件数最大限度,就是规定的单个过程可能关上的最大文件句柄数量(Socket连贯也算在里面,默认大小1024) 零碎级的最大限度:cat /proc/sys/fs/file-max 用户级的最大限度ulimit -n(默认是1024,向阿里云华为云这种云主机个别是65535) 查看某个过程的最大关上文件数和以后关上文件数/proc/[pid]/limits 显示以后过程的资源限度/proc/[pid]/fd 是一个目录,蕴含过程关上文件的状况/proc/[pid]/task 查看某个过程的线程的详细信息 批改最大限度用户级用户级批改长期失效办法:(重启后生效)ulimit -SHn 10000 ulimit 命令分软限度和硬限度,加-H就是硬限度,加-S就是软限度。默认显示的是软限度,如果运行ulimit 命令批改时没有加上-H或-S,就是两个参数一起扭转。硬限度就是理论的限度,而软限度是正告限度,它只会给出正告 用户级批改永恒无效形式:vi /etc/security/limits.conf 批改配置文件/etc/security/limits.conf,退出: soft nofile 65535hard nofile 65535echo “* soft nofile 65535” >> /etc/security/limits.confecho “* hard nofile 65535” >> /etc/security/limits.conf示意所用的用户,但有的零碎不认, 须要具体的用户名, 比方:root soft nofile 65535root hard nofile 65535从新登录验证,或者reboot后验证。零碎级其实下面的批改都是对一个过程关上的文件句柄数量的限度,咱们还须要设置零碎的总限度才能够。如果,咱们设置过程关上的文件句柄数是1024 ,然而零碎总限度才500,所以所有过程最多能关上文件句柄数量500。从这里咱们能够看出只设置过程的关上文件句柄的数量是不行的。所以须要批改零碎的总限度才能够 零碎级批改长期失效形式:echo 655350 > /proc/sys/fs/file-max 零碎级批改永恒失效形式:vi /etc/sysctl.conf退出 零碎容许关上最大文件数fs.file-max=655350 过程容许关上最大文件数,这里留神nr_open要比nofile大,否则会呈现登录不上fs.nr_open=60000 sysctl -p查看是否失效,如果不行,reboot即可。参考链接:3 Ways to Fix Too Many Open Files

August 23, 2022 · 1 min · jiezi

关于linux:如何查看linux文件系统类型

以往应用的linux命令,肯定要长于总结。如何查看linux文件系统类型?1. df 命令报告文件系统磁盘空间利用率,应用-T选项显示特定的磁盘分区的文件系统类型,-h人类可读形式显示。[root@Qiuyuetao ~]# df -ThFilesystem     Type   Size  Used Avail Use% Mounted on/dev/sda2      ext4    19G   12G  6.3G  65% /tmpfs          tmpfs  491M     0  491M   0% /dev/shm/dev/sda1      ext4   190M   65M  116M  36% /boot2.fsck 命令能够用来检测与修复文件系统,也能够输入指定磁盘分区的文件系统类型。-N 参数禁用查看文件系统谬误,只是显示会做什么。[root@Qiuyuetao ~]# fsck -N /dev/sda1 fsck from util-linux-ng 2.17.2[/sbin/fsck.ext4 (1) -- /boot] fsck.ext4 /dev/sda13.lsblk 命令显示块设施信息,当应用-f选项时,会打印分区的文件系统类型[root@Qiuyuetao ~]# lsblk -fNAME   FSTYPE  LABEL           UUID                                 MOUNTPOINTsr0    iso9660 CentOS 7 x86_64                                      sda                                                                 ├─sda1 ext4                    b5717723-fe1c-4add-81f2-e0015dd5753a /boot├─sda2 ext4                    9de67bcd-2282-4533-8f30-2657ed4e0f0c /└─sda3 swap                    6e49b772-f74f-4ba3-8a5c-e699cbc25053 [SWAP]4.mount 命令是挂载文件系统用的,不带任何参数运行时,它会打印蕴含文件系统类型在内的磁盘分区的信息。[root@Qiuyuetao ~]# mount/dev/sda2 on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw)/dev/sda1 on /boot type ext4 (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw5.blkid命令用来找出或打印块设施属性。[root@Qiuyuetao ~]# blkid/dev/sda1: UUID="b5717723-fe1c-4add-81f2-e0015dd5753a" TYPE="ext4" /dev/sda2: UUID="9de67bcd-2282-4533-8f30-2657ed4e0f0c" TYPE="ext4" /dev/sda3: UUID="6e49b772-f74f-4ba3-8a5c-e699cbc25053" TYPE="swap"6.file命令会辨认文件类型,应用-s参数启用读取块设施或字符设施,-L启用符号链接追随。[root@Qiuyuetao ~]# file -Ls /dev/sda1/dev/sda1: Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents) (huge files)7.fstab文件是一个文件系统信息(比方挂载点、文件系统类型、挂载选项、开机主动挂载等等)文件[root@Qiuyuetao ~]# cat /etc/fstab  /etc/fstab Created by anaconda on Thu Mar 16 00:24:26 2017 Accessible filesystems, by reference, are maintained under '/dev/disk' See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more infoUUID=9de67bcd-2282-4533-8f30-2657ed4e0f0c /      ext4     defaults     1     1UUID=b5717723-fe1c-4add-81f2-e0015dd5753a /boot    ext4     defaults     1     2UUID=6e49b772-f74f-4ba3-8a5c-e699cbc25053 swap    swap    defaults     0     0tmpfs                   /dev/shm  tmpfs     defaults     0     0devpts                  /dev/pts  devpts     gid=5,mode=620  0     0sysfs                   /sys    sysfs     defaults     0     0proc                    /proc   proc     defaults     0     0 要挂载的目录               #挂载点  挂载类型     挂载选项    是否备份  是否开机磁盘自检工作问题:因批改/etc/fstab导致无奈开机应用linux rescue(救济模式)修复/etc/fstab(改错配置,而后无奈重起零碎)解答:用救济模式解决即可。救济模式不反对vimvi /mnt/sysp_w_picpath/etc/fstab ,将谬误挂载项,修复或移除,即可。参考链接: 7 Ways to Check File system Type in Linux

August 23, 2022 · 1 min · jiezi

关于linux:Selinux

Selinux 文章目录 Selinux 1.DAC与MAC 2.selinux的工作级别与机制 3 selinux的配置 1.DAC与MACDAC:Linux本人的平安机制叫做DAC(Discretionary Access Control,自主访问控制) MAC:SELinux实现的性能叫做MAC(Mandatory Access Control,强制访问控制机制) 2.selinux的工作级别与机制SELinux:Secure Enhanced Linux,工作于Linux内核中。 SELinux有两种工作级别: strict:严格级别,每个过程都受到selinux的管制 targeted:仅无限个过程受到selinux的管制 只监控容易被入侵的过程1.2.3.4.5.SELinux工作机制: SELinux采纳相似沙箱(sandbox)的形式来运行过程: subject operation object subject:过程 object:能够是过程,能够是文件 实用于文件的操作:open,read,write,close,chown,chmodSELinux为每个文件提供了平安标签,也为过程提供了平安标签: user:role:type user:SELinux的user role:角色 type:类型 SELinux规定库: 规定:定义了哪种域能拜访哪种或哪些种类型内的文件 遵循“法无受权即禁止”的规定,也就是说没有明确受权的所有操作均禁止1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.3 selinux的配置SELinux是否启用:在/etc/selinux/config文件中定义 SELinux的状态: enforcing:强制,每个受限的过程都必然受限 permissive:启用,每个受限的过程违规操作时不会被禁止,但会被记录于审计日志 disabled:禁用 相干命令: getenforce:获取selinux以后状态 setenforce 0|1 0:设置为permissive1:设置为enforcing此设定仅以后无效,重启零碎后有效 配置文件:/etc/sysconfig/selinux,/etc/selinux/config SELINUX={disabled|enforcing|permissive}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.给文件从新打标签: chcon:change context,扭转上下文 chcon [option]... CONTEXT FILE... chcon [option]... [-u USER] [-r ROLE] [-t TYPE] FILE... chcon [option]... --reference=RFILE FILE... -R:递归打标签1.2.3.4.5.6.7.8.9.还原文件的默认标签: restorecon [-R] /path/to/somewhere(能够是文件,也能够是目录)1.设定某些布尔型个性: getsebool1.语法:getsebool [-a] [boolean]例: getsebool -agetsebool ftp_home_dirsetsebool ...

August 23, 2022 · 1 min · jiezi

关于linux:Linux操作系统负载的命令查看与详解

在平时的工作与生存中,掂量服务器的性能是每一个程序员必备的技能,load作为必不可少的掂量性能的指标,它的了解和查看是十分重要的,本文次要介绍load(负载)的罕用查看命令与定义和零碎机器失常负载范畴: 负载的概念负载(load)是linux机器的一个重要指标,直观了反馈了机器以后的状态。 简略解释一下:在LINUX零碎中,零碎负载是对以后CPU工作量的度量,被定义为特定工夫距离内运行队列中的均匀线程数。load average 示意机器一段时间内的均匀load。这个值越低越好。负载过高会导致机器无奈解决其余申请及操作,甚至导致死机。 Linux的负载高,次要是因为CPU应用、内存应用、IO耗费三局部形成。任意一项应用过多,都将导致服务器负载的急剧攀升。 查看机器负载在Linux机器上,有多个命令都能够查看机器的负载信息。其中包含uptime、top、w、iostat等。 uptime命令uptime命令可能打印零碎总共运行了多长时间和零碎的均匀负载。uptime命令能够显示的信息显示顺次为:当初工夫、零碎曾经运行了多长时间、目前有多少登陆用户、零碎在过来的1分钟、5分钟和15分钟内的均匀负载。 这行信息的后半局部,显示“load average”,它的意思是“零碎的均匀负荷”,外面有三个数字,咱们能够从中判断零碎负荷是大还是小。 0.40 0.36 0.41 这三个数字的意思别离是1分钟、5分钟、15分钟内零碎的均匀负荷。咱们个别示意为load1、load5、load15。 w命令w命令的次要性能其实是显示目前登入零碎的用户信息。然而与who不同的是,w命令性能更加弱小,w命令还能够显示:以后工夫,系统启动到当初的工夫,登录用户的数目,零碎在最近1分钟、5分钟和15分钟的均匀负载。而后是每个用户的各项数据,我的项目显示程序如下:登录帐号、终端名称、远 程主机名、登录工夫、闲暇工夫、JCPU、PCPU、以后正在运行过程的命令行。 从下面的w命令的后果能够看到,以后零碎工夫是19:31,系统启动到当初经验了8天5个小时,共有8个用户登录。零碎在近1分钟、5分钟和15分钟的均匀负载别离是1.68 0.98 0.70。这和uptime失去的后果大致相同。 上面还打印了一些登录的用户的各项数据,不具体介绍了 Top命令top命令是Linux下罕用的性能剖析工具,可能实时显示零碎中各个过程的资源占用情况,相似于Windows的工作管理器。 第一行与就不解释了上文曾经提到 第二行:Tasks: 116 total, 2 running, 107 sleeping, 0 stopped, 0 zombie116 total:以后有116个工作2 running:2个工作正在运行114 sleeping:114个过程处于睡眠状态0 stopped:进行的过程数0 zombie:僵死的过程数第三行:%Cpu(s): 9.6 us, 9.6 sy, 0.0 ni, 80.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st9.6%us:用户态过程占用CPU工夫百分比9.6%sy:内核占用CPU工夫百分比0.0%ni:renice值为负的工作的用户态过程的CPU工夫百分比。nice是优先级的意思80.9%id:闲暇CPU工夫百分比0.0%wa:期待I/O的CPU工夫百分比0.0%hi:CPU硬中断工夫百分比0.0%si:CPU软中断工夫百分比第四行:KiB Mem : 1881840 total, 95644 free, 914944 used, 871252 buff/cache1881840k total:物理内存总数95644k used: 应用的物理内存914944k free:闲暇的物理内存871252k cached:用作缓存的内存 ...

August 23, 2022 · 1 min · jiezi

关于linux:Linux中是谁占用了我的端口

最近在3A平台的平台下开明了Linux服务器,学习Linux服务器相干常识。 Address already in use这个提醒,想必大家遇到过,怎么能疾速找到问题并解决呢?上面有几种姿态能够理解一下. 在对网络连接或特定于应用程序的问题进行故障排除时,首先要查看的事件之一应该是零碎上理论应用了哪些端口,以及哪个应用程序正在侦听特定的端口。 本文介绍了如何应用netstat,ss和lsof命令找出哪些服务正在侦听哪些端口。该阐明实用于所有基于Linux和Unix的操作系统,例如macOS。 什么是监听端口网络端口由其编号,关联的IP地址和通信协议(例如TCP或UDP)的类型标识。 侦听端口是应用程序或过程在其上侦听的网络端口,充当通信端点。 每个监听端口都能够应用防火墙关上或敞开(过滤)。一般而言,凋谢端口是一个网络端口,它承受来自近程地位的传入数据包。 你不能让两个服务监听同一IP地址上的同一端口。 例如,如果你正在运行一个监听端口80和443的Apache Web服务器,并且尝试装置Nginx ,则后者将无奈启动,因为HTTP和HTTPS端口是曾经在应用中。 用netstat查看监听端口netstat是一个命令行工具,能够提供无关网络连接的信息。 要列出所有正在侦听的TCP或UDP端口,包含应用端口的服务和套接字状态,请应用以下命令: sudo netstat -tunlp此命令中应用的选项具备以下含意:-t-显示TCP端口。-u -显示UDP端口。-n -显示数字地址而不是解析主机。-l -仅显示监听端口。-p -显示侦听器过程的PID和名称。仅当你以root用户或 sudo 用户身份运行命令时,才会显示此信息。输入将如下所示:Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0:22 0:* LISTEN 445/sshd tcp 0 0 0:25 0:* LISTEN 929/master tcp6 0 0 :::3306 ::* LISTEN 534/mysqld tcp6 0 0 :::80 :::* LISTEN 515/apache2 tcp6 0 0 :::22 :::* LISTEN 445/sshd tcp6 0 0 :::25 :::* LISTEN 929/master tcp6 0 0 :::33060 :::* LISTEN 534/mysqld udp 0 0 0:68 0:* 966/dhclient在咱们的案例中,重要的几列是:Proto-套接字应用的协定。Local Address -过程侦听的IP地址和端口号。PID/Program name -PID和过程名称。如果要过滤后果,请应用 grep命令。例如,要查找在TCP端口22上侦听的过程,你能够输出:sudo netstat -tnlp | grep :22输入显示此计算机上的端口22被SSH服务器应用:tcp 0 0 0:22 0:* LISTEN 445/sshdtcp6 0 0 :::22 :::* LISTEN 445/sshd如果输入为空,则示意端口上没有监听。 ...

August 23, 2022 · 2 min · jiezi

关于linux:如何在-Linux-命令行中终止进程

如果你想在linux上进行某个过程,你会怎么操作? 如果命令/过程在前台运行,您能够应用 Ctrl+C 终端快捷方式,然而,如果过程不可见(在后盾运行),您能够应用专用命令“杀死它”。 “终止过程”是指在执行过程中进行过程,如果您晓得过程 ID (PID),则能够应用 kill 命令,如下所示: kill <signal> <PID> 在下面的语法中,signal指的是要发送终止的终止信号,并且PID指的是过程的 ID。 还有一个 killall 命令,我将在本文中探讨kill 和 killall 命令。 在你开始杀死过程之前,你应该晓得一些事件,例如有哪些终止信号可用,如何找到 PID 等。 让咱们先从信号开始。 Linux 中的终止信号当一个过程被操作系统或用户终止时,即过程没有自行实现,它会被发送一个终端信号。 以下是可用的终止信号: SIGHUP:1:信号挂断:当管制它的终端敞开时发送到过程。SIGINT:2:信号中断:当用户终止过程时发送给过程的信号。(例如 Ctrl + X)SIGKILL:9:Signal Kill:立刻退出过程的信号,不容许它保留以后状态。SIGTERM:15:信号终止:发送到信号以申请终止过程。该信号能够被过程疏忽。但这是终止过程的首选形式,因为它能够在过程收到 SIGTERM 时开释资源。SIGSTOP:19(x86、ARM)、17(Alpha)、23(MIPS)、24(PARISC):信号进行:进行过程但稍后复原的信号。个别状况会应用信号 9 和 15 获取过程的PID您还须要理解要终止的过程的详细信息,应用 kill 命令,您必须提供过程的 ID (PID),您能够从过程名称中获取 PID: pidof exact_process_name 在 Linux 命令行中终止过程让咱们先看看 kill 命令,因为您将比 killall 更多地应用它。 应用 kill 命令该kill命令要求您晓得要终止的过程的 ID,以及可选的终止信号。 要简略地终止命令,请应用以下语法: kill [signal] <PID> 向 PID 发送终止信号是可选的,如果未提供任何信号,则kill默认发送 SIGTERM ( 15),以失常终止所述过程完结。 我启动了sleep 命令的后盾过程(它给了我一个 PID),让咱们尝试应用kill命令杀死它。 ...

August 23, 2022 · 1 min · jiezi

关于linux:翻车误删usrlib引发的血案从棺材边成功抢救的过程分享

写在开篇血案:本地开发机是CentOS 7,本想删除在/usr/lib/下的一个软链,如:/usr/lib/xxx。当正想删除时,忽然被别的事件打搅了一下,回过神之后莫名微妙的执行了命令:“rm -rf /usr/lib/”,遗记指定文件名了,你说难堪不难堪?就在千钧一发之际,马上进行了ctrl+c终止了。但,血案还是产生了,景象就是重启后无奈失常进入操作系统了。因日常应用的开发机各种环境都曾经搭建好,就不想折腾了。尽管它是虚拟机,但我没有每时每刻对它做快照,就算复原以前做过的快照,那也不是我想要的样子了。所以,决定对它进行抢救。抢救过程找一台同一个ISO装置的、且失常运行的零碎进行比照/usr/lib/门路下的文件数量 下面的截图中,就是失常运行的OS,/usr/lib下的文件数量是49个。曾经损坏的操作系统,在救济模式查看/usr/lib/门路下的文件数量 发现只有44个了,和失常的OS比照少了5个,尽管过后马上ctrl+c终止了,手速再快也无力回天了,还是丢了文件。对于如何进入救济模式,持续往下看哈。接着,从失常的os中,进入/usr目录,间接在相对路径中打包lib目录,最终失去lib.tar.gz文件,并把它sz到本地。通过软碟通(UltraISO)关上CentOS7的ISO镜像文件,并增加文件lib.tar.gz文件到其根目录下,最初另存为一个新的ISO镜像文件。 通过这个增加了lib.tar.gz文件的CentOS7镜像启动,并进入救济模式,进入救济模式的整个过程如下: 到此为止就进入到救济模式下了,且进入的是虚构零碎的根目录,实在的目录存储在/mnt/sysimage上面 应用chroot命令切换到实在的根目录 chroot /mnt/sysimage/ 挂载光驱到/home/isodata目录下 挂载光驱胜利后,留神到了lib.tar.gz文件了吗?没错了,就是之前把它弄进去的。将lib.tar.gz复制进去,并将其解压后,拷贝到/usr/lib/下,且是笼罩其所有。而后关机,并将其的启动程序设置为从硬盘启动,而后开机 开机后,发现曾经失常进入操作系统,完满!胜利从棺材边抢救回来了。 写在最初从这种小事就能够阐明,我是一个大头虾!如果是线上的生产环境这么个搞法,预计要进监狱了。尽管这次的血案是产生在本人本地的开发机中,同时也给我敲响了一个警钟:敬畏生产环境!本文转载于(喜爱的盆友关注咱们):https://mp.weixin.qq.com/s/TF...

August 20, 2022 · 1 min · jiezi

关于linux:Linux-全新异步接口-iouring-的-Rust-生态盘点

首发|RustMagazine io_uring 半信半疑是近两年内核圈最火的话题之一,作为风头正劲的 Linux 异步 I/O 接口,其野心更大,不仅仅想将 Linux 的 I/O 操作全面异步化,还心愿将所有Linux零碎调用异步化。 Rust 作为一门零碎级编程语言,兼具平安和高性能的特点,大家也肯定是想应用Rust语言 “尝鲜” io_uring。然而遗憾的是 io_uring 作者 Jens Axboe 仅仅保护一个C语言的库。用户想要用Rust调用,一方面还须要本人进行一些封装,另一方面 C 语言的接口还是太底层,想在 Rust 的异步框架中应用仍有许多工作要做。 好消息是曾经有一些 Rust 语言封装的 io_uring 库呈现在 github 上,明天让咱们来筛选一些应用人数较多(通过star数目来判断)的库进行剖析,看看是否能够给大家应用 io_uring 带来便当。 Tokio io-uringTokio 是 github 上 Star 数目最多的异步框架,那么他们团队封装的io_uring lib如何呢?通过浏览代码不难发现,该 io_uring 库齐全撇弃了 C 语言的 liburing 库,本人在 io_uring 零碎调用上从零开始封装了一层,实现了submission queue,completion queue 和 submitter。 上述的三层形象比 C 语言的封装略微高层一些,但依然需用户将 request 放到submission queue上,将 response 从 completion queue 上取下,和同步读写形式区别微小,且和 Rust 现有的异步 I/O 框架的设计相去甚远。以下是一个简略的样例代码: let mut ring = IoUring::new(256)?;let (submitter, mut sq, mut cq) = ring.split();let mut accept = AcceptCount::new(listener.as_raw_fd(), token_alloc.insert(Token::Accept), 3);// put request on the submission queueaccept.push_to(&mut sq);// submit the requestmatch submitter.submit_and_wait(1) { Ok(_) => (), Err(ref err) if err.raw_os_error() == Some(libc::EBUSY) => (), Err(err) => return Err(err.into()),}// get complete events from the completion queuefor cqe in &mut cq { ...}该 io_uring 库的优缺点分列如下:长处:1、纯 Rust 封装,安全性更好。2、比 C 语言库封装高层,应用起来接口更加简略。毛病:1、保护老本更高,须要依据kernel的更新手动追加新 feature,包含新数据结构。2、封装还不够彻底,裸露了底层实现的两个队列,用户应用难度较高。 ...

August 20, 2022 · 2 min · jiezi

关于linux:Linux的日志管理

日志介绍日志文件是重要的信息系统文件,其中记录了许多重要的零碎事件,包含用户的登录信息、零碎的启动信息、零碎的平安信息、邮寄相干信息、各种服务相干信息。不仅如此,日志对于平安来说也很重要,它记录了零碎每天产生的各种事件,能够通过日志来查看谬误产生的起因或者受到攻打时攻击者留下的痕迹。总的来说,日志就是记录重大事件的工具。Linux 操作系统中罕用的日志保留于 /var/log/ 目录中: /var/log/boot.log //系统启动日志/var/log/cron //记录与零碎定时工作相干的日志/var/log/cups //记录打印信息的日志/var/log/dmesg //记录了零碎在开机时内核自检的信息,这些信息也能够间接应用 dmesg 命令来查看/var/log/btmp //记录谬误登录的日志,该文件为二进制文件,须要应用命令 lastb 查看,不能间接用 vim 查看/var/log/lastlog //记录零碎中所有用户最初一次登录工夫的日志,该文件为二进制文件,要应用命令 lastlog 查看/var/log/mailog //记录邮件信息的日志/var/log/message //记录零碎重要信息的日志,该日志中有着 Linux 中绝大多数重要的信息,如果零碎呈现问题首先应该查看的就是这个文件/var/log/secure //记录验证和受权方面的信息,只有波及账户和明码的程序都会记录,比方零碎登录、ssh 登录、增加用户、批改用户明码等/var/log/wtmp //永恒记录所有用户的登录、登记信息,同时记录零碎的启动、重启、关机事件,应用 last 命令查看/var/tun/ulmp //记录以后曾经登录的用户的信息,这个文件会随着用户的登录和登记一直变动,只记录以后登录用户的信息,能够应用 w、who、users 等命令查看 日志治理服务 rsyslogdCentOS 6.x 版本的日志服务是 syslogd;CentOS 7.x 版本的日志服务是 rsyslogd,二者是兼容的。这里应用的 rsyslogd,它的性能更加弱小。rsyslogd 其实就是一个后盾的程序/服务,来治理和操作系统中的日志。查问 Linux 中的 rsyslogd 服务是否启动应用命令 ps aux | grep "rsyslog" | grep -v "grep"; 查问 rsyslogd 服务的自启动状态应用指令 systemctl list-unit-files | grep rsyslog; 配置文件 /etc/rsyslog.conf须要晓得,rsyslogd 治理日志以及各个目录中日志的含意,都是由配置文件【/etc/rsyslog.conf】来规定的。编辑配置文件时的格局为 .,第一个  代表日志类型,第二个  代表日志级别。日志类型auth pam 产生的日志authpriv ssh、ftp 等登录信息的信息验证corn 工夫工作相干kern 内核lpr 打印mail 邮件mark(syslog)-rsyslog 服务外部的信息,工夫标识news 新闻组user 用户程序产生的相干信息uucp unix to nuix copy 主机之间相干的通信local 1-7 自定义的日志设施日志级别(从上到下,级别越来越高,记录信息越来越少)debug 有调式信息的,日志通信最多info 个别信息日志,最罕用notice 最具重要性的的 一般条件的信息warning 正告级别err 谬误级别,阻止某个性能或者模块不能失常工作的信息crit 重大级别,组织整个零碎或者整个软件不能失常工作的信息alert 须要立刻批改的信息emerg 内核解体等重要信息none 什么都不记录 ...

August 18, 2022 · 2 min · jiezi

关于linux:Linux挂载命令mount用法及参数详解

Linux挂载命令mount用法及参数详解1.挂接命令(mount)首先,介绍一下挂接(mount)命令的应用办法,mount命令参数十分多命令格局:mount [-t vfstype] [-o options] device dir1.-t vfstype 指定文件系统的类型,通常不用指定,mount 会主动抉择正确的类型:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntfsMount Windows文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs2.-o options 次要用来形容设施或档案的挂接形式。loop:用来把一个文件当成硬盘分区挂接上零碎ro:采纳只读形式挂接设施rw:采纳读写形式挂接设施iocharset:指定拜访文件系统所用字符集3.device 要挂接(mount)的设施。4.dir设施在零碎上的挂接点(mount point)。 2.挂接光盘镜像文件1.从光盘制作光盘镜像文件。将光盘放入光驱,执行上面的命令。 cp /dev/cdrom /home/sunky/mydisk.iso或 dd if=/dev/cdrom of=/home/sunky/mydisk.iso123注:执行下面的任何一条命令都可将以后光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso 2.将文件和目录制作成光盘镜像文件,执行上面的命令。 mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk 3.光盘镜像文件的挂接(mount) mkdir /mnt/vcdrom注:建设一个目录用来作挂接点(mount point) mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom注:应用/mnt/vcdrom就能够拜访光盘镜像文件mydisk.iso里的所有文件了。 3.挂接移动硬盘对linux零碎而言,USB接口的移动硬盘是当作SCSI设施看待的。插入移动硬盘之前,应先用fdisk –l或more /proc/partitions查看零碎的硬盘和硬盘分区状况。[root at pldyrouter /]# fdisk -l接好移动硬盘后,再用fdisk –l或more/proc/partitions查看零碎的硬盘和硬盘分区状况,应该能够发现多了一个SCSI硬盘/dev/sdc和它的两个磁盘分区/dev/sdc1、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区,咱们能够应用上面的命令挂接/dev/sdc1和/dev/sdc5。 mkdir -p /mnt/usbhd1mkdir -p /mnt/usbhd212注:建设目录用来作挂接点(mount point) mount -t ntfs /dev/sdc1 /mnt/usbhd1mount -t vfat /dev/sdc5 /mnt/usbhd2注:对ntfs格局的磁盘分区应应用-t ntfs参数,对fat32格局的磁盘分区应应用-t vfat参数。若汉字文件名显示为乱码或不显示,能够应用上面的命令格局。 ...

August 18, 2022 · 1 min · jiezi

关于linux:linux创建新的用户

1、增加用户,首先用adduser命令增加一个普通用户,命令如下: adduser tommy//增加一个名为tommy的用户 passwd tommy //批改明码Changing password for user tommy.New UNIX password: //在这里输出新密码Retype new UNIX password: //再次输出新密码passwd: all authentication tokens updated successfully. 2、赋予root权限 办法一:批改 /etc/sudoers 文件,找到上面一行,把后面的正文(#)去掉 Allows people in group wheel to run all commands%wheel ALL=(ALL) ALL 而后批改用户,使其属于root组(wheel),命令如下: usermod -g root tommy批改结束,当初能够用tommy帐号登录,而后用命令 su – ,即可取得root权限进行操作。 办法二:批改 /etc/sudoers 文件,找到上面一行,在root上面增加一行,如下所示: Allow root to run any commands anywhereroot ALL=(ALL) ALLtommy ALL=(ALL) ALL 批改结束,当初能够用tommy帐号登录,而后用命令 sudo – ,即可取得root权限进行操作。 办法三:批改 /etc/passwd 文件,找到如下行,把用户ID批改为 0 ,如下所示:tommy0:33:tommy:/data/webroot:/bin/bash ...

August 18, 2022 · 1 min · jiezi

关于linux:面试准备系列之操作系统

linux内存治理局部物理内存、虚拟内存、分段分页、mmu、页表、tlb的基本概念过程的内存模型:栈、文件映射区、栈、data段、bss段、text段物理内存治理:buddy和slab,参考这篇文章虚拟内存治理:brk和mmap,参考这篇文章,申请虚拟内存时还没有调配物理内存,缺页异样时申请物理内存并进行映射。规范库:malloc,通过brk和mmap向操作系统申请内存,为了缩小不必要的零碎调用,malloc也会治理内存,参考这篇文章用户层:malloc的定位是一个通用型的内存管理器,必须要均衡各种状况。在用户层能够针对非凡场景定制内存池,缩小开销(比方定长内存块申请、单线程治理)、便于监控和debug等等。参考这篇文章过程、线程和协程过程和线程的区别和分割 过程作为资源管理的根本单位,线程作为调度的根本单位,一个过程对应着一个到多个线程。过程切换、线程切换 简述过程切换的流程: 被动或者被动进入内核:时钟中断或者调用了阻塞的零碎调用(进入内核的操作会执行特权级切换,次要是从用户栈切换到内核栈,并保留必要的上下文到内核栈中(比方用户栈地址、下一个指令地址))检测是否须要进行调度:工夫片耗费完或者期待在阻塞操作上或者有更高优先级的工作须要执行。从中断返回时会进行检测是否须要进行调度,如果须要则进入调度流程。运行调度算法,失去下一个须要被执行的工作对应的pcb,执行cpu上下文切换(包含页表、寄存器、内核栈、必要时进行tlb刷新、cache生效等)继续执行新的工作。线程切换是否比过程切换开销低,如果是阐明低在哪里? 如果是不同过程的线程切换,等价于过程切换,如果是雷同过程的线程切换,则对于共享资源(内存)不须要切换,这意味着不须要切换页表和tlb,也不须要使cache生效。如果架构反对ASID,则过程切换也不须要清理tlb。什么是协程?合作式调度、用户态切换相比于异步代码,协程的意义? 在付出可控资源的状况下,用同步逻辑写异步代码,升高复杂度(状况简单的时候异步代码的状态太多了,复杂度太高)。有栈协程 独立栈:调配多了节约空间,调配少了有栈溢出危险。共享栈:切换时须要拷贝栈空间参考这里无栈协程 状态机+闭包不能被非协程函数嵌套调用须要编译器反对协程切换为什么比线程切换开销低? 参考这个问题下的答复 linux的任务调度算法对于实时过程:FIFO or Round Robin,对于一般过程:O(n) -> O(1) -> CFS参考 这篇文章

August 17, 2022 · 1 min · jiezi

关于linux:linux中证书错误Certificate-verification-failed

Certificate verification failed: The certificate is NOT trusted. The certificate chain uses expired certificate. Could not handshake: Error in the certificate verification.重新安装 sudo apt install ca-certificates参考 https://github.com/zq1997/dee...

August 17, 2022 · 1 min · jiezi

关于linux:linux中apt安装时自动输入密码的方法

sudo apt install gfortran* < [passwd_file]2. echo '[passwd]' | sudo apt install gfortran重定向 sudo -S apt-get update<<EOF #-S是必须的passwdEOF

August 17, 2022 · 1 min · jiezi

关于linux:Linux使用ifconfig命令没有显示ens33

VM关上虚拟机后,应用SecureCRT近程连贯发现连贯不上,应用ifconfig命令后发现没有显示ens33进入目录可看到ens33文件存在 解决办法 systemctl stop NetworkManager systemctl disable NetworkManager systemctl start network.service运行实现即可

August 17, 2022 · 1 min · jiezi

关于linux:堡垒机的详细介绍

一:运维审计型堡垒机基本概念介绍跳板机→堡垒机 ,被称为跳板机的起因就是,运维人员通过它和更多的设施分割→堡垒机还会审核运维的权限再返回申请,然而这样还是存在误操作等问题,有安全隐患,跳板机被攻入,会导致整个网络资源齐全裸露。同时跳板机对一些资源ftp等不好操控。 堡垒机能够了解为是运维审计零碎的统称:即在一个特定的网络环境下,为了保障网络和数据不受来自内部和外部用户的入侵和毁坏,而使用各种技术手段实时收集和监控网络环境中每一个组成部分的零碎状态、安全事件、网络流动,以便集中报警、记录、剖析、解决的一种技术手段。堡垒机会从认证—受权—账号—审计(4A设计),最大限度地保障运维人员可能平安操作,升高运维过程中导致的危险:哪些人以哪些身份拜访那些设施? 堡垒机的指标:升高危险审计:做了什么?受权:能做什么?账号:你要去哪?(堡垒机治理很多设施的账号,不同的账号对应不同设施,安恒的能够登录一个账号应用任意设施)认证:你是谁?(判断权限)起源:拜访工夫堡垒机的作用:集中管理集中权限调配对立认证集中审计数据安全运维高效运维合规危险管控上面两个不错的堡垒机实图:图二是安恒信息的明御产品 堡垒机工作流程:运维人员在查看设施操作时首先连贯到堡垒机,而后向堡垒机提交操作申请。堡垒机会对登陆的账号的权限进行查看,堡垒机的利用代理模块将代替用户连贯到指标设施实现该操作,之后指标设施将操作后果返回给堡垒机,最初堡垒机再将操作后果返回给运维操作人员。通过这种形式,堡垒机逻辑上将运维人员与指标设施隔离开来,建设了从“运维人员->堡垒机用户账号->受权->指标设施账号->指标设施”的管理模式,解决操作权限管制和行为审计问题的同时,也解决了加密协议和图形协定等无奈通过协定还原进行审计的问题 功能模块 看图:这就是堡垒机的次要功能模块:共五点。。运维平台等。 次要看下治理平台: 三权分立:配置—受权—审计三员的了解:系统管理员,平安窃密管理员,平安审计员破除超级管理员;三员是三角色并非三人;平安窃密管理员与审计员必须非同一个人。像安恒的明御等设施可能记录运维人员的操作视频,很具体。执行危险命令或者无权限命令时,还会短信邮件等告警。 管理员间接就能监控行为,可间接中断,并能看到录像我从3A那边租的服务器搭建堡垒机 下面讲的都是堡垒机在运维上的应用,能够被称为运维审计型堡垒机概括就是可能记录运维人员干了什么,不便运维操作以及限度运维人员应用危险命令—接下来讲堡垒机在网络安全或者HW中负责的角色: 二:网关型堡垒机:保障网络和数据不受来自内部和外部用户的入侵和毁坏,实时收集和监控网络环境中每个组成部分的零碎状态、安全事件、网络流动。 是一个主机零碎,通过了加固,有较高的安全性,能够抵挡攻打,堡垒机将须要爱护的信息系统资源与平安威逼的起源进行隔离。 网关型堡垒机次要部署在内部网络和外部网络之间,自身不间接向内部提供服务,而是作为进入外部网络的一个检查点,用于提供对外部网络特定资源的平安访问控制。 网关型堡垒机不提供路由性能,将内外网从网络层隔离开来,除受权拜访外,还能够过滤掉一些针对内网的、来自应用层以下的攻打,为外部网络资源提供了一道平安屏障。但因为此类堡垒机须要解决应用层的数据内容,性能耗费很大,所以随着网络进出口处流量越来越大,部署在网关地位的堡垒机逐步成为了性能瓶颈,因而,网关型的堡垒机逐步被日趋成熟的防火墙、UTM、IPS、网闸等平安产品所取代。 堡垒机有哪些?免费的:安恒明御,天融信,启明星辰。 开源的:jumpserver。

August 17, 2022 · 1 min · jiezi

关于linux:进程间的通信方式六种

前提常识:每个过程都有本人的用户空间,而内核空间是每个过程共享的。因而过程之间想要进行通信,就须要通过内核来实现。 管道: 管道是最简略,效率最差的一种通信形式。 管道实质上就是内核中的一个缓存,当过程创立一个管道后,Linux会返回两个文件描述符,一个是写入端的描述符,一个是输入端的描述符,能够通过这两个描述符往管道写入或者读取数据。 如果想要实现两个过程通过管道来通信,则须要让创立管道的过程fork子过程,这样子过程们就领有了父过程的文件描述符,这样子过程之间也就有了对同一管道的操作。 毛病: 半双工通信,一条管道只能一个过程写,一个过程读。一个过程写完后,另一个过程能力读,反之同理。音讯队列: 管道的通信形式效率是低下的,不适宜过程间频繁的替换数据。这个问题,音讯队列的通信形式就能够解决。A过程往音讯队列写入数据后就能够失常返回,B过程须要时再去读取就能够了,效率比拟高。 而且,数据会被分为一个一个的数据单元,称为音讯体,音讯发送方和接管方约定好消息体的数据类型,不像管道是无格局的字节流类型,这样的益处是能够边发送边接管,而不须要期待残缺的数据。 然而也有毛病,每个音讯体有一个最大长度的限度,并且队列所蕴含音讯体的总长度也是有下限的,这是其中一个不足之处。 另一个毛病是音讯队列通信过程中存在用户态和内核态之间的数据拷贝问题。过程往音讯队列写入数据时,会发送用户态拷贝数据到内核态的过程,同理读取数据时会产生从内核态到用户态拷贝数据的过程。 共享内存: 共享内存解决了音讯队列存在的内核态和用户态之间数据拷贝的问题。 古代操作系统对于内存治理采纳的是虚拟内存技术,也就是说每个过程都有本人的虚拟内存空间,虚拟内存映射到实在的物理内存。共享内存的机制就是,不同的过程拿出一块虚拟内存空间,映射到雷同的物理内存空间。这样一个过程写入的货色,另一个过程马上就可能看到,不须要进行拷贝。 (这里的物理内存貌似不是内核空间的内存?) 信号量: 当应用共享内存的通信形式,如果有多个过程同时往共享内存写入数据,有可能先写的过程的内容被其余过程笼罩了。 因而须要一种爱护机制,信号量实质上是一个整型的计数器,用于实现过程间的互斥和同步。 信号量代表着资源的数量,操作信号量的形式有两种: P操作:这个操作会将信号量减一,相减后信号量如果小于0,则示意资源曾经被占用了,过程须要阻塞期待;如果大于等于0,则阐明还有资源可用,过程能够失常执行。V操作:这个操作会将信号量加一,相加后信号量如果小于等于0,则表明以后有过程阻塞,于是会将该过程唤醒;如果大于0,则示意以后没有阻塞的过程。(1)信号量实现互斥: 信号量初始化为1 过程 A 在拜访共享内存前,先执行了 P 操作,因为信号量的初始值为 1,故在过程 A 执行 P 操作后信号量变为 0,示意共享资源可用,于是过程 A 就能够拜访共享内存。若此时,过程 B 也想拜访共享内存,执行了 P 操作,后果信号质变为了 -1,这就意味着临界资源已被占用,因而过程 B 被阻塞。直到过程 A 拜访完共享内存,才会执行 V 操作,使得信号量复原为 0,接着就会唤醒阻塞中的线程 B,使得过程 B 能够拜访共享内存,最初实现共享内存的拜访后,执行 V 操作,使信号量复原到初始值 1。(2)信号量实现同步: 因为多线程下各线程的执行程序是无奈意料的,有些时候咱们心愿多个线程之间可能密切合作,这时候就须要思考线程的同步问题。 信号量初始化为0 如果过程 B 比过程 A 先执行了,那么执行到 P 操作时,因为信号量初始值为 0,故信号量会变为 -1,示意过程 A 还没生产数据,于是过程 B 就阻塞期待;接着,当过程 A 生产完数据后,执行了 V 操作,就会使得信号量变为 0,于是就会唤醒阻塞在 P 操作的过程 B;最初,过程 B 被唤醒后,意味着过程 A 曾经生产了数据,于是过程 B 就能够失常读取数据了。信号: ...

August 16, 2022 · 1 min · jiezi

关于linux:所有人openKylin最全社区贡献攻略请查收

最近,咱们收到了很多小伙伴的发问,其中大家比较关心的就是如何参加到openKylin社区奉献中。明天,咱们就从代码奉献和非代码奉献这两个方面来聊聊如何参加社区奉献。 第一步:在参加社区奉献前,请大家返回https://cla.openkylin.top/  页面,签订openKylin社区贡献者许可协定。签订实现后,即可抉择你感兴趣和善于的畛域开启你的奉献之旅。 一、代码奉献如果你想退出openKylin社区进行技术奉献,那么你能够抉择退出你感兴趣的SIG或创立新的SIG。具体退出流程和奉献形式如下: 提交/解决bug:在社区零碎应用或开发过程中如果遇到一些问题或bug,能够通过issue的模式向社区上报。奉献编码:以pr的模式给社区奉献代码,优化性能或者解决已有的issue。生态适配:当发现openKylin社区短少你须要的软件时,你能够尝试本人入手为社区奉献软件包。除此之外,你还能够抉择参加到社区打包、代码审核和新软件开发中。二、非代码奉献如果你不善于技术,然而又想参加到 openKylin 的奉献之中,那么你能够抉择以下形式参加: 版本测试:在社区任何一个新版本、新软件或者新性能上线前都会发展测试流动,能够参加测试并提交反馈。2. 文档奉献:●  编写文档:编写各种使用指南、技术分享和装置手册等,同时也能够优化已有文档。●  翻译文档:将openKylin社区已有文档其翻译成其余语言。宣传推广:参加到 openKylin 品牌建设中,如以文章、博客或视频的模式帮忙进行社区品牌推广、 openKylin 仓库和ISO散发到新的开源镜像站,或者帮助参加社区活动组织中来。视觉设计:参加社区纪念品设计、壁纸设计、网页设计和海报设计等。社区共建流动最新进展7月25日,openKylin发动了社区共建流动,邀请宽广开发者、社区爱好者等参加社区、携手共建,基于openKylin 0.7版本,帮助实现打包、适配和测试等工作。详情可查看:【一封来自openKylin社区的共建邀请函】截至目前(8月10日),测试和打包奉献排名别离如下: 奉献排名每周五定期更新,大家可返回仓库自行查看: ●  QA SIG:https://gitee.com/openkylin/c... ●  Packaging SIG:https://gitee.com/openkylin/c...●  Compatibility SIG:https://gitee.com/openkylin/c... 此流动第一阶段将于8月31日截止,欢送大家参加进来,携手共建~

August 16, 2022 · 1 min · jiezi

关于linux:进程控制

过程的创立第一个过程:过程0,是在操作系统内核的启动过程中手工形成的。第二个过程:过程1,是由过程0在内核态下通过fork而来。其余的过程:在用户态下,通过fork而来。创立过程(fork)留神:在不同过程中fork返回值不同 在父过程中,fork返回值为子过程PID在子过程中,fork返回值为0在fork外部就曾经开始分流了,依据判断以后是哪个过程,从而返回不同的值。fork之前的代码只有父过程执行,fork之后的代码由父子过程别离独特执行(然而两个过程谁先被调度是不确定的)在创立子过程后,操作系统会给子过程创立一个过程地址空间和页表,然而此时子过程的过程地址空间所对应的物理地址和父过程的过程地址空间所对应的物理地址是一样的,即父子过程同时应用一块物理内存(代码和数据共用)然而,当子过程或父过程对数据进行更改时(例如子过程更改数据),子过程会进行 “写时拷贝” 将整个数据段在物理地址中拷贝一份,并且让过程地址空间对应的虚构地址映射到拷贝后的物理地址中。这样不会影响父过程的数据(过程具备独立性)#include<<unistd.h>pid_t fork(void); //返回值为过程的PIDfork创立失败的状况零碎中过程太多。理论用户的过程超过了限度。过程终止程序完结,过程失常终止时,会齐全开释耗费的系统资源(内存、IO等)如果没有开释,则相应的资源就会失落(异样终止时)Linux零碎设计时规定:每个过程完结时,操作系统会主动回收这个过程的所有资源(例如malloc申请的内存没有free开释时,过程完结后这个内存也会被开释)然而操作系统的回收只会回收这个过程工作时耗费的内存和IO,而不会回收这个过程自身占用的内存(次要是task_struck和栈内存)过程终止办法失常终止: 程序失常完结,从main函数return返回。调用 exit() 函数退出过程。( void exit(int status); )_exit ( void _exit(int status); )异样终止: 程序异样命令行输出ctrl + c 发送退出信号。应用 return、exit、_exit 终止过程时的区别应用return 和 exit 终止函数时,都会开释已经占用资源(例如行缓冲区等)应用_exit 终止程序时 ,是间接终止过程,不会开释系统资源。过程期待过程期待个别都是由父过程实现。父过程通过过程期待的形式,回收子过程资源,获取子过程退出信息。wait办法wait函数原型wstatus :用来返回子过程完结时的状态信息(传参一个int类型的变量的地址即可)pid_t :这个是返回本次wait回收的子过程的PID。#include <sys/types.h>#include <sys/wait.h>pid_t wait(int *status);wait工作原理子过程完结时,操作系统会向父过程发送SIGCHILD信号。父过程调用wait函数时,会期待SIGCHILD信号(函数会阻塞在这里)父过程收到信号后,会被唤醒而后去回收僵尸过程(子过程退出,但还未被回收时的状态)如果父过程没有子过程,然而调用了wait函数,这时wait函数会返回谬误。如果父过程有多个子过程,wait函数会阻塞到其中一个子过程完结为止。所以父过程如果调用wait函数,那么某一个子过程肯定会先比父过程完结。waitpid办法wait和waitpid差异基本功能是一样的,都是用来回收子过程。然而waitpit能够回收指定PID的子过程。waitpit能够抉择阻塞式和非阻塞式两种工作模式。waitpid函数原型#include <sys/types.h>#include <sys/wait.h>pid_t waitpid(pid_t pid, int *status, int options);pid :指定要回收的子过程PID(传递值为 -1 时,示意不指定要回收的子过程)status :用来存储子过程完结时的状态信息(传参一个int类型的变量的地址即可)options :实现某些非凡性能。 传递的参数为 0 时 :示意不应用此项(即应用阻塞式)WNOHANG :如果没有子过程,则立马返回 0(非阻塞式)退出后果statusstatus 是int 类型,32位,理论应用时只应用低16位。status 的第 8 -- 15 位就是退出码。异样退出时,status的低 7 位是终止信号(终止信号能够用 kill -l 显示)检测status退出状态的宏WIFEXITED(status) :查看过程是否失常退出,若是则为真。WEXITSTATUS(status) :若过程失常退出,则查看过程退出码。过程程序替换(exec函数)替换原理用fork创立子过程后,父子过程执行的是雷同的程序,然而为了让子过程执行不同的程序往往须要调用一种 exec 函数来替换掉子过程中原来的程序。当调用exec函数后,该过程的物理空间的数据会被新程序齐全替换,并且从新建设映射关系,而后让过程从新程序开始执行。留神:调用exec函数并不创立新过程,所以调用前后过程的PID并未被扭转。所以,有了exec族函数,子过程中的代码能够独自编写、独自编译链接成一个可执行程序。当调用exec族函数后,则会加载新的程序,从新程序的启动代码开始执行,不再返回以后代码,那么之前过程的后续代码将不会被执行。替换函数execl和execv函数path :要执行的可执行程序的全门路。arg :给可执行程序传递的参数。... :变参,示意能够传递多个参数,然而最终结尾的参数必须是NULL。argv[ ] :参数数组,要当时将传递的参数写到数组中。如果调用出错,则返回 -1,调用胜利则执行新程序,不会返回。int execl(const char *path, const char *arg, .../* (char *) NULL */);int execv(const char *path, char *const argv[]);例如:执行 ls 程序,传递参数 -a -l ...

August 16, 2022 · 1 min · jiezi

关于linux:Linux安装Golang-Oracle数据库驱动程序

Golang连贯Oracle 须要装置Oracle Full Client或Instant ClientOracle的Instant Client套件下载地址 #抉择Instant Client for Linux x86-64下载包如下:instantclient-basic-linux.x64-21.1.0.0.0.zipinstantclient-sqlplus-linux.x64-21.1.0.0.0.zipinstantclient-sdk-linux.x64-21.1.0.0.0.zip#都解压到 instantclient_21_1 这个目录,间接解压会解压到instantclient_21_1目录unzip instantclient-basic-linux.x64-21.1.0.0.0.zip unzip instantclient-sdk-linux.x64-21.1.0.0.0.zipunzip instantclient-sqlplus-linux.x64-21.1.0.0.0.zip#打印instantclient_21_1目录的门路pwd/home/oracle/instantclient_21_1装置pkg-configCentOS自带了pkg-config,这里不在装置 #打印pkg-config版本pkg-config --version 创立配置文件oci8.pcvim /home/oracle/oci8.pcoci8.pc文件内容如下: prefix=/home/oracle/instantclient_21_1libdir=${prefix}includedir=${prefix}/sdk/include/glib_genmarshal=glib-genmarshalgobject_query=gobject-queryglib_mkenums=glib-mkenumsName: oci8Description: oci8 libraryLibs: -L${libdir} -lclntshCflags: -I${includedir}Version: 21.1配置环境变量vim /etc/profile 在最初增加如下环境变量# Oracle的OCI套件export LD_LIBRARY_PATH=/home/oracle/instantclient_21_1# oci8.pc文件所在门路export PKG_CONFIG_PATH=/home/oracle使配置失效source /etc/profile运行Golang连贯Oracle报错一:# github.com/mattn/go-oci8In file included from ../github.com/mattn/go-oci8/c_helpers.go:3:0:./oci8.go.h:1:17: fatal error: oci.h: No such file or directory #include <oci.h> ^compilation terminated.是因为配置的环境变量,oci8.pc文件所在门路不对,找不到oci8.pc文件导致的留神这个门路配置对export PKG_CONFIG_PATH=/home/oracle 运行Golang连贯Oracle报错二:dyld: Library not loaded: @rpath/libclntsh.dylib.19.1 Referenced from: /var/folders/_f/n3km_s7j6_9f8qzpkf9w395h0000gn/T/go-build114883360/b001/exe/oracleoci8 Reason: image not found增加软链接,解决报错 ln -s /home/oracle/instantclient_21_1/libclntsh.so.21.1 /usr/lib/libclntsh.soln -s /home/oracle/instantclient_21_1/libocci.so.21.1 /usr/lib/libocci.soln -s /home/oracle/instantclient_21_1/libociei.so /usr/lib/libociei.soln -s /home/oracle/instantclient_21_1/libnnz21.so /usr/lib/libnnz12.so

August 15, 2022 · 1 min · jiezi

关于linux:如何在Linux服务器上安装Anaconda超详细

我的服务器是从3A租的,价格便宜,做试验什么的挺不便的。 装置Anaconda1.1 下载anaconda的安装包这里咱们须要在官网上查找本人须要的版本,地址链接在上面:https://repo.anaconda.com/arc... 这里以我本人装置的版本为例: https://repo.anaconda.com/arc... 这是我抉择的版本,而后咱们在控制台输出这句话: wget https://repo.anaconda.com/arc... 如果没有呈现问题就是上面图示: 如果呈现问题就依照 1.2 步骤操作。 1.2 解决装置呈现的bug当咱们输出1.1的那一条命令时,有些人可能会呈现上面这样的谬误: bash: wget: command not found 当然这也是我本人呈现的谬误,具体解决办法如下:Debian/Ubuntu零碎,须要执行以下命令: apt-get install -y wget 相同,CentOS零碎则须要输出上面指令: yum install wget -y 1.3 装置anaconda接下来咱们须要首先赋权再执行安装程序,顺次输出上面两句命令: chmod +x Anaconda3-5.3.0-Linux-x86_64.sh ./Anaconda3-5.3.0-Linux-x86_64.sh 而后呈现上面图所示: 1.4 点击Enter(回车键)此时显示Anaconda的信息,并且会呈现More,持续按Enter,直到如下图所示: 1.5 输出 yes 1.6 持续点击 Enter 1.7 输出 yes,增加环境变量 这里须要留神点的就是如果你间接跳过这部设置环境变量的话: [no ] >>> 那你须要本人到这个文件夹设置你装置Anaconda门路(比方下面显示我的是) /home/wangke/.bashrc 单击进去,在最初一行增加: export PATH=/home/anaconda3/bin:$PATH 须要把之前的那句话给正文掉如下所示: export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATHexport PATH=/root/anaconda3/bin:$PATH12这里只是个示例,具体的还是要看你们本人装置的门路。 而后保留更改,输出上面这句指令: source ~/.bashrc 1.8 实现装置以及检测是否装置胜利关上新的终端后,进入本人的文件夹目录下,输出anaconda -V(留神a要小写,V要大写),conda -V ,显示版本信息,若显示则示意装置胜利。 ...

August 15, 2022 · 1 min · jiezi

关于linux:k8s查看pod日志的几种方法

通过kubectlkubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER] 我应用的是3A服务器近程连贯的centos零碎,挺不便的 参数 简写 默认值 阐明container c 打印指定容器的日志all-containers false 获取pod中所有容器的日志。selector l 通过标签筛选pod,反对 ‘=’、‘==’ 和 ‘!=’。例如 -l key1=value1,key2=value2。匹配对象必须满足所有指定的标签束缚。max-log-requests 5 指定选择器应用时要遵循的最大并发日志数。默认为 5。since 0s 仅返回比绝对持续时间(如 5s、2m 或 3h)更新的日志。默认为所有日志。since-time和since只能二选一since-time 仅在特定日期 (RFC3339格局)之后返回日志。默认为所有日志。since-time和since只能二选一tail -1 要显示的最近日志文件的行。limit-bytes 0 要返回的最大日志字节数。默认为无限度。follow f false 是否继续传输日志。timestamps false 在日志输入的每一行蕴含工夫戳prefix false 在每个日志行前加上日志源(pod 名称和容器名称)例如: 留神:指定namespace时,不能用-A 和 --all-namespaces。 通过rancher如果您应用的k8s被rancher托管,则能够应用rancher查看。留神:在以后罕用的2.5和2.6两个rancher版本中,有些许差别,2.5默认就能查看到全副日志,2.6则须要设置几个参数。rancher 2.5 rancher 2.6 有时候,咱们在rancher2.6查看某个pod的指定容器的日志时,发现日志框是齐全空白的,看不到任何日志信息,而通过kubectl logs,或者docker logs却能看到不少日志信息。这大概率是因为rancher页面右下方是日志筛选范畴没有进行失当的设置,默认状况下,rancher2.6只显示最近30分钟的日志。所以如果不手动调整一下,就很容易看不到想要日志。设置形式如下图所示: 如下图所示,即可看到全副日志:

August 15, 2022 · 1 min · jiezi

关于linux:操作系统messages文件位置更改

问题景象在遇到一个问题的时候须要查看操作系统的日志,然而到操作系统上的 /var/log/messages 文件中发现该文件曾经很久没有刷新过了。 这个零碎之前是做过平安加固的,我狐疑它改过操作系统的某些配置,调整了系统日志默认输入的文件门路。 问题解决通过查阅材料发现,操作系统的日志是由 /etc/rsyslog.conf 文件中配置的,如下图所示: 通过批改这个配置文件,能够调整操作系统日志理论输出的门路,如下图所示,这里将配置文件中的门路调整为了/var/log/tmp/messages 而后执行命令 systemctl restart rsyslog 重启日志服务,而后系统日志就会记录到新的文件门路下,如下图所示:

August 14, 2022 · 1 min · jiezi

关于linux:Linux系列之链接

前言在类Unix零碎中,一个文件有可能被多个名字援用。咱们应用链接来实现这一点,链接共有两种类型:硬链接和软链接,本文别离来介绍它们。 硬链接硬链接也容许指向文件,但与符号链接的形式不同。它们是Unix创立链接的原始形式。默认状况下,每个文件都有一个独自的硬链接,该链接给出了文件的名称,当咱们创立一个硬链接时,咱们是为一个文件创建一个额定的目录条目。其中有两个限度: 硬链接不能引用本人文件系统以外的文件。它所援用的文件必须在同一磁盘分区上。硬链接不能引用目录。硬链接与文件自身是没有区别的。我在上面列出了一个蕴含硬链接和符号链接的目录,咱们能够看到,硬链接没有非凡的批示,表明它是一个硬链接,而符号链接则有显著的批示(权限中的l和显示它链接到什么的->)。 当硬链接被删除时,链接是被删除了,然而文件自身的内容却仍旧存在,直到删除所有指向该文件的链接。你可能会时不时地碰到这种状况,但现代化的实际更偏向于符号链接。 咱们能够应用上面的命令来创立硬链接: ln file link符号链接符号链接是一种非凡类型的文件。它们也被称为软链接或符号链接,它们被用来指向任意计算机上的任何文件或目录,相似于Windows中的快捷方式和Mac OS中的别名。 咱们能够应用上面的命令来创立符号链接: ln -s item linkitem既能够是文件,也能够是目录。 符号链接克服了硬链接的局限性,因为它们通过创立一种非凡类型的文件来工作,其中蕴含一个指向被援用文件或目录的文本指针。 如果你向符号链接写货色,被援用的文件就会被写入,当你删除符号链接时,只有链接会被删除而文件自身不会被删除。如果文件被删除,该链接将持续存在,但将不指向任何货色,并被称为中断。

August 13, 2022 · 1 min · jiezi

关于linux:Java-并发编程解析-如何正确理解Java领域中的多线程模型主要用来解决什么问题

天穹之边,浩瀚之挚,眰恦之美; 悟心悟性,虎头蛇尾,惟善惟道! —— 朝槿《朝槿兮年说》 写在结尾 我国宋代禅宗巨匠青原行思在《三重境界》中有这样一句话:“ 参禅之初,看山是山,看水是水;禅有悟时,看山不是山,看水不是水;禅中彻悟,看山依然山,看水依然是水。” 作为一名Java Developer,在面对Java并发编程的时候,有过哪些的纳闷与不解 ?对于Java畛域中的线程机制与多线程,你都做了哪些功课?是否和我一样,在看完《Java编程思维》和《Java并发编程实战》之后,仍旧一头雾水,不知其迹?那么,心愿你看完此篇文章之后,对你有所帮忙。 从肯定水平上说,Java并发编程之路,实则是一条“看山是山,看山不是山,看山还是山”的修行之路。大多数状况下,当咱们感觉有迹可循到有迹可寻时,何尝不是陷入了另外一个“怪圈”之中? 从搭载Linux零碎上的服务器程序来说,应用Java编写的是”单过程-多线程"程序,而用C++语言编写的,可能是“单过程-多线程”程序,“多过程-单线程”程序或者是“多过程-多线程”程序。其中,“多过程-多线程”程序是”单过程-多线程"程序和“多过程-单线程”程序的组合体。 绝对于操作系统内核来说,Java程序属于应用程序,只能在这一个过程外面,个别咱们都是间接利用JDK提供的API开发多个线程实现并发。 而C++间接运行在Linux零碎上,能够间接利用Linux零碎提供的弱小的过程间通信(Inter-Process Communication,IPC),很容易创立多个过程实现并发程序,并实现过程间通信。 然而,多线程的开发难度远远高于单线程的开发,次要是须要解决线程间的通信,须要对线程并发做管制,须要做好线程间的协调工作。 对于固定负载状况下,在形容和钻研计算并发零碎解决能力,以及形容并行处理成果的减速比,始终有一个比拟驰名的计算公式: 就是咱们熟知的阿姆达尔定律(Amdahl"s Law),在这个公式中, [1]. P:指的是程序中可并行局部的程序在单核上执行的工夫占比。个别用作示意可改良性能的部件原先运行占用的工夫与零碎整体运行须要的工夫的比值,取值范畴是0 ≤ P ≤ 1。[2]. S:指的是处理器的个数(总外围数)。个别用作示意降级减速比,可改良部件原先运行速度与改良后的部件速度的比值,取值范畴是S ≥ 1。[3]. Slatency(s):指的是程序在S个处理器绝对在单个处理器(单核)中速度晋升比率。个别用作示意整个工作的提速比。依据这个公式,咱们能够根据可确定程序中可并行代码的比例,来决定咱们理论工作中减少处理器(总外围数)所能带来的速度晋升的下限。 无论是C++开发者在Linux零碎中应用的pthread,还是Java开发者应用的java.util.concurrent(JUC)库,这些线程机制的都须要肯定的线程I/O模型来做实践撑持。 所以,接下来,咱们就让咱们一起探讨和揭开Java畛域中的线程I/O模型的神秘面纱,针对那些盘根错落的枝末细节,能力让咱们更好地理解和正确认识ava畛域中的线程机制。 关健术语 本文用到的一些要害词语以及罕用术语,次要如下: 阿姆达尔定律(Amdahl 定律): 用于确定并发零碎中性能瓶颈部件在采纳措施提示性能后,此部件对系统性能提醒的改良水平,即零碎减速比。工作(Task): 示意一个程序须要被实现工作内容,与线程非一对一对应的关系,是一个绝对概念。并发(Concurrent): 示意至多一个工作或者若干 个工作同一个时间段内被执行,然而不是程序执行,大多数都是以交替的形式被执行。并行(Parallel): 示意至多一个工作或者若干 个工作同一个时刻被执行。次要是指一个并行连贯通过多个通道在同一时间内流传多个数据流。串行(Serial): 示意至少一个工作或者只有一个 个工作同一个时刻被执行。次要是指在同一时间内只连贯传输一个数据流。内核线程(Kernel Thread): 示意由内核治理的线程,处于操作系统内核空间。用户应用程序通过API和零碎调用(system call)来拜访线程工具。利用线程(Application Thread): 示意不须要内核反对而在用户应用程序中实现的线程,处于应用程序空间,也称作用户线程。次要是由JVM治理的线程和JVM本人携带的JVM线程。上下文切换(Context Switch): 个别是指工作切换, 或者CPU寄存器切换。当多任务内核决定运行另外的工作时, 它保留正在运行工作的以后状态, 也就是CPU寄存器中的全部内容。这些内容被保留在工作本人的堆栈中, 入栈工作实现后就把下一个将要运行的工作的当前状况从该工作的栈中从新装入CPU寄存器, 并开始下一个工作的运行过程。在Java畛域中,线程有生命周期,其上下文信息的保留和复原的过程。线程平安(Thread Safe): 一段操作共享数据的代码可能保障同一个工夫内被多个线程执行而仍然保障其数据的正确性的考量。根本概述Java畛域中的线程次要分为Java层线程(Java Thread) ,JVM层线程(JVM Thread),操作系统层线程(Kernel Thread)。 对于Java畛域中,从肯定水平上来说,因为Java程序并不间接运行在Linux零碎上,而是运行在JVM(Java 虚拟机)上,而一个JVM实例是一个Linux过程,每一个JVM都是一个独立的“沙盒”,JVM之间互相独立,互不通信。 依照操作系统和应用程序两个档次来说,线程次要能够分为内核线程(Kernel Thread) 和利用线程(Application Thread)。 其中,在Java畛域中的线程次要分为Java层线程(Java Thread) ,JVM层线程(JVM Thread),操作系统层线程(Kernel Thread)。 ...

August 13, 2022 · 3 min · jiezi

关于linux:linux如何查看系统架构查看系统架构命令

命令以下命令简直在所有 Linux 发行版都可用 我是在3A那边租的服务器近程连贯的,做做试验挺不便 uname 命令uname -m 间接显示Linux 零碎架构uname -a 命令也能够显示Linux 零碎架构,然而还有和其余信息 dpkg 命令dpkg的命令可用于查看 Debian/ Ubuntu 操作系统是 32 位还是 64 位dpkg --print-architecture 如果以后 Linux 是 64 位则输入 amd64,是 32 位则会输入 i386。 getconf 命令getconf命令次要用于显示零碎变量配置getconf LONG_BIT arch 命令arch命令次要用于显示操作系统架构类型。如果输入x86_64 则示意为 64 位零碎,如果输入 i686 或 i386 则示意为 32 位零碎。 file 命令file命令能够配合 /sbin/init或者/bin/bash来查看零碎架构类型,与零碎架构雷同:file /sbin/init瑞芯微摄像头arm-linux(很多命令都没有。。。)[root@RV1126_RV1109 ~]# uname -marmv7l[root@RV1126_RV1109 ~]# uname -aLinux RV1126_RV1109 4.19.111 #11 SMP PREEMPT Sat Sep 18 14:15:22 CST 2021 armv7l GNU/Linux (dpkg打印不进去) ...

August 12, 2022 · 1 min · jiezi

关于linux:通过sftp由本地向Linux上传文件文件夹

有时候咱们须要将本地的一些文件上传到虚拟机的Linux或云服务器中。本文介绍一种比拟不便的平安文件传输协定SFTP。本文次要介绍如何应用sftp,具体装置另需百度能够应用3A服务器,我就是应用3A的,提早低 启用sftp username@ip地址 #username就是目标主机的用户名,ip地址就是目标主机的ip地址 上传文件sftp有很多命令,咱们能够输出help来查看。上面介绍几个比拟罕用的命令查看以后本地门路和目标主机门路。当咱们想查看以后目标主机的门路应用命令pwd,如果想查看本地所在门路应用命令lpwd。 实际上,在sftp下,对于目标主机的操作,就是原有的shell语句,而对于本地环境的语法,只须要在命令后面加个l即可。再比方:ls和lls。 具体的能够看help文档。2、上传文件如果咱们很分明要上传的文件在什么地位,且要上传到目标主机的地位。 put 本地文件门路 目标主机门路 个别时候,咱们须要用cd和lcd去缓缓找要上传的文件及相应的上传地位,那么咱们就不必那么麻烦的输出所有门路 put 以后本地目录下的文件a 此时,间接将文件a上传到目标主机以后指定的目录下。 上传文件夹上传文件夹只须要在put前面加个-r即可。其余的和上传文件是一样的。put -r 本地文件夹门路

August 12, 2022 · 1 min · jiezi

关于linux:linux使用apt命令下载软件和依赖包

apt下载软件及其依赖包总共两步:下载软件包,下载依赖包 以下以ntp及其依赖包为例 1.cd /var/cache/apt/archives/该目录是依赖包默认下载目录 2.执行sudo apt download ntp ,仅下载ntp安装包 3.执行上面命令下载ntp依赖包 sudo apt-get install --reinstall -d apt-cache depends ntp | grep "依赖" | cut -d: -f2 |tr -d "<>" //批改ntp,改为本人想下载的软件名,当应用零碎为英文时,将"依赖"改为"depends" 以上为下载过程,装置的话使把方才下载的包独自放在一块,用sudo dpkg -i *.deb装置 留神:/var/cache/apt/archives/ 少部分状况下该目录须要root权限能力复制粘贴 命令sudo apt depends ntp 是查问ntp的依赖包有哪些 问题排查1.如下下载vsftpd依赖包时报错 ubuntu:/var/cache/apt/archives$ sudo apt-get install --reinstall -d apt-cache depends vsftpd | grep "依赖" | cut -d: -f2 |tr -d "<>"正在读取软件包列表... 实现正在剖析软件包的依赖关系树 正在读取状态信息... 实现 虚构软件包 debconf-2.0 由上面的软件包提供: debconf 1.5.58kord1 cdebconf 0.198kord1k3请您明确地抉择装置其中一个。 ...

August 11, 2022 · 1 min · jiezi

关于linux:ifconfig和ip命令配置网络

ifconfig命令时晚期网络管理的指令,目前Linux新的发行版本很多默认不带ifconfig命令,但能够以通过装置软件包net-tools形式进行应用. ip命令时新型的网络管理命令,目前根本取代了ifconfig,新的Linux发行版本时肯定有ip命令的。 ifconfig命令ifconfig 查看以后所有up状态的网卡信息 ifconfig xxxx 查看xxxx网卡详细信息 ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255 配置网卡信息 ifconfig eth0 up 启动eth0网卡 ifconfig eth0 down #敞开eth0网卡 ifconfig eth0 hw ether AA:AA:BB:CC:dd:EE 用ifconfig批改网卡eth0MAC地址 ifconfig eth0 arp 开启网卡eth0 的arp协定 ifconfig eth0 -arp 敞开网卡eth0 的arp协定 ip命令ip link show # 显示网络接口信息 ip link set eth0 up # 开启网卡 ip link set eth0 down # 敞开网卡 ip link set eth0 promisc on # 开启网卡的混合模式 ip link set eth0 promisc offi # 敞开网卡的混个模式 ...

August 11, 2022 · 1 min · jiezi

关于linux:issue关闭shell连接启动的线程跟随关闭

问题形容:应用shell连贯到服务器之后,应用命令./bin/start-micro-quickstart启动druid,启动胜利且能够看到规范输入流的输入。ctrlC之后线程退出。故尝试nohup ./bin/start-micro-quickstart &启动,启动胜利且输入了nohup.out文件,但敞开shell窗口后线程依然退出。 问题剖析:nohup的性能是退出终端不会影响程序的运行。 &指在后盾运行。照下面的命令执行应该是不会再有敞开shell线程退出的状况才对的。通过CSDN同行分享 有个操作终端时的细节:当shell中提醒了nohup胜利后还须要按终端上键盘任意键退回到shell输出命令窗口,而后通过在shell中输出exit来退出终端;而我是每次在nohup执行胜利后间接点关闭程序按钮敞开终端。所以这时候会断掉该命令所对应的session,导致nohup对应的过程被告诉须要一起shutdown。————————————————版权申明:本文为CSDN博主「三岁时超帅哦」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。原文链接:https://blog.csdn.net/nbcsdn/article/details/106543426解决办法:本人写一个启动脚本,这样就不会有问题了,并且也解决了另一个问题,记不住启动命令的问题 #!/bin/bashnohup ./bin/start-micro-quickstart > druid.log 2>&1 &对于lixnu线程细节能够看这篇https://blog.csdn.net/qq_3402...

August 11, 2022 · 1 min · jiezi

关于linux:Linux安装tensorflow

原文链接 装置TensorFlow2: pip install tensorflow==2.0.0-alpha0装置TensorFlow1: pip install --upgrade tensorflow-gpu==1.11.0若要减速,能够思考降级pip后换成国内清华源: pip install --user --upgrade pippip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple顺次输出以下命令查看是否装置胜利: pythonimport tensorflow as tftf.__version__ 能够看到TensorFlow版本为2.0.0    学习更多编程常识,请关注我的公众号: 代码的路

August 11, 2022 · 1 min · jiezi

关于linux:Linux系列之压缩命令

前言Linux 有三个罕用的压缩命令:gzip、bzip2和 tar 。本文介绍它们的区别和简略用法。 压缩文件数据压缩是去除数据中冗余局部的过程,须要通过压缩算法实现。这些算法可分为两类: 无损压缩:保留原始文件中蕴含的所有数据。有损压缩:在进行压缩时删除数据,以便利用更多的压缩。当文件被复原时,它与原始版本不统一,是一个近似值。JPEG和MP3是有损压缩的例子。gzip命令该命令被用来压缩一个或多个文件。它将原始文件替换为压缩版本。 该命令的语法为gzip file 。 咱们能够应用gunzip来解压缩。 gzip有诸多选项,应用命令man gzip查看残缺的列表。 如果想要查看压缩的文本文件的内容,能够应用gunzip -c 或者 zcat进行查看。 bzip2命令该命令与gzip相似,但应用了不同的压缩算法,并以压缩速度为代价实现更高的压缩程度。 用来压缩的命令: bzip2 sample.txt用来解压缩的命令: bunzip2 sample.txt.bz2bzip2也有几个受反对的选项。 归档文件归档是将许多文件收集起来,并将它们打包在一起成为一个大文件的过程。 tar命令tar程序是归档文件中的经典工具。如果你看到一个以.tar为扩展名的文件名,它示意一个一般的tar归档文件,如果它以.tgz结尾,它示意一个被gzip压缩过的归档文件。 tar有几种模式。请记住,模式必须总是先被指定。 模式形容c从文件和/或目录的列表中创立一个归档。x提取一个归档。r将指定的路径名,增加到归档的开端。t列出归档的内容。我曾经创立了几个文件夹和文件,我能够用tar cf playground.tar playground归档它们。 咱们能够应用v选项(verbose)来取得更具体的列表。 咱们能够在一个新的地位提取tar。请记住,除非咱们是以超级用户的身份进行操作,否则从归档中提取的文件和目录的所有权是由执行复原的用户来承当的,而不是原始的所有者。 tar默认应用相对路径名而不是绝对路径名。这是十分有用的,因为它容许咱们提取归档到任何地位,而不是必须提取到它们的原始地位。 你能够通过在tar命令中退出尾部的路径名来限度从归档文件中提取的内容,tar将只复原指定的文件。你也能够指定多个路径名。通配符通常状况下不被反对,但GUN版本的tar通过--wildcards选项反对它们。 tar xf ../playground2.tar --wildcards 'home/azureuser/playground/dir-*/file-A' 古代版本的GNU tar别离通过应用z和j选项,来间接反对gzip和bzip2压缩。 T是-files-from选项的缩写,它向tar指出从哪里读取它的路径名列表,以前咱们通知tar要应用的目录或文件,但当初咱们应用-选项,这让tar晓得要应用规范输出或输入作为要提取或归档的文件。-T选项起初有点令人困惑。这个命令是在说: find playground/ -name 'file-A' 查找playground中与file-A相匹配的所有文件| 将查找到的内容应用管道输入到tartar czf playground 创立一个被gzip压缩的tar,命名为playground.tgz-T - 规范输入的文件,这些文件来自管道查找命令的规范输入。

August 10, 2022 · 1 min · jiezi

关于linux:Linux定时任务

crond 服务详解 ron 是 Linux 下用来周期性的执行某种工作或期待解决某些事件的一个守护过程,能够在无需人工干预的状况下运行作业。 我的环境是3A服务器搭建centos7,提早低 装置 crond 服务yum install cronie crond服务启动systemctl start crondsystemctl enable crond crond服务解析Linux系统调度能够分为两类: 零碎任务调度 | 用户任务调度 (1) 零碎任务调度: 零碎周期性所要执行的工作,比方写缓存数据到硬盘、日志清理等 crond服务在/etc/目录下有一个crontab文件,这个文件就是零碎任务调度的配置文件。配置文件内容解析[root@dev etc]# vim /etc/crontabSHELL=/bin/bash # 指定shellPATH=/sbinL:/bin:/usr/sbin:/usr/bin # 指定了零碎可执行文件门路MAILTO=root # 指定了crond的工作执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则示意不发送工作 执行信息给用户。HOME=/ # 指定执行命令或脚本时应用的主目录 (2) 用户任务调度: 用户定期要执行的工作,比方用户数据备份、定时邮件揭示等 用户能够应用 crontab 工具来定制本人的打算工作。所有用户定义的crontab 文件都被保留在 /var/spool/cron目录中。其文件名与用户名统一。能够通过 crontab 命令增加或者编辑须要定时执行的工作crontab 命令基本参数crond 服务提供 crontab 命令用于设置 crond 服务 crontab -u //设定某个用户的cron服务,个别root用户在执行这个命令的时候须要此参数 crontab -l //列出某个用户cron服务的具体内容 crontab -r //删除某个用户的cron服务 crontab -e //编辑某个用户的cron服务 特殊字符: 代表所有可能的值, :用逗号隔开的值示意一个范畴列表,如 1,2 示意1-2:能够在整数两头用中杠示意一个整数范畴,如 6-8 , 示意6 7 8/ : 能够用正斜线示意工夫距离频率,如 /10 用于minute字段,示意每10分钟执行一次。增加定时工作工作格局: M(分) H(时) D(日) m(月) d(周) commandM : 示意分钟1~59 , 每分钟用或者 /1示意H : 示意小时1~23(0示意0点)D : 示意日期1~31m : 示意月份1~12d : 示意号星期0~6(0示意星期天)command : 要运行的命令 ...

August 10, 2022 · 1 min · jiezi

关于linux:Linux常用的四种配置网卡方式

此办法同样实用于RHEL7一、VIM文本编辑器1、关上编辑器,进入此目录中,cd /etc/sysconfig/network-scripts/ 2、接着输出ls命令,查看网卡名称 3、输出vim ifcfg-ens160,回车进入到编辑模式 输出以上信息即可配置IP地址,重启网卡失效。重启网卡命令为:nmcli connection reload 网卡名称(RHEL8)重启网卡命令为:systemctl restart network(RHEL7) 设施类型: TYPE=Ethernet地址分配模式:BOOTPROTO=static网卡名称: NAME=ens160是否启动: ONBOOT=yesIP地址: IPADDR=192.168.10.20子网掩码: NETMASK=255.255.255.0网关地址: GATEWAY=192.168.10.1DNS地址: DNS1=192.168.10.1 我应用的3A服务器,很不便二、nm-connection-editor(图形界面网络设置工具)1、输出命令:nm-connection-editor回车;2、抉择Ethernet上面的网卡,点击下方齿轮图标设置;3、在General选项下方勾选两个选项,点击IPv4 Settings,在Address里输出IP地址。4、点击Save保留退出并重启网卡失效。 三、通过“网络图标”配置网卡信息1、点击Wired Settings;2、将Wired按钮关上ON,点击齿轮进行设置;3、抉择IPv4,点击Manual,在Address里输出IP地址;4、点击Apply保留,敞开Wired并从新开启后失效。(相当于重启网卡服务) 四、nmtui(字符界面图形模式配置,当零碎没有图形界面时用此命令开启网络配置)1、输出nmtui命令后回车2、通过方向键点击Edit a connection,抉择ens160网卡,点击Edit编辑,在Addresses中输出IP地址/24,右下方点击OK保留退出。

August 10, 2022 · 1 min · jiezi

关于linux:Java-并发编程解析-如何正确理解线程机制中常见的IO模型各自主要用来解决什么问题

天穹之边,浩瀚之挚,眰恦之美; 悟心悟性,虎头蛇尾,惟善惟道! —— 朝槿《朝槿兮年说》 写在结尾 作为一名Java Developer,咱们都分明地晓得,次要从搭载Linux零碎上的服务器程序来说,应用Java编写的是”单过程-多线程"程序,而用C++语言编写的,可能是“单过程-多线程”程序,“多过程-单线程”程序或者是“多过程-多线程”程序。 从肯定水平上 来说,次要因为Java程序并不间接运行在Linux零碎上,而是运行在JVM(Java 虚拟机)上,而一个JVM实例是一个Linux过程,每一个JVM都是一个独立的“沙盒”,JVM之间互相独立,互不通信。 所以,Java程序只能在这一个过程外面,开发多个线程实现并发,而C++间接运行在Linux零碎上,能够间接利用Linux零碎提供的弱小的过程间通信(Inter-Process Communication,IPC),很容易创立多个过程,并实现过程间通信。 当然,咱们能够明确的是,“多过程-多线程”程序是”单过程-多线程"程序和“多过程-单线程”程序的组合体。无论是C++开发者在Linux零碎中应用的pthread,还是Java开发者应用的java.util.concurrent(JUC)库,这些线程机制的都须要肯定的线程I/O模型来做实践撑持。 所以,接下来,咱们就让咱们一起探讨和揭开常见的线程I/O模型的神秘面纱,针对那些盘根错落的枝末细节,能力让咱们更好地理解和正确认识ava畛域中的线程机制。 根本概述I/O模型是指计算机波及I/O操作时应用到的模型。 个别剖析Java畛域中的线程I/O模型是何物时,须要先了解一下什么是I/O模型 ? I/O模型是为解决各种问题而提出的,与之相干的概念有线程(Thread),阻塞(Blocking),非阻塞(Non-Blocking) ,同步(Synchronous) 和异步(Asynchronous) 等。 依照肯定意义上说,I/O模型能够分为阻塞I/O(Blocking IO,BIO),非阻塞I/O(Non-Blocking IO,NIO)两大类。 当然,须要留神的是,计算机的I/O还包含各种设施的I/O,比方网络I/O,磁盘I/O,键盘I/O和鼠标I/O等。 一般来说,程序在执行I/O操作时,须要从内核空间复制数据,然而内核空间的数据须要较长时间的的筹备,由此可能会导致用户空间产生阻塞。 应用程序处于用户空间,一个应用程序对应着一个过程,而过程中蕴含了缓冲区(Buffer),因而这里又对应着一个缓冲I/O(Buffered I/O),其中: 当须要进行I/O操作时,须要通过内核空间来执行相应的操作,比方,内核空间负责于键盘,磁盘,网络等控制器进行通信。当内核空间失去不同设施的控制器发送过去的数据后,会将数据复制到用户空间提供给用户程序应用。由此可见,I/O模型 是人与计算机实现沟通和交换的次要通信模型。 特地留神的是,这里的尤其指出网络I/O模型。因为网络I/O模型存在诸多概念性的货色,有操作系统层面的,也有应用层架构层面的,在不同的层面示意的意思也千差万别,须要咱们认真甄别。 在网路I/O模型中,咱们会常常听到阻塞和非阻塞,同步和异步等相干的概念,而且也会混同这个概念,其中最常见的三个问题: 首先,认为非阻塞I/0(Non-Blocking IO) 和异步I/O(Asynchronous IO) 是同一个概念其次,认为Linux零碎中的select,poll,epoll 等这类I/O多路复用是异步I/O(Asynchronous IO) 模型最初,存在一种I/O模型叫异步阻塞I/O(Asynchronous Blocking IO))模型,实际上并没有这种模型由此可见,其实造成这三个问题的次要起因就是,咱们在探讨的时候,有的是站在Linux操作系统层面说的,有的是站在在Java的JDK层面来说的,甚至有的是站在下层框架(中间件 Netty,Tomcat,Nginx,C++中的asio)封装的模型来说的。 综上所述,针对于不同的层面,须要咱们认真辨析和甄别,这能力让咱们了解得更加透彻。 Linux操作系统中的I/O模型 当初操作系统都是采纳虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。 操心零碎的外围是内核,独立于一般的应用程序,能够拜访受爱护的内存空间,也有拜访底层硬件设施的所有权限。 针对linux操作系统而言,为了保障用户过程不能间接操作内核,保障内核的平安,操心零碎将虚拟空间划分为两局部,一部分为内核空间,一部分为用户空间。其中: 内核空间(Kernel Space):将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核应用,是Linux 内核的运行空间。用户空间(User Space):将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个过程应用,是用户程序的运行空间。每个过程能够通过零碎调用进入内核,因而,Linux内核由零碎内的所有过程共享。 于是,从具体过程的角度来看,每个过程能够领有4G字节的虚拟空间,其中内核空间和用户空间是隔离的,即便用户的程序解体,内核也不受影响。 然而,在 CPU 的所有指令中,有些指令是十分危险的,如果错用,将导致系统解体,比方清内存、设置时钟等。如果容许所有的程序都能够应用这些指令,那么零碎解体的概率将大大增加。 因为CPU 将指令分为特权指令和非特权指令,对于那些危险的指令,只容许操作系统及其相干模块应用,一般应用程序只能应用那些不会造成劫难的指令。比方 Intel 的 CPU 将特权等级分为 4 个级别:Ring0~Ring3。 其实 Linux 零碎只应用了 Ring0 和 Ring3 两个运行级别(Windows 零碎也是一样的)。当过程运行在 Ring3 级别时被称为运行在用户态,而运行在 Ring0 级别时被称为运行在内核态。 ...

August 10, 2022 · 2 min · jiezi

关于linux:nginx-源码编译安装

一、环境信息ubuntu 20.04 编译环境 gcc make perl(编译openssl须要) 二、软件信息nginx-1.22.0 openssl-1.1.1q pcre2-10.40 zlib-1.2.12 三、编译装置openssl 编译生成动态链接文件 生成 make 文件 root@26be474b2382:/data/build/openssl-1.1.1q# ./config --prefix=/data/build/openssl-1.1.1q --openssldir=/data/build/openssl-1.1.1q 执行 make 生成动态链接文件 ( -j 指定线程数) root@26be474b2382:/data/build/openssl-1.1.1q# make -j 8执行胜利,生成 libssl.a libcrypto.a 链接文件 即可 用于nginx 开启 ssl 模块 不用执行 make install 不做装置,最初要删除 编译装置 nginx 创立容许用户和组 useradd -M -s /sbin/nologin nginx (不须要家目录,不登录 ) root@26be474b2382:/data/build/nginx-1.22.0# useradd -M -s /sbin/nologin nginx批改 nginx-1.22.0/auto/lib/openssl/conf 文件 将 CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"替换为 CORE_INCS="$CORE_INCS $OPENSSL/include"CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"CORE_LIBS="$CORE_LIBS $OPENSSL/libssl.a"CORE_LIBS="$CORE_LIBS $OPENSSL/libcrypto.a"编译命令 ...

August 10, 2022 · 1 min · jiezi

关于linux:Linux安装Python3

CentOS7零碎环境自带python2.7.5,但有时咱们我的项目应用的版本可能是3.x以上等等,此时咱们须要在linux中再装置我的项目所需的python版本,此时就波及多版本共存问题了,很多同学在装置多个版本Python时会遇到各种问题,本篇文章针对python多版本共存做了具体装置阐明. 1、下载Python安装包https://www.python.org/downlo...下载最新版本 2、上传到零碎中 3、装置所需依赖包yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 4、解压安装包tar -xzvf Python-3.10.6.tgz -C /usr/local/src/ 5、进入源码包环境cd /usr/local/src/Python-3.10.6/ ./configure --prefix=/usr/local/python3make && make install6、增加环境变量export PATH="$PATH:/usr/local/python3/bin" 重载环境变量source ../profileecho一下是否增加胜利 查看一个版本python3 --version

August 9, 2022 · 1 min · jiezi

关于linux:Linux系统find命令用法

Linux 查找命令find是Linux零碎中最重要和最罕用的命令之一,用于查找与指定参数条件匹配的文件及目录列表。find查找命令能够在各种条件下应用,咱们能够通过权限,用户,组,文件类型,批改日期,大小等多种条件来查找文件。 这里我会以实例的模式向大家阐明find命令的具体用法。find命令的格局很简略,个别分成三个局部:1)find命令;2)搜寻门路(目录能够写多个);3)表达式。对于find命令,最须要学习的是表达式这一段。表达式决定了咱们要找的文件是什么属性的文件,还能够指定一些“动作”,比方将匹配某种条件的文件删除。所以,find命令的外围就是表达式的指定办法。在这里,咱们首先用下表阐明find命令各参数的含意: find命令参数 具体含意-name 按文件名称查找-user 按文件拥有者查找-group 按文件领有组查找-type 按文件类型查找-perm 按文件权限查找-exec 对查找到的文件执行指定动作-maxdepth / -mindepth 指定查找范畴最大/最小为第几级目录-cmin 按文件批改工夫查找-size 按文件大小查找-o / -a / -not 查找条件或/且/非我应用的是3A服务器,提早很低试验步骤:find命令实例1)首先切换到一个空目录/zxy中,建设试验素材:在/zxy中创立5个文件并更改局部文件的拥有者、领有组,创立一个子目录并在该目录中创立5个文件2)按名称查找/zxy中的文件,想要含糊查找时(即表达式中含有*)须要加" " 3)-mindepth x -maxdepth y 指定查找目录范畴为第x级子目录到第y级子目录,这里别离在/zxy的一级子目录、二级子目录中按名称查找文件 4)-a示意条件且查找,-o示意条件或查找,-not示意条件非查找,这里别离查找的是/zxy中文件拥有者为westos或lee的文件、文件拥有者和文件领有组均为westos的文件、文件拥有者为westos但文件领有组不为westos的文件 5)从/dev/zero中别离截取10M、20M、30M的空数据输出到/zxy下的指定文件中,批改文件大小 按文件大小查找/zxy中文件,20M示意查找大小为20M的文件,-20M示意查找大小在20M以内的文件,20M示意查找大小超过20M的文件 6)按批改工夫查找/zxy中文件,1示意批改工夫为1min的文件,-1示意在1min之内批改的文件,+1示意批改工夫超过1min的文件 7)更改文件权限,按文件权限查找/zxy中文件,444示意查找文件权限为444的文件,-444示意查找文件权限u、g、o三位都含有4即读权限r的文件,/444示意查找文件权限u、g、o位(只有)任意一位有读权限r的文件 8)-exec能够对查找进去的文件执行参数后跟的操作,这个参数的常见格局是-exec command ; 前面的分号是用来给find做标记用的,find在解析命令的时候,要辨别给定的参数是要传给本人的还是要传给command命令的,所以find以分号作为要执行命令所有参数的完结标记。下图命令是在/zxy下查找文件权限u、g、o位(只有)任意一位有写权限w的文件,并对查找出的所有文件减去写权限,{}示意find命令查找后果留神: 在应用分号的时候后面要加转译字符\,因为分号也是bash的特殊字符,所以bash会先解释它,后面加上\就能够让bash间接将其传递给find命令,使这个分号由find解释,而不是bash

August 9, 2022 · 1 min · jiezi

关于linux:Linux系统LVM逻辑卷

传统分区的问题: 如果分区空间用满了,只能从新分区。解决方案:加一个逻辑(软件)中间层。以下有三个解决方案(逻辑层): LVM,老牌的,很成熟,能够实现在线动静扩大(不能实现高可用)。stratis,应用精简文件系统来解决空间节约问题。3、vdo 一、LVMfs (file system文件系统)lv (logical volume 逻辑卷):每个卷组中能够定义一个或多个逻辑卷,逻辑卷是位于物理分区上的信息汇合。vg (volume group 卷组):卷组是可用物理硬盘的汇合,能够逻辑地看成一块大硬盘,一个卷组由一个或多个物理卷组成。pv (physical volume物理卷):物理卷是底层真正提供容量,一个物理卷能够是整个磁盘、或磁盘上的分区。PE (Physical Extend),咱们的LVM磁盘治理中PE的默认大小是4M大小(能够指定大小),其实PE就是咱们逻辑卷治理的最根本单位(一旦确定将不能扭转)。比如说我有一个400M的硬盘,那么在将其格式化成PV的时候,其理论就是将这块物理硬盘划分成了100个的PE,因为PE默认的大小就是4M。 dm: device mapper,将一个或多个底层块设施组织成一个逻辑设备的模块; /dev/dm-#1.1、装置lvm工具 yum install lvm2 罕用的 LVM 部署命令 性能/命令 物理卷治理 卷组治理 逻辑卷治理 扫描 pvscan vgscan lvscan 建设 pvcreate vgcreate lvcreate 显示 pvdisplay vgdisplay lvdisplay 删除 pvremove vgremove lvremove 扩大 vgextend lvextend 放大 vgreduce lvreduce 1.2、创立逻辑卷:1.2.1、环境筹备我应用的是3A服务器近程连贯的应用一块硬盘的两个分区 /dev/sdb2 /dev/sdb3或者两个硬盘/dev/sdb 、 /dev/sdc1.2.2、创立pv(Physical volume物理卷)在分区或磁盘内写入一段元数据(标识以后分区或磁盘是一个pv) pvcreate /dev/sdb2 /dev/sdb3 如果报错: Device /dev/sdb excluded by a filter. Device /dev/sdc excluded by a filter. ...

August 9, 2022 · 2 min · jiezi

关于linux:awk的简单使用

August 9, 2022 · 0 min · jiezi

关于linux:Linux系统所有端口

Linux零碎罕用端口0|有效端口,通常用于剖析操作系统 1|传输控制协议端口服务多路开关选择器 2|治理实用程序 3|压缩过程 5|近程作业登录 7|回显 9|抛弃 11|在线用户 13|工夫 17|每日援用 18|音讯发送协定 19|字符发生器 20|FTP文件传输协定(默认数据口) 21|FTP文件传输协定(管制) 22|SSH近程登录协定 23|telnet(终端仿真协定),木马Tiny Telnet Server凋谢此端口 24|预留给集体用邮件系统 25|SMTP服务器所凋谢的端口,用于发送邮件 27|NSW 用户零碎 FE 29|MSG ICP 31|MSG验证,木马Master Paradise、HackersParadise凋谢此端口 33|显示反对协定 35|预留给集体打印机服务 37|工夫 38|路由拜访协定 39|资源定位协定 41|图形 42|主机名服务 43|who is服务 44|MPM(音讯解决模块)标记协定 45|音讯解决模块 46|音讯解决模块(默认发送口) 47|NI FTP 48|数码音频后盾服务 49|TACACS登录主机协定 50|近程邮件查看协定 51|IMP(接口信息处理机)逻辑地址保护 52|施乐网络服务零碎工夫协定 53|dns域名服务器 54|施乐网络服务零碎票据交换 55|ISI图形语言 56|施乐网络服务系统验证 57|预留集体用终端拜访 58|施乐网络服务零碎邮件 59|预留集体文件服务 60|未定义 61|NI邮件 62|异步通信适配器服务 63|whois++ 64|通信接口 65|TACACS数据库服务 66|Oracle SQL*NET 67|疏导程序协定服务端 68|疏导程序协定客户端 69|小型文件传输协定 70|信息检索协定 71|近程作业服务 72|近程作业服务 73|近程作业服务 74|近程作业服务 75|预留给集体拨出服务 76|分布式内部对象存储 77|预留给集体近程作业输出服务 78|修改TCP 79|查问近程主机在线用户等信息 80|http,用于网页浏览,木马Executor凋谢此端口 81|HOST2名称服务 82|传输实用程序 83|模块化智能终端ML设施 84|专用追踪设施 85|模块化智能终端ML设施 86|Micro Focus Cobol编程语言 87|预留给集体终端连贯 88|Kerberros平安认证零碎 89|SU/MIT telnet(终端仿真网关) 90|DNSIX 平安属性标记图 91|MIT Dover假脱机 92|网络打印协定 93|设施控制协议 94|Tivoli对象调度 96|DIXIE协定标准 97|疾速近程虚构文件协定 98|TAC新闻协定 99|后门程序ncx99凋谢此端口 100|未知用处 101|NIC 主机名称服务 102|音讯传输代理 103|Genesis 点对点传输网络 105|信箱名称服务 106|3COM-TSMUX凋谢端口 107|近程Telnet服务 108|SNA 网关拜访服务 109|POP2服务器凋谢此端口,用于接管邮件 110|POP3服务器凋谢此端口,用于接管邮件 111|SUN公司的RPC服务所有端口 112|McIDAS 数据传输协定 113|认证服务,用于甄别TCP连贯的用户 114|音频新闻多点服务 115|简略文件传输服务 116|ANSA REX 告诉 117|UUCP 门路服务 118|SQL 服务 119|NEWS新闻组传输协定,承载USENET通信 121|木马BO jammerkillahV凋谢端口 122|SMAKY网络 123|网络工夫协定,蠕虫病毒会利用,个别敞开 128|GSS X许可认证 129|明码生成器协定 130|Cisco软件凋谢端口 131|Cisco软件凋谢端口 132|Cisco软件凋谢端口 133|统计服务 134|INGRES-网络服务 135|DCOM服务,冲击波病毒利用,不能敞开 136|命名零碎 137|NETBIOS协定利用,为共享凋谢 138|NETBIOS协定利用,为共享凋谢 139|NETBIOS协定利用,为共享凋谢 140|EMFIS数据服务 141|EMFIS管制服务 143|Interim邮件拜访协定 144|UMA软件凋谢端口 145|UAAC协定 149|AED 512仿真服务 150|SQL(结构化查询语言)-网络 152|后盾文件传输协定 156|SQL(结构化查询语言)服务 158|PC邮件服务器 159|NSS-路由 160|SGMP-陷阱 161|简略网络管理协定 162|SNMP陷阱 163|CMIP/TCP 治理 164|CMIP/TCP 代理 166|Sirius零碎 169|发送 170|网络附言 177|x显示治理控制协议,入侵者通过它拜访X-windows操作台 178|NextStep Window 服务 179|边界网关协定 180|图表 181|对立 184|OC服务器 185|近程-KIS 186|KIS 协定 187|利用通信接口 189|队列文件传输 190|网关进入控制协议 191|Prospero 目录服务 192|OSU 网络监视系统 193|Spider 近程控制协议 194|多线交谈协定 197|目录地址服务 198|目录地址服务监视器 200|IBM系统资源控制器 201|AppleTalk(Mac机所用的网络协议)路由保障 202|AppleTalk(Mac机所用的网络协议)Name Binding 203|AppleTalk(Mac机所用的网络协议)未用端口 204|AppleTalk(Mac机所用的网络协议)回显 205|AppleTalk(Mac机所用的网络协议)未用端口 206|AppleTalk(Mac机所用的网络协议)区信息 207|AppleTalk(Mac机所用的网络协议)未用端口 208|AppleTalk(Mac机所用的网络协议)未用端口 209|疾速邮件传输协定 210|ANSI(美国国家标准协会)Z39.50 211|Texas Instruments 914C/G终端 213|IPX(以太网所用的协定) 218|Netix音讯记录协定 219|Unisys ARPs 220|交互邮件拜访协定 v3 223|证书散发核心 224|masq拨号器 241|预留端口 (224-241) 245|链接 246|显示零碎协定 257|平安电子交易系统 258|Yak Winsock 集体聊天 259|无效短程遥控 260|凋谢端口 261|IIOP 基于TLS/SSL的命名服务 266|SCSI(小型计算机系统接口)on ST 267|Tobit David服务层 268|Tobit David复制 281|集体连结 282|Cable端口A/X 286|FXP通信 308|Novastor备份 313|Magenta逻辑 318|PKIX工夫标记 333|Texar平安端口 344|Prospero数据存取协定 345|Perf剖析工作台 346|Zebra服务器 347|Fatmen服务器 348|Cabletron治理协定 358|Shrink可上网家电协定 359|网络安全风险管理协定 362|SRS发送 363|RSVP隧道 372|列表解决 373|Legend公司 374|Legend公司 376|AmigaEnvoy网络查问协定 377|NEC公司 378|NEC公司 379|TIA/EIA/IS-99调制解调器客户端 380|TIA/EIA/IS-99调制解调器服务器 381|hp(惠普)性能数据收集器 382|hp(惠普)性能数据管制节点 383|hp(惠普)性能数据警报治理 384|近程网络服务器零碎 385|IBM应用程序 386|ASA信息路由器定义文件. 387|Appletalk更新路由. 389|轻型目录拜访协定 395|网络监督控制协议 396|Novell(美国Novell公司)Netware(Novell公司出的网络操作系统)over IP 400|工作站解决方案 401|继续电源 402|Genie协定 406|交互式邮件反对协定 408|Prospero资源管理程序 409|Prospero资源节点治理. 410|DEC(数据设施公司)近程调试协定 411|近程MT协定 412|陷阱协定端口 413|存储管理服务协定 414|信息查问 415|B网络 423|IBM操作打算和管制开始 424|IBM操作打算和管制追踪 425|智能计算机辅助设计 427|服务起地位 434|挪动ip代理 435|挪动ip治理 443|基于TLS/SSL的网页浏览端口,能提供加密和通过平安端口传输的另一种HTTP 444|简单网络内存分页协定 445|Microsoft-DS,为共享凋谢,震荡波病毒利用,个别应敞开 446|DDM-近程关系数据库拜访 447|DDM-分布式文件治理 448|DDM-应用平安拜访近程数据库 456|木马HACKERS PARADISE凋谢此端口 458|apple quick time软件凋谢端口 459|ampr-rcmd命令 464|k明码服务 469|播送控制协议 470|scx-代理 472|ljk-登陆 481|Ph服务 487|简略异步文件传输 489|nest-协定 491|go-登陆 499|ISO ILL协定 500|Internet密钥替换,Lsass凋谢端口,不能敞开 509|陷阱 510|FirstClass协定 512|近程过程执行 513|远程登陆 514|cmd命令 515|spooler 516|可视化数据 518|交谈 519|unix工夫 520|扩大文件名称服务器 525|工夫服务 526|新日期 529|在线聊天零碎服务 530|近程过程调用 531|聊天 532|读新闻 533|紧急播送端口 534|MegaMedia治理端 537|网络流媒体协定 542|商业 543|Kerberos(软件)v4/v5 544|krcmd命令 546|DHCPv6 客户端 547|DHCPv6 服务器 552|设施共享 554|Real Time Stream控制协议 555|木马PhAse1.0、Stealth Spy、IniKiller凋谢此端口 556|远距离文件服务器 563|基于TLS/SSL的网络新闻传输协定 564|plan 9文件服务 565|whoami查问 566|streettalk 567|banyan-rpc(近程过程调用) 568|DPA成员资格 569|MSN成员资格 570|demon(调试监督程序) 571|udemon(调试监督程序) 572|声纳 573|banyan-贵宾 574|FTP软件代理零碎 581|Bundle Discovery 协定 582|SCC平安 583|Philips视频会议 584|密钥服务器 585|IMAP4+SSL (Use 993 instead) 586|明码更改 587|申请 589|Eye连结 595|CAB协定 597|PTC名称服务 598|SCO网络服务器治理3 599|Aeolon Core协定 600|Sun IPC(过程间通信)服务器 601|牢靠零碎登陆服务 604|通道 606|Cray对立资源管理 608|发送人-传递/提供 文件传输器 609|npmp-陷阱 610|npmp-本地 611|npmp-gui( 图形用户界面) 612|HMMP指引 613|HMMP操作 614|SSL(加密套接字协定层)shell(壳) 615|Internet配置管理 616|SCO(Unix零碎)系统管理服务器 617|SCO桌面治理服务器 619|Compaq(康柏公司)EVM 620|SCO服务器治理 623|ASF远程管理控制协议 624|Crypto治理 631|IPP (Internet打印协定) 633|服务更新(Sterling软件) 637|局域网服务器 641|repcmd命令 647|DHCP(动静主机配置协定)Failover 648|注册注销协定(RRP) 649|Cadview-3d软件协定 666|木马Attack FTP、Satanz Backdoor凋谢此端口 808|ccproxy http/gopher/ftp (over http)协定 1001|木马Silencer,WebEx凋谢端口 1011|木马Doly凋谢端口 1024|动静端口的开始,木马yai凋谢端口 1025|inetinfo.exe(互联网信息服务)木马netspy凋谢端口 1026|inetinfo.exe(互联网信息服务) 1027|应用层网关服务 1030|应用层网关服务 1031|BBN IAD 1033|本地网络信息端口 1034|同步告诉 1036|平安局部传输协定 1070|木马Psyber Stream,Streaming Audio凋谢端口 1071|网络服务凋谢端口 1074|网络服务凋谢端口 1080|Socks这一协定以通道形式穿过防火墙,容许防火墙前面的人通过一个IP地址拜访INTERNET 1110|卡巴斯基反病毒软件凋谢此端口 1125|卡巴斯基反病毒软件凋谢此端口 1203|许可证失效端口 1204|登陆申请监听端口 1206|Anthony数据端口 1222|SNI R&D网络端口 1233|广泛的附录服务器端口 1234|木马SubSeven2.0、Ultors Trojan凋谢此端口 1243|木马SubSeven1.0/1.9凋谢此端口 1245|木马Vodoo,GabanBus,NetBus,Vodoo凋谢此端口 1273|EMC-网关端口 1289|JWalk服务器端口 1290|WinJa服务器端口 1333|明码策略(网络服务)(svchost.exe) 1334|网络服务(svchost.exe) 1335|数字公正协定 1336|即时聊天协定(svchost.exe) 1349|注册网络协议端口 1350|注册网络协议端口 1371|富士通配置协定端口 1372|富士通配置协定端口 1374|EPI软件系统端口 1376|IBM集体-集体软件端口 1377|Cichlid许可证治理端口 1378|Elan许可证治理端口 1380|Telesis网络许可证治理端口 1381|苹果网络许可证治理端口 1386|CheckSum 许可证治理端口 1387|零碎凋谢端口(rundll32.exe) 1388|数据库高速缓存端口 1389|文档治理端口 1390|存储控制器端口 1391|存储器存取服务器端口 1392|打印治理端口 1393|网络登陆服务器端口 1394|网络登陆客户端端口 1395|PC工作站管理软件端口 1396|DVL沉闷邮件端口 1397|音频沉闷邮件端口 1398|视频沉闷邮件端口 1399|Cadkey许可证治理端口 1433|Microsoft的SQL服务凋谢端口 1434|Microsoft的SQL服务监督端口 1492|木马FTP99CMP凋谢此端口 1509|木马Psyber Streaming Server凋谢此端口 1512|Microsoft Windows网络名称服务 1524|许多攻打脚本装置一个后门SHELL于这个端口 1600|木马Shivka-Burka凋谢此端口 1645|近程认证拨号用户服务 1701|第2层隧道协定 1731|NetMeeting音频调用管制 1801|Microsoft音讯队列服务器 1807|木马SpySender凋谢此端口 1900|可被利用ddos攻打,个别敞开 1912|金山词霸凋谢此端口 1981|木马ShockRave凋谢此端口 1999|木马BackDoor,yai凋谢此端口 2000|木马GirlFriend 1.3、Millenium 1.0凋谢此端口 2001|木马Millenium 1.0、Trojan Cow,黑洞2001凋谢此端口 2003|GNU 查问 2023|木马Pass Ripper凋谢此端口 2049|NFS程序常运行于此端口 2115|木马Bugs凋谢此端口 2140|木马Deep Throat 1.0/3.0,The Invasor凋谢此端口 2500|利用固定端口会话复制的RPC客户 2504|网络均衡负荷 2565|木马Striker凋谢此端口 2583|木马Wincrash 2.0凋谢此端口 2801|木马Phineas Phucker凋谢此端口 2847|诺顿反病毒服务凋谢此端口 3024|木马WinCrash凋谢此端口 3128|squid http代理服务器凋谢此端口 3129|木马Master Paradise凋谢此端口 3150|木马The Invasor,deep throat凋谢此端口 3210|木马SchoolBus凋谢此端口 3306|MySQL凋谢此端口 3333|木马Prosiak凋谢此端口 3389|WINDOWS 2000终端凋谢此端口 3456|inetinfo.exe(互联网信息服务)凋谢端口,VAT默认数据 3457|VAT默认管制 3527|Microsoft音讯队列服务器 3700|木马Portal of Doom凋谢此端口 3996|木马RemoteAnything凋谢此端口 4000|腾讯QQ客户端凋谢此端口 4060|木马RemoteAnything凋谢此端口 4092|木马WinCrash凋谢此端口 4133|NUTS Bootp服务器 4134|NIFTY-Serve HMI协定 4141|Workflow服务器 4142|文档服务器 4143|文档复制 4145|VVR管制 4321|近程Who Is查问 4333|微型sql服务器 4349|文件系统端口记录 4350|网络设备 4351|PLCY网络服务 4453|NSS警报治理 4454|NSS代理治理 4455|PR聊天用户 4456|PR聊天服务器 4457|PR注册 4480|Proxy+ HTTP代理端口 4500|Lsass凋谢端口,不能敞开 4547|Lanner许可治理 4555|RSIP端口 4590|木马ICQTrojan凋谢此端口 4672|近程文件拜访服务器 4752|简单网络音频服务器 4800|Icona疾速音讯零碎 4801|Icona网络聊天 4802|Icona许可零碎服务器 4848|App服务器-Admin HTTP 4849|App服务器-Admin HTTPS 4950|木马IcqTrojan凋谢5000端口 5000|木马blazer5,Sockets de Troie凋谢5000端口,个别应敞开 5001|木马Sockets de Troie凋谢5001端口 5006|wsm服务器 5007|wsm服务器ssl 5022|mice服务器 5050|多媒体会议控制协议 5051|ITA代理 5052|ITA治理 5137|MyCTS服务器端口 5150|Ascend通道治理协定 5154|BZFlag游戏服务器 5190|America-Online(美国在线) 5191|AmericaOnline1(美国在线) 5192|AmericaOnline2(美国在线) 5193|AmericaOnline3(美国在线) 5222|Jabber客户端连贯 5225|HP(惠普公司)服务器 5226|HP(惠普公司) 5232|SGI绘图软件端口 5250|i网关 5264|3Com网络端口1 5265|3Com网络端口2 5269|Jabber服务器连贯 5306|Sun MC组 5321|木马Sockets de Troie凋谢5321端口 5400|木马Blade Runner凋谢此端口 5401|木马Blade Runner凋谢此端口 5402|木马Blade Runner凋谢此端口 5405|网络反对 5409|Salient数据服务器 5410|Salient用户治理 5415|NS服务器 5416|SNS网关 5417|SNS代理 5421|网络反对2 5423|虚构用户 5427|SCO-PEER-TTA(Unix零碎) 5432|PostgreSQL数据库 5550|木马xtcp凋谢此端口 5569|木马Robo-Hack凋谢此端口 5599|公司近程平安装置 5600|公司平安治理 5601|公司平安代理 5631|pcANYWHERE(软件)数据 5632|pcANYWHERE(软件)数据 5673|JACL音讯服务器 5675|V5UA利用端口 5676|RA治理 5678|近程复制代理连贯 5679|间接电缆连贯 5720|MS-执照 5729|Openmail用户代理层 5730|Steltor‘s日历拜访 5731|netscape(网景)suiteware 5732|netscape(网景)suiteware 5742|木马WinCrash1.03凋谢此端口 5745|fcopy-服务器 5746|fcopys-服务器 5755|OpenMail(邮件服务器)桌面网关服务器 5757|OpenMail(邮件服务器)X.500目录服务器 5766|OpenMail (邮件服务器)NewMail服务器 5767|OpenMail (邮件服务器)申请代理曾(平安) 5768|OpenMail(邮件服务器) CMTS服务器 5777|DALI端口 5800|虚构网络计算 5801|虚构网络计算 5802|虚构网络计算HTTP拜访, d 5803|虚构网络计算HTTP拜访, d 5900|虚构网络计算机显示0 5901|虚构网络计算机显示1 5902|虚构网络计算机显示2 5903|虚构网络计算机显示3 6000|X Window 零碎 6001|X Window 服务器 6002|X Window 服务器 6003|X Window 服务器 6004|X Window 服务器 6005|X Window 服务器 6006|X Window 服务器 6007|X Window 服务器 6008|X Window 服务器 6009|X Window 服务器 6010|X Window 零碎 6011|X Window 零碎 6012|X Window 零碎 6013|X Window 零碎 6014|X Window 零碎 6015|X Window 零碎 6016|X Window 零碎 6017|X Window 零碎 6018|X Window 零碎 6019|X Window 零碎 6020|X Window 零碎 6021|X Window 零碎 6022|X Window 零碎 6023|X Window 零碎 6024|X Window 零碎 6025|X Window 零碎 6026|X Window 零碎 6027|X Window 零碎 6028|X Window 零碎 6029|X Window 零碎 6030|X Window 零碎 6031|X Window 零碎 6032|X Window 零碎 6033|X Window 零碎 6034|X Window 零碎 6035|X Window 零碎 6036|X Window 零碎 6037|X Window 零碎 6038|X Window 零碎 6039|X Window 零碎 6040|X Window 零碎 6041|X Window 零碎 6042|X Window 零碎 6043|X Window 零碎 6044|X Window 零碎 6045|X Window 零碎 6046|X Window 零碎 6047|X Window 零碎 6048|X Window 零碎 6049|X Window 零碎 6050|ARCserve 代理 6051|X Window 零碎 6052|X Window 零碎 6053|X Window 零碎 6054|X Window 零碎 6055|X Window 零碎 6056|X Window 零碎 6057|X Window 零碎 6058|X Window 零碎 6059|X Window 零碎 6060|X Window 零碎 6061|X Window 零碎 6062|X Window 零碎 6063|X Window 零碎 6267|木马广外女生凋谢此端口 6400|木马The tHing凋谢此端口 6401|seagate(美国希捷公司) 6455|SKIP证书承受 6456|SKIP证书发送 6471|LVision许可管理器 6505|BoKS治理私人端口 6506|BoKS治理公共端口 6507|BoKS Dir服务器,私人端口 6508|BoKS Dir服务器,公共端口 6509|MGCS-MFP端口 6510|MCER端口 6566|SANE管制端口 6580|Parsec主服务器 6581|Parsec对等网络 6582|Parsec游戏服务器 6588|AnalogX HTTP代理端口 6631|Mitchell电信主机 6667|Internet多线交谈 6668|Internet多线交谈 6670|木马Deep Throat凋谢此端口 6671|木马Deep Throat 3.0凋谢此端口 6699|Napster文件(MP3)共享服务 6701|KTI/ICAD名称服务器 6788|SMC软件-HTTP 6789|SMC软件-HTTPS 6841|Netmo软件默认凋谢端口 6842|Netmo HTTP服务 6883|木马DeltaSource凋谢此端口 6939|木马Indoctrination凋谢此端口 6969|木马Gatecrasher、Priority凋谢此端口 6970|real音频凋谢此端口 7000|木马Remote Grab凋谢此端口 7002|使用者& 组 数据库 7003|音量定位数据库 7004|AFS/Kerberos认证服务 7005|音量治理服务 7006|谬误解释服务 7007|Basic监督过程 7008|服务器-服务器更新程序 7009|近程缓存治理服务 7011|Talon软件发现端口 7012|Talon软件引擎 7013|Microtalon发现 7014|Microtalon通信 7015|Talon网络服务器 7020|DP服务 7021|DP服务治理 7100|X字型服务 7121|虚构原型许可证治理 7300|木马NetMonitor凋谢此端口 7301|木马NetMonitor凋谢此端口 7306|木马NetMonitor,NetSpy1.0凋谢此端口 7307|木马NetMonitor凋谢此端口 7308|木马NetMonitor凋谢此端口 7323|Sygate服务器端 7511|木马聪慧基因凋谢此端口 7588|Sun许可证治理 7597|木马Quaz凋谢此端口 7626|木马冰河凋谢此端口 7633|PMDF治理 7674|iMQ SSL通道 7675|iMQ通道 7676|木马Giscier凋谢此端口 7720|Med图象入口 7743|Sakura脚本传递协定 7789|木马ICKiller凋谢此端口 7797|Propel连接器端口 7798|Propel编码器端口 8000|腾讯QQ服务器端凋谢此端口 8001|VCOM通道 8007|Apache(相似iis)jServ协定1.x 8008|HTTP Alternate 8009|Apache(相似iis)JServ协定1.3 8010|Wingate代理凋谢此端口 8011|木马way2.4凋谢此端口 8022|OA-零碎 8080|WWW代理凋谢此端口 8081|ICECap控制台 8082|BlackIce(避免黑客软件)警报发送到此端口 8118|Privoxy HTTP代理 8121|Apollo数据端口 8122|Apollo软件治理端口 8181|Imail 8225|木马灰鸽子凋谢此端口 8311|木马初恋情人凋谢此端口 8351|服务器寻找 8416|eSpeech Session协定 8417|eSpeech RTP协定 8473|虚构点对点 8668|网络地址转换 8786|Message客户端 8787|Message服务器 8954|Cumulus治理端口 9000|CS监听 9001|ETL服务治理 9002|动静id验证 9021|Pangolin验证 9022|PrivateArk近程代理 9023|平安网络登陆-1 9024|平安网络登陆-2 9025|平安网络登陆-3 9026|平安网络登陆-4 9101|Bacula控制器 9102|Bacula文件后盾 9103|Bacula存储邮件后盾 9111|DragonIDS控制台 9217|FSC通信端口 9281|软件传送端口1 9282|软件传送端口2 9346|C技术监听 9400|木马Incommand 1.0凋谢此端口 9401|木马Incommand 1.0凋谢此端口 9402|木马Incommand 1.0凋谢此端口 9594|信息系统 9595|Ping Discovery服务 9800|WebDav源端口 9801|Sakura脚本转移协定-2 9802|WebDAV Source TLS/SSL 9872|木马Portal of Doom凋谢此端口 9873|木马Portal of Doom凋谢此端口 9874|木马Portal of Doom凋谢此端口 9875|木马Portal of Doom凋谢此端口 9899|木马InIkiller凋谢此端口 9909|域名工夫 9911|SYPECom传送协定 9989|木马iNi-Killer凋谢此端口 9990|OSM Applet程序服务器 9991|OSM事件服务器 10000|网络数据管理协定 10001|SCP结构端口 10005|平安远程登陆 10008|Octopus多路器 10067|木马iNi-Killer凋谢此端口 10113|NetIQ端点 10115|NetIQ端点 10116|NetIQVoIP鉴定器 10167|木马iNi-Killer凋谢此端口 11000|木马SennaSpy凋谢此端口 11113|金山词霸凋谢此端口 11233|木马Progenic trojan凋谢此端口 12076|木马Telecommando凋谢此端口 12223|木马Hack‘99 KeyLogger凋谢此端口 12345|木马NetBus1.60/1.70、GabanBus凋谢此端口 12346|木马NetBus1.60/1.70、GabanBus凋谢此端口 12361|木马Whack-a-mole凋谢此端口 13223|PowWow 客户端,是Tribal Voice的聊天程序 13224|PowWow 服务器,是Tribal Voice的聊天程序 16959|木马Subseven凋谢此端口 16969|木马Priority凋谢此端口 17027|内向连贯 19191|木马蓝色火焰凋谢此端口 20000|木马Millennium凋谢此端口 20001|木马Millennium凋谢此端口 20034|木马NetBus Pro凋谢此端口 21554|木马GirlFriend凋谢此端口 22222|木马Prosiak凋谢此端口 23444|木马网络公牛凋谢此端口 23456|木马Evil FTP、Ugly FTP凋谢此端口 25793|Vocaltec地址服务器 26262|K3软件-服务器 26263|K3软件客户端 26274|木马Delta凋谢此端口 27374|木马Subseven 2.1凋谢此端口 30100|木马NetSphere凋谢此端口 30129|木马Masters Paradise凋谢此端口 30303|木马Socket23凋谢此端口 30999|木马Kuang凋谢此端口 31337|木马BO(Back Orifice)凋谢此端口 31338|木马BO(Back Orifice),DeepBO凋谢此端口 31339|木马NetSpy DK凋谢此端口 31666|木马BOWhack凋谢此端口 31789|Hack-a-tack 32770|sun solaris RPC服务凋谢此端口 33333|木马Prosiak凋谢此端口 33434|路由跟踪 34324|木马Tiny Telnet Server、BigGluck、TN凋谢此端口 36865|KastenX软件端口 38201|Galaxy7软件数据通道 39681|TurboNote默认端口 40412|木马The Spy凋谢此端口 40421|木马Masters Paradise凋谢此端口 40422|木马Masters Paradise凋谢此端口 40423|木马Masters Paradise凋谢此端口 40426|木马Masters Paradise凋谢此端口 40843|CSCC 防火墙 43210|木马SchoolBus 1.0/2.0凋谢此端口 43190|IP-PROVISION 44321|PCP服务器(pmcd) 44322|PCP服务器(pmcd)代理 44334|微型集体防火墙端口 44442|ColdFusion软件端口 44443|ColdFusion软件端口 44445|木马Happypig凋谢此端口 45576|E代时光业余代理凋谢此端口 47262|木马Delta凋谢此端口 47624|Direct Play服务器 47806|ALC协定 48003|Nimbus网关 50505|木马Sockets de Troie凋谢此端口 50766|木马Fore凋谢此端口 53001|木马Remote Windows Shutdown凋谢此端口 54320|木马bo2000凋谢此端口 54321|木马SchoolBus 1.0/2.0凋谢此端口 61466|木马Telecommando凋谢此端口 65000|木马Devil 1.03凋谢此端口 65301|PC Anywhere软件凋谢端口 ...

August 8, 2022 · 6 min · jiezi

关于linux:Linux使用netstat查看网络状态

查看本机的网络状态。应用netstat查看网络状态。显示零碎端口应用状况。UDP类型的端口。TCP类型的端口。只显示所有监听端口。只显示所有监听tcp端口。 命令应用举例 命令阐明netstat -anp显示零碎端口应用状况netstat -nuplUDP类型的端口netstat -ntplTCP类型的端口netstat -l只显示所有监听端口netstat -lt只显示所有监听tcp端口输出命令后,输入里蕴含着协定、本地地址、内部地址及状态信息 ProtoLocal AddressForeign AddressState协定本地地址内部地址状态各属性将在后文介绍。 组合命令 netstat -na | grep ESTABLISHED | wc -l 统计已连贯上的,状态为"established" 显示零碎端口应用状况 netstat -anp $ netstat -anp (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:3478 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:3478 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN - tcp 0 0 172.16.16.13:37432 169.254.0.55:5574 ESTABLISHED - tcp 0 600 172.16.16.13:22 222.216.195.223:17351 ESTABLISHED - tcp6 0 0 :::9010 :::* LISTEN 8708/main.js Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ] DGRAM 19037 1744/systemd /run/user/500/systemd/notify unix 2 [ ACC ] STREAM LISTENING 13532 - /var/lib/lxd/unix.socket unix 2 [ ACC ] STREAM LISTENING 19038 1744/systemd /run/user/500/systemd/private unix 2 [ ACC ] SEQPACKET LISTENING 9722 - /run/udev/control unix 2 [ ] DGRAM 71848026 - /usr/local/qcloud/YunJing/conf/ydrpc_3 unix 3 [ ] DGRAM 9712 - /run/systemd/notify查看UDP类型的端口 netstat -nupl $ netstat -nupl (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:3478 0.0.0.0:* - udp 0 0 0.0.0.0:3478 0.0.0.0:* - udp 0 0 0.0.0.0:68 0.0.0.0:* - udp 0 0 172.16.16.13:123 0.0.0.0:* - udp 0 0 127.0.0.1:123 0.0.0.0:* - udp 0 0 0.0.0.0:123 0.0.0.0:* - udp6 0 0 :::123 :::* - 查看TCP类型的端口 netstat -nupl $ netstat -ntpl (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN - tcp6 0 0 :::9010 :::* LISTEN 8708/main.js tcp6 0 0 :::22 :::* LISTEN - 只显示所有监听端口 netstat -l $ netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:http *:* LISTEN tcp 0 0 *:3478 *:* LISTEN tcp 0 0 *:3478 *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:https *:* LISTEN tcp6 0 0 [::]:9010 [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN udp 0 0 *:3478 *:* udp 0 0 *:3478 *:* udp 0 0 *:bootpc *:* udp 0 0 172.16.16.13:ntp *:* udp 0 0 localhost.localdoma:ntp *:* udp 0 0 *:ntp *:* udp6 0 0 [::]:ntp [::]:* Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 13532 /var/lib/lxd/unix.socket unix 2 [ ACC ] STREAM LISTENING 19038 /run/user/500/systemd/private只显示所有监听tcp端口 netstat -lt局部后果 ...

August 8, 2022 · 3 min · jiezi

关于linux:Linux系列之重定向操作

前言I/O重定向容许咱们将命令的输出和输入重定向到文件中,以及将多个命令连贯到一起成为管道。本文就来介绍无关重定向的常识。 规范输出、输入、谬误输入包含两种类型: 程序的后果。被称为规范输入或者stdout。状态以及错误信息。被称为规范谬误或者stderr 。除此之外,一些程序从规范输出stdin中获取输出。默认状况下,规范输出与键盘相连接。 默认状况下,stdout和stderr 都被链接到屏幕上,而不是保留到文件中。重定向容许咱们扭转输入的去向和输出的起源。 重定向规范输入为了重定向到其余文件而不是屏幕上,咱们应用>重定向操作符,前面追随文件的名称。 举例来说,咱们能够应用重定向操作符来通知shell,发送ls命令的输入到ls-output.txt文件中,而不是屏幕上。 ls -l /usr/bin > ls-output.txt 咱们能够看到,ls命令的输入没有发送到屏幕上,而是发送ls-output.txt到文件中。 须要留神的是,应用>重定向操作符会笼罩指标文件。如果要追加内容,咱们能够应用>>重定向操作符。 重定向规范谬误为了重定向stderr,咱们必须援用其文件描述符。shell将stdout、stdin和stderr别离作为文件描述符0、1和2的外部援用。咱们能够用这个符号重定向stderr。 ls -l /bin/usr 2> ls-error.txt重定向到同一文件重定向规范输入和规范谬误到同一文件中,共有两种形式能够实现。首先让咱们应用传统办法,它实用于老版本的shell : ls -l /bin/usr > ls-output.txt 2>&1首先,咱们将stdout重定向到ls-output.txt文件,而后用2>&1的符号将文件描述符2 stderr重定向到文件描述符1 stdout 中。 须要留神重定向的程序,重定向stderr必须总是在重定向stdout之后产生。 最近版本的bash提供了第二种办法,该办法让执行这种组合重定向更精简。 ls -l /bin/usr &> ls-output.txt你依然能够应用>>进行追加操作。 解决不须要的输入零碎提供了一种办法,能够将输入重定向到一个叫做/dev/null的非凡文件,该文件通常被称为比特桶(bit bucket)。它承受输出,但不做任何解决。 ls -l /bin/usr 2> /dev/null重定向规范输出还有< 重定向操作符,咱们能够将stdin的起源从键盘改为文件。 cat < sample.txt管道应用管道操作符| ,一个命令的stout能够通过管道进入另一个命令的stdin,less就是一个例子: ls -l /usr/bin | less能够把几个命令放在一起,组成一个流水线。应用这种形式的命令被称为过滤器。过滤器承受输出,以某种形式扭转它,而后输入它。 tee命令tee命令读取stdin并将其复制到stdout和一个或多个文件中。 ls /usr/bin | tee ls.txt | grep zip

August 7, 2022 · 1 min · jiezi

关于linux:Linux挂载硬盘

原文链接 1.查看linux下的硬盘:df -h没有发现要挂载的硬盘。 2.查看零碎检测的硬盘:lsblk 看到 sda1 存在。 3.挂载:格式化: sudo mkfs -t ext4 /dev/sda1创立挂载目录: sudo mkdir /data把空间挂在/data : sudo mount /dev/sda1 /data再次应用 df -h 能够看到硬盘已存在: 4.将以下信息增加到 /etc/fstab 中:/dev/sda1 /data ext4 defaults 0 0若无奈增加,则须要批改文件权限。 批改文件权限具体介绍 立刻执行 fstab 的内容: sudo mount -a不报错则挂载胜利。 5.若硬盘无法访问:如呈现报错: permission denied 同样批改文件权限即可: sudo chmod 777 /media/sda16.若须要解除挂载:sudo umount /dev/sda17.若须要长期挂载:只是把硬盘插上,开机时可能会主动挂载硬盘,然而这样硬盘无奈应用,须要先解除挂载: sudo umount /dev/sdd1从新挂载: sudo mount /dev/sdd1 /snowstorm   学习更多编程常识,请关注我的公众号: 代码的路

August 6, 2022 · 1 min · jiezi

关于linux:安全加固Linux系统的方法

1.敞开没有用的端口和服务任何网络连接都是通过凋谢的利用端口来实现的,如果咱们尽可能少地凋谢端口,就使网络攻击变得无从下手,从而大大减少了攻击者胜利的机会。能够应用该办法敞开不必要的端口netstat -ntl #查看凋谢端口 lsof -i:21 #查看端口21是哪个服务 chkconfig pure-ftpd off #敞开相应服务主动启动状态 2.平安和配置一个防火墙一个配置适当的防火墙不仅是零碎有效应对外部攻打的第一道防线,也是最重要的一道防线。在新零碎第一次连贯lnternet之前,防火墙就应该被装置并且配置好。防火墙配置成拒绝接受所有数据包,而后再关上容许接管的数据包,将有利于零碎的平安 3.删除不必的软件包在进行零碎布局时,总的准则是将不须要的服务一律去掉。默认的Linux就是一个弱小的零碎,运行了很多的服务。但有许多服务是不须要的,很容易引起平安危险。这个文件就是/etc/xinetd.conf,它制订了/usr/sbin/xinetd将要监听的服务,你可能只须要其中的一个:ftp,其余的相似:Telnet、shell、login等,除非你真的想用它,否则通通敞开。 4.明码治理口令的长度个别不要少于8个字符,口令的组成应以无规则的大小写字母、数字和符号相结合,严格防止用英语单词或词组等设置口令,而且各用户的口令应该养成定期更换的习惯。另外,口令的爱护还波及到对/etc/passwd和/etc/shadow文件的爱护,必须做到只有系统管理员能力拜访这2个文件 5.分区治理一个潜在的攻打,它首先就会尝试缓冲区溢出。在过来的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种模式了。更为严重的是,缓冲区溢出破绽占了近程网络攻击的绝大多数,这种攻打能够轻易使得一个匿名的lnternet用户有机会取得一台主机的局部或全副的控制权。为了避免此类攻打,咱们从装置零碎时就应该留神。如果用root分区记录数据,如log文件,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统奔溃。所以倡议为/var开拓独自的分区,用来寄存日志和邮件,以防止root分区被溢出。最好为非凡的应用程序独自开一个分区,特地是能够产生大量日志的程序,还倡议为/home独自分一个区,这样他们就不能填满/分区了,从而就防止了局部针对Linux分区溢出的歹意攻打。

August 5, 2022 · 1 min · jiezi

关于linux:Linux系统防火墙限制ssh连接

我的环境应用3A云服务器搭建的centos7本文应用自带的防火墙服务firewalld.service来对拜访进行管制,次要讲限度ssh连贯拜访1、先查看防火墙有没有运行,绿色代表已启动了systemctl status firewalld 如果是灰色,先启动防火墙systemctl start firewalld 2.查看目前防火墙失效的策略,如果有对于ssh的就删除 firewall-cmd --zone=public --list-rich-rules 空洞无物删除拜访限度的ssh服务 firewall-cmd --permanent --remove-service=ssh 3.配置容许拜访ssh服务的控制策略执行上面的命令,容许ip或ip段拜访22端口的ssh服务,例如上面命令执行后,将容许192.168.5.0/24这个ip段容许拜访ssh服务,留神端口要正确 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.5.0/24" port protocol="tcp" port="22" accept' 4.重载防火墙配置,使其失效 firewall-cmd --reload 再查看目前防火墙失效的策略, firewall-cmd --zone=public --list-rich-rules能够看到他曾经失效了 拓展命令:手动放行指定端口 firewall-cmd --permanent --add-port=3306/tcp删除放行的端口 firewall-cmd --permanent --remove-port=3306/tcp放行指定服务(零碎内) firewall-cmd --permanent --add-service=http删除服务 firewall-cmd --permanent --remove-service=http屏蔽指定ip地址 firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"屏蔽指定ip地址段 firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"

August 5, 2022 · 1 min · jiezi

关于linux:Linux系统限制ip-ssh连接

Linux零碎服务器通过设置/etc/hosts.allow和/etc/hosts.deny这个两个文件能够限度或者容许某个或者某段ip地址近程ssh登录服务器,办法比较简单,且设置后立刻失效,不须要重启sshd服务,次要是快,但也有不胜利的状况,倡议应用iptables的计划,具体如下:我应用的是租的VPS服务器,他们价格比拟便宜在/etc/hosts.allow增加 sshd:192.168.5.1:allow #容许192.168.5.1这个ip地址ssh登录sshd:192.168.5.:allow #容许192.168.0.1/24这段ip地址的用户登录,多个网段能够以逗号隔开,比方192.168.0.,192.168.1.:allowsshd:ALL #容许全副的ssh登录hosts.allow和hosts.deny两个文件同时设置规定的时候,hosts.allow文件中的规定优先级高,依照此办法设置后服务器只容许192.168.5.0这个网段地址的ssh登录,其余的ip都会回绝。/etc/hosts.deny增加 sshd:ALL #回绝全副ip **留神:hosts.allow许可大于hosts.deny**

August 5, 2022 · 1 min · jiezi

关于linux:linux一些硬盘相关的操作

查看曾经存在的硬盘 lsblk -f格式化创立文件系统 mkfs -t ext4 /dev/sdc开机挂在硬盘 /dev/sdb /home/armdev/newdisk ext4 defaults 0 1要挂在的设施,挂在的地位,文件系统格局,选项,是否备份,是否查看谬误创立硬盘镜像文件,创立完要用2船舰文件系统 dd if=/dev/zero of=linux-rootfs.img bs=1M count=5000mount umount镜像 mount linux-rootfs.img mount umount mount查看镜像正确性 e2fsck -p -f linux-rootfs.img将镜像压缩最小 resize2fs -M linux-rootfs.img

August 5, 2022 · 1 min · jiezi

关于linux:Linux系统防火墙

是避免火灾产生时,火势烧到其它区域,应用由防火资料砌的墙。起初这个词语引入到了网络中,把从外向内的网络入侵行为看做是火灾,避免这种入侵的策略叫做防火墙 需要:禁止主机ping服务器 只容许192.168.10.10主机拜访Apache服务 只容许192.168.10.30主机拜访TCP/22端口我应用的是两台租的VPS服务器,他们价格便宜,带宽高绑定区域重载防火墙查看沉闷区域信息查看公共区域的服务列表清空服务增加服务配置端口配置ICMP阻塞再次重载防火墙测试192.168.10.30拜访服务器的ssh 看看其他人可不可以拜访服务器的ssh其他人不能够拜访ssh测试192.168.10.30可不可以ping服务器测试192.168.10.10可不可以ping服务器 测试10.10连贯Apache服务(有一些机器可能没有装置http服务,倡议先yum install httpd -y,而后再启动httpd服务) 测试其他人可不可以拜访Apache服务

August 4, 2022 · 1 min · jiezi

关于linux:Linux系统输出整数值shell脚本

shell既是一种命令语言,又是一种程序设计语言(即shell脚本)。我应用的是租的VPS服务器,他们价格很便宜,提早低 测试后果 打印数字 测试后果

August 4, 2022 · 1 min · jiezi

关于linux:Linux系统源码安装PHP

PHP是一个领有泛滥开发者的开源软件我的项目,最开始是Personal Home Page的缩写,曾经正式更名为 "PHP: Hypertext Preprocessor"。PHP是在1994年由Rasmus Lerdorf创立的 ,最后只是一个简略的用Perl语言编写的统计他本人网站访问者数量的程序。起初从新用C语言编写,同时能够拜访数据库,1995年,PHP(Personal Home Page Tools)对外发表第一个版本PHP1。尔后,越来越多的网站开始应用PHP,并且强烈要求减少一些个性,如循环语句和数组变量等,1995年公布的PHP2退出了对mySQL的反对。 首先须要一个VPS服务器的环境,我的版本是centos7, 1、下载安装包http://www.php.net/downloads.php 2、yum装置环境 yum -y install \libjpeg \libjpeg-devel \libpng libpng-devel \freetype freetype-devel \libxml2 \libxml2-devel \zlib zlib-devel \curl curl-devel \openssl openssl-devel 3、解压安装包tar xjvf php-7.1.10.tar.bz2 4、编译文件 cd php-7.1.10./configure \--prefix=/usr/local/php \--with-apxs2=/usr/local/httpd/bin/apxs \--with-mysql-sock=/usr/local/mysql/mysql.sock \--with-mysqli \--with-zlib \--with-curl \--with-gd \--with-jpeg-dir \--with-png-dir \--with-freetype-dir \--with-openssl \--enable-mbstring \--enable-xml \--enable-session \--enable-ftp \--enable-pdo \--enable-tokenizer \--enable-zip make && make install 5、复制配置文件并批改 cp php.ini-development /usr/local/php/lib/php.ini vi /usr/local/php/lib/php.inimysqli.default_socket = /usr/local/mysql/mysql.sockdate.timezone = Asia/Shanghai ...

August 4, 2022 · 1 min · jiezi

关于linux:Linux下如何配置普通用户的sudo命令权限

背景在Linux零碎操作时,通常不会间接采纳root用户。但当某些命令须要root权限执行时,往往会通过sudo命令晋升以后用户的执行权限来实现。 如果普通用户并未进行配置相应的配置,则在应用sudo命令时会提醒“xxx 不在 sudoers 文件中。此事将被报告。“ 本篇文章就带大家实际一下如何对普通用户配置sudo命令执行的权限。 sudo命令权限配置sudo 的英文全称是 super user do,即以超级用户(root 用户)的形式执行命令。用户是否领有sudo命令的执行权限,要看是否在于 /etc/sudoers 文件进行了设置。 /etc/sudoers 是一个文本文件,有其特定的语法,不要间接用 vim 或者 vi 来进行编辑,而是采纳 visudo 命令。须要留神的是只有root用户有该命令的执行权限。 切换到root用户,命令行输出 visudo ,即可间接进入/etc/sudoers 的编辑页面。 [root@iZ2zedonrtl5m2zsh6tr1xZ ~]# visudo疏忽掉其余配置信息,间接查看底部如下信息: # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d ubuntu ALL=(ALL:ALL) NOPASSWD: ALL 解释下每一列的含意: ...

August 4, 2022 · 1 min · jiezi

关于linux:Linux基础磁盘挂载

7.磁盘挂载操作参考连贯: https://blog.csdn.net/qq_3591...https://blog.csdn.net/zqixiao... (1),查看以后磁盘状态fdisk -l# 后果:以后未挂载盘的名称为--vdaDisk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x000d2717 Device Boot Start End Blocks Id System/dev/vda1 * 2048 83884031 41940992 83 Linux(2),进入硬盘操作界面fdisk -u /dev/vda# 后果欢送应用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。应用写入命令前请三思。Device does not contain a recognized partition table应用磁盘标识符 0x4ea06564 创立新的 DOS 磁盘标签。命令(输出 m 获取帮忙):(3),创立分区# 简化步骤:将未挂载的盘se'hfdisk /dev/vdb n p 1 回车应用默认值 回车应用默认值 w输出n再按enter开始创立一个新的分区呈现两个菜单e示意扩大分区,p示意主分区按"p"键呈现提醒:"Partition number (1-4): "抉择主分区号输出"1"示意第一个主分区。分区号 (1-4,默认 1):1起始 扇区 (2048-104857599,默认为 2048):2048将应用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):将应用默认值 104857599p 查看分区命令(输出 m 获取帮忙):p磁盘 /dev/vdb:53.7 GB, 53687091200 字节,104857600 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 512 字节I/O 大小(最小/最佳):512 字节 / 512 字节磁盘标签类型:dos磁盘标识符:0x89f2e8d4 设施 Boot Start End Blocks Id System/dev/vdb1 2048 104857599 52427776 83 Linuxw 保留退出命令(输出 m 获取帮忙):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。(4),格式化刚刚创立的磁盘# 依据此时生成的名称进行判断mkfs.ext4 /dev/vdb1# 能够在创立的时候指定 inode的个数:应用 -N 参数,示例中的数字创立出的inode的大小刚好是128Mmkfs.ext4 /dev/vdb1 -N 133307691312(5),创立挂载目录并挂载mkdir /vdb1挂载目录 mount /dev/vdb1 /vdb1查看挂载后果: df -h(6),配置开机主动挂载因为mount挂载在重启服务器后会生效,所以须要将分区信息写到/etc/fstab文件中让它永恒挂载: ...

August 3, 2022 · 2 min · jiezi

关于linux:Linux基础配置Linux本地镜像源

配置linux本地镜像源2020年11月24日 11:49:31 实际上如果是单机版的部署的话就间接配置一个本地镜像源即可; 或者如果是在局域网中有两个机器,抉择其中一个服作为master即可;另外留神不要和 openresty 在一起部署,其提供的web服务会产生抵触(httpd, nginx);或者更改一个其余的端口,避免被占用。 6.1配置本地文件源1、在装置根底软件过程中,很多时候须要装置一些零碎依赖包,因为服务器个别都是在内网,无法访问互联网通过yum装置,只能配置本地镜像源。 2、挂载iso零碎镜像 上传iso镜像到操作系统的/opt下, ll /opt/CentOS-7-x86_64-DVD-1804.iso 创立挂载目录 mkdir /mnt/iso 执行挂载命名 mount -t iso9660 -o,loop /opt/CentOS-7.4-x86_64-DVD-1708.iso /mnt/iso/ 3、配置yum源 先备份原来的yum配置文件:cd /etc/yum.repos.dmkdir bakmv CentOS-* bak新建本地源配置文件: vim local.repo# 内容如下[local]name=localbaseurl=file:///mnt/isoenabled=1gpgcheck=0 执行以下语句: yum clean allyum makecache4、验证 yum repolistyum -y install vim6.2批改本地文件源为局域网拜访http源如果在以后环境中 应用 局域网http源,此时应用的htttpd 服务,会与 OpenRestry 中的Nginx服务抵触,须要进行解决。 能够抉择进行 OpenRestay 服务 以后配置形式能够局域网中的一个机器中执行,从而使得局域网中的其余机器不须要反复配置,能够间接应用以后机器作为主镜像机器。 原理是通过http代理,装置http服务 yum -y install httpd启动并增加自启动systemctl start httpd.servicesystemctl enable httpd.service在/var/www/html/目录下建设对应挂载点 cd /var/www/htmlmkdir centos7复制镜像下的文件到该目录,有点大须要点工夫cp -r /mnt/iso/* /var/www/html/centos7在浏览器拜访http://ip/centos7/,呈现上面的界面就胜利了一大半 批改yum配置local.repo[local]name=local#baseurl=file:///mnt/isobaseurl=http://172.16.100.161/centos7/enabled=1gpgcheck=0清理 yum clean all ...

August 3, 2022 · 1 min · jiezi

关于linux:Linux基础Shell脚本

四、Shell脚本[TOC] 编写自定义脚本的时候,能够在用户的家目录下的创立一个 bin 目录,而后将自定义脚本文件退出到刚创立的 bin目录中,而后咱们就能够间接在以后用户下执行脚本文件了,因为在用户的家目录下的 用户环境变量文件(.bash_profile) 中曾经执行 $HOME/bin 了。所以能够间接应用!2.shell根本运算因为原生的bash是不反对数学运算的,所以能够应用 expr看来实现数学运算,应用根本形式:应用反引号将expr表达式包裹起来; ==留神==:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是谬误的,必须写成 [$a == $b ]。 vi a.sh#!/bin/bash# 定义一个变量名叫 val,要计算的两个字符之间要有空格进行分隔val=`expr 2 + 2`# 调用自定义变量进行输入的时候应用 $ 符号echo "两数字之和: $val"(1).算数运算符运算符阐明举例+加法expr $a + $b 后果为 30。-减法expr $a - $b 后果为 -10。*乘法expr $a \* $b 后果为 200。/除法expr $b / $a 后果为 2。%取余expr $b % $a 后果为 0。=赋值a=$b 将把变量 b 的值赋给 a。==相等。用于比拟两个数字,雷同则返回 true。[ $a == $b ] 返回 false。!=不相等。用于比拟两个数字,不雷同则返回 true。[ $a != $b ] 返回 true。(2).关系运算符运算符阐明举例-eq检测两个数是否相等,相等返回 true。[ $a -eq $b ] 返回 false。-ne检测两个数是否不相等,不相等返回 true。[ $a -ne $b ] 返回 true。-gt检测右边的数是否大于左边的,如果是,则返回 true。[ $a -gt $b ] 返回 false。-lt检测右边的数是否小于左边的,如果是,则返回 true。[ $a -lt $b ] 返回 true。-ge检测右边的数是否大于等于左边的,如果是,则返回 true。[ $a -ge $b ] 返回 false。-le检测右边的数是否小于等于左边的,如果是,则返回 true。[ $a -le $b ] 返回 true。(3).布尔运算符运算符阐明举例!非运算,表达式为 true 则返回 false,否则返回 true。[ ! false ] 返回 true。-o或运算,有一个表达式为 true 则返回 true。[ $a -lt 20 -o \$b -gt 100 ] 返回 true。-a与运算,两个表达式都为 true 才返回 true。[ $a -lt 20 -a \$b -gt 100 ] 返回 false。(4).逻辑运算符运算符阐明举例&&逻辑的 AND[[ $Misplaced &a -lt 100 && $b -gt 100 ]] 返回 false\\ 逻辑的 OR[[ $a -lt 100 \\$b -gt 100 ]] 返回 true(5).字符串运算符运算符阐明举例=检测两个字符串是否相等,相等返回 true。[ $a = $b ] 返回 false。!=检测两个字符串是否相等,不相等返回 true。[ $a != $b ] 返回 true。-z检测字符串长度是否为0,为0返回 true。[ -z $a ] 返回 false。-n检测字符串长度是否不为 0,不为 0 返回 true。[ -n "$a" ] 返回 true。$检测字符串是否为空,不为空返回 true。[ $a ] 返回 true。3.shell流程管制(1),if/then/elif/else/fi 构造# 编写脚本$ vi equals.sh# 指定脚本解析器的类型是bash#!/bin/basha=10b=20if [ $a != $b ]then echo "$a != $b : a不等于b"else echo "$a == $b : a等于b"fi# 2,编写实现脚本之后,须要对脚本文件赋予可执行的权限$ chmod 755 equals.sh# 3,执行脚本$ sh equals.sh(2).case/esac 构造# 1,编写脚本内容$ vi case.sh #!/bin/bash# 打印提示信息echo "当初是早上吗?请输出你的抉择:"# 示意须要用户输出一个变量read yes_or_no# 依据用户输出的变量,进行case的判断,而后in之后的每个选项指定命令最初都应用 ;; 示意完结case "$yes_or_no" inyes|y|Yes|YES) # 示意输出以以下选项的 echo "Good Morning!";;[nN]*) # 示意你输出以n结尾的都能够提醒你下午好 echo "Good Afternoon!";;*) # 输出其余字符的时候,提醒输出有误 echo "对不起,输出有误!" exit 1;;# case语句的完结esacexit 0# 2,编写实现脚本之后,须要对脚本文件赋予可执行的权限$ chmod 755 case.sh# 3,执行脚本$ sh case.sh(3).for/do/done 构造1).案例需要请应用for循环在指定目录下"/root/test"目录下创立是个文件。test-1.shtest-2.shtest-3.shtest-4.shtest-5.shtest-6.shtest-7.shtest-8.shtest-9.shtest-10.sh2),shell脚本#!/bin/sh# 先判断以后指定的文件夹是否存在if [ ! -d /root/forTest ] then mkdir -p /root/forTestfi# 循环1-10之间的所有数for num in {1..10} # 在循环内执行以下命令 do touch /root/forTest/test-${num}.sh #因为创立文件到指定目录,所以创立时最好用全门路; done(4),while/do/done 构造1),案例需要需要1:验证用户输出的明码,直到用户输出正确为止; ...

August 3, 2022 · 5 min · jiezi

关于linux:Linux基础用户管理

三、用户治理1.繁多用户治理# 1,查看以后登录的账户whoami# 2,查看以后零碎中存在的用户cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more# 3,# 以后是 root 用户时,能够不加 sudo 命令# (1),增加一个账户,同时指定家目录(默认与用户名雷同): $ sudo useradd demo -m# (2),设置新增加的用户设置明码(间断输出两个雷同的明码): $ sudo passwd demo# (3),切换账户: # 只切换账户: $ su demo # 切换账户并切换到指定账户的家目录: $ su - demo # 在乌班图中切换超级管理员: $ sudo -s# (4),退出以后账户: $ exit# (5),在以后终端开启一个新的标签页(快捷键): $ Ctrl+Shift+T# (6),删除一个用户 # 只删除用户: $ userdel demo # 删除用户并删除家目录: $ userdel demo -r# (7),近程登录一个账户(它会主动提醒你输出明码): $ ssh 10.30.59.130# (8),留神: # 1)在切换账户时如果只有一个$符号,阐明没有没有bash(默认的是/bin/sh),须要更改/etc/passwd文件:/bin/bash(也就是更改目录) # 2)当应用私钥进行近程连贯服务器的时候,只用一个$符号,能够采纳以下命令进行解除 $ python -c "import pty;pty.spawn('/bin/bash')" 2.用户组治理(蕴含权限)# (1),增加用户组:$ sudo groupadd YYY# (2),查看用户组是否增加胜利: # 办法1: $ groupmod(敲两下tab) # 办法2: $ cat /etc/group # 删除用户组: $ sudo groupdel YYY# (3),批改用户所在的组: # 应用办法:usermod -g 用户组 用户名; 其中 -g 用来指定这个用户默认的组 # 例子:为创立的普通用户demo增加sudo权限 -a:示意增加; -G:个别配合'-a'实现将指定用户向其余组增加 $ sudo usermod -a -G adm demo $ sudo usermod -a -G sudo demo# Centos批改文件的以后用户和用户组# 以后用户:elasticsearch# 以后用户组:elasticsearchchown -R elasticsearch elasticsearch-5.6.14chgrp -R elasticsearch elasticsearch-5.6.14

August 3, 2022 · 1 min · jiezi

关于linux:Linux系统home自动挂载

零碎版本:centos7建设一块新分区格式化为XFS类型文件系统 迁徙/home将home挂载到sdb1下,实现开机主动挂载 复原原有用户的数据 可能登录

August 2, 2022 · 1 min · jiezi

关于linux:Linux系统模拟文件数量耗尽

零碎版本:centos7 将新硬盘分区 将这两个转化成物理卷物理卷整合成一个卷组 创立一个10GB的mbox逻辑卷 将mbox格式化成xfs 挂载到date上 创立用户和组,并增加 设置磁盘配额 验证jerry用户

August 2, 2022 · 1 min · jiezi