关于linux:Kali-Linux-是什么你需要它吗

如果你听到一个 13 岁的黑客吹牛他是如许的牛逼,是有可能的,因为有 Kali Linux 的存在。只管有可能会被称为“脚本小子”,然而事实上,Kali 仍旧是平安专家手头的重要工具(或工具集)。 Kali 是一个基于Debian 的 Linux发行版。它的指标就是为了简略:在一个实用的工具包里尽可能多的蕴含浸透和审计工具。Kali 实现了这个指标。大多数做平安测试的开源工具都被囊括在内。 为什么是 Kali? Kali Linux Desktop  kali是由 Offensive Security 公司开发和保护的。它在平安畛域是一家出名的、值得信赖的公司,它甚至还有一些受人尊敬的认证,来对平安从业人员做资格认证。 Kali 也是一个简便的平安解决方案。Kali 并不要求你本人去保护一个 Linux 零碎,或者你本人去收集软件和依赖项。它是一个“交钥匙工程”。所有这些繁冗的工作都不须要你去思考,因而,你只须要专一于要审计的实在工作上,而不须要去思考筹备测试零碎。 如何应用它?Kali 是一个 Linux 发行版。与任何一个其它的Linux 发行版一样,你能够将它永恒装置到一个硬盘上。那样它会工作的更好,然而你不能将它作为一个日常应用的操作系统。因为它是为浸透测试构建的,这就是你应用它的全副理由。 最好是将 Kali 制作为自启动发行版。你能够将 Kali 刻录到一张 DVD 或者是制作到一个自启动 U 盘上来运行它。你没有必要在一个Kali上装置任何软件或者保留任何文件。你能够在须要测试一个零碎时随时来启动它。它也有十分好的灵活性,能够让运行 Kali 的机器随时运行在想要测试的网络上。 Kali 能够做什么?Kali 外面有很多的平安工具而不是别的。这就是它能做的事。不管怎么说,Kali 就是一个平安工具。 Kali Zenmap 它有像 NMap 和 Wireskark 这样的经典信息采集工具。 Kali Linux Wireshark Kali 也有面向 WiFi 的工具,像 Aircrack-ng、Kismet、以及 Pixie。 对于破解明码,它也有像 Hydra、Crunch、Hashcat、以及 John the Ripper 这样的工具。 Kali Metasploit 还有更多的成套工具,包含 Metasploit 和 Burp Suite。 ...

April 13, 2022 · 1 min · jiezi

关于linux:linux之chsh命令

用来更换登录零碎时应用的 shell,chsh 命令 用来更换登录零碎时应用的 shell。若不指定任何参数与用户名称,则 chsh 会以应答的形式进行设置。命令语法chsh [选项][参数] 命令选项-s<shell 名称>或--shell<shell 名称>:更改零碎预设的shell环境.-l或--list-shells:列出目前零碎可用的shell清单;-u或--help:在线帮忙;-v或-version:显示版本信息。命令参数用户名:要扭转默认 shell 的用户。 查看零碎装置了哪些 shell 的两种办法第一种:> chsh -l/bin/sh/bin/bash/sbin/nologin/bin/zsh第二种:> cat /etc/shells/bin/sh/bin/bash/sbin/nologin/bin/zsh其实chsh -l也是来查看这个文件。查看以后正在应用的 shell:> echo $SHELL/bin/bash留神 SHELL 肯定要是大写。能够看到,目前应用的 shell 是/bin/bash把我的shell改成zsh> chsh -s /bin/zshChanging shell for rumenz.Password:Shell changed.应用 chsh 加选项-s就能够批改登录的 shell 了!你会发现你当初执行echo $SHELL后依然输入为/bin/bash,这是因为你须要重启你的 shell 才齐全投入到 zsh 怀抱中去。chsh -s其实批改的就是/etc/passwd文件里和你的用户名绝对应的那一行。当初来查看下:> cat /etc/passwd|grep ^rumenzrumenz:x:1001:1002::/home/rumenz:/bin/zsh你能够发现输入内容的最初局部曾经变成了/bin/zsh了,下次重启的时候,linux 就会读取这一命令来启动 shell 了! 把shell批改回/bin/bash> chsh -s /bin/bashChanging shell for rumenz.Password:Shell changed.原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程

April 12, 2022 · 1 min · jiezi

关于linux:linux之chattr命令

用来扭转文件属性,chattr命令 用来扭转文件属性。这项指令可扭转寄存在ext2文件系统上的文件或目录属性命令语法> chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]命令选项-R 递归解决,将指定目录下的所有文件及子目录一并处理。-v<版本编号> 设置文件或目录版本。-V 显示指令执行过程。+<属性> 开启文件或目录的该项属性。-<属性> 敞开文件或目录的该项属性。=<属性> 指定文件或目录的该项属性。属性a:让文件或目录仅供附加用处;b:不更新文件或目录的最初存取时间;c:将文件或目录压缩后寄存;d:将文件或目录排除在倾倒操作之外;i:不得任意更动文件或目录;s:保密性删除文件或目录;S:即时更新文件或目录;u:预防意外删除。用chattr命令避免零碎中某个要害文件被批改:> chattr +i /etc/my.cnf查看文件属性> lsattr /etc/my.cnf----i-------- /etc/my.cnf应用chattr对目录中的所有文件利用限度> chattr -R +i ./rumenz某个文件只能往里面追加数据,但不能删除,实用于各种日志文件> chattr +a /var/log/a.log原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程

April 11, 2022 · 1 min · jiezi

关于linux:不再单调快来自定义你的专属背景

关注优麒麟,更多干货等着你! 目前优麒麟操作系统的登录界面风格比拟对立,咱们个人用户可不可以开发一款独具一格的,具备非凡意义的登录程序呢?例如开机登录时幻灯片播放本人喜爱的照片、展现本人喜爱的人生格言等,这当然是能够的! 接下来就凭借我集体的一点肤浅常识,来给大家做个抛砖引玉,简要介绍下开发人员如何在优麒麟上定制本人的登录界面。 壁纸素材来自网络,仅用作视频演示,如若侵权可分割删除。 一、DIY 优麒麟登录界面开发根底与开发环境介绍1.开发根底(须要但不限于)相熟 C/C++ 计算机编程语言、理解 Qt 跨平台的 C++ 图形用户界面应用程序框架以及 QtCreator 开发工具包。 2.开发环境20.04 版本零碎上登录界面的启动、展现以及登录认证是在 LightDM 根底上搭配 liblightdm-qt5-3-dev 库(QT 应用程序与 LightDM 交互的桥梁)实现的,明天咱们就在此开发环境根底上自定义登录界面。 二、理解 LightDM--桌面显示管理器1.什么是 LightDM ?LightDM 是运行在 Debian 系列操作系统上的桌面显示管理器,它的全名是 LightDisplay Manager ,外表含意是轻量级桌面显示管理器。它是 FreeDesktop 工程的一部分。FreeDesktop 是一个致力于 Linux 和其余类 Unix 上的 X 窗口零碎的桌面环境之间的互操作性和根底技术共享的我的项目,由 Red Hat 公司 的 HavocPennington 于 2000 年 3 月创建。官方网站是:https://www.freedesktop.org。优麒麟社区 20.04 版本就是应用 LightDM 作为默认的窗口管理器。 2.LightDM 与登录界面程序的关系及配置批改操作系统初始化时会拉起 LightDM 服务,LightDM 服务初始化时会启动 Xserver 图形桌面服务,再依据 LightDM 的一系列配置拉起一些自定义脚本、服务、或程序,登录界面程序就在其中,波及到如下几个配置文件夹,配置具体定义见参考文档: /usr/share/lightdm/lightdm.conf.d//etc/lightdm//etc/lightdm/lightdm.conf.d/全局通用配置批改文件:/etc/lightdm/lightdm.conf自定义配置批改文件:/usr/share/lightdm/lightdm.conf.d/96-mydiygreeter.conf3.配置自定义登录程序编辑文件(不存在则需创立)/usr/share/lightdm/lightdm.conf.d/96-mydiygreeter.conf如下: [Seat:*]#greeter-session=ukui-greetergreeter-session=mydiygreeteruser-session=ukui三、登录界面程序实现1.在 QtCreator 工具中创立工程 mydiygreeter 工程并利用 QT 应用程序框架初始化登录主窗口 ...

April 11, 2022 · 1 min · jiezi

关于linux:linux之type命令

