linux中安装程序及账户管理
程序安装及管理
1. Linux 应用程序基础
Linux命令与应用程序的关系
1):文件位置
系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
应用程序:通常在/usr/bin和/usr/sbin目录中
2):主要用途
系统命令:完成对系统的基本管理工作,例如IP配置工具
应用程序:完成相对独立的其他辅助任务,例如网页浏览器
3):适用环境
系统命令:一般只在字符操作界面中运行
应用程序:根据实际需要,有些程序可在图形界面中运行
4):运行格式
系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式
典型应用程序的目录结构
文件类型 |
保存目录 |
普通执行程序文件 |
/usr/bin |
服务器执行程序文件和管理程序文件 |
/usr/sbin |
应用程序配置文件 |
/etc |
日志文件 |
/var/log |
应用程序文档文件 |
/usr/share/doc |
应用程序手册页文件 |
/usr/share/man |
2. 常见的软件包封装类型
封装类型 |
说明 |
rpm软件包 |
扩展名为“.rpm” |
deb软件包 |
扩展名为“.deb” |
源代码软件包 |
一般为“.tar.gz”、“.tar.bz2”等格式的压缩包包含程序的原始代码 |
附带安装程序的软件包 |
在压缩包内提供install.sh、setup等安装程序或以“.bin”格式的单个执行文件提供 |
绿色免安装的软件包 |
在压缩包内提供已编译好的执行程序文件解开压缩包后的文件即可直接使用 |
软件包封装类型包括rpm包. Deb包. 源代码包. 带安装程序的包。
源代码:程序员写好的初始代码,无法被计算机读取,需要被编译成二进制计算机语言,Linux中的C语言编译器为gcc。
3.RPM 包管理工具
RPM Package Manager
由Red Hat 公司提出,被众多Linux 发行版所采用
建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系
RPM包含RPM数据库,RPM软件包文件和RPM命令三个部分
RPM软件包
软件素材参考:http://rpmfind.net / www.rpw.org
一般命名格式:软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm
注意:执行“man rpm”命令可获得关于 rpm 命令的详细帮助信息
4.查询 RPM 软件包信息
1):查询已安装的rpm软件信息
语法:rpm -q[子选项] [软件名]
用法:结合不同的子选项完成不同查询
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息(--info)
-ql:查询指定软件包所安装的目录、文件列表(--list)
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
-qf:查看指定文件或目录由那个软件包所安装(--file)
2):查询文件或目录属于哪个RPM 软件
语法:rpm - qf文件或目录名
3):查询未安装的RPM 包文件
语法:rpm - qp[子选项] RPM包文件
用法:结合不同的子选项完成不同查询
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录、文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表
注意:使用r pm 命令只能查询通过 RPM方式安装的软件包信息用其他途径安装到系统中的软件包,rpm 命令将无法获取相关信息
3. 安装、升级、卸载 RPM 软件包
安装或升级RPM软件
语法:rpm [选项] RPM包文件...
用法:不同选项适用于不同情况
-i:安装一个新的rpm 软件包
-U:升级某个rpm 软件,若原本未装,则进行安装
-F:更新某个rpm 软件,若原本未装,则放弃安装
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息
卸载指定的RPM软件
语法:rpm -e 软件名
--nodeps:删除软件包,即使有依赖关系的软件包任然安装在系统上
--test:不执行任何动作,只打印输出
5. 维护RPM数据库
linux中保留了当前安装软件的数据库,该数据库位于/var/lin/rpm/目录中。使用file /var/lib/rpm/*命令查看目录内容,可以看到都是二进制形式的散列数据库文件。
查看数字签名
6.解决软件包依赖关系
安装有依赖关系的多个软件时:被依赖的软件包需要先安装;可同时指定多个.rpm 包文件进行安装
卸载有依赖关系的多个软件时:依赖其他程序的软件包需要先卸载;可同时指定多个软件名进行卸载
忽略依赖关系:结合“--nodeps”选项,但可能导致软件异常
举个栗子:演示vim-common和vim-enhanced软件包的卸载、安装过程,参考步骤如下:
1)首先正常卸载vim-common,应提示被vim-enhanced所依赖而失败
2)因此正常卸载顺序:先卸载vim-enhanced,然后再卸载vim-common
3)然后从光盘中重新安装这两个软件包,首先安装vim-enhanced,应提示需要先安装vim-common
4)因此正常安装顺序:先安装vim-common,然后再安装vim-enhanced,演示时也可以在一条rpm命令中同时指定这两个文件
—— 提醒注意:如果需要同时安装相互依赖的数十个.rpm软件包,可以结合Shell通配符“*”同时指定这些文件作为参数
执行rpm命令可以完成对rpm软件包的查询. 安装. 升级. 卸载等管理操作。
扩展:RPM相关注意事项
RPM软件包的先决条件可以运用命令行选项—requires和—provides直接查看
安装vsftpd的先决条件:命令rpm -q -requires vsftpd
显示软件包显性提供内容:命令rpm -q -provides vsftpd
显示vsftpd的安装脚本:命令rpm -q --scripts vsftpd
按时间顺序显示系统上安装的RPM包:命令rpm -qa –last
解决RPM的些常见问题(访问数据库)
Killall-9 rpm 命令杀死所有当前挂起的rpm进程
将RPM数据库目录(/var/lib/rpm/)中所有以 _db. 开头的文件删除
7.源代码编译概述
1):优点
获得最新的软件版本,及时修复bug;根据用户需要,灵活定制软件功能
2):应用场合举例
安装较新版本的应用程序时;自由软件的最新版本大都以源码的形式最先发布
当前安装的程序无法满足需要时;编译安装可由用户自行修改、定制功能
需要为应用程序添加新的功能时;用户可以重新配置、自由修改源代码,加入新的功能
8.编译安装源代码包
Tarball封包:.tar.gz 和.tar.bz2 格式居多;软件素材参考:http://sourceforge.net
完整性校验
md5sum校验工具;计算MD5校验和,并与官方提供的值相比较,判断是否一致
[root@localhost ~]# md5sum axel-1.0a.tar.gz
2d94c0b36b374834567f1fcec5f89119 (MD5校验和) axel-1.0a.tar.gz
对于下载回来的软件包文件,如果MD5校验和与官方提供的不一致,则说明该软件包在网络传输过程中可能被非法改动过
对于校验和不一致的软件包,应尽量不要使用,以免带来病毒、木马等不安全因素
编译安装的基本过程
环境:需安装支持C/C++程序语言的编译器,如:gcc-4.4.7-4.el6、gcc-c++-4.4.7-4.el6 ;make-3.81-20.el6.……
过程:
步骤1. 解包:习惯上将软件包释放到/usr/src/ 目录;解包后的源代码文件位置: /usr/src/软件名-版本号/
步骤2. 配置:使用源码目录中的configure 脚本;执行“./configure --help” 可以查看帮助;典型的配置选项: --prefix=软件安装目录
在linux系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹,如:(/configure—prefix=/usr/local/apache)中。
步骤3. 编译:执行make 命令
步骤4. 安装:执行make install 命令
在linux中编译源代码需要使用gcc. Make编译环境;从源代码安装应用程序的基本过程包括解包. 配置. 编译. 安装这四个步骤。
账号和权限管理
1.用户账号和组账号概述
用户帐号:
超级用户,即root用户:类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统
普通用户:帐号一般只在用户自己的宿主目录中有完全权限
程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等
组帐号:
基本组(私有组):每一个账号至少属于一个组。
附加组(公共组):一个账号属于一个基本组后,再加入了另一个组。
UID和GID
UID(User IDentity,用户标识号)
GID(Group IDentify,组标识号)
注意:root用户的UID的固定值为0、root组帐号的GID号为固定值0 ;1~499的UID、GID默认保留给程序用户使用,普通用户/组使用的UID、GID号在500~60000之间
2.用户账号文件 /etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息;每一行对应一个用户的帐号记录;所有用户都可以访问passwd文件中的内容,但只有root用户才能更改
Password文件配置七个字段的含义:账户名称;用户密码或密码占位符;用户账号的uid号;基本组账号的gid号;用户说明;宿主目录;登陆shell。
3.用户账号文件 /etc/shadow
保存用户的密码、账号有效期等信息;每一行对应一个用户的密码记录;文件的每一行内容包含九个用冒号“:”分隔的配置字段
shadow文件配置九个字段的含义:账户名称;md5值. 若为“*/!!” 表明此用户不能登陆,若为空则不需要密码;上次修改密码时间;密码最短有效天数,默认为0;密码最长有效天数,默认为99999;提前多少天警告用户口令即将过期,默认为7;密码过期多少天后禁用该账户;账号失效时间,默认为空,表示永久使用;保留字段。
1):useradd命令:添加用户账号
在rhel 6 中,使用useradd命令主要完成在/etc/passwd和/etc/shadow文件末尾添加该用户的账号记录;若未指定用户宿主目录,则在/home目录下创建与账号同名的宿主目录;若未指定用户所属的组,则自动创建与用户账号同名的基本组,保存在/etc/group. /etc/gshadow中。
语法:useradd [选项]... 用户名
常用命令选项
-u:指定UID 标记号
-d:指定宿主目录,缺省为/home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
2):用户账号的初始配置文件
文件来源:新建用户帐号时,从/etc/skel目录中复制而来
主要的用户初始配置文件
~/.bash_profile:用户每次登录时执行
~/.bashrc:每次进入新的Bash环境时执行
~/.bash_logout:用户每次退出登录时执行
3):passwd命令:为用户账号设置密码
语法:passwd [选项]... 用户名
常用命令选项:-d:清空用户的密码,使之无需密码即可登录;-l:锁定用户帐号;-S:查看用户帐号的状态(是否被锁定);-u:解锁用户帐号
注意:通过password命令锁定的用户账号,将无法在登录系统(shadow文件中的对应密码字符串前将添加“!!”字符),只能由管理员来解除锁定。
4):usermod命令:修改用户账户属性
语法:usermod [选项]... 用户名
常用命令选项
-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同(把指定改为修改即可): -u、-d、-e、-g、-G、-s
5):userdel命令:删除用户账号
语法:userdel [-r] 用户名
添加-r 选项时,表示连用户的宿主目录一并删除
4. 组账号文件
/etc/group:保存组帐号基本信息;/etc/gshadow:保存组帐号的密码信息
1):groupadd命令:添加组账号
语法:groupadd [-g GID] 组账号名
2):gpasswd命令:添加. 设置. 删除组成员
语法:gpasswd [选项]... 组帐号名
常用命令选项:-a:向组内添加一个用户;-d:从组内删除一个用户成员;-M:定义组成员列表,以逗号分隔
3):groupdel命令:删除组账号
语法:groupdel组帐号名 (删除组帐号后,从/etc/group文件中将查不到相应的记录)
5.查询账号信息
id命令:用途:查询用户身份标识;语法:id [用户名]
groups命令:用途:查询用户所属的组;语法:groups [用户名]
finger命令:用途:查询用户帐号的详细信息;语法:finger [用户名]
users、w、who命令:用途:查询已登录到主机的用户信息
6.文件/目录的权限和归属
访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
7.设置目录和文件的权限chmod
语法1:chmod [ugoa] [+-=] [rwx] 文件或目录...(+、-、= 分别表示增加、去除、设置权限)(u、g、o、a 分别表示属主、属组、其他用户、所有用户(ugo的总和))(r,w,x权限字符可分别表示为8进制字符4,2,1,表示一个权限组合时需要将数字进行累加;如rwx=7,rw-r-r=644)
语法22:chmod nnn 文件或目录...(3位八进制数)
常用命令选项:-R:递归修改指定目录下所有子项的权限
8.设置目录和文件的归属chown
语法:chown 属主 文件或目录
Chown :属组 文件或目录
Chown 属主:属组 文件或目录
常用命令选项:-R:递归修改指定目录下所有文件、子目录的归属
linux中安装程序及账户管理的更多相关文章
- 在CentOS 8 Linux中安装使用Cockpit服务器管理软件
在本文中,我们将帮助您在CentOS 8服务器中安装Cockpit Web 控制台,以管理和监视本地系统以及网络环境中的Linux服务器.您还将学习如何将远程Linux主机添加到Cockpit并在Ce ...
- Python原来这么好学-1.2节: 在Linux中安装python
这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员: 本教程面向的是零编程基础的同学,非科班人士,以及有一定编程水 ...
- Linux中安装C++编译器codeBlock,并配置opencv链接库
1.Linux中安装codeBlock https://blog.csdn.net/xinyunyishui/article/details/50967395 2.CodeBlock中的中文显示不完全 ...
- Linux中安装python3.6和第三方库
Linux中安装python3.6和第三方库 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境,比如yum!!!!! ...
- 解决Windows 8.1 应用商店中安装程序挂起的解决
阅读目录: 在Windows 8.1系统的应用程序商店中安装程序时,总是提醒“挂起”状态.无法进行后续安装,看了下国内不少用户有这个困扰,特此总结自己的解决方案. 1. 确保Windows updat ...
- Linux中安装配置spark集群
一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoop MapReduce所 ...
- 在Linux中安装和配置OpenVPN Server的最简便方法!
本文介绍了如何在基于RPM和DEB的系统中安装和配置OpenVPN服务器.我们在本文中将使用一个名为openvpn-install的脚本,它使整个OpenVPN服务器的安装和配置过程实现了自动化.该脚 ...
- 完全零基础在Linux中安装 JDK
完全零基础在Linux中安装 JDK 总体思路:先确定没有Java程序了 — 然后创建相应路径文件夹 — 下载JDK — 解压到当前路径 — 自定义文件名称 — 配置环境变量 — 检查是否安装成功 第 ...
- 在Linux中安装MariaDB并添加远程访问
在Linux中安装MariaDB并添加远程访问 最近学习到了数据库部分,因为有一台台式机一台笔记本换着用,就没有把数据库安装在本机,本来打算用之前买的虚拟空间的数据库的,结果速度太慢用起来太难受了,就 ...
随机推荐
- Android初级教程理论知识(第八章网络编程一)
网络图片查看器 确定图片的网址 发送http请求 URL url = new URL(address); //获取连接对象,并没有建立连接 HttpURLConnection conn = (Http ...
- 统计git代码提交量
以下是我写的一个脚本,可以统计在某个项目中,自己修改代码的行数,包括增加多少行,删除多少行. 可以统计当天,24小时内或全部时间内.使用时需要把代码中的author对应的值换成自己的名字. 代码如下: ...
- UNIX环境高级编程——互斥量属性
互斥量具有一些属性,通过修改这些属性可以控制锁的一些行为.缺省的互斥锁属性及其值如下: pshared: PTHREAD_PROCESS_PRIVATE type: ...
- 精通CSS+DIV网页样式与布局--页面背景
上篇博客,我们主要简单的总结了CSS的图片效果,我们这回来讲讲CSS如何对网页的背景进行设置,网页的背景是整个网页的重要组成部分,她直接决定了整个网页的风格和色调.这篇博客简单的总结一下如何用CSS来 ...
- SVM及其c++代码运用实例
最近做个小东西,要用到SVM,搜索网上,发现大伙都是各种介绍理论,让我等小码农晕头转向,是故自己学习总结一下,并将代码实例展示出来,方便大家共同探讨,该代码是用opencv编写的,很容易学习滴. 1. ...
- 数值分析:Hermite多项式
http://blog.csdn.net/pipisorry/article/details/49366047 Hermite埃尔米特多项式 在数学中,埃尔米特多项式是一种经典的正交多项式族,得名于法 ...
- 【Django】优化小技巧之清除过期session
事情是这样的,大概也就几万注册用户的站点(使用django1.6), session 存储在关系型数据库,这次上线之后发现session表几十万数据了,过期session没有被自动删除 思考 官网 s ...
- Android进阶(十五)socket通信——聊天室
想做一个聊天室,花费了将近一天的时间,各种错误.讲解知识点之前,絮叨几句:动手能力还是很重要的,有时看似简单的一个问题,当你真正着手去解决的时候就有可能会遇到各种各样的问题,原因之一就是因为你的知识储 ...
- android动画之interpolator和typeEvaluator用法详解
Interpolator (插值器) 我们在写动画的时候为了达到某种效果往往需要设置插值器,用来真实的模拟生活中的场景. Interpolator (插值器)被用来修饰动画效果,定义动画的变化率,可以 ...
- 【算法导论】图的广度优先搜索遍历(BFS)
图的存储方法:邻接矩阵.邻接表 例如:有一个图如下所示(该图也作为程序的实例): 则上图用邻接矩阵可以表示为: 用邻接表可以表示如下: 邻接矩阵可以很容易的用二维数组表示,下面主要看看怎样构成邻接表: ...