linux 程序 服务与启动相关总结
时间:2014-12-14 13:59 来源:linux.it.net.cn 作者:IT
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查询
-q
仅查询,后面接的软件是否有安装
-qa
列出所有在本机已安装的软件
-qi
列出已安装软件的详细信息,开发商,版本说明等
-ql
列出软件所有档案与目录所在的完整文件名
-qR
列出与该软件相关的相依软件
-qf
后面接的文件名找出该档案属于哪一个已安装软件
rpm验证
rpm -v
后面接的软件名称,若被改动过,就会列出来
S 档案的大小被改动 M 档案属性被改变 5 md5不同 U 档案所属人被改变 G 档键案所属群组被改变
T 建立时间被改变
rpm -Vf
列出某个档案是否被改动过
rpm -Vp
列出软件内被改动过的档案
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目录与文件管理
显示目录或文件:
ls
-a 不隐藏任何以.字符开始的条目
-b八进制形式显示非打印字符
-R递归列出所有子目录
-d遇到目录时 列出目录本身 而非目录中的文件
-F在条目后加上文件类型指示符号
-L当显示符号链接的文件信息时 显示符号链接所指示的对象而非符号链接本身信息
-x逐行列出项目而不是逐栏列出
-1 每行只列出一个文件
-S(大)根据文件大小排序
-X(大)根据扩展名排序
-c根据状态改变时间排序
-t根据最后修改时间排序
-u根据最后访问时间排序
改变文件/目录属性与权限:
改变所属群组 chgrp
chgrp [-R] 组名 文件/目录
-R 将目录下子目录及文件属性一起变更
改变档案拥有者 chown
chown [-R] 账号名称 档案或目录
改变档案权限 chmod
chmod [-R] nnn 档案或目录
nnn表示权限的三个数字,其中第一个表示属主,第二个表示属组,第三个表示其他人
数字位 r:4 w:2 x:1 最高权限为7 (4+2+1}
chmod [ugoa][+-=][rwx] 档案或目录
u表示属主 g表示属组 o表示其他人 a表示所有人 ,多个定义使用,分隔
例如 chmod u+w,g+rx,o=r /etc/test
目录操作
变换目录
cd 相对路径或绝对路径\
. 表示当前路径 ..表示上一层目录 ~代表家目录 -代表前一个工作目录
显示路径
pwd 显示目前所在目录
建立新目录
mkdir [-mp] 目录名称
-m 直接设定权限,不使用umask设定的默认属性 -p递归建立目录
例如 mkdir -m 711 test
删除空目录
rmdir [-p] 目录
-p 连同上层空目录一起删除
文件操作命令
生成新的空文件或更改现有文件的时间戳
touch [参数] 文件名
-a 只更改访问时间
-M只更改修改时间
linux有三种类型的时间戳
mtime 最后修改时间
ctime 状态改变时间
atime 最后访问时间
复制文件或目录
cp [参数] 来源 目标
-a 等价于-dpR
-d 复制符号链接时创建另一个相同目标的符号链接
-f 强制复制 不管目标是否存在
-i 覆盖文件前需要确认
-p 复制文件保留文件属性
-R -r 递归复制目录及目录内所有项目
-l对源文件创建硬链接
-s对源文件创建符号链接
-u只有当源文件修改时间比目标文件新时 或目标不存在时才复制
移动或改名文件或目录
mv [参数] 源文件 目标
-f强制1 不管目标是否存在
-i交互式移动
-u 只有修改时间新或不存在目标文件时才复制
删除文件或目录
rm [-fir] 档案或目录
-f掠过不存在的文件
-i交互式确认
-r -R递归删除该目录下所有目录层
启动相关
-
加载cmos/bios的硬件信息,进行自我检测
-
读取并执行mbr的引导程序
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删除当前行
-
调用内核,内核自检,呼叫init程序
-
init程序启动, 读取配置文件/etc/inittab ,定义默认级别
读取/etc/rc.d/rc.sysinit进行系统初始化
-
检查网络坏境 2 定义时区 3 设备检测 4 读取/etc/sysconfig/modules/*自定义模块 3 用fsck检测磁盘 4 读取quota配置 ....... 5 将启动状态写入dmasg中
根据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开头的脚本,以供启动使用
-
读取/etc/rc.d/rc.local,驱动用户自定义程序
-
启动图形界面
-
登录
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
格式: 以:分隔
root
x
0
0
chfn:neil
/root
/bin/bash
账户名称
设定是否有密码,如果没有x则不去/etc/shadow中对照密码
uid 设定为0,表示是系统管理员,
1-499是系统id,用于启动系统服务
500-65535给一般使用者使用
gid,初始群组id
信息说明栏
家目录
启动时的指定shell
如果为/sbin/nologin则表示禁止登陆
/etc/group中对照gid相对信息
格式:以:分隔
root
x
0
root,neil
组名
是否设定组密码
gid
组内成员
有效群组: 一个账号可以加入多个群组,在建立账号时设定的群组为初始群组,useradd -G后的群组为附属组,/etc/passwd中用户对应行中显示的群组id为初始组,,附属组的账号需要在/etc/group中体现出来,当前使用的群组环境为有效群组,
使用groups命令可以显示用户所有群组,第一位的就是当前的有效群组.
有效群组的改换使用newgrp命令
将用户加入其它附属组可使用 usermod -G 组名 用户名 或 gpassed -a 用户名
②/etc/shadow中核对密码
格式: 以:分隔
dmtsai
$1vyuUj.eX$o...
14299
5
60
7
5
14419
保留字段
账户名称
密码,加上!或*可以使密码失效
最近修改密码日期,
linux日期格式,单位是天
密码不可被更改天数,与上一字段相比,如果设定为0,表示可以随时更改
密码最长使用期限,与第三字段相比多少天内必须修改
密码到期前的警告天数
密码过期后的宽限天数,
账号失效日期,表示在此日期后,该账号无法使用,linux日期表示,单位为天
以被以后使用
用户添加与管理
用户管理
用户添加
useradd [-u uid] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明] [-d 家目录绝对路径] [-s shell] 账户名
-u 接数字,指定uid -g 初始群组设定/etc/passwd中uid表示 -G附属群组 ,将账号写入/etc/group
-M 强制不建立家目录 -m 强制建立家目录 -c 说明信息,即/etc/passwd中的第五栏 -s 设定shell
-e 设定失效日期
设定密码
passwd [S l d] 账户名
-l 锁定用户账户,在/etc/shadow第二栏上加上!,是密码失效
-u 解锁用户账户
-n shadow第四字段,密码设定后多久不可修改密码 -x shadow第五字段,密码最长使用期限
-w shadow第六字段 警告天数 -i 密码过期天数
管理vbird2密码,使之60天变更,10天密码失效
passwd -x 60 -i 10 vbird2
-S 列出密码相关参数
passwd后不跟账户名,默认给自己修改密码,root可以修改任何人密码,其他用户只能修改自己密码
用户信息修改
usermod [参数] 用户名
-c 账户说明 -d 家目录 -e 失效日期 -f 宽限天数 -g 初始群组 -G 次要群组 -a与-G合用表示增加次要群组
-l 修改账户名称 -u 修改uid -L将账户冻结 -U将账户解锁
用户删除
userdel [-r] 用户名
-r 连同用户家目录也一起删除
用户信息查询
id 用户名
组管理
新增组
groupadd [-g gid] 组名
-g 设定组id
组修改
groupmod [-g gid] [-n 组名] 组名
-g 修改既有的gid数字
-n 修改既有的组名
删除组
groupdel 组名
组管理
gpasswd [-M user] 组名
-M 将某些账号加入群组中
gpasswd -[ad] 用户名 组名
-a 将某位使用者加入到组
-d将某位使用者移除出组
ACL权限设定
ACL是 Access Control List的缩写 ,为提供owner,group,others之外的权限细部设定.可针对单一使用者,单一档案或目录来进行
修改/etc/fstab ,使acl支持能够开机自启动
LABEL=/1 / ext3 defaults,acl 1 1
setfacl 设定某个目录/档案的ACL规范
setfacl [-bkRd] [{-m|-x} acl 参数] 目标文件
-m 设定参数后续的acl参数给档案使用
-x 删除参数后续的acl参数
--d 设定[预设的acl参数],只对目录有效,在该目录新建的数据会引用此默认值
-k 移除[预设的acl参数]
-R 递归设定acl,包括次目录都会被设定起来
-b 移除所有的acl设定
1 针对使用者设定,设定规范 [u:使用者账号列表:rwx]
setfacl -m u:vbird1:rx testfile
如果没有使用者列表,默认针对档案拥有者
2 针对特定群组的方式,设定规范[g:群组列表:rwx]
3 针对有效权限mask的设定方式,使用规范[m:rwx]
有效权限表示使用者和群组设定的权限必须要存在于mask权限设定的范围内才能生效
如设定user权限为rwx,而mask有效权限设定为r,则实际权限只有r
setfacl -m m:r testfile
4 针对预设权限的设定方式,设定规范 [d:[ug]使用者列表:rwx]
setfacl -m d:u:username:rwx testdir
5 移除所有acl权限
setfacl -b 档案名
getfacl 观察acl权限
getfacl 档案名
#开头行表示表示默认属性,user,group,mask,other表示不同使用者权限,群组权限,与有效权限的设定
使用者身份切换
su身份切换
su [-] [-c 指令] username
-
表示切换用户时连同环境一起切换
-
c 仅进行一次指令 ,后面可以加上指令
如果没有用户名,则代表切换为root身份
root切换为任何使用者,不需要输入密码
使用者临时权限
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的结构:
/dev/sdb1
/mnt/disk
ext3
defaults
0
0
磁盘装置名或Label
挂载点
磁盘分区文件系统
文件系统参数,
能否被dump备份
0代表不要做dump备份
1代表每天进行dump动作
2代表其他时间dump
是否以fsck检验扇区
0代表不要检验
1表示最早检验
2较晚检验
文件系统参数
async/sync
auto/noauto
rw/ro
exec/noexec
user/nouser
suid/nosuid
usrquota
grpquota
defaults
设定磁盘是否以异步方式运作
当mount -a时,此文件系统是否会被主动测试挂载
使分区以只读或读写方式挂载上来
限制在文件系统内是否可进行执行动作
是否允许用户使用mount指令挂载
该文件系统是否允许SUID存在
是否支持磁盘配额
是否支持群组磁盘配额
预设情况
磁盘配额
仅能针对整个文件系统,不能针对某个目录来进行限制.对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)
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) |