显示指定命令的类型。命令语法 type [-afptP] name [name ...] 命令作用显示要查找的命令的信息。管制查找范畴和行为。显示要查找的命令优先级最高的类型。命令选项a:在环境变量PATH中查找并显示所有蕴含name的可执行文件门路;当'-p'选项没有同时给出时,如果在别名、关键字,函数,内建的信息中存在name,则一并显示。f:排除对shell函数的查找。p:如果name在执行'type -t name'返回的不是'file',那么什么也不返回;否则会在环境变量PATH中查找并返回可执行文件门路。P:即便要查找的name是别名、内建、函数中的一个,依然会在环境变量PATH中查找并返回可执行文件门路。t:依据name的类型返回一个单词(别名,关键字,函数,内建,文件),否则返回空值。命令参数name:要查找的命令,能够为多个。命令返回值当指定的命令能够找到时返回胜利,如果有没找到的返回失败。接下来要用到的例子假如'~/.bashrc'文件定义了以下的内容:alias ls='ls --color=auto'test123(){ vim ~/.bashrc; }而且执行环境里没有应用enable禁用内建命令。type -a test123test123 is a functiontest123 (){ vim ~/.bashrc}type -a -f test123bash: type: test123: not foundtype -a -p test123type -a lsls is aliased to `ls --color=suto'ls is /usr/bin/lsls is /bin/lstype -a -p ls/usr/bin/ls/bin/lstype -p printftype -P printf/usr/bin/printf/bin/printftype -t lsaliastype -t forkeywordtype -t test123functiontype -t -f test123type -t printfbuiltintype -t chmodfile留神该命令是 bash 内建命令,相干的帮忙信息请查看help命令。命令优先级问题请查看builtin命令。原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程 ...

April 10, 2022 · 1 min · jiezi

关于linux:Linux-使用技巧

查找apt能够装置的包 apt-cache search *例如: apt-cache search antlr

April 10, 2022 · 1 min · jiezi

关于linux:如何让HTTPS站点评级达到A-还得看这篇HTTPS安全优化配置最佳实践指南

[TOC] 0x00 前言简述SSL/TLS 简略阐明形容: 当下越来越多的网站管理员为企业站点或本人的站点进行了SSL/TLS配置, SSL/TLS 是一种简略易懂的技术,它很容易部署及运行,但要对其进行平安部署的状况下通常是不容易。 如果想把握如何配置一个平安的 web 服务器或利用,往往须要系统管理员和开发者去理解 SSL 和 TLS 相干的技术, 这无疑会消耗很大的精力去看相干的技术文档,乏味且宽泛并加大了学习老本。 所以本篇文章次要是为了让系统管理员或开发者用尽可能少的工夫部署一个平安的 web 站点或利用,即 SSL 和 TLS 部署最佳实际,但在学习实际之前咱们须要理解一下SSL/TLS 相干术语,防止在后续实际中一头雾水。 原文地址: 如何让HTTPS站点评级达到A+? 还得看这篇HTTPS平安优化配置最佳实际指南 【https://blog.weiyigeek.top/2022/4-6-11.html】如何让HTTPS站点更加平安?这篇HTTPS平安加固配置最佳实际指南就够了 【https://blog.weiyigeek.top/2022/4-6-11.html】<!-- more --> 前置常识举荐理解 HTTPS原理介绍以及证书签名的申请配置(https://blog.weiyigeek.top/2019/10-21-10.html)SSL与TLS协定原理和证书签名生成实际指南 (https://blog.weiyigeek.top/2019/10-21-12.html)SSL/TLS 相干术语一览EV : EV证书(Extended Validation Certificate)是一种依据一系列特定规范颁发的X.509电子证书,依据要求,在颁发证书之前,证书颁发机构(CA)必须验证申请者的身份。不同机构依据证书规范发行的扩大验证证书并无太大差别,然而有时候依据一些具体的要求,特定机构发行的证书能够被特定的软件辨认。OV : OV证书(Organization Validation SSL),指须要验证网站所有单位的实在身份的标准型SSL证书,此类证书不仅可能起到网站信息加密的作用,而且能向用户证实网站的实在身份。DV : DV证书(Domain Validation SSL),指须要验证域名的有效性。该类证书只提供根本的加密保障,不能提供域名所有者的信息。 CAA : DNS Certification Authority Authorization,应用DNS来指定该域名能够由哪些CA机构签发证书,这不是为TLS层的平安提供保障,而是作为CA签发证书程序中的一部分。应用CAA能够防止一些CA签发谬误证书的状况。CSR : CSR(Certificate Signing Request),在PKI零碎中,CSR文件必须在申请和购买SSL证书之前创立,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书申请文件,证书申请者只有把CSR文件提交给证书颁发机构后,证书颁发机构应用其根证书私钥签名就生成了证书公钥文件CT : CT (Certificate Transparency) 证书通明,Certificate Transparency的指标是提供一个凋谢的审计和监控零碎,能够让任何域名所有者或者CA确定证书是否被谬误签发或者被歹意应用,从而进步HTTPS网站的安全性。CRL : CRL(Certificate revocation list 证书撤消列表)是一个曾经被撤消的数字证书的名单,这些在证书撤消列表中的证书不再会受到信赖,但目前OCSP(在线证书状态协定)能够代替CRL实现证书状态查看。OCSP : OCSP(Online Certificate Status Protocol)是一个用于获取X.509数字证书撤销状态的网际协议,在RCF 6960中定义,作为证书撤消列表的替代品解决公开密钥根底建设(PKI)中应用证书撤消列表而带来的多个问题。协定数据传输过程中应用ASN.1编码,并通常创立在HTTP协定上OCSP Stapling : OCSP装订,是TLS证书状态查问扩大,作为在线证书状态协定的代替办法对X.509证书状态进行查问,服务器在TLS握手时发送当时缓存的OCSP响应,用户只有验证该响应的时效性而不必再向数字证书认证机构(CA)发送申请,能够放慢握手速度。 ...

April 10, 2022 · 5 min · jiezi

关于linux:linux常用网络命令

1、在ifconfig内容中找出ipLinux查看ip的办法有很多,ifconfig是其中一种。[root@localhost ~]# ifconfig ens33|grep "inet "\ > |awk '{print $2}' #awk默认宰割符号为空格 ping都懂用,可是linux下,ping命令会始终ping,不会主动进行怎么办 [root@localhost ~]# ping www.baidu.com -c 4 #-c 次数 [root@localhost ~]# netstat -an|grep -v unix #显示网络连接信息,-a所有,-n理论地址 |grep -v 知道吧,就是反向显示(不显示符合条件) 2、查看网络连接状态,并汇总信息[root@localhost ~]# netstat -an|grep tcp [root@localhost ~]# netstat -an|grep tcp|awk '{++S[$NF]} END {for (a in S) print a,S[a]}' [root@localhost ~]# netstat -an|awk '/^tcp/{++S[$NF]} END {for (a in S) print a,S[a]}' #写法有很多种 3、查看零碎路由表,两种办法[root@localhost ~]# netstat -rn [root@localhost ~]# netstat -r ...

April 10, 2022 · 1 min · jiezi

关于linux:linux如何查看目录大小

du命令参考文章:how to check directory size in Linux用于显示目录或文件的大小。 显示当前目录文件或者文件占用空间:du显示指定文件或文件夹的大小:du test.txt不便浏览的格局查看目录所占空间状况:du -h test仅显示以后文件夹的总计:du -s *以不便浏览的形式查看指定目录层级的空间占用状况:du -lh --max-depth=1du命令排序查看目录大小的命令是du(当然也能够查看文件大小),例如:du ems_data,就是查看ems_data目录下各子目录的大小;du,就是查看当前目录下各子目录的大小;du *,就是查看当前目录下各子目录和文件的大小。 为了进步查看成果,咱们须要对后果进行排序,因为du的命令后果很乱,例如: 从大到小排列:du ems_data | sort -nr按目录名排列:du ems_data | sort +1 -2选出排在后面的10个:du ems_data | sort -rn | head选出排在前面的10个:du ems_data |sort -rn | tail当前目录的大小:du -sh .

April 10, 2022 · 1 min · jiezi

关于linux:linux之tree命令

树状图列出目录的内容,tree命令 以树状图列出目录的内容。命令语法tree [选项][参数] 命令选项-a 显示所有文件和目录。-A 应用 ASNI 绘图字符显示树状图而非以 ASCII 字符组合。-C 在文件和目录清单加上色调,便于辨别各种类型。-d 显示目录名称而非内容。-D 列出文件或目录的更改工夫。-f 在每个文件或目录之前,显示残缺的相对路径名称。-F 在执行文件,目录,Socket,符号连贯,管道名称名称,各自加上 "*","/","=","@","|" 号。-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。-i 不以阶梯状列出文件或目录名称。-L level 限度目录显示层级。-l 如遇到性质为符号连贯的目录,间接列出该连贯所指向的原始目录。-n 不在文件和目录清单加上色调。-N 间接列出文件和目录名称,包含控制字符。-p 列出权限标示。-P <范本款式> 只显示合乎范本款式的文件或目录名称。-q 用 "?" 号取代控制字符,列出文件和目录名称。-s 列出文件或目录大小。-t 用文件和目录的更改工夫排序。-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。-x 将范畴局限在现行的文件系统中,若指定目录下的某些子目录,其寄存于另一个文件系统上,则将该子目录予以排除在寻找范畴外。目录:执行tree指令,它会列出指定目录下的所有文件,包含子目录里的文件。> tree ..├── @├── A123.png├── AB2.png├── ABC123.png├── ABC1.png├── a.log├── bin│ └── rumenz│ ├── 1.txt│ ├── 3.txt│ ├── 5.txt│ └── 5.txt~├── b.log├── doc│ └── outfile.txt├── InfiniteLoop$1.class├── InfiniteLoop.class├── InfiniteLoop.java├── lib│ └── oldrumenz.txt├── lib64 -> lib/├── nohup.out├── one│ ├── 1│ ├── 123.pem│ ├── 123.sh│ ├── 1.txt│ ├── 2.txt│ ├── etc.tar.gz│ └── rumenz.tar.gz├── one.txt├── qaz.txt├── rumenz│ └── lib│ ├── info│ └── test├── rumenz.txt├── Rumenz.txt├── sbin│ ├── out.txt│ └── rumenz.txt└── test.sh11 directories, 31 files列出目录/rumenz/ 第一级文件名> tree /rumenz/ -L 1/rumenz/├── etc├── ssh├── tmp└── var疏忽当前目录文件夹node_modules> tree -I node_modules列出当前目录文件夹node_modules的目录构造> tree -P node_modules显示目录node_modules两层的目录树结构> tree -P node_modules -L 2当前目录后果存到a.txt文件中> tree -L 2 >/tmp/a.txt疏忽多个文件夹> tree -I 'node_modules|icon|font' -L 2非树状构造列出目录/rumenz/下的所有文件> tree -if /rumenz//rumenz/rumenz/a1/rumenz/a2/rumenz/etc/rumenz/etc/b1/rumenz/etc/b2/rumenz/ssh只显示目录> tree -d .用色彩辨别文件类型> tree -C .按 HTML 格局将后果输入> tree -H <HTML文件名> [-T <指定HTML内容的题目>]原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

April 9, 2022 · 1 min · jiezi

关于linux:20个常用的Linux工具命令

原创:打码日记(微信公众号ID:codelogs),欢送分享,转载请保留出处。简介网上有很多辅助开发的小工具,如base64,md5之类的,但这些小工具其实根本都能够用Linux命令实现,即不便又高效。  查看特殊字符把这个放在首位,是因为这个切实太重要了,程序常常会因为非凡的看不见的字符而呈现bug,因而一些本应该执行正确而理论出其不意的字符串解决,你都应该看看是否含有特殊字符。 $ echo 'hello'|sed -n 'l'hello$$ echo 'hello'|cat -Ahello$$ echo 'hello'|od -c0000000 h e l l o \n0000006执行下面的命令会发现,echo会给输入加一个换行符。 查看字节数当呈现数据库字段超长谬误时,这个命令会很有用,如oracle的varchar2(64)类型,示意最多存64字节,而业务插入的字符串是中英混合的,预计它有多少字节还挺麻烦。 $ echo -n 'hello,张三'|iconv -t utf-8|wc -c12工夫戳转换#日期串转工夫戳$ date -d '2020-06-08 00:13:28' +%s1591546408#工夫戳转日期串$ date -d '@1591546408' +"%F %T %z"2020-06-08 00:13:28 +0800#带时区版本,时区很重要,要时时刻刻留神TZ='GMT-8' date -d '2020-06-08 00:13:28' +%sTZ='GMT-8' date -d '@1591546408' +"%F %T %z"csv变json#应用csvkit中的csvjsoncsvjson -y0 -I data.csv#应用pythonpython -c "import csv,json;print(json.dumps(list(csv.reader(open('data.csv')))))"文件服务器python3 -m http.server 8000urlencode,base64,md5,sha256做开发常常会用到这些。 # urlencode,倡议增加为别名$ alias urlencode='python3 -c "import sys;from urllib import request as rq;print(rq.quote(sys.argv[1],safe=\"\"))"'$ urlencode 你好%E4%BD%A0%E5%A5%BD# urldecode,倡议增加为别名$ alias urldecode='python3 -c "import sys;from urllib import request as rq;print(rq.unquote(sys.argv[1]))"'$ urldecode '%E4%BD%A0%E5%A5%BD'你好# base64编解码$ echo hello |base64 -w0aGVsbG8K$ echo aGVsbG8K|base64 -dhello# md5摘要$ echo hello |md5sumb1946ac92492d2347c6235b4d2611184 -# sha256摘要$ echo hello | sha256sum5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03 -# hmacWithSha256摘要$ echo hello | hmac256 'secret'171b5670f7b4037fb90bef773b022130e48100fdd40ea023730097da9a68f4ffjson格式化$ echo '{"id":1,"name":"lisi"}' | jq .{ "id": 1, "name": "lisi"}字符串escape与unescape#将"转成\"$ echo 'hi,"lisi"' | jq -R 'tojson' -r"hi,\"lisi\""#将\"转成"$ echo '"hi,\"lisi\""' | jq -R 'fromjson' -rhi,"lisi"#json属性值里是json内容,不知你有没有遇到过这种糟糕设计$ echo '{"code":200,"data":"{\"id\":1,\"name\":\"lisi\"}"}' | jq '.data=(.data|fromjson)'{ "code": 200, "data": { "id": 1, "name": "lisi" }}unicode编码开发时,也常常须要在汉字与\u4f60模式之间转换,上面这些命令就很有用了。 ...

April 9, 2022 · 3 min · jiezi

关于linux:linux之ssh命令

openssh套件中的客户端连贯工具,ssh命令 是openssh套件中的客户端连贯工具,能够给予ssh加密协议实现平安的近程登录服务器。命令语法> ssh [选项] [参数]命令选项-1:强制应用ssh协定版本1;-2:强制应用ssh协定版本2;-4:强制应用IPv4地址;-6:强制应用IPv6地址;-A:开启认证代理连贯转发性能;-a:敞开认证代理连贯转发性能;-b:应用本机指定地址作为对应连贯的源ip地址;-C:申请压缩所有数据;-F:指定ssh指令的配置文件;-f:后盾执行ssh指令;-g:容许近程主机连贯主机的转发端口;-i:指定身份文件;-l:指定连贯近程服务器登录用户名;-N:不执行近程指令;-o:指定配置选项;-p:指定近程服务器上的端口;-q:静默模式;-X:开启X11转发性能;-x:敞开X11转发性能;-y:开启信赖X11转发性能。命令参数近程主机:指定要连贯的近程ssh服务器;指令:要在近程ssh服务器上执行的指令。ssh链接近程服务器> ssh rumenz@test.com默认端口是22ssh链接近程服务器,并指定端口SSH 默认连贯到指标主机的 22 端口上, 然而因为各种起因你可能须要连贯到其余端口.> ssh -p 23 rumenz@test.com如上命令就是通过增加参数 -p 指定端口号为 23.近程执行命令> ssh rumenz@test.com "ls -l"//多个命令两头用;隔开> ssh rumenz@test.com "ls -l;pwd"SSH无明码登录在本人的Linux零碎上生成SSH密钥和公钥> ssh-keygen -t rsa//一路回车上来最初在~/.ssh目录下会生成id_rsa(秘钥),id_rsa.pub(公钥)两个文件拷贝本机的公钥到服务器> ssh-copy-id rumenz@test.com输出近程用户的明码后,SSH公钥就会主动上传了.SSH公钥保留在近程Linux服务器的~/.ssh/authorized_keys文件中.SSH 指定密钥,连贯近程服务器> ssh -i /root/.ssh/rumenz.id.rsa rumenz@test.com -p 23/root/.ssh/rumenz.id.rsa 密钥文件门路rumenz@test.com 须要连贯的服务器用户名 & IP-p 23 端口23原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站

April 8, 2022 · 1 min · jiezi

关于linux:OAuth-授权协议-都云原生时代了我们应该多懂一点OAuth

We are not here because we are free .we are here because we are not free. 咱们在这里不是因为咱们自在,咱们在这里是因为咱们不自在。——《黑客帝国》写在结尾在这个互联网最美妙的时代,随着业务产品线的增多,业务利用平台逐步增多后,每个零碎独自治理各自的用户数据容易造成信息孤岛,扩散的用户管理模式妨碍了企业应用向平台化演进。当业务产品线倒退到肯定规模,构建对立的标准化账户管理体系将是必不可少的,构建一套互联网云平台的重要基础设施,可能为平台带来对立的帐号治理、身份认证、用户受权等根底能力,为企业带来诸如跨零碎单点登录、第三方受权登录等根底能力,为构建开放平台和业务生态提供了必要条件和根本原则。 对于OAuth受权协定的问题,兴许咱们中的大多数都还是从玩Github 开始的,或者就是从阮一峰的网络日志看到的,不论是何种状况下接触到OAuth的。咱们都要置信,OAuth的正确打开方式,相对不是喋喋不休的事件,须要通过零碎的剖析和我的项目实战,才会有不一样的滋味,不然咱们遇到的都是坏滋味。 OAuth受权协定 An open protocol to allow secure API authorization in a simple and standard method from web, mobile and desktop applications.根本定义OAuth受权协定为用户资源的受权提供了一个平安的、凋谢而又繁难的规范。与以往的受权形式不同之处是OAUTH的受权不会使第三方涉及到用户的帐号信息(如用户名与明码),即第三方无需应用用户的用户名与明码就能够申请取得该用户资源的受权,因而OAUTH是平安的。OAuth是Open Authorization的简写。一般来说,OAuth是一个受权协定,它容许软件应用代表(而不是充当)资源拥有者去拜访资源拥有者的资源。利用向资源拥有者申请受权,而后获得令牌(token),并用它来拜访资源,并且资源拥有者不必向利用提供用户名和明码等敏感数据。目前罕用的是2.0版本,又称为OAuth 2.0 。从官网来看,新版本2.1不久面世。 其实挑点理论话讲,OAuth 2.0 并不是一门新的技术,从 2007 年 OAuth 1.0 面世,到 2011 年公布 OAuth 2.0 草案。然而,看似简略的 OAuth 2.0 会让咱们望而生畏,在如何应用受权码流程上奋起直追。比方,在 Web 利用中到底应该怎么应用受权码流程,挪动 App 中还能应用受权码流程吗?当我带着这些问题尝试到网上搜寻材料时,那些不成体系的材料着实也让我走了不少弯路。不晓得你是不是也被上面问题困扰着: 开发一个 Web 利用,当应用 OAuth 2.0 的时候,放心受权码被拦挡,却因为没有较好的解决办法而束手无策开发一款挪动 App,当应用 OAuth 2.0 的时候,在确定是否须要 Server 端上,破费了大把的工夫开发一个小程序,当应用 OAuth 2.0 的时候,在确定是否须要 Server 端上,须要思考的场景是否足够多开发一个面向多产品的对立受权认证平台时,比方open-iam,对于PC平台,后盾平台,门户平台,挪动端APP平台,小程序平以及大数据监控平台,这样的一个需要时,当应用 OAuth 2.0 的时候,是否能实现和满足需要开发一个对立受权认证平台,对于用户和资源之间如何界定设置,前后端拆散模式,又如何保障用户登录实现平台的跳转和通信在不同架构模式背景下,对于OAuth的应用,其中的技术选型又会有怎么的差别,更多状况下,咱们的技术选型是否可取从大方向上总结来看,OAuth 2.0 这种受权协定,就是保障第三方(软件)只有在取得受权之后,才能够进一步拜访受权者的数据。因而,咱们经常还会听到一种说法,OAuth 2.0 是一种平安协定。当初拜访受权者的数据次要是通过 Web API,所以但凡要爱护这种对外的 API 时,都须要这样受权的形式。而 OAuth 2.0 的这种颁发拜访令牌的机制,是再适合不过的办法了。同时,这样的 Web API 还在继续减少,所以 OAuth 2.0 是目前 Web 上重要的平安伎俩之一。 ...

April 7, 2022 · 1 min · jiezi

关于linux:Linus我删除了Linux因为它就是个垃圾

1月 25日, Linus Torvalds 在 Linux 的 GitHub 仓库中提交了一个恶作剧 README页面,其备注名为《delete linux because it sucks》—— 我删除了 Linux ,因为它就是个垃圾。 翻译: 大家好,我是 linus torvalds,红极一时的 linux 的作者。你能够查看 repo 的 url 和文件顶部的名字,它们能够证实是我自己在提交。 我删除了 linux,因为我厌恶它,我认为它很烂。你应该去用这个很棒的操作系统,它叫做 windows xp,我刚刚发现它真的很棒。 然而为什么说这是一场恶作剧呢?因为 Linux 的源代码并没有被删除,而且有仔细的网友发现:该 README 最底部还有一个链接: 这个链接指向 Hacker News 黑客论坛的一个帖子,帖子具体介绍了 GitHub 现存的“虚伪提交”破绽:能够在 https://github.com/my/project的 URL下公布任意提交。 比方用 https://github.com/my/project/blob/<faked\_commit>/README.md 这种 URL ,就能够公布虚伪的 README 页面,这种虚伪提交不会呈现在我的项目的提交记录外面,也不属于任何一个分支,只能通过拜访特定的 URL 看到。而 Linus 这个恶作剧 README 文件正是利用了这个虚伪提交破绽,看一下这个 README 的 URL : 如果是失常的提交,URL 应该带有 commit 字眼,比方: ...

April 7, 2022 · 1 min · jiezi

关于linux:linux之sshkeygen命令

为ssh生成、治理和转换认证密钥,ssh-keygen命令 用于为“ssh”生成、治理和转换认证密钥,它反对RSA和DSA两种认证密钥。 SSH 密钥默认保留在 ~/.ssh 目录中。 如果没有 ~/.ssh 目录,ssh-keygen命令会应用正确的权限创立一个。 命令语法ssh-keygen [选项] 命令选项-b:指定密钥长度;-e:读取openssh的私钥或者公钥文件;-C:增加正文;-f:指定用来保留密钥的文件名;-i:读取未加密的ssh-v2兼容的私钥/公钥文件,而后在规范输出设备上显示openssh兼容的私钥/公钥;-l:显示公钥文件的指纹数据;-N:提供一个新密语;-P:提供(旧)密语;-q:静默模式;-t:指定要创立的密钥类型。根本示例以下 ssh-keygen 命令默认在 ~/.ssh 目录中生成 4096 位 SSH RSA 公钥和私钥文件。 如果以后地位存在 SSH 密钥对,这些文件将被笼罩。> ssh-keygen -m PEM -t rsa -b 4096应用ssh-kengen会在~/.ssh/目录下生成两个文件,不指定文件名和密钥类型的时候,默认生成的两个文件是id_rsa 第一个是私钥文件id_rsa.pub 第二个是公钥文件指定秘钥文件门路> ssh-keygen -t rsa -C 'rumenz@qq.com' -f ~/.ssh/github_id_rsa或者,在指定寄存文件时输出一个新的文件名> Enter file in which to save the key(/Users/rumenz/.ssh/id_rsa):id_rsa_gitlab多个SSH key的治理的状况就须要指定秘钥文件名。原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程

April 6, 2022 · 1 min · jiezi

关于linux:如何在Windows-10-上定时备份线上Minio-资源

@TOC 一、零碎环境操作系统:Windows 10 因为资源无限,无奈部署Minio 集群,只能退而求其次,整个定时备份有限度地保障下数据的残缺。 本文均在本地Windows 10 主机上进行操作。 二、软件装置软件方面,抉择的是 S3 Browser , 至于起因? Minio 客户端(mc) 自身就反对S3 的治理,当然,更重要的是, 收费 ! 下载地址: S3 Browser 间接抉择 Download 即可。 装置过程就没什么好说的了,抉择装置门路,一路 next 就能够了。 三、设置定时工作3.1 创立账号点击 【Accounts -> Add new account ..】菜单项 进入新增账户界面后,依照提醒填写信息: Display name(账户名称):填一个本人喜爱的即可Account type:抉择 S3 Compatible StorageREST Endpoint(连贯站点):这里输出部署了Minio 的具体主机 IP:端口号,也能够输出域名Access Key ID:输出Minio 的治理账户Secret Access Key:输出Minio 治理账户的明码Use secure transfer(SSL/TLS):默认是勾选的,这里咱们勾销平安连贯,站点处填写 IP:端口 的话不能勾选该选项,否则无奈连贯到对应的Minio 信息填写结束,点击【Add new account】 即可。若是失常连贯,那么就能够在主界面上看到线上Minio 的文件内容了。 3.2 同步测试点击【Tools -> Folder Sync Tool..】菜单项 进入了同步操作界面: ...

April 6, 2022 · 1 min · jiezi

关于linux:Linux之sshcopyid命令

把本地的ssh公钥文件装置到近程主机对应的账户下,ssh-copy-id命令 能够把本地主机的公钥复制到近程主机的authorized_keys文件上,ssh-copy-id命令也会给近程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置适合的权限。ssh-copy-id 命令能够把本地主机的公钥复制到近程主机的 authorized_keys 文件上。authorized_keys 文件用来验证 client 。应用 ssh-copy-id 命令将本地公钥复制到近程主机之后能够实现免密登录近程主机。ssh-copy-id 用来将本地公钥复制到近程主机。如果不传入 -i 参数,ssh-copy-id 应用默认 ~/.ssh/identity.pub 作为默认公钥。如果屡次运行 ssh-copy-id ,该命令不会查看反复,会在近程主机中屡次写入 authorized_keys 。应用 ssh-copy-id 的次要性能就是免明码登录近程主机。胜利运行该命令之后,就能够免去明码登录近程主机。 留神本地 ~/.ssh/id_rsa 的权限,chmod 400 ~/.ssh/id_rsa ,该文件蕴含用于受权的私钥,如果该文件能够被其余用户拜访,ssh 会疏忽该私钥。 命令语法ssh-copy-id [-i [identity_file]] [user@]machine 命令选项-i:指定公钥文件把本地的ssh公钥文件装置到近程主机对应的账户下> ssh-copy-id -i ~/.ssh/id_rsa.pub user@server原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程

April 5, 2022 · 1 min · jiezi

关于linux:Linux之sshadd命令

ssh-add命令是把专用密钥增加到ssh-agent的高速缓存中,从而进步ssh的认证速度。该命令地位在/usr/bin/ssh-add。命令语法ssh-add [-cDdLlXx] [-t life] [file ...]ssh-add -s pkcs11ssh-add -e pkcs11命令选项-D:删除ssh-agent中的所有密钥.-d:从ssh-agent中的删除密钥-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。-s pkcs11:增加PKCS#11共享库pkcs1提供的钥匙。-L:显示ssh-agent中的公钥-l:显示ssh-agent中的密钥-t life:对加载的密钥设置超时工夫,超时ssh-agent将主动卸载密钥-X:对ssh-agent进行解锁-x:对ssh-agent进行加锁开启ssh-agent默认操作系统是不开启ssh-agent的,须要手动关上> ssh-agent bash把专用密钥增加到ssh-agent的高速缓存中> ssh-add ~/.ssh/id_dsa从ssh-agent中删除密钥> ssh-add -d ~/.ssh/id_dsa.pub查看ssh-agent中的密钥> ssh-add -l常见谬误如果呈现Could not open a connection to your authentication agent. 谬误则须要先执行ssh-agent bash而后再执行ssh-add ~/.ssh/id_dsa原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程

April 4, 2022 · 1 min · jiezi

关于linux:source-insight40最常用到的设置

目录:1、罕用性能 1.1:全局查找1.2:以后文件查找1.3:高亮设置1.4:配置字体以及其余1.5:配置主动缩进1.6:其余<h2 id="1">1. <span id="jump1">罕用性能</span></h2> 参考链接:https://blog.csdn.net/wofreeo... <h3 id="1.1">1.1 <span id="jump1.1">全局查找:</span></h3> 全局查找 Ctl+/ 查找到的后果前后翻页:1、shift+F8 上一个查找对象; 2、shift+F9 下一个查找对象; <h3 id="1.2">1.2 <span id="jump1.2">以后文件查找:</span></h3> 以后文件查找 Ctl+F 查找到的后果前后翻页:1、F3 上一个查找对象; 2、F4 下一个查找对象; <h3 id="1.3">1.3 <span id="jump1.3">高亮设置:</span></h3> 高亮显示: 选中待高亮的内容 F8 ALT+Y,进入File Type Options配置->C/C++ Source file->Highlight references to seletcted symbol <h3 id="1.4">1.4 <span id="jump1.4">配置字体以及其余:</span></h3> ALT+Y,进入File Type Options配置->C/C++ Source file->screen front 抉择本人习惯的字体 <h3 id="1.5">1.5 <span id="jump1.5">配置主动缩进:</span></h3> 主动缩进:Alt+Y打开文档选项窗口,点击主动选项,选中第三个smart缩进,并把前面的两个勾都去掉,这样配置比拟好。能够尝试一下勾上的成果,而后和不勾的成果比照一下。 <h3 id="1.6">1.6 <span id="jump1.6">其余:</span></h3> 1、Ctrl+k是复制一行的快捷键2、ctrl+g 跳转到某一行3.Alt + F12能够切换,让字符宽度变得统一,或者是大小不同地显示。(解决函数不高亮的问题)4.Ctrl + O 搜寻文件,找到回车关上,找不到ESC退出5.Alt + G (或者F7) 关上Symbol Window.6.Ctrl + F 查找关键字。 Ctrl + Shift + F 全工程查找关键字如果工具栏没有了,能够把工具栏拉进去; ...

April 3, 2022 · 1 min · jiezi

关于linux:Linux之lastlog命令

显示零碎中所有用户最近一次登录信息,lastlog命令用于显示零碎中所有用户最近一次登录信息。lastlog文件在每次有用户登录时被查问。 能够应用lastlog命令查看某特定用户上次登录的工夫,并格式化输入上次登录日志/var/log/lastlog的内容。它依据UID排序显示登录名、端口号(tty)和上次登录工夫。如果一个用户从未登录过,lastlog显示**Never logged**。留神须要以root身份运行该命令。 命令语法lastlog [选项] 命令选项-b<天数>:显示指定天数前的登录信息;-h:显示召集令的帮忙信息;-t<天数>:显示指定天数以来的登录信息;-u<用户名>:显示指定用户的最近登录信息。显示零碎中所有账号最近一次登录工夫> lastlog -u rootUsername Port From Latestroot pts/3 27.18.175.139 Mon Apr 12 22:06:16 +0800 2021bin **Never logged in**daemon **Never logged in**adm **Never logged in**lp **Never logged in**sync **Never logged in**shutdown **Never logged in**halt **Never logged in**mail **Never logged in**operator **Never logged in**games **Never logged in**ftp **Never logged in**nobody **Never logged in**systemd-network **Never logged in**dbus **Never logged in**polkitd **Never logged in**sshd **Never logged in**postfix **Never logged in**chrony **Never logged in**nscd **Never logged in**ntp **Never logged in**tss **Never logged in**mysql **Never logged in**nginx **Never logged in**gluster **Never logged in**saslauth **Never logged in**deploy pts/2 Sun Feb 7 16:16:51 +0800 2021clamupdate **Never logged in**clamscan **Never logged in**原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

April 3, 2022 · 1 min · jiezi

关于linux:奔跑吧实验平台首个O0编译的Linux-50内核

“中美贸易战了,咱们才发现原来咱们的操作系统是单薄的,国内居然没有能够独当一面的操作系统,咱们服务器都用红帽或者centos,手机都用安卓,PC都用苹果或者windows。Linux内核是是咱们操作系统最好的弯道超车。当初曾经是Linux 5.0时代了,代码量远超2000w行,面对盘根错节的内核代码,如何高效学习Linux内核? 一个能单步调试最新内核的试验平台很重要,特地是应用“O0”来编译内核,能让你在调试内核过程中游鱼得水,粗浅领悟linux内核代码的精华。” 01 应用busybox工具制作的最小文件系统,该最小零碎仅仅蕴含了Linux零碎最罕用的命令,如ls,top等命令。如果要在此最小零碎中进行systemtap以及kdump等试验的话,咱们须要手动编译和装置这些工具,这个过程是相当简单和繁琐的。为此,咱们尝试应用Debian的根文件系统来结构一个玲珑而且好用的试验平台。在这个试验平台中,读者能够在线装置丰盛的软件包,比方kdump,crash,systemtap等工具。这个试验平台具备如下特点:  应用“O0”来编译内核  在主机Host中编译内核  应用QEMU来加载零碎  反对GDB单步调试内核以及Debian零碎  应用ARM64版本的Debian零碎的根文件系统  在线装置Debian软件包  反对在虚拟机里动静编译内核模块  反对Host主机和虚拟机共享文件 这个runninglinuxkernel内核默认应用GCC的“O0”优化等级来编译的。读者可能发现gdb在单步调试内核时会呈现光标乱跳并且无奈打印有些变量的值(例如呈现<optimized out>)等问题,其实这不是gdb或QEMU的问题。是因为内核编译的默认优化选项是O2,因而如果不心愿光标乱跳,能够尝试把linux-5.0根目录Makefile中的O2改成O0,然而这样编译时有问题,作者为此做了一些批改。最初须要特地阐明一下,应用GCC的“O0”优化等级编译内核会导致内核运行性能降落,因而咱们仅仅是为了不便单步调试内核。 (1)装置工具 首先在Ubuntu Linux 18.04中装置如下工具。 $ sudo apt-get install qemu libncurses5-dev gcc-aarch64-linux-gnu build- essential git (2)编译内核以及制作文件系统 在runninglinuxkernel目录上面有一个rootfs_debian_arm64.tar.xz文件,这个是基于ARM64版本的Debian零碎的根文件系统。然而这个根文件系统还只是一个半成品,咱们还须要依据编译好的内核来装置内核镜像和内核模块。整个过程比较复杂:  编译内核  编译内核模块  装置内核模块  装置内核头文件  装置编译内核模块必须依赖文件  制作ext4根文件系统 这个过程比拟繁琐,作者制作了一个脚本来简化上述过程。 留神,该脚本会应用dd命令来生成一个8GB大小的镜像文件,因而主机零碎须要保障至多须要10个GB的空余磁盘空间。若读者须要生成一个更大的根文件系统镜像,能够修该run_debian_arm64.sh这个脚本文件。 $ cd runninglinuxkernel-5.0 $ ./run_debian_arm64.sh build 执行上述脚本须要几十分钟,依赖于主机的计算能力。 (3)运行方才编译好的ARM64版本的Debian零碎。 运行run_debian_arm64.sh脚本,输出run参数即可。 $ sudo ./run_debian_arm64.sh run 运行的后果如下: $ sudo ./run_debian_arm64.sh run ...

April 2, 2022 · 1 min · jiezi

关于linux:Linux之lastb命令

列出登入零碎失败的用户相干信息。lastb命令 用于显示用户谬误的登录列表,此指令能够发现零碎的登录异样。独自执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全副显示进去。命令语法lastb [选项] [参数] 命令选项-a:把从何处登入零碎的主机名称或ip地址显示在最初一行;-d:将IP地址转换成主机名称;-f<记录文件>:指定记录文件;-n<显示列数>或-<显示列数>:设置列出名单的显示列数;-R:不显示登入零碎的主机名称或IP地址;-x:显示零碎关机,从新开机,以及执行等级的扭转等信息。命令参数用户名:显示中的用户的登录列表;终端:显示从指定终端的登录列表。应用ssh的登录失败不会记录在btmp文件中。> lastb | headroot ssh:notty 120.132.112.75 Sun Apr 11 22:18 - 22:18 (00:00) root ssh:notty 185.36.81.44 Sun Apr 11 22:18 - 22:18 (00:00) root ssh:notty 101.89.138.113 Sun Apr 11 22:18 - 22:18 (00:00) admin1 ssh:notty 123.21.35.183 Sun Apr 11 22:18 - 22:18 (00:00) admin1 ssh:notty 123.21.35.183 Sun Apr 11 22:17 - 22:17 (00:00) adria ssh:notty 132.232.32.203 Sun Apr 11 22:17 - 22:17 (00:00) adria ssh:notty 132.232.32.203 Sun Apr 11 22:17 - 22:17 (00:00) root ssh:notty 115.79.35.110 Sun Apr 11 22:17 - 22:17 (00:00) user ssh:notty 103.248.31.50 Sun Apr 11 22:17 - 22:17 (00:00) user ssh:notty 103.248.31.50 Sun Apr 11 22:17 - 22:17 (00:00)lastb指令,它会读取位于/var/log/btmp的文件,并把该文件内容记录的登入零碎失败的用户名单,全副显示进去。btmp是二进制文件,所以用last -f /var/log/btmp后果一样。找出指定用户名登录失败的记录> lastb root | headroot ssh:notty 123.21.35.183 Sun Apr 11 22:25 - 22:25 (00:00) root ssh:notty 123.21.35.183 Sun Apr 11 22:24 - 22:24 (00:00) root ssh:notty 123.21.35.183 Sun Apr 11 22:24 - 22:24 (00:00) root ssh:notty 120.132.112.75 Sun Apr 11 22:24 - 22:24 (00:00) root ssh:notty 81.69.251.186 Sun Apr 11 22:23 - 22:23 (00:00) root ssh:notty 123.21.35.183 Sun Apr 11 22:23 - 22:23 (00:00) root ssh:notty 123.21.35.183 Sun Apr 11 22:22 - 22:22 (00:00) root ssh:notty 81.69.251.186 Sun Apr 11 22:21 - 22:21 (00:00) root ssh:notty 120.132.112.75 Sun Apr 11 22:21 - 22:21 (00:00) root ssh:notty 120.132.112.75 Sun Apr 11 22:18 - 22:18 (00:00)革除lastb对应的文件内容> echo > /var/log/btmp原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

April 2, 2022 · 2 min · jiezi

关于linux:Linux-管道操作符详解

管道操作符 : |咱们在Linux下常常要用到管道操作符,也就是"|",即一个竖线。这个操作符的作用对于常常应用Linux的人来说,看上去非常直观: 不就是将前一个指令的后果交给后一个指令吗? 举个例子: cat system.log | grep hello复制代码下面的指令能够让咱们过滤出system.log这个文件中蕴含hello字符串的行,而后打印到屏幕上。 什么叫指令的后果问题就来了,一个指令的后果是什么,这个说法非常混同。 是指这个指令输入的日志?是指这个指令的返回码?(有些人可能不晓得这货色)还是指啥啥啥的? 实际上,指令的后果这个概念并没有一个严格定义,所以当咱们说,一个指令的后果的时候,常常跟业务场景有关系。比如说,一个图像处理程序的后果,就应该是一个图像,这才是合乎常理的。 如何形容 cat 指令的行为首先咱们来看一下 cat system.log 这个指令的行为。 也就是将 system.log 中的内容打印到屏幕上。 这个过程能够细说,因为将内容打印到屏幕上实际上还是不够精确。 那么这里就不得不牵扯出Linux下文件的一些概念。 程序关上文件以及文件描述符在 Linux 零碎中,一个程序是能够关上一个文件的,这个很容易了解。 那么过程(个别正在运行的程序称之为过程)是如何管理文件的呢? 那就是用文件描述符这种货色,这是一个数字以及与之相关联的一堆数据。 一个过程关上一个文件,就会创立一个新的文件描述符,这个数字个别是自增的。比如说,以后的文件描述符是100。那么再关上一个新的文件,这个新的文件的描述符就是101。当然过程如果敞开文件,这个描述符是能够反复利用的。这里不多扯。 如果用图来示意这个概念,应该是上面的样子: 咱们能够看出,不同的数字代表了不同的文件。 那么在哪里能列出一个过程所关上的文件呢? 在Linux下,能够先找到这个过程的PID,假如是 20000 进入如下的目录: cd /proc/20000/fd复制代码这个目录寄存的就是 20000 这个过程所关上的文件了。ls一下,如图: 正如我所形容的那样,都是数字。 一些约定俗成的描述符从下面的图中,咱们看到,描述符是从0开始的。那么0是什么文件呢? 在Linux下,每一个过程启动的时候,都会默认关上三个文件,用0 ,1, 2来当做他们的描述符。 那么0, 1, 2别离代表哪三个文件呢? 0 : 代表规范输出1 : 代表规范输入2 : 代表谬误输入兴许下面的形容,还是不够清晰。 再进一步,一般来说, 规范输出,就是指 键盘输入规范输入,就是指输入到屏幕谬误输入,也是指输入到屏幕文件描述符的作用如果你在Linux下,写过读取键盘输入的程序,那么就这样了解。 你读取的其实就是 0 这个描述符所代表的文件的内容:也就是键盘。 如果你应用过相似 print 这种函数,打印过日志的话,那么其实就是往 1 这个描述符所代表的文件里输入内容,对,这个内容通过屏幕展示进去了。 实际上,这种读取和写入的操作,对于所有文件来说都是一样的,至多在应用上来说,是一样的。 ...

April 2, 2022 · 1 min · jiezi

关于linux:笨叔点滴10-中断到底来了吗

“ 我以前始终想不明确:为什么我一个小小散户竟能左右整个股市?不论之前涨势如许疯狂,我一买入它必然上涨!我一卖出它就上涨。我一空仓大盘疯涨,我一满仓大盘狂泻。手握百亿资金的庄家们竟死死盯着我手里这几万块钱不放。这到底是为啥?” A股让我琢磨不透,然而在计算机里,中断和过程也是让人琢磨不透?比方某个微信群里探讨问题:在非抢占Linux内核中,为啥中断产生在内核态的时候不去抢占? 这个问题显著就是中断和过程之间的那些扯不分明的事件。为啥在Linux 2.4内核里没有实现中断抢占呢? 其实大家都是从当初Linux 4.x内核的眼光来看老版本的内核。要晓得LInux内核也是90后哟,它诞生于 91年,当初才27岁。 对于中断和过程之间那些事,笨叔感觉如下几个问题挺有意思 中断产生时候,ARM处理器到底帮你做了那些事件? [大家能够见《奔跑吧Linux内核》第618~ 625页] 如果中断产生在内核态,它的中断上下文 到底寄存在什么中央?有那些寄存器须要存?或者说那些寄存器是主演,那些寄存器其实是主角? [参考第625页这个图] 这个问题,大家须要搞清楚,IRQ栈和SVC栈到底存了些啥东东,那些寄存器是必须的,也就是配角,没有它不行。那些寄存器其实跑龙套的,有没有不伤大雅。 3. 如果中断产生在用户态,它在中断解决实现之后,它是怎么返回到用户空间?[这个问题,大家能够去看汇编,这个在《奔跑吧》里没有去详细分析这个__irq_usr这个汇编函数,这个函数不简单,大家能够本人去浏览]假如时钟的tick中断来了,而且它产生在用户空间,硬件中断实现之后,查看当初须要调度,那么调度到下一个过程next运行,假如这个next过程也是用户过程,那么这个next过程到底从什么中央开始执行?[这个问题,其实很有意思,假如A用户过程在B这个中央,产生了中断,之后,又产生了调度。那如果一段时间之后,A过程又被调度回来,它是不是从B这个中央开始执行呢? 要搞清楚这个问题,大家能够看《奔跑吧linux内核》第369~374页的形容,也能够参考这个图。其实关键点是在switch_to函数的实现和了解上]。 switch_to()函数如果简略的总结的话,其实两条语句就够了。如上面: cpu_switch_to: stmia r0!, {r4 - sl, fp, sp, lr} @store regs on stackldmia r1, {r4 - sl, fp, sp, pc} @load all regs saved previously假如r0指向prev过程的cpu_context数据结构,r1指向next的cpu_context数据结构。 第一条汇编把prev过程的sp和lr寄存器保留到r0指向的cpu_context里,而后把next过程中cpu_context里的sp和lr寄存器装载在 CPU硬件的寄存器里,就这么简略实现了 过程上下文切换。实现切换之后,next过程就从ldmia这条指令下一条指令开始运行了,真的哟,真的开始运行了。。。 小明纳闷的说:笨叔,我怎么能验证你说的鬼话呢? 笨叔:其实很简略,你用笨叔的“O0”内核来debug单步一下,你能够在switch_to函数里设置断点,而后察看prev和next过程的cpu_context外面的lr都装了啥值, 小明:唷,好方法,我就去试试 笨叔:同时能够能够把prev和next的sp栈打印进去看看哟 小明:好嘞,笨叔 cpu_context是啥什么鬼,小伙伴能够看第342页的copy_thread()函数里,过程第一次被创立的时候cpu_context里到底装了什么葫芦。 预计有小伙伴对pt_regs和cpu_context这两个数据结构玩意搞糊涂了吧,其实如果,你把这两个数据结构的用意和用处想明确了,上述这个问题都不是问题。pt_regs是保留以后过程产生中断或者异样或者零碎调用等状况的时候CPU的上下文,它是寄居在过程内核栈的顶部。而cpu_context算是PCB的外围保留成员,PCB是啥?不是电路板,是过程外围管制块。cpu_context只是用来保留过程切换时候的CPU状态,其实就是SP和LR有用,他们俩个是配角。 明天笨叔废话一大堆,呵呵。笨叔弱弱问一句,我的中断来了,A股的“底”到底到木有?欢送小伙伴在评论区留言,到“底”来了没? 最初,大家记得关注笨叔的书和配套视频,《奔跑吧linux内核》,笨叔出品,笨笨的滋味,总有你想要的!

April 2, 2022 · 1 min · jiezi

关于linux:笨叔点滴7-再也回不去的C语言

“ 开年,我老婆携2万块进A股,明天我登录她账户,账上已有5万块,我蛮震惊的! 问:“你怎么做到的?” 她说:“我前些日子又转进去8万。” 咱们80后这代人大略是大一的时候学习C语言的,可能当初90后这一代也差不多,然而当初00后这一代人曾经从小学,初中开始就学习C语言了。 笨叔在工作中发现,能纯熟应用C语言的程序猿真的不多,大部分人都去玩Java,PHP,go,python等高级语言,像C这种时时刻刻须要和内存地址和指针做奋斗的语言,显得太low。 上面是一个工作中的案例,这个案例和打了“真”的狂犬疫苗一样,程序乱跳,猴犀利! 小明同学想在Qemu中实现一个裸机零碎,依葫芦画瓢定义了一个task_struct数据结构。依照Linux内核的实现,在零碎第一个过程的task_struct数据结构,那么这过程的栈是在 task_struct数据结构的8KB大小的顶部。如这个图所示。 小明同学三下五除二在main.c文件中实现了init_task,如上面所示。 static struct task_struct init_task = INIT_TASK; define INIT_TASK \{ \ .state = -1, \.counter = 0, \.priority = 1, \.preempt_count = 0, \.flags = PF_KTHREAD, \.pid = 0, \} 定义完init_task之后,小明同学 接下来依照下面这个图,想当然来 实现一个“神来之笔”的拜访,来获取以后过程的栈框(stack frame)。 struct pt_regs * get_current_pt_regs(struct task_struct *tsk) { unsigned long p; p = (unsigned long)tsk + THREAD_SIZE - sizeof(struct pt_regs);return (struct pt_regs *)p;} 自从小明实现和调用这函数之后,他的程序再也没有失常过,不是呈现“Data abort”异样,就是程序乱跑,和打了“真”的狂犬疫苗一样。笨叔和小明同学说,你学Linux内核的代码实现,只看到了皮毛,还须要持续深刻学习C语言哟! 大家看看小明同学的代码呈现是啥故障吗? 你们有答案了,别忘了在评论区留言哟! ...

April 2, 2022 · 1 min · jiezi

关于linux:笨叔点滴6-叔这个git咋玩啊

“明天在食堂门口遇到了暗恋已久的女神,女神笑着给我递了张纸条就进食堂了,我关上纸条看到下面写的两个字“钙氧钨氧”,我认为是瞎写的就扔了,早晨我睡觉时越想越不对劲,当初我肠子都悔青了... ” 大家有没有被这个语文搞晕了,反正笨叔是晕了! 上面和大家讲一个git的案例。是这样的,咱们接了我的项目,在抉择内核版本的时候,客户说,既然笨叔的内核用4.0,那咱们就用4.0开发吧,咱们一听好快乐。客户说,你们先建一个git树,这个git树里须要蕴含Linux 4.0所有社区里的git log信息。 我让小明同学去建这个git树,后果小明同学搞了1天还没搞进去。他说,叔,我只会建git 树的时候一把把所有文件都push到新的git树里,这个把社区的git log搞进行怎么玩啊,我网上搜了一天了,也没找到靠谱的文章。 那咋办,咱们和小明同学一起来建这个树吧。 01 建树啦 比方咱们在码云上建这棵树。 1) 登录Gitee网站,注册一个新账号。 2) 增加SSH key到gitee上。 3) 在Gitee中创立我的项目 在“Name”对话框中填入“ben-linux-test”,其余放弃默认设置,点击“New”按钮就胜利创立了一个新的git仓库了。从github网页中咱们能找到咱们新建的仓库的地址: https://gitee.com/benshushu/b... 4) 下载这个仓库到本地。 $ git clone https://gitee.com/benshushu/b... 5) 这时候这个仓库是空的,咱们生成一个补丁并且提交到近程仓库中。 $ cd ben-linux-test $ echo "#ben-linux-test" >> README.md $ git add README.md $ git commit -m "firstcommit" $ git push origin master 最初通过git push origin master命令把本地仓库推送到github上,须要输出github上的用户名和明码。 6) 下载Linux官网仓库代码。接下来的工作就要在这个本地的git仓库里下载官网linux-4.0的代码,那应该怎么呢?首先咱们须要增加Linux官网的git仓库。这里能够应用“git remote add”命令来增加一个近程仓库地址,如上面命令所示。 $ git remote add linux https://git.kernel.org/pub/sc... git fetch命令能够把新增加的近程仓库代码下载到本地。 ...

April 2, 2022 · 1 min · jiezi

关于linux:笨叔点滴3-栈谁便宜了

“ 有一次和女同学A吃饭,她带着小姑凉一块。在吃饭期间,同学给夹了块豆腐,小姑凉用天真无邪的眼神看着我:笨叔,你除了占我妈便宜,你还占过谁的便宜? 我登时无语了。。。” 下面是网上的一个小段子,生存里常常有人说谁谁占了谁的便宜?那计算机是不是也有占小便宜呢?计算机里还真有不少便宜能够“栈”,只不过不是“占”,而是各种模式的“栈”,不晓得大家知不知道计算机里有多少个栈?比如说: 内核栈中断栈过程栈线程栈硬件栈软件栈堆栈还有人占着茅坑 昨天咱们聊了ARM32上或是奇葩或者先进的中断栈,咱们明天持续来聊“栈”。01 啥是栈 — 先看看啥是栈?栈的英文叫做stack。那中文里栈是怎么解释的呢? 1.贮存货物或供旅客住宿的屋宇:货栈|客栈。 2.养家畜的竹、木栅栏:马栈。 那在计算机,它是啥呢,其实就是一个存放数据的数据结构类型。一种只能在一端进行插入和删除操作的非凡线性表。它依照先进后出的准则存储数据,先进入的数据被压入栈底,最初的数据在栈顶,须要读数据的时候从栈顶开始弹出数据(最初一个数据被第一个读出来)。看上面这个图应该比较清楚了。 这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。向栈中存储数据称为PUSH,从栈中取数据称为POP。 大多数的处理器架构,都有实现硬件栈。有专门的栈指针寄存器,以及特定的硬件指令来实现 入栈/出栈 的操作。例如在 ARM 架构上,R13 (SP) 指针是堆栈指针寄存器,而 PUSH 是用于压栈的汇编指令,POP 则是出栈的汇编指令。 咱们经常听人说,堆栈,那堆栈是个什么鬼?到底是堆呢还是栈呢?其实堆栈自身就是栈,只是换了个形象的名字,换了个马甲,有些人就昏了。 那堆是什么?在数据结构里,堆能够被看成是一棵树,如:堆排序。在操作系统里,堆是操作系统里治理内存的一种形式, 个别由程序员调配开释, 若程序员不开释,程序完结时可能由OS回收,调配形式倒是相似于链表。而栈,由操作系统主动调配开释 ,寄存函数的参数值,局部变量的值等。 所以,堆和栈还有堆栈,他们三个是不是容易搞混了。 02 栈有啥子用嘛? — 栈次要是有两大作用,一个是函数调用,另外一个是过程调度。 先说说函数调用。咱们晓得函数调用须要留神哪些货色?大家想到的可能是 参数怎么传 函数返回值怎么传 那在不同的计算机体系结构里,有不同的做法,然而他们雷同的中央是肯定会用到栈。 ARM和ARM64应用的是ATPCS(ARM-Thumb Procedure Call Standard/ARM-Thumb过程调用规范)的函数调用约定。 对于ARM来说: 参数1~参数4 别离保留到 R0~R3 寄存器中 ,剩下的参数从右往左一次入栈,返回值寄存在 R0 中。 对于ARM64来说: 参数1~参数8 别离保留到 X0~X7 寄存器中 ,剩下的参数从右往左一次入栈,返回值寄存在 X0 中。 ...

April 1, 2022 · 1 min · jiezi

关于linux:笨叔点滴2-为啥子ARM32体系结构中每个处理模式都有一个单独的栈

“ 各位小伙伴,我是小笨叔。笨叔尽量每天给大家分享一点点小东西,可能是笨笨的、傻傻的、甜甜的、酸酸的小点滴,记录这每一刻每一天的小感悟,就像小雨点一样,它会缓缓会合到大江大海!” 上次提到LinuxCon大会,这种大会正如笨叔说的 “听君一席话,胜读十年书” 笨叔有幸在北京访问了Linux社区外面一位老前辈,凝听他当年在80~90年代做CPU处理器体系结构和Linux操作系统的鲜为人知的历史和对人生和技术的感悟,让笨叔大受启发。 在闲聊中,他提到为什么ARM32的处理器须要7种处理器模式,而且每一种处理器模式都须要一个独自的栈空间?比方irq模式,为什么ARM32的设计里须要一个独自的irq模式,而且这个irq模式只有12个字节?为什么不和SVC模式专用一个栈呢?比方x86等传统经典的处理器架构里,是没有为irq独自开拓一个栈的。 这些是十分好的问题,引发了笨叔回到上海持续思考。本文抛砖引玉,心愿有趣味的小伙伴能够在文章前面留言发表您的观点。 01 ARM32上的设计 — 咱们来看一下ARM32上,如果产生了一个irq中断,ARM32处理器是怎么解决的?咱们晓得ARM32外面有一个奇葩的7个工作模式: 如上图所示,在ARMV6之前,ARM的处理器模式有7个。失常的内核是跑在SVC模式的,用户态app是跑在User模式,而其余几个就是咱们常说的IRQ中断,FIQ中断和几个异样模式。如果比照x86的话,x86只有ring0 ~ ring3这4个特权级别,内核跑着ring 0里,而用户态跑在ring 3里,而没有辨别SVC模式,IRQ模式等。 咱们在看看ARMv7上改良。 抛开secure模式不谈,在non-secure即normal world来说,ARMv7在持续沿用7个模式的根底上又辨别了PL0模式和PL1和PL2模式, PL是privilege level的意思。简略来说: PL0模式:用户模式,等同于以前的USER模式 PL1操作系统模式:蕴含以前的SVC模式,IRQ模式,FIQ模式 PL2虚拟化模式:新增的模式,有点相似x86上虚拟化扩大的root模式 如果说ARM32的设计的正当的话,咱们看看ARM v8里的设计。 ARMv8外面曾经齐全摈弃ARMv7之前的做法了,连名字都该了,当初叫做EL,也就是exception level,而且每一个EL级别的异样也变了。其中 名字改了之后,每个EL级别管辖的范畴和权力就不一样了,是不是很像x86外面的ring0~ring3呢,谁叫你x86在PC和服务器上这么火呢?所以,x86上的长处,ARM当然要好好学习啦。 除了这个之外,还齐全摈弃了SVC, IRQ, FIQ等等那7个模式了,这和ARMv7又有很多不同了。当初ARMv8上,异样分成两种: 同步异样:比方MMU的一些拜访权限问题 异步异样:这个就大家常见的IRQ, FIQ, ERR 而且还有一点,ARMv8外面,不再为每个异样类型设置一个专门的栈,比方IRQ曾经没有独自的栈了,当初的栈,只有每个EL才有栈。 02 ARM32中断栈 — ARM32产生中断之后,IRQ栈和SVC栈的状况如下: 上述这个图就是ARM32在Linux内核中,产生IRQ中,栈的变动状况,大家能够看《奔跑吧Linux内核》第621~626页。总的来说,IRQ模式上面的栈值保留了产生中断那个现场的SPSR, LR, SP_IRQ三个寄存器的内容。而后切换模式到SVC模式,进一步保留通用寄存器到SVC的栈空间里。所以在ARM32里,中断产生之后,其实是应用了两个模式的栈,一个是IRQ的栈,另外一个SVC模式的栈,这个SVC的栈,在Linux内核里其实就是内核栈。 那在X86里,是怎么样的呢?x86处理器里有一个TSS(Task State Segment),当中断产生时,用户过程或者处于用户态(特权级3)或者处于内核态(特权级0),如果是在用户态,那么会产生栈的切换问题,也就是会切换到内核态的栈,如果是在内核态,那么就没有栈切换的问题。然而x86处理器在特权级0上只有一个ESP,这意味着中断产生后,只能应用一个栈,这个栈就是内核栈(kernel stack)。处理器的硬件逻辑会将被中断过程的下条指令(CS,EIP)以及EFLAG压入栈,当然如果产生用户态栈向内核态栈的切换,处理器还会把用户态的(SS, ESP)也压入栈,此时应用的就是内核栈。这个行为属于处理器的硬件逻辑领域,不是系统软件的行为。 另外一方面,当初Linux内核在x86或者其余体系结构里,曾经反对内核栈和中断栈拆散的办法了。当然,这里说的中断栈不是本文说的那个CPU外部的中断栈,而是和内核栈相似的一个栈,也就是在中断处理程序中,和SVC模式应用的内核栈拆散。这是内核设计的问题了,总之,中断栈可与内核栈共享,也可重新分配一个独立的中断栈。然而负面因素是中断栈如果产生嵌套,可能毁坏内核栈的一些数据,因为毕竟共享,所以栈空间有时候难免会顾此失彼。所以在x86的Linux中,总是应用拆散的内核栈设计。零碎中每个过程都会领有属于本人的内核栈,而零碎中每个CPU都将为中断解决筹备了两个独立的中断栈,别离是hardirq栈和softirq栈。留神,这是OS的设计问题,不是明天咱们想探讨的CPU硬件设计上的中断栈拆散。 上面是Linux内核外面x86架构应用拆散的中断栈的补丁。 https://git.kernel.org/pub/sc... 那为啥子ARM32要为IRQ模式设置独自一个12字节的栈呢,而不是复用SVC模式的栈呢? 笨叔翻阅了ARM相干的技术文档也没找到答案,我猜想可能是因为一个重要的起因是ARM32这个架构设计的时候是90年代,那个年代的ARM处理器是相当慢的,独自一个IRQ栈能够进步中断的响应速度,特地是晚期的ARM处理器次要利用场景是嵌入式零碎,反对中断嵌套的形式。从下面的x86的拆散的中断栈的patch来看,拆散的中断栈确实有不少劣势,至多能够保障不会导致SVC模式的栈产生overflow。那到底是ARM32这种设计先进呢还是ARMv8和x86的设计理念先进呢,是提高还是倒退呢?我有点confuse了! 笨叔抛砖引玉,心愿感兴趣的同学能够在前面留言,大家一起探讨。

April 1, 2022 · 1 min · jiezi

关于linux:ARMv9的SVESVE2入门教程-2

如何运行SVE程序? 在深刻学习SVE指令之前,咱们须要搭建一个能运行和调试SVE指令的试验环境。因为树莓派4b不反对SVE扩大,咱们能够采纳QEMU+ARM64试验平台来模仿SVE指令。runninglinuxkernel_5.0我的项目在github里,或者腾讯coding仓库中,如何应用请参考外面的Readme. 拜访github:https://github.com/figozhang/... 拜访腾讯coding仓库:https://benshushu.coding.net/...要想在QEMU中使能SVE扩大,须要在QEMU程序中指定“-cpu”参数,例如“-cpu max,sve=on,sve256=on”示意使能所有CPU的个性,包含SVE扩大,另外SVE反对的矢量长度设置为256位。读者也能够设置其余长度的SVE,例如1024位的SVE长度。启动QEMU的命令如下。 $ qemu-system-aarch64 -m 1024 -cpu max,sve=on,sve256=on -M virt,gic-version=3,its=on,iommu=smmuv3 -nographic -smp 4 -kernel arch/arm64/boot/Image -append "noinintrd sched_debug root=/dev/vda rootfstype=ext4 rw crashkernel=256M loglevel=8" -drive if=none,file=rootfs_debian_arm64.ext4,id=hd0 -device virtio-blk-device,drive=hd0 --fsdev local,id=kmod_dev,path=./kmodules,security_model=none -device virtio-9p-pci,fsdev=kmod_dev,mount_tag=kmod_mount上面编写一个应用SVE指令的简略汇编程序。 <hello_sve.S> 1 .section .data2 3 .align 34 print_hello_sve:5 .string "hello sve\n"6 7 .section .text8 .globl main9 main:10 stp x29, x30, [sp, -16]!1112 mov x2, #413 whilelo p0.s, xzr, x214 mov z0.s, p0/z, #0x55 1516 adrp x0, print_hello_sve17 add x0, x0, :lo12:print_hello_sve18 bl printf1920 mov x0, #021 ldp x29, x30, [sp], 1622 ret这个汇编程序打印“hello sve”。为了测试是否编译和运行SVE指令,咱们在第13~14行里增加两条SVE指令,其中WHILELO指令初始化P0预测寄存器,对于WHILELO指令咱们前面会介绍。MOV是把立刻数搬移到Z0矢量寄存器中。 ...

April 1, 2022 · 1 min · jiezi

关于linux:Linux之last命令

列出目前与过来登入零碎的用户相干信息。last命令是一个十分有用的命令行实用程序,用于显示近期用户或终端的登录状况,管理员能够获知谁已经或者希图连贯零碎。当你须要跟踪用户流动或考察可能的安全漏洞时,此性能十分有用。命令语法last [选项][参数] 命令选项-a:把从何处登入零碎的主机名称或ip地址,显示在最初一行;-d:将IP地址转换成主机名称;-f <记录文件>:指定记录文件。-n <显示列数>或-<显示列数>:设置列出名单的显示列数;-R:不显示登入零碎的主机名称或IP地址;-x:显示零碎关机,从新开机,以及执行等级的扭转等信息。-i 显示特定ip登录的状况-t 显示YYYYMMDDHHMMSS之前的信息-F (--fulltime)选项能够查看残缺的登录和登出工夫和日期通过-p,-s和-t选项指定的工夫,能够应用以下格局YYYYMMDDhhmmssYYYY-MM-DD hh:mm:ssYYYY-MM-DD hh:mm (seconds will be set to 00)YYYY-MM-DD (time will be set to 00:00:00)hh:mm:ss (date will be set to today)hh:mm (date will be set to today, seconds to 00)nowyesterday (time is set to 00:00:00)today (time is set to 00:00:00)tomorrow (time is set to 00:00:00)+5min-5days命令参数用户名:显示用户登录列表;终端:显示从指定终端的登录列表。显示前最近的5条登录日期> last -5root pts/3 27.17.144.169 Sat Apr 10 23:20 still logged in root pts/3 27.17.144.126 Fri Apr 9 13:09 - 15:32 (02:22) root pts/3 27.17.211.92 Fri Apr 9 11:48 - 11:59 (00:10) root pts/3 27.17.211.92 Fri Apr 9 11:36 - 11:40 (00:03) root pts/3 27.17.211.92 Fri Apr 9 11:34 - 11:35 (00:01) wtmp begins Tue Jul 30 14:19:57 2019显示root用户的登录日志> last root暗藏IP地址和网络名称> last -5 -Rroot pts/3 Sat Apr 10 23:20 still logged in root pts/3 Fri Apr 9 13:09 - 15:32 (02:22) root pts/3 Fri Apr 9 11:48 - 11:59 (00:10) root pts/3 Fri Apr 9 11:36 - 11:40 (00:03) root pts/3 Fri Apr 9 11:34 - 11:35 (00:01) 查看残缺的登录和登出工夫和日期> last -5 -Froot pts/3 27.17.144.169 Sat Apr 10 23:20:34 2021 still logged in root pts/3 27.17.144.126 Fri Apr 9 13:09:41 2021 - Fri Apr 9 15:32:16 2021 (02:22) root pts/3 27.17.211.92 Fri Apr 9 11:48:05 2021 - Fri Apr 9 11:59:02 2021 (00:10) root pts/3 27.17.211.92 Fri Apr 9 11:36:29 2021 - Fri Apr 9 11:40:26 2021 (00:03) root pts/3 27.17.211.92 Fri Apr 9 11:34:29 2021 - Fri Apr 9 11:35:39 2021 (00:01) 原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

April 1, 2022 · 2 min · jiezi

关于linux:Linux之tr命令

将字符进行替换压缩和删除,tr命令 能够对来自规范输出的字符进行替换、压缩和删除。它能够将一组字符变成另一组字符,常常用来编写柔美的单行命令,作用很弱小。命令语法tr [选项] [字符串1] [字符串2] 命令选项-c或——complerment:取代所有不属于第一字符集的字符;-d或——delete:删除所有属于第一字符集的字符;-s或--squeeze-repeats:把间断反复的字符以独自一个字符示意;-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。命令参数字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须应用参数“字符集2”指定转换的指标字符集。但执行删除操作时,不须要参数“字符集2”;字符集2:指定要转换成的指标字符集。将输出字符由大写转换为小写> echo "HELLO WORLD" | tr 'A-Z' 'a-z'hello world'A-Z' 和 'a-z'都是汇合,汇合是能够本人制订的,例如:'ABD-}'、'bB.,'、'a-de-h'、'a-c0-9'都属于汇合,汇合里能够应用'\n'、'\t',能够能够应用其余ASCII字符。应用tr删除字符> echo "hello 123 world 456" | tr -d '0-9'hello world 将制表符转换为空格:> cat text | tr '\t' ''字符集补集,从输出文本中将不在补集中的所有字符删除:> echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n' 1 2 3 4此例中,补集中蕴含了数字0~9、空格和换行符\n,所以没有被删除,其余字符全副被删除了。用tr压缩字符,能够压缩输出中反复的字符:> echo "thissss is a text linnnnnnne." | tr -s ' sn'this is a text line.删除Windows文件“造成”的'^M'字符:> cat a.log | tr "\r" "\n" > b.log//或者> cat a.log | tr -d "\r" > b.log删除文件中的空行> echo -e "1\n\n\n2\n\n\n3\n\n\n" | tr -s '\n'123将多行内容合并为一行> echo -e "1\n\n\n2\n\n\n3\n\n\n" | tr -d '\n'123将多个间断空格合并为一个空格,并将空格替换为破折号-> echo "2021 03 01" |tr -s ' ' '-'2021-03-01删除非数字字符> echo "2021assefdf03fff01" |tr -d -c '[0-9]'20210301原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 31, 2022 · 1 min · jiezi

关于linux:少年黑客对自由软件的自由漫谈

导读“天下没有收费的午餐。”这句话只说对了一半。对于软件业,或者更精确一点,对于自在软件业,这并不始终是对的。商业软件公司正在管制着咱们 —— 一般计算机用户甚至业余的程序员 —— 的大脑,在咱们的潜意识外面,仿佛只有大公司的货色才品质好。上面是几个场景:• 我偏向通过免费的网课、系列视频或者文章来学习技术,而不是浏览软件自带的收费文档或者是收费的外语甚至中文规范,因为前者更容易。• 收费的货色都是劣质的。只有免费的货色才能够保证质量高。• 才不会有人将优质资源公开收费,除非他们有着非凡目标。• 大公司的软件比一群只因为兴趣爱好的人写的软件更稳固、更值得信赖。绝大多数普通用户都会认为这几条全都是正确的,甚至一些有着几年教训的“高级”程序员也是。他们宁愿买某公司的 IDE 来开发,而不是应用轻量级的、收费的 Vim,后者毫无疑问是大多数 UNIX/Linux 程序员的必备。这所有的所有,都是因为: 一、微妙的商业软件自从 Windows 零碎胜利,胜利商人比尔•盖茨就被各种各样的人放在各种各样的中央“膜拜”。一方面可能是因为他太有钱,一方面可能是因为他做了这么个零碎(网络上还有很多人声称比尔•盖茨设计并实现了 Windows 零碎)。然而,在这个“平凡”的窗口零碎死机、蓝屏之时,大多数人骂的却是他们的电脑:“什么破电脑!见鬼!”,而不是零碎(顺便说一句,还有人将 “Windows” 称作电脑)。真微妙。转观有数的 Linux 开发者(哪怕是林纳斯•托瓦兹),都没有受到这样的待遇。软件是值得付钱的,连自由软件首领理查德•斯托曼都没有否定这一点。然而,你真的确定那些蹩脚的、动不动就“该应用程序无响应”的货色值得这么多钱吗?我反正感觉不是。“某窗口零碎”还有一个非常神奇之处,它如同是反对 POSIX 的,毕竟设计某新 32 位零碎的时候这不就是其中一个指标吗?(当然有的人会跟我说那应该是 ISO C)实际上呢,如同它只反对了为数不多的几个零碎调用,剩下的简直都是规范库函数(strlen 那样的),就连根本的 POSIX 格调的 open 都没有……与之比照的是对各种规范都反对的 Linux。它反对全套的 POSIX (streams 除外),性能测试也不错(当然,“某窗口零碎”的裸机测试也不错。留神,是裸机),更令人自豪的是,优良的过程创立以及文件系统。与此相比,窗口零碎的文件系统以及过程创立就不尽人意。我晓得有些人又要说啥了:咱们的平安认证等级(A1 那样的玩意儿)比你们高!这是无奈防止的,传统 UNIX 的设计就素来没想过这一点,用户被形象成了 同组、拥有者以及其余(当然,root 总是有权限)。但就我集体的观点来说,这就足够了,毕竟我没见过有多少用户会创立两个用户,他们甚至还在用 Administrator 或者是以一些愚昧的字符为名字,例如 “abc123”。再来看看软件。 二、设计哲学 (当然不是“某窗口零碎”的软件挺多,包含 IE 这样的令人头疼的浏览器(哦不,它曾经被放弃了)、各种没人碰过的游戏以及一大堆更没人碰过的附件。这些是随着零碎一块装置下来的,想卸载必须手动,非常的麻烦。还有相似 Power Point 这样的有用的“高级软件”,单个软件就蕴含了数不尽的性能,当然,它非常的贵。理解 Linux 的同学大略曾经晓得我会说什么了。没错,我要说的就是不同零碎下的设计哲学。这更是一个差距,Linux 上面的每一个软件都均匀有余 10 MB,并且都有着本人独特的分工。wc 就是统计文本文件的、cat 就是显示文件内容的(就是这么简略)、grep 就是在文件外头查找的,相似这样的软件不可胜数。利用 UNIX 的设计哲学之一 —— 管道 —— 就能够很不便的统计一个文件中含 Linux 这个词的行数(bash 不算很精通,见谅):$ grep "Linux" foo | wc -l而在那个操作系统呢?你应该须要用记事本先关上那个文件,复制到另一个 .doc 文档外头,而后再找一找“查找”键,而后按一下。或者你还须要划到最底下看一看有多少行……那来个更难一点的呢,看一看当前目录下所有后缀名为 .txt 的文件外头有多少行蕴含 Linux?对 UNIX 来说小菜一碟:$ find ./ -name "*.txt" | xargs grep "Linux" | wc -l在另一个“平凡的零碎”上呢?我想不须要多举例,大家就能看进去这两个零碎谁设计的更好了。还是会有人说,这个零碎原本就是给程序员用的,那个零碎原本就是给普通用户用的。确实,那为什么你这个程序员还在用“某窗口零碎”呢? ...

March 31, 2022 · 1 min · jiezi

关于linux:笨叔点滴1-为什么dopagefault函数里代码需要判断用户态还是内核态

“ 各位小伙伴,我是小笨叔,从明天开始,笨叔尽量每天给大家分享一点点小东西,可能是笨笨的小点滴,就像小雨点一样,它会缓缓会合到大江大海!” 前两天有一个两个小伙伴探讨这么一个问题。 A : 在do_page_fault函数中有这样一段代码,这都是在内核中的代码了为什么还要判断是在内核态还是在用户态? 解决异样时必定是在内核态吧? if (!user_mode(regs)) goto no_context;B: 内核常驻内存,不会缺页,相同,用户态内存有可能会产生缺页,进入内核的异样解决流程入口执行异样解决,没感觉有什么不妥,缺页不肯定是在内核态,这个假如错的。 A: 既然这样的话,那么内核的代码永远不会产生缺页中断了。只能是用户过程产生缺页中断了。 A同学持续说。 A: 当产生异样时,arm的状态就会发生变化,此时不会是用户态的。arm不是有7种工作模式吗? cpsr寄存器的低四位都为0的话,阐明是用户模式,产生异样时有相应的异样模式,然而必定不会是用户模式,所以我感觉内核代码中 if (user_mode(regs)) 这条语句永远不会成立, define user_mode(regs) \(((regs)->ARM_cpsr & 0xf) == 0)从它的实现来看,就是判断最低4位是否为0,显然在异样模式下,不可能为0的 下面是A同学和B同学的对话,你们感觉他们探讨的货色都对吗? 图片 01 对于异样 — 咱们了解的CPU不就是干两件事件嘛?一个是取指令,另外一个是把指令给执行了。就好比我家小朋友,她名字叫做小笨笨。我和她说,小笨笨,你去冰箱里帮爸爸拿一罐可乐。小朋友第一件事件,就是要听到我说的话,这个就是取指令,她听懂了之后,她可能有如下几个行为。 1. 她去冰箱给我拿了一罐可乐给我 2. 她走去冰箱那里,然而中途遇到妈妈,妈妈逗她玩了一会,她去厨房给我拿了一个苹果 3. 耍赖,跑了下面三种状况,就是CPU的三种状况,第一个是CPU失常执行了这条命令,第二种状况,正在执行这条指令的时候,中途遇到问题了,后果产生谬误了。第三条,几乎就是一条非法指令。 对于ARM处理器来说,反对4大类的异样。 1. 中断(interrupt)。就是咱们平时了解的中断,次要由外设触发,是典型的异步异样。 ARM中次要包含两种类型的中断:IRQ(一般中断)和FIQ。 2. 异样(aborts)可能是同步或异步异样。包含指令异样(取指令时产生)、数据异样(读写内存数据时产生),能够由MMU产生(比方典型的缺页异样),也能够由内部存储系统产生(通常是硬件问题)。 3. 复位(reset)复位被视为一种非凡的异样。 4. 异样指令。由异样触发指令触发的异样,比方Supervisor Call (SVC)、Hypervisor Call (HVC)、Secure monitor Call (SMC),SWI等那么ARM处理器在产生异样之后,通常会有一个异样向量表来和软件进行交互,因为异样产生了,处理器本人解决不了,须要操作系统或者软件来参加。上面这张图就是ARM手册上的列出来的异样向量表。 这张图是比较简单的明了的vector table。 通常异样产生之后,ARM处理器会帮咱们做一些事件,这些事件是硬件帮忙咱们做的: 把下一条指令的地址(返回地址)保留到新处理器模式的LR寄存器把cpsr保留到spsr中设置适当的cpsr(扭转处理器的ARM状态、扭转处理器进入相应的异样模式、(视状况)扭转中断禁止位禁止相应中断)设置PC指向异样向量表中对应的中央那么软件须要做些啥呢??? ...

March 31, 2022 · 1 min · jiezi

关于linux:重温20年前的辉煌蓝点Linux20

最近这几天IT届都在探讨芯片和操作系统的事件,很多人感觉操作系统没有那么难,但现实生活又总是打脸!难于上青天! 为啥寰球这么多公司玩开源,只有红帽(服务器),ubuntu(PC Linux)和Android(手机)能玩起来,其余都基本上没戏,这个值得沉思!包含很多公司玩开源都没有流行起来,包含meego,mobin,ubuntu mobile phone,webos,firefox os等等。 国内很多公司号称做国产Linux,大部分都是基于红帽零碎或者debian(ubuntu)批改过去的,和前几年玩Android零碎ROM一样的套路,把原生Android改改UI,减少几个小插件,而后就发布会上说国产OS公布了,有多少多少亮点和翻新等等。 蓝点Linux在1999的时候有很高的终点,只惋惜没有保持住,要不当初的Linux市场就会红帽和蓝点的天下,兴许是有可能的。 前几天在微信公众号发了求蓝点Linux 2.0的光盘,果然很快就有热心的网友发来了蓝点Linux 2.0的光盘iso文件。我马上用虚拟机装置了一下,见证一下20年前的辉煌。倡议大家应用virtualbox来装置。 图片 图片 图片 图片 图片 图片 图片 图片 图片 图片 因为反对的显卡没搞定,只能登陆console了。 图片 图片 能够看到蓝点Linux 2.0采纳的是Linux 2.2.16的内核,尽管蓝点Linux也是基于红帽零碎批改过去的,然而在中文化方面确实做了很多工作。 上面是启动的kernel log,大家是否看出啥端倪,和当初Linux 4.x的内核有啥区别没? 图片 图片 笨叔叔最初share一下Bluepoint 2.0安装文件: https://pan.baidu.com/s/14Shr...

March 30, 2022 · 1 min · jiezi

关于linux:Linux之fgrep命令

为文件搜寻文字字符串,fgrep命令 是用来搜寻 file 参数指定的输出文件(缺省为规范输出)中的匹配模式的行。fgrep 命令特地搜寻 Pattern 参数,它们是固定的字符串。如果在 File 参数中指定一个以上的文件 fgrep 命令将显示蕴含匹配行的文件。 fgrep 命令于 grep 和 egrep 命令不同,因为它搜寻字符串而不是搜寻匹配表达式的模式。fgrep 命令应用疾速的压缩算法。$, *, &#91;, |, (, )和\等字符串被 fgrep 命令按字面意思解释。这些字符并不解释为正则表达式,但它们在 grep 和 egrep 命令中解释为正则表达式。因为这些字符对于 shell 有特定的含意,残缺的字符串应该加上单引号' ... '。. 如果没有指定文件, fgrep 命令假设规范输出。个别,找到的每行都复制到规范输入中去。如果不止一个输出文件,则在找到的每行前打印文件名。 fgrep 命令和带 -F 标记的 grep命令是一样的但出错和用法音讯不同-s 标记性能也不同。每行限度在 2048 个字节。段落(-p 标记下)目前限度在5000个字符的长度。不要在特定的文件中运行 grep 命令,因为会产生不可意料的后果。输出行不能蕴含空字符。输出文件应该以换行字符结尾。尽管能够同时指定很多标记,但某些标记会笼罩其余的标记。例如,如果同时指定 -l 和 -n ,只有文件名写入到规范输入中去。命令语法fgrep [选项][参数] 命令选项-b:在找到的每行之前增加行所在的块编号。应用此标记有助于依照上下文查找磁盘块号码。-b 标记不能用于规范输出或者管道输出。-c:仅显示匹配行的计数。-e 模式:指定模式。这个工作模式很简略,但当此模式以 a-(减号) 结尾时却是很有用的。-f StringFile:指定蕴含字符串的文件。-h:当多个文件被解决时暗藏文件名。-i:当进行比拟时疏忽字母的大小写。-l:只列出蕴含匹配行的文件名(一次)。文件名之间用换行符分隔。n:将文件中每行的绝对行号置于行前。-pSeparator:显示蕴含匹配行的整个段落。段落之间将依照Separator参数指定的段落分隔符加以分隔,这些分隔符是与搜寻模式有着雷同格局的模式。蕴含段落分隔符的即将仅用作分隔符;它们不会被蕴含在输入中。缺省的段落分隔符是空白行。-q:禁止所有写入到规范输入的操作,不论是否为匹配行。如果选中输出行,以 0 状态退出。-s:仅显示出错音讯。这在查看状态时很有用。-v:显示除了匹配特定模式的行以外的所有行。-w:执行单词搜寻。-x:显示匹配模式的行,要求无额定的字符。-y:当进行比拟时疏忽字符的大小写。命令返回值0 找到匹配项。1 未找到匹配项。>1发现语法错误,或者文件不可拜访(即便找到了匹配项)。搜寻几个文件中的一个简略字符串> fgrep rumenz *.txt在当前目录下所有以 .txt 字符串结尾的文件中搜寻字符串 rumenz。计数匹配某模式的行数> fgrep -n "{" rumenz.txt1:one{如果在您的 C 程序中一行中没有蕴含多于一个 { (左括号) 或者 } (右括号),并且括号正确匹配,那么这两个数字将是一样的。如果这两个数字不一样,您能够将蕴含括号的行依照他们在文件中的地位程序显示进去,应用以下命令:> egrep {\|} rumenz.txtone{}显示蕴含某模式的文件名:> fgrep -l "123" *.txtrumenz.txt原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 30, 2022 · 1 min · jiezi

关于linux:windowsXP用户无法远程桌面连接天翼云2008云主机

天翼云客户在应用Windows XP或者Windows2003操作系统通过远程桌面连贯Windows 2008云主机时,可能呈现提醒“近程计算机须要网络级别身份验证,而您的计算机不反对该验证,请分割您的系统管理员或技术人员来取得帮忙”。 而应用Windows7以上Windows操作系统则能失常通过远程桌面连贯云主机。这是因为因为平安起因,天翼云云主机默认将Windows2008远程桌面的安全级别设置为“仅容许运行应用网络级别身份验证的远程桌面的计算机连贯”。 网络级别身份验证 (NLA,Network LevelAuthentication) 是一种新的身份验证办法,它在建设远程桌面连贯之前先实现用户身份验证,并呈现登录屏幕。而以往的近程连贯验证是先连贯到服务器上后才要求身份验证。NLA 的长处是:进行近程连贯时耗费更少的云主机资源,而且有助于爱护近程计算机防止黑客或恶意软件的攻打。 天翼云为了使Windows用户更平安,禁止了不反对网络级别身份验证的远程桌面客户端。因为XP默认不反对“网络级别身份验证”性能,因而连贯云主机时呈现这个提醒。 那么XP用户是否就无奈通过远程桌面连贯Windows云主机呢?答案是否定的。有两种形式能够实现:第一种形式即应用Win7或以上操作系统远程桌面连贯至云主机,批改远程桌面的平安选项为“容许运行任意版本远程桌面的计算机连贯”。这种形式是咱们强烈不举荐的,这会升高云主机的安全性,导致潜在的平安危险。 第二种形式是通过批改注册表,来开启Windows XP的网络级身份证验性能。首先Windows XP要求装置SP3补丁包。而后在“开始”菜单 -> “运行”中输出“regedt”来启动注册表编辑器。开展“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa”,而后双击右侧的“Security Packages”,在最下方退出一行“tspkg”开展“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders”,双击右侧的“SecurityProviders”,在数值的最初面增加“, credssp.dll”,千万别忘了英文逗号前面的空格。批改实现后重启Windows XP,就能够连贯Windows 2008云主机了。

March 30, 2022 · 1 min · jiezi

关于linux:学习新编程语言的-5-个小知识

借助开源的力量,任何人都能够编程。找到一个你想做的我的项目,并让它成为你进入编程的第一个我的项目。 任何人都能够开始学习编程。咱们都是从某个终点开始的,而且你不须要有计算机科学背景就能够学习编程。这就是 Linux 和开源的力量:任何人都能够学习一点编程。 如果你想学习一种新的编程语言,咱们有几篇能够让你起步的很棒的文章。上面是咱们最受欢迎的几篇文章,它们能够帮忙到你。 比拟编程语言大多数编程语言都有某些相似之处。当你晓得如何用一种编程语言做一件事,学习下一种编程语言次要是弄清其语法和构造。 不同的编程语言如何做同样的事件学习一种新的编程语言的一个好办法是写一个简略的测试程序,如一个游戏,以摸索该编程语言的工作原理。我常常写的一个示例程序是一个简略的“猜数字”游戏,即计算机在 1 到 100 之间筛选一个数字,让我猜出来。往年早些时候,咱们发表了 一系列文章,探讨如何用几种编程语言编写猜数字游戏。理解这些不同的编程语言如何实现“猜数字”游戏的次要步骤。 不同的编程语言如何读写数据Alan 的文章比拟了不同的编程语言如何在雷同的思维下 读写数据。无论这些数据是来自于配置文件还是用户创立的文件,在存储设备上解决数据对于编码者来说是很常见的。Alan 的比拟文章提供了对几种风行的编程语言,如 C、Java、Groovy 和其余语言所采取的不同办法的深刻理解。 学习一种新的编程语言无论你是想学习一种新的编程语言,还是想摸索一种现有的编程语言,请看看上面这些对于学习编程的好文章。 如何用 WebAssembly 编写 “Hello World”WebAssembly 是一种字节码格局,简直所有的浏览器都能够将其编译为主机系统的机器代码。与 JavaScript 和 WebGL 一起,WebAssembly 满足了将利用移植到网络浏览器中独立应用的需要。Stephan 解释了如何用 WASM-text 创立经典的 Hello World 程序。 用 Golang 轻松实现穿插编译Gaurav写了对于通过将脚本转换为 Go 程序来学习 Go 的穿插编译反对。你能够一次写好你的程序,并通过穿插编译为另一个环境进行编译。 为什么我应用 D 编程语言来编写脚本D 编程语言因为其动态类型和元编程能力,经常被认为是一种零碎编程语言。然而,它也是一种十分高效的脚本语言。Lawrence 写了对于如何利用 D 编程语言进行 一般的脚本编写。 借助于开源的力量,编程能够被任何人所承受。找到一个你想做的我的项目,并让它成为你进入编程的第一个我的项目。

March 30, 2022 · 1 min · jiezi

关于linux:Linux之file命令

用来探测给定文件的类型,file命令 用来探测给定文件的类型。file命令对文件的查看分为文件系统、魔法幻数检查和语言查看3个过程。命令语法file [选项][参数] 命令选项-b:列出辨识后果时,不显示文件名称;-c:具体显示指令执行过程,便于排错或分析程序执行的情景;-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格局为每列一个文件名称;-L:间接显示符号连贯所指向的文件类别;-m<魔法数字文件>:指定魔法数字文件;-v:显示版本信息;-z:尝试去解读压缩文件的内容。命令参数文件:要确定类型的文件列表,多个文件之间应用空格离开,能够应用shell通配符匹配多个文件。显示文件类型> file outfile.txt outfile.txt: ASCII text> file -b outfile.txt <== 不显示文件名称ASCII text> file -i outfile.txt <== 显示MIME类别。outfile.txt: text/plain; charset=us-ascii> file -i -b outfile.txt text/plain; charset=us-ascii一些常见的类型包含:text/plain:一般文本。text/html:HTML文本。application/pdf:PDF文档。application/msword:Word文档。image/png:PNG图片。mage/jpeg:JPEG图片。application/x-tar:TAR文件。application/x-gzip:GZIP文件。显示符号链接的文件类型> file system-releasesystem-release: symbolic link to `centos-release'> file -L /tmp//tmp/: sticky directory解读压缩文件的内容> file -z Python-3.6.4.tgz Python-3.6.4.tgz: POSIX tar archive (GNU) (gzip compressed data, from Unix, last modified: Tue Dec 19 13:36:13 2017, max compression) 解读可执行程序> file /usr/bin/ls/usr/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped> file -i /usr/bin/ls <== 显示MIME类别/usr/bin/ls: application/x-executable; charset=binary原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 29, 2022 · 1 min · jiezi

