-
CentOS 8 成为绝版!到底发生了什么?
CentOS 的一生走到了尽头... 1 CentOS 8 成为绝版 12 月 8 日,CentOS 项目宣布,CentOS 8 将于 2021 年底结束,而 CentOS 7 将在其生命周期结束后停止维护。 CentOS 官方发文称 CentOS Stream 才是 CentOS 项目的未来,在接下来的一年里,将逐步把开发工作的重心从 CentOS 往 CentOS Stream 转移。 做为程序员应该都知道,CentOS 在国内有着大量的用户,几乎是所有互联网公司的标配,包括我们知道的BAT等一线大厂。 除过 Windows\Mac 系统外,我最熟悉的就是 CentOS 了,当初学习 Linux 就是从 CentOS 开始的。 在我最后的一家公司,使用了几百台 CentOS 的服务器,公司所有核心项目,数据库、文件系统都是在 CentOS 上面搭建。 但是现在 CentOS 要跟我们永远说再见了,因为它的主人要推 CentOS Stream,这究竟是为什么呢? 2 CentOS 发展历史 为了让大家了解 CentOS Stream 是什么鬼?以及红帽公司为什么要关闭 CentOS。 我的和大家先聊聊 CentOS 的发展历史,以及红帽公司对 CentOS 发展的影响,这样才能明白为什么 CentOS 走到了今天。 2003年,Fedora 项目成立,该项目用以统筹 Fedora Linux 操作系统开发的社,是一个完全开源的社区。 当时是由 Red Hat Linux 及 Fedora Linux 项目合并而成立的,Fedora 成立之初就受到红帽公司的赞助。 2004年,红帽公司发布自己的商业 Linux 发行版本 RHEL。RHEL 使用Fedora 作为上游,但发布周期更长。 RHEL 是红帽公司推出的商业版本,但是源代码是开源的,任何人都可以使用这份代码,但如果需要商业支持就需要交一笔钱。 同年,CentOS 项目成立,CentOS 是一个社区支持的发行版本,使用了 RHEL 做为上游开发的项目。 CentOS 和 RHEL 不一样,它完全开源,更新比 RHEL 慢一些,但也更稳定一些。CentOS 和 RHEL 分别由不同的开发团队研发。 变故出现在2014年。 红帽公……
SE_Meng 2025-01-028 0 0 -
echo:编程界的“反噬者”
echo的名字意思是“回声”,动词意词是“回响”,就是产生回声。 echo本来是在Unix或Linux的shell命令行中使用的命令,但在Windows的cmd命令行窗口也是支持的,只不过使用方式有些不同。 一、基础版 echo "Hello, World!" 这个命令的功能想必大家都能猜到,就像我们学的第一个C语言程序一样,打印出一串字符。 同样是打印为什么叫echo而不叫print或printf呢,因为它想向你展示的是这样的情景: 你双手合拢在嘴巴前,大喊一声“Hello, World!”。 人们各忙各的,没人理你…… 片刻后,大山那边传来一声“Hello, World!”。 还是山里人厚道啊! 这里要注意一点,上面的语法适用于Linux,如果在Windows下打印不用引号: echo Hello, World! 二、变量传递 echo不仅仅能输出固定的文字,它还能输出变量的值。比如Linux下: name="World" echo "Hello, $name!" 无论你丢过去什么name,它都回原封不动的返还给你,像不像一门失传的武功:斗转星移? 在Widows下有点儿繁琐,需要改成下面的形式: set name=World echo Hello, %name%! 看到没,Windows下给变量赋值得在变量前加个set,然后使用时得用两个%像肉夹馍一样夹住变量名。 在Windows下还可以直接用下面的命令输出用户名、当前日期和时间: echo %username% echo %date% echo %time% 三、变量传递 你以为echo只会回应你的“喊话”?它还能把它们写到文件里去呢! 这分明是另一门武功:乾坤大挪移。 Linux: echo "Hello, World!" > file.txt Windows: echo Hello, World! > file.txt 如果文件已经存在,则会被覆盖;如果文件不存在,则会创建新文件。 如果想在文件末尾追加内容,只需将>改为>>即可。 四、管道传输 echo还能和其他命令联手,通过管道(|)传递数据。比如,你想把一句话转换成大写,再输出,在Linux下可以这样做: echo "hello, world!" | tr '……
SE_Yang 2024-12-3112 0 0 -
【转载】Linux下 RPM 包和Deb包的安装(代码指令+案列)
目录 案列一:(Centos下)RPM包的安装: ——tree的安装 案列二:(Kali linux 下)安装Deb包: ——安装dpkg —— 安装 gdebi RPM [1] 是Red-Hat Package Manager(红帽软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。 案列一:(Centos下)RPM包的安装: ——tree的安装 查看自己系统镜像位置:鼠标右键点击镜像——》在终端打开:(tree的寻找) [poem@localhost CentOS 7 x86_64]$ pwd ——查看位置 /run/media/poem/CentOS 7 x86_64 [poem@localhost CentOS 7 x86_64]$ 安装详细步骤: [root@localhost local]# cd /run/media/poem/ [root@localhost poem]# ls CentOS 7 x86_64 [root@localhost poem]# cd CentOS\ 7\ x86_64/ [root@localhost CentOS 7 x86_64]# ls CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL [root@localhost CentOS 7 x86_64]# du -sh Packages/ ——查看包大小 3.9G Packages/ [root@localhost CentOS 7 x86_64]# [root@localhost Packages]# ls | grep "tree" ——使用“|”过滤出tree texlive-pst-tree-svn24142.1.12-45.el7.noarch.rpm tree-1.6.0-10.el7.x86_64.rpm [root@localhost Packages]# [root@localhost Packages]# rpm -qa ——列出所有已经安装的RPM包 [root@localhost Packages]# rpm -qa | tree ——数量太多,难以查找,用“|”过滤 bash: tree: command not found... ——没有发现,所以没有安装 [root@localhost Packages]# [root@localhost Packages]# rpm -qpi tree-1.6.0-10.el7.x86_64.rpm ——查看软件的信息,……
SE_Ning 2024-12-277 0 0 -
【转载】yum的基本使用(命令+案列)
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装 yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁。 一、普通一般安装vim ——卸载: [root@localhost Packages]# [root@localhost Packages]# rpm -qa | grep vim ——列出已经安装过的vim包 vim-common-7.4.629-7.el7.x86_64 vim-filesystem-7.4.629-7.el7.x86_64 vim-enhanced-7.4.629-7.el7.x86_64 vim-minimal-7.4.629-7.el7.x86_64 [root@localhost Packages]# rpm -e vim-enhanced ——卸载 [root@localhost Packages]# rpm -e vim-common ——卸载 [root@localhost Packages]# [root@localhost Packages]# rpm -qa | grep vim ——查看卸载成功 vim-filesystem-7.4.629-7.el7.x86_64 vim-minimal-7.4.629-7.el7.x86_64 [root@localhost Packages]# ——安装: [root@localhost Packages]# rpm -ivh vim-common-7.4.629-7.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh vim-enhanced-7.4.629-7.el7.x86_64.rpm 二、使用yum安装: [root@localhost etc]# cd /run/media/poem/CentOS\ 7\ x86_64/ [root@localhost CentOS 7 x86_64]# ls CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL [root@localhost CentOS 7 x86_64]# cd Packages/ [root@localhost Packages]# rpm -qa | grep vim vim-filesystem-7.4.629-7.el7.x86_64 vim-common-7.4.629-7.el7.x86_64 vim-enhanced-7.4.629-7.el7.x86_64 vim-minimal-7.……
SE_Ning 2024-12-2710 0 0 -
【转载】Linux——粘滞位(sbit)、sgid、suid 权限
一、讲解 +指令 (1)粘滞位(sbit):针对目录进行赋权,目录中创建的文件只有建立者可以删除 chmod o+t 目录(然后再测试一遍是否能删除,tmp 目录是粘滞目录,存放进 程的临时文件) chmod o-t 目录 (2)sgid:sgid 针对目录建立的权限,在该目录中建立的文件所属组继承父目录的属组 chmod g+s 文件 (然后使用 tom 新建一个文件 查看所属组是否属于父目录) chmod g-s 文件 (3)suid: 对可执行文件建立。谁运行该文件,则继承该文件所属者的权限(与系统安全有联系) chmod u+s 文件 chmod u-s 文件 find 可查找名、类型、权限的文件在哪 注:root用户凌驾与所有规则之上 二、案列:给vim赋一个suid权限 此时:在普通用户情况下,无法使用vim查看和编辑 etc/shadow 给vim赋一个suid权限 [root@localhost tmp]# [root@localhost tmp]# cd / [root@localhost /]# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr [root@localhost /]# cd bin/ [root@localhost bin]# ls | grep vim rvim vim vimdiff vimtutor [root@localhost bin]# chmod u+s /usr/bin/vim [root@localhost bin]# 此时可以查看和编辑: ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/qq_62311779/article/details/124075561
SE_Ning 2024-12-277 0 0 -
【Linux】CentOS 7 忘记root密码,单用户模式重置密码。
目录 方法一: 1.首先重启系统 2.进入编辑模式进行编辑 3.进入微型系统,获取shell 4.查看挂载信息 5.重新挂载,使其拥有读写权限。 6.切换系统环境 7.修改密码 8.touch隐藏文件 9.恢复系统环境,重启系统 10.密码修改完成,重新登陆系统 方法二(新版简便): 1.进入编辑模式 2.进入单用户xshell模式 3.切换系统环境 4.更改root密码 5.继续启动环境 方法一: 1.首先重启系统 #进入启动界面内之后在启动选项按“e”进入编辑模式。 2.进入编辑模式进行编辑 #进入编辑模式后会看到这些信息。找到“Linux16”开头的行,在 Linux16 的行尾空格后添加“rd.break” #添加完成之后,只需要按crtl+x 即可。(按照修改后的设置启动) 3.进入微型系统,获取shell 4.查看挂载信息 #在启动之后会发现我们获取了一个shell,可以正常使用一部分命令了。但同时我们也会发现,当前系统中的数据和我们之前系统中的数据并不一致(某些之前系统上的文件当前都是见不到的)。现在我们查看一下挂载信息,看是否正常。 #我们通过挂载信息会发现,实际上我们原有的系统被挂载在了/sysroot 目录下了,并且是不具备 rw 读写权限的。 mount | grep root 5.重新挂载,使其拥有读写权限。 mount -o remount,rw /dev/mapper/centos-root /sysroot/ 6.切换系统环境 chroot /sysroot/ #chroot 命令用于切换根目录,在切换根目录之前,根分区存在于/sysroot 中,切换之后当前使用的根目录就是我们之前正常登录系统所使用的根目录。 7.修改密码 passwd root #直接使用passwd 命令对用户密码进行修改。 8.touch隐藏文件 touch /.autorelabe #在修改之后需要touch 一个隐藏文件.autorelabel,因为在rd.break 环境下 SELinux 是不生效的。在不生效的情况下我们修改了用户的密码,也就是修改了/etc/shadow文件,所以密码文件的安全上下文的特性会被取消。如果……
SE_Yang 2024-12-279 0 0 -
CentOS密码忘记如何重置root密码
root密码可以通过以下方式进行重置: 1.重启系统,在系统引导界面按“e”键进入编辑界面 2.将光标移动到最后一行,在系统语言后边添加 rw single init=/bin/bash(rw表示读写权限,single表示单用户模式,/bin/bash解释器)修改单用户模式权限 3.输入Ctrl+x启动单用户模式 4.通过passwd命令修改root密码 5.通过exec /sbin/init 切换到命令模式 6.需要输入前边设置的root密码才能切换成功 7.通过reboot重启系统就可以使用新密码登录了
SE_Yang 2024-12-279 0 0 -
Linux系统进阶:主机状态监控、环境变量、文件传输及压缩解压技巧
目录 🛠️ Linux系统进阶:主机状态监控、环境变量、文件传输及压缩解压技巧 一、主机状态监控 1. 监控CPU使用情况 2. 监控内存使用情况 3. 监控磁盘使用情况 4. 网络监控 二、环境变量 1. 查看环境变量 2. 设置环境变量 三、Linux文件的上传和下载 1. 使用scp上传和下载文件 2. 使用rsync同步文件 3. 使用ftp上传和下载文件 四、压缩和解压 1. 使用tar命令 2. 使用gzip压缩和解压 3. 使用zip和unzip 总结 🛠️ Linux系统进阶:主机状态监控、环境变量、文件传输及压缩解压技巧 继前几篇关于Linux基础和系统管理的文章之后,本文将深入探讨Linux系统中的一些进阶操作,包括主机状态监控、环境变量的设置和管理、Linux文件的上传和下载方法,以及文件压缩和解压的常用命令。这些技巧对于提高Linux系统使用效率和处理文件的能力至关重要。 一、主机状态监控 监控Linux主机的状态对于系统管理员来说是一项重要的任务,可以帮助及时发现和解决性能问题。 1. 监控CPU使用情况 实时监控CPU: top 1 或者 htop 1 CPU详细信息: lscpu 1 2. 监控内存使用情况 实时监控内存: free -h 1 内存详细信息: vmstat 1 3. 监控磁盘使用情况 磁盘空间使用情况: df -h 1 磁盘I/O统计: iostat 1 4. 网络监控 网络连接统计: netstat -an 1 网络流量监控: iftop 1 二、环境变量 环境变量在Linux系统中扮演着重要的角色,它们可以配置用户的工作环境。 1. 查看环境变量 env 1 或者查看特定环境变量: echo $PATH 1 2. 设置环境变量 临时设置环境变量: export VARIABLE_NAME=value 1 永久设置环境变量(添加到~/.bashrc或~/.profile): echo 'export VARIABLE_NAME=value' >> ~/.bashrc source ~/.bashrc 1 2 三、Linux文件的上传和下载 在Linux中,文件的上传和下载可以通过多种方法实现,包括scp、rsync和ftp。 1. 使用scp上……
SE_Yang 2024-12-276 0 0 -
linux系统启动报错:file system check of the root filesystem failed
一、场景还原 在系统在疯狂读写时,软件或者系统突然停止工作,导致重启是包以下类似的错误: Begin: Will now check root file system ... fsck from util-linux 2.27.1 [/sbin/fsck.ext4 (1) -- /dev/mapper/ubuntu-lv-mapper] fsck.ext4 -a -C0 /dev/mapper/ubuntu-lv-mapper /dev/mapper/ubuntu-lv-mapper: One or more block group descriptor checksums are invalid. FIXED. /dev/mapper/ubuntu-lv-mapper: Group descriptor 64 checksum is 0x0000, should be 0xe333. /dev/mapper/: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options) fsck exited with status code 4 done. Failure: File system check of the root filesystem failed The root filesystem on /dev/mapper/ubuntu-lv-mapper requires a manual fsck BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash) Enter 'help' for a list of built-in commands. 1 2 3 4 5 6 7 8 9 10 11 12 13 并在下错误下面显示了(inittramfs)和一个闪烁的光标 二、解决方案 1、排查问题: 是否磁盘损坏 因为我这是重启过后引导出现问题,并且通过替他系统确认过磁盘并没有损坏 磁盘损坏了导致这个问题那就只能进行更换磁盘了,毕竟磁盘都坏了 2、问题解决–方法1 既然不是磁盘损坏,那就是文件系统出现了问题了 按照提示进行fsck检查: fsck -f || fsck -r -V 输入指令后会弹出以下字样: fsck from XXXXXX Checking all file systens. 1 2 随后输入指令: fsck -f -V <错误显示的分区>(我的是/ev/mapper/ubuntu-lv-mapper) 这时候会弹出大量修复,并需要人为选择y/n 如果没有什么要注意的可以直接敲回车,一路到底 最后重启就解决了 3、问题解决–方法2 方法2和方法1相同,只……
SE_Gao 2024-11-2521 0 0 -
Linux笔记—gcc/g++与编译链接
1. 简单介绍 GCC(GNU Compiler Collection)是一个广泛使用的编译器集合,支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada和Go等。 GCC中的C编译器通常被称为gcc,而C++编译器则被称为g++。 gcc和g++的区别 gcc:主要用于编译C语言代码。对于文件扩展名为.c的源文件,gcc会将它们作为C代码处理。 g++:主要用于编译C++语言代码。对于文件扩展名为.cpp、.cc、.cxx或.C的源文件,g++会将它们作为C++代码处理。 gcc和g++都是GNU编译器集合的一部分,但g++是专门用于C++编译的,而gcc则是一个更通用的编译器,可以处理C、C++在内的多种语言。在编译C++代码时,使用g++可以避免手动链接C++库的麻烦,并且能够确保C++特性的正确处理。 gcc与g++的使用方式十分相似,接下来我们主要以gcc编译C语言代码为例介绍。 2. 编译源代码 执行下面的指令即可使用gcc编译源代码,生成可执行程序或中间文件: gcc -o [目标文件] [编译选项] [要编译的文件] gcc [编译选项] [要编译的文件] -o [目标文件] [-o]选项用于指定要生成的文件的名称,若未指定则会发生默认行为,这个我们在下文中再进行讲解;[选项]用于选择将要编译的文件编译到哪个阶段。 2.1 编译的四个阶段 编译实际上会经历四个阶段:预处理、编译(整个编译过程中的一步)、汇编、链接。 在进行前三个阶段的过程中,每个阶段结束都会产生一个中间文件,以便下一个阶段接手该阶段的工作: • 预处理(进行宏替换/去注释/条件编译/头文件展开等) [.c文件] -> [.i文件] • 编译(生成汇编代码) [.i文件] -> [.s文件] • 汇编(生成二进制机器码) [.s文件] -> [.o文件] • 链接(将各个[.o文件]及相关库进行链接,生成可执行程序或库文件) [.o文件] -> [可执行程序或库文件] 可通过下面的选项控制执行到哪个阶段: • [-E]:到预处理阶……
SE_Yang 2024-11-225 0 0