关于linux:最佳实践-源码编译安装配置-PostgresXC-集群并用-pgbasebackup-配置-Datanode-热备

本文首发于 2016-03-15 19:56:52留神:本篇文章成文时 Postgres-XC 还未改名为 Postgres-X2 。 1. 下载源码git clone git@github.com:postgres-x2/postgres-x2.git2. 装置依赖对于 Ubuntu/Debian: apt-get install -y git-coreapt-get install -y gcc g++apt-get install -y ccacheapt-get install -y libreadline-devapt-get install -y bison flexapt-get install -y zlib1g-devapt-get install -y openssl libssl-devapt-get install -y libpam-devapt-get install -y libcurl4-devapt-get install -y libbz2-devapt-get install -y python-devapt-get install -y ssh apt-get install -y libcurl4-devPackage libcurl4-dev is a virtual package provided by:libcurl4-openssl-dev 7.38.0-4+deb8u2libcurl4-nss-dev 7.38.0-4+deb8u2libcurl4-gnutls-dev 7.38.0-4+deb8u2 apt-get install -y python-pip pip install lockfilepip install paramikopip install setuptoolspip install epydocpip install psiNote: debian8 required pip install --pre psi对于 CentOS: ...

September 25, 2021 · 6 min · jiezi

关于linux:程序人生-Linux-Daemon-程序设计示例

本文首发于 2014-08-08 17:55:32概念daemon 程序,又称为守护过程,通常在零碎后盾长时间运行,因为没有管制终端而无奈与前台交互。daemon程序个别作为零碎服务应用,Linux零碎中运行着很多这样的守护过程,如 iptables,nfs,ypbind,dhcpd 等。 daemon 程序设计步骤程序运行后调用fork,并让父过程退出。子过程取得一个新的过程ID,但继承了父过程的过程组ID。调用setsid创立一个新的session,使本人成为新session和新过程组的leader,并使过程没有管制终端(tty)。设置文件创建mask为0,防止创立文件时权限的影响。敞开不须要的关上文件描述符。因为 daemon 程序在后盾执行,不须要于终端交互,通常就敞开STDIN、STDOUT和STDERR。其它依据理论状况解决。daemon 无奈输入信息,能够应用SYSLOG或本人的日志零碎进行日志解决。(可选)编写治理 daemon 的SHELL脚本,应用service对 daemon 进行治理和监控。(可选)示例daemon 程序源码//这里应用本人的日志零碎,当然也能够应用SYSLOG。#define LOGBUFSZ 256 /*log buffer size*/#define LOGFILE "/var/log/wsiod.log" /*log filename*/int wsio_logit(char * func, char *msg, ...){ va_list args; char prtbuf[LOGBUFSZ]; int save_errno; struct tm *tm; time_t current_time; int fd_log; save_errno = errno; va_start (args, msg); (void) time (¤t_time); /* Get current time */ tm = localtime (¤t_time); sprintf (prtbuf, "%02d/%02d %02d:%02d:%02d %s ", tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, func); vsprintf (prtbuf+strlen(prtbuf), msg, args); va_end (args); fd_log = open (LOGFILE, O_WRONLY | O_CREAT | O_APPEND, 0664); write (fd_log, prtbuf, strlen(prtbuf)); close (fd_log); errno = save_errno; return 0;}int init_daemon(void){ pid_t pid; int i; /* parent exits , child continues */ if((pid = fork()) < 0) return -1; else if(pid != 0) exit(0); setsid(); /* become session leader */ for(i=0;i<= 2;++i) /* close STDOUT, STDIN, STDERR, */ close(i); umask(0); /* clear file mode creation mask */ return 0;}void sig_term(int signo){ if(signo == SIGTERM) /* catched signal sent by kill(1) command */ { wsio_logit("", "wsiod stopped/n"); exit(0); }}/* main program of daemon */int main(void){if(init_daemon() == -1){printf("can't fork self/n");exit(0); } wsio_logit("", "wsiod started/n"); signal(SIGTERM, sig_term); /* arrange to catch the signal */ while (1) { // Do what you want here … … } exit(0);}daemon 程序管理脚本daemon 程序能够应用 service 工具进行治理,包含启动、进行、查看状态等,但前题是须要编写一个如下的简略SHELL脚本,比方 /etc/init.d/wsiod : ...

September 25, 2021 · 2 min · jiezi

关于linux:系统运维-Ubuntu-下安装配置-samba-服务的详细过程

本文首发于 2014-08-05 10:14:481. Samba作用Samba的次要工作就是实现Linux零碎和Windows零碎之间的资源共享。咱们当初是要在Linux下配置Samba,让Windows的用户能够拜访你的PC。 当然,也可用于VMWare虚拟机与宿主机之间的资源共享。 2. 装置我是在ubuntu上实现的,所以我只需在配置好ubuntu的更新源之后,在终端中应用一下两句命令,就能够装置Samba的软件包 sudo apt-get install smabasudo apt-get install smbfs3. Samba服务的形成Samba的外围是两个守护过程smbd和nmbd 。它们的配置信息都保留在/etc/samba/smb.conf外面。 其中smbd解决Samba软件与Linux协商,nmbd使其余主机能浏览Linux服务器。 4. Samba配置文件配置文件为/etc/samba/smb.conf,如果放心改了之后有问题,能够先备份一下: sudo cp /etc/samba/smb.conf /etc/samba/smb_conf_backup一个残缺的Samba配置文件蕴含两局部: Samba Global Settings 全局参数设置 该局部由[global]段来实现配置,次要是设置整体的规定。其中参数workgroup比拟非凡,用于提供NT域名或者工作组名,须要依据理论状况批改:workgroup=mygroupShare Definitions 共享定义 有很多段,都用[]标记开始的,须要依据理论状况批改。语法阐明: 每个局部有音讯头和参数形成,音讯头用[]示意,如[global]就是一个音讯头。参数的构造模式是parameter=value。正文用 # 示意,这个和shell脚本有点像。有一些配置后面有 ; ,这个示意这一行的配置能够更改,如需批改,则要去掉;,配置才可能失效。5. 示例5.1. 设置共享目录假设共享目录为/home/share/samba: sudo mkdir -p /home/share/sambasudo chmod 777 /home/share/samba5.2. 批改配置文件批改 global 段: [global] workgroup = WORKGROUP display charset = UTF-8 unix charset = UTF-8 dos charset = cp936增加Share段: [Share] comment = Shared Folder with username and password path = /home/share/samba public = yes writable = no valid users = user create mask = 0300 directory mask = 0300 force user = nobody force group = nogroup available = yes browseable = yes搜寻到 security 配置项,批改为: ...

September 25, 2021 · 1 min · jiezi

关于linux:linux之systemctl命令

Linux 服务治理两种形式service和systemctl,systemd是Linux零碎最新的初始化零碎(init),作用是进步零碎的启动速度,尽可能启动较少的过程,尽可能更多过程并发启动。systemd对应的过程治理命令是systemctlchkconfig和systemctl命令比照工作旧指令新指令使某服务主动启动chkconfig --level 3 httpd onsystemctl enable httpd.service使某服务不主动启动chkconfig --level 3 httpd offsystemctl disable httpd.service查看服务状态service httpd statussystemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)显示所有已启动的服务chkconfig --listsystemctl list-units --type=service启动服务service httpd startsystemctl start httpd.service进行服务service httpd stopsystemctl stop httpd.service重启服务service httpd restartsystemctl restart httpd.service重载服务service httpd reloadsystemctl reload httpd.service实例#进行cup电源治理服务> systemctl stop cups.service#禁止cups服务开机启动> systemctl disable cups.service#查看cups服务状态> systemctl status cups.service#从新设置cups服务开机启动> systemctl enable cups.service罕用的系统命令systemctl命令阐明systemctl列出所有的零碎服务systemctl list-units列出所有启动unitsystemctl list-unit-files列出所有启动文件systemctl list-units –type=service –all列出所有service类型的unitsystemctl list-units –type=service –all grep cpu列出 cpu电源管理机制的服务systemctl list-units –type=target –all列出所有targetsystemctl list-unit-files --type=socket列出所有可用零碎套接口systemctl非凡的用法systemctl命令阐明systemctl is-active [unit type]查看服务是否运行systemctl is-enable [unit type]查看服务是否设置为开机启动systemctl mask [unit type]登记指定服务systemctl unmask [unit type]勾销登记指定服务原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

September 24, 2021 · 1 min · jiezi

关于linux:NPM镜像站全新上线

阿里云开源镜像站是由阿里云提供的开源组件、开源操作系统等工具镜像站。NPM镜像站全新上线,进步开发效率,让您的构建更加迅速。 立刻应用:http://www.npmmirror.com/?spm=a1z389.11499242.0.0.65452413JRqluJ&utm_content=g_1000297192

September 24, 2021 · 1 min · jiezi

关于linux:linux之service命令

控制系统服务的实用工具,service 命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、进行、重新启动和关闭系统服务,还能够显示所有零碎服务的以后状态。命令语法service(选项)(参数)命令选项-h:显示帮忙信息;--status-all:显示所服务的状态。命令参数服务名:主动要管制的服务名,即/etc/init.d目录下的脚本文件名;管制命令:零碎服务脚本反对的管制命令。当批改了主机名、ip 地址等信息时,常常须要把网络重启使之失效。service network status配置设施:lo eth0以后的沉闷设施:lo eth0service network restart正在敞开接口 eth0: [ 确定 ]敞开环回接口: [ 确定 ]设置网络参数: [ 确定 ]弹出环回接口: [ 确定 ]弹出界面 eth0: [ 确定 ]重启 mysqlservice mysqld statusmysqld (pid 1638) 正在运行...service mysqld restart进行 MySQL: [ 确定 ]启动 MySQL: [ 确定 ]原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站

September 23, 2021 · 1 min · jiezi

关于linux:Linux-常用命令

vi 指令 底行模式:set nu显示行号:set nonu 敞开行号:行号(疾速跳转指定行):w 保留:q 退出:wq 保留并退出/查找的内容(n 查找下一个)命令模式G:文件开端gg:文件头$:行尾^:行头dd:删除光标行数字dd:删除多行u:撤销Ctrl + R:后退yy:复制光标行数字yy:复制多行p:从光标的下一行开始粘贴h:左l:右j:下k:上配置网络查看文件名应用 vi 指令关上配置网络的文件,编辑该文件。 ls /etc/sysconfig/network-script/ 查看文件名。 防火墙Linux 中的复制:Ctrl + Insert Linux 中的粘贴:Shift + Insert 查看防火墙状态:systemctl status firewalld 开启防火墙:systemctl start firewalld 敞开防火墙:systemctl stop firewalld 禁用防火墙:systemctl disable firewalld 快照/克隆Linux目录 /bin:bin是Binary的缩写, 这个目录寄存着最常常应用的命令。/boot:这里寄存的是启动Linux时应用的一些外围文件,包含一些连贯文件以及镜像文件。/dev:dev是Device(设施)的缩写, 该目录下寄存的是Linux的外部设备,在Linux中拜访设施的形式和拜访文件的形式是雷同的。/etc:这个目录用来寄存所有的系统管理所须要的配置文件和子目录。/home:用户的主目录,在Linux中,每个用户都有一个本人的目录,个别该目录名是以用户的账号命名的。/lib:这个目录里寄存着零碎最根本的动静连贯共享库,其作用相似于Windows里的DLL文件。简直所有的应用程序都须要用到这些共享库。/lost+found:这个目录个别状况下是空的,当零碎非法关机后,这里就寄存了一些文件。/media:linux 零碎会自动识别一些设施,例如U盘、光驱等等,当辨认后,linux会把辨认的设施挂载到这个目录下。/mnt:零碎提供该目录是为了让用户长期挂载别的文件系统的,咱们能够将光驱挂载在/mnt/上,而后进入该目录就能够查看光驱里的内容了。/opt: 这是给主机额定装置软件所摆放的目录。比方你装置一个ORACLE数据库则就能够放到这个目录下。默认是空的。/proc:这个目录是一个虚构的目录,它是零碎内存的映射,咱们能够通过间接拜访这个目录来获取零碎信息。这个目录的内容不在硬盘上而是在内存里,咱们也能够间接批改外面的某些文件,比方能够通过上面的命令来屏蔽主机的ping命令,使他人无奈ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all/root:该目录为系统管理员,也称作超级权限者的用户主目录。/sbin:s就是Super User的意思,这里寄存的是系统管理员应用的零碎管理程序。/selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个平安机制,相似于windows的防火墙,然而这套机制比较复杂,这个目录就是寄存selinux相干的文件的。/srv: 该目录寄存一些服务启动之后须要提取的数据。/sys:这是linux2.6内核的一个很大的变动。该目录下装置了2.6内核中新呈现的一个文件系统 sysfs 。sysfs文件系统集成了上面3种文件系统的信息:针对过程信息的proc文件系统、针对设施的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设施树的一个直观反映。当一个内核对象被创立的时候,对应的文件和目录也在内核对象子系统中被创立。/tmp:这个目录是用来寄存一些临时文件的。/usr: 这是一个十分重要的目录,用户的很多应用程序和文件都放在这个目录下,相似于windows下的program files目录。/usr/bin:零碎用户应用的应用程序。/usr/sbin:超级用户应用的比拟高级的管理程序和零碎守护程序。/usr/src:内核源代码默认的搁置目录。/var:这个目录中寄存着在一直裁减着的货色,咱们习惯将那些常常被批改的目录放在这个目录下。包含各种日志文件。/run:是一个临时文件零碎,存储系统启动以来的信息。当零碎重启时,这个目录下的文件应该被删掉或革除。如果你的零碎上有 /var/run 目录,应该让它指向 run。Linux常用命令clear:清屏ls:以后门路下文件短显示(只显示文件名)ll:以后门路下文件长显示touch:创立文件cat:预览文件内容cd 门路:切换门路cd ..:回到上一级门路mkdir:单级文件夹创立mkdir -p:多级文件夹创立pwd:打印以后所在门路cp -rf:复制文件夹及文件mv:重命名或挪动rm:删除,询问y/srm -f:不询问间接删除,举荐 -f 写在最初rm -rf:循环递归删除不询问间接删,举荐 -rf 写在最初yum install:下载命令yum -y install:下载命令过程中所有询问都选 yeswget:通过网络地址获取资源Ctrl + u:革除命令行tar:解压文件Linux 装置 Node下载资源将资源下载至 root 目录 ...

September 23, 2021 · 1 min · jiezi

关于linux:Linux-IPTables如何添加防火墙规则

摘要:本文介绍了如何应用“iptables -A”命令增加 iptables 防火墙规定。本文分享自华为云社区《Linux IPTables:如何增加防火墙规定(应用容许 SSH 示例)》,作者:Tiamo_T 。 本文介绍了如何应用“iptables -A”命令增加 iptables 防火墙规定。 “-A”用于追加。如果它让你更容易记住“-A”作为增加规定(而不是附加规定),那就没问题了。然而,请记住,“-A”在链的开端增加了规定。 同样,记住 -A 在开端增加规定十分重要。 通常,最初一条规定是抛弃所有数据包。如果您曾经有一个抛弃所有数据包的规定,并且如果您尝试在命令行中应用“-A”来创立新规定,您最终会在以后的“抛弃所有数据包”规定之后增加新规定,这将使您的新规定简直毫无用处。 一旦您把握了 iptables,并且当您在生产中实现它时,您应该应用 shell 脚本,您能够在其中应用 -A 命令增加所有规定。在那个 shell 脚本中,你的最初一行应该总是“抛弃所有数据包”规定。当您想要增加任何新规定时,请批改该 shell 脚本并将您的新规定增加到“抛弃所有数据包”规定之上。 句法: iptables -A chain firewall-rule• -A 链 - 指定应附加规定的链。例如,对传入数据包应用 INPUT 链,对传出数据包应用 OUTPUT。• firewall-rule – 各种参数形成防火墙规定。 如果您不晓得链是什么意思,最好先浏览iptables 基础知识。 防火墙规定参数以下参数可用于所有类型的防火墙规定。 -p 用于协定• 批示规定的协定。• 可能的值为 tcp、udp、icmp• 应用“all”容许所有协定。当您不指定 -p 时,默认状况下将应用“所有”协定。应用“all”并始终指定协定并不是一个好习惯。• 应用名称(例如:tcp)或编号(例如:6 示意 tcp)作为协定。• /etc/protocols 文件蕴含所有容许的协定名称和编号。• 你也能够应用--protocol -s 是源• 批示数据包的起源。• 这能够是 IP 地址、网络地址或主机名• 例如:-s 192.168.1.101 示意具体的ip地址• 对于网络掩码,应用 /mask。例如:“-s 192.168.1.0/24”示意该网络的网络掩码为 255.255.255.0。这匹配 192.168.1.x 网络。• 当您不指定起源时,它将匹配所有起源。• 您还能够应用 –src 或 –source ...

September 23, 2021 · 2 min · jiezi

关于linux:干货分享|UKUI-主题框架实战技巧

UKUI 主题框架的实现并非设想中那么简略,但世上无难事只怕有心人,首先咱们须要理解一个要害接口 QPA,接着通过学习具体的类理解如何创立并深刻应用平台主题。本文中奇奇为大家筹备了丰盛的控件常识介绍,并且还有 UKUI 实例展现和实战环节,一起来理解学习下吧~ 一、平台主题(QPA)介绍 QPA 即 Qt Platform Abstraction,是 Qt5 外面的平台形象层,用以取代 Qt for Embedded Linux 以及 Qt4 中的平台接口。 QPA 插件通过定义 QPlatform 结尾的一系列类的子类实现,其中有两个根类,QPlatformIntegration 和 QPlatformTheme,前者用于窗口零碎的集成,后者用于更深层次的平台主题化和集成,QStyle 不属于 QPA,旨在在未修改的 Qt 应用程序中应用尽可能多的平台主题设置,它容许 Qt 应用程序尽可能地适应环境。 二、平台主题的创立 在 Linux 零碎中咱们能够通过 QPlatformThemePlugin 类来创立本人的平台主题。例如 UKUI 的平台主题创立办法--如图 1 所示。要使零碎走咱们的平台主题,须要将环境变量“QT\_QPA\_PLATFORMTHEME”设置为 json 文件中的 keys 值。 例如在 UKUI 中由 ukui-session-manager 设置环境变量“QT\_QPA\_PLATFORMTHEME = ukui”。 图1 设置 keys 值 此外插件都须要一个蕴含形容插件的元数据的 json 文件 。例如 UKUI 平台主题 json 文件,如图 2 所示。 ...

September 23, 2021 · 2 min · jiezi

关于linux:Linux中ip命令的使用实例

在以前的Linux零碎版本中,咱们始终应用' ifconfig '命令查看ip地址等信息。然而“ifconfig”曾经不再被保护,并在近几年的Linux版本中曾经被弃用。ifconfig命令已被ip命令替换。ip命令有点相似于ifconfig命令,但它更弱小,附加了更多的性能。ip命令能够执行一些网络相干的工作,是ifconfig不能操作的。 查看网络接口信息要查看网络接口信息,例如IP地址,子网等,请应用“ ip addr show”命令: bob@ubuntu-20-04:~$ ip addr showLinux中ip命令的应用实例Linux中ip命令的应用实例这会显示零碎上所有网络接口的信息,然而如果咱们要查看单个网卡信息,以下咱们要查看ens33接口的ip信息,能够应用以下命令: bob@ubuntu-20-04:~$ ip addr show ens33Linux中ip命令的应用实例Linux中ip命令的应用实例 启用或者禁用网络接口咱们能够应用ip命令启用或禁用网络接口,示例如下所示: bob@ubuntu-20-04:~$ sudo ip link set ens33 downLinux中ip命令的应用实例Linux中ip命令的应用实例能够看到ens33接口的状态变成DOWN了。 咱们再启用该网络接口: bob@ubuntu-20-04:~$ sudo ip link set ens33 upLinux中ip命令的应用实例Linux中ip命令的应用实例 为接口设置长期的IP地址要调配IP地址以应用ip命令进行接口,咱们将应用以下办法: bob@ubuntu-20-04:~$ sudo ip addr add 192.168.43.175/255.255.255.0 dev ens33Linux中ip命令的应用实例Linux中ip命令的应用实例能够看到ens33接口增加了一个新的ip地址。 从网络接口中删除ip地址如果要从接口中删除调配的IP,能够应用上面办法: bob@ubuntu-20-04:~$ sudo ip addr del 192.168.43.175/24 dev ens33Linux中ip命令的应用实例Linux中ip命令的应用实例 查看路由和默认网关信息查看路由信息会向咱们显示数据包达到目的地所要通过的路由。要查看网络路由信息,请执行以下ip命令: bob@ubuntu-20-04:~$ ip route showdefault via 192.168.43.2 dev ens33 proto dhcp metric 100 169.254.0.0/16 dev ens33 scope link metric 1000 192.168.43.0/24 dev ens33 proto kernel scope link src 192.168.43.174 metric 100 Linux中ip命令的应用实例Linux中ip命令的应用实例在下面的输入中,咱们将看到所有网络接口的路由信息。咱们还能够应用以下形式获取到特定ip的路由信息: ...

September 23, 2021 · 1 min · jiezi

关于linux:特性介绍-Linux-内存管理机制解析

本文首发于 2014-03-12 21:27:30Linux 内存地址映射图 后文中 图:XXX 指的就是上图中对应区域。地址映射(图:左中)inux 内核应用页式内存治理,应用程序给出的内存地址是虚拟地址,它须要通过若干级页表一级一级的变换,才变成真正的物理地址。 想一下,地址映射还是一件很恐怖的事件。当拜访一个由虚拟地址示意的内存空间时,须要先通过若干次的内存拜访,失去每一级页表中用于转换的页表项(页表是寄存在内存外面的),能力实现映射。也就是说,要实现一次内存拜访,实际上内存被拜访了N+1次(N=页表级数),并且还须要做N次加法运算。 所以,地址映射必须要有硬件反对,mmu(内存治理单元)就是这个硬件。并且须要有cache来保留页表,这个 cache 就是 TLB(Translation lookaside buffer)。 尽管如此,地址映射还是有着不小的开销。假如 cache 的访存速度是内存的10倍,命中率是40%,页表有三级,那么均匀一次虚拟地址拜访大略就耗费了两次物理内存拜访的工夫。于是,一些嵌入式硬件上可能会放弃应用 mmu,这样的硬件可能运行 VxWorks(一个很高效的嵌入式实时操作系统)、linux(linux 也有禁用 mmu 的编译选项)等零碎。 然而应用 mmu 的劣势也是很大的,最次要的是出于安全性思考。各个过程都是互相独立的虚拟地址空间,互不烦扰。而放弃地址映射之后,所有程序将运行在同一个地址空间。于是,在没有mmu的机器上,一个过程越界访存,可能引起其余过程莫名其妙的谬误,甚至导致内核解体。 在地址映射这个问题上,内核只提供页表,理论的转换是由硬件去实现的。那么内核如何生成这些页表呢?这就有两方面的内容:虚拟地址空间的治理和物理内存的治理。(实际上只有用户态的地址映射才须要治理,内核态的地址映射是写死的。) 虚拟地址治理(图:左下)每个过程对应一个 task 构造,它指向一个 mm 构造,这就是该过程的内存管理器。(对于线程来说,每个线程也都有一个 task 构造,然而它们都指向同一个 mm,所以同一过程中的多个线程的地址空间是共享的。) mm->pgd 指向包容页表的内存,每个过程有自已的 mm,每个 mm 有本人的页表。于是,过程调度时,页表被切换(个别会有一个CPU寄存器来保留页表的地址,比方X86下的CR3,页表切换就是扭转该寄存器的值)。所以,各个过程的地址空间互不影响(因为页表都不一样了,当然无法访问到他人的地址空间上。然而共享内存除外,这是成心让不同的页表可能拜访到雷同的物理地址上)。 用户程序对内存的操作(调配、回收、映射、等)都是对 mm 的操作,具体来说是对 mm 上的 vma(虚拟内存空间) 的操作。这些 vma 代表着过程空间的各个区域,比方堆、栈、代码区、数据区、各种映射区 等。 用户程序对内存的操作并不会间接影响到页表,更不会间接影响到物理内存的调配。比方 malloc 胜利,仅仅是扭转了某个 vma,页表不会变,物理内存的调配也不会变。 假如用户调配了内存,而后拜访这块内存。因为页表外面并没有记录相干的映射,CPU产生一次缺页异样。内核捕获异样,查看产生异样的地址是不是存在于一个非法的vma中,如果不是,则给过程一个"段谬误",让其解体;如果是,则调配一个物理页,并为之建设映射。 物理内存治理(图:右上)那么物理内存是如何调配的呢? 首先,linux 反对 NUMA (Non Uniform Memory Access)。物理内存治理的第一个档次就是介质的治理,pg_data_t构造就形容了介质。一般而言,咱们的内存治理介质只有内存,并且它是平均的,所以能够简略地认为零碎中只有一个 pg_data_t 对象。 每一种介质上面有若干个zone,个别是三个:DMA、NORMAL和HIGH。 DMA:因为有些硬件零碎的DMA总线比系统总线窄,所以只有一部分地址空间可能用作 DMA,这部分地址被治理在 DMA 区域(这属于是高级货了);HIGH:高端内存。在32位零碎中,地址空间是4G,其中内核规定 3~4G 的范畴是内核空间,0~3G 是用户空间(每个用户过程都有这么大的虚拟空间)(图:中下)。后面提到过内核的地址映射是写死的,就是指这3~4G的对应的页表是写死的,它映射到了物理地址的0~1G上。(实际上没有映射1G,只映射了896M。剩下的空间留下来映射大于1G的物理地址,而这一部分显然不是写死的)。所以,大于896M的物理地址是没有写死的页表来对应的,内核不能间接拜访它们(必须要建设映射),称它们为高端内存(当然,如果机器内存不足896M,就不存在高端内存。如果是64位机器,也不存在高端内存,因为地址空间很大很大,属于内核的空间也不止1G了);NORMAL:不属于 DMA 或 HIGH 的内存就叫 NORMAL 。在 zone 之上的 zone_list 代表了调配策略,即内存调配时的 zone 优先级。一种内存调配往往不是只能在一个zone里进行调配的,比方调配一个页给内核应用时,最优先是从 NORMAL 外面调配,不行的话就调配 DMA 外面的好了( HIGH 就不行,因为还没建设映射),这就是一种调配策略。 ...