关于linux:如何用Elementor快速建网站

随着技术的倒退,建站这个问题曾经不是什么难题,但疾速搭建出一个稳固又好看的网站,还不是一件容易事。当初咱们有了Elementor,间隔这个指标又近了一大步。上面咱们就来看看Elemetor是怎么做到的。 建站必备首先咱们来看看建站须要什么域名+主机+建站软件当初大部分的厂商都是没有一个残缺的计划,这样导致用户不的不在多个产品之间选来选去,既节约了工夫精力,又节约了很多的资源。当初Elementor推出了一站式服务,曾经把主机和建站软件整合在一起,这样整个流程就大大的简化了。 如何用Elementor建站上面咱们来介绍一下如何应用Elementor 建一个网站。 主机Elementor采纳是的Google的Cloud,这些全部都是业界最顶级技术。无需在做任何硬件方面的调整。 Google Cloud PlatformCDN by CloudflareAll Elementor Pro FeaturesWordPress Pre-InstalledPremium SupportFree SSL CertificateCustom Domainwordpress 是主动装置的,无需在手动装置,当前降级也是主动,齐全没必要为wordpress担心wordpress插件Elementor曾经主动装置了兼容的插件,咱们无需再次装置Elementor 页面编辑器Elementor是目前最弱小的页面构建器。齐全拖放式可视化编辑,是WordPress中最快,最直观的编辑器。只需拖放即可自定义,对于老手十分敌对,十分易于应用和把握。无需编码; 生成的页面代码紧凑且针对每个设施进行了优化。模版Elementor有300多种精美的模板,从几十个小部件中进行抉择,以创立你须要的任何内容:按钮,题目,表格,只有你能想到的,没有什么是你不能做的。Elementor 罕用操作上面是一些根底的对于如何是用模版的总结,看起来有些简单, 但基本上看一遍就能够上手了。因为这个是Elementor原来主打的产品,很多的widget性能曾经十分弱小。 导入Elementor模板刚开始应用Elementor的最简略的办法就是套用模板库里的模板。这样你就能够找出这个成果是如何设置的并摸索该工具在实时环境中能够执行的操作。 更改页面布局将鼠标悬停在模板上时,你会看到一个浅蓝色控制面板。两头图标是该局部的编辑器。单击此图标左侧面板视图呈现,编辑模板布局。布局上面能够看到内容宽度。单击将布局更改为全宽。 更改页面的内容你能够开始自定义页面的内容。这能够通过插入各种工具来实现。要编辑页面的任何元素,只需单击它们,左侧面板将更改为该特定局部的编辑器。 你能够更改字体,色彩,大小甚至每个题目标签在页面上的显示方式。 更改字体色彩如果要更改页面的字体色彩,单击要更改的元素,而后单击“款式”选项卡。从这里,你能够应用色彩选择器批改文本色彩,或者输出十六进制代码(如果有)。还能够拜访各种字体供你抉择。 还有一个最值得举荐的亮点,他们的在线反对十分的优良,如果有任何问题,间接在线聊天,你能失去最快的回复。 Elementor价格主机和wordpress和Elementor整合在一起,一年的价格不到100美元。这样的价格在行业内相对是十分的有竞争力的 更多细节能够参考Elementor官网如果还是不明确 能够加qq群1018244048

