zoukankan      html  css  js  c++  java
  • RedHat操作指令第2篇

    六、RPM包管理命令
    主要功能

    1. 查询RPM软件、包文件的相关信息
    2. 安装、升级、卸载RPM软件包
    3. 维护RPM数据库信息

    查询RPM软件信息
    查询已安装的RPM软件信息
    格式:rpm -q[子选项] [软件名]
    用法:结合不同的子选项 完成不同查询
    -qa:查看系统中已安装的所有RPM软件包列表
    -qi:查看指定软件的详细信息
    -ql:查询指定软件包所安装的目录、文件列表
    -qc:仅显示指定软件包安装的配置文件
    -qd:仅显示指定软件包安装的文档文件
    查询文件/目录属于哪个RPM软件
    格式:rpm -qf 文件或目录名

    查询未安装的RPM包文件
    格式:rpm -qp[子选项] RPM包文件
    用法:结合不同的子选项 完成不同查询
    -qpi:通过.rpm包文件查看该软件的详细信息
    -qpl:查看.rpm安装包内所包含的目录、文件列表
    -qpc:查看.rpm安装包内包含的配置文件列表
    -qpd:查看.rpm安装包内包含的文档文件列表

    安装、升级、卸载RPM软件包

    安装或升级RPM软件
    格式:rpm [选项] RPM包文件...
    用法:不同选项适用于不同情况
    -i:安装一个新的rpm软件包
    -U:升级某个rpm软件,若原本未装,则进行安装
    -F:更新某个rpm软件,若原本未装,则放弃安装

    -i 用于安装新软件包,-U 用于升级现有软件包(若未装则安装),-F 也用于升级现有软件包(若未装则不装)

    卸载指定的RPM软件
    格式:rpm -e 软件名
    卸载软件时只需要指定软件名即可,无需指定版本号

    辅助选项
    --force:强制安装所指定的rpm软件包
    --nodeps:安装、升级或卸载软件时,忽略依赖关系
    -h:以“#”号显示安装的进度
    -v:显示安装过程中的详细信息

    --force 辅助选项主要应用于以下两种情况:
    1)缺失某个软件包的文件时,需要进行覆盖安装以找回丢失文件
    2)安装一个比现有软件版本陈旧的软件包(多为测试用途)
    当安装、卸载软件包时,提示缺少依赖包无法进行时,如果仍要继续执行,应结合 --nodeps 选项而不是 --force 选项

    在安装新的软件包时,通常使用”-ivh”组合选项来获得更加友好的屏幕提示信息
    “warning:……NOKEY……”的警告信息是由于没有导入RedHat提供的公钥所致,但并不影响安装效果,可以忽略,如果需要导入公钥文件,可以参考如下步骤(以后从RHEL5光盘中安装软件时,就不会再出现警告提示了):
    [root@localhost ~]# cd /media/cdrom
    [root@localhost cdrom]# rpm --import RPM-GPG-KEY-redhat-release

    解决软件包依赖关系
    安装有依赖关系的多个软件时
    1、被依赖的软件包需要先安装
    2、同时指定多个.rpm包文件进行安装
    卸载有依赖关系的多个软件时
    1、依赖其他程序的软件包需要先卸载
    2、同时指定多个软件名进行卸载

    忽略依赖关系
    结合“--nodeps”选项,但可能导致软件异常

    查询util-linux软件包安装的文件:rpm -ql util-linux

    查询mkdir命令是由哪个RPM软件包安装的:rpm -qf mkdir

    强制卸载被其他程序依赖的软件:rpm -e softname --nodeps

    当安装、卸载软件包时,提示缺少依赖包无法进行时,如果仍要继续执行,应结合 --nodeps 选项而不是 --force 选项

    维护RPM数据库

    当RPM数据库损坏时,需要进行数据库重建
    格式:rpm --rebuilddb
    rpm --initdb
    当RPM数据库发生损坏,Linux系统无法自动完成修复时,可能将导致无法正常安装、卸载rpm软件包

    在图形界面中管理RPM包
    图形界面中的“添加/删除软件”
    依赖于YUM(Yellow dog Updater,Modified)机制
    调用yum命令工具进行软件更新

    使用“添加/删除软件”工具的条件
    能够访问互联网中的YUM源服务器
    若使用默认源,需有合法的安装序列号和服务订阅号

    在局域网内构建本地的YUM源服务器
    参考《Linux实用技术阅读手册》第一章

    YUM(Yellow dog Updater,Modified,修订版的黄狗升级器)
    使用RHEL5系统光盘中的软件包可以构建自己的YUM源服务器,具体请参阅《Linux实用技术阅读手册》
    讲师可在备课过程中预先构建好本地yum服务器,如果时间允许,这里可以演示“添加/删除软件”工具的操作,也可以适当扩展,对yum更新工具命令进行讲解

    源代码编译概述
    使用源代码安装软件的优点
    获得最新的软件版本,及时修复bug
    根据用户需要,灵活定制软件功能

    应用场合举例
    安装较新版本的应用程序时
    自由软件的最新版本大都以源码的形式最先发布
    当前安装的程序无法满足需要时
    编译安装可由用户自行修改、定制功能
    需要为应用程序添加新的功能时
    用户可以重新配置、自由修改源代码,加入新的功能

    Tarball 封包:
    .tar.gz 和 .tar.bz2 格式居多
    软件素材参考:http://sourceforge.net
    完整性校验
    md5sum校验工具
    计算MD5校验和,并与官方提供的值相比较,判断是否一致
    对于下载回来的软件包文件,如果MD5校验和与官方提供的不一致,则说明该软件包在网络传输过程中可能被非法改动过
    对于校验和不一致的软件包,应尽量不要使用,以免带来病毒、木马等不安全因素

    确认源代码编译环境
    需安装支持 C/C++程序语言的 编译器
    gcc-4.1.1-52.el5、gcc-c++-4.1.1-52.el5
    make-3.81-1.1.i386 ……

    源码编译安装的基本过程
    解包 —— tar
    解包、释放出源代码文件
    配置 —— ./configure
    针对当前系统、软件环境,配置好安装参数
    编译 —— make
    将源代码文件变为二进制的可执行程序
    安装 —— make install
    将编译好的程序文件复制到系统中
    configure 一般是位于软件包目录中的可执行脚本文件

    1. 解包
      习惯上将软件包释放到 /usr/src/ 目录
      解包后的源代码文件位置:/usr/src/软件名-版本号/

    软件包释放至哪个目录并无硬性限制,例如用户也可以释放至 /usr/local/src/ 目录或者其他目录下,编译安装结束后,源码包目录可以选择删除
    释放出的软件源代码目录中,configure脚本文件将用于下一步的配置工作

    1. 配置
      需将工作目录切换到软件源码所在目录
      使用源码目录中的 configure 脚本
      执行“./configure --help” 可以查看帮助
      典型的配置选项:
      --prefix=软件安装目录

    不同的应用程序其配置参数会存在区别,因此使用“./configure --help”非常重要(“./”表示当前目录)
    用户应用程序习惯上安装到“/usr/local/软件名”文件夹中
    编译过程中如果出现错误,通常是由于缺少依赖软件包所致
    根据软件大小不同,配置过程可能会需要不同的时间

    1. 编译
      执行 make 命令

    2. 安装
      执行 make install 命令

    这两个步骤可以合写为一行:
    make && make install

    编译过程(make)通常是源码包编译过程中耗时最长的环节,对于小软件可能感觉不到
    安装的过程(make install)也会消耗一些时间
    “make && make inistall”操作中,“&&”符号表示只有当前一条命令执行成功以后,才会执行后边的命令

    验证已编译安装完成的程序:查看安装后的软件目录、了解软件程序的使用方法

    七、管理用户和文件权限
    用户和组帐号概述
    Linux基于用户身份对资源访问进行控制
    用户帐号:
    超级用户root
    普通用户
    程序用户
    组帐号:
    基本组(私有组)
    附加组(公共组)
    UID和GID:
    UID(User Identity,用户标识号)
    GID(Group Identify,组标识号)

    超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统
    普通用户帐号一般只在用户自己的宿主目录中有完全权限
    程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等
    root用户的UID的固定值为0、root组帐号的GID号为固定值0
    1~499的UID、GID默认保留给程序用户使用,普通用户/组使用的UID、GID号在500~60000之间

    用户帐号文件 —— passwd
    用于保存用户的帐号基本信息
    文件位置:/etc/passwd
    每一行对应一个用户的帐号记录
    字段1:用户帐号的名称
    字段2:用户密码字串或者密码占位符“x”
    字段3:用户帐号的UID号
    字段4:所属基本组帐号的GID号
    字段5:用户全名
    字段6:宿主目录
    字段7:登录Shell信息
    基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改
    在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患
    后来经改进后,将密码转存入专门的shadow文件中(见下页)并严格控制全新,而passwd文件中仅保留密码占位符“x”

    用户帐号文件 —— shadow
    用于保存密码字串、密码有效期等信息
    文件位置:/etc/shadow
    每一行对应一个用户的密码记录
    字段1:用户帐号的名称
    字段2:加密的密码字串信息
    字段3:上次修改密码的时间
    字段4:密码的最短有效天数,默认值为0
    字段5:密码的最长有效天数,默认值为99999
    字段6:提前多少天警告用户口令将过期,默认值为7
    字段7:在密码过期之后多少天禁用此用户
    字段8:帐号失效时间,默认值为空
    字段9:保留字段(未使用)
    默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容
    上次修改密码的时间,表示从1970年01月01日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数

    添加用户帐号
    useradd命令
    格式:useradd [选项]... 用户名
    常用命令选项
    -u:指定 UID 标记号
    -d:指定宿主目录,缺省为 /home/用户名
    -e:指定帐号失效时间
    -g:指定用户的基本组名(或UID号)
    -G:指定用户的附加组名(或GID号)
    -M:不为用户建立并初始化宿主目录
    -s:指定用户的登录Shell

    最简单的用法是,不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户帐号
    演示添加用户的操作,重点演示 -d、-e、-g、-G、-s 等几个选项的用法,例如:
    ——创建名为st02的用户帐号,并将其UID号指定为504
    [root@localhost ~]# useradd -u 504 st02
    [root@localhost ~]# tail -1 /etc/passwd
    st02❌504:504::/home/st02:/bin/bash
    ——创建一个考试测试用的帐号exam01,指定属于users组,该帐号于2009-07-30失效
    [root@localhost ~]# useradd -g users -e 2009-07-30 exam01

    展示/etc/passwd、/etc/shadow文件中的变化
    说明:使用adduser命令也可以添加用户帐号,在RHEL5系统中adduser命令实际上是useradd命令的符号链接

    用户帐号的初始配置文件
    文件来源
    新建用户帐号时,从 /etc/skel 目录中复制而来
    主要的用户初始配置文件
    ~/.bash_profile:用户每次登录时执行
    ~/.bashrc:每次进入新的Bash环境时执行
    ~/.bash_logout:用户每次退出登录时执行

    设置/更改用户口令
    passwd命令
    格式:passwd [选项]... 用户名
    常用命令选项
    -d:清空用户的密码,使之无需密码即可登录
    -l:锁定用户帐号
    -S:查看用户帐号的状态(是否被锁定)
    -u:解锁用户帐号

    “未设置密码”的用户帐号尚未完成初始化,处于不可登录状态,这与“空密码”的情况(已经为用户设置密码,但密码字串为空)是不同的
    —— “未设置密码”的用户将被禁止登录系统,而拥有“空密码”的用户是可以在本地终端登录的

    普通用户也可以使用passwd命令,但只能更改自己的密码,密码要求有一定的复杂性(如不要直接使用英文单词,长度保持在6位以上),否则系统可能拒绝进行设置
    被锁定的帐号也将无法登录系统

    修改用户帐号的属性
    usermod命令
    格式:usermod [选项]... 用户名
    常用命令选项
    -l:更改用户帐号的登录名称
    -L:锁定用户账户
    -U:解锁用户账户
    以下选项与useradd命令中的含义相同
    -u、-d、-e、-g、-G、-s

    删除用户帐号
    userdel命令
    格式:userdel [-r] 用户名
    添加 -r 选项时,表示连用户的宿主目录一并删除
    当系统中的某个用户帐号已经不再需要使用时(如该员工已经从公司离职等情况),可以使用userdel命令将该用户帐号删除
    使用userdel命令需要指定帐号名称作为参数,添加“-r”选项时可以将该用户的宿主目录一并删除。

    组帐号文件 —— group、gshadow
    与用户帐号文件相类似
    /etc/group:保存组帐号基本信息
    /etc/gshadow:保存组帐号的密码信息

    与组帐号相关的配置文件也有2个,分别是/etc/group、/etc/gshadow
    /etc/gshadow文件的应用极少,仅作简单介绍即可
    group文件内的最后一个字段中列出属于该组的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,”分隔

    添加组帐号
    groupadd命令
    格式:groupadd [-g GID] 组帐号名
    使用groupadd命令可以添加一个组帐号,需要指定GID号时,可以使用“-g”选项

    添加、删除组成员
    gpasswd命令
    用途:设置组帐号密码(极少用)、添加/删除组成员
    格式:gpasswd [选项]... 组帐号名
    常用命令选项
    -a:向组内添加一个用户
    -d:从组内删除一个用户成员
    -M:定义组成员列表,以逗号分隔

    删除组帐号
    groupdel命令
    格式:groupdel 组帐号名

    用户和组帐号查询
    id命令
    用途:查询用户身份标识
    格式:id [用户名]

    groups命令
    用途:查询用户所属的组
    格式:groups [用户名]

    finger命令
    用途:查询用户帐号的详细信息
    格式:finger [-l] [用户名]

    users、w 、who命令
    用途:查询已登录到主机的用户信息

    主要有哪两个用户帐号文件,各有什么作用?
    如何锁定、解锁用户帐号?
    在添加用户帐号时,如何设置其失效时间?
    用户初始配置文件包括哪些,各有什么作用?
    如何设置一个组的多个用户成员?

    【1】/etc/passwd、/etc/shadow
    【2】锁定帐号:usermod -L 用户名、passwd -l 用户名 ; 解锁帐号: usermod -U 用户名、passwd -u 用户名
    【3】useradd -e YYYY-mm-dd 用户名 或者 usermod -e YYYY-mm-dd 用户名
    【4】/.bash_profile、/.bashrc、~/.bash_logout
    【5】gpasswd -M 用户1,用户2,用户3 组名

    文件/目录的权限和归属
    访问权限
    读取:允许查看文件内容、显示目录列表
    写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
    可执行:允许运行程序、切换目录
    归属(所有权)
    属主:拥有该文件或目录的用户帐号
    属组:拥有该文件或目录的组帐号

    设置文件/目录的权限
    chmod命令
    格式1:chmod [ugoa] [+-=] [rwx] 文件或目录...
    格式2:chmod nnn 文件或目录...
    常用命令选项
    -R:递归修改指定目录下所有文件、子目录的权限

    chown命令
    格式:chown 属主 文件或目录
    chown :属组 文件或目录
    chown 属主:属组 文件或目录
    常用命令选项
    -R:递归修改指定目录下所有文件、子目录的归属
    需要设置文件或者目录的归属时,可以通过chown、chgrp命令进行
    chown命令既可以修改属主,也可以修改属组,而chgrp命令只用于修改属组信息(因此并不常用)

    使用附加权限
    SET位权限
    主要用途:
    为可执行(有 x 权限的)文件设置,权限字符为“s”
    其他用户执行该文件时,将拥有属主或属组用户的权限
    SET位权限类型:
    SUID:表示对属主用户增加SET位权限
    SGID:表示对属组内的用户增加SET位权限

    普通用户并没有权限修改“/etc/shadow”文件,那为什么可以修改自己的登录密码呢?
    —— 这是因为:passwd命令程序被设置了SUID权限,普通用户在执行该命令时临时获得相当于属主用户(root)的权限

    注意:不要轻易为可执行文件设置SET位权限,特别是对于那些属主、属组是root的执行程序,使用SET位权限时更应该慎重。例如,若为vim编辑器程序设置SUID权限,将导致普通用户也可以使用vim编辑器修改系统中的任何配置文件

    粘滞位权限(Sticky)
    主要用途:
    为公共目录(例如,权限为777的)设置,权限字符为“t”
    用户不能删除该目录中其他用户的文件
    应用示例:/tmp、/var/tmp

    设置SET位、粘滞位权限
    使用权限字符
    chmod ug±s 可执行文件...
    chmod o±t 目录名...
    使用权限数字:
    chmod mnnn 可执行文件...
    m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加

    进程管理命令
    1、kill(结束进程)
    这个命令用于发送信号来结束进程。如果一个进程没有响应杀死命令,这也许就需要强制杀死,使用-9参数来执行。

    注意,使用强制杀死的时候一定要小心,因为进程没有时机清理现场,也许写入文件没有完成。
    
    如果我们不知道进程PID或者打算用名字杀死进程时候,killall就能派上用场。
    

    格式:
    kill 杀死线程
    kill -9 强制杀死线程
    killall -9 - 强制杀死所有拥有同样名字的进程

    如果你使用kill,你需要知道进程ID号。pkill是类似的命令,但使用模式匹配,如进程名,进程拥有者等。
    pkill <进程名>
    

    2、ps(查看静态进程运行情况)
    ps 是 Linux 中最基础的浏览系统中的进程的命令。
    能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等

    格式:
    ps -a - 列出所有运行中/激活进程
    ps -e 列出程序时,显示每个程序所使用的环境变量。
    ps -f 用ASCII字符显示树状结构,表达程序间的相互关系
    ps -ef | grep - 列出需要进程
    ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等
    

    3、top(查看动态进程运行情况)
    top 是一个更加有用的命令,可以监视系统中不同的进程所使用的资源。它提供实时的系统状态信息。
    显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory等。可以使用这些显示指示出资源使用量。

    查看资源使用情况命令
    1、uptime 查看cpu负载情况

    2、free -m 查看内存使用情况

    3、df -hl 查看磁盘使用情况

    查看网络状态命令
    netstat -ntlp | grep 端口 (查看某个端口是否占用)

    netstat -anp (查看网络连接情况)
    -a (all)显示所有选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -l 或–listening,显示监控中的服务器的Socket
    -t 或–tcp 显示TCP 传输协议的连线状况

    查找Linux系统的IP命令
    /sbin/ifconfig

    重启
    shutdown -r now
    shutdown -r +15 “警告:系统将于15分钟后重启”
    reboot
    区别:
    Reboot重启不会给其他用户提示重启信息;
    Shutdown 会给出重启提示信息,在多用户登录系统操作时,相对安全。

    关机
    shutdown -h now
    halt
    halt -p

    su 用户名
    切换用户

    lsb_release -a 查看Linux系统版本

    |:管道:将前面命令的屏幕输出结果作为后面命令的处理对象(输入)

    :重定向输出,将前面命令的屏幕输出结果保存到">"后面的指定文件中

    echo :屏幕输出内容

    col:col命令用于过滤文本中的一些特殊控制字符

    service sshd status

    service sshd start

    service sshd stop

    service network restart

    查看是否已安装SSH
    rmp -qa|prep "ssh"

    查看SSH服务是否启动
    Service sshd status

    Windows查看特定端口;netstat –aon|findstr 8080
    Windows查看所有端口;netstat –aon
    Windows查看PID对应的进程名;tasklist |findstr 8080

    隐藏文件:MV 原文件 .原文件

    防火墙永久
    开启: chkconfig iptables on
    关闭: chkconfig iptables off

    即刻生效:
    开启: service iptables start
    关闭: service iptables stop

  • 相关阅读:
    如何远程连接POSTGRESQL数据库
    安装windows服务发生异常
    让FFMPEG支持实时流“伴随”转码
    SVN的标准目录结构:trunk、branches、tags
    关于ipcam的UPnP或NAT的知识
    asp.net(C#)服务器绝对路径与URL相对路径互转
    C#通过FFmpeg获得视频文件参数
    FFmpeg的C#.Net封装
    【robotframework】使用RequestsLibrary的Get File For Streaming Upload关键字实现文件上传
    【jenkins】解决win10作为slave启动agent后无法连接master的过程
  • 原文地址:https://www.cnblogs.com/xianmin/p/13968935.html
Copyright © 2011-2022 走看看