September 23, 2021 · 2 min · jiezi

关于linux:linux之pkill命令

能够依照过程名杀死过程,pkill命令 能够依照过程名杀死过程。pkill和killall利用办法差不多,也是间接杀死运行中的程序;如果您想杀掉单个过程,请用kill来杀掉。命令语法pkill [选项] [参数] 命令选项-o:仅向找到的最小(起始)过程号发送信号;-n:仅向找到的最大(完结)过程号发送信号;-P:指定父过程号发送信号;-g:指定过程组;-t:指定开启过程的终端。命令参数过程名称:指定要查找的过程名称,同时也反对相似grep指令中的匹配模式。最常被应用的信号是:应用kill -l命令列出所有可用的信号。1(HUP):从新加载过程9 (KILL): 杀死过程15(TERM):完满地进行一个过程信号能够通过三种不同的形式来指定:应用一个信号序号(例如: -1)应用 “SIG” 前缀 (例如: -SIGHUP)不应用 “SIG” 前缀 (例如: -HUP)从新加载 Nginx 过程,你须要运行:> pkill -HUP nginxpkill应用正则表达式来匹配过程名称。这是一个好方法,在发送信号之前,先应用pgrep命令来打印匹配过程。 例如,列出所有名称中蕴含ssh的过程:1039 sshd2257 ssh-agent6850 ssh31279 ssh-agent如果你想按照名字精确匹配过程,并发送信号给它:> pkill '^ssh$'> 符号^代表字符串结尾,字符串$代表字符串结尾默认状况下,pkill仅仅匹配过程名称。如果应用-f选项,这个命令将会匹配所有参数列表。如果命令中蕴含空格,将整个命令用引号括起来:> pkill -9 -f "ping 8.8.8.8"应用-u选项通知pkill仅仅匹配给出用户所运行的过程。> pkill -u rumenz想要指定多个用户,在多个用户名之间增加逗号:> pkill -u rumenz,danny你能够混合应用选项和搜寻款式。例如,发送KILL信号给所有由 "mark" 用户运行的,并且过程名蕴含 "gnome" 的所有过程,你须要输出:> pkill -9 -u rumenz gnome想要显示最老的或者最新的过程,应用-n或者-o选项。 例如,想要杀死最近启动的 screen: > pkill -9 -n screen原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站

September 22, 2021 · 1 min · jiezi

关于linux:Centos-7-firewall-iptablescentos7

1、firewalld的根本应用启动: systemctl start firewalld敞开: systemctl stop firewalld查看状态: systemctl status firewalld 开机禁用  : systemctl disable firewalld开机启用  : systemctl enable firewalld 2.systemctl是CentOS7的服务管理工具中次要的工具,它交融之前service和chkconfig的性能于一体。启动一个服务:systemctl start firewalld.service敞开一个服务:systemctl stop firewalld.service重启一个服务:systemctl restart firewalld.service显示一个服务的状态:systemctl status firewalld.service在开机时启用一个服务:systemctl enable firewalld.service在开机时禁用一个服务:systemctl disable firewalld.service查看服务是否开机启动:systemctl is-enabled firewalld.service查看已启动的服务列表:systemctl list-unit-files|grep enabled查看启动失败的服务列表:systemctl --failed 3.配置firewalld-cmd查看版本: firewall-cmd --version查看帮忙: firewall-cmd --help显示状态: firewall-cmd --state查看所有关上的端口: firewall-cmd --zone=public --list-ports更新防火墙规定: firewall-cmd --reload查看区域信息:  firewall-cmd --get-active-zones查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0回绝所有包:firewall-cmd --panic-on勾销回绝状态: firewall-cmd --panic-off查看是否回绝: firewall-cmd --query-panic 那怎么开启一个端口呢增加firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永恒失效,没有此参数重启后生效)从新载入firewall-cmd --reload查看firewall-cmd --zone= public --query-port=80/tcp删除firewall-cmd --zone= public --remove-port=80/tcp --permanent 调整默认策略(默认回绝所有拜访,改成容许所有拜访):firewall-cmd --permanent --zone=public --set-target=ACCEPTfirewall-cmd --reload ...

September 22, 2021 · 1 min · jiezi

关于linux:linux之lscpu命令

lscpu 命令显示无关 CPU 架构的信息lscpu 命令装置:-bash: lscpu: command not found #Ubuntuapt-get install util-linux#CentOSyum install util-linux #Fedoradnf install util-linux #OS Xbrew install util-linux#Dockerdocker run cmd.cat/lscpu lscpulscpu 命令补充阐明:lscpu 命令 是显示无关 CPU 架构的信息。。lscpu 命令语法:lscpu [-a|-b|-c|-J] [-x] [-y] [-s directory] [-e[=list]|-p[=list]]lscpu -h|-Vlscpu 命令选项:-a, --all 打印在线和离线CPU(默认为-e)-b, --online 仅打印在线CPU(-p的默认值)-c, --offline 打印离线CPU-e, --extended[=<list>] 打印出一个扩大的可读格局-p, --parse[=<list>] 打印出可解析的格局-s, --sysroot <dir> 将指定的目录用作零碎根目录-x, --hex 打印十六进制掩码,而不是CPU列表-h, --help 显示此帮忙并退出-V, --version 输入版本信息并退出lscpu 命令参数:可用列: CPU 逻辑CPU编号 CORE 逻辑外围号码 SOCKET 逻辑套接字号 NODE 逻辑NUMA节点号 BOOK 逻辑书号 CACHE 显示了如何在CPU之间共享高速缓存 POLARIZATION 虚构硬件上的CPU调度模式 ADDRESS CPU的物理地址 CONFIGURED 显示管理程序是否调配了CPU ONLINE 显示Linux是否正在应用CPUlscpu 命令实例:间接执行 lscpu: ...

September 20, 2021 · 2 min · jiezi

关于linux:愿SSH为人类服务器又一个SSH工具推荐-NextSSH

NextSSH是一个反对Windows和macOS的跨平台SSH工具。除了治理服务器之外还提供许多便当的性能,能将Linux操作变得直观和可视化。 次要性能SSH客户端治理服务器SFTP文件浏览器,反对拖拽文件文件夹压缩打包传输,减速传输散碎文件内嵌编辑器,在线批改文件、配置概览零碎数据,理解零碎情况下载软件关上 https://xzhshch.com/ 数据概览疾速预览指标机数据。理解处理器、内存、硬盘与网络相干的应用信息。 终端残缺的SSH终端反对。同时能够简览设施状态。 SFTP与编辑器反对双击关上文件、上传、下载、拖拽挪动文件。 输出门路即可关上文件,应用Ctr/Cmd+S快捷键保留文件。 上传或下载文件夹时应用Zip压缩指标文件夹。(须要zip/unzip命令反对、tmp目录读写权限) 减速大量小文件的传输速度。

September 20, 2021 · 1 min · jiezi

关于linux:linux之sshpass命令

将文件连贯并传输到近程零碎是系统管理员始终在做的事件。SSH是Linux平台上许多系统管理员应用的根本工具。SSH反对两种身份验证模式:1.明码认证2.公钥认证公钥认证被认为是这两种办法中最平安的模式,只管明码认证是最风行和最容易的。然而,应用明码验证时,总是要求用户输出明码。这种反复是乏味的。此外,SSH在外壳程序脚本中应用时也须要手动干涉。如果在应用SSH明码身份验证时须要自动化,那么一个简略的工具sshpass必不可少。什么是sshpass该sshpass 实用程序旨在应用键盘交互明码身份验证模式运行SSH ,但以非交互方式运行。 SSH应用间接TTY拜访来确保明码的确是由交互式键盘用户收回的。sshpass在专用的TTY中运行SSH,让SSH认为它是从交互式用户那里获取明码的。 装置sshpass您能够sshpass应用以下简略命令进行装置:> yum install sshpass -y应用sshpass在sshpass选项之后指定要运行的命令。通常,该命令ssh带有参数,但也能够是任何其余命令。不过,目前SSH明码提醒已硬编码为sshpass。sshpass [-f filename | -d num | -p password | -e] [options]命令选项-p 明码 明码在命令行中给出。 -f 文件名 明码是文件名的第一行。 -d number number是sshpass从运行程序继承的文件描述符。从关上的文件描述符中读取明码。 -e 明码来自环境变量"SSHPASS"。用于sshpass通过SSH登录到近程服务器。假如明码为4u2tryhack。以下是应用sshpass选项的几种办法。应用-p(这是最不平安的抉择,不应应用):> sshpass -p "4u2tryhack" ssh username@rumenz.com-p在shell脚本中应用时,该选项如下所示:> sshpass -p "4u2tryhack" ssh -o StrictHostKeyChecking=no username@rumenz.com应用-f选项(明码应该是文件名的第一行):> echo'4u2tryhack' > pass_file> chmod 0400 pass_file> sshpass -f pass_file ssh username@rumenz.com-f 在shell脚本中应用以下选项:> sshpass -f pass_file ssh -o StrictHostKeyChecking=no username@rumenz.com应用-e选项(明码应该是文件名的第一行)$ SSHPASS='4u2tryhack' sshpass -e ssh username@rumenz.com-e在shell脚本中应用时,该选项如下所示:> SSHPASS ='4u2tryhack' sshpass -e ssh -o StrictHostKeyChecking=no username@rumenz.com示例2:Rsyncsshpass搭配应用rsync: ...

September 19, 2021 · 1 min · jiezi

关于linux:助力一带一路信息化建设银河麒麟操作系统藏文版V10-全新发布

在信息化建设的大潮中,西藏地区正在减速利用云计算、大数据、物联网、人工智能等高科技技术,构建信息化的“将来之城”。在信息化建设过程中,操作系统是必不可少的,然而因为市面上的操作系统只有中文版,而且藏文软件编码品种较多,容易产生数据互不兼容的问题,这给藏区人民的信息化过程造成了不小的妨碍。因而,西藏地区亟待一款反对藏语且操作便当的操作系统。 为满足西藏地区信息化建设需要,2021 年 9 月 19 日,河汉麒麟桌面操作系统(藏文版)V10 发布会在长沙世纪金源酒店隆重举行,中国工程院院士桂卫华、廖湘科、王耀南和中国科学院院士王怀民,湖南科学技术厅厅长童旭东,西藏自治区科学技术厅厅长赤列旺杰、西藏自治区科学技术厅高新处处长潘铭,西藏大学校长纪建洲、西藏大学信息科学技术学院院长尼玛扎西、西藏大学信息科学技术学院老师仁增多吉、索南尖措、次仁白玛和头旦才让,国防科技大学研究院吴庆波、谭郁松、余杰,麒麟软件有限公司高级副总裁魏立峰、董军平等领导光临缺席,还有来自全国各地的 100 余位河汉麒麟爱好者相聚一堂,独特见证这一历史性时刻。本次公布的藏文版由麒麟软件联结西藏大学、国防科技大学的专家,针对藏族地区用户的应用习惯和需要,历时 18 个月的研发和规模部署试点精心打造而成,旨在为藏区人民提供便捷舒服的操作体验。 发布会现场 此次藏文版操作系统的公布,不仅有利于放大西藏与边疆间的“数字鸿沟”,减速藏族地区的信息化建设与倒退,同时,还无效升高了藏族地区师生应用国产操作系统的语言学习门槛,助力藏大学子深刻学习和应用计算机操作系统,造就高质量信息化人才,减速国产操作系统的拓展与遍及。 西藏科学技术厅的赤列旺杰厅长示意,“河汉麒麟藏文版本是施行翻新驱动倒退策略的具体动作,必将晋升西藏信息技术服务‘一带一路’南亚大通道建设、国家信创工程和西藏数字经济倒退的能力。” 西藏科学技术厅厅长 赤列旺杰 而本次藏文版胜利开发的背地,离不开国防科技大学、麒麟软件有限公司与西藏大学三方的通力合作,对此,西藏大学的纪建洲校长示意,“我认为这是校校单干、校企单干信息化协同翻新的一个榜样,必将助力新时代西藏高质量倒退,促成藏族地区与边疆之间的科技、文化交流。” 西藏大学校长 纪建洲 国产操作系统当先,助推藏族地区信息化建设在“一带一路”国家策略中,西藏地区不仅是内联外接的重要支点,更是环喜马拉雅地区的文化流传洼地。 以后,西藏数字经济也已步入倒退快车道,互联网+产业的底层服务平台为西藏地区的经济倒退带来了新的生机。数据显示,2020 年,西藏地区的数字经济规模为 330 亿元,并以 20% 的速度持续增长,其中,高新数字产业增加值为 152.48 亿元,增速为 23.90 %,可见,数字化、信息化曾经成为西藏地区的重要推动力。 基于此,西藏地区的新基建须要更加欠缺的自主信息根底平台撑持将来经济倒退,而平安高效的本地化计算机操作系统是西藏信息化建设要害的撑持之一。 湖南省科学技术厅童旭东厅长示意,“本次藏文版的公布,不仅使得宽广藏族同胞能够有更多机会接触信息技术,对我国藏文信息产业倒退具备极大的促进作用,同时也对藏语和藏族文化的传承具备深远意义。” 湖南省科学技术厅厅长 童旭东 另外,藏文版也将为业余的人才培养施展关键作用。麒麟软件有限公司副总裁魏立峰示意,“河汉麒麟操作系统 V10 藏文版在西藏地区的推广和应用下,可能为当地信息化建设添砖加瓦,也期待更多的藏族同胞们疾速退出到信创人才生态体系中来,走上翻新驱动、内生增长的倒退轨道,为造就我国自主操作系统精英人才提供切实全面的保障,推动我国信创技术水平跻身国内先进行列。” 麒麟软件有限公司副总裁 魏立峰 对河汉麒麟本次藏文版的公布,院士桂卫华和王耀南示意必定。“将藏文拼写查看技术集成到操作系统中,不仅可能帮忙解决藏文用户在应用计算机网络利用解决信息时的语言障碍问题,并且因为河汉麒麟操作系统的平安可控性,可能帮忙解决西藏对外开放时的网络安全问题,能够期待,有像河汉麒麟这样的中国自研操作系统的存在,国家的网络安全和信息化肯定可能做到协调倒退,齐头并进。” 对此院士王怀民补充到,“河汉麒麟藏文版本,无疑为西藏的经济社会倒退提供了一个很好的信息化根底,这对我国藏文信息产业的倒退,置信在河汉麒麟的帮忙下,藏族信息化倒退能越来越好。” 顺次为桂卫华院士、廖湘科院士、王怀民院士、王耀南院士 本地化设计,性能不“打折”谈及藏文版的设计,廖湘科院士剖析说,“此前,一些零碎和软件的推出尽管在肯定水平上解决了藏族用户的日常应用需要,然而在易用性和稳定性方面还存在很大的问题。而河汉麒麟藏文版本的公布胜利将在易用性、稳定性方面为用户带来全新的体验。” 国防科大专家吴庆波则示意,“思考到藏族中央的用户习惯,咱们在设计藏文版本时花了很多心理,构建了全新的操作系统藏文界面,让使用者领略科技与文化的完满交融。” 国防科大专家 吴庆波 同时,发布会上,西藏大学信息科学技术学院尼玛扎西院长具体介绍了藏文版的性能以及设计理念。他介绍说,“藏文版操作系统的设计充分考虑藏族用户习惯,集实用性、高性能、创新性、可保护等劣势于一体,为藏族用户带来了卓越、顺畅的体验。” 西藏大学信息科学技术学院院长 尼玛扎西 在各种办公场景中,藏文版能提供弱小反对,比方领有海量文本输入法实时拼写检测,文件编辑默认集成、启用,输入法完满合作,为办公带来高效输出体验。而且,基于河汉麒麟操作系统的平安可控性,可能帮忙解决西藏对外开放时的网络安全问题。 值得强调的是,藏文版本是首次将藏文拼写查看技术集成到操作系统中,不便藏族用户娱乐与办公。藏文版操作系统及利用具备欠缺的藏语反对,藏语本地化覆盖率高达 70% 以上,且反对汉语、藏语、英语的灵便切换,满足用户的语言多元化需要。 藏文版领有大量的翻新办法的利用,包含基于音节的藏语文本编辑间隔计算方法与排序办法,且反对汉藏、英藏文本混合编排,具备语言反对关联度的编辑间隔比拟,以科学合理的设计最大限度地节俭用户操作工夫,晋升用户体验。 河汉麒麟桌面操作系统(藏文版)V10 正式公布! 河汉麒麟 V10 操作系统在党政、金融、能源、通信等行业曾经具备规模化部署教训。以后,藏文版曾经实现了布局化部署,实现了西藏藏族自治区 31 家国家或地区直属部门以及西藏各地市局部单位的规模化试点推广,目前试点用户超过 20,000 人。 藏文版操作系统的公布,是河汉麒麟操作系统走进藏区的重要推动力,它不仅晋升了藏族用户日常办公、学习和网络应用中解决藏文信息时零碎的易用性和稳定性,同时在零碎应用安全性方面也提供了保障。面向未来,置信在河汉麒麟零碎的加持下,藏族自治区的信息技术教育和信息化建设服务将更加欠缺,藏族同胞接触信息技术的机会也将继续减少,人才培养体系也会更加迷信,藏族地区的信息化建设也必将迈向新高度!

September 19, 2021 · 1 min · jiezi

关于linux:linux之fping命令

fping检测主机是否存在,fping命令 fping相似于ping,但比ping弱小。与ping要期待某一主机连贯超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping,fping还能够在命令行中指定要ping的主机数量范畴。 装置fping命令 # 先装置epel源:> yum install epel* -y# 装置fping包:> yum install fping -y命令语法fping [选项] [参数] 命令选项-a 显示存活的主机-b ping 数据包的大小。(默认为56)-c ping每个指标的次数 (默认为1)-f 从文件获取指标列表(不能与 -g 同时应用)-l 循环发送ping-g 通过指定开始和完结地址来生成指标列表,能够使网段-u 显示不可达到的指标选择性ping指定ip> fping 192.168.0.1 192.168.0.125 192.168.0.126 2>/dev/null192.168.0.1 is alive192.168.0.125 is alive192.168.0.126 is unreachableping整个网段:> fping -g 192.168.0.0/24 2>/dev/null192.168.0.1 is alive192.168.0.103 is alive...192.168.0.253 is unreachable192.168.0.254 is unreachableping整个网段,只显示存活的主机> fping -ag 192.168.0.0/24 2>/dev/null192.168.0.1192.168.0.103...ping某一段ip> fping -ag 192.168.0.5 192.168.0.130 2>/dev/null192.168.0.103...192.168.0.125192.168.0.130原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站

September 18, 2021 · 1 min · jiezi

关于linux:linux之rpm命令

RPM 软件包的管理工具rpm 命令 是 RPM 软件包的管理工具。rpm 本来是 Red Hat Linux 发行版专门用来治理 Linux 各项套件的程序,因为它遵循 GPL 规定且功能强大不便,因此广受欢迎。逐步受到其余发行版的采纳。RPM 套件治理形式的呈现,让 Linux 易于装置,降级,间接晋升了 Linux 的实用度。命令语法rpm [选项] [参数]命令选项- -a:查问所有套件;- -b<实现阶段><套件档>+或-t <实现阶段><套件档>+:设置包装套件的实现阶段,并指定套件档的文件名称;- -c:只列出组态配置文件,本参数需配合"-l"参数应用;- -d:只列出文本文件,本参数需配合"-l"参数应用;- -e<套件档>或--erase<套件档>:删除指定的套件;- -f<文件>+:查问领有指定文件的套件;- -h或--hash:套件装置时列出标记;- -i:显示套件的相干信息;- -i<套件档>或--install<套件档>:装置指定的套件档;- -l:显示套件的文件列表;- -p<套件档>+:查问指定的RPM套件档;- -q:应用询问模式,当遇到任何问题时,rpm指令会先询问用户;- -R:显示套件的关联性信息;- -s:显示文件状态,本参数需配合"-l"参数应用;- -U<套件档>或--upgrade<套件档>:降级指定的套件档;- -v:显示指令执行过程;- -vv:具体显示指令执行过程,便于排错。命令参数软件包:指定要操纵的 rpm 软件包。 如何装置 rpm 软件包rpm 软件包的装置能够应用程序 rpm 来实现。执行上面的命令:> rpm -ivh rumenz.rpm其中 rumenz.rpm 是你要装置的 rpm 包的文件名,个别置于当前目录下。 装置过程中可能呈现上面的正告或者提醒: ... conflict with ...可能是要装置的包里有一些文件可能会笼罩现有的文件,缺省时这样的状况下是无奈正确装置的能够用rpm --force -i强制装置即可... is needed by ...... is not installed ...此包须要的一些软件你没有装置能够用rpm --nodeps -i来疏忽此信息,也就是说rpm -i --force --nodeps能够疏忽所有依赖关系和文件问题,什么包都能装置上,但这种强制装置的软件包不能保障齐全施展性能。如何装置. src.rpm 软件包有些软件包是以. src.rpm 结尾的,这类软件包是蕴含了源代码的 rpm 包,在装置时须要进行编译。这类软件包有两种装置办法:办法一:rpm -i your-package.src.rpmcd /usr/src/redhat/SPECSrpmbuild -bp your-package.specs cd /usr/src/redhat/BUILD/your-package/ ./configure makemake install办法二:rpm -i you-package.src.rpmcd /usr/src/redhat/SPECS前两步和办法一雷同rpmbuild -bb your-package.specs这时在/usr/src/redhat/RPM/i386/(依据具体包的不同,也可能是 i686,noarch 等等)在这个目录下,有一个新的 rpm 包,这个是编译好的二进制文件。执行rpm -i new-package.rpm即可装置实现。 ...

September 17, 2021 · 2 min · jiezi

关于linux:linux-切换软件源到国内代理加速地址

一、背景常常会应用各种Linux的发行版本,很多时候须要应用yum和apt去装置软件,然而Linux镜像中的软件源应用的是国外的地址,访问速度十分慢,有些时候甚至拜访失败,每次都须要去网上找对应的软件源地址。 这种工作反反复复,我想着罗唆一次性收集我罕用的Linux发行版本的软件源替换办法,须要的时候间接将命令粘贴下来就能够了,当初将这个文章分享进去,心愿能帮到有此类需要的敌人。 二、Centos 替换软件源centos目前我次要是应用的是 centos7、centos8,两个版本替换步骤根本是统一的,然而具体命令有一些区别,千万不要搞混了。 2.1 Centos7装置base reop源,接着备份旧的配置文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak批改为阿里云 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo更新 yum update2.2 Centos8备份原始软件源文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupmv /etc/yum.repos.d/CentOS-PowerTools.repo /etc/yum.repos.d/CentOS-PowerTools.repo.backupmv /etc/yum.repos.d/CentOS-Extras.repo.backup /etc/yum.repos.d/CentOS-Extras.repo.backup.backupmv /etc/yum.repos.d/CentOS-centosplus.repo.repo /etc/yum.repos.d/CentOS-centosplus.repo.backupmv /etc/yum.repos.d/CentOS-AppStream.repo.repo /etc/yum.repos.d/CentOS-AppStream.repo.backup以上文件都须要重新命名,因为阿里云源里Centos-8.repo蕴含了上述所有文件,如果依照传统手法只更改CentOS-Base.repo这个文件 会呈现一下提醒 Updating Subscription Management repositories.Unable to read consumer identityThis system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.Repository AppStream is listed more than once in the configurationRepository extras is listed more than once in the configurationRepository PowerTools is listed more than once in the configurationRepository centosplus is listed more than once in the configuration批改为阿里云 ...

