CentOS
  • [Linux关键词]内建命令

    内建命令 Linux 内建命令是指那些直接由操作系统核心提供,无需额外安装就可以在 Linux 环境下运行的基本命令。它们通常与 Linux 的系统管理、文件操作、网络管理等核心功能相关,例如 ls, cd, pwd, cat, mkdir 等。这些命令是 Bash 或其他 shell 环境默认支持的,不需要额外配置或第三方软件包就能使用。内建命令通常执行效率较高,因为它们是直接集成在内核或shell环境中的。 echo $? 在Linux系统中,echo $?是一个常用的命令行操作,它用于检查上一条命令的退出状态码(Return Code)。当你运行一个命令后,如果该命令成功执行,那么 $? 将显示0;如果命令执行失败, $? 就会显示相应的错误码,这个值通常是非零的。例如,如果你尝试运行一个不存在的命令,echo $?将返回一个非零值,表示命令执行出错。通过这种方式,你可以判断前一条命令是否成功完成。 进程僵尸 进程僵尸(Zombie Process),在计算机科学特别是操作系统中,是指那些已经结束但其父进程尚未通过wait()或waitpid()系统调用收集其退出状态的子进程。当一个子进程正常结束,它会产生一个退出状态,这个状态通常包含一些关于子进程结束原因的信息。如果父进程没有及时接收到这个信息并清除子进程的描述符,子进程就会变成僵尸进程。 僵尸进程不会占用额外的内存或CPU资源,但它会累积在系统中,增加系统资源管理的复杂性,因为每个僵尸进程都需要保留一份记录。此外,过多的僵尸进程可能会导致系统资源统计错误,因为它们虽然没有活动,但在计数上还是存在的。 正确的做法是,父进程应该定期检查是否有僵尸进程,一旦发现就调用wait()或waitpid()清理它们,以维护系统的健康和性能。 export 在Linux环境下,export是一个命令行工具,主要用于设置环境变量,并使其在当前shell会话以及所有由此启动的子shell中有效。当你在一个脚本中设置了某个……

    SE_Yang 2024-11-20
    7 0 0
  • 入门!Linux 常见指令及权限管理全面指南

    Linux 操作系统在现代计算机应用中扮演着重要的角色,广泛用于服务器、桌面系统、嵌入式设备及云计算平台等领域。理解和掌握 Linux 常见指令及权限管理机制,是每一位系统管理员和开发人员的基础技能。本文将详细介绍 Linux 系统的基本背景、常用指令、权限概念及其管理方法,并通过实际案例来更好地理解这些内容。 那么,我们进入正题! 一、Linux 系统的背景 1. Linux 的发展历史 Linux 系统由芬兰赫尔辛基大学的 Linus Torvalds 于 1991 年创建,其灵感来源于 UNIX 和 MINIX。最初的 Linux 版本发布于 Usenet 社区,该系统因其开源性和灵活性迅速在全球范围内获得广泛关注,并逐渐形成了一个庞大的社区生态。Linux 是自由和开源软件的典型代表,任何人都可以自由使用、修改和分发其源代码,这极大地推动了操作系统的发展与创新。 随着计算机技术的发展,Linux 在服务器、桌面系统和嵌入式设备等多个领域迅速普及。目前,Linux 已经成为云计算和大数据平台的首选操作系统,甚至在智能手机领域(如 Android)也占据了主导地位。 2. 开源文化和 Linux 的作用 Linux 的开源性不仅使其成为众多开发者的学习工具,还带动了一系列开源项目的发展。开源文化提倡代码共享和协作,使得开发人员能够共同改进软件,解决问题。GNU 通用公共许可协议(GPL)是 Linux 内核的许可协议,要求所有基于 GPL 许可的衍生作品在发布时必须公开源代码,从而保障了软件的自由性和用户的基本权益。 二、Linux 常见指令 Linux 提供了一系列常用的命令行工具,用于文件操作、系统管理、网络操作等任务。以下是一些基本的命令及其使用方式。 1. ls 命令:列出目录内容 ls 命令用于列出指定目录下的文件和子目录。常见选项包括: -a:显示所有文件,包括隐藏文件。 -l:显示文件的详细信息。 -R:递归显示所有子目录内容。 ls -al /home/us……

    SE_Yang 2024-11-19
    7 0 0
  • Linux 基本命令 ——tar(打包)

    tar:是要用来 打包或者解包 的命令,同时也是 压缩或者解压缩 的命令,常常用作备份文件使用,或将许多文件打成一个包并压缩。 注意:以下代码中 ^C 结尾的为注释行;蓝色字体为目录;红色字体为包 一、打包 tar -cf 包名 要被打包的文件或目录 tar [选项] [目标包名] [源文件或目录] 选项: -c:创建一个包 -f:;定义目标包 目标包名: 要打成的包名 源文件名或目录名: 哪些文件或目录要被打成包 代码如下: [root@iZbp1gh065n66eoqapqav5Z ~]# 快捷键 Ctrl+C 可以使得此行命令无效并进入新一行^C [root@iZbp1gh065n66eoqapqav5Z ~]# Ctrl+C 快捷键后会出现 ^c 指令,表示忽略此行命令^C [root@iZbp1gh065n66eoqapqav5Z ~]# 所以本篇博客代码中命令行出现 ^c 指令的请看做注释行^C [root@iZbp1gh065n66eoqapqav5Z ~]# 显示当前目录下所有文件及目录^C [root@iZbp1gh065n66eoqapqav5Z ~]# ls a.txt dir1 ds shellday1 soft [root@iZbp1gh065n66eoqapqav5Z ~]# 将 dir1 目录, a.txt 文件打包为aa.tar^C [root@iZbp1gh065n66eoqapqav5Z ~]# tar -cf aa.tar ./dir1 ./a.txt [root@iZbp1gh065n66eoqapqav5Z ~]# ls aa.tar a.txt dir1 ds shellday1 soft [root@iZbp1gh065n66eoqapqav5Z ~]# 使用 ls 命令再次查看当前目录下的文件及目录^C [root@iZbp1gh065n66eoqapqav5Z ~]# 可以看到出现了 aa.tar ,说明打包成功^C 二、查看包(在不解包的情况下查看) tar -tf 包名 tar [选项] [包名] 选项: -t:查看包里面的文件或目录 -f:;定义目标包 -v:显示打包过程(不重要,压缩包也适用) 目标包名: 要查看的包的路径 代码如下: [root@iZbp1gh065n66eoqapqav5Z ~]# 上一段代码将 dir1 目录, a.txt 文件打包为 aa.tar 包^C [root@iZbp1gh065n66eoqapqav5Z ~]# 使用 tar -tf aa.tar 可查看包内容^C [root@iZbp1gh065n6……

    SE_Yang 2024-11-18
    9 0 0
  • 已解决centos7 yum报错:cannot find a valid baseurl for repo:base/7/x86_64的解决方案

    出现cannot find a valid baseurl for repo:base/7/x86_64错误通常是由于YUM仓库源无法找到或无法访问,导致YUM无法正常工作。这种情况常见于CentOS 7系统。解决这个问题需要检查几个方面,如网络连接、DNS设置和YUM仓库源配置。 已解决centos7 yum报错:cannot find a valid baseurl for repo:base/7/x86_64的解决方案 报错说明 方法一:检查网络连接 检查网络连接 方法二:检查DNS设置 更新DNS配置 检查是否能解析域名 方法三:检查YUM仓库配置 更新YUM仓库源 示例:使用官方CentOS镜像配置 清理YUM缓存并重建缓存 方法四:使用阿里云或其他国内镜像源 清理并重建缓存 总结 报错说明 出现cannot find a valid baseurl for repo:base/7/x86_64错误通常是由于YUM仓库源无法找到或无法访问,导致YUM无法正常工作。这种情况常见于CentOS 7系统。解决这个问题需要检查几个方面,如网络连接、DNS设置和YUM仓库源配置。以下是详细的排查解决方法。 方法一:检查网络连接 首先,确保你的系统可以连接到互联网。这很重要,因为YUM需要访问远程仓库来下载软件包。 检查网络连接 可以通过以下命令检查系统是否能访问外部网站: ping -c 4 google.com 如果不能ping通,可能是网络配置问题。你需要确保网络连接正常,可能需要重新启动网络服务: sudo systemctl restart network 方法二:检查DNS设置 如果你的网络连接正常但依然不能访问仓库,可能是DNS问题。 更新DNS配置 编辑/etc/resolv.conf文件,确保其中包含有效的DNS服务器,例如Google的公共DNS: sudo nano /etc/resolv.conf 添加以下行: nameserver 8.8.8.8 nameserver 8.8.4.4 保存文件并退出。 检查是否能解析域名 再次检查系统是否能解析域名: ping -c 4 google.com 方法三:检查YUM仓库配置 如果网络连接和DNS设置都正常,可能是YUM仓库配置有问题,需要检……

    SE_Yang 2024-11-18
    1.8K+ 0 2
  • Linux安全与密钥登录指南

    在使用Linux服务器时,确保服务器的安全至关重要。本文将为你介绍一些关键的Linux安全措施,包括开启密钥登录、查看登录日志、限制登录IP以及查看系统中能够登录的账号。以下内容适合小白用户,通过简单的操作就能有效提升服务器的安全性。 目录 Linux安全概述 密钥登录的配置 生成密钥对 配置SSH密钥登录 查看登录日志 限制IP访问 设置IP封禁 允许特定IP访问 查看系统可登录的账号 1. Linux安全概述 Linux系统安全主要依赖于控制访问权限、监控异常行为以及进行安全配置。通过适当的登录方式和访问限制,可以有效避免未经授权的访问。密钥登录是一种更安全的认证方式,避免了明文密码的风险。而登录日志和IP限制则可以帮助我们识别和防御潜在的入侵。 2. 密钥登录的配置 密钥登录是一种比密码登录更安全的方式,通过生成一对公钥和私钥来验证用户身份。以下是配置步骤。 2.1 生成密钥对 在客户端(例如你的电脑)上生成密钥对: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 1 执行后,会提示你设置密钥存放的路径(默认是~/.ssh/id_rsa),可以直接按Enter使用默认路径。接下来,如果你愿意,可以设置密钥的密码保护。 2.2 配置SSH密钥登录 将生成的公钥复制到Linux服务器上: ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip 1 确认公钥文件已被正确添加到服务器上的~/.ssh/authorized_keys文件中。 在服务器上修改SSH配置,确保允许密钥登录并禁用密码登录: 编辑/etc/ssh/sshd_config文件: sudo nano /etc/ssh/sshd_config 1 确保以下设置: PasswordAuthentication no PubkeyAuthentication yes 1 2 保存文件并重启SSH服务: sudo systemctl restart ssh 1 3. 查看登录日志 Linux系统会记录所有登录活动。可以使用以下命令查看登录日志: sudo cat /var/log/auth.log | grep 'sshd' 1 ……

    SE_Yang 2024-11-18
    23 0 0
  • 深度探索:Linux CentOS 7内核的奥秘与管理之道

    目录 一、引言 1、Linux简介 2、CentOS 7简介 3、什么是内核 二、Linux CentOS 7内核概述 1、CentOS 7内核版本介绍 2、内核源码与开放源代码理念 三、CentOS 7内核管理 1、查看内核版本 2、内核升级 一、引言 1、Linux简介 起源与发展 诞生时间:Linux最早由芬兰赫尔辛基大学计算机科学系的学生林纳斯·托瓦兹(Linus Torvalds)于1991年10月5日首次发布。 发展背景:Linux的诞生受到了Unix和Minix操作系统的启发,并且是在GNU计划(一个旨在创建自由软件的国际性项目)的影响下逐步发展起来的。 成长历程:Linux借助Internet网络,通过全世界各地计算机爱好者的共同努力,逐渐成为了世界上使用最多的UNIX类操作系统之一。 特点与优势 开源性:Linux是一个开源的操作系统,用户可以无偿地获得其源代码和大量的应用程序,并且可以任意修改和补充。 稳定性:Linux继承了Unix以网络为核心的设计思想,具有性能稳定、可靠、安全的特点。 多用户与多任务:Linux支持多用户和多任务操作,允许多个用户同时登录系统并运行多个任务。 广泛的硬件支持:Linux支持多种硬件平台,包括32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。 丰富的发行版:Linux有上百种不同的发行版,如Debian、Red Hat Enterprise Linux、SUSE、Oracle Linux等,这些发行版各具特色,满足了不同用户的需求。 2、CentOS 7简介 背景与起源 CentOS 7是CentOS项目发布的一个开源类服务器操作系统,它基于Red Hat Enterprise Linux(RHEL)的源代码构建,并继承了RHEL的稳定性、安全性和可靠性。 CentOS 7由Red Hat公司的一个社区驱动项目提供支持和维护,它是免费、开源且可以重新分发的。 发布与版本 CentOS 7于2014年7月7日正式发布,首个版本号为7.0.1406。 随后,CentOS 7经历了多个版本的更新,包括7.1、7.2等,直至2020年11月1……

    SE_Yang 2024-11-06
    39 0 0
  • 【Linux】yum安装

    一、删除原来的yum源 1、检查yum源: rpm -qa | grep yum 1 2、删除原来的yum源 rpm -qa|grep yum|xargs rpm -e --nodeps 1 3、防止系统自带的插件subscription-manager订阅管理器进行注册 vi /etc/yum/pluginconf.d/subscription-manager.conf #enabled=1 1 2 二、拷贝这三个安装包 如果没有可以从这个地址下载:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ yum-3.4.3-168.el7.centos.noarch.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm 三、安装三个包 1、使用以下命令一次性安装3个包 rpm -ivh yum-* 1 2、检查是否安装成功 rpm -qa |grep yum 1 四、配置repo文件 1、在linux中进入etc文件,备份yum.repos.d文件 cd /etc mv yum.repos.d yum.repos.d.bak mkdir yum.repos.d 1 2 3 2、下载repo文件 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 1 或者 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 1 3、修改下载好的repo文件 下载好的repo文件应该在etc/yum.repos.d目录下,里面应该也只有一个文件,直接vim 文件名 vim /etc/yum.repos.d/CentOS-Base.repo 1 把repo文件里所有 $releasever全部替换成版本号7 操作如下: 按下i键,然后按: 输入命令: %s/$releasever/7/g 1 替换完毕后,按Esc,然后 :wq 保存退出vim模式 2)-3)也可以手工放入 # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client.  You should use this for CentOS updates # unless you are manu……

    SE_Yang 2024-11-05
    11 0 0
  • 【Linux】一文讲清楚 “vim“ 的指令操作(唯有不断练习,才能熟练)

    文章目录 前言 1. vim的简介 2. 命令模式下的指令 2.1 光标移动类指令 2.2 复制、拷贝、剪切、删除以及撤销指令 2.3 其他作用的指令(大小写切换、替换字符) 2.4 模式之间切换的指令(十分重要) 3. 底行模式下的指令 4. 替换模式下的指令 前言 相信接触过vim的读者或者是刚接触vim的读者,都对vim的操作一头雾水,甚至有些指令傻傻分不清楚。那么,看到这篇文章之后,一定能扫除你之前使用vim的困惑。相信经过本文的讲述能带着大家更加深入的了解vim、使用vim以及喜欢上vim! 本文在每个小节结束的末尾都会对本小节的指令做一个汇总,方便大家的查询。 那么话不多说,开始对vim操作的深入了解!!!💖🚢🚢🚢 1. vim的简介 🍉相信已经有部分的读者已经了解过了vim是个什么东西了,但是为了照顾部分读者,这里还是有必要讲一下vim是个什么东西。 vim是个编辑器,如果大家使用过VSCode的话,对此再也了解不过了。vim就类似于Windows下大家常用的记事本,但是它比记事本的功能强大的多,这个也是我们必须得学习vim的理由之一 —— “vim是一款具有多模式的编辑器”。 🍉本文就是以vim的不同模式作为讲解vim操作的主线,深入讲解在vim不同模式下的各种指令,以及对应的作用。 那么,vim的模式共有5种:命令模式(默认模式)、插入模式、底行模式、替换模式、视图模式。 注意一个地方就是,大家想从一个模式切换到另一个模式期间必须都得先切换回命令模式。 好了,让我们进入指令操作的讲解吧!!! 2. 命令模式下的指令 命令模式下,用户在vim中输入的所有字符都会被认为指令。 2.1 光标移动类指令 指令: gg:作用:定位光标到最开始行。 直接按键盘字母g键两次。 shift+g(G):作用:定位光标到结尾行。按住shift键和g键,或者键盘切换到大写模式之后按g键即可。 [n]+shift+g([n] + G):作用:定位光标到指定行。 这里要……

    SE_Yang 2024-11-04
    7 0 0
  • [Linux]僵尸进程,孤儿进程,环境变量

    僵尸进程 僵尸进程是操作系统中一个常见的概念,具体指已经终止但仍然占用系统资源的进程。僵尸进程的形成主要是由于父进程在子进程终止后没有正确处理子进程的退出状态。以下是对僵尸进程的详细解析: 定义与特征 定义 僵尸进程是指子进程已经结束运行,但父进程还未对其进行善后处理(如调用wait()或waitpid()函数)的状态。此时,子进程的进程描述符(PCB)仍然保留在系统中,占用一定的内存空间。 特征 僵尸进程不再消耗CPU资源,但它们的进程描述符(PCB)仍然存在于系统中,这意味着它们会占用一定的内存资源。如果系统中存在大量的僵尸进程,可能会导致系统资源的浪费和性能下降。 产生原因 僵尸进程的产生通常是因为父进程没有调用wait()或waitpid()等函数来清理子进程的状态。当子进程结束时,它会发送一个SIGCHLD信号给父进程,通知父进程它已经结束。如果父进程没有处理这个信号或者没有调用wait()系列函数来清理子进程的状态,子进程就会变成僵尸进程。 解决方法 为了解决僵尸进程问题,可以采取以下几种方法: 使用wait()或waitpid()系统调用:父进程可以通过调用wait()或waitpid()函数来获取子进程的退出状态,并清理子进程所占用的资源。 忽略SIGCHLD信号:父进程可以使用signal()函数将SIGCHLD信号的处理函数设置为SIG_IGN,表示忽略该信号。这样,在子进程终止后,内核会自动回收子进程的资源,不会产生僵尸进程。 使用双向管道进行进程间通信:父进程可以创建一个双向管道,子进程在终止时通过管道发送一个消息给父进程。父进程在接收到消息后调用wait()或waitpid()来处理子进程的终止状态。 监控和清理僵尸进程:可以使用系统命令(如ps、grep等)来查找僵尸进程,并通过杀死其父进程来间接清理僵尸进程。但请注意,直接杀死僵尸进程是不可能的,因为它们已经处于死亡状态。 注意事项 僵……

    SE_Yang 2024-10-24
    17 0 0
  • CentOS 修改服务器登录密码的完整指南

    目录 使用 CentOS 修改服务器登录密码的完整指南 一、引言 二、基本概念 三、修改密码的步骤 3.1 登录到 CentOS 服务器 3.2 修改当前用户的密码 3.3 修改其他用户的密码 3.4 密码复杂性检查 四、解决密码复杂性问题 4.1 使用更强的密码 4.2 禁用密码复杂性检查 禁用 `pam_pwquality` 模块的配置 临时修改 `pam` 模块配置 4.3 修改成功后恢复配置 五、总结 使用 CentOS 修改服务器登录密码的完整指南 在日常使用 Linux 服务器时,修改用户登录密码是维护系统安全性的重要环节。本文将详细介绍如何在 CentOS 系统中修改用户密码,包括可能遇到的常见问题及其解决方案。 一、引言 在 CentOS 等 Linux 系统中,密码是保护用户账户及系统数据的第一道防线。因此,定期更改密码和使用强密码是系统管理员的基本职责。本文将为您提供一个系统化的指南,帮助您顺利完成密码的修改,并解决在此过程中可能遇到的各种问题。 二、基本概念 在开始之前,我们需要了解一些基本概念: 用户账户: Linux 系统中每个用户都有一个账户和相应的密码。账户用于访问系统的权限和资源。 密码复杂性: 密码复杂性是指密码必须满足的强度要求,以保护账户不受未经授权的访问。 字典检查: 许多 Linux 系统在密码设置时会进行字典检查,确保新密码不与常见的词汇相同,以增强安全性。 三、修改密码的步骤 3.1 登录到 CentOS 服务器 首先,您需要通过 SSH 或直接登录到 CentOS 服务器。可以使用以下命令: ssh user@your_server_ip 1 确保您替换 user 和 your_server_ip 为您的实际用户名和服务器的 IP 地址。 3.2 修改当前用户的密码 如果您希望修改当前登录用户的密码,执行以下命令: passwd 1 系统会提示您输入当前密码和新密码: Changing password for user user. Current password: (输入当前密码) New password: (输入新密码) Retype n……

    SE_Yang 2024-10-23
    19 0 0