March 29, 2022 · 1 min · jiezi

关于linux:为什么每个人都可以试试-Linux

如果你对 Linux 有着充斥好奇,那开源社区能够让你轻松上手 Linux。 现在,人们有更多的理由喜爱 Linux。在这里,我会分享应用 Linux 的 21 个不同的理由。咱们来探讨探讨,为什么每个人都能够尝试一下 Linux。 Linux 对外行人来说,如同是一个神秘的货色。每当人们说起 Linux,就感觉它是计算机管理员或者系统管理员应用的,但也在探讨在笔记本电脑和手机上应用 Linux。技术网站上列出了 你须要晓得 的 十大 Linux 命令,但也有很多人在探讨 Linux 桌面(不止一个)是如许令人激动。 那么, Linux 到底是干嘛的呢? Linux 对可用性的反对是它泛滥重要个性之一。如果你对 Linux 有着充斥好奇,那开源社区能够让你轻松上手 Linux。 先尝试 Linux 利用无论是从 Windows 换到 Linux、还是在 Windows 和 Mac 之间横跳,亦或是从 Mac 换到 Linux,要想扭转一个人的计算机操作系统的应用习惯是一件很难的事。尽管这件事很少会去探讨,不过当初的电脑是一个比拟个性化的货色,每个人都习惯于本人电脑以后的应用习惯,他们往往不违心去做太大的变动。对我来说,就算在工作电脑跟个人电脑中来回切换(两者都运行雷同的操作系统),也须要我调整我的心理和肌肉习惯,仅仅是因为两个电脑针对不同的流动场景进行了优化。只管我被左近的人称为“很理解计算机的家伙”(,我也这么认为)。但如果我不得不更换我罕用的操作系统,我会感觉本人的生产力跟舒适感将在一两周内直线降落。不过这还是比拟表层的,尽管我晓得怎么用其余的操作系统,然而我须要工夫去造成新的直觉跟习惯,须要记住在新零碎中,一些不起眼的配置选项的地位,还得晓得要怎么应用新的性能。 出于这个起因,我常常通知那些对 Linux 感到离奇的人,学习 Linux 的第一步就是要去应用 Linux 的利用。实际上,Linux 上专用的应用程序不多,次要是因为 Linux 的大多数应用程序是开源的,因而热衷于在所有平台之间移植。在 Linux 上的很多应用程序,能够在你目前的非 Linux 的平台下来尝试。把替换你默认的应用程序作为一个指标,不论是出于习惯还是不便,都要用开源的等价物。 利用替换这个练习的目标是通过你最终要运行的应用软件,来实现向 Linux 的软过渡。一旦你习惯了一套新的应用程序,那么在 Linux 零碎上,除了零碎设置和文件治理外,就没有其余什么要适应的了。 如果你还不确定哪个是本人罕用的利用,只需看看你的最近应用的应用程序列表(如果你的零碎上没有最近应用利用的列表,那还等啥,连忙换成 Linux 零碎吧)。一旦你确定了必须应用的应用程序,能够看看咱们的 利用代替计划 页面,理解许多被视为与风行的专有应用程序等效的罕用开源应用程序。 获取 Linux不是所有的开源软件都能移植到其余平台,并从在 Linux 上运行而受害。如果你想最终切换到 Linux,那就得实现这个过渡。侥幸的是,要装置 Linux 就像下载它一样简略,简直就像是另一个开源程序一样。 ...

March 29, 2022 · 1 min · jiezi

关于linux:新布局火绒安全企业产品Linux终端macOS终端开启公测

“火速出击,绒装上阵”,3月29日,火绒平安旗下企业产品“火绒终端平安管理系统V2.0”推出Linux终端与macOS终端两个重要版本(下称Linux版、macOS版),并正式开启全网公测,欢送宽广新老企业用户返回火绒平安官网参加收费试用流动。 目前,Linux终端与Mac终端用户领有相当的数量,包含宽广企业用户以及设计、平台开发等从业人员。对不同零碎终端的对立管控和防护,也成为此类用户的刚需。对此,火绒平安在深刻理解产品需要根底上,联合自有核心技术,推出“火绒终端平安管理系统V2.0”Linux终端与macOS终端,帮忙用户将终端纳入对立治理和防护,至此,火绒的用户服务畛域再次取得延长,产品具备更充沛的防护纵深。 Linux终端:自主研发 兼容支流国产操作系统和CPU“火绒终端平安管理系统V2.0”Linux终端涵盖桌面版与服务器版两大版本,均搭载火绒自主研发的反病毒引擎,不仅反对Linux零碎次要发行版,且深度兼容支流国产操作系统和CPU,可部署在统信、河汉麒麟、龙芯、飞腾等国产操作系统与CPU上,提供弱小的管控性能,并切实保障产品稳固运行。 在外围性能上,Linux版提供【病毒查杀】、【危险隔离】、【增加信赖】、【日志记录】等重要性能,反对通过连贯“火绒终端平安管理系统V2.0”的控制中心,帮忙企业用户实现对终端进行检测、查杀、管控等需要,实现硬件资产注销、多级部门终端治理、对立下发定制策略等工作,并实时显示企业全网平安动静、病毒威逼等信息,及时生成“平安剖析报告”,辅助企业管理者随时把握整个企业网络安全动静。 macOS终端:轻便简洁洁净 深度兼容macOS操作系统“火绒终端平安管理系统V2.0”macOS终端秉承火绒平安产品一贯的轻便、简洁、洁净的特点,占用空间小,笨重洁净,无弹窗打搅,并且可深度兼容macOS零碎及生态利用,确保终端运行速度稳固,保障业务失常运行。 macOS版本除了领有【病毒查杀】、【增加信赖与隔离】、【自定义设置】等次要性能外,还具备对终端进行集中管控、将平安危险可视化等劣势:通过“火绒终端平安管理系统V2.0”的控制中心,将企业内macOS零碎终端纳入对立管控下,充沛解决企业中,因不同零碎导致无奈对立防护的难题,全面爱护企业终端平安。 火绒平安企业版产品自2018年初面市以来,已有数万家政府单位、企业部署试用,并取得客户良好的口碑和充沛的信赖。随着应用火绒平安产品的用户数量一直减少,火绒平安的服务范畴也在逐步扩充,将来,火绒平安将持续深耕终端平安畛域,打磨核心技术,通过优质的产品+服务,为用户构建欠缺的终端平安防护体系。

March 29, 2022 · 1 min · jiezi

关于linux:Linux之time命令

统计给定命令所破费的总工夫,time命令 用于统计给定命令所破费的总工夫。命令语法time [参数] 命令参数指令:指定须要运行的额指令及其参数。统计ls执行的工夫当测试一个程序或比拟不同算法时,执行工夫是十分重要的,一个好的算法应该是用时最短的。所有类UNIX零碎都蕴含time命令,应用这个命令能够统计工夫耗费。例如:> time lsreal 0m0.001suser 0m0.000ssys 0m0.002s输入的信息别离显示了该命令所破费的real工夫、user工夫和sys工夫。real工夫是指挂钟工夫,也就是命令开始执行到完结的工夫。这个短时间包含其余过程所占用的工夫片,和过程被阻塞时所破费的工夫。user工夫是指过程破费在用户模式中的CPU工夫,这是惟一真正用于执行过程所破费的工夫,其余过程和破费阻塞状态中的工夫没有计算在内。sys工夫是指破费在内核模式中的CPU工夫,代表在内核中执零碎调用所破费的工夫,这也是真正由过程应用的CPU工夫。外围态(Kernel Mode):在内核态,代码领有齐全的,不受任何限度的拜访底层硬件的能力。能够执行任意的CPU指令,拜访任意的内存地址。内核态通常状况下,都是为那些最底层的,由操作系统提供的,可信牢靠的代码来运行的。内核态的代码解体将是灾难性的,它会影响到整个零碎。 用户态(User Mode):在用户态,代码不具备间接拜访硬件或者拜访内存的能力,而必须借助操作系统提供的牢靠的,底层的APIs来拜访硬件或者内存。因为这种隔离带来的爱护作用,用户态的代码解体(Crash),零碎是能够复原的。咱们大多数的代码都是运行在用户态的。 装置第三方的time命令shell内建也有一个time命令,当运行time时候是调用的零碎内建命令,应为零碎内建的性能无限,所以须要工夫其余性能须要应用time命令可执行二进制文件/usr/bin/time。Centos装置> yum -y install time应用-o选项将执行工夫写入到文件中> /usr/bin/time -o out.txt ls应用-a选项追加信息:> /usr/bin/time -a -o out.txt ls应用-f选项格式化工夫输入:> /usr/bin/time -f "time: %U" ls-f选项后的参数参数形容%Ereal工夫,显示格局为[小时:]分钟:秒%Uuser工夫。%Ssys工夫。%C进行计时的命令名称和命令行参数。%D过程非共享数据区域,以KB为单位。%x命令退出状态。%k过程接管到的信号数量。%w过程被替换出主存的次数。%Z零碎的页面大小,这是一个零碎常量,不必零碎中常量值也不同。%P过程所获取的CPU工夫百分百,这个值等于 user+system 工夫除以总共的运行工夫。%K过程的均匀总内存使用量(data+stack+text),单位是 KB。%w过程被动进行上下文切换的次数,例如期待I/O操作实现。%c过程被迫进行上下文切换的次数(因为工夫片到期)。取得执行 ps -aux 的后果和所破费的系统资源> /usr/bin/time -v ps -aux....Command being timed: "ps -aux"User time (seconds): 0.00System time (seconds): 0.01Percent of CPU this job got: 100%Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01Average shared text size (kbytes): 0Average unshared data size (kbytes): 0Average stack size (kbytes): 0Average total size (kbytes): 0Maximum resident set size (kbytes): 1944Average resident set size (kbytes): 0Major (requiring I/O) page faults: 0Minor (reclaiming a frame) page faults: 593Voluntary context switches: 4Involuntary context switches: 7Swaps: 0File system inputs: 0File system outputs: 0Socket messages sent: 0Socket messages received: 0Signals delivered: 0Page size (bytes): 4096Exit status: 0原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 28, 2022 · 1 min · jiezi

关于linux:你应该丢弃-Windows选择-Linux-的五大理由

自 Linux 这款开源操作系统公布以来,它就处于回升通道,这些年来已失去了改良和欠缺,以至于现在一个典型的发行版当初都是高度欠缺、性能全面的程序包,包含用户须要的简直所有性能个性,无论是就服务器而言,还是就集体零碎而言。 互联网的大部分零碎在 Linux 上运行,还有许多智能手机和另外的有数零碎:从 Raspberry Pi 到性能最弱小的超级计算机,不一而足。所以,是时候从 Windows 转投 Linux 营垒了吗?上面是应该青眼 Linux 的五大理由。 1、云是 Linux 的天下 云端存储 在云端运行的利用越来越多地在 Linux 上运行或在 Linux 上开发,甚至是在微软的 Azure 云平台上。这一方面是因为许多最先进的技术(比方容器和剖析工具)是在 Linux 上开发的,另一方面是因为许多云平台(比方 AWS 和 OpenStack)一开始就基于这款操作系统。 随着采纳云服务的景象变得更广泛,Linux 的重要性只会一劳永逸;如果大多数公司还没有应用 Linux,它们会开始应用的。 2、平安 云计算平安 只管偶然会有安全漏洞公之于众,但 Linux 还是被认为比 Windows 平安得多。作为一款类 Unix 的操作系统,这个平台从头通过设计,应用不同的权限级别,因此就算恶意软件设法绕过了防线,随便拜访零碎也要艰难得多。 3、收费 Linux 企鹅 实际上,这有点误导人。Linux 能够从许多中央收费下载,然而如果你是一家企业组织,须要技术支持和帮忙,那么你就得为此付费,这是许多 Linux 发行版的开发商(比方 Ubuntu、红帽和 Suse)遵循的商业模式。 不过,几项钻研发现,Linux 的总体领有老本通常低于 Windows。如果你不是一家企业组织,可能也得领取技术支持费,然而你经常能够在许多在线用户论坛,从 Linux 专家组成的社区那里找到任何问题的答案。 4、现在 Linux 上有品种多样的应用程序 LibreOffice 5.1 中的 Impress 已经,Linux 用户面临应用程序相比 Windows 上的应用程序数量匮乏的困境,但今非昔比。如果你是桌面用户,像 SoftMaker Office 或开源的 LibreOffice 这些应用程序套件让你可能解决用微软 Office 所能解决的简直任何工作,可能除了脚本和自动化性能外。 ...

March 28, 2022 · 1 min · jiezi

关于linux:macmouse跟随太慢命令

新买的mac,苹果鼠标在默认的设置外面,设置最快也满足不了挪动速度。怎么办?命令搞起来。第一步:查看下本人电脑的鼠标默认追随速度。在终端输出,应用命令:defaults read -g com.apple.mouse.scaling,因为我设置了所以显示30,默认应该是7.5 第二步:批改默认值输出批改命令:defaults write -g com.apple.mouse.scaling 30,前面的30就是我设置的,这是我所能掌控的难受速度,因为我外接显示器,所以,想略微移动就能跑外接显示器上。个别人掌控不了,哈哈。 总结: defaults write -g com.apple.mouse.scaling 30 // 读取追随速度defaults read -g com.apple.mouse.scaling // 批改默认追随速度

March 28, 2022 · 1 min · jiezi

关于linux:Linux之seq命令

以指定增量从首数开始打印数字到尾数,seq命令用于产生从某个数到另外一个数之间的所有整数。命令语法> seq [选项]... 尾数> seq [选项]... 首数 尾数> seq [选项]... 首数 增量 尾数命令选项-f, --format=格局 应用printf 款式的浮点格局-s, --separator=字符串 应用指定字符串分隔数字(默认应用:\n)-w, --equal-width 在列前增加0 使得宽度雷同指定格局显示> seq -f"%3g" 10 1 2 3 4 5 6 7 8 9 10%前面指定数字的位数默认是%g,%3g那么数字位数有余局部默认是空格。指定格局显示,有余的位数填充0> seq -f"%03g" 10001002003004005006007008009010指定3位显示,有余3位填充零指定格局显示,有余的位数填充0,并在后面增加字符串> seq -f"rumen%03g" 10rumen001rumen002rumen003rumen004rumen005rumen006rumen007rumen008rumen009rumen010这样的话数字位数有余局部是0,%后面制订字符串。指定输入数字同宽> seq -w 1001020304050607080910不能和-f一起用,输入是同宽的。指定分隔符(默认是回车)> seq -s" " 101 2 3 4 5 6 7 8 9 10> seq -s"#" 101#2#3#4#5#6#7#8#9#10要指定/t做为分隔符号> seq -s"`echo -e "\t"`" 101 2 3 4 5 6 7 8 9 10批量创立文件> touch $(seq -f"rumenz%03g.txt" 10)> ls -al *.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz001.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz002.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz003.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz004.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz005.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz006.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz007.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz008.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz009.txt-rw-r--r-- 1 root root 0 Apr 4 22:46 rumenz010.txt以倒序显示数字> eq 10 -1 110987654321小数序列> seq -f "%f" 1 0.5 31.0000001.5000002.0000002.5000003.000000-f小数显示,步长是0.5小数序列,指定小数位数> seq -f "%.2f" 1 0.5 31.001.502.002.503.00%.2f显示2位小数,步长是0.5原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 27, 2022 · 1 min · jiezi

关于linux:q命令用SQL分析文本文件

原创:打码日记(微信公众号ID:codelogs),欢送分享,转载请保留出处。简介在Linux上剖析文本文件时,个别会应用到grep、sed、awk、sort、uniq等命令,但这些命令都有肯定的学习老本,而如果是用SQL来剖析数据的话,这对宽广后端程序员来说,就要简略很多了。 而q命令就是这样一款工具,能够在空白、逗号分隔的文本文件上执行SQL运算,十分不便。 装置# ubuntu下装置$ sudo apt install python3-q-text-as-data# centos下可下载安装包装置$ wget https://github.com/harelba/q/releases/download/v3.1.6/q-text-as-data-3.1.6.x86_64.rpm$ rpm -Uvh q-text-as-data-3.1.6.x86_64.rpm如果是其它Linux发行版,能够参考官网装置文档:http://harelba.github.io/q/#i...。 常见用法剖析空白分隔文件默认状况下,q将文本文件中每一行当作一条数据,应用空白作为字段分隔符。 假如有如下学生列表,要查问出大于16岁的学生的id与姓名,如下: $ cat students.txtid name age sex1 person1 15 02 person2 15 03 person3 16 04 person4 16 05 person5 16 06 person6 17 17 person7 17 18 person8 17 19 person9 18 110 person10 18 1# 查问出大于16岁的学生的id与姓名# -H : 告知q命令第一行是题目行$ q -H 'select id,name from students.txt where age>16'6 person67 person78 person89 person910 person10# -O可使输入后果中带有题目$ q -H -O 'select id,name from students.txt where age>16'id name6 person67 person78 person89 person910 person10如果文件中没有题目行的话,可应用c1、c2、c3...来援用字段,如下: ...

March 26, 2022 · 2 min · jiezi

关于linux:Linux之nohup命令

nohup命令 能够将程序以疏忽挂起信号的形式运行起来,被运行的程序的输入信息将不会显示到终端 无论是否将 nohup 命令的输入重定向到终端,输入都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输入重定向到$HOME/nohup.out文件中。如果没有文件能创立或关上以用于追加,那么 command 参数指定的命令不可调用。如果规范谬误是一个终端,那么把指定的命令写给规范谬误的所有输入作为规范输入重定向到雷同的文件描述符。 命令格局 nohup Command [ Arg … ] [ & ] 参数阐明Command:要执行的命令。Arg:一些参数,能够指定输入文件。&:让命令在后盾执行,终端退出后命令仍旧执行。命令后盾执行,失常输入和谬误输入到a.log文件> nohup command > a.log 2>&1 &2>&1 解释将规范谬误 2 重定向到规范输入 &1 ,规范输入 &1 再被重定向输出到 runoob.log 文件中。0 – stdin (standard input,规范输出)1 – stdout (standard output,规范输入)2 – stderr (standard error,规范谬误输入)后盾下载文件> nohup wget https://repo.huaweicloud.com/java/jdk/8u172-b11/jdk-8u172-linux-x64.tar.gz &// 查看后盾的过程> jobs[1]+ Running nohup wget https://repo.huaweicloud.com/java/jdk/8u172-b11/jdk-8u172-linux-x64.tar.gz &下载过程中,输入在nohup.out文件中,能够应用tail -f nohup.out动静查看后盾运行SpringBoot我的项目> nohup java -jar rumenz.jar &后盾执行bash命令> nohup bash -c 'cal && ls' > output.txt原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 26, 2022 · 1 min · jiezi

关于linux:多种方法查看Linux文件大小

stat命令stat filepath 第三行的Size字段就是文件的字节数xanarry@ThinkPad:/$ stat ~/Downloads/jdk-8u60-linux-x64.tar.gz File: '/home/xanarry/Downloads/jdk-8u60-linux-x64.tar.gz' Size: 181238643 Blocks: 353984 IO Block: 4096 regular fileDevice: 808h/2056d Inode: 261742 Links: 1Access: (0666/-rw-rw-rw-) Uid: ( 1000/ xanarry) Gid: ( 1000/ xanarry)Access: 2017-02-01 17:36:43.177892508 +0800Modify: 2015-10-02 12:43:29.853291000 +0800Change: 2016-12-26 23:33:34.619480450 +0800 Birth: - wc命令wc -c filename 参数-c示意统计字符, 因为一个字符一个字节, 所以这样失去字节数 xanarry@ThinkPad:/$ wc -c ~/Downloads/jdk-8u60-linux-x64.tar.gz181238643 /home/xanarry/Downloads/jdk-8u60-linux-x64.tar.gz12 du命令du -b filepath 参数-b示意以字节计数 xanarry@ThinkPad:/$ du -b ~/Downloads/jdk-8u60-linux-x64.tar.gz181238643 /home/xanarry/Downloads/jdk-8u60-linux-x64.tar.gz12或者 du -h filepath 间接得出人好辨认的文件大小 xanarry@ThinkPad:/$ du -h ~/Downloads/jdk-8u60-linux-x64.tar.gz173M /home/xanarry/Downloads/jdk-8u60-linux-x64.tar.gz12如果对一个目录执行du,du会递归列出目录中的所有文件,并显示其大小,同时也会显示目录中所有文件的大小。如果咱们想晓得一个目录下所有文件占用空间的总大小,执行: ...

March 25, 2022 · 1 min · jiezi

关于linux:Linux之nc命令