September 17, 2021 · 2 min · jiezi

关于linux:linux之rename命令

用字符串替换的形式批量扭转文件名 rename 命令存在两个版本用法上有所区别 C语言版本, 反对通配符[罕用通配符阐明]? 示意一个任意字符* 示意一个或一串任意字符[charset] 可代替charset集中的任意单个字符Perl版本, 反对正则表达式[罕用正则表达式符号阐明]^ 匹配输出的开始地位$ 匹配输出的结尾. 匹配除换行符外的任意字符+ 匹配前一个字符一次或屡次 例如,"zo+"能够匹配"zoo",但不匹配"z"[a-z] 示意某个范畴内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。[^m-z] 否定的字符区间。与不在指定区间内的字符匹配。辨别办法: rename --version 如果返回后果中蕴含 util-linux , 阐明是 C 语言版本, 反之是 Perl 版本 # Perl版本 | Ubuntu(18),Mint(20)默认的是Perl版本$ rename --version/usr/bin/rename using File::Rename version 1.10# C语言版本 | Centos(7)默认的是C语言版本$ rename --versionrename,来自 util-linux 2.23.2语法# Perl版本rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -e|-E perlexpr]*|perlexpr [ files ]# C语言版本rename [选项] 表达式 替换的字符 文件...参数# Perl版本-v, --verbose 具体:胜利重命名的文件的打印名称。-0, --null 从STDIN读取时,请应用\0作为记录分隔符-n, --nono 不执行任何操作:打印要重命名的文件名,但不重命名。-f, --force 笼罩:容许笼罩现有文件--path, --fullpath 重命名残缺门路:包含任何目录组件。默认-d, --filename, --nopath, --nofullpath 不重命名目录:仅重命名门路的文件名局部-h, --help 帮忙:打印提要和选项。-m, --man 手册: 打印手册页.-V, --version 版本: 显示版本号.-e 表白: 作用于文件名的代码. 能够反复来构建代码(比方“perl-e”)。如果没有-e,则第一个参数用作代码。-E 语句:对文件名执行操作的代码,如-e,但终止于 ';'.# C语言版本-v, --verbose 提供视觉反馈,其中重命名了哪些文件(如果有的话)-V, --version 显示版本信息并退出。-s, --symlink 在符号链接指标上执行重命名-h, --help 显示帮忙文本并退出Perl 版本将 1.txt 2.txt 重命名为 1.log 2.log ...

September 16, 2021 · 1 min · jiezi

关于linux:文件查找和压缩

查找文件find -- 实时查找工具,通过遍历指定门路实现文件查找特点:查找速度略慢准确查找,查找条件丰盛实时查找 格局find [OPTION] ... [查找门路] [条件] [解决动作]查找门路默认为 以后门路查找条件--能够是文件名、大小、类型、权限等规范,默认是所有文件解决动作--对符合条件的文件做操作,默认是输入至屏幕 查找条件 -name 反对应用glob,通配符要用双引号引起来-iname 不辨别大小写-inum n inode号查找-samefile name 雷同inode号的文件-links n 链接数为n的文件-regex "PATTERN" :以PATTERN匹配整个文件门路,而非文件名依据属主/属组查找 -user USERNAME-group GPPNAME-uid UserId-gid GroupId依据文件类型-type TYPE 空文件或目录-empty 组合条件 -a 与 默认-o 或-not 非排除目录 find /etc -path xx -a -prune -o -name "*.conf"依据文件大小查找-size [+|-]UNIT 压缩和解压缩--针对文件gzipgzip [OPTION] ... FILE ...OPTION: -k keep,保留原文件,CentOS8个性-d 解压缩,相当于gunzip-c 后果输入至规范输入,原文件不变-# 指定压缩比gunzip 打包和解包--针对目录tar tape ARchive 磁带归档能够对目录和多个文件打包一个文件,并能够压缩,保留文件属性,罕用于备份格局tar [OPTION]... FILE ...Main operation mode: -c , --create -t , --list -x , --extract -r, --append 追加Handing of file attributes ...

September 16, 2021 · 1 min · jiezi

关于linux:linux之read命令

从键盘读取变量值,read命令从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令能够一次读取多个变量的值,变量和输出的值都须要应用空格隔开。在read命令前面,如果没有指定变量名,读取的数据将被主动赋值给特定的变量REPLY命令语法read [选项][参数] 命令选项-a 后跟一个变量,该变量会被认为是个数组,而后给其赋值,默认是以空格为宰割符。-d 前面跟一个标志符,其实只有其后的第一个字符有用,作为完结的标记。-p 前面跟提示信息,即在输出前打印提示信息。-e 在输出的时候能够应用命令补全性能。-n 后跟一个数字,定义输出文本的长度,很实用。-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个失常的字符了。-s 宁静模式,在输出字符时不再屏幕上显示,例如login时输出明码。-t 前面跟秒数,定义输出字符的等待时间。-u 前面跟fd,从文件描述符中读入,该文件描述符能够是exec新开启的。命令参数变量:指定读取值的变量名。从规范输出读取输出并赋值给变量> read rumenz123> echo $rumenz123从规范输出读取输出到第一个空格或者回车,将输出的第一个单词放到变量rumenz1中,并将该行其余的输出放在变量rumenz2中。> read rumenz1 rumenz2从规范输出读取一行并赋值给特定变量REPLY。> read123> echo $REPLY123把单词清单读入arrayname的数组里。> read -a arrayname打印提醒(text),期待输出,并将输出存储在REPLY中。> read -p "text:"text:123> echo $REPLY123容许输出蕴含反斜杠。> read -r rumenz指定读取等待时间为3秒。> read -t 2 rumenz从输出中读取两个字符并存入变量var,不须要按回车读取。> read -n 2 rumenz用定界符“:”完结输出行。> read -d ":" rumenz读入数组> read -a rumenz123 456 789> echo ${rumenz[*]}123 456 789终端输出明码时候,不让明码显示进去> read -p "输出明码:" -s pd明码:> echo $pd123456原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站

September 15, 2021 · 1 min · jiezi

关于linux:linux系列之告诉他他根本不懂kill

简介和很多程序员打过交道,这些程序员可能熟知for遍历的好几种写法,然而却对写进去的程序部署的环境无所不知。我敢打赌,在spring boot呈现之后,曾经很少有程序员晓得tomcat到底是怎么运行的了。对于他们来说,运行一个jar包就完事了。 工具的先进性的确带给咱们很多便当,也晋升了程序员的开发效率,同时也升高了程序员的进入门槛。明天想和大家一起讨论一下,linux中的kill命令到底是做什么用的。 可能很很多小伙伴第一次接触kill命令是共事通知他,把过程kill掉。那么kill真的是用来杀过程的吗? 应用kill来杀死过程先来看一个kill最根本,也是最常见的利用就是杀死过程。在杀死过程之前,咱们须要找到这个过程ID。 个别状况下是应用ps命令找到这个过程ID。退出这个过程ID=54321。 那么接下来就能够应用kill 54321来杀死这个过程了。 更资深一点的同学,可能还会应用kill -9 54321来强制杀死这个过程。 有没有更深刻的用法呢?有的,一起来看看。 kill的深刻用法先看一下kill的命令参数到底有那些: kill kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]能够看到kill的参数是sig,也就是信号。也就是说kill的实质是向程序传递信号的。 如果应用 kill -l ,咱们能够失去到底kill能够传递多少信号: kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+338) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX总共64个信号,可能不同的kill版本,信号有所不同,然而基本上都笼罩了罕用的信号。 ...

September 15, 2021 · 2 min · jiezi

关于linux:如何让shell脚本变成可执行文件

在本教程中介绍创立bash脚本并应用chmod命令使脚本可执行,无需脚本后面加上sh或bash命令就能够运行它。创立脚本文件第一步是应用以下命令创立一个扩大名为.sh的新文件: [root@localhost ~]# touch hello_script.sh写一个简略的脚本应用vim编辑器关上新创建的文件,将以下bash脚本增加到文件中: [root@localhost ~]# vim hello_script.sh 上面是增加到文件中的脚本内容: !/bin/bash echo "Hello World"编辑完,保留并退出。如何让shell脚本变成可执行文件如何让shell脚本变成可执行文件 执行Bash脚本有两种办法能够运行bash文件。第一种是通过应用bash或sh命令。另一种将文件增加可执行权限,就能够间接运行。让咱们运行以下命令以应用bash或sh命令执行bash脚本。 [root@localhost ~]# sh hello_script.sh Hello World[root@localhost ~]# bash hello_script.sh Hello World如何让shell脚本变成可执行文件如何让shell脚本变成可执行文件 为脚本文件设置可执行权限执行bash脚本的第二种办法是设置可执行权限。 [root@localhost ~]# chmod +x hello_script.sh 如何让shell脚本变成可执行文件如何让shell脚本变成可执行文件能够看到hello_script.sh文件曾经又x可执行权限了。 执行脚本将可执行权限调配给脚本后,能够不带bash命令间接运行脚本,如下所示: [root@localhost ~]# ./hello_script.sh Hello World如何让shell脚本变成可执行文件如何让shell脚本变成可执行文件 实例在上面的示例中,我将编写并执行一个bash脚本以从源目录到目标目录进行备份: [root@localhost ~]# vim backup_script.sh上面内容粘贴到backup_script.sh文件中。 !/bin/bashTIME=date +%Y_%m_%dDESTINATION=/tmp/backup-$TIME.tar.gzSOURCE=/var/logtar -zcvf $DESTINATION $SOURCE如何让shell脚本变成可执行文件如何让shell脚本变成可执行文件保留脚本文件,并退出。为脚本文件增加可执行权限: [root@localhost ~]# chmod +x backup_script.sh 运行脚本: [root@localhost ~]# ./backup_script.sh 如何让shell脚本变成可执行文件如何让shell脚本变成可执行文件 总结在本教程中介绍创立bash脚本并应用chmod命令使脚本可执行,无需脚本后面加上sh或bash命令就能够运行它。

September 14, 2021 · 1 min · jiezi

关于linux:软件包管理

软件包中的文件类型 二进制文件库文件配置文件帮助文件程序包管理器将编译好的应用程序的各组文件打包成一个或几个程序包文件,利用包管理器快捷的实现程序包的装置、卸载、查问、降级和校验等治理操作支流的包管理器redhat: redhat package managerdebian: deb文件,dpkg包管理器 包命名源代码打包文件name-VERSION.tar.gz|bz2|xzVERSION: major.minor.release rpm包命名形式name-VERION-release.arch.rpmVERSION: major.minor.releaserelease: release.OS 常见的archx86x86_64powerpc跟平台无关:noarch 分类和拆包将一个大的软件分类,放到不同的子包中包的分类 Applition-VERSION-ARCH.rmp 主包Applition-devel-VERSION-ARCH.rmp 开发子包Applition-utils-VERSION-ARCH.rmp 工具子包Applition-libs-VERSION-ARCH.rmp 链接库子包包的依赖解决依赖包管理工具yum: rpm包管理器前端工具dnf:CentOS8代替yumapt:deb包管理器前端工具 获取软件包的路径软件包须要当时将源码进行编译后打包造成,获取包的路径如下 1.零碎发版的光盘和官方网站CentOS 镜像https://www.centos.org/download/http://mirrors.aliyun.comUbuntu镜像http://cdimage.ubuntu.com/releases/http://releases.ubuntu.com2.第三方组织提供Fedora-EPEL:Extra Packages for Enterprise Linuxhttps://fedoraproject.org/wiki/EPELhttps://mirrors.aliyun.com/epel/?spm=a2c6h.13651104.0.0.3bc47dfaZpesAr3.软件我的项目官方站点http://yum.mariadb.org/10.4/centos8-amd64/rpms/4.搜索引擎http://pkgs.orghttp://rpmfind.net5.本人制作包管理器rpm

September 14, 2021 · 1 min · jiezi

关于linux:linux之iconv命令

转换文件的编码方式,iconv命令 是用来转换文件的编码方式的,比方它能够将UTF8编码的转换成GB18030的编码,反过来也行。JDK中也提供了相似的工具native2ascii。Linux下的iconv开发库包含iconv_open,iconv_close,iconv等C函数,能够用来在C/C++程序中很不便的转换字符编码,这在抓取网页的程序中很有用途,而iconv命令在调试此类程序时用得着。命令语法iconv -f encoding [-t encoding] [inputfile]... 命令选项-f encoding :把字符从encoding编码开始转换。-t encoding :把字符转换到encoding编码。-l :列出已知的编码字符汇合-o file :指定输入文件-c :疏忽输入的非法字符-s :禁止正告信息,但不是错误信息--verbose :显示进度信息-f和-t所能指定的非法字符在-l选项的命令外面都列出来了。列出以后反对的字符编码The following list contain all the coded character sets known. This doesnot necessarily mean that all combinations of these names can be used forthe FROM and TO command line parameters. One coded character set can belisted with several different names (aliases). 437, 500, 500V1, 850, 851, 852, 855, 856, 857, 860, 861, 862, 863, 864, 865, 866, 866NAV, 869, 874, 904, 1026, 1046, 1047, 8859_1, 8859_2, 8859_3, 8859_4, 8859_5, 8859_6, 8859_7, 8859_8, 8859_9, 10646-1:1993, 10646-1:1993/UCS4, ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4, ANSI_X3.110-1983, ANSI_X3.110, ARABIC, ARABIC7, ARMSCII-8, ASCII, ASMO-708, ASMO_449, BALTIC, BIG-5, BIG-FIVE, BIG5-HKSCS, BIG5, BIG5HKSCS, BIGFIVE, BRF, BS_4730, CA, CN-BIG5, CN-GB, CN, CP-AR, CP-GR, CP-HU, CP037, CP038, CP273, CP274, CP275, CP278, CP280, CP281, CP282, CP284, CP285, CP290, CP297, CP367, CP420, CP423, CP424, CP437, CP500, CP737, CP770, CP771, CP772, CP773, CP774, CP775, CP803, CP813, CP819, CP850, CP851, CP852, CP855, CP856, CP857, CP860, CP861, CP862, CP863, CP864, CP865, CP866, CP866NAV, CP868, CP869, CP870, CP871, CP874, CP875, CP880, CP891, CP901, CP902, CP903, CP904, CP905, CP912, CP915, CP916, CP918, CP920, CP921, CP922, CP930, CP932, CP933, CP935, CP936, CP937, CP939, CP949, CP950, CP1004, CP1008, CP1025, CP1026, CP1046, CP1047, CP1070, CP1079, CP1081, CP1084, CP1089, CP1097, CP1112, CP1122, CP1123, CP1124, CP1125, CP1129, CP1130, CP1132, CP1133, CP1137, CP1140, CP1141, CP1142, CP1143, CP1144, CP1145, CP1146, CP1147, CP1148, CP1149, CP1153, CP1154, CP1155, CP1156, CP1157, CP1158, CP1160, CP1161, CP1162, CP1163, CP1164, CP1166, CP1167, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, CP1258, CP1282, CP1361, CP1364, CP1371, CP1388, CP1390, CP1399, CP4517, CP4899, CP4909, CP4971, CP5347, CP9030, CP9066, CP9448, CP10007, CP12712, CP16804, CPIBM861, CSA7-1, CSA7-2, CSASCII, CSA_T500-1983, CSA_T500, CSA_Z243.4-1985-1, CSA_Z243.4-1985-2, CSA_Z243.419851, CSA_Z243.419852, CSDECMCS, CSEBCDICATDE, CSEBCDICATDEA, CSEBCDICCAFR, CSEBCDICDKNO, CSEBCDICDKNOA, CSEBCDICES, CSEBCDICESA, CSEBCDICESS, CSEBCDICFISE, CSEBCDICFISEA, CSEBCDICFR, CSEBCDICIT, CSEBCDICPT, CSEBCDICUK, CSEBCDICUS, CSEUCKR, CSEUCPKDFMTJAPANESE, CSGB2312, CSHPROMAN8, CSIBM037, CSIBM038, CSIBM273, CSIBM274, CSIBM275, CSIBM277, CSIBM278, CSIBM280, CSIBM281, CSIBM284, CSIBM285, CSIBM290, CSIBM297, CSIBM420, CSIBM423, CSIBM424, CSIBM500, CSIBM803, CSIBM851, CSIBM855, CSIBM856, CSIBM857, CSIBM860, CSIBM863, CSIBM864, CSIBM865, CSIBM866, CSIBM868, CSIBM869, CSIBM870, CSIBM871, CSIBM880, CSIBM891, CSIBM901, CSIBM902, CSIBM903, CSIBM904, CSIBM905, CSIBM918, CSIBM921, CSIBM922, CSIBM930, CSIBM932, CSIBM933, CSIBM935, CSIBM937, CSIBM939, CSIBM943, CSIBM1008, CSIBM1025, CSIBM1026, CSIBM1097, CSIBM1112, CSIBM1122, CSIBM1123, CSIBM1124, CSIBM1129, CSIBM1130, CSIBM1132, CSIBM1133, CSIBM1137, CSIBM1140, CSIBM1141, CSIBM1142, CSIBM1143, CSIBM1144, CSIBM1145, CSIBM1146, CSIBM1147, CSIBM1148, CSIBM1149, CSIBM1153, CSIBM1154, CSIBM1155, CSIBM1156, CSIBM1157, CSIBM1158, CSIBM1160, CSIBM1161, CSIBM1163, CSIBM1164, CSIBM1166, CSIBM1167, CSIBM1364, CSIBM1371, CSIBM1388, CSIBM1390, CSIBM1399, CSIBM4517, CSIBM4899, CSIBM4909, CSIBM4971, CSIBM5347, CSIBM9030, CSIBM9066, CSIBM9448, CSIBM12712, CSIBM16804, CSIBM11621162, CSISO4UNITEDKINGDOM, CSISO10SWEDISH, CSISO11SWEDISHFORNAMES, CSISO14JISC6220RO, CSISO15ITALIAN, CSISO16PORTUGESE, CSISO17SPANISH, CSISO18GREEK7OLD, CSISO19LATINGREEK, CSISO21GERMAN, CSISO25FRENCH, CSISO27LATINGREEK1, CSISO49INIS, CSISO50INIS8, CSISO51INISCYRILLIC, CSISO58GB1988, CSISO60DANISHNORWEGIAN, CSISO60NORWEGIAN1, CSISO61NORWEGIAN2, CSISO69FRENCH, CSISO84PORTUGUESE2, CSISO85SPANISH2, CSISO86HUNGARIAN, CSISO88GREEK7, CSISO89ASMO449, CSISO90, CSISO92JISC62991984B, CSISO99NAPLPS, CSISO103T618BIT, CSISO111ECMACYRILLIC, CSISO121CANADIAN1, CSISO122CANADIAN2, CSISO139CSN369103, CSISO141JUSIB1002, CSISO143IECP271, CSISO150, CSISO150GREEKCCITT, CSISO151CUBA, CSISO153GOST1976874, CSISO646DANISH, CSISO2022CN, CSISO2022JP, CSISO2022JP2, CSISO2022KR, CSISO2033, CSISO5427CYRILLIC, CSISO5427CYRILLIC1981, CSISO5428GREEK, CSISO10367BOX, CSISOLATIN1, CSISOLATIN2, CSISOLATIN3, CSISOLATIN4, CSISOLATIN5, CSISOLATIN6, CSISOLATINARABIC, CSISOLATINCYRILLIC, CSISOLATINGREEK, CSISOLATINHEBREW, CSKOI8R, CSKSC5636, CSMACINTOSH, CSNATSDANO, CSNATSSEFI, CSN_369103, CSPC8CODEPAGE437, CSPC775BALTIC, CSPC850MULTILINGUAL, CSPC862LATINHEBREW, CSPCP852, CSSHIFTJIS, CSUCS4, CSUNICODE, CSWINDOWS31J, CUBA, CWI-2, CWI, CYRILLIC, DE, DEC-MCS, DEC, DECMCS, DIN_66003, DK, DS2089, DS_2089, E13B, EBCDIC-AT-DE-A, EBCDIC-AT-DE, EBCDIC-BE, EBCDIC-BR, EBCDIC-CA-FR, EBCDIC-CP-AR1, EBCDIC-CP-AR2, EBCDIC-CP-BE, EBCDIC-CP-CA, EBCDIC-CP-CH, EBCDIC-CP-DK, EBCDIC-CP-ES, EBCDIC-CP-FI, EBCDIC-CP-FR, EBCDIC-CP-GB, EBCDIC-CP-GR, EBCDIC-CP-HE, EBCDIC-CP-IS, EBCDIC-CP-IT, EBCDIC-CP-NL, EBCDIC-CP-NO, EBCDIC-CP-ROECE, EBCDIC-CP-SE, EBCDIC-CP-TR, EBCDIC-CP-US, EBCDIC-CP-WT, EBCDIC-CP-YU, EBCDIC-CYRILLIC, EBCDIC-DK-NO-A, EBCDIC-DK-NO, EBCDIC-ES-A, EBCDIC-ES-S, EBCDIC-ES, EBCDIC-FI-SE-A, EBCDIC-FI-SE, EBCDIC-FR, EBCDIC-GREEK, EBCDIC-INT, EBCDIC-INT1, EBCDIC-IS-FRISS, EBCDIC-IT, EBCDIC-JP-E, EBCDIC-JP-KANA, EBCDIC-PT, EBCDIC-UK, EBCDIC-US, EBCDICATDE, EBCDICATDEA, EBCDICCAFR, EBCDICDKNO, EBCDICDKNOA, EBCDICES, EBCDICESA, EBCDICESS, EBCDICFISE, EBCDICFISEA, EBCDICFR, EBCDICISFRISS, EBCDICIT, EBCDICPT, EBCDICUK, EBCDICUS, ECMA-114, ECMA-118, ECMA-128, ECMA-CYRILLIC, ECMACYRILLIC, ELOT_928, ES, ES2, EUC-CN, EUC-JISX0213, EUC-JP-MS, EUC-JP, EUC-KR, EUC-TW, EUCCN, EUCJP-MS, EUCJP-OPEN, EUCJP-WIN, EUCJP, EUCKR, EUCTW, FI, FR, GB, GB2312, GB13000, GB18030, GBK, GB_1988-80, GB_198880, GEORGIAN-ACADEMY, GEORGIAN-PS, GOST_19768-74, GOST_19768, GOST_1976874, GREEK-CCITT, GREEK, GREEK7-OLD, GREEK7, GREEK7OLD, GREEK8, GREEKCCITT, HEBREW, HP-GREEK8, HP-ROMAN8, HP-ROMAN9, HP-THAI8, HP-TURKISH8, HPGREEK8, HPROMAN8, HPROMAN9, HPTHAI8, HPTURKISH8, HU, IBM-803, IBM-856, IBM-901, IBM-902, IBM-921, IBM-922, IBM-930, IBM-932, IBM-933, IBM-935, IBM-937, IBM-939, IBM-943, IBM-1008, IBM-1025, IBM-1046, IBM-1047, IBM-1097, IBM-1112, IBM-1122, IBM-1123, IBM-1124, IBM-1129, IBM-1130, IBM-1132, IBM-1133, IBM-1137, IBM-1140, IBM-1141, IBM-1142, IBM-1143, IBM-1144, IBM-1145, IBM-1146, IBM-1147, IBM-1148, IBM-1149, IBM-1153, IBM-1154, IBM-1155, IBM-1156, IBM-1157, IBM-1158, IBM-1160, IBM-1161, IBM-1162, IBM-1163, IBM-1164, IBM-1166, IBM-1167, IBM-1364, IBM-1371, IBM-1388, IBM-1390, IBM-1399, IBM-4517, IBM-4899, IBM-4909, IBM-4971, IBM-5347, IBM-9030, IBM-9066, IBM-9448, IBM-12712, IBM-16804, IBM037, IBM038, IBM256, IBM273, IBM274, IBM275, IBM277, IBM278, IBM280, IBM281, IBM284, IBM285, IBM290, IBM297, IBM367, IBM420, IBM423, IBM424, IBM437, IBM500, IBM775, IBM803, IBM813, IBM819, IBM848, IBM850, IBM851, IBM852, IBM855, IBM856, IBM857, IBM860, IBM861, IBM862, IBM863, IBM864, IBM865, IBM866, IBM866NAV, IBM868, IBM869, IBM870, IBM871, IBM874, IBM875, IBM880, IBM891, IBM901, IBM902, IBM903, IBM904, IBM905, IBM912, IBM915, IBM916, IBM918, IBM920, IBM921, IBM922, IBM930, IBM932, IBM933, IBM935, IBM937, IBM939, IBM943, IBM1004, IBM1008, IBM1025, IBM1026, IBM1046, IBM1047, IBM1089, IBM1097, IBM1112, IBM1122, IBM1123, IBM1124, IBM1129, IBM1130, IBM1132, IBM1133, IBM1137, IBM1140, IBM1141, IBM1142, IBM1143, IBM1144, IBM1145, IBM1146, IBM1147, IBM1148, IBM1149, IBM1153, IBM1154, IBM1155, IBM1156, IBM1157, IBM1158, IBM1160, IBM1161, IBM1162, IBM1163, IBM1164, IBM1166, IBM1167, IBM1364, IBM1371, IBM1388, IBM1390, IBM1399, IBM4517, IBM4899, IBM4909, IBM4971, IBM5347, IBM9030, IBM9066, IBM9448, IBM12712, IBM16804, IEC_P27-1, IEC_P271, INIS-8, INIS-CYRILLIC, INIS, INIS8, INISCYRILLIC, ISIRI-3342, ISIRI3342, ISO-2022-CN-EXT, ISO-2022-CN, ISO-2022-JP-2, ISO-2022-JP-3, ISO-2022-JP, ISO-2022-KR, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-9E, ISO-8859-10, ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, ISO-10646-UCS-2, ISO-10646, ISO-10646/UCS2, ISO-10646/UCS4, ISO-10646/UTF-8, ISO-10646/UTF8, ISO-CELTIC, ISO-IR-4, ISO-IR-6, ISO-IR-8-1, ISO-IR-9-1, ISO-IR-10, ISO-IR-11, ISO-IR-14, ISO-IR-15, ISO-IR-16, ISO-IR-17, ISO-IR-18, ISO-IR-19, ISO-IR-21, ISO-IR-25, ISO-IR-27, ISO-IR-37, ISO-IR-49, ISO-IR-50, ISO-IR-51, ISO-IR-54, ISO-IR-55, ISO-IR-57, ISO-IR-60, ISO-IR-61, ISO-IR-69, ISO-IR-84, ISO-IR-85, ISO-IR-86, ISO-IR-88, ISO-IR-89, ISO-IR-90, ISO-IR-92, ISO-IR-98, ISO-IR-99, ISO-IR-100, ISO-IR-101, ISO-IR-103, ISO-IR-109, ISO-IR-110, ISO-IR-111, ISO-IR-121, ISO-IR-122, ISO-IR-126, ISO-IR-127, ISO-IR-138, ISO-IR-139, ISO-IR-141, ISO-IR-143, ISO-IR-144, ISO-IR-148, ISO-IR-150, ISO-IR-151, ISO-IR-153, ISO-IR-155, ISO-IR-156, ISO-IR-157, ISO-IR-166, ISO-IR-179, ISO-IR-193, ISO-IR-197, ISO-IR-199, ISO-IR-203, ISO-IR-209, ISO-IR-226, ISO/TR_11548-1, ISO646-CA, ISO646-CA2, ISO646-CN, ISO646-CU, ISO646-DE, ISO646-DK, ISO646-ES, ISO646-ES2, ISO646-FI, ISO646-FR, ISO646-FR1, ISO646-GB, ISO646-HU, ISO646-IT, ISO646-JP-OCR-B, ISO646-JP, ISO646-KR, ISO646-NO, ISO646-NO2, ISO646-PT, ISO646-PT2, ISO646-SE, ISO646-SE2, ISO646-US, ISO646-YU, ISO2022CN, ISO2022CNEXT, ISO2022JP, ISO2022JP2, ISO2022KR, ISO6937, ISO8859-1, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6, ISO8859-7, ISO8859-8, ISO8859-9, ISO8859-9E, ISO8859-10, ISO8859-11, ISO8859-13, ISO8859-14, ISO8859-15, ISO8859-16, ISO11548-1, ISO88591, ISO88592, ISO88593, ISO88594, ISO88595, ISO88596, ISO88597, ISO88598, ISO88599, ISO88599E, ISO885910, ISO885911, ISO885913, ISO885914, ISO885915, ISO885916, ISO_646.IRV:1991, ISO_2033-1983, ISO_2033, ISO_5427-EXT, ISO_5427, ISO_5427:1981, ISO_5427EXT, ISO_5428, ISO_5428:1980, ISO_6937-2, ISO_6937-2:1983, ISO_6937, ISO_6937:1992, ISO_8859-1, ISO_8859-1:1987, ISO_8859-2, ISO_8859-2:1987, ISO_8859-3, ISO_8859-3:1988, ISO_8859-4, ISO_8859-4:1988, ISO_8859-5, ISO_8859-5:1988, ISO_8859-6, ISO_8859-6:1987, ISO_8859-7, ISO_8859-7:1987, ISO_8859-7:2003, ISO_8859-8, ISO_8859-8:1988, ISO_8859-9, ISO_8859-9:1989, ISO_8859-9E, ISO_8859-10, ISO_8859-10:1992, ISO_8859-14, ISO_8859-14:1998, ISO_8859-15, ISO_8859-15:1998, ISO_8859-16, ISO_8859-16:2001, ISO_9036, ISO_10367-BOX, ISO_10367BOX, ISO_11548-1, ISO_69372, IT, JIS_C6220-1969-RO, JIS_C6229-1984-B, JIS_C62201969RO, JIS_C62291984B, JOHAB, JP-OCR-B, JP, JS, JUS_I.B1.002, KOI-7, KOI-8, KOI8-R, KOI8-RU, KOI8-T, KOI8-U, KOI8, KOI8R, KOI8U, KSC5636, L1, L2, L3, L4, L5, L6, L7, L8, L10, LATIN-9, LATIN-GREEK-1, LATIN-GREEK, LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, LATIN6, LATIN7, LATIN8, LATIN9, LATIN10, LATINGREEK, LATINGREEK1, MAC-CENTRALEUROPE, MAC-CYRILLIC, MAC-IS, MAC-SAMI, MAC-UK, MAC, MACCYRILLIC, MACINTOSH, MACIS, MACUK, MACUKRAINIAN, MIK, MS-ANSI, MS-ARAB, MS-CYRL, MS-EE, MS-GREEK, MS-HEBR, MS-MAC-CYRILLIC, MS-TURK, MS932, MS936, MSCP949, MSCP1361, MSMACCYRILLIC, MSZ_7795.3, MS_KANJI, NAPLPS, NATS-DANO, NATS-SEFI, NATSDANO, NATSSEFI, NC_NC0010, NC_NC00-10, NC_NC00-10:81, NF_Z_62-010, NF_Z_62-010_(1973), NF_Z_62-010_1973, NF_Z_62010, NF_Z_62010_1973, NO, NO2, NS_4551-1, NS_4551-2, NS_45511, NS_45512, OS2LATIN1, OSF00010001, OSF00010002, OSF00010003, OSF00010004, OSF00010005, OSF00010006, OSF00010007, OSF00010008, OSF00010009, OSF0001000A, OSF00010020, OSF00010100, OSF00010101, OSF00010102, OSF00010104, OSF00010105, OSF00010106, OSF00030010, OSF0004000A, OSF0005000A, OSF05010001, OSF100201A4, OSF100201A8, OSF100201B5, OSF100201F4, OSF100203B5, OSF1002011C, OSF1002011D, OSF1002035D, OSF1002035E, OSF1002035F, OSF1002036B, OSF1002037B, OSF10010001, OSF10010004, OSF10010006, OSF10020025, OSF10020111, OSF10020115, OSF10020116, OSF10020118, OSF10020122, OSF10020129, OSF10020352, OSF10020354, OSF10020357, OSF10020359, OSF10020360, OSF10020364, OSF10020365, OSF10020366, OSF10020367, OSF10020370, OSF10020387, OSF10020388, OSF10020396, OSF10020402, OSF10020417, PT, PT2, PT154, R8, R9, RK1048, ROMAN8, ROMAN9, RUSCII, SE, SE2, SEN_850200_B, SEN_850200_C, SHIFT-JIS, SHIFT_JIS, SHIFT_JISX0213, SJIS-OPEN, SJIS-WIN, SJIS, SS636127, STRK1048-2002, ST_SEV_358-88, T.61-8BIT, T.61, T.618BIT, TCVN-5712, TCVN, TCVN5712-1, TCVN5712-1:1993, THAI8, TIS-620, TIS620-0, TIS620.2529-1, TIS620.2533-0, TIS620, TS-5881, TSCII, TURKISH8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UCS2, UCS4, UHC, UJIS, UK, UNICODE, UNICODEBIG, UNICODELITTLE, US-ASCII, US, UTF-7, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF7, UTF8, UTF16, UTF16BE, UTF16LE, UTF32, UTF32BE, UTF32LE, VISCII, WCHAR_T, WIN-SAMI-2, WINBALTRIM, WINDOWS-31J, WINDOWS-874, WINDOWS-936, WINDOWS-1250, WINDOWS-1251, WINDOWS-1252, WINDOWS-1253, WINDOWS-1254, WINDOWS-1255, WINDOWS-1256, WINDOWS-1257, WINDOWS-1258, WINSAMI2, WS2, YU查看文件的编码格局> file -i rumenz.txtrumenz.txt: text/plain; charset=gbk将文件rumenz.txt转码,转后文件输入到rumenz123.txt中> iconv rumenz.txt -f GBK -t UTF-8 -o rumenz123.txt没-o那么会输入到规范输入原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站 ...

