linux软件管理 linux软件安装的方式分为源码包安装与rpm包安装,yum安装三种方式, 源码安装: ①解压下载的源码文档,并参阅README/INSTALL ②检查configure支持参数,并实际建立makefile规则文件 编译的make指令会在目录下寻找早makefile文件,makefile文件记载了源码如何编译的信息,该文件由软件开发者开发的环境侦测程序configure建立,用来侦测用户环境以及是否具有软件运行的函数库及相依软件等,并将所需软件位置记录.侦测程序侦测完成后会在目录下建立makefile文件 命令行查询可用的./configure参数,并设定安装目录. ./configure --help | more 查询可用的参数有那些 --prefix=PREFIX --prefix后面接的路径就是软件将安装的路径,如果没有设定该参数,通常安装到/usr/local 命令行执行configure程序,建立makefile文件 ./configure --prefix=/安装路径/ ③执行make编译源码 ④执行make install执行编译后的安装 ⑤如果编译过程中产生错误,修改错误后使用make clean清除后再次编译 rpm包安装: ①RedHat下常用的软件管理机制为rpm(RatHet Package Manager),以数据库记录的方式将你需要的软件安装到你的linux上的一套管理机制, ②rpm软件包是将源码编译,并将软件所需环境和数据库记录一并打包 .,rpm安装前会按要求查询安装环境及相依属性软件,满足要求则开始 安装,并将信息写入rpm数据库中,以便未来查询,验证,反安装. ③rpm软件包的格式: rp-pppoe - 3.1 - 5 .i386 .rpm 软件名称 版本信息 此版本 操作硬件平台 扩展名 ④rpm包软件程序常会调用其他程序功能,这就称为属性相依问题,属性相依问题可通过按安装要求顺序安装的方式,或使用YUM安装机制 ⑤linux中软件安装的常用目录配置 /etc 放置一些配置文件 /usr/bin 一些可执行文件 /usr/lib 一些程序使用的动态函数库 /usr/share/doc 一些基本的软件使用手册与说明 i. 安装相关命令 rpm -ivh 软件包名 安装软件包 -i install -v查看细部的安装信息 -h以安装信息列显示安装进度 rpm -Uvh 软件包名 安装或更新软件 -Uvh 后面接的软件如没有安装过,则直接安装,如果安装过则更新 -Fvh 后面接的软件如没有安装过,不会安装,否则升级你的软件 rpm查询
rpm验证
rpm卸载 rpm -e 软件名 YUM安装 YUM安装是透过分析rpm包相关属性相依状态后,通过在线查询YUM服务器资料,以解决软件安装或移除升级问题 YUM配置文件,YUM通过配置文件定义YUM更新源位置 /etc/yum.repos.d/CentOS-Base.repo.该文件中baseurl一行定义了更新源的实际网址,如果未上网状态,可使用YUM本地安装配置文件CentOS-media.repo,将CentOS-Base.repo改名后.将baseurl设置指向光盘目录.并将enabled一行设置为enabled=1 YUM安装软件: yum install 软件 YUM升级软件: yum update 软件 YUM卸载软件: YUM remove 软件
Linux目录与文件管理 显示目录或文件:
改变文件/目录属性与权限:
目录操作
文件操作命令
启动相关
grub引导程序 ---grub配置文件 位置:/boot/grub/grub.conf 内容: 1 #开始的注释行 2 不包括在title区内的全局配置 内容:default:菜单项,设置默认启动项 timeout:延时描述 spashimage:grub背景图片路径 3 title后的菜单项配置 内容: title: 启动菜单中显示标题 root:设置内核所在分区 kernel:指定加载linux内核文件 initrd:指定一个引导可用的初始ram盘rub grub界面编辑命令:b启动当前菜单项 e编辑当前选中行 c 进入grub命令行方式 d删除当前行
读取/etc/rc.d/rc.sysinit进行系统初始化
根据inittab的启动级别相关脚本目录设定进入,相关目录,运行/etc/rc.d/rc,读取/etc/rc.d/rcN目录脚本,将其中s开头脚本启动,k开头的脚本停止 /etc/rc.d/rcN目录中是链接,链接到/etc/init.d目录中相应服务脚本. 使用chkconfig可以在/etc/rc.d/rcN.d目录中自动设定处理k,s开头的脚本,以供启动使用
linux服务分类 程序相关目录: /etc/init.d/* 系统内所有程序启动脚本放置处. /etc/rc.d/init.d/目录为centos放置程序启动脚本处,有一个超链放进了/etc/init.d /etc/sysconfig/* 系统内所有服务初始化环境配置脚本目录 /etc/xinetd.d/* xinetd管理的各程序启动脚本 /etc/* 各服务各自的配置文件 /var/lib/* 各服务产生的数据库 /var/run 各服务产生的pid
独立服务 :一直占用内存与系统资源,反应迅速 启动: /etc/rc.d/init.d/* start service * start 显示目前系统上所有服务状态 :service --status-all 自启动 chkconfig --level 2345 服务名 on|off
统一管理服务(xinetd):由超级服务统一管理,需要时才唤醒相应服务,需求结束时,关闭服务,释放资源 启动: 设定/etc/xinetd.d/* 文档中 使disable=no 重启动xinetd程序 service xinetd restart 自启动: chkconfig 服务名 on
程序管理相关命令
ps 将某个时间点的程序运作程序显示出来 ps aux 观察系统所有程序数据 ps axjf 连同部分程序树状态 ps -l 只显示与此次登陆有关的程序 top动态观察程序变化 pstree 以树状显示程序 -p同时列出某个process的pid号 -u同时列出每个process的所属账号 free显示内存使用情况 -t 显示物理内存与swap总量 -m以mb显示单位 netstat 追踪网络或插槽文件 -a 将所有数据都列出来 -t 列出tcp网络封包数据 -u 列出udp网络封包数据 -l 列出目前正在网络监听的服务 -p 列出该网络服务的pid -n 不以程序名,以端口号显示 netstat -tlnp fuser 从文件找出正在使用该文件的程序 -u除了程序pid外,同时列出该程序的拥有者 -v可以列出每个档案与程序的完整相关性 -k找出使用该档案的的pid 找出目前所在目录的使用pid/账号/权限为何? fuser -uv lsof 列出被程序所开启的档案文件名 -u 列出该用户的相关程序开启的档案 -a 多项数据同时成立才显示结果 -U 仅列出linux系统的socket文件类型 列出root所有程序开启的socket档案 lsof -u root -a -U
linux账号管理
登录-------①/etc/passwd中找出pid 格式: 以:分隔
/etc/group中对照gid相对信息 格式:以:分隔
有效群组: 一个账号可以加入多个群组,在建立账号时设定的群组为初始群组,useradd -G后的群组为附属组,/etc/passwd中用户对应行中显示的群组id为初始组,,附属组的账号需要在/etc/group中体现出来,当前使用的群组环境为有效群组, 使用groups命令可以显示用户所有群组,第一位的就是当前的有效群组. 有效群组的改换使用newgrp命令 将用户加入其它附属组可使用 usermod -G 组名 用户名 或 gpassed -a 用户名 ②/etc/shadow中核对密码 格式: 以:分隔
用户添加与管理 用户管理
组管理
ACL权限设定 ACL是 Access Control List的缩写 ,为提供owner,group,others之外的权限细部设定.可针对单一使用者,单一档案或目录来进行 修改/etc/fstab ,使acl支持能够开机自启动 LABEL=/1 / ext3 defaults,acl 1 1
使用者身份切换
使用者临时权限 sudo 以其他用户权限来临时执行某项管理 sudo执行流程: 1 当用户执行sudo时,系统于/etc/sudoers档案中搜索该使用者是否具有执行权限 编辑sudoers使用指令 visudo ,设定为类似 username ALL=ALL command格式 root all =all all 使用者账号 登入者来源主机名 可切换身份 可下达指令 在使用者账号使用%加组名方式,设定群组使用者都可使用的指令 如果没有可切换身份,设定为类似 all=command形式,则默认以root身份执行 如果设定为不输入密码即可执行,可写为 ALL=NOPASSWD /命令 指令必须使用绝对路径 设定某用户可以修改其他用户密码,但是不能修改root密码:(!表示不可执行) myuser1 ALL=(root) !/usr/bin/passwd "",/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root
2 若用户具有权限,使用者需要输入密码来确认 3 密码成功,开始进行sudo后续指令
sudo命令: sudo [-u username] 指令 例 sudo -u user touch /tmp/myuser
linux磁盘管理,分隔,挂载 磁盘分隔 ①fdisk [-l] 装置名称 -l输出后面装置的的分区内容,若仅有fdisk -l时,则将整个系统内能找到的分区都列出来,格式如下: device boot start end blocks id system /dev/sda1 * 1 26 204800 83 linux 比较相似的命令区别: df [-ahikHTm] [目录和文件名] 显示磁盘的文件系统和相关信息 -a 列出所有的文件系统 -k 以kbytes的单位显示 -m 以mbytes的单位显示 -h 以人们较易阅读的格式显示 -T连同分区的文件系统一起列出 -i 以inode的数量显示 例如 df -aT 结果显示为 filesystem type 1k-blocks userd available user% mounted on /dev/hdc2 ext3 9920624 3823112 5585444 41% /proc
②输入m看到指令介绍 d 删除一个分区 n 新增一个分区 p 在屏幕上显示分隔表 q 不储存离开fdisk w 储存分区动作 磁盘格式化 mkfs [-t 文件系统格式] 装置文件名 -t 接文件系统格式 例如:mkfs -t ext3 /dev/hdc6 磁盘分区检测 fsck [-t 文件系统] [-ACay] 装置名称 -t 指定检查的文件系统 -A 依据/etc/fstab的内容,将需要的装置扫描一次 -a 自动修复检查有问题的扇区 -y 与-a类似 -f强制检查 -C 可以在检验的过程中,使用一个直方图来显示目前的进度 例如 fsck -C -f -t ext3 /dev/hdc6 磁盘挂载 mount [-t 文件系统] [-L Label] [-o 额外选项] [-n] 装置文件名 挂载点 -a 依照/etc/fstab数据将所有未挂载磁盘挂载上 -l 在显示目前的挂载信息上可显示Label名称 -t 指定欲挂载的文件类型 -n 不将挂载情况实时写入/etc/mtab中 -o表示可写上的额外参数: ro,rw 挂载文件系统成为只读ro 或可擦写rw user,nouser 是否允许分区让任何人可以执行mount remount 重新挂载 auto,noauto 是否允许被mount -a 自动挂载 例如: mount -l 观察已挂载文件系统,包含文件系统的Label名称 mount -o remount,rw,auto / 重新挂载根目录,并设为读写 mount -t iso9660 /dev/cdrom /media/cdrom 挂载光盘 mount -t vfat /dev/fd0 /media/floppy 挂载软盘 磁盘卸载 umount [-fn] 装置文件名或挂载点 -f 强制卸除 可用在类似网络文件系统(nfs)无法读取到的情况下 -n 不更新/etc/mtab的情况下卸载 (/etc/fstab与/etc/mtab相同都是记录磁盘分区情况,不同的是mtab实时记录) 设定开机自动挂载 将挂载信息写入/etc/fstab即可实现开机自动挂载 i. 开机挂载时,跟目录必须挂载,而且一定是先于其他挂载点 ii. 其他挂载点必须为已建立的目录,同一时间只能挂载一次 iii. 如要卸载,必须将工作目录移到挂载点之外 /etc/fstab的结构:
文件系统参数
磁盘配额 仅能针对整个文件系统,不能针对某个目录来进行限制.对root不能设定quota 软规定与硬规定: 软规定表示超过此值时,会发出警告,且给予一个宽限时间,超过期限还没有低于此值,就会将软规定执行为硬规定 硬规定表示使用者的用量绝对不允许超过此值
使系统支持quota磁盘配额 修改/etc/fstab,将欲添加磁盘配额的分区一行添加usrquota或grpquota 例如: LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2 检查修改 修改完成后使用partproby从新读取分区,检查设定是否有错误,或者使用 mount -o remount 分区. 建立quota记录文件 quotacheck [-avugfM] [挂载点] 扫描文件系统并建立quota记录文件 -a 扫描所有文件系统 -u针对用户扫描档案与目录的使用情况,建立记录文件aquota.user -g 针对群组扫描,建立quota.group文件 -v显示扫描过程的信息 -M强制读写方式扫描文件系统 例如: quotacheck -avug 启动quota服务 quotaon 编辑详细限制信息 edquota [-u 用户] [-t 宽限期] 显示画面如: filesystem blocks soft harf inodes soft hard /dev/hda3 80 0 0 10 0 0 修改soft和hard栏,第一栏表示文件系统,二至四行表示blocks限制情况,五至七行表示inode限制情况 修改宽限期 edquota -t 显示画面如: filesystem block grace period inode grace period /dev/hda3 14days 7days 修改天数即可 关闭磁盘配额限制 quotaoff
linux网络管理与调试 临时查询设置网卡与ip网段等相关参数 ifconfig 显示本机网络接口信息 eth0 网卡代号 Hwaddr mac地址 inet addr ipv4的网络地址 inet6 addr ipv6的网络地址 RX 网络启动到现在的数据包接受情况 TX 网络的数据包传送情况 collisions 数据包碰撞值 ,太大表示网络情况不好 txqueuelen 代表传输数据的缓存区长度 RX Bytes TX Bytes 总传送,接受的字节总量 ifconfig [网卡接口代号] {up|down} 启动与关闭接口 ifconfig 网卡接口 [参数] 设置与修改网卡信息 up | down 启动或关闭网络接口 mtu 设置不同的mtu值 netmask 设置子网掩码 broadcast 广播地址 例如 : ifconfig eth0 192.168.100.100 netmask 255.255.255.128 mtu 80000 ifconfig eth0:0 192.168.50.50 (eth0:0 代表在一个网卡上设置的另一个仿真接口) 如果需要永久保存修改配置信息,需要在/etc/sysconfig/network-scripts/目录中修改相应的网卡配置文件)
路由修改 route 观察路由状态 : route 或 route -n(使用ip或pot number显示)
增加或删除路由 : route add | del [-net | -host] [网段或主机] netmask [mask] [gw | dev ] -net 表示后面的路由为一个网段 -host 表示后面接的为了解到单台的路由 gw 表示后面接网关 dev 表示后面接设备 例如 : route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0 网络连通观察 ping [参数] ip -c ping命令执行次数 -s 送出去的icmp数据包大小,默认为64bytes -b后面接网段的ip,用于对整个网段ping 例如 : ping -c 3 -b 192.168.10.255 追踪两台主机之间的节点 traceroute [参数] ip -n 不必解析主机名,只是用ip -w 对方几秒内没回应认为连接失败,默认5秒 -i 选择连通的出口 -g 选择连通的网关 例如: traceroute -n www.sina.com 查看网络服务状态 netstat [参数] -r 列出路由表 ,功能同route -n使用ip表示 -a列出所有联机状态 -t列出tcp数据包联机 -u 列出udp数据包联机 -p 列出pid与程序文件名 -c 几秒钟自动自动更新一次 例如 netstat -tulnp 显示目前已启动的网络服务 ip与主机名称的互查 (以/etc/resolv.conf文件作为dns服务器来源选择) nslookup [hostname | ip] 例如: nslookup 168.95.1.1 (责任编辑:IT) |