用于设置路由器,是网络工具中的瑞士军刀 nc命令 全称netcat,用于设置路由器。它能通过 TCP 和 UDP 在网络中读写数据。通过与其余工具联合和重定向,你能够在脚本中以多种形式应用它。应用 netcat 命令所能实现的事件令人诧异。 Centos装置nc> yum -y install ncUbuntu装置nc> apt-get install netcatMac装置nc> brew install netcat命令格局`nc -hlnruz-G<指向器数目>-o<输入文件>-s<起源位址>-w<超时秒数>[通信端口...]` 命令选项-g<网关> 设置路由器跃程通信网关,最多可设置8个。-G<指向器数目> 设置起源路由指向器,其数值为4的倍数。-h 在线帮忙。-i<提早秒数> 设置工夫距离,以便传送信息及扫描通信端口。-l 应用监听模式,管控传入的材料。-n 间接应用IP地址,而不通过域名服务器。-o<输入文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保留。-p<通信端口> 设置本地主机应用的通信端口。-r 乱数指定本地与远端主机的通信端口。-s<起源位址> 设置本地主机送出数据包的IP地址。-u 应用UDP传输协定。-v 显示指令执行过程。-w<超时秒数> 设置期待连线的工夫。-z 应用0输出/输入模式,只在扫描通信端口时应用。TCP端口扫描> nc -v -z -w2 rumenz.com 20-30nc: connectx to rumenz.com port 20 (tcp) failed: Connection refusednc: connectx to rumenz.com port 21 (tcp) failed: Connection refusedfound 0 associationsfound 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif en0 src 192.168.0.105 port 57984 dst 203.195.152.245 port 22 rank info not available TCP aux info availableConnection to rumenz.com port 22 [tcp/ssh] succeeded!nc: connectx to rumenz.com port 23 (tcp) failed: Connection refusednc: connectx to rumenz.com port 24 (tcp) failed: Connection refusednc: connectx to rumenz.com port 25 (tcp) failed: Connection refusednc: connectx to rumenz.com port 26 (tcp) failed: Connection refusednc: connectx to rumenz.com port 27 (tcp) failed: Connection refusednc: connectx to rumenz.com port 28 (tcp) failed: Connection refusednc: connectx to rumenz.com port 29 (tcp) failed: Connection refusednc: connectx to rumenz.com port 30 (tcp) failed: Connection refused20-30是端口范畴UDP端口扫描> nc -v -z -w2 -u rumenz.com 20-25found 0 associationsfound 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif (null) src 192.168.0.105 port 63603 dst 203.195.152.245 port 20 rank info not availableConnection to rumenz.com port 20 [udp/ftp-data] succeeded!found 0 associationsfound 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif (null) src 192.168.0.105 port 51642 dst 203.195.152.245 port 21 rank info not availableConnection to rumenz.com port 21 [udp/ftp] succeeded!found 0 associationsfound 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif (null) src 192.168.0.105 port 58180 dst 203.195.152.245 port 22 rank info not availableConnection to rumenz.com port 22 [udp/ssh] succeeded!found 0 associationsfound 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif (null) src 192.168.0.105 port 57409 dst 203.195.152.245 port 23 rank info not availableConnection to rumenz.com port 23 [udp/telnet] succeeded!found 0 associationsfound 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif (null) src 192.168.0.105 port 59767 dst 203.195.152.245 port 24 rank info not availableConnection to rumenz.com port 24 [udp/*] succeeded!found 0 associationsfound 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif (null) src 192.168.0.105 port 58696 dst 203.195.152.245 port 25 rank info not availableConnection to rumenz.com port 25 [udp/smtp] succeeded!扫描指定端口> nc -v json.im 80found 0 associationsfound 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif en0 src 192.168.0.105 port 58683 dst 150.109.147.28 port 80 rank info not available TCP aux info availableConnection to json.im port 80 [tcp/http] succeeded!建设 C/S 聊天室nc 的实质是在两台机器之间建设连贯,之后就能够基于这个连贯做很多事件,数据传输是其中一个最为根本的。咱们上面就应用 nc 来建设一个 C/S 的聊天室。模仿 Server 端> nc -v -l 127.0.0.1 8086监听8086端口模仿 Client 端> nc -v -p 8085 localhost 8086-p : 指定源端口 ...

March 25, 2022 · 3 min · jiezi

关于linux:linux-ls-命令使用方法

实例1:查看当前目录下的文件或目录[root@lianxi tmp]# ls1d 2d 3d 4d TEST 实例2:应用长清单模式,-l参数[root@lianxi tmp]# ls -ltotal 20drwxr-xr-x. 2 root root 4096 Dec 8 00:44 1ddrwxr-xr-x. 2 root root 4096 Dec 8 00:44 2ddrwxr-xr-x. 2 root root 4096 Dec 8 00:44 3ddrwxr-xr-x. 2 root root 4096 Dec 8 00:44 4ddrwxr-xr-x. 6 root root 4096 Dec 8 00:46 TESThow to check file owner in Linux 注:第1列第一个字母d意味着内容是目录或者文件。如果是’-‘(减号),这意味着它的内容是文件。当它是l(小写l字符),象征这内容是链接文件。上面的9个字符是对于文件权限。前3个rwx字符是文件的拥有者的权限,第二组3rwx是文件的所有组的权限,最初的rwx是对其他人拜访文件的权限。第2列 这行通知咱们有多少链接指向这个文件。第3列 这行通知咱们谁是这个文件/文件夹的所有者。第4列 这行通知咱们谁是这个文件/文件夹的所有组。第5列 这行通知咱们这个文件/文件夹的以字节为单位的大小。 目录的大小总是4096字节。第6列 这通知咱们文件最初的批改工夫。第7列 这通知咱们文件名或者目录名。 实例3:显示文件大小① 以便于人浏览的形式显示文件大小,-h参数[root@lianxi tmp]# ls -lhtotal 20Kdrwxr-xr-x. 2 root root 4.0K Dec 8 00:44 1ddrwxr-xr-x. 2 root root 4.0K Dec 8 00:44 2ddrwxr-xr-x. 2 root root 4.0K Dec 8 00:44 3ddrwxr-xr-x. 2 root root 4.0K Dec 8 00:44 4ddrwxr-xr-x. 6 root root 4.0K Dec 8 00:46 TEST② 应用–si参数,此参数和-h相似,但-si是以1000为单位,而-h是以1024为单位[root@lianxi tmp]# ls -l --sitotal 21kdrwxr-xr-x. 2 root root 4.1k Dec 8 00:44 1ddrwxr-xr-x. 2 root root 4.1k Dec 8 00:44 2ddrwxr-xr-x. 2 root root 4.1k Dec 8 00:44 3ddrwxr-xr-x. 2 root root 4.1k Dec 8 00:44 4ddrwxr-xr-x. 6 root root 4.1k Dec 8 00:46 TEST更多参考如何在linux查看文件大小how to check file size in Linux ...

March 25, 2022 · 6 min · jiezi

关于linux:如何处理-Host-key-verification-failed

如何解决 Host key verification failed 解决办法 第一个形式就是依照提醒删除 /Users/liuzhizhi/.ssh/known_hosts文件中对应的行,而后就能登录了第二个形式 是更改ssh的配置 在 ~/.ssh/config 中增加如下配置 StrictHostKeyChecking no UserKnownHostsFile /dev/null第三个办法 在用ssh登录时 用-i StrictHostKeyChecking=no这样就不会在去检测公钥了(然而减少了平安危险),因为是本人的工作机器,为了方面,我用了这个形式。 参考文章 用OpenSSH的人都知ssh会把你每个你拜访过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问雷同计算机时,OpenSSH会核查公钥。如果公钥不同,OpenSSH会收回正告,防止你受到DNS Hijack之类的攻打。SSH对主机的public_key的查看等级是依据StrictHostKeyChecking变量来配置的。默认状况下,StrictHostKeyChecking=ask。简略所下它的三种配置值: StrictHostKeyChecking=no最不平安的级别,当然也没有那么多烦人的提醒了,绝对平安的内网测试时倡议应用。如果连贯server的key在本地不存在,那么就主动增加到文件中(默认是known_hosts),并且给出一个正告。StrictHostKeyChecking=ask #默认的级别,就是呈现方才的提醒了。如果连贯和key不匹配,给出提醒,并回绝登录。StrictHostKeyChecking=yes #最平安的级别,如果连贯与key不匹配,就回绝连贯,不会提醒详细信息。参考资料:ssh known_hosts filehow to fix ssh host key verification failed

March 24, 2022 · 1 min · jiezi

关于linux:Linux之yum命令

回复【1001】获取 linux常用命令速查手册 yum命令 是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它能够使系统管理人员交互和自动化地更新与治理RPM软件包,可能从指定的服务器主动下载RPM包并且装置,能够主动解决依赖性关系,并且一次装置所有依赖的软体包,毋庸繁琐地一次次下载、装置。 yum提供了查找、装置、删除某一个、一组甚至全副软件包的命令,而且命令简洁而又好记。命令格局yum(选项)(参数) 命令选项-h:显示帮忙信息;-y:对所有的发问都答复“yes”;-c:指定配置文件;-q:宁静模式;-v:具体模式;-d:设置调试等级(0-10);-e:设置谬误等级(0-10);-R:设置yum解决一个命令的最大等待时间;-C:齐全从缓存中运行,而不去下载或者更新任何头文件命令参数install:装置rpm软件包;update:更新rpm软件包;check-update:查看是否有可用的更新rpm软件包;remove:删除指定的rpm软件包;list:显示软件包的信息;search:查看软件包的信息;info:显示指定的rpm软件包的形容信息和概要信息;clean:清理yum过期的缓存;shell:进入yum的shell提示符;resolvedep:显示rpm软件包的依赖关系;localinstall:装置本地的rpm软件包;localupdate:显示本地rpm软件包进行更新;deplist:显示rpm软件包的所有依赖关系。主动搜寻最快镜像插件> yum install yum-fastestmirror查看可能批量装置的列表> yum grouplistAvailable Environment Groups: Minimal Install Compute Node Infrastructure Server File and Print Server Cinnamon Desktop MATE Desktop Basic Web Server Virtualization Host Server with GUI GNOME Desktop KDE Plasma Workspaces Development and Creative WorkstationAvailable Groups: Cinnamon Compatibility Libraries Console Internet Tools Development Tools Educational Software Electronic Lab Fedora Packager General Purpose Desktop Graphical Administration Tools Haskell LXQt Desktop Legacy UNIX Compatibility MATE Milkymist Scientific Support Security Tools Smart Card Support System Administration Tools System Management TurboGears application framework XfceDone比方:yum groupinstall "Basic Web Server"装置redis> yum install redis -y更新零碎中所有的RPM包> yum update更新指定的软件包(如:redis)> yum update redis查看可更新的程序> yum check-update查看零碎中是否装置某个软件(如:nginx)> yum list installed | grep nginx显示安装包信息> yum info nginxInstalled PackagesName : nginxArch : x86_64Epoch : 1Version : 1.16.1Release : 1.el7.ngxSize : 2.7 MRepo : installedFrom repo : nginxSummary : High performance web serverURL : http://nginx.org/License : 2-clause BSD-like licenseDescription : nginx [engine x] is an HTTP and reverse proxy server, as well as : a mail proxy server.Available PackagesName : nginxArch : x86_64Epoch : 1Version : 1.18.0Release : 2.el7.ngxSize : 769 kRepo : nginx/x86_64Summary : High performance web serverURL : http://nginx.org/License : 2-clause BSD-like licenseDescription : nginx [engine x] is an HTTP and reverse proxy server, as well as : a mail proxy server.显示所有曾经装置和能够装置的程序包> yum list显示指定程序包装置状况> yum list nginx删除程序包> yum remove nginx 查看软件包的依赖状况> yum deplist nginx革除缓存目录下的软件包> yum clean packages革除缓存目录下的 headers> yum clean headers革除缓存目录下旧的 headers> yum clean oldheaders分明缓存目录下的所有软件包及旧的headers> yum clean all强制解除yum锁定> rm -rf /var/run/yum.pidyum减速更新国内源> cd /etc/yum.repos.d> mv CentOS-Base.repo CentOS-Base.repo.bk//更新为阿里云的源> wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo //更新为163的源> wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo //更新为搜狐的源> wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.sohu.com/help/CentOS-Base-sohu.repo> yum clean all> yum makecache原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 22, 2022 · 2 min · jiezi

关于linux:Linux之uniq命令

回复【1001】获取 linux常用命令速查手册 显示或疏忽反复的行。 命令格局uniq [选项]... [文件] 命令选型-c, --count 在每行结尾减少反复次数。-d, --repeated 所有邻近的反复行只被打印一次。-D 所有邻近的反复即将全副打印。--all-repeated[=METHOD] 相似于 -D,但容许每组之间以空行宰割。METHOD取值范畴{none(默认),prepend,separate}。-f, --skip-fields=N 跳过对前N个列的比拟。--group[=METHOD] 显示所有行,容许每组之间以空行宰割。METHOD取值范畴:{separate(默认),prepend,append,both}。-i, --ignore-case 疏忽大小写的差别。-s, --skip-chars=N 跳过对前N个字符的比拟。-u, --unique 只打印非邻近的反复行。-z, --zero-terminated 设置行终止符为NUL(空),而不是换行符。-w, --check-chars=N 只对每行前N个字符进行比拟。--help 显示帮忙信息并退出。--version 显示版本信息并退出。命令参数INPUT(可选):输出文件,不提供时为规范输出。OUTPUT(可选):输入文件,不提供时为规范输入。命令返回值返回0示意胜利,返回非0值示意失败。试验文本> cat 1.txt123456789123123333123eeerrr相邻行去重> uniq 1.txt123456789123333123eeerrr文件每行排序后,相邻行去重> sort 1.txt | uniq123333456789eeerrr//或者> sort -u 1.txt 123333456789eeerrr统计各行在文件中呈现的次数> sort 1.txt | uniq -c 4 123 1 333 1 456 1 789 1 eee 1 rrr先排序后统计反复的次数查找文件中反复的行> sort 1.txt | uniq -d123uniq只检测邻近的行是否反复,sort -u将输出文件先排序而后再解决反复行疏忽每行的前N个字符> uniq -s 3 1.txt疏忽每行的前3个字符,比拟前面的字符只对前N个字符进行比拟> uniq -w 3 1.txt只对每行的前3个字符进行比拟原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 21, 2022 · 1 min · jiezi

关于linux:HertzBeat赫兹节拍-v10beta6-发布Linux监控来啦

HertzBeat赫兹跳动是由Dromara孵化,TanCloud开源的一个反对网站,API,PING,端口,数据库,操作系统,全站等监控类型,反对阈值告警,告警告诉(邮箱,webhook,钉钉,企业微信,飞书机器人),领有易用敌对的可视化操作界面的开源监控告警我的项目。 官网:hertzbeat.com | tancloud.cn 此降级版本蕴含了很多同学须要的Linux操作系统监控反对,反对其CPU,内存,磁盘,网络等指标,重要的是同步反对了SSH自定义,咱们能够很不便的写脚本监控咱们想要的Linux指标,也新增了对支流的数据库SqlServer监控反对等,更多功能欢送应用。 版本个性: feature 新增反对Linux操作系统监控类型(反对CPU内存磁盘网卡等监控指标) (#20)feature 新增反对microsoft sqlserver数据库监控类型 (#37)feature 增加docker-compose部署计划 (#27) 由 @jx10086 奉献 thanksfeature 监控列表反对状态过滤和字段搜寻性能 (#29)feature 新增mysql,postgresql等数据库查问超时工夫设置 (#18) 由 @学习代码的小白 奉献[纳管]批改为[监控]表述,[探测]批改为[测试]表述feature add github build and translate action (#22)feature 新增奉献指南,本地代码启动文档docs 指定mysql和tdengine版本,防止环境问题BUG修复 fix 因为链接复用不佳造成创立过多链接监控异样 (#26)fix 页面全局监控搜寻后果异样 (#28) issue by @Suremotoo代码优化 #I4U9BT 由 @学习代码的小白 奉献fix 服务启动脚本偶现端口占用误判问题工夫本地时区格式化 (#35)fix 此版本引入问题jdbc解析异样 (#36)fix jdbc并发注册加载时因为spi机制加载死锁问题 (#40)欢送在线试用 https://console.tancloud.cn. HertzBeat赫兹跳动 是一个反对网站,API,PING,端口,数据库,操作系统等监控类型,领有易用敌对的可视化操作界面的开源监控告警我的项目。 咱们也提供了对应的 SAAS版本监控云,中小团队和集体无需再为了监控本人的网站资源,而去部署一套繁琐的监控零碎,登录即可收费开始。 HertzBeat 反对自定义监控 ,只用通过配置YML文件咱们就能够自定义须要的监控类型和指标,来满足常见的个性化需要。 HertzBeat 模块化,manager, collector, scheduler, warehouse, alerter 各个模块解耦合,不便了解与定制开发。 HertzBeat 反对更自由化的告警配置(计算表达式),反对告警告诉,告警模版,邮件钉钉微信飞书等及时告诉送达 欢送登录 HertzBeat 的 云环境TanCloud 试用发现更多。 咱们正在疾速迭代中,欢送参加退出一起共建我的项目开源生态。 ...

March 21, 2022 · 1 min · jiezi

关于linux:Asahi-Linux-Alpha-发布首个支持苹果-M-系列芯片的-Linux-发行版

近日,钻研Linux for Apple Silicon macs的组织群体 Asahi Linux发表: Asahi Linux已胜利在 M1 MacBook Air 笔记本电脑上运行,并凋谢了 Asahi Linux 的下载安装。 这是第一个为苹果 M系列芯片提供原生反对的Linux发行版。 开发团队称,作为Alpha版本,呈现谬误和性能的缺失是在劫难逃的,不过他们将以更快的速度改良,因而,现有的Alpha版本次要实用于“开发人员和高级用户”。 目前开发团队已分享了零碎要求列表、装置指南和兼容性能列表,值得一提的是,如果想在Mac上装置Asahi Linux,不须要越狱,也不会影响macOS 装置的安全级别。 Asahi Linux 装置要求:M1、M1 Pro 或 M1 Max电脑(Mac Studio 除外)macOS 12.3 或更高版本,以管理员用户身份登录至多 53GB 的可用磁盘空间(桌面装置),Asahi Linux Desktop 须要 15GB,但安装程序会在 macOS 中保留额定的 38GB 磁盘空间,以防止毁坏 macOS 更新。无效的互联网连贯,安装程序将下载 700MB ~ 4GB 的数据,具体取决于用户抉择的操作系统。 满足以上要求的用户,只需在 macOS 中关上终端并粘贴以下命令即可装置: curl https://alx.sh | sh目前Asahi Linux还有一些重要的性能未能反对,接下来仍有大量的工作须要实现。 未反对的性能:DisplayPort雷电接口MacBook 上的 HDMI蓝牙GPU 减速视频编解码减速神经引擎CPU deep idle睡眠模式相机触控栏*在13 英寸 MacBook Pro 上,您能够应用 Fn + 数字行键(1-9、0 和接下来的两个)作为 F1..F12 代替触控栏。 已反对的性能:Wi-FiUSB2 (雷电接口)USB3 (Mac Mini Type A 接口)屏幕 (no GPU)NVMe笔记本盖子开合电源按钮内置显示屏(仅限帧缓冲区)内置键盘 / 触摸板显示背光开 / 关电池信息 / 充电管制RTC以太网(台式机)SD 读卡器 (M1 Pro / Max)CPU 频率切换已知 Bug:如果 Wi-Fi 不起作用,请尝试在网络管理菜单中将其敞开再关上如果耳机插孔不工作或只有一个通道工作,请尝试重新启动博客地址: ...

March 21, 2022 · 1 min · jiezi

关于linux:配置-ZRAM实现-Linux-下的内存压缩零成本低开销获得成倍内存扩增

因为我的项目需要,笔者最近在一台 Linux 服务器上部署了 ElasticSearch 集群,却发现运行过程中经常出现查问速度忽然升高的问题,登录服务器后发现是物理内存不足,导致机器频繁产生页面替换。因为只是长期内存需要,没有晋升配置的必要,而 ElasticSearch 中存储的数据次要是文本数据,因而笔者想到了应用 ZRAM 对内存进行压缩,以防止磁盘 IO 导致性能稳定,成果显著。介于互联网上对于 Linux 配置 ZRAM 的文章少之又少,本文将为读者介绍在 Linux 中配置与应用 ZRAM 的过程,并借此机会介绍 ZRAM 以及 Linux 内存局部的运作机制。本文原载于未命名小站,由作者自己同步至 SegmentFault ,转载请注明原作者博客地址或本链接,谢谢!0x01 ZRAM 介绍随着古代应用程序的多样化和复杂化倒退,那个已经只须要 640KB 内存就能运行市面上所有软件的时代曾经一去不复返,而比应用程序倒退更快的则是用户对多任务的需要。当初的支流操作系统都提供了内存压缩的性能,以保障沉闷应用程序领有尽可能多的可用内存: macOS 从 OS X 10.9 之后默认开启内存压缩 Windows 从 Win10 TH2 之后默认开启内存压缩 大部分 Android 手机厂商都默认开启了内存压缩 仔细的读者会发现,在 Android 内存压缩的图中,并没有明确表明内存压缩,这是因为 Android(Linux)的内存压缩是依附 Swap 机制实现的,大部分状况下是应用 ZRAM 技术来模仿 Swap。 ZRAM 早在 2014 年就随同 Linux 3.14 内核合入主线,但因为 Linux 用处非常宽泛,这一技术并非默认启用,只有 Android 和少部分的 Linux 桌面发行版如 Fedora 默认启用了这一技术,以保障多任务场景下内存的正当分层存储。 0x02 ZRAM 运行机制ZRAM 的原理是划分一块内存区域作为虚构的块设施(能够了解为反对通明压缩的内存文件系统),当零碎内存不足呈现页面替换时,能够将本来应该替换进来的页压缩后放在内存中,因为局部被『替换进来』的页失去了压缩,因而可用的物理内存就能随之变多。 ...

March 21, 2022 · 8 min · jiezi

关于linux:Linux之bc命令

回复【1001】获取 linux常用命令速查手册 bc命令 是一种反对任意精度的交互执行的计算器语言。bash内置了对整数四则运算的反对,然而并不反对浮点运算,而bc命令能够很不便的进行浮点运算,当然整数运算也不再话下。 命令语法bc(选项)(参数) 命令选项-i:强制进入交互式模式;-l:定义应用的规范数学库;-w:对POSIX bc的扩大给出正告信息;-q:不打印失常的GNU bc环境信息;-v:显示指令版本信息;-h:显示指令的帮忙信息。命令参数文件:指定蕴含计算工作的文件。浮点数计算> echo "123.23*2" | bc246.46设定小数精度(数值范畴)> echo "scale=2;3/8" | bc.37但在做除法运算时,如果后果值小于1,小数后面的0是缺失的:bc除法后面补0> echo $(printf "%.2f" `echo "scale=2;3/8"|bc`)0.37十进制转二进制> echo "obase=2;192" | bc11000000二进制转十进制> echo "obase=10;ibase=2;11000000" | bc192bc计算n次方> echo "10^10" | bc10000000000计算平方根> echo "scale=2;sqrt(10)" | bc3.16原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程

March 19, 2022 · 1 min · jiezi

关于linux:Linux之alias命令

回复【1001】获取 linux常用命令速查手册 Linux alias命令用来设置指令的别名,对一些较长的命令进行简化。应用alias时,必须应用单引号将原来的命令蕴含,避免特殊字符导致谬误。 命令格局alias [-p] [name[=value] ...] 命令性能简化较长的命令。定义一个或多个别名。批改一个或多个已定义别名的值。显示一个或多个已定义别名。显示全副已定义的别名。命令选项-p:显示全副已定义的别名。命令参数name(可选):指定要(定义、批改、显示)的别名。value(可选):别名的值。显示零碎中曾经定义的别名> alias -palias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'只给以后用户设置命令别名> vim ~/.bashrcalias rm='rm -i'> source ~/.bashrc批改以后用户家目录下的.bashrc文件定义的别名对系统中所有的用户都失效> vim /etc/bashrcalias rm='rm -i'> source /etc/bashrc或者批改/etc/profile> vim /etc/profilealias rm='rm -i'> source /etc/profile显示已定义的别名> alias ls定义或批改别名的值> alias ls='ls --color=auto'> alias ls='ls --color=never' grep='grep --color=never'删除一个别名> unalias ls原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程

March 18, 2022 · 1 min · jiezi

关于linux:Linux下-Alluxio-的编译和运行

第一次接触分布式我的项目,还是在Linux下编程,的确和Windows下编程有一点点不一样。没有一点点防范,就让我理解到不能用在 windows 上运行的代码,以及除了 web 开发之外的开发。 相熟了以前在Windows下的开发,用 IDEA 工具开发,点 build 编译我的项目(之前始终翻译成构建我的项目),点 run 运行我的项目,有时甚至都不点 build 。这个过程如同是肌肉记忆个别,纯熟的让我疏忽了这么做背地的起因,如同它原本就是这样的。 不得不说,当看到Alluxio官网上须要筹备的是 Mac 或 Linux 时,脑中霎时闪过很多问号,在 Linux 上运行(没有Mac,就不思考Mac了)?不能在 Windows 上运行?那不能在 Windows 上看输入?不能在 Windows 上编译?构建?编译?构建和编译?要怎么启动我的项目,让它运行?命令怎么用的? 在这里记录一下编译和运行的了解,上面编译和运行的代码是分布式缓存零碎 Alluxio 。 概念:是什么?一个java程序,须要通过编译和运行两步,能力看到程序实现的成果。这里有2个很重要的过程,就是编译和运行。 编译:把源代码“变成”字节码。怎么“变”呢?由 jdk 中的 javac 编译生成。运行:把字节码“变成”机器码。怎么“变”呢?由 虚拟机 jvm 生成。运行这个过程,也是虚拟机把类加载到内存中的过程。操作系统执行机器码就能够运行java程序,看到源代码实现的成果。那么,源代码和字节码是什么? 源代码是咱们程序员编写的代码,是以 .java 结尾的文件。字节码是虚拟机 jvm 能够了解的代码,是以 .class 结尾的文件。它是只面向虚拟机的,应用雷同的字节码,虚拟机都会给出雷同的后果。也就是说,只有虚拟机一样,即便底层的操作系统不同,java 程序也不须要从新编译就能够间接运行。字节码字节码是在 java 程序生成的中间代码,不是机器/操作系统能够间接执行的代码。 字节码是虚拟机 jvm 能够了解的代码,它不是面向特定的操作系统,而是只面向虚拟机的。应用雷同的字节码,虚拟机都会给出雷同的后果。Java 语言通过字节码的形式,在肯定水平上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。 说到 java 程序,就离不开虚拟机。 Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同零碎的特定实现(Windows,Linux,macOS),目标是应用雷同的字节码,它们都会给出雷同的后果。字节码和不同零碎的 JVM 实现是 Java 语言“一次编译,随处能够运行”的关键所在。 编译与解释共存??高级编程语言依照程序的执行形式分为两种: 编译型 :编译型语言会通过编译器将源代码一次性翻译成可被该平台执行的机器码。个别状况下,编译语言的执行速度比拟快,开发效率比拟低。常见的编译性语言有 C、C++、Go、Rust 等等。解释型 :解释型语言一句一句的将代码解释(interpret)为机器代码后再执行。解释型语言开发效率比拟快,执行速度比较慢。常见的解释性语言有 Python、JavaScript、PHP 等等。java 语言是编译和解释共存的语言。是因为 java 语言既具备编译型语言的特色,也具备解释型语言的特色。 ...

March 18, 2022 · 2 min · jiezi

关于linux:Linux之ack命令

回复【1001】获取 linux常用命令速查手册 ack是比grep好用的文本搜寻工具 ack命令装置> yum install -y ack命令特点默认搜寻当前工作目录默认递归搜寻子目录疏忽元数据目录,比方.svn,.git,CSV等目录疏忽二进制文件(比方pdf,image,coredumps)和备份文件(比方foo~,*.swp)在搜寻后果中打印行号,有助于找到指标代码能搜寻特定文件类型(比方Perl,C++,Makefile),该文件类型能够有多种文件后缀高亮搜寻后果反对Perl的高级正则表达式,比grep所应用GNU正则表达式更有表现力。相比于搜寻速度,ack总体上比grep更快。ack的速度只有体现在它的内置的文件类型过滤器。在搜寻过程中,ack维持着认可的文件类型的列表,同时跳过未知或不必要的文件类型。它同样防止查看多余的元数据目录。命令参数-n, 显示行号-l/L, 显示匹配/不匹配的文件名-c, 统计次数-v, invert match-w, 词匹配-i, 疏忽大小写-f, 只显示文件名,不进行搜寻.-h, 不显示名称-v, 显示不匹配在当前目录递归搜寻单词”eat”,不匹配相似于”feature”或”eating”的字符串:> ack -w eat搜寻有特殊字符的字符串’$path=.’,所有的元字符(比方’$',’.')须要在字面上被匹配:> ack -Q '$path=.' /etc除了temp目录,在所有目录搜寻use单词> ack use --ignore-dir=temp只搜寻蕴含'main'单词的Python文件,而后通过文件名把搜寻后果整合在一起,打印每个文件对应的搜寻后果> ack --python --group -w main ack反对的文件类型> ack --help-types--[no]actionscript .as .mxml --[no]ada .ada .adb .ads --[no]asm .asm .s --[no]asp .asp --[no]aspx .master .ascx .asmx .aspx .svc --[no]batch .bat .cmd --[no]cc .c .h .xs --[no]cfmx .cfc .cfm .cfml --[no]clojure .clj .cljs .edn .cljc --[no]cmake CMakeLists.txt; .cmake --[no]coffeescript .coffee --[no]cpp .cpp .cc .cxx .m .hpp .hh .h .hxx --[no]csharp .cs --[no]css .css --[no]dart .dart --[no]delphi .pas .int .dfm .nfm .dof .dpk .dproj .groupproj .bdsgroup .bdsproj --[no]elisp .el --[no]elixir .ex .exs --[no]erlang .erl .hrl --[no]fortran .f .f77 .f90 .f95 .f03 .for .ftn .fpp --[no]go .go --[no]groovy .groovy .gtmpl .gpp .grunit .gradle --[no]gsp .gsp --[no]haskell .hs .lhs --[no]hh .h --[no]hpp .hpp .hh .h .hxx --[no]html .htm .html .xhtml --[no]jade .jade --[no]java .java .properties --[no]js .js --[no]json .json --[no]jsp .jsp .jspx .jspf .jhtm .jhtml --[no]kotlin .kt .kts --[no]less .less --[no]lisp .lisp .lsp --[no]lua .lua; first line matches /^#!.*\blua(jit)?/ --[no]make .mk; .mak; makefile; Makefile; Makefile.Debug; Makefile.Release --[no]matlab .m --[no]objc .m .h --[no]objcpp .mm .h --[no]ocaml .ml .mli .mll .mly --[no]parrot .pir .pasm .pmc .ops .pod .pg .tg --[no]perl .pl .pm .pod .t .psgi; first line matches /^#!.*\bperl/ --[no]perltest .t --[no]php .php .phpt .php3 .php4 .php5 .phtml; first line matches /^#!.*\bphp/ --[no]plone .pt .cpt .metadata .cpy .py --[no]python .py; first line matches /^#!.*\bpython/ --[no]rake Rakefile --[no]rr .R --[no]rst .rst --[no]ruby .rb .rhtml .rjs .rxml .erb .rake .spec; Rakefile; first line matches /^#!.*\bruby/ --[no]rust .rs --[no]sass .sass .scss --[no]scala .scala --[no]scheme .scm .ss --[no]shell .sh .bash .csh .tcsh .ksh .zsh .fish; first line matches /^#!.*\b(?:ba|t?c|k|z|fi)?sh\b/ --[no]smalltalk .st --[no]smarty .tpl --[no]sql .sql .ctl --[no]stylus .styl --[no]swift .swift; first line matches /^#!.*\bswift/ --[no]tcl .tcl .itcl .itk --[no]tex .tex .cls .sty --[no]ts .ts .tsx --[no]tt .tt .tt2 .ttml --[no]vb .bas .cls .frm .ctl .vb .resx --[no]verilog .v .vh .sv --[no]vhdl .vhd .vhdl --[no]vim .vim --[no]xml .xml .dtd .xsd .xsl .xslt .ent .wsdl; first line matches /<[?]xml/ --[no]yaml .yaml .yml获取蕴含CFLAG关键字的Makefile的文件名> ack --make CFLAGack查找my.cnf文件> ack -f /etc/ | ack my.cnf//或者> ack -g my.cnf /etc/原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 17, 2022 · 2 min · jiezi

关于linux:腾讯出品蓝鲸直播系列公开课第二期报名开启

对的,咱们又来了,带着第二期公开课(逃先看看往期课程回顾:第一期 针对宽广社区小伙伴们的困惑,咱们在2021年初开启了蓝鲸直播系列公开课-“我在腾讯做运维”的第一期,围绕产品的设计理念和外围性能做了简略的课程分享,让大家能从0到1接触蓝鲸。回顾入口:https://ke.qq.com/course/3101748疾速上手6.0系列 2021年下半年,又针对6.0各产品录制了3-5分钟的性能入门应用视频,旨在帮忙折腾完部署的同学能疾速上手产品的应用,失去了很多小伙伴们的认同。回顾入口:https://bk.tencent.com/s-mart...当初社区版6.0公布一年多了,太多太多社区小伙伴们和咱们说:“PaaS、CMDB、bkmonitor拼写都会,然而服务挂了都不晓得怎么搞”、“去作业平台跑个作业能够,搞个动静分组人就没了”、“看着他人用挺好,本人不会抄”。。。心愿咱们能有个官网的教程: 所以精心筹备的第二期直播课,他来了(掌声~- 适用人群1.曾经部署了社区版6.0,正在体验产品性能2.已有较深度应用,正尝试一些高级性能的实际3.曾经较深度应用,在平台保护方面有强烈诉求4.产品应用曾经没问题,想扩大开发- 你能够学什么?【第一课】社区版6.0平台保护:授人以渔的故障解决思路【第二课】社区版6.0根底套餐:CMDB+JOB运维自动化的流程玩起来【第三课】社区版6.0根底套餐:规范运维调度编排进阶,用好了你能够发射火箭【第四课】社区版6.0监控日志套餐:若是没有笼罩到你业务的解决方案,产品请你到会议室喝茶- 课程特点1) 3月初特邀蓝鲸外围用户和社区版6.0生产环境应用的用户加入课程调研,体验前所未有的精准课程2) 线上体验环境作为教学载体,随时跟着讲师一起实操3) 经典课后工作,坚固学习成绩- 你能够播种什么1.深度解析蓝鲸部署脚本,与脚本高手间接交流心得2.收费取得降本增效的运维解决方案,让当前工作锦上添花3.气味相投的小圈敌人,随时随地喝着咖啡做运维- 开课时间1.工作日早晨8点准时开课2.课程时长40分钟+互动答疑3.报名人数 < 100人,群内专属交换;报名人数 ≥ 100人,1周内开课4.成团后,每周安顿一节课程,本次系列共4节课程- 仅需 9.9块,长按二维码当初报名福利一:参加课程还有鲸币处分,可兑换精美周边和外围用户权利福利二:组队听课赢鲸币。(学员A邀请学员B报名加入课程,学员A可获100一般鲸币。学员B报名时填写邀请人学员A的QQ号)福利三:退出蓝鲸小圈学习群,腾讯运维工程师与你分享更多技巧福利四:左手贴身领导,右手学习材料,学到精通 报名链接:https://www.bagevent.com/even... - 最初1.本次课程免费 9.9元。最终流动收到的所有款项将募捐给腾讯公益我的项目2.实现本次系列全副课程(四节课)后返还100一般鲸币。查看如何应用鲸币?3.报名之后需将付费凭证截图发送至微信号:tencent-blueking 工作人员依据凭证发送课程链接4.运维开发直播课程行将到来!为了能将更有针对性的内容提供给大家,现邀请您参加咱们课前的调研:https://wj.qq.com/s2/9804782/... - 举荐流动无需自行部署,申请账号即可体验! 社区版6.0线上体验环境:https://bk.tencent.com/s-mart...

March 16, 2022 · 1 min · jiezi

关于linux:Linux之ab命令

回复【1001】获取 linux常用命令速查手册 ab是apachebench命令的缩写,ab是apache自带的压力测试工具。ab十分实用,它不仅能够对apache服务器进行网站拜访压力测试,也能够对或其它类型的服务器进行压力测试。比方nginx、tomcat、IIS等。 ab的原理:ab命令会创立多个并发拜访线程,模仿多个访问者同时对某一URL地址进行拜访。它的测试指标是基于URL的,因而,它既能够用来测试apache的负载压力,也能够测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。 ab命令对收回负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给指标服务器造成微小的负载,其原理相似CC攻打。本人测试应用也须要留神,否则一次上太多的负载。可能造成指标服务器资源耗完,重大时甚至导致死机。 装置ab命令> yum -y install httpd-tools命令格局ab [options] [http[s]://]hostname[:port]/path 命令参数options-A auth-username:password 对服务器提供BASIC认证信赖。 用户名和明码由一个:隔开,并以base64编码模式发送。 无论服务器是否须要(即, 是否发送了401认证需要代码),此字符串都会被发送。-c concurrency 一次产生的申请个数。默认是一次一个。-C cookie-name=value 对申请附加一个Cookie:行。 其典型模式是name=value的一个参数对。 此参数能够反复。-d 显示"percentage served within XX [ms] table"的音讯(为以前的版本提供反对)。-e csv-file 产生一个以逗号分隔的(CSV)文件, 其中蕴含了解决每个相应百分比的申请所须要(从1%到100%)的相应百分比的(以奥妙为单位)工夫。 因为这种格局曾经“二进制化”,所以比'gnuplot'格局更有用。-g gnuplot-file 把所有测试后果写入一个'gnuplot'或者TSV (以Tab分隔的)文件。 此文件能够不便地导入到Gnuplot, IDL, Mathematica, Igor甚至Excel中。 其中的第一行为题目。-h 显示应用办法。-H custom-header 对申请附加额定的头信息。 此参数的典型模式是一个无效的头信息行,其中蕴含了以冒号分隔的字段和值的对 (如, "Accept-Encoding: zip/zop;8bit").-i 执行HEAD申请,而不是GET。-k 启用HTTP KeepAlive性能,即, 在一个HTTP会话中执行多个申请。 默认时,不启用KeepAlive性能.-n requests 在测试会话中所执行的申请个数。 默认时,仅执行一个申请,但通常其后果不具备代表意义。-p POST-file 蕴含了须要POST的数据的文件.-P proxy-auth-username:password 对一个直达代理提供BASIC认证信赖。 用户名和明码由一个:隔开,并以base64编码模式发送。 无论服务器是否须要(即, 是否发送了401认证需要代码),此字符串都会被发送。-q 如果解决的申请数大于150, ab每解决大概10%或者100个申请时,会在stderr输入一个进度计数。 此-q标记能够克制这些信息。-s 用于编译中(ab -h会显示相干信息)应用了SSL的受爱护的https, 而不是http协定的时候。此性能是实验性的,也是很简陋的。最好不要用。-S 不显示中值和规范背离值, 而且在均值和中值为规范背离值的1到2倍时,也不显示正告或出错信息。 默认时,会显示 最小值/均值/最大值等数值。(为以前的版本提供反对).-t timelimit 测试所进行的最大秒数。其外部隐含值是-n 50000。 它能够使对服务器的测试限度在一个固定的总工夫以内。默认时,没有工夫限度。-T content-type POST数据所应用的Content-type头信息。-v verbosity 设置显示信息的具体水平 - 4或更大值会显示头信息, 3或更大值能够显示响应代码(404, 200等), 2或更大值能够显示正告和其余信息。-V 显示版本号并退出。-w 以HTML表的格局输入后果。默认时,它是红色背景的两列宽度的一张表。-x <table>-attributes 设置<table>属性的字符串。 此属性被填入<table 这里>.-X proxy[:port] 对申请应用代理服务器。-y <tr>-attributes 设置<tr>属性的字符串.-z <td>-attributes 设置<td>属性的字符串.对json.im进行,1000次申请,并发用户10的压力测试> ab -n 1000 -c 10 https://json.im-n 1000示意申请总数为1000-c 10示意并发用户数为10ab压力测试返回报文内容详解Server Software: Apache #服务器软件Server Hostname: json.im #域名Server Port: 80 #申请端口号Document Path: / #文件门路Document Length: 40888 bytes #页面字节数Concurrency Level: 10 #申请的并发数Time taken for tests: 27.300 seconds #总拜访工夫Complete requests: 1000 #申请胜利数量Failed requests: 0 #申请失败数量Write errors: 0Total transferred: 41054242 bytes #申请总数据大小(包含header头信息)HTML transferred: 40888000 bytes #html页面理论总字节数Requests per second: 36.63 [#/sec] (mean) #每秒多少申请,这个是十分重要的参数数值,服务器的吞吐量Time per request: 272.998 [ms] (mean) #用户均匀申请等待时间 Time per request: 27.300 [ms] (mean, across all concurrent requests) # 服务器均匀解决工夫,也就是服务器吞吐量的倒数 Transfer rate: 1468.58 [Kbytes/sec] received #每秒获取的数据长度Connection Times (ms) min mean[+/-sd] median maxConnect: 43 47 2.4 47 53Processing: 189 224 40.7 215 895Waiting: 102 128 38.6 118 794Total: 233 270 41.3 263 945Percentage of the requests served within a certain time (ms) 50% 263 #50%用户申请在263ms内返回 66% 271 #66%用户申请在271ms内返回 75% 279 #75%用户申请在279ms内返回 80% 285 #80%用户申请在285ms内返回 90% 303 #90%用户申请在303ms内返回 95% 320 #95%用户申请在320ms内返回 98% 341 #98%用户申请在341ms内返回 99% 373 #99%用户申请在373ms内返回 100% 945 (longest request)登录问题对于理论场景中常常须要用的登录问题,如果接口须要验证Cookie ,那么应用-C写到Cookie内容> ab -n 100 -C key=value https://json.im或者应用 -H 带 Cookie 自定义多个字段> ab -n 100 -H "Cookie: Key1=Value1; Key2=Value2" http://localhost测试接口Header传入token> ab -n 1000 -c 10 -H 'token:abc' https://json.im原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 16, 2022 · 2 min · jiezi

关于linux:linux磁盘扩容

命令lsblk 作用:lsblk命令的英文是“list block”,即用于列出所有可用块设施的信息,而且还能显示他们之间的依赖关系,然而它不会列出RAM盘的信息。 fdisk 作用:fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从本质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子。vgextend 作用:vgextend命令用于动静扩大LVM卷组,它通过向卷组中增加物理卷来减少卷组的容量lvextend 作用:vextend命令的作用是在线扩大逻辑卷的空间大小,而不中断应用程序对逻辑卷的拜访lvdisplay 作用:lvdisplay命令用于显示LVM逻辑卷空间大小、读写状态和快照信息等属性。如果省略”逻辑卷”参数,则lvdisplay命令显示所有的逻辑卷属性。否则,仅显示指定的逻辑卷属性。vgdisplay 作用:vgdisplay命令用于显示LVM卷组的信息。如果不指定”卷组”参数,则别离显示所有卷组的属性。思路1.查看磁盘分区2.抉择新加的磁盘,进行分区3.查看lvm卷组信息4.拓展卷组5.查看逻辑卷信息6.拓展逻辑卷实现fdisk -l 抉择新加的磁盘fdisk 磁盘设施 顺次输出n p 1(依据提醒的数字,来解决) 回车 回车 wlsblk 查看可用的块设施,找到刚刚创立的分区vgdisplay 找到以后卷组信息vgextend 卷组名 刚刚创立的分区 拓展卷组lvdisplay 查看卷信息lvextend -r -L +10G(依据具体需要确定大小) 卷门路(卷信息有)

March 16, 2022 · 1 min · jiezi

关于linux:Linux之wget命令

回复【1001】获取 linux常用命令速查手册 Linux零碎中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,咱们常常要下载一些软件或从近程服务器复原备份到本地服务器。wget反对HTTP,HTTPS和FTP协定,能够应用HTTP代理。wget 能够跟踪HTML页面上的链接顺次下载来创立近程服务器的本地版本,齐全重建原始站点的目录构造。这又常被称作”递归下载”。在递归下载的时候,wget 遵循Robot Exclusion规范(/robots.txt). wget能够在下载的同时,将链接转换成指向本地文件,以不便离线浏览。 wget 十分稳固,它在带宽很窄的状况下和不稳固网络中有很强的适应性.如果是因为网络的起因下载失败,wget会一直的尝试,直到整个文件下载结束。如果是服务器打断下载过程,它会再次联到服务器上从进行的中央持续下载。这对从那些限定了链接工夫的服务器上下载大文件十分有用。 装置形式有些最小装置的Linux零碎可能没有装置上wget命令,能够自行装置CentOS> yum install wget -yDebian/Ubuntusudo apt-get install -y wget命令格局wget [参数][URL] 命令参数启动参数-V, –version 显示wget的版本后退出-h, –help 打印语法帮忙-b, –background 启动后转入后盾执行-e, –execute=COMMAND 执行’.wgetrc’格局的命令,wgetrc格局参见/etc/wgetrc或~/.wgetrc记录和输出文件参数-o, –output-file=FILE 把记录写到FILE文件中-a, –append-output=FILE 把记录追加到FILE文件中-d, –debug 打印调试输入-q, –quiet 宁静模式(没有输入)-v, –verbose 简短模式(这是缺省设置)-nv, –non-verbose 关掉简短模式,但不是宁静模式-i, –input-file=FILE 下载在FILE文件中呈现的URLs-F, –force-html 把输出文件当作HTML格式文件看待-B, –base=URL 将URL作为在-F -i参数指定的文件中呈现的绝对链接的前缀–sslcertfile=FILE 可选客户端证书 –sslcertkey=KEYFILE 可选客户端证书的KEYFILE –egd-file=FILE 指定EGD socket的文件名下载参数-bind-address=ADDRESS 指定本地应用地址(主机名或IP,当本地有多个IP或名字时应用)-t, –tries=NUMBER 设定最大尝试链接次数(0 示意无限度).-O –output-document=FILE 把文档写到FILE文件中-nc, –no-clobber 不要笼罩存在的文件或应用.#前缀-c, –continue 接着下载没下载完的文件-progress=TYPE 设定过程条标记-N, –timestamping 不要从新下载文件除非比本地文件新-S, –server-response 打印服务器的回应-T, –timeout=SECONDS 设定响应超时的秒数-w, –wait=SECONDS 两次尝试之间距离SECONDS秒-waitretry=SECONDS 在从新链接之间期待1…SECONDS秒-random-wait 在下载之间期待0…2*WAIT秒-Y, -proxy=on/off 关上或敞开代理-Q, -quota=NUMBER 设置下载的容量限度-limit-rate=RATE 限定下载速率目录参数-nd –no-directories 不创立目录-x, –force-directories 强制创立目录-nH, –no-host-directories 不创立主机目录-P, –directory-prefix=PREFIX 将文件保留到目录 PREFIX/…-cut-dirs=NUMBER 疏忽 NUMBER层近程目录HTTP 选项参数-http-user=USER 设定HTTP用户名为 USER.-http-passwd=PASS 设定http明码为 PASS-C, –cache=on/off 容许/不容许服务器端的数据缓存 (个别状况下容许)-E, –html-extension 将所有text/html文档以.html扩展名保留-ignore-length 疏忽 ‘Content-Length’头域-header=STRING 在headers中插入字符串 STRING-proxy-user=USER 设定代理的用户名为 USERproxy-passwd=PASS 设定代理的明码为 PASSreferer=URL 在HTTP申请中蕴含 ‘Referer: URL’头-s, –save-headers 保留HTTP头到文件-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSIONno-http-keep-alive 敞开 HTTP流动链接 (永远链接)cookies=off 不应用 cookiesload-cookies=FILE 在开始会话前从文件 FILE中加载cookiesave-cookies=FILE 在会话完结后将 cookies保留到 FILE文件中FTP 选项参数-nr, –dont-remove-listing 不移走 ‘.listing’文件-g, –glob=on/off 关上或敞开文件名的 globbing机制passive-ftp 应用被动传输模式 (缺省值).active-ftp 应用被动传输模式retr-symlinks 在递归的时候,将链接指向文件(而不是目录)递归下载参数-r, –recursive 递归下载--慎用!-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷)-delete-after 在下载结束后部分删除文件-k, –convert-links 转换非绝对链接为绝对链接-K, –backup-converted 在转换文件X之前,将之备份为 X.orig-m, –mirror 等价于 -r -N -l inf -nr-p, –page-requisites 下载显示HTML文件的所有图片递归下载中的蕴含和不蕴含(accept/reject):-A, –accept=LIST 分号分隔的被承受扩展名的列表-R, –reject=LIST 分号分隔的不被承受的扩展名的列表-D, –domains=LIST 分号分隔的被承受域的列表-exclude-domains=LIST 分号分隔的不被承受的域的列表-follow-ftp 跟踪HTML文档中的FTP链接-follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表-G, –ignore-tags=LIST 分号分隔的被疏忽的HTML标签的列表-H, –span-hosts 当递归时转到内部主机-L, –relative 仅仅跟踪绝对链接-I, –include-directories=LIST 容许目录的列表-X, –exclude-directories=LIST 不被蕴含目录的列表-np, –no-parent 不要追溯到父目录应用wget下载单个文件> wget http://nginx.org/download/nginx-1.16.1.tar.gz ...

March 15, 2022 · 2 min · jiezi

关于linux:Fix-Failed-to-download-metadata-for-repo

I had installed a minimalist CentOS 8 on one of my servers. Installation went successful, however, when I tried to update the system using yum update I see this error message: Failed to download metadata for repo. Below is the complete error. [root@autocontroller ~]# yum updateCentOS-8 - AppStream 70 B/s | 38 B 00:00Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlistOutput from the /var/log/dnf.log for more DEBUG information: ...

March 15, 2022 · 2 min · jiezi

关于linux:linux篇系统指令用户操作

一、管道符(|)阐明:常常和grep配合应用语法: 数据源 | grep "筛选的条件"eg: [root@192 ~]# cat anaconda-ks.cfg | grep "ty$"pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notemptypwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty二、查看指令地位(which)eg: [root@192 ~]# which ls man cpalias cp='cp -i' /usr/bin/cpalias ls='ls --color=auto' /usr/bin/ls/usr/bin/man三、零碎指令1、关机shutdown -h 阐明:当初敞开:shutdown -h now n分钟后敞开:shutdown -h +n 具体工夫敞开:shutdown -h 12:30init 02、重启rebootinit 63、运行程序信息(过程的查看)ps -axu (动态展示)[root@192 ~]# ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.3 125500 3888 ? Ss 08:22 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22root 2 0.0 0.0 0 0 ? S 08:22 0:00 [kthreadd]root 4 0.0 0.0 0 0 ? S< 08:22 0:00 [kworker/0:0H]root 5 0.0 0.0 0 0 ? S 08:22 0:00 [kworker/u256:0]root 6 0.0 0.0 0 0 ? R 08:22 0:11 [ksoftirqd/0]...top (动静展示) ...

March 14, 2022 · 2 min · jiezi

关于linux:技术解读英特尔-x86-平台上AI-能力是如何进行演进的附PPT

AI 计算力的指数增长意味着,为了解决越来越简单的用例,即便是 1000 倍的计算性能增长也很容易被耗费。因而,须要通过软件生态系统的助力,能力达到更好的性能。咱们置信,构建 AI 软件生态系统,是将人工智能和数据迷信我的项目推向生产的要害。本文整顿自龙蜥大讲堂技术直播第四期,由龙蜥社区AI SIG核心成员、英特尔 AI 软件开发⼯程师黄文欢分享——用技术和实例解说英特尔 x86 平台 AI 能力演进的要害。 以下是本期龙蜥大讲堂技术直播回顾文:人工智能的倒退为社会各个领域带来了有限可能,但这些利用都须要很强的计算性能和优化来提供精确、及时的后果。人工智能模型复杂性的增长速度是飞速的,大概三年前,像 ELMo 这样的自然语言模型只有 9400 万个参数,而往年最大的模型达到了超过 1 万亿个参数。 一、英特尔 x86 平台 AI 能力演进自 Skylake 以来,英特尔通过从 AVX256 降级到 AVX512,将 AVX 的能力进步了一倍,这极大地提高了深度学习训练和推理能力。一年后,在 Cascade Lake 中引入 DL Boost VNNI,大大提高 INT8 乘加吞吐量。自 Cooper Lake 之后,英特尔将BFloat16(BF16) 增加到 DL Boost 指令集中,以进一步提高深度学习训练和推理性能。硬件始终在向前倒退,AMX 自 Sapphire Rapids 开始推出,将会进一步提高 VNNI 和 BF16 从 1 维-向量到 2 维-矩阵的能力。英特尔可扩大处理器通过英特尔Deep Learning Boost (Intel®DL Boost) 将嵌入式 AI 性能晋升到一个新的程度。英特尔的 Deep Learning Boost ( DL Boost ) 是 x86-64 上指令集架构性能的名称,旨在进步深度学习工作(例如训练和推理)的性能。DL Boost 蕴含两组关键技术: ...

March 14, 2022 · 4 min · jiezi

关于linux:Linux之scp命令

回复【1001】获取 linux常用命令速查手册 Linux零碎中的scp(secure copy)命令用于以平安形式在服务器之间复制文件。通过应用SCP命令或平安正本,能够在本地主机和近程主机之间或两个近程主机之间平安地传输文件。它应用与平安外壳(SSH)协定中雷同的身份验证和安全性。SCP以其简略性,安全性和预装置的可用性而闻名。 命令格局scp [参数] [原门路] [指标门路] 命令参数-1 强制scp命令应用协定ssh1-2 强制scp命令应用协定ssh2-4 强制scp命令只应用IPv4寻址-6 强制scp命令只应用IPv6寻址-B 应用批处理模式(传输过程中不询问传输口令或短语)-C 容许压缩。(将-C标记传递给ssh,从而关上压缩性能)-p 留原文件的批改工夫,拜访工夫和拜访权限。-q 不显示传输进度条。-r 递归复制整个目录。-v 具体形式显示输入。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连贯,验证和配置问题。-c cipher 以cipher将数据传输进行加密,这个选项将间接传递给ssh。-F ssh_config 指定一个代替的ssh配置文件,此参数间接传递给ssh。-i identity_file 从指定文件中读取传输时应用的密钥文件,此参数间接传递给ssh。-l limit 限定用户所能应用的带宽,以Kbit/s为单位。-o ssh_option 如果习惯于应用ssh_config(5)中的参数传递形式,-P port 留神是大写的P, port是指定数据传输用到的端口号-S program 指定加密传输时所应用的程序。此程序必须可能了解ssh(1)的选项。复制当前目录下的rumenz.tar.gz到近程服务器> scp rumenz.tar.gz root@json.im:/tmp/rumenz.tar.gz指定了用户名,命令执行后须要输出用户明码;如果不指定用户名,命令执行后须要输出用户名和明码;复制rumenz目录到近程服务器> scp -r rumenz root@json.im:/tmp复制目录须要加上-r参数从近程服务器下载rumenz.tar.gz文件到本地> scp root@json.im:/tmp/rumenz.tar.gz ./tmp从近程服务器下载rumenz目录> scp -r root@json.im:/tmp/rumenz .自定义端口SCP应用端口22作为默认端口。然而出于平安起因,您能够将端口更改为另一个端口。例如,咱们将应用端口2222。那么命令必须像这样。> scp -P 2222 rumenz.tar.gz root@json.im:/tmp/限度带宽应用-l参数将限度要应用的总带宽。如果您制作了一个自动化脚本来复制许多文件,然而您不心愿SCP过程节约带宽,这将很有用。> scp -l 400 rumenz.tar.gz root@json.im:/tmp/原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程

March 14, 2022 · 1 min · jiezi

关于linux:软件商店上新石墨文档Shotcut-等-5-款便捷办公类软件上线

麒麟软件商店上新啦!快来看看吧~ 本次上新给大家带来的 5 款软件别离是:石墨 Office 协同办公软件、甘棠政务、泰山办公、Shotcut 和 ETestDev 。目前,这 5 款办公类软件已上架至麒麟软件商店,感兴趣的小伙伴可返回软件商店下载应用! 石墨 Office 协同办公软件 石墨 Office 是一款反对多种支流 Office 文件解决能力的国产正版 Office 办公软件。整合本地、云端 Office 能力于一体,满足你随时随地、多端办公,或在断网、弱网环境下的本地办公诉求。![优麒麟](https://www.ubuntukylin.com/u...) Shotcut Shotcut 中文版是一个收费的并源跨平台视频编辑器,反对数百种音频、视频格式,以及编解码器,且无需导入,可间接编辑。Shotcut 中文版还领有晦涩、真观的界面,帮忙用户更好的编辑视频、音频。 甘棠政务 甘棠政务零碎性能笼罩了公文解决、即时通讯、绩效考核、工作汇报等多种高频政务工作。能够反对各级党组织和政府部门的接入及利用,为党政人员协同办公提供高效、牢靠、平安的服务。 泰山办公 赋能中文办公。全面反对 Word、Excel、PPT、PDF、OFD 五大利用,实现流、版文档格局精准读写编辑 。 ETestDEV ETestDEV 是一种程序开发环境,它可能非常便捷的管制各种硬件设施实现测试测量工作,也能够非常便捷地编制各种控制程序;有弱小的数据处理能力。在一些畛域,ETestDEV 被称为中国人本人的 labViewe。 装置形式 首先,更新零碎源sudo apt update 关上软件商店,搜寻利用下载安装优麒麟社区对常用软件的适配始终没有进行。目前软件商店精选上架了各类软件,涵盖了办公、社交、影音娱乐、开发工具、图像处理等类别。将来,优麒麟社区将持续和各利用厂家增强单干,致力为 Linux 操作系统生态圈增加更多更好的利用。

March 14, 2022 · 1 min · jiezi

关于linux:toa-内核模块分析

TOA 的由来咱们晓得 LVS 之前有三种负载平衡模式:DR、NAT 和 Tunnel,但都有各自的缺点,比方 DR 和 NAT 要求 virtual server 与 real server 在同一子网下,而 Tunnel 运维起来比较复杂。因而,为了灵便部署,开发了第四种模式,即 FULLNAT。 FULLNAT 模式是 NAT 模式的一种扩大,不仅会替换目标 IP,也会替换源 IP。带来的益处是,使得 virtual server 和 real server 解脱后端网络的解放,不再要求它们位于同一子网下。 然而,这种模式也带来了一个问题,real server 无奈获取实在的客户端 IP 地址,而在很多业务场景下,咱们在对外提供服务时,须要查看服务申请方的 IP 地址,来针对IP地址做一些业务解决,最常见的一个例子就是:做白名单校验,只有在白名单列表中的 IP 地址,咱们才容许它拜访咱们的服务;还有一种利用场景,那就是基于客户端的申请 IP 来进行调度,譬如 CDN 服务,那么就须要依据客户端的申请 IP,来调度最近最适宜的资源提供服务。 为了解决上述问题,TOA 应运而生,它理论是一个 TCP option filed,应用了 8 字节(kind = 0xfe,Length = 0x08,Value = 4B client's IP + 2B port),源码如下, /* MUST be 4 bytes alignment */struct toa_data { __u8 opcode; __u8 opsize; __u16 port; __u32 ip;};服务端机器打上 patch 后,在 lvs FULLNAT 模式下可能通过零碎调用 getsockopt 拿到实在的 client IP 地址。 ...

March 13, 2022 · 3 min · jiezi

关于linux:Linux篇文件目录

一、linux文件系统和目录1.1 linux文件系统 linux是树形构造的文件系统,其中/是零碎的根目录,其余所有目录都是它的子节点。 1.2 linux次要目录介绍/ :根目录,惟一/home:普通用户目录/root:系统管理员root目录/bin:寄存所有零碎指令/usr:用户软件目录/etc:零碎的配置目录/boot:内核文件/var:日志信息二、 linux终端命令格局2.1 终端命令格局command [-options] [parameter]command: 命令名称[] 示意可选项"[-options]":命令选项,可有可无"[parameter]": 命令参数,能够不传,也能够传一个/多个2.2 查看命令帮忙信息 --helpcommand --help阐明:显示command命令的帮忙信息eg: ls --helpman --helptouch --help...2.2 查看命令的帮忙信息 (man)man command阐明:查看command命令的使用手册eg: man lsman touchman cpman mkdirman的操作键阐明: * 空格键:显示手册下一页* Enter键:滚动显示手册的下一行(一行一行的看)* B:显示上一页* F:显示下一页* q:退出三、 文件和目录常用命令3.1 查看目录内容(ls)命令格局:ls [-lah(选项)] [文件/目录]ls参数阐明: -l: 以列表形式具体显示内容信息-a: 显示所有文件,蕴含暗藏文件及目录-h: 配合-l显示出文件的大小留神: ^以什么结尾 eg:^a 以a结尾的数据$以什么结尾 eg:a$ 以a结尾的数据3.2 切换目录(cd)命令格局:cd [目录名称]cd命令阐明: cd或者cd ~ : 切换到以后用户的主目录(/home/用户目录)cd . : 切换到当前目录cd .. :切换到上一级目录cd - :切换到上一次所在的目录留神:文件及目录名称辨别大小写绝对路径:以根门路或家门路结尾,示意从根目录/家目录 开始的具体目录地位相对路径:不以根门路或者家目录结尾,示意绝对当前目录所在的目录地位3.3 创立文件(touch)命令格局:touch 文件名 次要针对文件不是目录touch命令阐明: 如是文件名不存在,创立对应的文件。如果文件名已存在,则更新文件的批改工夫eg:在root目录下创立两个文件,别离为 a.txt b.txttouch a.txt b.txt ...

March 13, 2022 · 1 min · jiezi

关于linux:Linux之rcp命令

回复【1001】获取 linux常用命令速查手册回复【10010】获取 阿里云ECS运维Linux系统诊断回复【10012】获取 Linux学习笔记【强悍总结值得一看】回复【10013】获取 shell扼要教程rcp代表“remote file copy”(近程文件拷贝)。该命令用于在计算机之间拷贝文件。rcp命令有两种格局。第一种格局用于文件到文件的拷贝;第二种格局用于把文件或目录拷贝到另一个目录中。 linux零碎中默认是不装置这个命令的,上面是各种零碎的装置形式 #Arch Linux> pacman -S inetutils #CentOS> yum install rsh -y #Fedora> dnf install rsh #OS X> brew install inetutilsrcp拷贝文件所需套件rsh (Client)和rsh-server (Server),Client从Server拷贝文件。装置sh-server,默认开启514端口> yum install rsh rsh-server -y> systemctl enable rsh.socket> systemctl start rsh.socket配置sh-server> echo "rsh" >> /etc/securetty> echo "115.34.111.11 root" >> /root/.rhosts115.34.111.11是客户端的ip,意思就是容许115.34.111.11操作sh-server只对某个用户失效如root用户在单方root用户根目录下建设.rhosts文件,并将单方的hostname加进去.在此之前应在单方的 /etc/hosts文件中退出对方的IP和hostname命令格局rcp [参数] [源文件] [指标文件] 命令性能rcp命令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最初的目的地是一个曾经存在的目录,则它会把后面指定的所有文件或目录复制到该目录中。命令参数-p:保留源文件或目录的属性,包含拥有者、所属群组、权限与工夫;-r:递归解决,将指定目录下的文件与子目录一并处理;-x:加密两台Linux主机间传送的所有信息。-D:指定近程服务器的端口号。将当前目录下的rumenz.txt复制到112.112.112.112服务器的/tmp下> rcp rumenz.txt 112.112.112.112:/tmp将目录rumenz复制到112.112.112.112服务器的/tmp下> rcp -r rumenz 112.112.112.112:/tmp从近程服务器下载文件将112.112.112.112服务器tmp目录下的rumenz.tar.gz下载到当前目录> rcp 112.112.112.112:/tmp/rumenz.tar.gz .从近程零碎复制目录> rcp -r 112.112.112.112:/tmp/rumenz .要将近程目录及其所有文件和子目录复制到本地目录,请在以下语法中应用 rcp 和 -r(递归)选项。.代表当前目录。原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 13, 2022 · 1 min · jiezi

关于linux:etclvmarchive-mkdir-failed-No-space-left-on-device

1、起因明天在 Ubuntu20.04.4 里的 Docker 启动服务时,遇到了 “No space left on device” 磁盘空间有余的问题,如下: 用 vgdisplay 一查,发现闲暇的空间有8.5G,如图: 而后就想着扩容,可是原来LVM动静减少lv的办法不好使了,始终报 /etc/lvm/archive: mkdir failed: No space left on device 2、解决办法lvextend 不好使,于是我应用了 lvresize,从新调整了 /dev/mapper/ubuntu 的 lv 大小,并刷新了文件系统。 $ lvresize -A n -L +8G /dev/mapper/ubuntu --vg-ubuntu--lv$ resize2fs -p /dev/ubuntu-vg/root $ df -h 3、后果能够看到一开始的 ubuntu --vg-ubuntu--lv 只有10G 扩容后变成了18G,扩容胜利!

March 13, 2022 · 1 min · jiezi

关于linux:Linux之telnet命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 telnet命令通常用来近程登录,默认端口是23。telnet程序是基于TELNET协定的近程登录客户端程序。Telnet协定是TCP/IP协定族中的一员,是Internet远程登陆服务的标准协议和次要形式。它为用户提供了在本地计算机上实现近程主机工作的 能力。在终端使用者的电脑上应用telnet程序,用它连贯到服务器。终端使用者能够在telnet程序中输出命令,这些命令会在服务器上运行,就像间接在服务器的管制台上输出一样。能够在本地就能管制服务器。要开始一个 telnet会话,必须输出用户名和明码来登录服务器。Telnet是罕用的近程管制Web服务器的办法。 telnet因为采纳明文传送报文,安全性不好,很多Linux服务器都不凋谢telnet服务,而改用更平安的ssh形式了。但依然有很多别的零碎可能采纳了telnet形式来提供近程登录,因而弄清楚telnet客户端的应用形式仍是很有必要的。 telnet命令还可做别的用处,比方确定近程服务的状态,比方确定近程服务器的某个端口是否能拜访。 telnet命令默认不装置,上面是Centos7的装置形式 查看是否装置 > rpm -qa|grep telnet*> rpm -qa|grep xinetd如果没有装置就间接装置> yum -y install telnet*> yum -y install xinetd设置开机启动并启动该服务//设置开机启动> systemctl enable xinetd.service> systemctl enable telnet.socket//启动该服务> systemctl start telnet.socket> systemctl start xinetd> firewall-cmd --permanent --add-port=23/tcp> firewall-cmd --reload测试> telnet 127.0.0.1Ubuntu装置办法> sudo apt-get install openbsd-inetd> sudo apt-get install telnetd> sudo /etc/init.d/openbsd-inetd restartTelnet 客户端命常用命令open : 应用 openhostname 能够建设到主机的 Telnet 连贯。close : 应用命令 close 命令能够敞开现有的 Telnet 连贯。display : 应用 display 命令能够查看 Telnet 客户端的以后设置。send : 应用 send 命令能够向 Telnet 服务器发送命令。反对以下命令:ao : 放弃输入命令。ayt : “Are you there”命令。esc : 发送以后的转义字符。ip : 中断过程命令。synch : 执行 Telnet 同步操作。brk : 发送信号。quit :应用 quit 命令能够退出 Telnet 客户端。上表所列命令以外的其余命令都将以字符串的模式发送至 Telnet 服务器。例如,send json 将发送字符串json至Telnet 服务器,这样,Telnet 会话窗口中将呈现该字符串。命令格局telnet [参数] [主机] ...

March 12, 2022 · 1 min · jiezi

关于linux:Linux之netstat命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 netstat命令用于显示与IP、TCP、UDP和ICMP协定相干的统计数据,个别用于测验本机各端口的网络连接状况。netstat是在内核中拜访网络及相干信息的程序,它能提供TCP连贯,TCP和UDP监听,过程内存治理的相干报告。 TCP连贯状态详解LISTEN: 侦听来自远方的TCP端口的连贯申请SYN-SENT: 再发送连贯申请后期待匹配的连贯申请SYN-RECEIVED:再收到和发送一个连贯申请后期待对方对连贯申请的确认ESTABLISHED: 代表一个关上的连贯FIN-WAIT-1: 期待近程TCP连贯中断请求,或先前的连贯中断请求的确认FIN-WAIT-2: 从近程TCP期待连贯中断请求CLOSE-WAIT: 期待从本地用户发来的连贯中断请求CLOSING: 期待近程TCP对连贯中断的确认LAST-ACK: 期待原来的发向近程TCP的连贯中断请求的确认TIME-WAIT: 期待足够的工夫以确保近程TCP接管到连贯中断请求的确认CLOSED: 没有任何连贯状态命令格局netstat(选项) 命令选项-a或--all:显示所有连线中的Socket;-A<网络类型>或--<网络类型>:列出该网络类型连线中的相干地址;-c或--continuous:继续列出网络状态;-C或--cache:显示路由器配置的快取信息;-e或--extend:显示网络其余相干信息;-F或--fib:显示FIB;-g或--groups:显示多重播送性能群组组员名单;-h或--help:在线帮忙;-i或--interfaces:显示网络界面信息表单;-l或--listening:显示监控中的服务器的Socket;-M或--masquerade:显示假装的网络连线;-n或--numeric:间接应用ip地址,而不通过域名服务器;-N或--netlink或--symbolic:显示网络硬件外围设备的符号连贯名称;-o或--timers:显示计时器;-p或--programs:显示正在应用Socket的程序识别码和程序名称;-r或--route:显示Routing Table;-s或--statistice:显示网络工作信息统计表;-t或--tcp:显示TCP传输协定的连线情况;-u或--udp:显示UDP传输协定的连线情况;-v或--verbose:显示指令执行过程;-V或--version:显示版本信息;-w或--raw:显示RAW传输协定的连线情况;-x或--unix:此参数的成果和指定"-A unix"参数雷同;--ip或--inet:此参数的成果和指定"-A inet"参数雷同。列出所有端口(蕴含TCP和UDP)> netstat -a 列出所有TCP端口> netstat -at 列出所有UDP端口> netstat -au 列出所有处于监听状态的 Sockets> netstat -l 只列出所有监听tcp端口> netstat -lt 只列出所有监听udp端口> netstat -lu 只列出所有监听UNIX端口> netstat -lx 显示所有端口的统计信息> netstat -sIp: 1007495197 total packets received 0 forwarded 582 with unknown protocol 0 incoming packets discarded 1007422115 incoming packets deliveredIcmp: 66583265 ICMP messages received 63899 input ICMP message failed. InCsumErrors: 384 ICMP input histogram: destination unreachable: 115410 timeout in transit: 12840 source quenches: 11 redirects: 563 echo requests: 66453453 echo replies: 152 timestamp request: 438 address mask request: 4 66987000 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 533106 echo request: 4 echo replies: 66453453 timestamp replies: 437IcmpMsg: InType0: 152 InType3: 115410 InType4: 11 InType5: 563IpExt: InNoRoutes: 15 InMcastPkts: 1291307 InOctets: 211446050816 OutOctets: 481070069194显示TCP端口的统计信息> netstat -stIcmpMsg: InType0: 152 InType3: 115410 InType4: 11 InType5: 563 InType8: 66453492Tcp: 55437641 active connections openings 35899081 passive connection openings 552243 failed connection attempts 753118 connection resets received 7 connections establishedUdpLite:TcpExt: 162052 SYN cookies sent 621 SYN cookies received 4998179 invalid SYN cookies received 551915 resets received for embryonic SYN_RECV socketsIpExt: InNoRoutes: 15 InMcastPkts: 1291308 InOctets: 211446303015 OutOctets: 481070459735 InMcastOctets: 46487088显示UDP端口的统计信息> netstat -suIcmpMsg: InType0: 152 InType3: 115410 InType4: 11 InType5: 563 InType8: 66453594 InType11: 12840 InType13: 438 InType17: 4 InType37: 3 InType165: 7 OutType0: 66453594 OutType3: 533106 OutType8: 4 OutType14: 437Udp: 17941589 packets received 637146 packets to unknown port received. 1649 packet receive errors 17977050 packets sent 0 receive buffer errors 0 send buffer errors InCsumErrors: 1640UdpLite:IpExt: InNoRoutes: 15 InMcastPkts: 1291310 InOctets: 211446802283 OutOctets: 481071405083 InMcastOctets: 46487160 InNoECTPkts: 1009629627 InECT1Pkts: 9955 InECT0Pkts: 1987096 InCEPkts: 94039在netstat输入中显示 PID 和过程名称> netstat -pt ...

March 9, 2022 · 3 min · jiezi

关于linux:linux笔记

linux笔记-xyq1、命令2、其余[x] 2017.08.22--nowxyq linux notegitlab gitee 作业部落 CSDN 马克飞象 typora1、命令阐明1.1 常用命令阐明命令进入目录cd dir1创立目录mkdir dir1创立多级目录mkdir -p d1/d2/d3查看当前目录pwd复制文件cp srcname targetname复制目录cp -r dir1/ dir2/批改名称(挪动文件)mv readme.txt readme.doc跨服务器复制scp /data/ROOT.tar.gz root@192.168.239.35:/opt/saiwen/db_backup删除一般文件a.txtrm a.txt (-f:示意强制)目录a删除rm -rf a (-f:示意强制; -r:示意目录)建设新文件touch test.txt清空文件cat /dev/null >json.log-------------------------------------------------------------------------------查看磁盘空间df -h查看文件大小du -h filepath显示文件或目录类型file test查问程序的地位which test统计文件信息wc testfile3 92 598 testfiletestfile文件的行数为3、单词数92、字节数598-------------------------------------------------------------------------------压缩tartar -zcvf /home/love.tar.gz /home/yx/love解压tartar -zxvf /home/love.tar.gz压缩zipzip test.zip test解压zipunzip test.zip压缩gzgzip -c test.log > /root/test.gz解压gzgunzip -c debug.2020-07-02.log.gz > ./0702.log-------------------------------------------------------------------------------含糊查找当前目录文件find *txt从根目录查找文件find / -name test查找文件find /home -name 'test.log' -type f -print查找目录find / -name 'tech' -type d -print查找当前目录及子目录文件find . -name "root" -maxdepth 1 (maxdepth指层数)查找大文件find / -type f -size +400M /\ xargs ls -hlrt-------------------------------------------------------------------------------从旧到新并显示大小ls -hlrt (ls -lrt 从旧到新)从新到旧并显示大小ls -hlt (ls -lt 从新到旧 )按大小升序ls -hSlr按大小降序ls -hSl含糊查找文件ls name (ls /etc/rc.d/init.d/my)显示当前目录文件ls-------------------------------------------------------------------------------查看linux版本cat /proc/version lsb_release -a查看linux内核版本uname -a查看centos版本cat /etc/redhat-release查看java版本java -version查看过程ps查看tomcat过程ps -ef /\ grep tomcat-------------------------------------------------------------------------------上传sz filename (装置上传下载 yum install lrzsz)下载sz显示10行历史记录history 10查看ipifconfig分明屏幕clear查看工夫date工夫格式化date "+%Y-%m-%d %H:%M:%S"查看指定年月日历cal 3 2013建设链接ln -fs /opt/tech/mysql/bin/mysql /usr/local/bin/mysql删除链接rm -rf name查看所有别名alias增加别名alias test="tar -zcvf "删除别名unalias test显示所有分区的信息fdisk -l帮忙help查看命令手册man ls树状构造展现目录tree (装置tree命令 yum install tree)输入重定向(保留文件)ls > dir.txt追加文件ls >> dir.txt-------------------------------------------------------------------------------关机halt重启reboot关机重启shutdown -r关机不重启shutdown -h立即关机shutdown now1.2 命令阐明1.2.1 vi操作:wq (输出「wq」,存盘并退出vi):q! (输出q!, 不存盘强制退出vi):set fileencoding 查看文件编码:set nu 显示行数查找 /关键字按「G」:挪动到文章的最初。按「g」:挪动到文章的结尾。dd : 删除以后行x : 删除光标地位字符u :后退 返回 上一步/string 向前搜寻指定字符串?string 向后搜寻指定字符串n 搜寻指定字符串的下一个呈现地位N 搜寻指定字符串的上一个呈现地位:%s/old/new/g 全文替换指定字符串 1.2.2 环境变量export查看所有环境变量 export查看环境变量 echo $PATH export $hello 设置长期环境变量 export PATH=$PATH:/usr/local/mysql/bin export hello="hello world"设置零碎环境变量 vi /etc/profile export PATH=$PATH:/usr/local/mysql/bin # 在配置文件中退出此行配置 export hello="hello world" # 在配置文件中退出此行配置 须要留神的是:批改完这个文件必须要应用 以下命令在不必重启零碎的状况下使批改的内容失效。 source /etc/profile 或者是用 ‘.’: . /etc/profile 查看: echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin echo $hello hello world 配置曾经失效 1.2.3 head tail less more1. 如果你只想看文件的前100行,能够应用head命令,如head -100 filename2. 如果你想查看文件的后100行,能够应用tail命令,如:tail -100 filename 或 tail -n 100 filename3. 查看文件两头一段,你能够应用sed命令,如:sed -n '100,200p' filename 这样你就能够只查看文件的第100行到第200行。截取的文件能够用重定向输出到新的文件中:head -100 filename >a.txttail -f cata.log 打印日志cat test.txt 显示文件结尾tac test.txt 显示文件结尾more test.txt 逐页显示文件 less test.txt 逐页显示文件(优化more)head -n 20 test.txt 显示文件前20行 head -100 filenametail -n 20 test.txt 显示文件后20行 tail -100 filename 如果文件太长,用cat命令只能看到文件的最初一页,而用more命令时能够一页一页地显示。执行more命令后,进入more状态,用【Enter】键能够向后挪动一行;用【Space】键能够向后挪动一页;用“q”键能够退出。在more状态下还有许多性能,可用man more命令取得。less实际上是more的改进版,其命令的间接含意是more的反义。less的性能比more更灵便。例如:用【Pgup】键能够向前挪动一页,用【Pgdn】键能够向后挪动一页,用向上光标键能够向前挪动一行,用向下光标键能够向后挪动一行。“q”键、【Enter】键、【Space】键的性能和more相似。用【G】键能够挪动文件到结尾,用【g】键能够挪动到文件结尾。1.2.4 cat详解cat命令是linux下的一个文本输入命令,通常是用于观看某个文件的内容。cat次要有三大性能: 1.一次显示整个文件。 $ cat filename 2.从键盘创立一个文件。 $ cat > filename 只能创立新文件,不能编辑已有文件 3.将几个文件合并为一个文件。 $cat file1 file2 > file cat具体命令格局为 : cat [-AbeEnstTuv] [--help] [--version] fileName 阐明:把档案串连贯后传到根本输入(屏幕或加 > fileName 到另一个档案) 参数: -n 或 –number 由 1 开始对所有输入的行数编号 -b 或 –number-nonblank 和 -n 类似,只不过对于空白行不编号 -s 或 –squeeze-blank 当遇到有间断两行以上的空白行,就代换为一行的空白行 -v 或 –show-nonprinting 范例: cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输出 linuxfile2 这个档案里 cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。 范例: 把 linuxfile1 的档案内容加上行号后输出 linuxfile2 这个档案里 cat -n linuxfile1 > linuxfile2 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到 linuxfile3 里。 cat -b linuxfile1 linuxfile2 >> linuxfile3 cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容 ----------------------------------------------------------cat << EOF的语句阐明 EOF是“end of file”,示意文本结束符。EOF在这里没有非凡的含意,你能够应用FOE或OOO等(当然也不限度在三个字符或大写字符)。简略形容一下常见的应用形式及其作用: 1、cat<<EOF,以EOF输出字符为规范输出完结: 2、cat>filename,创立文件,并把规范输入输出到filename文件中,以ctrl+d作为输出完结: 留神:输出时是没有'>'的。 3、cat>filename<<EOF,以EOF作为输出完结,和ctrl+d的作用一样。命令: $ cat > test.txt << EOF > 阐明cat及EOF > 测试 > EOF $ cat test.txt 阐明cat及EOF 测试其余写法: cat >> test.txt << EOF 在test.txt里追加内容,不会笼罩原有文件。 $ cat >> test.txt << END //这里的“END”就代替了“EOF”的性能。后果是雷同的。 > 追加内容 > END $ cat test.txt 阐明cat及EOF 测试 追加内容1.2.5 grepgrep命令 ...

March 8, 2022 · 8 min · jiezi

关于linux:Xshell用root用户连接Linux

1、原因服务器零碎为Ubuntu的零碎,本地 Xshell 用 root 用户登录显示 SSH服务器回绝了明码 ,如下图所示: 2、起因因为 sshd 默认设置不容许 root 用户近程登录,然而用另外的用户登录后应用 su 命令切换 root 用户是能够的,所以须要咱们手动开启一下 3、解决3.1 普通用户切换到root用户su root按提醒输出明码 3.2 装置ssh服务apt-get install sppenssh-server可能有的零碎会带装置失败,能够先进行下一步启动试试,如果还是启动失败那还是装置 ssh 服务再启动 3.3 启动ssh服务server sshd start3.4 更改配置文件vi /etc/ssh/sshd_config找到 PermitRootLogin prohibit-password更改为 PermitRootLogin yes我是习惯把原来代码复制一行进行批改,源代码正文不批改 3.5 重启ssh服务service sshd restart3.6 从新应用xshell连贯胜利!连贯就是 root 用户

March 7, 2022 · 1 min · jiezi

关于linux:Linux基础

Linux根底操作系统的基本概念支流操作系统:Windows、Linux、Android、iOS等Windows:操作简略,性能较低Linux:操作麻烦,学习较为艰难,性能好,可移植性强。Android:挪动操作系统,是基于Linux开发的(应用的是Linux的内核)多机开发:开发嵌入式程序须要Linux环境,同时也须要一些Windows环境,次要是因为Windows环境中有一些很好用的软件。然而同时应用两台电脑是不太可能的,所以这里就须要用到虚拟机软件了(在虚拟机中装另外一个零碎)虚拟机软件VMware在Windows零碎中运行,运行后它会模仿一台电脑进去,咱们能够在这台电脑上装置其余操作系统,所以叫虚拟机。Linux常用命令及操作暗藏文件:Linux中暗藏文件是以.结尾的,跟文件属性无关。man :用来查问man手册,获取对应命令的帮忙信息 man 1 ls :1示意查问的是Linux命令(查问ls的应用办法)man 2 xx :2示意查问的是Linux的apiman 3 xx :3示意查问的是C库函数ls :显示以后文件夹下所有一般文件(不蕴含暗藏文件) ls -a :显示以后文件下所有文件(蕴含暗藏文件)ls -l :以详细信息显示以后文件夹下所有一般文件和文件夹ls -al/ls -la/ls -l -a/ls - a -l :四种办法都是以详细信息显示所有文件(蕴含暗藏文件)显示详细信息后,显示出的文件类型: 以 - 结尾的:一般文件(二进制文件和文本文件)以 d 结尾的:文件夹以 l 结尾的:符号连贯文件(软连贯)以 s 结尾的:socket文件以 p 结尾的:管道文件pipecd :用来切换目录 cd .. :进入下层目录cd ../../ :进入上下层目录cd test/ :进入当前目录下的test文件。pwd :显示当前目录的全门路(绝对路径)mkdir :创立文件夹 mkdir -p abc/DEF :级联创立文件夹(在以后文件夹下创立abc文件夹,再在abc文件夹下创立DEF文件夹)mv(move) :挪动文件/批改文件名 用法:mv 原文件夹pathname 目标文件夹pathname例如:mv def/abc ./edg (将以后文件夹下的def文件夹中的abc文件夹的内容挪动到以后文件夹中的edg文件夹中,即实现了挪动,又实现了改名)touch :创立空文件(留神与mv创立空文件夹辨别)cp(copy) :复制文件或文件夹(与mv有点像) 用法:cp 源文件pathname 指标文件pathnamecp :复制文件cp -f :强制复制文件cp -rf :复制文件夹rm :删除(remove) ...

March 7, 2022 · 2 min · jiezi

关于linux:Linux之traceroute命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 显示数据包到主机间的门路,traceroute命令用于追踪数据包在网络上的传输时的全副门路,它默认发送的数据包大小是40字节。 通过traceroute咱们能够晓得信息从你的计算机到互联网另一端的主机是走的什么门路。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的门路可能会不一样,但基本上来说大部分时候所走的路由是雷同的。 traceroute通过发送小的数据包到目标设施直到其返回,来测量其须要多长时间。一条门路上的每个设施traceroute要测3次。输入后果中包含每次测试的工夫(ms)和设施的名称(如有的话)及其ip地址。 Traceroute 的实现一共有三种办法,别离是:TCP traceroute(应用 tracetcp 程序能够实现)UDP traceroute(Cisco 和 Linux 默认状况下应用)ICMP traceroute ( MS Windows 默认状况下应用)命令格局traceroute(选项)(参数) 命令选项-d:应用Socket层级的排错性能;-f<存活数值>:设置第一个检测数据包的存活数值TTL的大小;-F:设置勿离断位;-g<网关>:设置起源路由网关,最多可设置8个;-i<网络界面>:应用指定的网络界面送出数据包;-I:应用ICMP回应取代UDP材料信息;-m<存活数值>:设置检测数据包的最大存活数值TTL的大小;-n:间接应用IP地址而非主机名称;-p<通信端口>:设置UDP传输协定的通信端口;-r:疏忽一般的Routing Table,间接将数据包送到远端主机上。-s<起源地址>:设置本地主机送出数据包的IP地址;-t<服务类型>:设置检测数据包的TOS数值;-v:具体显示指令的执行过程;-w<超时秒数>:设置期待远端主机回报的工夫;-x:开启或敞开数据包的正确性测验。命令参数主机:指定目标主机IP地址或主机名。简略用法> traceroute rumenz.comtraceroute to rumenz.com (203.195.152.245), 64 hops max, 52 byte packets 1 192.168.0.1 (192.168.0.1) 1.242 ms 0.949 ms 2.494 ms 2 192.168.1.1 (192.168.1.1) 1.337 ms 1.101 ms 0.953 ms 3 100.64.0.1 (100.64.0.1) 4.663 ms 28.187 ms 3.346 ms 4 111.175.227.145 (111.175.227.145) 7.321 ms 12.203 ms 10.503 ms 5 111.175.210.221 (111.175.210.221) 4.810 ms 7.400 ms 3.673 ms 6 202.97.17.5 (202.97.17.5) 20.276 ms 202.97.98.25 (202.97.98.25) 38.174 ms 202.97.17.1 (202.97.17.1) 28.942 ms 7 * 113.96.5.158 (113.96.5.158) 26.277 ms * 8 * * * 9 14.18.199.106 (14.18.199.106) 22.518 ms 20.543 ms 22.583 ms10 * * 14.18.199.74 (14.18.199.74) 22.378 ms11 * * *12 * * *13 * * *14 203.195.152.245 (203.195.152.245) 25.766 ms 21.599 ms *记录按序列号从1开始,每个记录就是一跳 ,每跳示意一个网关,咱们看到每行有三个工夫,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的工夫;如果用traceroute -q 4 rumenz.com,示意向每个网关发送4个数据包。 ...

March 7, 2022 · 4 min · jiezi

关于linux:新手安装Liunx出现的一些问题

依照网上的教程装置Liunx,胜利后并没有呈现期待的图形化界面,后果一步步排查发现自己在这个界面的时候遗记了点【软件抉择】,后果默认装置的就是命令行窗口。在软件抉择装置咱们的桌面,此处抉择GNOME桌面而后失常流程持续前面就失常了。 此外,在命令行窗口,老手的疑难是输出明码的时候界面会没有反馈,第一反馈是键盘坏了,后果上网查查,原来Linux下输出明码就是看不到,正确输出明码即可。 localhost login:rootPassword: Password下面间接写root的明码,但屏幕上不显示。 如果呈现localhost login:rootPassword:login incorrect. login: 这种状况就是明码写错了。login:这里写root 会显示Password:,在填入root系统管理员的明码。

March 6, 2022 · 1 min · jiezi

关于linux:Linux-find命令常见使用技巧

find是Linux中弱小的文件查问命令,能够通过各种过滤条件查问想要的文件,还能够对查问后果执行进一步操作。本文对几个实用确容易误用的技巧进行介绍,残缺的命令应用阐明可通过info find查阅。 find命令的残缺语法如下: find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]path默认为当前目录默认的expression是-print,即打印搜寻后果。日常应用中,用户次要通过管制 表达式 expression 局部参数来达成查问目标,表达式局部能够蕴含如下内容: 操作符:当有多个查问条件时,条件间的默认逻辑关系是 与 -and,逻辑关系能够是 与 -and、或 -or、非 -not和 括号 () 优先级。惯例选项:包含 查问深度-dept、查问以后挂载点 -mount 或 -xdev 等。测试表达式:查问的过滤条件,这是用户管制查问条件的次要局部,也是最简单的局部,过滤形式包含文件属主、文件工夫范畴(拜访、状态变动、批改工夫)、文件权限、文件名称、文件类型等。操作:对合乎过滤条件的操作,包含删除 -delete、打印 -print或 -print0、执行命令 -exec等。上面就操作符、权限过滤 -perm、执行命令 -exec的技巧进行阐明。 1:操作符 与:多个条件表达式间,默认是与操作,另外-a和-and也示意与操作。示例: # 查问名称为abc结尾,并且 非合乎链接类对象find . -name 'abc*' -not -type lfind . -name 'abc*' -and -not -type l或:包含 -o 和 -or。示例: # 查问名称为abc结尾 或者 非合乎链接类对象find . -name 'abc*' -or -not -type l非:包含 !和 -not。示例: ...