September 14, 2021 · 6 min · jiezi

关于linux:邀请函共同见证银河麒麟藏文版V10-发布

是的你没看错 河汉麒麟桌面操作系统(藏文版)V10 首发震撼来袭! 无关藏文版背地的开发故事,你是否想要理解? 此刻,诚邀您返回聆听麒麟团队的声音-- 扫一扫,立刻报名参会! 嘉宾·阵容 四位工程院/科学院院士 十余名湖南、西藏地区领导/专家代表 以及国防科技大学代表、麒麟软件代表 一起见证河汉麒麟(藏文版)公布! 工夫·地点 9月19日 9:00-10:30 长沙世纪金源大酒店 3 楼长沙厅 (湖南省长沙市开福区金泰路 199 号) 会议·议程 本次发布会将为大家介绍和展现河汉麒麟桌面操作系统(藏文版)的研发初衷、设计理念、定制 UI、专利利用等等,研发团队通过 18 个月精心打造进去的一款少数民族语言操作系统,带您领略科技与文化的完满交融! 还在等什么,快扫描点击报名参会吧!

September 14, 2021 · 1 min · jiezi

关于linux:etcgroup文件详解

Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有对于系统管理员对用户和用户组治理时相干的文件。linux /etc/group文件是有对于系统管理员对用户和用户组治理的文件,linux用户组的所有信息都寄存在/etc/group文件中。具备某种独特特色的用户集合起来就是用户组(Group)。用户组(Group)配置文件次要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件。 将用户分组是Linux零碎中对用户进行治理及管制拜访权限的一种伎俩。每个用户都属于某个用户组;一个组中能够有多个用户,一个用户也能够属于不 同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其余组称为附加组。用户组的所有信息都寄存在/etc/group文件中。此文件的格局是由冒号(:)隔开若干个字段,这些字段具体如下:组名:口令:组标识号:组内用户列表具体解释:组名:组名是用户组的名称,由字母或数字形成。与/etc/passwd中的登录名一样,组名不应反复。口令:口令字段寄存的是用户组加密后的口令字。个别Linux零碎的用户组都没有口令,即这个字段个别为空,或者是*。组标识号:组标识号与用户标识号相似,也是一个整数,被零碎外部用来标识组。别称GID.组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。应用实例:输入: [root@localhost test6]# cat /etc/grouproot0:root,linuxsirbin1:root,bin,daemondaemon2:root,bin,daemonsys3:root,bin 阐明:咱们以root:x:0:root,linuxsir 为例: 用户组root,x是明码段,示意没有设置明码,GID是0,root用户组下包含root、linuxsir以及GID为0的其它用户。

September 14, 2021 · 1 min · jiezi

关于linux:Linux环境下安装Nginx

一、筹备工作装置依赖项 yum -y install pcre-devel yum -y install openssl openssl-develyum -y install gcc-c++下载 nginx 安装包 下载地址 这里下载的是 nginx-1.20.1.tar.gz 安装包,并放到 root 目录在 /usr/local/ 下创立 nginx 文件夹 cd /usr/local/ mkdir nginx cd nginx二、解压将 nginx 安装包解压到 /usr/local/nginx tar -zxvf /root/nginx-1.20.1.tar.gz -C ./ 解压完之后, /usr/local/nginx ⽬录中会呈现⼀个 nginx-1.20.1 目录 三、编译装置进入 nginx-1.20.1 目录,执行上面命令,编译装置 cd nginx-1.20.1 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_modulemake && make install四、启动nginx留神其配置⽂件位于 /usr/local/nginx/conf/nginx.conf启动 nginx 服务 /usr/local/nginx/sbin/nginx停⽌ nginx 服务 /usr/local/nginx/sbin/nginx -s stop批改了配置⽂件后想从新加载 nginx /usr/local/nginx/sbin/nginx -s reload

September 14, 2021 · 1 min · jiezi

关于linux:文件查找和压缩

查找文件find -- 实时查找工具,通过遍历指定门路实现文件查找特点:查找速度略慢准确查找,查找条件丰盛实时查找 格局find [OPTION] ... [查找门路] [条件] [解决动作]查找门路默认为 以后门路查找条件--能够是文件名、大小、类型、权限等规范,默认是所有文件解决动作--对符合条件的文件做操作,默认是输入至屏幕 查找条件 -name 反对应用glob,通配符要用双引号引起来-iname 不辨别大小写-inum n inode号查找-samefile name 雷同inode号的文件-links n 链接数为n的文件-regex "PATTERN" :以PATTERN匹配整个文件门路,而非文件名依据属主/属组查找 -user USERNAME-group GPPNAME-uid UserId-gid GroupId依据文件类型-type TYPE 空文件或目录-empty 组合条件 -a 与 默认-o 或-not 非排除目录 find /etc -path xx -a -prune -o -name "*.conf"依据文件大小查找-size [+|-]UNIT 压缩和解压缩--针对文件gzipgzip [OPTION] ... FILE ...OPTION: -k keep,保留原文件,CentOS8个性-d 解压缩,相当于gunzip-c 后果输入至规范输入,原文件不变-# 指定压缩比gunzip 打包和解包--针对目录tar tape ARchive 磁带归档能够对目录和多个文件打包一个文件,并能够压缩,保留文件属性,罕用于备份格局tar [OPTION]... FILE ...Main operation mode: -c , --create -t , --list -x , --extract -r, --append 追加Handing of file attributes ...

September 13, 2021 · 1 min · jiezi

关于linux:断网情况下安装及配置-Anaconda

有时候,因为某些十分好受的起因,须要不联网应用 Anaconda。 咱们假如一种状况,曾经装置了最新版的 Anaconda(Python 3.7),地位在 /home/anaconda3/,并且曾经配置好了 .bashrc。这时候咱们须要装置 Python 3.6,而且咱们仍旧须要抉择借助 Anaconda 来装置 Python,因为须要额定装置的包切实是太多。 传统状况下,如果有网,那真是太简略了,间接 create 一个新的 conda 环境即可,例如: conda create -n py36 python=3.6但当初的问题是没有网,所以这个办法齐全行不通。那么咱们要做的,就是再离线装置一次 Anaconda,并且让它和已有的共存。具体该怎么做呢? 1、抉择并下载指定版本的安装包这里就不能装置官网首页提供的最新版了,咱们须要找到 Anaconda 版本号与搭配的 Python 版本的对应关系。具体能够在这个网站中找到。理论能够看到这个列表很简单,不同的版本可能会对应多个 Python 版本号。这里基本上对应最高的版本号就是这个版本搭配的 Python 版本。比方 Anaconda 5.x.0,对应多个题目(仅关注 64-bit Linux with Python 3.x)。 其中,Anaconda 5.0.0 对应 Python 3.5 和 3.6,能够了解为这个版本自带的 Python 就是 3.6(按最高的版本号算)。 而后,Anaconda 5.3.0 就变成了 3.6 和 3.7,能够了解为从这一版本开始,Anaconda 自带的 Python 曾经更新到了 3.7。 指定版本的下载链接能够在这里找到。 2、装置第二个 Anaconda开始装置,然而要留神批改装置地位(也就是看完后面的大段文字,并输出 yes 之后那里,要输出新的地址),不要笼罩了第一个(因为默认门路可能都是 anaconda3),比方能够写成 anaconda36,示意对应 Python 3.6。而后开始装置,并且在最初容许其批改 .bashrc。 ...

September 13, 2021 · 1 min · jiezi

关于linux:Caddy-一个强大Api-Server-一键Https-反向代理服务器

Caddy 一个弱小、Api Server, 一键Https, 反向代理服务器官网: https://caddyserver.com/docs ApiServer创立一个文件 Caddyfile运行命令 caddy start提醒装置证书 容许或回绝 (一键Https)关上浏览器 https:localhost 或 http:localhostadmin api http://localhost:2019 localhost { respond "Hello, world!"}file server如下包含 encode zstd gziptemplates 能够解析html 模板内的一些语法file_server 开启文件服务器 localhost { encode zstd gzip templates file_server browse} 玩点花的开启文件服务器到 80端口8080 端口拜访 hello 返回字符串8081 反向代理 8080 端口8082 只开启 http8083 只开启 https localhost { encode zstd gzip templates file_server browse}localhost:8080 { respond /health-check 200 respond /hello "Hello, world! 8080" 200}localhost:8081 { reverse_proxy https://localhost:8080}http://localhost:8082 { reverse_proxy https://localhost:8080}https://localhost:8083 { reverse_proxy https://localhost:8080} ...

September 13, 2021 · 1 min · jiezi

关于linux:linux之chroot命令

把根目录换成指定的目标目录补充阐明chroot 命令 用来在指定的根目录下运行指令。chroot,即 change root directory (更改 root 目录)。在 linux 零碎中,零碎默认的目录构造都是以/,即是以根 (root) 开始的。而在应用 chroot 之后,零碎的目录构造将以指定的地位作为/地位。 在通过 chroot 命令之后,零碎读取到的目录和文件将不在是旧零碎根下的而是新根下(即被指定的新的地位)的目录构造和文件,因而它带来的益处大抵有以下 3 个: 减少了零碎的安全性,限度了用户的势力: 在通过 chroot 之后,在新根下将拜访不到旧零碎的根目录构造和文件,这样就加强了零碎的安全性。这个个别是在登录 (login) 前应用 chroot,以此达到用户不能拜访一些特定的文件。 建设一个与原零碎隔离的系统目录构造,不便用户的开发: 应用 chroot 后,零碎读取的是新根下的目录和文件,这是一个与原零碎根下文件不相干的目录构造。在这个新的环境中,能够用来测试软件的动态编译以及一些与零碎不相干的独立开发。 切换零碎的根目录地位,疏导 Linux 系统启动以及急救零碎等: chroot 的作用就是切换零碎的根地位,而这个作用最为显著的是在零碎初始疏导磁盘的处理过程中应用,从初始 RAM 磁盘 (initrd) 切换零碎的根地位并执行真正的 init。另外,当零碎呈现一些问题时,咱们也能够应用 chroot 来切换到一个长期的零碎。命令格局> chroot(选项)(参数)命令选项--help:在线帮忙;--version:显示版本信息。命令参数目录:指定新的根目录;指令:指定要执行的指令。实例将 target 作为根目录(运行其中的/bin/sh): chroot target /bin/sh这里, target 是 busybox 装置好的门路,相似一个文件系统蕴含了许多工具。这样,将会进入一个 shell 界面,这个 shell 以 target 为根。运行 exit 退出该 shell 又返回原来的本机环境了,也能够应用 Ctrl+D。 留神: 根用户才行如果间接 chroot target 默认寻找 target 的 / bin/bash. 这会以 target 作为根目录将 target 作为根目录 (运行其中的/bin/ls):chroot target /bin/ls这里,target 是 busybox 装置好的门路,相似一个文件系统蕴含了许多工具。这样运行的是 target 中的 ls(不是本机的/bin/ls),而后返回立刻本机的目录环境。 ...

September 12, 2021 · 1 min · jiezi

关于linux:苹果渠道垄断地位宣告瓦解Linux-发行版CutefishOSFlutter-25-正式发布-思否周刊

40s 新闻速递美团在上海等地试点用数字人民币收费骑单车考察显示仅 10% 苹果用户无意降级到 iPhone 13亚马逊将为 75 万名小时工全额领取大学学费MongoDB 市值暴涨,将成为有史以来价值最高的上市开源公司苹果渠道垄断位置宣告瓦解,30% 过路税成为历史光明日报:“996”是互联网行业用工史上的一段弯路腾讯:“共同富裕专项打算”500亿元资金首期开始落地谷歌语音助手遭欧盟反垄断考察Amazon Elasticsearch Service 更名为 Amazon OpenSearch ServiceLinux 发行版新秀:CutefishOSOpenSSL 3.0 正式公布Flutter2.5 正式公布Netty 4.1.68.Final 公布JetBrains 推出全新数据迷信 IDE —— DataSpell行业资讯美团在上海等地试点用数字人民币收费骑单车9 月 9 日起至 12 月 31 日,上海市民关上美团 App 搜寻“数字人民币”,实现报名即可支付 10 元数字人民币红包,用于领取美团单车骑行费用,之后再骑行还能额定取得相应的数字人民币低碳红包处分,用于更多低碳出行。据理解,此次流动由美团联结中国农业银行、中国邮政储蓄银行、中国建设银行独特发动,面向北京、上海、深圳、海南、长沙、苏州、西安、成都、雄安新区等9大数字人民币试点地区居民收费发放数字人民币低碳出行红包。 考察显示仅 10% 苹果用户无意降级到 iPhone 13Savings.com 对 1500 名苹果用户的考察显示,64% 受访者不打算降级到 iPhone 13,26% 受访者示意仍未决定,只有 10% 的受访者示意有趣味会降级。 亚马逊将为 75 万名小时工全额领取大学学费据报道,亚马逊周四示意,将全额赞助该公司在全美的 75 万名小时工的大学费用。 面临待业市场缓和的现状,其余美国大企业此前也纷纷通过教育贴补或进步薪酬的形式吸引员工。 亚马逊示意,从明年 1 月起,只有是聘用工夫超过 90 天的经营网络小时工,都能够享受公司对大学学杂费和课本费的全额赞助。该公司还将开始为员工的高中文凭课程、GED 和英语二语认证提供赞助。经营网络小时工包含在亚马逊宏大的仓库网络和配送中心里工作的员工。 这项福利实用于全美数百所教育机构。亚马逊之前曾经承诺通过职业抉择我的项目,为小时工提供 95% 的学杂费和课本费赞助。 MongoDB 市值暴涨,将成为有史以来价值最高的上市开源公司上周,MongoDB 颁布了其截至 2021 年 7 月 31 日的第二季度财报。据财报数据显示,该公司在 2022 财年第二季度总收入为 1.99 亿美元,同比增长 44%。客户继续强劲增长,截至 7 月 31 日,客户总数超过 29000 家;MongoDB Atlas 支出同比增长 83%;占第二季度总收入的 56%。 ...

September 12, 2021 · 2 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/...微信公众号:入门小站

September 11, 2021 · 1 min · jiezi

关于linux:03kubernetes笔记-Pod控制器二-Deployment

