centos程序分析 centos7安装软件选择
大家好,如果您还对centos程序分析不太了解,没有关系,今天就由本站为大家分享centos程序分析的知识,包括centos7安装软件选择的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
Centos7系统有什么特点
CentOS 7是一款基于 Red Hat Enterprise Linux(RHEL)开发的免费开源操作系统。它具有以下特点:
兼容性高:CentOS 7兼容大多数硬件,可以运行在多种计算机硬件平台上,包括 x86、x64和 ARM等处理器体系结构。
稳定性好:CentOS 7采用了 RHEL的源代码,在稳定性方面有很大优势。
安全性高:CentOS 7安装时会自动开启防火墙和 SELinux,可以有效保护系统安全。
支持软件包管理:CentOS 7采用了 YUM包管理器,可以方便地安装、升级和卸载软件包。
网络功能强大:CentOS 7提供了丰富的网络功能,包括虚拟网络、Bonding、VLAN等,可以满足各种网络需求。
免费开源:CentOS 7是一款免费开源的操作系统,可以免费下载使用。
为什么centos应用程序有编程
1.为什么要学习 shell编程
Linux运维工程师在进行服务器集群管理时,需要编写 Shell程序来进行服务器管理。
对于 JavaEE和 Python程序员来说,工作的需要,你的老大会要求你编写一些 Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。
对于大数据程序员来说,需要编写 Shell程序来管理集群。
2. shell是什么
示意图:
图1
请点击输入图片描述
Shell是一个命令行解释器,它为用户提供了一个向 Linux内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell来启动、挂起、停止甚至是编写一些程序.
3. shell编程快速入门- shell脚本的执行方式
3.1脚本格式要求
脚本以#!/bin/bash开头
脚本需要有可执行权限
图2
请点击输入图片描述
3.2脚本的常用执行方式
方式 1(输入脚本的绝对路径或相对路径)
首先要赋予 helloworld.sh脚本的+x权限
执行脚本
图3
请点击输入图片描述
方式2(sh+脚本),不推荐(了解即可)
说明:不用赋予脚本+x权限,直接执行即可
图4
请点击输入图片描述
4. shell的变量
4.1 shell的变量的介绍
Linux Shell中的变量分为,系统变量和用户自定义变量。
系统变量:HOME、HOME、PWD、SHELL、SHELL、USER等等
比如: echo$HOME
等等..
图5
请点击输入图片描述
请点击输入图片描述
显示当前 shell中所有变量:set
4.2 shell变量的定义
基本语法
注意:=两侧不能有空格
1)定义变量:变量=值
2)撤销变量:unset变量
3)声明静态变量:readonly变量,注意:不能 unset
快速入门
案例 1:定义变量 A
案例 2:撤销变量 A
图6
请点击输入图片描述
案例 3:声明静态的变量 B=2,不能 unset
图7
请点击输入图片描述
案例 4:可把变量提升为全局环境变量,可供其他 shell程序使用【一会举例。】
4.3定义变量的规则
1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头。2)等号两侧不能有空格3)变量名称一般习惯为大写
4.4将命令的返回值赋给变量(重点)
A=`ls-la`反引号,运行里面的命令,并把结果返回给变量 A
A=$(ls-la)等价于反引号
图8
请点击输入图片描述
5.设置环境变量
5.1基本语法
1) export变量名=变量值(功能描述:将 shell变量输出为环境变量)
2) source配置文件(功能描述:让修改后的配置信息立即生效)
3) echo$变量名(功能描述:查询环境变量的值)
图9
请点击输入图片描述
5.2快速入门
在/etc/profile文件中定义 TOMCAT_HOME环境变量
图10
请点击输入图片描述
请点击输入图片描述
查看环境变量 TOMCAT_HOME的值
echo$TOMCAT_HOME
在另外一个 shell程序中使用 TOMCAT_HOME
图11
请点击输入图片描述
请点击输入图片描述
注意:在输出 TOMCAT_HOME环境变量前,需要让其生效
source/etc/profile
6.位置参数变量
6.1介绍
当我们执行一个 shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变
量,比如:./myshell.sh 100 200,这个就是一个执行 shell的命令行,可以在 myshell
脚本中获取到参数信息
6.2基本语法
$n(功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十
以上的参数需要用大括号包含,如${10})
$*(功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$#(功能描述:这个变量代表命令行中所有参数的个数)
6.3位置参数变量应用实例
案例:编写一个 shell脚本 positionPara.sh,在脚本中获取到命令行的各个参数信息
图12
请点击输入图片描述
7.预定义变量
7.1基本介绍
就是 shell设计者事先已经定义好的变量,可以直接在 shell脚本中使用
7.2基本语法
$$(功能描述:当前进程的进程号(PID))$!(功能描述:后台运行的最后一个进程的进程号(PID))$?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令
正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令
执行不正确了。)
7.3应用实例
在一个 shell脚本中简单使用一下预定义变量
图13
请点击输入图片描述
centos 查看系统有哪些用户
保留、维护和分析日志(如某个特定时期内发生过的,或正在发生的帐号事件),是Linux系统管理员最基础和最重要的任务之一。对于用户管理,检查用户的登入和登出日志(不管是失败的,还是成功的)可以让我们对任何潜在的安全隐患或未经授权使用系统的情况保持警惕。例如,工作时间之外或放假期间的来自未知IP地址或帐号的远程登录应当发出红色警报。在CentOS系统上,用户登录历史存储在以下这些文件中:/var/run/utmp(用于记录当前打开的会话)被who和w工具用来记录当前有谁登录以及他们正在做什么,而uptime用来记录系统启动时间。/var/log/wtmp(用于存储系统连接历史记录)被last工具用来记录最后登录的用户的列表。/var/log/btmp(记录失败的登录尝试)被lastb工具用来记录最后失败的登录尝试的列表。在本文中,我将介绍如何使用utmpdump,这个小程序来自sysvinit-tools包,可以用于转储二进制日志文件到文本格式的文件以便检查。此工具默认在CentOS 6和7系列上可用。utmpdump收集到的信息比先前提到过的工具的输出要更全面,这让它成为一个胜任该工作的很不错的工具。除此之外,utmpdump可以用于修改utmp或wtmp。如果你想要修复二进制日志中的任何损坏条目,它会很有用(LCTT译注:我怎么觉得这像是做坏事的前奏?)。 Utmpdump的使用及其输出说明正如我们之前提到的,这些日志文件,与我们大多数人熟悉的其它日志相比(如/var/log/messages,/var/log/cron,/var/log/maillog),是以二进制格式存储的,因而我们不能使用像less或more这样的文件命令来查看它们的内容。所以,utmpdump的出现拯救了世界。为了要显示/var/run/utmp的内容,请运行以下命令:代码如下:# utmpdump/var/run/utmp同样要显示/var/log/wtmp的内容:代码如下:# utmpdump/var/log/wtmp tail-15[code]最后,对于/var/log/btmp: [code]# utmpdump/var/log/btmp正如你所能看到的,三种情况下的输出结果是一样的,除了utmp和btmp的记录是按时间排序,而wtmp的顺序是颠倒的这个原因外(LCTT译注:此处原文有误,实际上都是按照时间顺序排列的)。每个日志行格式化成了多列,说明如下。第一个字段显示了会话识别符,而第二个字段则是PID。第三个字段可以是以下值:--(表示运行等级改变或系统重启),bw(启动守候进程),数字(表示TTY编号),或者字符和数字(表示伪终端)。第四个字段可以为空或用户名、重启或运行级别。第五个字段是主TTY或PTY(伪终端),如果此信息可获得的话。第六个字段是远程主机名(如果是本地登录,该字段为空,运行级别信息除外,它会返回内核版本)。第七个字段是远程系统的IP地址(如果是本地登录,该字段为0.0.0.0)。如果没有提供DNS解析,第六和第七字段会显示相同的信息(远程系统的IP地址)。最后一个(第八)字段指明了该记录创建的日期和时间。 Utmpdump使用样例下面提供了一些utmpdump的简单使用情况。 1、检查8月18日到9月17日之间某个特定用户(如gacanepa)的登录次数。代码如下:# utmpdump/var/log/wtmp grep gacanepa如果你需要回顾先前日期的登录信息,你可以检查/var/log下的wtmp-YYYYMMDD(或wtmp.[1...N])和btmp-YYYYMMDD(或btmp.[1...N])文件,这些是由logrotate生成的旧wtmp和btmp的归档文件。 2、统计来自IP地址192.168.0.101的登录次数。代码如下:# utmpdump/var/log/wtmp grep 192.168.0.101 3、显示失败的登录尝试。代码如下:# utmpdump/var/log/btmp在/var/log/btmp输出中,每个日志行都与一个失败的登录尝试相关(如使用不正确的密码,或者一个不存在的用户ID)。上面图片中高亮部分显示了使用不存在的用户ID登录,这警告你有人尝试猜测常用帐号名来闯入系统。这在使用tty1的情况下是个极其严重的问题,因为这意味着某人对你机器上的终端具有访问权限(该检查一下谁拿到了进入你数据中心的钥匙了,也许吧?) 4、显示每个用户会话的登入和登出信息代码如下:# utmpdump/var/log/wtmp在/var/logwtmp中,一次新的登录事件的特征是,第一个字段为‘7’,第三个字段是一个终端编号(或伪终端id),第四个字段为用户名。相关的登出事件会在第一个字段显示‘8’,第二个字段显示与登录一样的PID,而终端编号字段空白。例如,仔细观察上面图片中PID 1463的行。在 [Fri Sep 19 11:57:40 2014 ART],TTY1上显示登录提示符。在 [Fri Sep 19 12:04:21 2014 ART],用户 root登入。在 [Fri Sep 19 12:07:24 2014 ART],用户 root登出。旁注:第四个字段的LOGIN意味着出现了一次登录到第五字段指定的终端的提示。到目前为止,我介绍一些有点琐碎的例子。你可以将utmpdump和其它一些文本处理工具,如awk、sed、grep或cut组合,来产生过滤和加强的输出。例如,你可以使用以下命令来列出某个特定用户(如gacanepa)的所有登录事件,并发送输出结果到.csv文件,它可以用像LibreOffice Calc或Microsoft Excel之类的文字或工作簿应用程序打开查看。让我们只显示PID、用户名、IP地址和时间戳:代码如下:# utmpdump/var/log/wtmp grep-E"[7].*gacanepa" awk-v OFS=","'BEGIN{FS="]"};{print$2,$4,$7,$8}' sed-e's/[//g'-e's/]//g'就像上面图片中三个高亮区域描绘的那样,过滤逻辑操作是由三个管道步骤组成的。第一步用于查找由用户gacanepa触发的登录事件([7]);第二步和第三部用于选择期望的字段,移除utmpdump输出的方括号并设置输出字段分隔符为逗号。当然,如果你想要在以后打开来看,你需要重定向上面的命令输出到文件(添加“>[文件名].csv”到命令后面)。在更为复杂的例子中,如果你想要知道在特定时间内哪些用户(在/etc/passwd中列出)没有登录,你可以从/etc/passwd中提取用户名,然后运行grep命令来获取/var/log/wtmp输出中对应用户的列表。就像你看到的那样,有着无限可能。在进行总结之前,让我们简要地展示一下utmpdump的另外一种使用情况:修改utmp或wtmp。由于这些都是二进制日志文件,你不能像编辑文件一样来编辑它们。取而代之是,你可以将其内容输出成为文本格式,并修改文本输出内容,然后将修改后的内容导入回二进制日志中。如下:代码如下:# utmpdump/var/log/utmp> tmp_output<使用文本编辑器修改 tmp_output># utmpdump-r tmp_output>/var/log/utmp这在你想要移除或修复二进制日志中的任何伪造条目时很有用。下面小结一下,utmpdump从utmp、wtmp和btmp日志文件或轮循的旧归档文件来读取详细的登录事件,来补充如who,w,uptime,last,lastb之类的标准工具的不足,这也使得它成为一个很棒的工具。