March 3, 2022 · 2 min · jiezi

关于linux:Linux之ping命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 ping命令是用于排除故障,测试和诊断网络连接问题的最罕用的命令之一。 Ping通过将一个或多个ICMP(Internet管制音讯协定)Echo申请包发送到指定指标IP并期待回复来工作。当指标IP收到包时,它将响应ICMP回复。 应用ping命令,咱们能够确定远程目标IP是处于活动状态还是非活动状态,找到与指标通信的往返提早并查看是否存在数据包失落。 ping命令是iputils(或iputils-ping)程序包的一部分,该程序包已事后装置在绝大多数Linux发行版上。ping命令也可用于Windows,MacOSX和FreeBSD。 命令格局ping [参数] [主机名或IP地址] 命令性能ping命令用于:确定网络和各内部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号申请蕴含一个网际协议(IP)和 ICMP 头,前面紧跟一个 tim 构造,以及来填写这个信息包的足够的字节。缺省状况是间断发送回送信号申请直到接管到中断信号(Ctrl-C)。 ping 命令每秒发送一个数据报并且为每个接管到的响应打印一行输入。ping 命令计算信号往返工夫和(信息)包失落状况的统计信息,并且在实现之后显示一个简要总结。ping 命令在程序超时或当接管到 SIGINT 信号时完结。Host 参数或者是一个无效的主机名或者是因特网地址。 命令参数-d 应用Socket的SO_DEBUG性能。-f 极限检测。大量且疾速地送网络封包给一台机器,看它的回应。-n 只输入数值。-q 不显示任何传送封包的信息,只显示最初的后果。-r 疏忽一般的Routing Table,间接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。-R 记录路由过程。-v 具体显示指令的执行过程。<p>-c 数目:在发送指定数目的包后进行。-i 秒数:设定距离几秒送一个网络封包给一台机器,预设值是一秒送一次。-I 网络界面:应用指定的网络界面送出数据包。-l 前置载入:设置在送出要求信息之前,后行收回的数据包。-p 范本款式:设置填满数据包的范本款式。-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。-t 存活数值:设置存活数值TTL的大小。ping的通的状况> ping 8.8.8.8PING 8.8.8.8 (8.8.8.8): 56 data bytes64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=255.389 ms64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=253.781 ms64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=258.403 ms64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=255.721 ms64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=255.086 ms64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=255.165 ms64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=253.948 ms...ping不通的状况> ping 8.8.9.9PING 8.8.9.9 (8.8.9.9): 56 data bytesRequest timeout for icmp_seq 0Request timeout for icmp_seq 1Request timeout for icmp_seq 2Request timeout for icmp_seq 3Request timeout for icmp_seq 4Request timeout for icmp_seq 5Request timeout for icmp_seq 6...ping指定次数> ping -c 10 8.8.8.8PING 8.8.8.8 (8.8.8.8): 56 data bytes64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=256.369 ms64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=255.471 ms64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=255.381 ms64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=255.038 ms64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=260.055 ms64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=255.733 ms64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=254.986 ms64 bytes from 8.8.8.8: icmp_seq=7 ttl=106 time=254.084 ms64 bytes from 8.8.8.8: icmp_seq=8 ttl=106 time=255.902 ms64 bytes from 8.8.8.8: icmp_seq=9 ttl=106 time=256.121 ms--- 8.8.8.8 ping statistics ---10 packets transmitted, 10 packets received, 0.0% packet lossround-trip min/avg/max/stddev = 254.084/255.914/260.055/1.513 ms工夫距离和次数限度的ping> ping -c 10 -i 0.5 8.8.8.8PING 8.8.8.8 (8.8.8.8): 56 data bytes64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=255.032 ms64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=256.937 ms64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=255.129 ms64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=256.560 ms64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=264.229 ms64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=254.791 ms64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=254.212 ms64 bytes from 8.8.8.8: icmp_seq=7 ttl=106 time=254.998 ms64 bytes from 8.8.8.8: icmp_seq=8 ttl=106 time=255.029 ms64 bytes from 8.8.8.8: icmp_seq=9 ttl=106 time=255.559 ms--- 8.8.8.8 ping statistics ---10 packets transmitted, 10 packets received, 0.0% packet lossround-trip min/avg/max/stddev = 254.212/256.248/264.229/2.771 ms通过域名ping域名> ping -c 5 json.imPING json.im (150.109.147.28): 56 data bytes64 bytes from 150.109.147.28: icmp_seq=0 ttl=48 time=28.733 ms64 bytes from 150.109.147.28: icmp_seq=1 ttl=48 time=28.412 ms64 bytes from 150.109.147.28: icmp_seq=2 ttl=48 time=28.012 ms64 bytes from 150.109.147.28: icmp_seq=3 ttl=48 time=31.498 ms64 bytes from 150.109.147.28: icmp_seq=4 ttl=48 time=30.518 ms--- json.im ping statistics ---5 packets transmitted, 5 packets received, 0.0% packet lossround-trip min/avg/max/stddev = 28.012/29.435/31.498/1.341 ms多参数应用> ping -i 1 -s 1024 -t 123 json.imPING json.im (150.109.147.28): 1024 data bytes1032 bytes from 150.109.147.28: icmp_seq=0 ttl=48 time=29.613 ms1032 bytes from 150.109.147.28: icmp_seq=1 ttl=48 time=28.530 ms1032 bytes from 150.109.147.28: icmp_seq=2 ttl=48 time=32.768 ms1032 bytes from 150.109.147.28: icmp_seq=3 ttl=48 time=29.014 ms1032 bytes from 150.109.147.28: icmp_seq=4 ttl=48 time=30.239 ms1032 bytes from 150.109.147.28: icmp_seq=5 ttl=48 time=27.815 ms1032 bytes from 150.109.147.28: icmp_seq=6 ttl=48 time=31.311 ms1032 bytes from 150.109.147.28: icmp_seq=7 ttl=48 time=34.554 ms1032 bytes from 150.109.147.28: icmp_seq=8 ttl=48 time=41.600 ms1032 bytes from 150.109.147.28: icmp_seq=9 ttl=48 time=29.513 ms1032 bytes from 150.109.147.28: icmp_seq=10 ttl=48 time=28.320 ms1032 bytes from 150.109.147.28: icmp_seq=11 ttl=48 time=29.449 ms1032 bytes from 150.109.147.28: icmp_seq=12 ttl=48 time=29.127 ms1032 bytes from 150.109.147.28: icmp_seq=13 ttl=48 time=28.583 ms1032 bytes from 150.109.147.28: icmp_seq=14 ttl=48 time=28.064 ms-i 3 发送周期为 3秒 -s 设置发送包的大小为1024 -t 设置TTL值为 255指定源接口(网卡)默认状况下,ping将通过默认路由发送ICMP包。如果您的计算机上有多个接口,则能够应用以下-I选项指定源接口:> ping -I eth0 8.8.8.8PING 8.8.8.8 (8.8.8.8) from 192.168.0.3 eth0: 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=2 ttl=109 time=201 ms64 bytes from 8.8.8.8: icmp_seq=3 ttl=109 time=201 ms64 bytes from 8.8.8.8: icmp_seq=4 ttl=109 time=200 ms64 bytes from 8.8.8.8: icmp_seq=5 ttl=109 time=201 ms64 bytes from 8.8.8.8: icmp_seq=6 ttl=109 time=201 ms64 bytes from 8.8.8.8: icmp_seq=7 ttl=109 time=201 ms64 bytes from 8.8.8.8: icmp_seq=9 ttl=109 time=201 ms64 bytes from 8.8.8.8: icmp_seq=10 ttl=109 time=201 ms...上面的命令将执行ping 8.8.8.8应用eth0作为源接口指定Internet协定运行ping命令时,它将应用IPv4或IPv6,具体取决于您的计算机DNS设置。ping -4 DESTINATION ping -6 DESTINATION ...