Deployment简介Deployment 为 Pod 和 ReplicaSet 提供了一个申明式定义 (declarative) 办法,用来代替以前的ReplicationController 来不便的治理利用。典型的利用场景包含;定义 Deployment 来创立 Pod 和 ReplicaSet 滚动降级和回滚利用扩容和缩容暂停和持续 DeploymenDeployment 无状态服务最罕用的Pod管理器Deployment 理论是治理ReplicaSet Deployment默认会保留10个ReplicaSet历史版本 Deployment 会把ReplicaSet之前个版本的正本数批改为0 Deployment 字段格局apiVersion: apps/v1 #API群组及版本kind: Deployment #资源类型特有标识metadata: name <string> #资源名称,在作用域中要惟一 namespace <string> #名称空间;Deployment附属名称空间级别spec: minReadySeconds <integer> #Pod就绪后多少秒内任一容器无crash方可视为“就绪” replicas <integer> #冀望的Pod正本数,默认为1 selector <object> #标签选择器,必须匹配template字段中Pod模板中的标签 template <object> #Pod模板对象 revisionHistoryLimit <integer> #滚动更新历史记录数量,默认为10 strategy <0bject> #滚动更新策略 type <string> #滚动更新类型,可用值有Recreate和Rollingupdate; Recreate 重建更新一次性删除所有Pod;Rollingupdate 滚动更新默认策略 rollingUpdate <0bject> #滚动更新参数,专用于RollingUpdate类型 maxSurge <string> #更新期间可比冀望的Pod数量多出的数量或比例 maxUnavailable <string> #更新期间可比冀望的Pod数量短少的数量或比例 progressDeadlineSeconds <integer> # 滚动更新故障超时时长,默认为600秒 paused <boolean> #是否暂停部暑过程示例1: 创立Deployment控制器 Pod正本数为4[root@k8s-master PodControl]# cat deployment-demo.yaml apiVersion: apps/v1kind: Deploymentmetadata: name: deployment-demospec: replicas: 4 #正本数来4 selector: matchLabels: app: demoapp release: stable template: metadata: labels : app: demoapp release: stable spec: containers: - name: demoapp image: ikubernetes/demoapp:${VERSION} ports: - containerPort: 80 name: http[root@k8s-master PodControl]# kubectl apply -f deployment-demo.yaml deployment.apps/deployment-demo created[root@k8s-master PodControl]# VERSION=v1.0 envsubst < deployment-demo.yaml |kubectl apply -f -deployment.apps/deployment-demo created[root@k8s-master PodControl]# kubectl get deploymentNAME READY UP-TO-DATE AVAILABLE AGEdeployment-demo 4/4 4 4 54s#能够看到创立了同名的rs deployment理论治理的是rs而不是Pod#名称中的 fb544c5d8 是通过配置文的生成的hash值,当查看到配置文件hash值变动就会启到更新[root@k8s-master PodControl]# kubectl get rsNAME DESIRED CURRENT READY AGEdeployment-demo-fb544c5d8 4 4 4 56s [root@k8s-master PodControl]# kubectl get podNAME READY STATUS RESTARTS AGEdeployment-demo-fb544c5d8-kz8fn 1/1 Running 0 58sdeployment-demo-fb544c5d8-p6q4v 1/1 Running 0 58sdeployment-demo-fb544c5d8-ttjmt 1/1 Running 0 58sdeployment-demo-fb544c5d8-x2lqw 1/1 Running 0 58s[root@k8s-master PodControl]# kubectl describe deployment/deployment-demoName: deployment-demoNamespace: defaultCreationTimestamp: Mon, 16 Aug 2021 16:17:28 +0800Labels: <none>Annotations: deployment.kubernetes.io/revision: 1Selector: app=demoapp,release=stableReplicas: 4 desired | 4 updated | 4 total | 4 available | 0 unavailableStrategyType: RollingUpdate #能够看到默认的更新策略MinReadySeconds: 0RollingUpdateStrategy: 25% max unavailable, 25% max surge #默认的更新比例为 25%更新deployment rollout命令查看状态[root@k8s-master PodControl]# kubectl rollout --help #查看张帮忙选项Manage the rollout of a resource. Valid resource types include: #能够更新的资源类型 * deployments * daemonsets * statefulsetsExamples: # Rollback to the previous deployment kubectl rollout undo deployment/abc # Check the rollout status of a daemonset kubectl rollout status daemonset/fooAvailable Commands: history View rollout history #历史记录 pause Mark the provided resource as paused #暂停 restart Restart a resource #重启 resume Resume a paused resource #复原临时资源 status Show the status of the rollout #查看资源更新状态 undo Undo a previous rollout #版本回退[root@k8s-master PodControl]# VERSION=v1.1 envsubst < deployment-demo.yaml |kubectl apply -f -deployment.apps/deployment-demo configured[root@k8s-master PodControl]# kubectl rollout status deployment/deployment-demodeployment "deployment-demo" successfully rolled out #查看更新状态胜利[root@k8s-master PodControl]# kubectl get deploymentNAME READY UP-TO-DATE AVAILABLE AGEdeployment-demo 4/4 4 4 2[root@k8s-master PodControl]# kubectl get rsNAME DESIRED CURRENT READY AGEdeployment-demo-867c7d9d55 4 4 4 6m5sdeployment-demo-fb544c5d8 0 0 0 25m #旧版本正本数为0[root@k8s-master PodControl]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESdeployment-demo-867c7d9d55-d6xvt 1/1 Running 0 6m55s 10.244.1.229 k8s-node1 <none> <none>deployment-demo-867c7d9d55-l65z9 1/1 Running 0 6m47s 10.244.2.209 k8s-node2 <none> <none>deployment-demo-867c7d9d55-vhs6t 1/1 Running 0 6m55s 10.244.3.56 k8s-node3 <none> <none>deployment-demo-867c7d9d55-zc8dm 1/1 Running 0 6m43s 10.244.1.230 k8s-node1 <none> <none>[root@k8s-master PodControl]# curl 10.244.1.229iKubernetes demoapp v1.1 !! ClientIP: 10.244.0.0, ServerName: deployment-demo-867c7d9d55-d6xvt, ServerIP: 10.244.1.229!在次更新应用 kubectl rollout status查看更新状态状 ...

September 11, 2021 · 7 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/...微信公众号:入门小站

September 10, 2021 · 1 min · jiezi

关于linux:图像文字提取功能

实现图像文字提取性能零碎:macOS 相干教程:https://segmentfault.com/a/11... 一、装置软件# 根本装置brew install tesseract# 装置tesseract的同时装置训练工具brew install --with-training-tools tesseract # 装置tesseract的同时装置所有语言,语言包比拟大,如果装置的话工夫较长,倡议不装置,按需抉择brew install --all-languages tesseract # 装置tesseract,并装置训练工具和语言brew install --all-languages --with-training-tools tesseract 二、查看装置# 装置后软件地位/usr/local/Cellar# 语言库地址https://github.com/tesseract-ocr/tessdata# 语言包地位/usr/local/Cellar/tesseract/4.0.0_1/share/tessdata进入语言库下载简体中文并放到语言包地位 三、测试输出 tesseract 测试是否装置胜利 测试图片辨认 tesseract + 图片门路 + 保留后果名 + -l 语言集原图片 辨认后 感觉随随便便吧,然而性能实现了,该进去的都进去了 不定期更新:Github

September 10, 2021 · 1 min · jiezi

关于linux:virtual-box搭建虚拟机nat和host-only网络配置实用

一、背景最近本人在学习一些技术,在学习的过程中发现有写技术须要搭建集群环境,然而本人本地没有那么多的机器,购买云主机又比拟贵,因而就想着搭建几台虚拟机来学习。本文次要记录一下,在 virtual box 中虚拟机网络的配置。 二、需要1、在虚拟机中能够连贯外网 。2、宿主机和虚拟机之间能够互通。 3、虚拟机和虚拟机之间能够互通。 二、设置虚拟机的网络1、创立一个全局的nat网络 2、增加主机网络管理器 3、设置虚拟机网络1、网卡1设置nat网络 2、网卡2设置主机网络 4、启动虚拟机设置虚拟机ip设置动态ip vi /etc/sysconfig/network-scripts/ifcfg-enp0s8enp0s8:这个是网卡的名字,就是上方图中红框的名字。ifcfg-enp0s8 这个配置文件可能没有,然而咱们能够从 ifcfg-enp0s3 这个复制。复制的时候,须要留神,配置文件中有个UUID的值,这个值须要批改,不能统一。配置好后,重启网卡 service network restart5、测试是否能够连贯外网 6、宿主机拜访虚拟机 到此就配置好了,在 virtual box 中虚拟机的网络。

September 10, 2021 · 1 min · jiezi

关于linux:Linux服务器安装MySQL80

服务器装置MySQL服务器应用CentOS7 数据库装置查看是否有装置MySQL yum list installed | grep mysql下载MySQL安装包,这里下载的是8.0 wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm应用yum装置rpm包 yum -y install mysql80-community-release-el7-2.noarch.rpm装置MySQL服务,过程比较慢,须要下载 yum -y install mysql-community-serverMySQL配置启动MySQL服务,记得是mysqld systemctl start mysqld.service查看MySQL运行状态 systemctl status mysqld.service● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 三 2021-07-28 16:44:56 CST; 1min 26s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 17913 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 18001 (mysqld) Status: "Server is operational" CGroup: /system.slice/mysqld.service └─18001 /usr/sbin/mysqld7月 28 16:44:47 VM-12-5-centos systemd[1]: Starting MySQL Server...7月 28 16:44:56 VM-12-5-centos systemd[1]: Started MySQL Server.重启/进行服务 ...

September 10, 2021 · 1 min · jiezi

关于linux:Linux服务器配置Nginx

服务器配置Nginx服务器应用CentOS7 下载Nginx形式一:本地下载进入官网:https://nginx.org/en/download...找到 Stable version ,为稳固版本应用scp上传到服务器 scp /path/filename username@servername:/path;形式二:应用wget下载进入到服务器,应用wget下载到服务器 #版本可自行调整wget -c https://nginx.org/download/nginx-1.20.1.tar.gz装置依赖 #gcc装置,nginx源码编译须要yum install gcc-c++ #PCRE pcre-devel 装置,nginx 的 http 模块应用 pcre 来解析正则表达式yum install -y pcre pcre-devel #zlib装置,nginx 应用zlib对http包的内容进行gzipyum install -y zlib zlib-devel #OpenSSL 装置,弱小的安全套接字层明码库,nginx 不仅反对 http 协定,还反对 https(即在ssl协定上传输http)yum install -y openssl openssl-devel装置进入服务器,找到下载的Nginx lsnginx-1.20.1.tar.gz解压文件到你想要的目录 # /usr/nginx 文件须要本人创立tar -zxvf nginx-1.20.1.tar.gz -C /usr/nginx# 进入到解压的文件目录cd /usr/nginxlsnginx-1.20.1进入目录 cd nginx-1.20.1/lsauto CHANGES CHANGES.ru conf configure contrib html LICENSE man README sr应用默认配置 ./configure编译装置 makemake install查看装置门路 whereis nginxnginx: /usr/local/nginxNginx基本操作 ...

September 10, 2021 · 1 min · jiezi

关于linux:Linux服务器安装JDK环境

服务器装置JDK环境服务器应用CentOS7 本地上传文件到服务器控制台输出 scp /path/filename username@servername:/path;进入到服务器找一个地位创立java文件夹解压上传的jdk压缩包到创立的文件夹cd /usrlsbin etc games include java lib lib64 libexec local mpi sbin share src tmpcd javalsjdk1.8.0_301 jdk-8u301-linux-x64.tar.gzcd jdk1.8.0_301/lsbin javafx-src.zip legal man src.zipCOPYRIGHT jmc.txt lib README.html THIRDPARTYLICENSEREADME-JAVAFX.txtinclude jre LICENSE release THIRDPARTYLICENSEREADME.txt应用vi编辑环境 vi /etc/profile#在最初增加变量export JAVA_HOME=/usr/java/jdk1.8.0_301export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}#应用:wq强制保留刷新配置文件 source /etc/profile查看是否配置胜利 java -versionjava version "1.8.0_301"Java(TM) SE Runtime Environment (build 1.8.0_301-b09)

September 10, 2021 · 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/...微信公众号:入门小站

September 9, 2021 · 1 min · jiezi

关于linux:Linux-shell-基本正则-扩展正则表达式

正则表达式,又称规定表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些合乎某个模式(规定)的文本。应用 "一串符号"来形容有独特属性的数据 一、根本正则列表与扩大正则依据推出工夫的不同,分为根本正则和扩大正则,扩大正则在根本正则的根底上做了一些优化新增了一些正则表白符号,因为一些命令没有及时更新,所以你可能会遇到有些命令只反对根本正则,不反对扩大正则,或者须要增加一些反对扩大正则的选项。 根本正则列表 扩大正则列表 行首尾及单字匹配 未定匹配次数 + ? 为扩大正则 {}限定次数 扩大正则限定表达式的匹配次数{n}、{n,m}、{n,} []范畴内单字匹配 匹配指定字符汇合内的任何一个字符[]内^可取反整体及边界匹配 | 为扩大正则

September 8, 2021 · 1 min · jiezi

关于linux:Linux查看最近登录成功失败的用户信息

罕用的几个Linux查看最近登录胜利/失败的用户信息举荐应用命令last 、 w -i 能够查看到比拟具体的登陆信息 登陆工夫,闲置工夫 登陆终端 闲置工夫等 [root@server06 ~]# last chen pts/1 ip-10-0-7-27.ap- Tue May 19 16:45 still logged incase pts/2 ip-10-0-7-27.ap- Tue May 19 10:22 - 10:24 (00:01)[root@server06 ~]# w -i 18:05:01 up 1 day, 11:04, 5 users, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 10.0.7.27 16:47 5.00s 0.07s 0.00s w -i1.Linux users查看在线用户 [root@server06 ~]# users case root chen2.Linux who查看在线用户并显示终端、工夫、登陆地址等信息显示零碎中有哪些使用者正在下面,显示的材料蕴含了使用者 ID、应用的终端机、从哪边连上来的、上线工夫、僵滞工夫、CPU 使用量、动作等等讲参数阐明: ...

September 8, 2021 · 2 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/...微信公众号:入门小站 ...

September 8, 2021 · 1 min · jiezi

关于linux:Manjaro常用操作

Manjaro罕用操作系统管理systemctl reboot #重启磁盘操作df -h #残余磁盘空间du -sh #已用磁盘空间#ZFS操作zpool add elshv cache /dev/nvme1n1 #将nvme1n1设置为l2arczpool remove elshv nvme1n1 #删除nvme1n1vim /etc/modprobe.d/zfs.conf #设置arc大小,zfs_arc_max为大小,1GB=1073741824。zpool status #查看池与缓存的状态#ZFS操作#Btrfs操作duperemove -dr / #文件去重btrfs filesystem defragment -r -v -czstd / #压缩现存文件(To apply compression to existing files)compsize -x / #查看压缩状况#Btrfs操作sudo smartctl -x /dev/sdb #SSD寿命治理软件装置与卸载snap install freac #装置音频转码软件freacvmware-installer -u vmware-workstation #卸载vmwarepacman -S playonlinux #装置playonlinuxpacman -S simplescreenrecorder #装置录屏软件simplescreenrecorderpacman -S sct #装置屏幕色温设置软件yay -Syu #降级所有包pacman -Syu #降级所有包平安删除外置存储sudo umount /mnt/Bsudo eject /sdcsudo udisksctl power-off -b /dev/sdcTroubleshotsFailed to start Load Kernel Modules. ...

September 8, 2021 · 2 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/...微信公众号:入门小站

September 7, 2021 · 1 min · jiezi

关于linux:高效协作的春天飞书-for-Linux-上架优麒麟

办公环境再降级!字节跳动旗下先进企业合作与治理平台-- 飞书 for Linux 上架优麒麟,原生利用接踵而至,Linux 用户高效合作的春天未然降临。 飞书,将即时沟通、日历、云文档、云盘和工作台深度整合,通过凋谢兼容的平台,让成员在一处即可实现高效的沟通和晦涩的合作,全方位晋升企业效率。为不便用户下载应用飞书,小优照例为大家筹备了两种装置形式: 装置形式 装置前筹备: 未装置优麒麟的用户能够点击链接返回官网下载镜像: https://www.ubuntukylin.com/d... 已装置 20.04 和 20.04 Pro 正式版的用户通过以下形式进行源更新: $ sudo apt update 一、通过麒麟软件商店装置 关上麒麟软件商店搜寻“飞书”,单击进入软件详情页面,点击“下载”并实现装置。随后即可在开始菜单关上,还能够右键抉择“发送快捷方式至桌面”。 二、通过命令行装置 右键关上终端,输出命令: $ sudo apt install bytedance-feishu-stable加载实现后在开始菜单关上“飞书”进行体验。 装置介绍就到这里,Linux 版飞书让重视协同办公的用户们又多了一项抉择,置信在不久之后 Linux 的生态会迎来更大的飞跃!飞书的飞阅会、OKR 等多种弱小性能还需大家一起返回优麒麟摸索,小优曾经急不可待了,你还在等什么呢?

September 7, 2021 · 1 min · jiezi

关于linux:如何统计一个目录下的文件数量

背景在Linux零碎下,可能会统计文件数量。思路能够利用ls 递归的查问所有文件数量,而后应用grep剔除目录文件;最初应用wc统计行数。 具体操作ls -lR |grep "^-"|wc -l 后果会返回所有文件行数。

September 7, 2021 · 1 min · jiezi

关于linux:Linus-TorvaldsGitHub-创建了绝对无用的垃圾合并

2020 年 8 月,一家从事各种存储技术的公司 Paragon 高调发表,他们的 NTFS 读写驱动在作为商业驱动提供给那些须要在 Linux 上对微软文件系统进行牢靠反对的用户多年后,将在 Linux 内核中进行主线开发。 据理解,在通过屡次订正后,Paragon 于几日前为其 NTFS 读/写驱动程序提交了一个拉动申请,被称为 NTFS3,用于行将到来的 Linux 5.15 内核。 Paragon "NTFS3"内核驱动为微软的 NTFS 文件系统提供了比其余内核或 FUSE 选项更好的读/写反对,以便在 Linux 上反对这种文件系统。 然而,Linux 的负责人 Linus Torvalds 对此申请十分不称心,他的偏见并不是针对于软件包的拉动申请,而是对于其中的 GitHub 合并提交: GitHub 创立了相对无用的垃圾合并,你永远不应该应用 GitHub 接口来合并任何货色。 GitHub 是一个完满的托管网站,它在其余很多方面做的也很杰出,但“合并”绝不是其中之一。 Linux 内核合并须要 正确 地进行,这意味着要有适当的提交信息,其中要蕴含无关被合并的内容和 为什么 合并的内容。但这也意味着适当的作者和提交者信息等。而所有这些都被 GitHub 齐全搞砸了。 邮件的最初,Torvalds 提到了当波及 Linux 内核的合并时,他更偏向于用什么来代替 GitHub。为了继续开发,Torvalds 认为要做更正确更适宜的事件,这意味着从命令行进行合并,而不是应用齐全破碎的 GitHub Web 界面。 邮件详情请点击【此处】

September 7, 2021 · 1 min · jiezi

关于linux:学习Linux-tar-命令最简单也最困难

摘要:在本文中,您将学习与tar 命令一起应用的最罕用标记、如何创立和提取 tar 存档以及如何创立和提取 gzip 压缩的 tar 存档。本文分享自华为云社区《Linux 中的 Tar 命令:压缩和提取文件,学会了吗》,作者:Tiamo_T 。 Linux tar 命令如何工作?tar 命令用于创立 .tar、.tar.gz、.tgz 或 tar.bz2 档案,通常称为“tarball”。扩展名 .tar.gz 和 .tgz 用于辨认应用 gzip 压缩生成的档案,以缩小档案的大小。 扩大名为 .tar.bz2 的档案是应用 bzip2 压缩生成的。 Linux 发行版提供 tar 二进制文件,无需外部命令的帮忙即可反对 gzip 压缩。正如咱们将在本文中看到的那样,这可能不适用于其余类型的压缩。 让咱们从tar命令的三个示例开始,以相熟最常见的标记。 创立一个蕴含两个文件的存档这是 tar 命令的根本示例,在这种状况下咱们不应用压缩: tar -cf archive.tar testfile1 testfile2此命令创立一个名为 archive.tar 的存档文件,其中蕴含两个文件:testfile1 和 testfile2。 这是两个标记的含意: -c(与-create 雷同):创立一个新存档-f:它容许指定一个存档文件(在这种状况下称为archive.tar)file 命令确认 archive.tar 是一个存档: [myuser@localhost]$ file archive.tar archive.tar: POSIX tar archive (GNU)另一个有用的标记是-v标记,它提供在 Linux 上执行tar命令期间解决的文件的具体输入。 如果咱们在创立存档时也传递 -v 标记,让咱们看看输入如何变动: [myuser@localhost]$ tar -cfv archive.tar testfile1 testfile2tar: archive.tar: Cannot stat: No such file or directorytar: Exiting with failure status due to previous errors奇怪,因为某种原因,咱们失去了一个谬误…… ...

September 7, 2021 · 3 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/...微信公众号:入门小站

September 6, 2021 · 1 min · jiezi

关于linux:Linux程序中集成breakpad

我的项目介绍breakpad是google开发的一个跨平台C/C++ dump捕捉开源库,解体文件应用微软的minidump格局存储,也反对发送这个dump文件到服务器,breakpad能够在程序解体时触发dump写入操作,也能够在没有触发dump时被动写dump文件。breakpad反对windows、linux、macos、android、ios等。目前已有Google Chrome, Firefox, Google Picasa, Camino, Google Earth等我的项目应用。 主页:https://chromium.googlesource...文档:https://chromium.googlesource...GitHub 地址:https://github.com/google/bre...次要组件breakpad有三个次要的组件: breakpad client:breakpad的客户端动态库(即:libbreakpad_client.a)。它的次要作用是在程序解体后,接管程序的异样解决,具体来说,它次要做了两方面的事件。 响应程序解体时接管到的signal,包含:SIGSEGV,SIGABRT,SIGFPE,SIGILL,SIGBUS。 (另外两个SIGSTOP,SIGKILL无奈解决)获取程序解体那一刻的运行时信息,保留为一个minidump格局的文件。symbol dumper:调试信息文件生成程序(即:dump_syms)。次要是用来从可执行程序中提取与符号相干的信息,并保留为一种特定格局的文件。processor module:minidump 处理程序(即:minidump_stackwalk),它的作用就是依据coredump及symbol file,构建出可读的call stack。下载编译下载Breakpad源码:git clone https://github.com/google/bre...。下载Breakpad依赖的三方库 LSS:git clone https://github.com/adelshokhy...),将 LSS 中的linux_syscall_support.h文件放至breakpad/src/third_party/lss/ 目录下。编译Breakpad:在源目录下执行./configure && make。libbreakpad_client.a在src/client/linux/ 目录下。dump_syms在src/tools/linux/dump_syms/目录下。minidump_stackwalk在src/processor/目录下。还有一个将minidump转换为core文件的程序minidump-2-core在src/tools/linux/md2core/目录下。集成breakpad首先,在程序中援用异样处理程序的头文件。 #include "client/linux/handler/exception_handler.h"为了生成minidump文件,咱们须要实例化一个ExceptionHandler对象,并提供一个存储minidump的门路,以及一个回调函数来接管对于已写入的minidump的信息。 static bool dumpCallback(const google_breakpad::MinidumpDescriptor& descriptor,void* context, bool succeeded) {printf("Dump path: %s\n", descriptor.path());return succeeded;}void crash() { volatile int* a = (int*)(NULL); *a = 1; }int main(int argc, char* argv[]) {google_breakpad::MinidumpDescriptor descriptor("/tmp");google_breakpad::ExceptionHandler eh(descriptor, NULL, dumpCallback, NULL, true, -1);crash();return 0;}在编译时须要链接breakpad提供的动态库libbreakpad_client.a,头文件搜寻门路须要蕴含breakpad的src目录。编译运行这个程序,会在/tmp/目录下生成一个minidump文件,并在退出之前打印该文件的门路。编译命令如下: ...

September 6, 2021 · 1 min · jiezi

关于linux:Dutree-–-Linux上的命令行磁盘使用情况分析工具

Dutree是Durep和Tree的组合。Durep用图表创立磁盘应用状况报告,这使咱们可能确定哪些目录应用了最多的空间。只管durep能够产生相似于du的文本输入,但其真正的性能是可能将报告存储在文件中。Tree是目录显示程序,它以树状构造在终端上递归列出目录。dutree的个性: 黑白输入分层显示文件系统用户能够聚合小文件用户能够排除文件或目录用户能够比拟不同的目录可靠性和速度快零碎环境Centos7 装置须要先装置cargo包管理器: [root@localhost ~]# yum -y install cargo其次配置cargo的仓库地址,因为默认应用国外源,下载速度超慢: 进入$HOME/.cargo创立config配置文件: [root@localhost ~]# cd $HOME/.cargo[root@localhost .cargo]# touch config将上面内容复制到config配置文件中: [source.crates-io]registry = "https://github.com/rust-lang/crates.io-index" 替换成速度比拟快的镜像源,这里应用上海交大的。replace-with = 'sjtu' 清华大学[source.tuna]registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" 上海交通大学[source.sjtu]registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index" rustcc社区[source.rustcc]registry = "git://crates.rustcc.cn/crates.io-index"Dutree – Linux上的命令行磁盘应用状况剖析工具Dutree – Linux上的命令行磁盘应用状况剖析工具开始装置dutree吧: [root@localhost ~]# cargo install dutree Updating `https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index` indexDownloaded dutree v0.2.16 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded 1 crate (638.0 KB) in 0.37s Installing dutree v0.2.16 Downloaded signal-hook v0.1.16 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded terminal_size v0.1.13 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded thread_local v1.0.1 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded signal-hook-registry v1.2.2 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded unicode-width v0.1.8 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded memchr v2.3.4 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded regex-syntax v0.6.21 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded aho-corasick v0.7.14 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded regex v1.4.2 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded libc v0.2.80 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded lazy_static v1.4.0 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded getopts v0.2.21 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded unicode-segmentation v1.6.0 (registry https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index) Downloaded 13 crates (1.4 MB) in 0.43s Compiling libc v0.2.80 Compiling memchr v2.3.4 Compiling lazy_static v1.4.0 Compiling unicode-width v0.1.8 Compiling regex-syntax v0.6.21 Compiling unicode-segmentation v1.6.0 Compiling thread_local v1.0.1 Compiling getopts v0.2.21 Compiling signal-hook-registry v1.2.2 Compiling terminal_size v0.1.13 Compiling aho-corasick v0.7.14 Compiling signal-hook v0.1.16 Compiling regex v1.4.2 Compiling dutree v0.2.16 ...

September 6, 2021 · 2 min · jiezi

关于linux:准备安装环境

--网络设置 vi /etc/hostnamenode1nmcli connection modify enp0s3 ipv4.addresses 192.168.56.84/24 ipv4.gateway 192.168.56.1 ipv4.method manual connection.autoconnect yesvi /etc/hosts192.168.56.84 node1--敞开防火墙--禁止firewall开机启动--确认防火墙为not running状态 systemctl stop firewalld.servicesystemctl disable firewalld.servicefirewall-cmd --statenot running--敞开selinux vi /etc/selinux/configSELINUX=disabled--敞开通明大页 vi /etc/rc.d/rc.local--减少下列内容:if test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never > /sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag; thenecho never > /sys/kernel/mm/transparent_hugepage/defragfi--执行以下命令: chmod +x /etc/rc.d/rc.localsource /etc/rc.d/rc.localcat /sys/kernel/mm/transparent_hugepage/enabledcat /sys/kernel/mm/transparent_hugepage/defragalways madvise [never] <<--- THP Disabledalways defer defer+madvise madvise [never]--创立mysql 组及用户 groupadd mysqluseradd -g mysql mysqlecho "mysql" | passwd --stdin mysql--重启服务器 reboot

September 6, 2021 · 1 min · jiezi

关于linux:配置SSH互信

分享一段配置SSH互信的脚本。 -- all 3 nodes su - mysqlmkdir -p $HOME/.sshchmod 700 $HOME/.sshssh-keygen -t rsa -P '' -f $HOME/.ssh/id_rsacat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keyschmod 644 $HOME/.ssh/authorized_keys--Copy the public key to new slave node in mysql user $HOME directory--node1 scp $HOME/.ssh/id_rsa.pub mysql@192.168.56.82:/home/mysql/.ssh/id_rsa.pub_node1scp $HOME/.ssh/id_rsa.pub mysql@192.168.56.83:/home/mysql/.ssh/id_rsa.pub_node1--node2 scp $HOME/.ssh/id_rsa.pub mysql@192.168.56.81:/home/mysql/.ssh/id_rsa.pub_node2scp $HOME/.ssh/id_rsa.pub mysql@192.168.56.83:/home/mysql/.ssh/id_rsa.pub_node2--node3 scp $HOME/.ssh/id_rsa.pub mysql@192.168.56.81:/home/mysql/.ssh/id_rsa.pub_node3scp $HOME/.ssh/id_rsa.pub mysql@192.168.56.82:/home/mysql/.ssh/id_rsa.pub_node3--node1 cat $HOME/.ssh/id_rsa.pub_node2 >> $HOME/.ssh/authorized_keyscat $HOME/.ssh/id_rsa.pub_node3 >> $HOME/.ssh/authorized_keys--node2 cat $HOME/.ssh/id_rsa.pub_node1 >> $HOME/.ssh/authorized_keyscat $HOME/.ssh/id_rsa.pub_node3 >> $HOME/.ssh/authorized_keys--node3 cat $HOME/.ssh/id_rsa.pub_node1 >> $HOME/.ssh/authorized_keyscat $HOME/.ssh/id_rsa.pub_node2 >> $HOME/.ssh/authorized_keys--modify /etc/ssh/ssh_config文件(或$HOME/.ssh/config)in all 3 nodes ...

September 6, 2021 · 1 min · jiezi

关于linux:再加一员腾讯会议-Linux-版上架优麒麟

腾讯会议公布 Linux 版! 近日,腾讯云推出原生的腾讯会议 Linux 版,这对 Linux 用户而言能够说是一个振奋人心的好消息,置信将来会有越来越多的原生利用在 Linux 操作系统上大放荣耀。 腾讯会议作为腾讯云旗下的一款音视频会议软件,提供便捷易用、高清晦涩、安全可靠的云视频会议服务,随时随地开启云端畅谈。为不便用户在优麒麟下载应用腾讯会议,小优为大家筹备了两种装置形式,一起来看看吧。 装置形式装置前筹备: 1、未装置优麒麟的用户可先返回官网下载镜像;2、已装置 20.04 和 20.04 Pro 正式版的用户通过以下形式进行源更新: $ sudo apt update 一、通过麒麟软件商店装置 关上麒麟软件商店搜寻“腾讯会议(官方版)”,单击进入软件详情页面,点击“下载”并实现装置。随后即可在开始菜单关上,还能够右键抉择“发送快捷方式至桌面”。 二、通过命令行装置 右键关上终端,输出命令: $ sudo apt install wemeet 加载实现后在开始菜单关上“腾讯会议”进行体验。 对于腾讯会议的装置介绍就到这里,如果你还未曾在 Linux 上体验腾讯会议,那么此次官网原生版请你务必不要错过。腾讯会议让咱们可能在优麒麟操作系统上轻松开启视频会议,此外,还反对实时屏幕共享等性能,让咱们的合作更加高效!心动不如口头,快和小优一起入手下载体验原生的 Linux 版腾讯会议吧!

September 6, 2021 · 1 min · jiezi

关于linux:重磅官宣KMRE-升级版发布支持自定义安装安卓软件

Linux 桌面操作系统下的利用生态短板始终都是比拟严厉的问题,麒麟挪动运行环境(KMRE)的上线使得优麒麟的利用生态不再局限于桌面端。此前,为了保障用户体验,KMRE 下的所有安卓软件只能通过软件商店和软件源进行对立治理。 当初,万众瞩目的 Kmre Apk 装置器 终于诞生了!不仅反对双击装置本地 Apk 包,还反对拖拽和抉择文件进行装置,从此实现 Linux 零碎下 Apk 包装置自在! 先看论断(以开心消消乐为例): 别急别急,装置形式在此: 装置形式一、万变不离其宗,让咱们先更新零碎: 未装置优麒麟的用户请先返回官网下载镜像文件;已装置 20.04 和 20.04 Pro 正式版的用户通过以下形式进行源更新和系统升级: $ sudo apt update$ sudo apt full-upgrade二、装置麒麟挪动运行环境: (1)下载 deb 包并装置,从而增加 software 软件源(曾经增加过的疏忽此步骤): $ wget http://archive.ubuntukylin.co...$ sudo dpkg -i kylin-software-keyring_2021.04.21_all.deb(2) 装置内核头文件包、KMRE 环境、Apk 装置器并重启: $ sudo apt install linux-headers-uname -r$ sudo apt install kmre kmre-apk-installer$ reboot应用须知对于 CPU 型号反对:目前反对 Intel、AMD、海光、兆芯四款型号的 CPU。对于 GPU 型号反对:目前在大部分 Intel 集成显卡,AMD,NVIDIA 显卡上反对运行,且稳定性较好,硬件加速效率也高,局部老旧显卡可能不反对默认的渲染模式,用户能够本人依据显卡型号配置对应的渲染模式。对于内核:目前在 5.4、5.8、5.10 内核上反对较好,切换内核后,请务必装置相应的头文件包。

September 6, 2021 · 1 min · jiezi

关于linux:LinuxShell语法5常用命令

工具与资源核心帮忙开发者更加高效的工作,提供围绕开发者全生命周期的工具与资源https://developer.aliyun.com/... 本文共介绍以下内容:expr,read,echo,printf,test命令与判断符号[] expr命令expr命令用于求表达式的值,格局为:expr 表达式 表达式应用办法: 用空格隔开每一项用反斜杠放在shell特定的字符后面(即本义)对蕴含空格和其余特殊字符的字符串要用引号括起来expr会在stdout中输入后果,如果为逻辑关系表达式,后果为真stdout为1,否则为0expr也有exit code,如果为逻辑关系表达式,后果为真则exit code为0,否则为1 字符串表达式length STRING:返回STRING的长度index STRING CHARSET:返回CHARSET中任意单个字符在STRING中最后面的字符地位,下标从1开始。如果STRING中没有CHARSET中任一字符,则返回0。substr STRING POSITION LENGTH:返回STRING字符串中从POSITION开始,长度最大为LENGTH的字串。如果POSITION或LENGTH为正数、0或非数值,则返回空字符串。示例: str="Hello World!"echo `expr length "$str"` # 留神 `` 不是单引号,示意获取 ``中command的stdout,输入12echo `expr index "$str" aWd` #输入 7,下标从1开始echo `expr substr "$str" 2 3` #输入 ell整数表达式expr反对一般的算术操作,算术表达式优先级低于字符串表达式,高于逻辑关系表达式。 +- :加减运算。两端参数会转换为整数,如果转换失败则会报错。*/ %:乘除取模运算。两端参数会转换为整数,如果转换失败则会报错。( ):能够示意优先级,但须要反斜杠本义示例: a=3b=4echo `expr $a + $b` # 输入7echo `expr $a - $b` # 输入-1echo `expr $a \* $b` # 输入12,*须要本义echo `expr $a / $b` # 输入0,整除echo `expr $a % $b` # 输入3echo `expr \( $a + 1 \) \* \( $b + 1 \)` # 输入20,值为(a + 1) * (b + 1)逻辑关系表达式|:如果第一个参数非空且非0,则返回第一个参数的值,否则返回第二个参数的值,但要求第二个参数的值也是非空或非0,否则返回0。如果第一个参数是非空或非0时,不会计算第二个参数。&:如果两个参数都非空且非0,则返回第一个参数,否则返回0。如果第一个参为0或为空,则不会计算第二个参数。< <= = == != >= > :比拟两端的参数,如果为true,则返回1,否则返回0。”==”是”=”的同义词。”expr”首先尝试将两端参数转换为整数,并做算术比拟,如果转换失败,则按字符集排序规定做字符比拟。( ):能够该表优先级,但须要用反斜杠本义示例: ...

September 6, 2021 · 3 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/...微信公众号:入门小站

September 5, 2021 · 1 min · jiezi

关于linux:什么是ssl证书

什么是SSL证书SSL证书是用于在WEB服务器与浏览器以及客户端之间建设加密链接的加密技术,通过配置和利用SSL证书来启用HTTPS协定,来爱护互联网数据传输的平安,寰球每天有数以亿计的网站都是通过HTTPS来确保数据安全,爱护用户隐衷。 Understanding SSL server certificates with Examples SSL证书的作用为您的网站访客、企业建设信赖和网络安全 加密隐衷数据。避免您访客的隐衷信息(账号、地址、手机号等)被劫持或窃取地址栏平安锁。地址栏头部的“锁”型图表使您的访客释怀浏览网页,进步用户信任度进步页面加载速度。进步用户体验,避免客户散失达到PCI规范。SSL是PCI合规性的要害组成部分平安身份认证。验证网站的真实性,避免钓鱼网站进步SEO排名。进步搜寻排名顺序,为企业带来更多访问量避免网页篡改。避免数据在运输过程中被篡改,爱护用户体验晋升品牌形象。有利于企业取得更多利润,在与对手竞争中占据主动位置 Install and List Root CA Certificate on Linux 避免中间人攻打中间人攻打(Man-in-the-MiddleAttack,简称"MITM攻打")是指攻击者与通信的两端别离创立独立的分割,并替换其所收到的数据,使通信的两端认为他们正在通过一个私密的连贯与对方直接对话,但事实上整个会话都被攻击者齐全管制。1,信息篡改:当主机A和主机B通信时,都是由主机C为中介进行转发来实现的,A、B之间并没有真正上的间接通信,且他们也不会意识到这点。这样,主机C成为了一个中间人,不仅能够窃听A与B之间的通信,还能够对通信信息进行篡改再传递给单方。如此,C便能够将歹意信息传递给A、B以达到本人的目标。2,信息窃取:当A、B通信时,C不被动去为其“转发”,只是把它们的传输的数据备份,以获取用户网络的流动,包含账户、明码等敏感信息,这是被动攻打也是十分难被发现的。 Understanding X509 Certificate with Openssl Commandunderstanding security certificate with examples创立平安链接 SSL证书如何工作浏览器和服务器之间通过SSL握手的形式疾速验证和替换密钥,实现平安加密1,服务器将其非对称公钥的正本发送给浏览器。2,浏览器创立一个对称会话密钥,并应用服务器的非对称公钥将其加密,而后将其发送到服务器。3,服务器应用其非对称私钥对加密会话密钥进行解密以取得对称会话密钥。4,服务器和浏览器之间构建平安通道,通过会话密钥加密和解密所有传输数据,只有浏览器和服务器晓得对称会话密钥,并且会话密钥仅用于该特定会话。如果第二天浏览器连贯到同一台服务器,则会创立一个新的会话密钥。 Get SSL server certificate from Server with Openssl s_client Exploring SSL Connection with OpenSSL S_client Command SSL证书意义:认证服务:确认以后拜访的网页是其申明的网页。数据完整性服务:确认相互传输的数据没有被批改过。数据保密性服务:即数据的加密,没有密钥的第三方无奈获知数据的具体内容。不可否认服务:从技术上保障网站和用户对其行为的认可。举个例子:在淘宝或者其余中央生产了,SSL证书会从技术上证实用户的确进行了生产,服务商的确收到了资金,以及服务商的确付出了与资金相匹配的服务。公正服务:通过技术手段证实数据的有效性和正确性。 平安锁显示所有平安连贯都有挂锁图标,但其中一些可能还有绿色地址栏。只有当一个网站应用特定类型的SSL证书(扩大验证证书)时,才会显示绿色地址栏。这种证书可用来证实该网站是由实在存在且非法的公司经营的。浏览器通过在URL左侧显示该公司的名称来认可该网站。当你看到绿色地址栏时,你就能够放松一下了——你是平安的。绿色地址栏无奈被仿冒, 它是网站身份和扩大可靠性的无可辩驳的证实 进步网页加载速度(HTTP/2)咱们应用客户端(浏览器)通过互联网发动申请,服务端响应申请,到最初获取内容,这一过程都是建设在HTTP协定的根底上的。HTTP协定版本倒退从HTTP/0.9、HTTP/1.0、HTTP/1.1到当初的HTTP/2。 相比于HTTP/1.x,HTTP/2大幅度晋升web性能,进步网页加载速度,实现低提早和高吞吐量。 OpenSSl命令总览语法格局: openssl command [ command_opts ] [ command_args ] 罕用command: version 用于查看版本信息 enc 用于加解密 ciphers 列出加密套件 genrsa 用于生成私钥 rsa RSA密钥治理(例如:从私钥中提取公钥) ...

September 5, 2021 · 2 min · jiezi

关于linux:DMA那些事儿

在VIP群里,大家探讨热烈,齐全能够看得出来大家都Linux技术和嵌入式技术等渴望和赤诚,欢送大家退出笨叔的VIP私密群,一起钻研技术,一起奔跑,一起成长。 对于DMA 有敌人问无关DMA的相干问题,那么大家在编写驱动的时候须要额定小心敬慎。因为DMA的问题次要会影响cache的一致性。那linux内核外面提供了不少的API来帮忙大家实现DMA的操作。 咱们晓得DMA应用的物理内存,那么在内核中次要有两类的接口来调配物理内存 __get_free_page()和alloc_page()来调配以页为单位的物理内存kmalloc() 和 kmem_cache_alloc()来调配以字节为单位的物理内存上述两个接口调配的内存都能够作为DMA buffer的原材料。然而咱们零碎调配的物理内存都是cachable的,也就是关上cache性能的。另外DMA engine在做DMA传输的时候是不须要CPU参加的,所以从这个角度来看,同一个cache line有可能CPU和DMA engine都能拜访到,那就会导致cache line被毁坏了,那如何去保障DMA操作的时候,cache这个捣蛋鬼不来捣鬼呢? 一个简略的想法就是,咱们在做DMA传输的时候,这段buffer我把cache给敞开了,这个就是kernel实现的一致性的DMA buffer mapping的(英文叫做:Consistent DMA mappings)。这里consistent的意思是synchronize或者conherent的意思,CPU和DMA这两个哥们都能同时看到数据的扭转,不须要软件做额定的一些flush动作。外围函数是: dma_addr_t dma_handle;cpu_addr = dma_alloc_coherent(dev, size, &dma_handle, gfp);这个函数返回两个值,其中cpu_addr是虚拟地址,CPU能够通过这个地址来拜访这段buffer,另外一个dma_handle物理地址,能够传递给DMA engine。 这里调配的大小以 PAGE_SIZE为单位。 另外这个函数会调用alloc_page()来调配物理页面,所以不要在中断上下文中应用该API 大家能够想一下一致性的DMA有什么毛病?很显著的一个毛病就是cache始终都是敞开的,所以性能就会很低下。比方DMA传输实现之后,CPU去把这个DMA buffer的数据取过去,这时候cache敞开的,CPU去读写就变得很慢。那有没有方法能够保障DMA的传输的一致性,又能进步性能呢?特地是CPU去拜访这段DMA buffer的性能呢? 办法是有,那就是streaming的DMA,streaming DAM有的书上翻译成流式DMA,从字面上不好了解。其实上大家能够把DMA 传输合成一下,比方: 设施的FIFO -> DMA buffer。 这个就是代码里说的DMA_FROM_DEVICE。数据流向是从设施到物理内存,留神DMA buffer是在主存储器,即DDR里,此时从CPU角度来看,CPU的工作是读取来自设施的数据,也就是咱们常说的“ DMA读”。 DMA buffer -> 设施的FIFO。 这个就是代码说的DMA_TO_DEVICE。数据流向是从主存取器DDR到设施,留神DMA buffer是在主存储器,即DDR里,此时从CPU角度来看,CPU的工作是把数据写入设施,也就是咱们常说的“ DMA写”。 (DMA读或者写这个说法 不是很谨严,只是大家口头禅都这么说,代码里的DMA_FROM_DEVICE和DMA_TO_DEVICE这两个宏比拟谨严一些) 那很多人就纳闷了,那DMA读和DMA写,怎么和cache的操作间断在一起呢?到底DMA读是要invalid cache还是flush cache呢?咱们来看一下这个图。 从图里看到,CPU须要进行DMA写操作,也就是把内存中的buffer A写入到设施的FIFO A外面,那么有可能cache外面的数据还没有齐全写入到内存的buffer A中,那这时候启动DMA的话,最终传递到设施FIFO A的数据其实不是CPU想写的,因为还有一部分数据早 埋伏在cache A中没有 sync到内存里。这个场景有点相似,咱们拷贝内存到U盘,马上插入,而后发现U盘没有货色。 咱们来看一下DMA读的状况,CPU想把设施的FIFO B的数据读到内存buffer B中。那如果在开启DMA传输的时候没有去把内存buffer B的相应的cache invalid的话,那么DMA把数据从FIFO B到了内存Buffer B之后,CPU去读这个内存Buffer B的数据,那么会把之前的 残留在cache line的内容 先读到了CPU,那CPU其实是没有读到最新的FIFO B的数据的。 ...

September 5, 2021 · 1 min · jiezi

关于linux:iPhone-13-全系价格曝光字节取消大小周后员工收入普降-17Linux-Lite-56-正式发布-思否周刊

40s 新闻速递音讯称苹果拟 2024 年量产 Apple Car,正访问亚洲供应商阿里巴巴将开革 10 名泄露“性侵指控”帖子的员工爆料:华为 nova 9 系列将于 9 月下旬公布,备货短缺外媒:台积电 3nm 制程工艺量产将推延,最多推延4个月微软低调公布 Visual Studio Code for the Web 预览字节跳动勾销大小周后,员工支出普降 17%iPhone 13 全系价格曝光:512GB 的 Pro 便宜了AMD 颁布一种新量子计算架构Siri 偷听用户对话被起诉 Linux Lite 5.6 正式公布Apache ECharts 5.2.0公布Visual Studio Code 1.60 公布Python 3.7.12 和 3.6.15 公布Fanx 语言 4.0 公布,新语法、新后端红旗 Linux 桌面操作系统 v11 alpha 版 (0831) 更新行业资讯音讯称苹果拟 2024 年量产 Apple Car,正访问亚洲供应商苹果正在韩国和日本访问供应链和汽车制造商,包含丰田汽车、SK 团体和 LG 电子,为 2024 年量产 Apple Car 电动汽车做筹备。此次探讨的次要话题是,面对寰球芯片短缺,应如何生产 Apple Car。苹果正在推动主动驾驶汽车技术,指标是最早在 2024 年生产一款可能包含自家突破性电池技术的乘用车。 ...

September 5, 2021 · 3 min · jiezi

关于linux:内网通讯延迟有多少

都晓得内网提早低,到底有多低呢?数量级是多少?多少毫秒呢? 咱们来定量的看看内网的提早。 测试设施如下: 测试路由器:小米 AX1800测试PC1:联想 YOGA14s,应用 5G wifi连贯到路由器,ip地址为 192.168.31.127测试PC2:AMD 5700G平台,应用 6 类网线连贯到路由器,ip地址为 192.168.31.245(被)测试服务器:树莓派4B 4GB,应用 5 类线连贯到路由器,ip地址为 192.168.31.203 应用无线网 ping 服务器测试PC1:联想 YOGA14s ----------ping-------> (被)测试服务器:树莓派4B 4GB csy@Yoga14S-yjc:~$ ping 192.168.31.203PING 192.168.31.203 (192.168.31.203) 56(84) bytes of data.64 bytes from 192.168.31.203: icmp_seq=1 ttl=63 time=5.40 ms64 bytes from 192.168.31.203: icmp_seq=2 ttl=63 time=2.96 ms64 bytes from 192.168.31.203: icmp_seq=3 ttl=63 time=2.80 ms64 bytes from 192.168.31.203: icmp_seq=4 ttl=63 time=3.44 ms64 bytes from 192.168.31.203: icmp_seq=5 ttl=63 time=3.38 ms64 bytes from 192.168.31.203: icmp_seq=6 ttl=63 time=3.31 ms^C--- 192.168.31.203 ping statistics ---6 packets transmitted, 6 received, 0% packet loss, time 5009msrtt min/avg/max/mdev = 2.804/3.547/5.395/0.857 ms应用网线 ping 服务器测试PC2:AMD 5700G平台 ----------ping-------> (被)测试服务器:树莓派4B 4GB ...

September 4, 2021 · 2 min · jiezi

关于linux:Linux之sshagent命令

ssh密钥管理器,ssh-agent命令是一种管制用来保留公钥身份验证所应用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其余窗口或程序则以客户端程序的身份启动并退出到ssh-agent程序中。通过应用环境变量,可定位代理并在登录到其余应用ssh机器上时应用代理主动进行身份验证。 其实ssh-agent就是一个密钥管理器,运行ssh-agent当前,应用ssh-add将私钥交给ssh-agent保存,其余程序须要身份验证的时候能够将验证申请交给ssh-agent来实现整个认证过程。 咱们认为你正在用ssh key做权限认证。为了防止你在启动ssh agent时反复输出明码,你能够输上面两个命令ssh-agent bash:启动ssh agent,并把bash挂到下面ssh-add .ssh/id_rsa:增加私钥并由ssh agent保存,这样下次就不须要再输出明码了 命令语法ssh-agent [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]]ssh-agent [-c | -s] -k命令选项-a bind_address:bind the agent to the UNIX-domain socket bind_address.-c:生成C-shell格调的命令输入。-d:调试模式。-k:把ssh-agent过程杀掉。-s:生成Bourne shell 格调的命令输入。-t life:设置默认值增加到代理人的身份最大寿命。运行ssh-agent> ssh-agentSSH_AUTH_SOCK=/tmp/ssh-lWA15nOUhcYG/agent.26310; export SSH_AUTH_SOCK;SSH_AGENT_PID=26315; export SSH_AGENT_PID;echo Agent pid 26315;运行ssh-agent,它会打印进去它应用的环境和变量。应用-d参数,运行调试模式> ssh-agent -d应用-k参数杀掉ssh-agent过程> ssh-agent -kssh-agent的应用场景应用不同的密钥连贯到不同的主机时,须要手动指定对应的密钥。ssh-agent 能够帮忙咱们抉择对应的密钥进行认证,不必手动指定密钥即可进行连贯。 当私钥设置了明码,咱们又须要频繁的应用私钥进行认证时,ssh-agent 能够帮忙咱们免去反复的输出明码的操作。 原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门小站