March 3, 2022 · 4 min · jiezi

关于linux:linux-vi里常用命令

向下整页翻页命令为:Ctrl + f forward的缩写向上翻整页 Ctrl + b 键 backWard的缩写; 向下翻半页命令为: Ctrl + d 键 down的缩写;向上翻半页命令为: Ctrl + u 键 up的缩写; 回到最初的地位 快捷键: 在键盘按下大写G ; 在键盘按Shift + g; 回到结尾地位 快捷键: 在键盘按下小写gg 按「w」:光标跳到下个字的结尾 按「e」:光标跳到下个字的字尾 按「b」:光标回到上个字的结尾「dd」:删除光标所在行。「x」:每按一次,删除光标所在位置的“前面”一个字符。「u」:如果误执行一个命令,能够马上按下「u」,吊销上一个操作。按屡次“u”能够执行屡次吊销。「ctrl」+「g」列出光标所在行的行号。「#G」:例如,「15G」,示意挪动光标至文章的第15行行首。「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,能够始终按「n」会往后寻找到您要的关键字为止。

March 3, 2022 · 1 min · jiezi

关于linux:linux下删除文件名乱码文件

服务器下面有一些文件名乱码的文件须要删除,这个时候 一般的 rm 就变得不是那么好用了 能够采取以下步骤 1:输入文件节点信息 ll -i 2:应用find命令delete参数删除 find -inum 873554 -delete

March 2, 2022 · 1 min · jiezi

关于linux:Linux之route命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由次要是动态路由。要实现两个不同的子网之间的通信,须要一台连贯两个网络的路由器,或者同时位于两个网络的网关来实现。 在Linux零碎中设置路由通常是为了解决以下问题:该Linux零碎在一个局域网中,局域网中有一个网关,可能让机器拜访Internet,那么就须要将这台机器的ip地址设置为Linux机器的默认路由。要留神的是,间接在命令行下执行route命令来增加路由,不会永恒保留,当网卡重启或者机器重启之后,该路由就生效了;能够在/etc/rc.local中增加route命令来保障该路由设置永恒无效。 命令语法route(选项)(参数) 命令选项-A:设置地址类型;-C:打印将Linux外围的路由缓存;-v:详细信息模式;-n:不执行DNS反向查找,间接显示数字模式的IP地址;-e:netstat格局显示路由表;-net:到一个网络的路由表;-host:到一个主机的路由表。命令参数add:减少指定的路由记录;del:删除指定的路由记录;target:目标网络或目标主机;gw:设置默认网关;mss:设置TCP的最大区块长度(MSS),单位MB;window:指定通过路由表的TCP连贯的TCP窗口大小;dev:路由记录所示意的网络接口。显示以后路由> route 显示以后路由表(显示ip地址)> route -n route -n不执行DNS反向查找,间接显示数字模式的IP地址,列出速度会比route快 字段阐明 列含意Destination指标网络或指标主机。Destination 为 default(0.0.0.0)时,示意这个是默认网关,所有数据都发到这个网关(这里是 10.139.128.1)Gateway网关地址,0.0.0.0 示意以后记录对应的 Destination 跟本机在同一个网段,通信时不须要通过网关GenmaskDestination 字段的网络掩码,Destination 是主机时须要设置为 255.255.255.255,是默认路由时会设置为 0.0.0.0Flags标记,含意参考表格前面的解释Metric路由间隔,达到指定网络所需的直达数,是大型局域网和广域网设置所必须的 (不在Linux内核中应用。)Ref路由项援用次数 (不在Linux内核中应用。)Use此路由项被路由软件查找的次数Iface网卡名字,例如 eth0Flags 含意U 路由是流动的H 指标是个主机G 须要通过网关R 复原动静路由产生的表项D 由路由的后台程序动静地装置M 由路由的后台程序批改! 回绝路由主机路由路由表中指向单个 IP 地址或主机名的路由记录,其 Flags 字段为 H。上面示例中,对于 10.0.0.8 这个主机,通过网关 192.168.0.1 网关路由:> route add -net 10.0.0.8 gateway 192.168.0.1 netmask 255.255.255.255 dev eth0> route -n Destination Gateway Genmask Flags Metric Ref Use Iface10.0.0.8 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0网络路由主机能够达到的网络。上面示例中,对于10.0.0.0/24这个网络,通过网关192.168.0.1网关路由:> route add -net 10.0.0.0/24 gateway 192.168.0.1 dev eth0> route -nDestination Gateway Genmask Flags Metric Ref Use Iface10.0.0.0 192.168.0.1 255.255.255.0 UG 0 0 0 eth0//或者> route add -net 10.0.0.0 gateway 192.168.0.1 dev eth0默认路由当指标主机的 IP 地址或网络不在路由表中时,数据包就被发送到默认路由(默认网关)上。默认路由的 Destination 是 default 或 0.0.0.0。> routedefault gateway 0.0.0.0 UG 100 0 0 eth0增加同一个局域网的主机不指定 gw 选项时,增加的路由记录不应用网关:> route add -net 10.10.1.0 netmask 255.255.255.0 dev eth0> routeDestination Gateway Genmask Flags Metric Ref Use Iface10.10.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0屏蔽路由> route add -net 10.10.1.0 netmask 255.255.255.0 reject> routeDestination Gateway Genmask Flags Metric Ref Use Iface10.10.1.0 - 255.255.255.0 ! 0 - 0 -删除可用路由> route del -net 10.0.0.0 netmask 255.255.255.0同时匹配多个路由表时,执行一次删除一条删除和增加设置默认网关增加或删除默认网关时,Linux 会主动查看网关的可用性:> route add default gw 192.168.1.1SIOCADDRT: Network is unreachable> route del default gw 192.168.1.1SIOCDELRT: No such process原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