September 4, 2021 · 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/...微信公众号:入门小站

September 3, 2021 · 1 min · jiezi

关于linux:ManjaroWin10双系统转换Linux主磁盘为BTRFS

开始前1.开始转换前,请用Diskgen(或同类软件)将分区表和所有分区备份,转换磁盘格式是危险操作,转换为BTRFS时失败或数据失落案例很多。2.若不理解BTRFS,请浏览 “https://wiki.archlinux.org/ti...”。3.笔者是Manjaro(arch)+Win10,别离在不同硬盘。 步骤1.进入LiveCD环境2.查错并转换su root fsck.ext4 /dev/{Linux主磁盘} #查看分区问题。btrfs-convert /dev/{Linux主磁盘} #转换分区为BTRFS,请确保曾经备份分区表和所有分区。“conversion complete”即“转换实现”。 3.批改fstabmount /dev/{Linux主磁盘} /mnt #为了使你间接复制命令,挂载分区到 /mnt。lsblk -f #获得所有磁盘的UUID。blkid /dev/{Linux主磁盘} #获得某磁盘的UUID。vim /mnt/etc/fstab #批改fstab,将UUID改为{Linux主磁盘}的{新UUID}。格局UUID={新UUID} / btrfs compress=zstd,discard,ssd,defaults,rw,relatime,space_cache=v2,subvol=/@ 0 0“SSD”即“固态硬盘优化”,“discard”即“关上Trim”,肯定要保障SSD反对TRIM,否则将会失落数据。应用lsblk --discard查看,DISC-GRAN (discard granularity) 和 DISC-MAX (discard max bytes) 列非 0 示意该 SSD 反对 TRIM 性能。“compress=zstd”即应用ZSTD压缩,这是比ZLIB性能更强的算法。 4.进入原零碎环境mount -t proc none /mnt/procmount -t sysfs none /mnt/sysmount -o bind /dev /mnt/devchroot /mnt bash 5.重建初始化内存盘mkinitcpio --preset linux若“Fail to load preset”,则vim /etc/mkinitcpio.d后wq退出chroot 6.压缩新磁盘btrfs filesystem defragment -r -v -czstd /mnt #应用zstd压缩磁盘btrfs subvolume delete /mnt/ext2_saved #删除备份子卷btrfs balance start /mnt #用Balance回收数据btrfs balance status /mnt ...

September 3, 2021 · 2 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/...微信公众号:入门小站 ...

September 2, 2021 · 1 min · jiezi

关于linux:linux-ACL权限管理

概念ACL是Access Control List(访问控制列表)的缩写,用于linux简单的用户权限管制当中。 Cent7零碎之前,只有零碎装置时创立的文件系统反对ACL,起初创立的文件系统则不反对。 Cent7零碎后,不论文件系统是否在装置零碎时被建设,都反对ACL。   命令getfacl:用于查看ACL权限。 setfacl:用于设置ACL权限。   用法1. 查看文件或目录权限getfacl 文件/文件夹名 [root@vm1 ~]# getfacl ~getfacl: Removing leading '/' from absolute path names# file: root# owner: root# group: rootuser::r-xgroup::r-xother::---  2. 批改用户对文件或目录的权限setfacl -m u:uname:access 文件/文件夹名 [root@vm1 ~]# setfacl -m u:young:rwx -R ~ #将/root的权限赋予young[root@vm1 ~]# getfacl ~getfacl: Removing leading '/' from absolute path names# file: root# owner: root# group: rootuser::r-xuser:young:rwxgroup::r-xmask::rwxother::---我将我集体对/root文件夹的拜访权限改成了可读可写,而组内用户有读权限,组外用户无任何权限。 接下来进行测试: [young@vm1 root]$ dd if=/dev/zero of=/root/testfile bs=1M count=20 #创立一个测试文件记录了20+0 的读入记录了20+0 的写出20971520字节(21 MB)已复制,0.0154888 秒,1.4 GB/秒[young@vm1 root]$ ll|grep testfile -rw-rw-r-- 1 young young 20971520 8月 30 01:49 testfile[young@vm1 root]$ id nobodyuid=99(nobody) gid=99(nobody) 组=99(nobody)确实,young用户因为被赋权。所以能够在/root目录下进行读写;而nobody用户因为未被赋权,且不在root组内,故什么权限都没有。 ...

September 2, 2021 · 1 min · jiezi

关于linux:Linux常见问题NFS服务断连导致df-卡死问题处理

当nfs 服务端挂掉当前会导致客户端卡主问题解决 问题景象: NFS服务端意外断开,导致挂载的客户端“df -T”命令无奈应用,及挂载目录无奈"cd"、"ls"等命令 该文件夹中有一个共享目录挂载在该文件夹某一目录下,因忽然关机等异常情况导致该服务无限度期待 当NFS服务器启动当前仍然不会复原,只有重启零碎才可复原。解决思路: 1,呈现此类问题起因是因为客户端无奈重试连服务端。 2,强制勾销挂载并从新挂载。 解决办法: 强制勾销,在度娘中找到很多强制勾销形式大部分都是不可用的最初测试后果以下命令可用1,先查看目录 mount -l 列出挂载的目录 2,强制卸载目录 umount -f -l 挂载的目录

September 2, 2021 · 1 min · jiezi

关于linux:Mysql日常维护不停主master做主从同步

咱们目前所用到的在Mysql master不停机状况下做同步操作的支流工具都是 XtraBackup 包含阿里云、腾讯都是采纳此工具来备份解压。MySQL主从同步原理:MySQL主从同步是在MySQL主从复制(Master-Slave Replication)根底上实现的,通过设置在Master MySQL上的binlog(使其处于关上状态),Slave MySQL上通过一个I/O线程从Master MySQL上读取binlog,而后传输到Slave MySQL的中继日志中,而后Slave MySQL的SQL线程从中继日志中读取中继日志,而后利用到Slave MySQL的数据库中。 XtraBackup备份原理:innobackupex在后盾线程一直追踪InnoDB的日志文件,而后复制InnoDB的数据文件。数据文件复制实现之后,日志的复制线程也会完结。这样就失去了不在同一时间点的数据正本和开始备份当前的事务日志。实现下面的步骤之后,就能够应用InnoDB解体复原代码执行事务日志(redo log),以达到数据的一致性。 备份过程1 ) backup,备份阶段,追踪事务日志和复制数据文件(物理备份)。 2 ) preparing,重放事务日志,使所有的数据处于同一个工夫点,达到一致性状态。 XtraBackup的长处:1)备份速度快,物理备份牢靠 2)备份过程不会打断正在执行的事务(无需锁表) 3)可能基于压缩等性能节约磁盘空间和流量 4)主动备份校验 5)还原速度快 6)能够流传将备份传输到另外一台机器上 7)在不减少服务器负载的状况备份数据 xtrabackup装置[root@localhost opt]# yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev-devel rsync perl-Digest-MD5 Centos 6[root@localhost opt]# wget https://www.percona.com/downl... [root@localhost opt]# yum --enablerepo=epel localinstall percona-xtrabackup-2.3.2-1.el6.x86_64.rpm -y Centos 7[root@localhost opt]# wget https://downloads.percona.com... [root@localhost opt]# rpm -ivh percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm -y [root@localhost opt]# whereis innobackupex innobackupex: /usr/bin/innobackupex /usr/share/man/man1/innobackupex.1.gz ...

September 2, 2021 · 2 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/...微信公众号:入门小站 ...

September 1, 2021 · 2 min · jiezi

关于linux:用FRP做内网穿透使用远程桌面连接家里的windows电脑

大部分家用宽带没有独立的IPV4,没法间接连贯。FRP是一个内网穿透的神器,能够通过一个有公网IP的服务器搭建FRP服务端,去转发流量实现内网穿透用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑 下载FRP在Github开源:https://github.com/fatedier/frp在releases页面下载对应的版本。压缩包只是对应平台不通,每个包解压都蕴含服务器端和客户端。用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑 服务器端配置下载服务器端我用的是centos,所以在releases页面下载"frp_0.33.0_linux_amd64.tar.gz",如果服务器端是其余零碎,下载对应的解压就行。用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑解压文件夹内: "frps"、"frps_full.ini"、"frps.ini"是放在服务器端运行的可执行文件和配置文件。"frpc"、"frpc_full.ini"、"frpc.ini"是放在客户端端运行的可执行文件和配置文件。批改配置文件应用命令vi frps.ini批改frps.ini文件,而后保留退出: [common]bind_addr=0.0.0.0bind_port = 7000token=12310086 dashboard_port = 7500dashboard_user = admindashboard_pwd = admin123阐明: "bind_addr"是服务器本地IP,不改。"bind_port"是frp监听端口。"token"是验证token倡议设置上。"dashboard_port"是frp面板端口。"dashboard_user""dashboard_pwd"是面板的账户明码。除了"bind_addr"参数之外的其余参数,都能够依据需要自行批改,务必记住改过的参数。 而后给服务器端frps赋予执行权限: sudo chmod 755 ./frps运行frps ./frps -c ./frps.ini用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑能够配合nohup或者screen在让frps后盾运行。留神防火墙或者宝塔之类放行响应的端口。登录网页查看一下是否的确胜利运行 拜访面板面板仅供参考,可用可不必。拜访 http://服务器ip:7500下面配置的7500端口,应用下面配置的用户名和明码 admin/admin123登陆能够看到如下界面: 用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑 客户端配置下载frp演示的客户端为windows,下载frp windows版"frp_0.33.0_windows_amd64.zip",解压进入文件夹:用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑 批改配置文件本地演示用到程序是windows远程桌面,应用3389端口。须要用frp将windows客户端的3389转发到服务器端上。比方将客户端的3389转发到服务器端的33389端口。用文本编辑器关上"frpc.ini"文件: [common]server_addr = FRP服务端VPSipserver_port = 7000token=12310086 [RDP]type = tcplocal_ip = 127.0.0.1local_port = 3389remote_port = 33389保留退出,在cmd里执行 frpc.exe -c frpc.ini呈现success就是连贯胜利用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑此时服务器段也有连贯揭示用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑控制面板里也有提醒用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑如果没有提醒,请留神在服务器防火墙或者宝塔之类的治理面板里放行响应的端口! 当初咱们在外网任意一台电脑,关上windows远程桌面程序,输出服务器ip:33389,就能够连贯到本地windows了用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑留神肯定要开启windows电脑的“容许近程连贯”,否则有可能失败。用FRP做内网穿透应用远程桌面连贯家里的windows电脑用FRP做内网穿透应用远程桌面连贯家里的windows电脑 原理服务器端启动依据配置文件监听7000端口。客户端依据配置文件启动和服务器的frp 7000端口进行连贯。两者连贯胜利之后,客户端读取本地配置文件通知服务器端,须要哪些转发操作用到什么端口。上述操作中,客户端读取本地配置文件通知服务器端,客户端转发本地的3389端口到了服务器端的33389。而后服务器端再新开33389的监听端口,把来自外网拜访33389端口的流量转发到客户端3389

September 1, 2021 · 1 min · jiezi

关于linux:Linux命令ip

作用:用于治理网络设备。 ip 命令有多个子命令,且子命令能够简写。 1. ip address能够简写为 ip a。 查看 IP 地址 [root@localhost ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever...增加 IP 地址 [root@localhost ~]# ip address add dev tap1 10.0.0.1/24删除 IP 地址 [root@localhost ~]# ip address delete dev tap1 10.0.0.1/24清空 IP 地址 [root@localhost ~]# ip address flush dev tap12. ip link能够简写为 ip l。 ...

September 1, 2021 · 2 min · jiezi

关于linux:jenkins-报存储空间不足

jenkins报存储空间有余的解决方案 主动抛弃构建历史数据把以前构建过的过期历史数据主动革除掉,保留最近更新的天数和个数。如下图: 更改jenkins的默认目录# 迁徙目录cp -r /var/lib/jenkins /data01# 更改所有者 如果是root则不必执行chown -R /data01/jenkins# 执行下列命令更改/etc/init.d/jenkins的jenkins目录[root@localhost ]# DAEMON_ARGS="--name=$NAME --inherit --env=JENKINS_HOME=/home/jenkins --output=$JENKINS_LOG --pidfile=$PIDFILE"vim /etc/sysconfig/jenkinsjenkins_home批改为下面从新迁徙的目录 查找JENKINS_HOME把JENKINS_HOME=”/var/lib/jenkins” 改成 JENKINS_HOME=”/data01/jenkins” 批改/etc/passwd中的jenkins 最初重启服务 service jenkins restart 如果jenkins中的maven jdk是jenkins内置装置的 则须要对应批改相应的门路

September 1, 2021 · 1 min · jiezi

关于linux:首发Meltdown漏洞分析与实践

对于本文 2018年的第二天Meltdown和Spectre破绽在计算机界如同放了一个核弹,IT码农们都炸开了锅,各大厂商的各路大神都在挑灯夜战的做各种测试和打补丁,各路技术爱好者也纷纷在微信群中热烈探讨破绽的技术问题和研读论文。 本文是猫王大神(Xiao Grangrong)同学花了一个周末工夫,参考了各路的论文和材料撰写进去,心愿对喜爱技术的各位朋友能有一丁点的帮忙,感激猫王大神的精彩文章。 本文作者简介: Xiao Guangrong:Linux内核、KVM/QEMU社区外围开发者和维护者。 注释 2018年或者注定就是不平庸的一年,这一年刚开始就爆进去两个硬件设计级别的破绽,其影响之深令人咋舌。破绽之一是Meltdown,目前发现Intel CPU和ARM Cortex A75受影响。其次是Spectre,其影响了简直全副支流CPU包含Intel,AMD,ARM (IBM CPU是否受影响还未知)。破绽爆出之后,简直所有媒体都在做铺天盖地的报道,科技公司也在颁布各自的解决方案和修改日期。然而因为技术背景参差不齐,有些报道没有说到点子上,令人哭笑不得。 本文的次要材料来源于各论文3与以及相干的Blog1,其次补充了这些材料中有所疏忽或者是互相冲突的中央。因为篇幅起因,在这一篇文章里次要剖析了Meltdown。在后续的文章里再来剖析Spectre。 背景常识在深入分析Meltdown之前,咱们须要理解一些背景常识。它包含CPU Cache,CPU指令执行,操作系统地址空间隔离的设计。接下来咱们顺次来看这些知识点。 1.1 CPU Cache 古代处理器执行指令的瓶颈曾经不在CPU端,而是在内存拜访端。因为CPU的处理速度要远远大于物理内存的访问速度,所以为了加重CPU期待数据的工夫,在古代处理器设计中都设置了多级的cache单元。 图1 经典处理器的存储构造如图1所示,一个领有2个CPU的零碎, 每个CPU有两个Core, 每个Core有两个线程的Cache架构。每一个Core有独自的L1 cache, 它由其中的线程所共享, 每一个CPU中的所有Core共享同一个L2 Cache和L3 Cache。 L1 cache最靠近处理器外围,因而它的访问速度也是最快的,当然它的容量也是最小的。CPU拜访各级的Cache速度和提早是不一样的,L1 Cache的提早最小,L2 Cache其次,L3 Cache最慢。 上面是Xeon 5500 Series的各级cache的拜访提早:(依据CPU主频的不同,1个时钟周期代表的工夫也不一样,在1GHz主频的CPU下,一个时钟周期大略是1纳秒,在2.1GHz主频的CPU下,拜访L1 Cache也就2个纳秒)。 表1:各级存储构造的拜访提早 拜访类型 提早 L1 cache命中 约4个时钟周期 L2 cache 命中 约10个时钟周期 L3 cache命中 约40个时钟周期 拜访本地DDR 约60 纳秒 拜访远端内存节点DDR 约100纳秒 如表1所示,咱们能够看到各级内存拜访的提早有很大的差别。CPU拜访一块新的内存时,它会首先把蕴含这块内存的Cache Line大小的内容获取到L3 Cache,而后是载入到L2 Cache,最初载入到了L1 Cache。这个过程须要拜访主存储器,因而提早会很大,大概须要几十纳秒。当下次再读取雷同一块数据的时候间接从L1 Cache里取数据的话,这个提早大概只有4个时钟周期。当L1 Cache满了并且有新的数据要进来,那么依据Cache的置换算法会抉择一个Cache line置换到L2 Cache里,L3 Cache也是同样的情理。 ...

August 31, 2021 · 4 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/...微信公众号:入门小站 ...

August 31, 2021 · 2 min · jiezi

关于linux:性能工具之15个常用的Linux文件系统命令

前言 测试人员最常见和繁琐的工作之一就是清理环境,比方避免磁盘空间呈现有余。上面是我收集的一些罕用的 Linux 文件系统相干命令。 1.查看可用空间 要查找服务器上所有文件系统上的可用空间,请执行以下命令: $ df -h 文件系统        容量  已用  可用 已用% 挂载点 /dev/vda1        40G   32G  6.0G   84% / devtmpfs        1.9G     0  1.9G    0% /dev tmpfs           1.9G     0  1.9G    0% /dev/shm tmpfs           1.9G  2.0M  1.9G    1% /run tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup ...

August 31, 2021 · 4 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/...微信公众号:入门小站 ...

August 30, 2021 · 1 min · jiezi

关于linux:OwnCloud搭建自己的私有云盘

OwnCloud搭建本人的公有云盘OwnCloud 是什么ownCloud 跨平台反对 Windows、Mac、Android、iOS、Linux 等平台,而且还提供了网页版和 WebDAV 模式拜访,因而你能够在任何电脑、手机上都能轻松获取你的文件了,是一个开源收费业余的公有云存储我的项目,它能帮你疾速在个人电脑或服务器上架设一套专属的公有云文件同步网盘,能够像 Dropbox 那样实现文件跨平台同步、共享、版本控制、团队合作等等。 ownCloud 能让你将所有的文件把握在本人的手中,只有你的设施性能和空间短缺,那么用其来简直没有任何限度。 官网:https://owncloud.com/ ownCloud 不仅实用于集体应用,对常常须要传输共享文件、近程合作等需要的团队或公司更是适合!性能上也很弱小:能反对文件分享、获取文件链接、文件版本历史管制 (文件删除复原)、文件评论合作、文件共享(可设置读写权限)、图片音乐和文档等文件预览、凋谢 API、反对第三方利用整合等等。除了云存储之外,ownCloud 还能够用于同步日历、电子邮件联系人、网页浏览器的书签等性能。 ownCloud 我的项目应用了 PHP+MySQL 的经典组合,无论在本人的电脑上或是 VPS 服务器上,基本上只有能跑 WordPress 网站的机器都能运行了,装置服务器端就像用 PHP 程序建站一样简略。官网倡议在 Linux (如 Ubuntu 或 CentOS) 零碎下搭建,对于 Windows 作为主机的用户,能够通过 WAMP、XAMPP 等工具搭建简略的运行环境。另外,ownCloud 还提供了搭建好环境的虚拟机文件,你能够间接在 VMWare、VirtualBox、Hyper-V 中运行 ownCloud 服务器端。 本文须要1.域名(非必须) 2.服务器+或者是内网(腾讯云) 3.零碎:Centos7 应用到的技术Linux(基于Centos7) Docker(或者LNMP,本文将数据库),Nginx+SSL等 基于docker装置ownCloud1.装置docker(省略)拉取镜像、运行 # docker pull owncloud# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/owncloud latest 327bd201c5fb 2 years ago 618 MB# docker run -itd --name owncloud --restart always -p 83:80 -v /data/wwwroot/web/o.xgss.net:/var/www/html/data -d owncloud应用IP+端口的形式拜访ownCloud文件则是一成不变地将文件保留在服务器硬盘,目录构造也跟网页版 (客户端) 上看到的一样,只有他人有权限拜访你的主机,那么就能绕过 ownCloud 间接查看或拷走所有用户的文件了。不过,ownCloud 这种形式也有它的长处,就是当有一天你不再想用 ownCloud,或者它因各种起因挂掉了,你的文件的备份和导出都十分不便! ...

August 30, 2021 · 2 min · jiezi

关于linux:网络攻击

网络攻击(Cyberattack) 威逼保密性的攻打:窃听、通信量剖析;威逼完整性的攻打:更改、假装、重放、否定;威逼可用性的攻打:拒绝服务(DoS);网络安全威逼可分为主动攻击和被动攻打。被动攻打包含窃听信息,主动攻击包含伪造信息、重放攻打、篡改内容和拒绝服务。 网络安全攻打的次要体现形式有:伪造、截获/重放、篡改、中断。 目前最无效的网络互联网攻打模式是 DDOS 攻打,常见的有 SYN 攻打、DNS 放大攻打、DNS 泛洪攻打和应用层 DDOS 攻打。

August 30, 2021 · 1 min · jiezi

关于linux:网络安全服务的内容有哪些

网络安全服务次要有5项:甄别服务、访问控制服务、数据保密性服务、数据完整性服务和可审查性服务。 1、甄别服务:次要用于网络系统中认定辨认实体(含用户及设施等)和数据源等,包含等同实体甄别和数据源甄别两种服务。 2、访问控制服务;访问控制包含身份验证和权限验证。其服务既可避免未受权用户非法拜访网络资源,也可避免非法用户越权拜访。 3、数据保密性服务:次要用于信息泄露、窃听等被动威逼的进攻措施。可分为:信息窃密、爱护通信零碎中的信息或网络数据库数据。对于通信零碎中的信息,又分为面向连贯窃密和无连贯窃密。 4、数据完整性服务:次要包含5种:带复原性能的面向连贯的数据完整性,不带复原性能的面向连贯的数据完整性,抉择字段面向连贯的数据完整性,抉择字段无连贯的数据完整性和无连贯的数据完整性,次要用于满足不同用户、不同场合对数据完整性的要求。 5、可审查性服务。是避免文件或数据收回者无奈否定所发送的原有内容真实性的防范措施,可用于证实已产生过的操作。

August 30, 2021 · 1 min · jiezi

关于linux:网络安全的含义及特征

网络安全从其本质上讲就是网络上的信息安全,指网络系统的硬件、软件及数据受到爱护。不蒙受毁坏、更改、泄露,零碎牢靠失常地运行,网络服务不中断。从用户的角度,他们心愿波及到集体和商业的信息在网络上传输时受到机密性、完整性和真实性的爱护,防止其他人或对手利用窃听、假冒、篡改、抵赖等伎俩对本人的利益和隐衷造成侵害和进犯。从网络运营商和管理者的角度来说,他们心愿对本地网络信息的拜访、读写等操作受到爱护和管制,避免出现病毒、非法存取、拒绝服务和网络资源的非法占用和非法管制等威逼,禁止和进攻网络“黑客”的攻打。 网络安全依据其本质的界定,应具备以下基本特征: 1、机密性。是指信息不泄露给非受权的集体、实体和过程,或供其应用的个性。在网络系统的各个档次上都有不同的机密性及相应的防范措施。在物理层,要保证系统实体不以电磁的形式向外泄露信息,在运行层面,要保障系统根据受权提供服务,使零碎任何时候都不被非授权人应用,对黑客入侵、口令攻打、用户权限非法晋升、资源非法应用等; 2、完整性。是指信息未经受权不能被批改、不被毁坏、不被插入、不提早、不乱序和不失落的个性; 3、可用性。是指非法用户拜访并能按要求程序应用信息的个性,即保障非法用户在须要时能够拜访到信息及相干材料。 在物理层,要保障信息系统在顽劣的工作环境下能失常进行。在运行层面,要保证系统时刻能为授权人提供服务,保证系统的可用性,使得发布者无奈否定所公布的信息内容。接受者无奈否定所接管的信息内容,对数据抵赖采取数字签名。

August 30, 2021 · 1 min · jiezi

关于linux:算法介绍收集

DESDES 是 IBM 公司于 1975 年钻研胜利并公开发表的。 3DES (或称为 Triple DES) 是三重数据加密算法,(TDEA, Triple Data Encryption Algorithm) 块明码的通称。 AES美国政府在 1997 年公开征集高级加密规范 (Advanced Encryption Standard: AES) 代替 DES 加密算法。AES 失去了全世界很多明码工作者的响应,先后有很多人提交了本人设计的算法。最终有 5 个候选算法进入最初一轮:Rijndael,Serpent,Twofish,RC6 和 MARS。最终通过安全性剖析、软硬件性能评估等严格的步骤,Rijndael 算法获胜。 1997 年美国 NIST 发动征集高级加密规范 AES 算法的流动,目标是为了确定一个安全性更好的分组明码算法来取代 DES。最终选定高级加密算法 AES 的算法为 Rijndael 数据加密算法。 BlowfishBlowfish 加密算法是一种罕用的对称加密算法,于 1994 年由 Bruce Schneier 提出。因为它的高效、容易实现等低劣性能,正越来越多地使用于电子商务、军事、平安通信等诸多畛域,逐渐取代了 DES 的位置。 Twofish由 Bruce Schneier 的 Counterpane Systems 设计的 Twofish 是未注册专利的,收费获取的算法。 IDEA瑞士的 Xuejia Lai 和 James Massey 于 1990 年颁布了 IDEA 明码算法第一版,称为 PES (Proposed Encryption Standard)。为抗击差分明码攻打,他们加强了算法的强度,称 IPES (Improved PES),并于 1992 年改名为 IDEA (International Data Encryption Algorithm,国内数据加密算法)。 ...

August 30, 2021 · 1 min · jiezi

关于linux:网络安全机制

1、加密机制:掂量一个加密技术的可靠性,次要取决于解密过程的难度,而这取决于密钥的长度和算法。 2、平安认证机制:在电子商务流动中,为保障商务、交易及领取流动的实在牢靠,须要有一种机制来验证流动中各方的实在身份。平安认证是维持电子商务流动失常进行的保障,它波及到平安治理、加密解决、PKI 及认证治理等重要问题。目前曾经有一套残缺的技术解决方案能够利用。采纳国内通用的PKI技术、X.509 证书规范和 X.500 信息公布规范等技术标准能够平安发放证书,进行平安认证。当然,认证机制还须要法律法规反对。平安认证须要的法律问题包含信用立法、电子签名法、电子交易法、认证治理法律等。 3、拜访控制策略:访问控制是网络安全防备和爱护的次要策略,它的次要工作是保障网络资源不被非法应用和十分拜访。它也是保护网络系统平安、爱护网络资源的重要伎俩。各种安全策略必须相互配合能力真正起到爱护作用。 网络安全机制包含访问控制机制、加密机制、认证替换机制、数字签名机制、业务流剖析机制、路由管制机制等。 平安服务包含:身份认证,访问控制,数据窃密,数据残缺和不可否认性。

August 30, 2021 · 1 min · jiezi

关于linux:常见加密算法

DES (Data Encryption Standard, 对称算法):数据加密规范,速度较快,实用于加密大量数据的场合。3DES (Triple DES):是基于 DES 的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。RC2 和 RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快。IDEA (International Data Encryption Algorithm, 国内数据加密算法):应用 128 位密钥提供十分强的安全性。RSA:由 RSA 公司创造,是一个反对变长密钥的公共密钥算法,须要加密的文件块的长度也是可变的,非对称算法。DSA (Digital Signature Algorithm, 数字签名算法):是一种规范的 DSS (数字签名规范) ,严格来说不算加密算法。AES (Advanced Encryption Standard, 高级加密规范):对称算法,是下一代的加密算法规范,速度快,安全级别高,在 21 世纪 AES 规范的一个实现是 Rijndael 算法。BLOWFISH,它应用变长的密钥,长度可达 448 位,运行速度很快。MD5:严格来说不算加密算法,只能说是摘要算法。PKCS (The Public-Key Cryptography Standards):是由美国 RSA 数据安全公司及其合作伙伴制订的一组公钥密码学规范,其中包含证书申请、证书更新、证书作废表公布、扩大证书内容以及数字签名、数字信封的格局等方面的一系列相干协定。SSF33,SSF28,SCB2 (SM1):国家明码局的荫蔽不公开的商用算法,在国内民用和商用的,除这些都不容许应用外,其余的都能够应用。ECC (Elliptic Curves Cryptography, 椭圆曲线明码编码学)。TEA (Tiny Encryption Algorithm):简略高效的加密算法,加密解密速度快,实现简略。但安全性不如 DES,QQ 始终用 TEA 加密。

August 30, 2021 · 1 min · jiezi

关于linux:安全特性

保密性(Confidentiality),也叫机密性完整性(Integrity)可用性(Availability)另外,平安个性还包含可控性、可审查性。 NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)成立于 1901 年,直属美国商务部,是美国最古老的物理迷信实验室之一。NIST 外部与网络安全相干的次要是通信技术试验(CTL)和信息技术实验室(ITL)。

August 30, 2021 · 1 min · jiezi

关于linux:IKE

1976 年以前,所有的加密办法都是同一种模式:加密和解密应用同一密钥。 1976 年,两位美国计算机学家 Whitfield Diffie 和 Martin Hellman,提出了一种簇新构思,能够在不间接传递密钥的状况下,实现解密。这被称为“Diffie-Hellman 密钥替换算法”。 1977 年,三位数学家 Rivest、Shamir 和 Adleman 设计了一种算法,能够实现非对称加密。这种算法用他们三个人的名字命名,叫做 RSA 算法。从那时直到现在,RSA 算法始终是最广为应用的非对称加密算法。毫不夸大地说,只有有计算机网络的中央,就有 RSA 算法。

August 30, 2021 · 1 min · jiezi

关于linux:GPG-PGP

PGP(Pretty Good Privacy) 提供完整性验证和起源合法性验证。 1991年,程序员 Phil Zimmermann 为了避开政府监督,开发了加密软件 PGP。这个软件十分好用,迅速流传开来,成了许多程序员的必备工具。然而,它是商业软件,不能自在应用。所以,自由软件基金会决定,开发一个 PGP 的替代品,取名为 GnuPG。

August 30, 2021 · 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/...微信公众号:入门小站 ...

August 29, 2021 · 1 min · jiezi

关于linux:关于Linux的core-dump那些事

什么是core?在linux中,程序运行时出现异常解体,操作系统会将程序过后的内存状态、调用堆栈等信息保留在core文件中。这种行为就是core dump(外围转储)。core文件中个别会保留寄存器信息(包含程序指针、栈指针等)、内存治理信息、CPU和操作系统状态和以及函数调用堆栈等信息。所以,core文件对于开发人员是十分重要的,很多时候咱们都须要依赖对core文件的剖析联合日志来定位和解决解体的问题。 core dump相干设置在linux中,core dump的一些相干设置办法: 查问:ulimit -c,查问后果为0则示意敞开core dump性能,零碎默认是敞开的。敞开:ulimit -c 0。关上:ulimit -c unlimited,不限度core文件大小,也能够限度指定大小,单位是blocks(个别为kB),如ulimit -c 100示意限度core文件大小为100k。批改core文件名生成规定:通过执行命令echo 1 > /proc/sys/kernel/core_uses_pid,能够将生成core文件的文件名改为core.pid。默认状况下,core dump生成的文件名为core,文件生成在程序当前目录下。且新的core会笼罩已存在的core。批改生成门路和文件名:通过批改/proc/sys/kernel/core_pattern能够管制core文件保留地位和文件格式。例如,通过命令echo "/tmp/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern将core文件保留在/tmp/corefile/目录下,文件名的格局为core-命令名-pid-工夫戳.core_pattern的命名参数如下: %e dump的命令名%p dump的过程PID%t dump工夫戳(由1970年1月1日起计的秒数)%s 导致本次core dump的信号%c 转储文件的大小下限%g dump的过程的理论组ID%u dump过程的理论用户ID%h 主机名产生core文件的必备条件环境变量的设置:通过后面介绍的ulimit –c等环境变量的设置关上core文件的生成限度。程序编译选项的设置:要产生 core 文件,编译器必须反对把以后过程的镜像以某种格局 dump 到一个文件中,常见的比方 gcc/g++ 的 -g 选项。解体时的非凡信号:Linux内核会依据过程退出时的信号的类型来决定是否要产生 core 文件。例如SIGSEGV、SIGABRT等信号会产生core,而SIGALRM、SIGPIPE等信号不会产生core。GDB调试core文件当程序core dump之后,应用命令gdb program core来查看 core 文件,其中 program 为可执行程序名,core 为生成的 core 文件名。而后执行bt(backtrace)命令查看函数的调用堆栈,定位解体产生的地位。其余gdb调试技巧在此不赘述。 core文件的毛病因为 core 文件是对过后过程地址空间的镜像,所以 core 文件大小个别都会比拟大,这样很占用磁盘空间,而且如果要将文件从服务器上下载到本地剖析也会比拟耗时。对于缓冲区溢出导致的 coredump ,过程的调用堆栈曾经被笼罩毁坏了, core 文件显示的堆栈信息往往谬误。程序因SIGALRM、SIGPIPE等信号解体,则不会产生 core 文件。

August 29, 2021 · 1 min · jiezi

关于linux:手把手教centos安装企业级redis集群

版本阐明 装置redis集群 redis集群搭建教程也是全网轻易能找的到,但很多都是写的demo,很多是依照单服务器来搭建多redis实例。这边就依照企业实在环境来搭建redis集群,防止很多人反复造轮子,毕竟站在不矮的人的肩膀上能力看的更远。此篇文章防止了防火墙端口问题、redis须要设置明码的权限问题。 版本阐明CentOS-7 redis-6.2.5 装置redis集群依照如图装置好6台redis服务,如果好奇为啥我这么多服务器或者如何搭建单台redis服务,请参考这篇文章https://blog.csdn.net/samllwi... redis.conf批改如下配置文件(每台redis服务的配置文件都要批改) cluster-enabled yes #开启redis集群cluster-config-file nodes.conf #保留集群节点信息的文件cluster-node-timeout 15000 #集群节点检测超时工夫cluster-announce-ip 192.168.61.12 #以后redis服务所在的ip,不同服务器上redis服务ip不同cluster-announce-port ${port} #以后redis服务的端口cluster-announce-bus-port 1${port} #以后服务总线端masterauth 123456 #配置连贯主节点须要的明码重启所有redis服务,kill掉所有服务器后,启动所有redis服务,这边介绍一下如何同时操作3台服务器 开启交互窗口 鼠标右键 输出命令,这样6台redis服务都会启动 redis-server /data/redis/redis6379/redis.confredis-server /data/redis/redis6389/redis.conf开启每台服务器需应用的端口 firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --zone=public --add-port=6389/tcp --permanent firewall-cmd --zone=public --add-port=16379/tcp --permanent firewall-cmd --zone=public --add-port=16389/tcp --permanent firewall-cmd --reload建设集群关系(三主三从,每台6379服务为主,6389服务为从) redis-cli --cluster create 192.168.61.12:6379 192.168.61.12:6389 192.168.61.13:6379 192.168.61.13:6389 192.168.61.14:6379 192.168.61.14:6389 --cluster-replicas 1 -a 123456 输出yes 呈现如下内容则示意配置胜利 如果呈现Waiting for the cluster to join这种字样始终刷新显示,则示意配置未胜利,有如下两个起因 ...

August 29, 2021 · 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/...微信公众号:入门小站 ...

August 28, 2021 · 1 min · jiezi

关于linux:Linux如何进行GPIO读写操作的

摘要:本文介绍GPIO的读写,介绍基本原理,以及不同读写形式的性能。本文分享自华为云社区《Linux 基于sysfs的GPIO读写操作》,作者:一颗小树x 。 前言最近接触到Linux零碎中的GPIO开发,这里做个小总结,也分享一下;本文会介绍GPIO的读写,介绍基本原理,以及不同读写形式的性能。 一、GPIO sysfs interface 基本原理在Linux中,最常见的读写GPIO形式就是用GPIO sysfs interface,是通过操作/sys/class/gpio目录下的export、unexport、gpio{N}/direction, gpio{N}/value(用理论引脚号代替{N})等文件实现的,经常出现shell脚本外面。 首先申明GPIO口,比方GPIO258:(这个命令须要root权限) echo 258 > /sys/class/gpio/export而后在/sys/class/gpio,会生成一个新目录,其名字叫gpio258 比方:GPIO258,N对应是258;进入其目录:cd /sys/class/gpio/gpio258 顺次能看到:active_low 、device、 direction 、edge 、power 、subsystem 、uevent 、value 其中比拟罕用的是value文件,它寄存GPIO的值;范畴是:0或1。咱们能够间接对它读写,达到读写GPIO的成果。 二、定义GPIO为输出比方定义GPIO258为输出,命令如下:(这个命令须要root权限) echo in > /sys/class/gpio/gpio258/direction 三、定义GPIO为输入比方定义GPIO258为输入,命令如下:(这个命令须要root权限) echo out > /sys/class/gpio/gpio258/direction 四、读GPIO的值咱们能够间接对/sys/class/gpio/gpio258 目录下的value文件(寄存GPIO的值),进行读取。 能够用cat 查看读GPIO的值,比方查看GPIO258的值: cat /sys/class/gpio/gpio258/valuevalue 只是一个文件,能够通过其余形式读取;写一个python程序,实现读取GPIO的值: # 定义一个函数,用于读取GPIO258的值。def read_258(): with open('/sys/class/gpio/gpio258/value', 'r') as f: io_258 = int(f.read()) print("read_258:%d"%io_258)# 调用函数read_258()五、写GPIO的值咱们能够间接对/sys/class/gpio/gpio258 目录下的value文件(寄存GPIO的值),进行写值。 能够用ehco 写GPIO的值,比方写GPIO258的值: echo 1 > /sys/class/gpio/gpio258/value # output logic 1 levelecho 0 > /sys/class/gpio/gpio258/value # output logic 0 level写一个python程序,实现写GPIO的值: ...

August 28, 2021 · 1 min · jiezi

关于linux:0110-Linuxbash编程

变量命名规定: 只能应用英文字母、数字与下划线,首个字符不能以数字结尾两头不能有空格,容许应用下划线不能应用标点符号不能应用 bash 里的关键字(可用help命令查看保留关键字)定义与应用变量: # 定义惯例变量[root@xiaojw ~]# name="leo"[root@xiaojw ~]# echo $nameleo# 定义只读变量:不能被更改和删除[root@xiaojw ~]# name=tom[root@xiaojw ~]# readonly name[root@xiaojw ~]# unset name-bash: unset: name: cannot unset: readonly variable# 删除变量[root@xiaojw ~]# age=18[root@xiaojw ~]# echo $age18[root@xiaojw ~]# unset age[root@xiaojw ~]# echo $age变量类型 字符串:name="leo"拼接字符串:greeting="hello,"$name"!"数组:array=(v1, v2, v3)取数组中某个值:value=${array}[n]独自赋值:array[n]=value条件分支ifif conditionthen command1 command2 ……fi循环forfor var in 取值范畴;do command1 command2 ……donewhilewhile condition;do commanddonebash 的根本应用read用于从终端或者文件中读取输出的外部命令读取整行输出每行开端的换行符不被读入应用: 从规范输出读取输出并赋值给变量\read var从规范输出读取多个内容\read var1 var2 var3不指定变量(默认赋值给 REPLAY)\read脚本参数传递$0:脚本名称$1-$n:获取参数$#:传递到脚本的参数个数$$:脚本运行的以后过程 id 号$*:以一个单字符串显示所有向脚本传递的参数$?:显示最初命令的退出状态;0 示意没有谬误,其余任何值表明有谬误算术运算[root@xiaojw ~]# a=10[root@xiaojw ~]# b=20# 加法[root@xiaojw ~]# expr $a + $b30# 减法[root@xiaojw ~]# expr $a - $b-10#乘法[root@xiaojw ~]# expr $a * $b200# 除法;后果只保留整数局部[root@xiaojw ~]# expr $a / $b0# 取余[root@xiaojw ~]# expr $a % $b10# 复制a=$b# 相等[ $a == $b ]# 不等于[ $a != $b ]# -eq:检测相等[ $a -eq $b ]# -ne:检测不相等[ $a -ne $b ]# -gt:检测右边是否大于左边的值[ $a -gt $b ]# -lt:检测是否小于[ $a -lt $b ]# -ge:检测是否大于等于[ $a -ge $b ]# -le:检测是否小于等于[ $a -le $b ]学习材料阮一峰-Bash 脚本教程 ...

August 28, 2021 · 1 min · jiezi

关于linux:0109-Linux三剑客awk

定义把文件逐行读入,以空格为默认宰割符,将每行切片,切开的局部再进行后续解决 解决流程: 格局:awk [参数] 'pattern action' [文件] pattern:正则表达式action:对匹配到的内容执行的命令(默认为输出每行内容)罕用参数:FILENAME:awk 浏览的文件名BEGIN:解决文本前要执行的操作END:解决文本后要执行的动作FS:设置输出域宰割符,等价于命令行 -F 参数NF:浏览记录的域的个数(列数)NR:已读的记录数(行数)OFS:输入域宰割符ORS:输出记录宰割符RS:管制记录宰割符$0:整条记录$n:示意以后行的第n个域实战利用搜寻 /etc/passwd 文件中,蕴含 root 关键字的所有行,并打印对应的 shell$ cat /etc/passwd | head -2root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologin$ awk -F : '/root/{print $0}' /etc/passwd # $0:整行打印root:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin$ awk -F : '/root/{print $7}' /etc/passwd/bin/bash/sbin/nologin打印 /etc/passwd 文件第2行的信息$ awk -F : 'NR==2{print $0}' /etc/passwdbin:x:1:1:bin:/bin:/sbin/nologin应用 BEGIN 退出题目$ awk -F : 'BEGIN {print "开始"} {print $1 $2}' /etc/passwd | head -5开始rootxbinxdaemonxadmx自定义行宰割符$ echo "111 222|333 444|555 666" | awk 'BEGIN{RS="|"}{print $0}'111 222333 444555 666课程实战利用找出log中的404,500的报错:$ cat nginx.log | head -3223.104.7.59 - - [05/Dec/2018:00:00:01 +0000] "GET /topics/17112 HTTP/2.0" 200 9874 "https://www.googleapis.com/auth/chrome-content-suggestions" "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/70.0.3538.75 Mobile/15E148 Safari/605.1" 0.040 0.040 .$ less nginx.log | awk '$9~/404|500/'# 统计个数$ less nginx.log | awk '$9~/404|500/'|awk '{print $9}'|sort|uniq -c 266 404 1 500找出访问量最高的 IP$ less nginx.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -3 282 216.244.66.241 130 136.243.151.90 110 127.0.0.1实用技巧:查看切割后,各字段对应第几列$ less nginx.log | head -1 | awk '{for(i=1;i<=NF;i++) print "$"i" = "$i}'$1 = 223.104.7.59$2 = -$3 = -$4 = [05/Dec/2018:00:00:01$5 = +0000]$6 = "GET$7 = /topics/17112$8 = HTTP/2.0"$9 = 200$10 = 9874$11 = "https://www.googleapis.com/auth/chrome-content-suggestions"$12 = "Mozilla/5.0$13 = (iPhone;$14 = CPU$15 = iPhone$16 = OS$17 = 12_1$18 = like$19 = Mac$20 = OS$21 = X)$22 = AppleWebKit/605.1.15$23 = (KHTML,$24 = like$25 = Gecko)$26 = CriOS/70.0.3538.75$27 = Mobile/15E148$28 = Safari/605.1"$29 = 0.040$30 = 0.040$31 = .取出最大的响应工夫$ less nginx.log | awk '{print $(NF-1)}' | sort -nr | head -186462.600取出 top3 的响应工夫,并打印出对应的接口$ less nginx.log | awk '{print $(NF-1), $7}' | sort -nr | head -386462.600 /cable77331.425 /cable59394.978 /cable取出所有申请的均匀$ less nginx.log | awk '{sum+=$(NF-1)}END{print sum/NR}'1082.57计算每个接口的均匀响应工夫,并取出 top3$ less nginx.log | awk '{time[$7]+=$(NF-1); count[$7]+=1}END{for(k in time) print time[k]/count[k], k}'| sort -nr | head -33707.26 /cable5.592 /topics/95242.19 /topics/8343?locale=en计算每个 URL 的顶层路由地址所对应的 QPS(每秒的申请次数),并打印 top5 的顶级路由less nginx.log | awk '{print $4,$7}' | sed 's#[?!].*##' | sed -E 's#([^ ]*) *(/[^/]*).*#\1:\2#' | sort | awk -F: '{cur=($3*60+$4);}NR==1{min=cur; max=cur;}NR>1{count[$NF]+=1; if(cur<min) min=cur; if(cur>max) max=cur;}END{for(k in count) print k,count[k]/(max-min+1)}' | sort -k2 -nr | head -5每隔1秒统计下 aliyundun 的2个过程的 cpu 与 内存,分类汇总下 10s 内的均匀 cpu 与响应工夫$ top -b -d 1 -n 10 | grep -i aliyundun | awk '{cpu[$NF]+=$(NF-3);mem[$NF]+=$(NF-2);count[$NF]+=1}END{for(k in cpu) print k, cpu[k]/count[k], mem[k]/count[k]}'AliYunDunUpdate 0 0.1AliYunDun 0.8 1.2统计以后服务器上每个监听端口对应的网络状态的数量$ netstat -tn | awk '{print $4, $NF}' | awk -F: '{print $NF}' | sort | uniq -c 15 22 ESTABLISHED 3 25 TIME_WAIT 1 51368 TIME_WAIT 1 51374 TIME_WAIT 1 51380 TIME_WAIT 1 51386 TIME_WAIT 1 57968 ESTABLISHED 4 9101 TIME_WAIT 1 9102 ESTABLISHED 1 Local State 1 (w/o servers)

August 28, 2021 · 2 min · jiezi

关于linux:0109-Linux三剑客sed

定义sed 是流编辑器,一次解决一行内容 对文本的解决流程:(模式空间是重点) 格局:sed [-hn][-e<script>][-f<script file>][file] -h:显示帮忙文档\-n:仅显示 script 解决后的后果\-e<script>:已选项中指定的 script 来解决输出的文本文件\-f<script文件>:已选项中指定的 script 文件来解决输出的文本文件\罕用动作(以下动作不会扭转源文件内容) a:新增;sed -e '4 a newline':在第4行后新增一行\c:取代;sed -e '2-5 c No 2-5 number'\d:删除;sed -e '2,5 d':删除第 2,5 行\i:插入;sed -e '2 i newline':在第2行前插入一行\p:打印;sed -n '/root/p':只打印蕴含 root 的行;/***/中的内容示意正则匹配语法脚本\s:替换;sed -e 's#old#new#g':将 old 替换为 new,g 代表全局替换;# 能够换成 /,@等\实战利用 在第4行前面增加新字符串$ cat testroot root hello rootrootrootleokatehogwartstringleon$ sed -e '4 a newline' testroot root hello rootrootrootleonewline # 新插入的行katehogwartstringleon在第2行前增加新字符串$ sed -e '2 i newline' testroot root hello rootnewline # 在第2行前增加rootrootleokatehogwartstringleon全局替换$ sed -e 's/root/hello/g' testhello hello hello hellohellohelloleokatehogwartstringleon间接批改源文件;留神:要提前对源文件进行备份$ sed -i 's/root/user/' test$ cat testuser root hello rootuseruserleokatehogwartstringleon课程实战利用联合 w 命令查看在线人数w | sed '1, 2d' | awk '{print $1}' | sort | uniq -c | wc -l

August 28, 2021 · 1 min · jiezi

关于linux:Linux-下-pip-多版本管理

我有一个ubuntu20 ,自带的 python3 解释器版本是3.8 ,然而我通过 sudo pip install python3.9 装置了一个 python3.9 而后我想给 python3.9 装置一个 pip 包管理器,如果通过 sudo apt install python3-pip 命令装置 pip 的话,是默认给 python3.8 装置的。 要验证我说的真实性,你能够在终端输出 pip -V pip -V pip 21.2.4 from /home/bot/.local/lib/python3.8/site-packages/pip (python 3.8)所以,这个时候,先卸载通过 apt 包管理器装置的 pip sudo apt purge python3-pip步骤一: 运行 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py ➜ ~ cd Downloads ➜ Downloads curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 1911k 100 1911k 0 0 1864k 0 0:00:01 0:00:01 --:--:-- 1864k步骤二: ...

August 28, 2021 · 1 min · jiezi