March 2, 2022 · 1 min · jiezi

关于linux:Linux之crontab命令

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 通过crontab 命令,咱们能够在固定的间隔时间执行指定的零碎指令或 shell script脚本。工夫距离的单位能够是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志剖析或数据备份等工作。 > systemctl start/stop/restart/status cron命令格局crontab [-u user] filecrontab [-u user] { -e | -l | -r } 命令参数-u user:用来设定某个用户的crontab服务;file:file是命令文件的名字,示意将file做为crontab的工作列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将承受规范输出(键盘)上键入的命令,并将它们载入crontab。-e:编辑某个用户的crontab文件内容。如果不指定用户,则示意编辑以后用户的crontab文件。-l:显示某个用户的crontab文件内容,如果不指定用户,则示意显示以后用户的crontab文件内容。-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除以后用户的crontab文件。-i:在删除用户的crontab文件时给确认提醒。crontab 的文件格式 字段形容容许的值分钟一小时的第几分0-59小时一天的第几小时0-23日期一个月的的第几天1-31月份一年的第几个月1-12周几一周的第几天0-6命令命令能够被执行的任何命令罕用办法创立一个新的 crontab 文件,向cron过程提交一个crontab文件之前,首先要设置环境变量EDITOR。cron过程依据它来确定应用哪个编辑器编辑crontab文件。99%的UNIX和LINUX用户都应用vi,如果你也是这样,那么你就编辑$HOME目录下的. profile文件,在其中退出这样一行 EDITOR=vi; export EDITOR 而后保留并退出。无妨创立一个名为<user> cron的文件,其中<user>是用户名,例如, davecron。在该文件中退出如下的内容。# (put your own initials here)echo the date to the console every# 15minutes between 6pm and 6am0,15,30,45 18-06 * * * /bin/echo 'date' > /dev/console保留并退出。留神后面5个域用空格分隔。在下面的例子中,零碎将每隔1 5分钟向控制台输入一次以后工夫。如果零碎解体或挂起,从最初所显示的工夫就能够一眼看出零碎是什么工夫进行工作的。在有些零碎中,用tty1来示意控制台,能够依据理论状况对下面的例子进行相应的批改。为了提交你刚刚创立的crontab文件,能够把这个新创建的文件作为cron命令的参数 $ crontab davecron 当初该文件曾经提交给cron过程,它将每隔1 5分钟运行一次。同时,新创建文件的一个正本曾经被放在/var/spool/cron目录中,文件名就是用户名(即dave)。应用-l参数列出crontab文件::> crontab -l0,15,30,45 18-06 * * * /bin/echo `date` > dev/tty1能够应用这种办法在$HOME目录中对crontab文件做一备份::$ crontab -l > $HOME/mycron ...

March 1, 2022 · 2 min · jiezi

关于linux:如何让脚本在任意地方可执行

大家好,我是咔咔 不期速成,日拱一卒 在上一期文章《闯祸了,生成环境执行了DDL操作》中,为了避免在线DDL造成的SQL阻塞应用了第三方插件pt-online-schema-change。 在应用这个插件批改表数据时须要退出很多参数,例如数据库名、表名、数据库地址、数据库明码等参数。 而后将插件须要执行一系列参数优化为一个脚本,那么问题来了,如何让这个脚本在任意中央都能够执行呢? 在上期文章咔咔把执行的脚本搁置到了如下地位,接下来看看都有哪些办法能够让这个脚本能够在任意中央都能够执行。 一、将脚本门路增加到.bashrc文件中bash运行起来首先后加载.bahsrc文件,so能够间接把须要执行的脚本门路增加到此文件中 那你得晓得.bashrc文件在哪吧!地位就在以后用户的根目录,执行cd ~后即可看到此文件 接着在这个文件中把你的脚本门路放进去即可,增加最初一行代码export PATH="/script:$PATH" 最初,再应用source命令使咱们的批改失效 source ~/.bashrc来试试间接在根目录执行给evt_sms表增加一个bash字段,看到下图就晓得咱们的配置胜利了 二、将脚本门路增加到.profile文件中文件门路在etc/profile 在文件开端加上export PATH="$PATH:$HOME/script"即可 这种形式须要退出终端才会失效 三、应用软链的形式把写好的脚本复制到/usr/local/bin下 增加一个软连贯即可ln -s /usr/local/bin/pt.sh /usr/bin/pt.sh 而后就能够在任意中央执行pt.sh这个脚本了 四、总结本文简略的跟大家聊了两种让你的脚本在任何中央都能够执行,会应用其中一种就行了。 但实现的形式都要有理解,因为每个人喜爱解决的形式不统一,当你遇到这种脚本时你要晓得他是在哪里配置的,而后你才能够批改它 五、举荐浏览关上order by的大门,一探到底《死磕MySQL系列 十二》 重重封闭,让你一条数据都拿不到《死磕MySQL系列 十三》 闯祸了,生成环境执行了DDL操作《死磕MySQL系列 十四》 聊聊MySQL的加锁规定《死磕MySQL系列 十五》 保持学习、保持写作、保持分享是咔咔从业以来所秉持的信念。愿文章在偌大的互联网上能给你带来一点帮忙,我是咔咔,下期见。

March 1, 2022 · 1 min · jiezi

关于linux:远程小工具PuTTY阿里云镜像站地址分享

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连贯软件。咱们连贯服务器个别用ssh或者telnet,这种小工具十分多,明天来举荐putty,最新版本下载地址:https://mirrors.aliyun.com/pu...劣势:完全免费体积很小操作简便反对ssh1和ssh2 装置界面:软件界面:左侧点击“Session”,在“Host Name (or IP address)”输出主机名或IP,像server1或192.168.1.1。端口号(Port)会依照协定主动填写,ssh默认应用22,telnet默认应用23,rlogin默认应用513。在“Protocol”单选栏中抉择应用的协定,个别是ssh或other(telnet)。在“Saved Session”输出栏中输出工作的名字,单击“Save”按钮,就能够把工作配置保存起来了。配置实现后单击“Open”按钮,呈现如图2的登录界面,就能够应用Putty连贯了。软件版本号:0.76连贯界面:特色:反对ipv6连贯反对公钥认证

February 28, 2022 · 1 min · jiezi

关于linux:终于30-岁的-Linux-内核-C-语言将升级到-C11

上周,Linux 内核邮件列表上对于“社区最近探讨了是否为内核采纳古代 C 语言规范”的信息引发业内关注。刚刚,Linux 开源社区已正式发表:内核 C 语言版本将在将来降级到 C11,且预计将在往年 5 月份的 5.18 版本之后失效。 这个忽然的决定,也终于让领有 30 年历史的 Linux 内核 C 语言迎来了降级。 家喻户晓,想要压服执著的 Linux 之父 Linus Torvalds 绝非易事。那么,这一次 Linus Torvalds 为何终于松口了呢?这外面,仿佛还真有那么一点偶尔因素。 事件起因还是要回到上周的那次的 Linux 社区探讨。 一条 Bug 引发的“连锁反应”据悉,过后一位名叫 Jakob Koschel 的博士生正在钻研与内核链表原语相干的揣测性执行破绽,过程中他发现了一个问题:Linux 内核宽泛应用 struct list_head 定义的双链表: struct list_head { struct list_head *next, *prev;}; 通常,开发者通过将此类构造嵌入其余构造里的形式,来使任何相干的构造类型都能够创立链表。同时,该内核还提供了大量可用于遍历和操作链表的函数和宏。其中一个就是 list_for_each_entry(),这是一个伪装成控件构造的宏。 凑巧,问题出在了这个宏上。 咱们假如该内核蕴含以下构造: struct foo { int fooness;struct list_head list;}; List 中的元素则可用于创立 foo 构造的双链接列表。 假如有一个名为 foo_list 的构造申明作为此类链表的头,则能够应用以下代码遍历此链表: struct foo *iterator; ...

February 28, 2022 · 1 min · jiezi

关于linux:Linux操作系统使用小技巧

虚拟机只装置ssh,只能是连贯其余服务器。装置了openssh-server后,才能够被其余终端应用ssh连贯到近程文件传输 把从本地复制到近程 scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:remote_folder 或者 scp local_file remote_ip:remote_file# 利用实例➜ Desktop scp a.c lite@192.168.107.128:~/lite@192.168.107.128's password:a.c第1,2个指定了用户名,命令执行后须要再输出明码,第1个仅指定了近程的目录,文件名字不变,第2个指定了文件名; 第3,4个没有指定用户名,命令执行后须要输出用户名和明码,第3个仅指定了近程的目录,文件名字不变,第4个指定了文件名; 从近程复制到本地 只须要将从本地复制到近程的命令后2个参数调换程序即可,如下实例: ➜ Desktop scp lite@192.168.107.128:~/a.c pwdlite@192.168.107.128's password:a.c须要留神的是,如果复制的是文件夹的话,须要加上参数-r ,如:scp -r xxxx给Ubuntu操作系统更换字体 一些好的字体 Fira Code(用于编程成果更佳,还反对连体) Source Code Pro 装置办法 # 先输入以后已装置的字体,确认fc命令可用➜ ~ fc-list/usr/share/fonts/truetype/tlwg/TlwgTypo-Bold.ttf: Tlwg Typo:style=Bold/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold /usr/share/fonts/truetype/fonts-kalapi/Kalapi.ttf: Kalapi:style=Regular /usr/share/fonts/truetype/fonts-gujr-extra/Rekha.ttf: Rekha:style=Medium /usr/share/fonts/truetype/tlwg/TlwgTypewriter-BoldOblique.ttf: Tlwg Typewriter:style=Bold Oblique再将带有.ttf后缀的字体文件挪动到~/.local/share/fonts,没有的话,创立这个目录 ➜ ~ cd ~/.local/share/fonts➜ fonts lltotal 3.8M-rw------- 1 lite lite 243K Jul 16 2019 FiraCode-Bold.ttf-rw------- 1 lite lite 219K Jul 16 2019 FiraCode-Light.ttf-rw------- 1 lite lite 215K Jul 16 2019 FiraCode-Medium.ttf-rw------- 1 lite lite 217K Jul 16 2019 FiraCode-Regular.ttf-rw------- 1 lite lite 216K Jul 16 2019 FiraCode-Retina.ttf-rwxrwxrwx 1 lite lite 171K Jul 18 2016 SourceCodePro-BlackIt.ttf-rwxrwxrwx 1 lite lite 207K Jul 18 2016 SourceCodePro-Black.ttf-rwxrwxrwx 1 lite lite 171K Jul 18 2016 SourceCodePro-BoldIt.ttf-rwxrwxrwx 1 lite lite 207K Jul 18 2016 SourceCodePro-Bold.ttf-rwxrwxrwx 1 lite lite 172K Jul 18 2016 SourceCodePro-ExtraLightIt.ttf-rwxrwxrwx 1 lite lite 209K Jul 18 2016 SourceCodePro-ExtraLight.ttf-rwxrwxrwx 1 lite lite 177K Jul 18 2016 SourceCodePro-It.ttf-rwxrwxrwx 1 lite lite 172K Jul 18 2016 SourceCodePro-LightIt.ttf-rwxrwxrwx 1 lite lite 209K Jul 18 2016 SourceCodePro-Light.ttf-rwxrwxrwx 1 lite lite 172K Jul 18 2016 SourceCodePro-MediumIt.ttf-rwxrwxrwx 1 lite lite 208K Jul 18 2016 SourceCodePro-Medium.ttf-rwxrwxrwx 1 lite lite 208K Jul 18 2016 SourceCodePro-Regular.ttf-rwxrwxrwx 1 lite lite 171K Jul 18 2016 SourceCodePro-SemiboldIt.ttf-rwxrwxrwx 1 lite lite 208K Jul 18 2016 SourceCodePro-Semibold.ttf最初执行fc-cache来更新字体cache文件 ...

February 28, 2022 · 2 min · jiezi

关于linux:CentOS-7-防火墙操作

开启指定端口# --permanent 管制是否永恒增加, 没有该参数的规定将在reload 之后失落sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent凋谢指定端口范畴# --permanent 管制是否永恒增加, 没有该参数的规定将在reload 之后失落sudo firewall-cmd --zone=public --add-port=20000-30000/tcp移除指定端口:# --permanent 管制是否永恒移除sudo firewall-cmd --permanent --zone=public --remove-port=81/tcp从新加载防火墙# 所有没有增加--permanent 参数的规定将在从新加载后生效sudo firewall-cmd --reload查看已凋谢端口sudo firewall-cmd --list-ports查看防火墙状态sudo systemctl status firewalld.service开启防火墙sudo systemctl start firewalld.service敞开防火墙sudo systemctl stop firewalld.service开启开机启动systemctl enable firewalld.service禁止开机启动systemctl disable firewalld.service本文始发于 bbwho.com 站点

February 28, 2022 · 1 min · jiezi

关于linux:Ubuntu-1604-mnthgfs下不显示共享文件夹的处理办法

Ubuntu 16.04 /mnt/hgfs/下不显示共享文件夹的解决方法### 1. 解决不显示共享文件夹 1.apt-get install open-vm-tools2.vmhgfs-fuse .host:/ /mnt/hgfs但重启之后会生效,须要从新执行vmhgfs-fuse .host:/ /mnt/hgfs 二、解决重启后共享文件夹生效vi /etc/rc.local在最初增加一行:vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=022给rc.local加上权限 sudo chmod +x /etc/rc.local当前重启都会主动挂载。

February 28, 2022 · 1 min · jiezi

关于linux:还不会使用linux快来通过VMware安装centos系统吧

1、前言Linux,全称GNU/Linux,是一种收费应用和自在流传的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次公布,它次要受到Minix和Unix思维的启发,是一个基于POSIX的多用户、多任务、反对多线程和多CPU的操作系统。它能运行次要的Unix工具软件、应用程序和网络协议。它反对32位和64位硬件。Linux继承了Unix以网络为外围的设计思维,是一个性能稳固的多用户网络操作系统。咱们这次次要应用linux的一个发行版本centos进行搭建linux零碎,不便当前进行我的项目部署和操作 CentOS是收费的、开源的、能够从新散发的开源操作系统 [1] ,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一。 CentOS Linux发行版是一个稳固的,可预测的,可治理的和可复现的平台,源于Red Hat Enterprise Linux(RHEL)按照凋谢源代码(大部分是GPL开源协定 [2] )规定释出的源码所编译而成。 2、下载资源包centos7镜像下载地址:https://mirrors.bfsu.edu.cn/c... SecureCRT下载地址:https://onlinedown.alvycss.co... 3、VMware创立虚拟机3.1 按以下步骤傻瓜式操作创立虚拟机,点下一步即可 抉择咱们的镜像 抉择虚拟机装置目录 抉择虚拟机处理器数量和内核 抉择虚拟机内存 选择网络类型 抉择磁盘类型 抉择硬盘容量大小 3.2 创立好虚拟机之后即可开始装置零碎选中两头这个选项之后按下回车即可开始装置 抉择中文语言 抉择零碎装置目录,次要是虚拟机的硬盘分区 配置虚拟机网络ip,不便咱们通过ssh工具连贯(如xshell、sCRT等) 这里咱们配虚拟机ip是192.168.10.11,之后能够通过这个ip和ssh间接连贯虚拟机 配置好之后即可点击开始装置 这里能够配置下root用户和明码 我这里设置的明码是root 装置实现之后点击重启 呈现这个页面阐明咱们的centos零碎曾经装置胜利了 4、配置网络点击vm外面编辑的虚构网络编辑器 选中NAT设置,而后按下图顺次配置好 配置虚拟机网关 配置本机的网络适配器VMnet8 ...

February 26, 2022 · 1 min · jiezi

关于linux:面试官linux零拷贝的原理是什么

1.前言像大白这种调包侠,深知不懂底层技术点就如同海市蜃楼,再这样上来面阿里p10是没心愿了。 想到这里,我开始慌了,所以明天和大家一起学习个底层技术点-零拷贝Zero-Copy。 Linux零碎中所有皆文件,认真想一下Linux零碎的很多流动无外乎读操作和写操作,零拷贝就是为了进步读写性能而呈现的。 废话不多说,马上开大车,走起! 数据拷贝根底过程在Linux零碎外部缓存和内存容量都是无限的,更多的数据都是存储在磁盘中。对于Web服务器来说,常常须要从磁盘中读取数据到内存,而后再通过网卡传输给用户: 上述数据流转只是大框,接下来看看几种模式。 2.1 仅CPU形式当应用程序须要读取磁盘数据时,调用read()从用户态陷入内核态,read()这个零碎调用最终由CPU来实现;CPU向磁盘发动I/O申请,磁盘收到之后开始筹备数据;磁盘将数据放到磁盘缓冲区之后,向CPU发动I/O中断,报告CPU数据曾经Ready了;CPU收到磁盘控制器的I/O中断之后,开始拷贝数据,实现之后read()返回,再从内核态切换到用户态; 2.2 CPU&DMA形式CPU的工夫贵重,让它做杂活就是浪费资源。 间接内存拜访(Direct Memory Access),是一种硬件设施绕开CPU独立间接拜访内存的机制。所以DMA在肯定水平上解放了CPU,把之前CPU的杂活让硬件间接本人做了,进步了CPU效率。 目前反对DMA的硬件包含:网卡、声卡、显卡、磁盘控制器等。 有了DMA的参加之后的流程产生了一些变动: 最次要的变动是,CPU不再和磁盘间接交互,而是DMA和磁盘交互并且将数据从磁盘缓冲区拷贝到内核缓冲区,之后的过程相似。 “【敲黑板】无论从仅CPU形式和DMA&CPU形式,都存在屡次冗余数据拷贝和内核态&用户态的切换。” 咱们持续思考Web服务器读取本地磁盘文件数据再通过网络传输给用户的具体过程。 3.一般模式数据交互一次实现的数据交互包含几个局部:零碎调用syscall、CPU、DMA、网卡、磁盘等。 零碎调用syscall是应用程序和内核交互的桥梁,每次进行调用/返回就会产生两次切换: 调用syscall 从用户态切换到内核态syscall返回 从内核态切换到用户态 来看下残缺的数据拷贝过程简图: 读数据过程: 应用程序要读取磁盘数据,调用read()函数从而实现用户态切换内核态,这是第1次状态切换;DMA控制器将数据从磁盘拷贝到内核缓冲区,这是第1次DMA拷贝;CPU将数据从内核缓冲区复制到用户缓冲区,这是第1次CPU拷贝;CPU实现拷贝之后,read()函数返回实现用户态切换用户态,这是第2次状态切换;写数据过程: 应用程序要向网卡写数据,调用write()函数实现用户态切换内核态,这是第1次切换;CPU将用户缓冲区数据拷贝到内核缓冲区,这是第1次CPU拷贝;DMA控制器将数据从内核缓冲区复制到socket缓冲区,这是第1次DMA拷贝;实现拷贝之后,write()函数返回实现内核态切换用户态,这是第2次切换;综上所述: 读过程波及2次空间切换、1次DMA拷贝、1次CPU拷贝;写过程波及2次空间切换、1次DMA拷贝、1次CPU拷贝;可见传统模式下,波及屡次空间切换和数据冗余拷贝,效率并不高,接下来就该零拷贝技术出场了。 零拷贝技术4.1 呈现起因咱们能够看到,如果应用程序不对数据做批改,从内核缓冲区到用户缓冲区,再从用户缓冲区到内核缓冲区。两次数据拷贝都须要CPU的参加,并且波及用户态与内核态的屡次切换,减轻了CPU累赘。咱们须要升高冗余数据拷贝、解放CPU,这也就是零拷贝Zero-Copy技术。 4.2 解决思路目前来看,零拷贝技术的几个实现伎俩包含:mmap+write、sendfile、sendfile+DMA收集、splice等。 4.2.1 mmap形式mmap是Linux提供的一种内存映射文件的机制,它实现了将内核中读缓冲区地址与用户空间缓冲区地址进行映射,从而实现内核缓冲区与用户缓冲区的共享。 这样就缩小了一次用户态和内核态的CPU拷贝,然而在内核空间内依然有一次CPU拷贝。 mmap对大文件传输有肯定劣势,然而小文件可能呈现碎片,并且在多个过程同时操作文件时可能产生引发coredump的signal。 4.2.2 sendfile形式mmap+write形式有肯定改良,然而由零碎调用引起的状态切换并没有缩小。 sendfile零碎调用是在 Linux 内核2.1版本中被引入,它建设了两个文件之间的传输通道。 sendfile形式只应用一个函数就能够实现之前的read+write 和 mmap+write的性能,这样就少了2次状态切换,因为数据不通过用户缓冲区,因而该数据无奈被批改。 从图中能够看到,应用程序只须要调用sendfile函数即可实现,只有2次状态切换、1次CPU拷贝、2次DMA拷贝。 然而sendfile在内核缓冲区和socket缓冲区依然存在一次CPU拷贝,或者这个还能够优化。 4.2.3 sendfile+DMA收集Linux 2.4 内核对 sendfile 零碎调用进行优化,然而须要硬件DMA控制器的配合。 降级后的sendfile将内核空间缓冲区中对应的数据形容信息(文件描述符、地址偏移量等信息)记录到socket缓冲区中。 DMA控制器依据socket缓冲区中的地址和偏移量将数据从内核缓冲区拷贝到网卡中,从而省去了内核空间中仅剩1次CPU拷贝。 这种形式有2次状态切换、0次CPU拷贝、2次DMA拷贝,然而依然无奈对数据进行批改,并且须要硬件层面DMA的反对,并且sendfile只能将文件数据拷贝到socket描述符上,有肯定的局限性。 4.2.4 splice形式splice零碎调用是Linux 在 2.6 版本引入的,其不须要硬件反对,并且不再限定于socket上,实现两个一般文件之间的数据零拷贝。 ...

February 25, 2022 · 1 min · jiezi

关于linux:Linux中buffcache占用过高解决方案

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 咱们在应用free -h查看零碎内存的时候,有工夫会发现buff/cache很高 > free -h available 示意应用程序能够申请到的内存什么是buffbuff(Buffer Cache)是一种I/O缓存,用于内存和硬盘的缓冲,是io设施的读写缓冲区。依据磁盘的读写设计的,把扩散的写操作集中进行,缩小磁盘碎片和硬盘的重复寻道,从而进步零碎性能。什么是cachecache(Page Cache)是一种高速缓存,用于CPU和内存之间的缓冲 ,是文件系统的cache。把读取过的数据保存起来,从新读取时若命中(找到须要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会依据读取频率进行组织,把最频繁读取的内容放在最容易找到的地位,把不再读的内容一直往后排,直至从中删除。 它们都是占用内存。两者都是RAM中的数据。简略来说,buff是行将要被写入磁盘的,而cache是被从磁盘中读出来的。 目前过程正在理论被应用的内存的计算形式为used-buff/cache,通过开释buff/cache内存后,咱们还能够应用的内存量free+buff/cache。通常咱们在频繁存取文件后,会导致buff/cache的占用量增高。 革除buff/cache手动革除> sync> echo 1 > /proc/sys/vm/drop_caches> echo 2 > /proc/sys/vm/drop_caches> echo 3 > /proc/sys/vm/drop_cachessync:将所有未写的零碎缓冲区写到磁盘中,蕴含已批改的i-node、已提早的块I/O和读写映射文件echo 1 > /proc/sys/vm/drop_caches:革除page cacheecho 2 > /proc/sys/vm/drop_caches:革除回收slab分配器中的对象(包含目录项缓存和inode缓存)。slab分配器是内核中治理内存的一种机制,其中很多缓存数据实现都是用的pagecache。echo 3 > /proc/sys/vm/drop_caches:革除pagecache和slab分配器中的缓存对象。/proc/sys/vm/drop_caches的值,默认为0定时工作革除> vim clean.sh#!/bin/bash#每两小时革除一次缓存echo "开始革除缓存"sync;sync;sync #写入硬盘,避免数据失落sleep 20#提早20秒echo 1 > /proc/sys/vm/drop_cachesecho 2 > /proc/sys/vm/drop_cachesecho 3 > /proc/sys/vm/drop_caches> chmod +x clean.sh> crontab -e# 每两小时执行一次0 */2 * * * /opt/clean.sh设置crond启动以及开机自启systemctl start crond.servicesystemctl enable crond.service原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。 ...

February 24, 2022 · 1 min · jiezi

关于linux:腾讯出品腾讯游戏内部是用这款产品做运维的

腾讯蓝鲸智云,简称蓝鲸,是腾讯互动娱乐事业群(Interactive Entertainment Group,简称 IEG)自研自用的一套用于构建企业研发经营一体化体系的 PaaS 开发框架,该套体系不仅提供了根底运维(公布变更、监控解决、数值调整、数据提取等)的无人值守服务,而且还给运维人员提供了解决方案(工具),并随时调整,防止重复性的操作服务。线上体验入口:https://ce.bktencent.com/更新布告:点击查看体验步骤:① 填写体验账号申请问卷(同时会主动注册蓝鲸官网):https://wj.qq.com/s2/9531331/519d/② 期待体验账号发放和权限初始化(邮件告诉,1个工作日内;加急请增加微信:tencent-blueking(备注:线上体验+申请QQ))③ 登陆线上体验环境:https://ce.bktencent.com/④ 开始体验:线上体验环境疾速入门 环境特色:完全免费,所见即所得的在线体验环境领先体验,蓝鲸产品新性能曝光的前哨站场景丰盛,内置各行业经典案例和高级用法,并有合作伙伴提供的优质SaaS超强实战,无论是课程分享,还是教学互动,不再只能听,更能边听边用本期线上体验主题(预计2周更新一期,请继续关注)体验主题: 金融云业务零碎、银行外围零碎、demo体验业体验工夫: 2月21日 - 3月5日体验须知:如何申请体验账号?账号只能用5天吗?如何续期?更多体验相干的FAQ:蓝鲸线上体验环境体验须知&FAQ

February 24, 2022 · 1 min · jiezi

关于linux:信息系统项目管理师

February 24, 2022 · 0 min · jiezi

关于linux:Remi配置Remi镜像源

本试验基于 <font color=red>CentOS 7.9</font>零碎进行操作。[root@centos ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)一、参考链接阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 remi镜像-remi下载地址-remi装置教程-阿里巴巴开源镜像站 Remi's RPM repository (aliyun.com) 二、Remi简介Remi repository 是蕴含最新版本 PHP 和 MySQL 包的 Linux 源,由 Remi 提供保护。有个这个源之后,应用 YUM 装置或更新 PHP、MySQL、phpMyAdmin 等服务器相干程序的时候就十分不便了。三、Remi配置1、下载安装包下载链接: Remi's RPM repository wget https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm或者 curl -O https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm 2、装置安装包rpm -Uvh remi-release-7.rpm3、查看是否装置[root@centos ~]# ls /etc/yum.repos.d/bak CentOS-Sources.repo remi-glpi92.repo remi-php71.repo remi.repoCentOS-Base.repo CentOS-Vault.repo remi-glpi93.repo remi-php72.repo remi-safe.repoCentOS-CR.repo CentOS-x86_64-kernel.repo remi-glpi94.repo remi-php73.repo zabbix.repoCentOS-Debuginfo.repo epel.repo remi-modular.repo remi-php74.repoCentOS-fasttrack.repo epel-testing.repo remi-php54.repo remi-php80.repoCentOS-Media.repo remi-glpi91.repo remi-php70.repo remi-php81.repo[root@centos ~]# 4、革除并生成本地YUM源缓存yum clean allyum makecacheyum repolist ...

February 23, 2022 · 1 min · jiezi

关于linux:CentOS-8-EOL如何切换源

一、为啥centos8要换源?以后工夫是2022年2月22号2021年12月31日CentOS 8操作系统版本完结了生命周期(EOL),Linux社区已不再保护该操作系统版本。后续新的服务器倡议应用CentOS Stream,或者其余linux版本,依照社区规定,CentOS 8的源地址http://mirror.centos.org/cent...内容已移除,目前第三方的镜像站中均已移除CentOS 8的源。然而对于业务过渡期依然须要应用centos8,并且在下面装置软件,那咱们须要更新备用源,之前第三方的源都是同步centos官网的,并随之更新,官网的源去掉后,第三方也就无奈同步到了,所以第三方的源也就不复存在了,然而大部分第三方都把最初的源做了个备份弄了个新的地址,不便过渡期应用。当然切换到阿里云的源速度也会更快些。 阿里云镜像站官网:https://developer.aliyun.com/...阿里云centos源地址:https://developer.aliyun.com/... 二、如何更换centos8源的阿里云镜像地址两种状况,阿里云ecs和非阿里云ecs,非阿里云ecs要求能够连贯上公网,如果是阿里云ecs应用阿里云提供的内网链接源,不是阿里云的服务器,应用的公网源,必定内网源的速度会更快些。仔细观察就能发现内网链接:mirrors.cloud.aliyuncs.com公网链接:mirrors.aliyun.com非阿里云服务器用户:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/re...yum clean all && yum makecache阿里云服务器用户:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/re...sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/CentOS-Base.repo && sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/CentOS-Base.repo && sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/CentOS-Base.repoyum clean all && yum makecache三、其余工具换源举荐应用linux一键换源脚本,https://supermanito.github.io...不仅反对centos,还反对其余linux发行版本,感激原作者的无私奉献。Gitee地址:https://gitee.com/SuperManito...

February 23, 2022 · 1 min · jiezi

关于linux:ELF文件1-目标文件格式

有几个波及的专有名词概念 段(segment)/节(section)单位存储到elf文件中代码段(code section): .code 或者 .text数据段(data section): .data这外面有几个一般性的规定: .bbs段是存储全局变量和部分动态变量未初始化的。.data段存储 已初始化全局变量和已初始化部分动态变量的地位。.指令、函数调用、局部变量都存储在.text段(局部变量吃栈空间)int a = 84; // 已初始化全局变量 -> .dataint b; // 未初始化全局变量 -> .bbsint h[256]; // 未初始化全局变量 -> .bbs 并且h不占有真正的内存void func_example (int i) { // 指令函数地址 -> .text printf("example %d\n", i);}void main (void) { // 指令函数地址 -> .text static int s_var_1 = 85; // 已初始化动态变量 -> .data static int s_var_2; // 未初始化动态变量 -> .bbs int c = 1; // 已初始化的非动态变量 -> .text int b; // 未初始化的非动态变量 -> .text func_example(s_var_1 + s_var_2 + c + b); // 指令跳转 -> .text return;}指标文件生成及工具C语言钻研编译文件,从一个最简略的mian.c文件开始,main.c文件能够示意为: ...

February 22, 2022 · 22 min · jiezi