centos 文件列表?centos怎么用

centos 怎样写linux命令

Linux的常用基本命令。

首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中“系统管理员”拥有最高权限。

在启动Linux后屏幕出现如下界面显示:

……

Red Hat Linux release 9(Shrike)

Kernel2.4.20.8 on an i686

login:

输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个“#”提示符时,表明你登录成功!

屏幕显示Linux提示符:[root@localhost root]#_

这里需要说明的是“Red Hat Linux release 9(Shrike)”表示当前使用的操作系统的名称及版本。“2.4.20.8”表示Linux操作系统的核

心版本编号。“i686”表示该台电脑使用的CPU的等级。

下面我们来介绍常用基本命令

一,注销,关机,重启

注销系统的logout命令

1,Logout注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:

[root@localhost root]#logout

Red Hat Linuxrelease 9(Shike)

Kernel2.4.20.8 on an i686

Login:←回到登陆的画面

2,关机或重新启动的shutdown命令

Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。

参数说明如下:

立即关机:-h参数让系统立即关机。范例如下:

[root@localhost root]#shutdown–h now←要求系统立即关机

指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下:

[root@localhost root]#shutdown now←立刻关机

[root@localhost root]#shutdown+5← 5分钟后关机

[root@localhost root]#shutdown 10:30←在10:30时关机

关机后自动重启:-r参数设置关机后重新启动。范例如下:

[root@localhost root]#shutdown-r now←立刻关闭系统并重启

[root@localhost root]#shutdown-r 23:59←指定在23:59时重启动

3,重新启动计算机的reboot命令

顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:

-f参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。

-I参数:在在重新启动之前关闭所有网络接口。

虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了

二,文件与目录的操作

1,列出文件列表的ls命令

ls(list)命令是非常有用的命令,用来显示当前目录中的文件和子目录列表。配合参数的使用,能以不同的方式显示目录内容。范例

如下:

显示当前目录的内容:

[tony@free tony]$ ls

Desktop mail myinstall.log test.txt←有两个目录及两个文件夹

当运行ls命令时,并不会显示名称以“.”开头的文件。因此可加上“-a”参数指定要列出这些文件。范例如下:

[tony@free tony]$ ls–a

以“-s”参数显示每个文件所有的空间,并以“-S”参数指定按所有占用空间的大小排序。范例如下:

[tony@free tony]$ ls–s–S

总计36

4 Desktop 4 mail 24 myinstall.log 4 test.txt

在ls命令后直接加上欲显示的目录路径,就会列出该目录的内容。范例如下:

[tony@free tony]$ ls–l/usr/games

2,切换目录的cd命令

cd(change directory)命令可让用户切当前所在的目录。范例如下:

[tony@free home]$ cd tony←切换到当前目录下的tony子目录

[tony@free tony]$ cd..←切换到上一层目录

[tony@free home]$ cd/←切换到系统根目录

[tony@free/]$ cd←切换到用户主目录

[tony@free tony]$ cd/usr/bin←切换到/usr/bin目录

3,创建目录的mkdir命令

Mkdir(make directory)命令可用来创建子目录。下面的范例会在所在目录下创建tool子目录。

[tony@free tony]$ mkdir tool

4,删除目录的rmdir命令

rmdir(remove directory)命令可用来删除“空”的子目录。范例如下:

[tony@free tony]$ rmdir tool←删除tool目录

5,复制文件的cp命令

cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令将以个文件复制成另一个文件或复制到某个目录时,需要指定原始文件

名与目的文件名或目录。范例如下:

[tony@free tony]$ cp data1.txt data2.txt←将data1.txt复制成data2.txt

[tony@free tony]$ cp data3.txt/tmp/data←将data3复制到/tmp/data目录中

显示复制过程:加入-v参数可显示命令执行过程。范例如下:

[tony@free tony]$ cp zip.txt zip2.txt←一般状态下不会显示复制过程

[tony@free tony]$ cp–v zip.txt zip3.txt←以-v显示复制过程

zip.txt->zip3.txt

递回复制:加入“-R”参数可同时复制目录下的所有文件及子目录。范例如下:

[tony@free tony]$ cp–v–R* backup←将所有文件(含子目录文件)复制到backup目录

6,删除文件或目录的rm命令

rm(remove)命令可以删除文件或目录。范例如下:

[tony@free tony]$ rm myfile←删除指定的文件

[tony@free tony]$ rm*←删除当前目录中的所有文件

rm命令的常用参数如下:

强迫删除:使用-f参数时,rm命令会直接删除文件,不再询问。范例如下:

[tony@free tony]$ rm–f*.txt←强迫删除文件

递回删除:-r也是一个相当常用的参数,使用此参数可同时删除指定目录下的所有文件及子目录。范例如下:

[tony@free tony]$ rm–r data←删除data目录(含data目录下所有文件和子目录)

[tony@free tony]$ rm–r*←删除所有文件(含当前目录所有文件,所有子目录和子目录下的文件)

强制删除指定目录:当使用-r参数删除目录时,若该目录下有许多子目录及文件,则系统会不间断地询问,以确认您的确要删除

目录或文件。若已确定要删除所存目录及文件,则可以使用-rf参数,如此一来,系统将直接删除该目录中所有的文件及子目录,不再询问。范

例如下:

[tony@free tony]$ rm–rf tmp强制删除tmp目录及该目录下所有文件及子目录

显示删除过程:使用-v参数。范例如下:

[tony@free tony]$ rm–v

7,让显示画面暂停的more命令

为了避免画面显示瞬间就闪过去,用户可以使用more命令,让画面在显示满一页时暂停,此时可按空格键继续显示下一个画面,或按Q键停

止显示。

当使用ls命令查看文件列表时,若文件太多则可以配合more命令使用。范例如下:

[tony@free bin]$ ls–al more

单独使用more命令时,可用来显示文字文件的内容。范例如下:

[tony@free tony]$ more data.txt

8,连接文件的cat命令

cat(concatenate)命令可以显示文件的内容(经常和more命令搭配使用),或是将数个文件合并成一个文件。范例如下:

逐页显示 preface.txt的内容:

[tony@free tony]$ cat preface.txt more

将preface.txt附加到outline.txt文件之后:

[tony@free tony]$ cat preface.txt>> outline.txt

将new.txt和info.txt合并成readme.txt文件:

[tony@free tony]$ cat new.txt info.txt>readme.txt

9,移动或更换文件,目录名称的mv命令

mv(move)命令可以将文件及目录移动到另一个目录下面,或更换文件及目录的名称。范例如下:

[tony@free backup]$ mv a.txt..←将a.txt文件移到上层目录

[tony@free backup]$ mv z1.txt z3.txt←将 z1.txt改名成z3.txt

[tony@free backup]$ cd..←切换到上一层目录

[tony@free tony]$ mv backup..← backup目录上移一层

10,显示当前所在目录的pwd命令

pwd(print working directory)命令可显示用户当前所在的目录。范例如下:

[tony@free tony]$ pwd

/home/tony←当前所在目录为“/home/tony”

11,查找文件的locate命令

locate命令可用来搜索包含指定条件字符串的文件或目录。范例如下:

[tony@free tony]$ locate zh_CN列出所有包含“zh_CN”字符串的文件和目录。

由于locate命令是从系统中保存文件及目录名称的数据库中搜索文件,虽然系统会定时更新数据库,但对于刚新增或删除的文件、目录,

仍然可能会因为数据库尚未更新而无法查得,此时可用root身份运行updatedb命令更新,为此数据库得内容正确。

12,搜索字符串得grep命令

grep命令可以搜索特定字符串来并显示出来,一般用来过滤先前得结果,避免显示太多不必要得信息。范例如下:

[tony@free etc]$ grep text*.conf←搜索当前目录中扩展名为.conf且包含“text”字符串得文件。

grep:amd.conf:←拒绝不符权限得操作

grep:diskcheck.conf:←拒绝不符权限得操作

grep:grub.conf←拒绝不符权限得操作

若您是使用一般权限的用户运行,上例的输出结果会包含很多如“拒绝不符权限的操作之类的错误信息,可使用-s参数消除。

[tony@free etc]$ grep–s text*.conf

13,重导与管道

重导(redirect)可将某命令的结果输出导文件中,它有两中命令:“>”和“>>”。“>”可将结果输出到文件中,该文件原有的内容会被

删除:“>>”则将结果附加到文件中,原文件内容不会被清除。范例如下:

[tony@free tony]$ ls–a>dir.txt←将ls–a命令执行结果输出到dir.txt文件。

[tony@free tony]$ cat data1.txt>> data2.txt←将 data1.txt内容附加到data2.txt文件之后。

通道(pipe)命令的符号是“”,可将某命令的结果输出给另一命令,一下范例将ls命令的输出结果传给grep命令过滤:

[tony@free etc]$ ls gerp conf←搜索并显示ls命令运行结果中包含有“conf”字符串

在举一个删除文件或目录的例子,可以利用yes命令重复输出“y”字符的特性,将结果传给rm命令,如此即可避免重复输入“y”:

[tony@free tony]$ yes rm–r mydir

三,使用光盘及软盘

在Linux的文字模式下要使用光盘或软盘,并不是只将光盘或软盘放入即可,用户需要运行加载的命令,才可读写数据。所谓加载就是将存

储介质(如光盘和软盘)指定成系统中的某个目录(如/mnt/cdrom或mnt/floppy)。通过直接存取此加载目录,即可读写存储介质中的数据。

以下就来看看文字模式下的加载及卸载命令。

1,加载的mount命令

要使用光盘时先把光盘放入光驱,然后执行加载的mount命令,将光盘加载至系统中:

[tony@free tony]# mount/dev/cdrom/mut/cdrom←加载光盘

同理,使用软盘之前也需要和光盘一样,必须先加载后才能使用:

[tony@free tony]# mount/dev/fd0/mut/floppy←加载软盘

2,卸载的umount命令

如果不需要使用光盘或软盘,则需先执行卸载命令之后,才能将光盘或软盘退出。范例如下:

[tony@free tony]# umount/ mnt/cdrom←光盘卸载

在不使用软盘时执行umount命令卸载软盘,再将软盘拿出

[tony@free tony]# umount/ mnt/←软盘卸载

四,在后台运行程序

用户有时的程序有可能要花费很多时间,如果将它放在前台运行,将导致无法继续做其他事情,最好的方法就是将它放在后台运行,甚至

可能希望在用户注销系统后,程序还可以继续运行。让我们看看那如何实现这一目的。

1,在后台运行程序的&、bg命令

将程序放到后台运行的最简单方法就是在命令最后加上“&”,范例如下:

[tony@free root]# updatedb&←在后台执行 locate数据库更新命令

[tony@free root]# bg←将更新操作放到后台运行

2,前台运行的程序fg命令

如果用户当前已有程序在后台运行,可以输入fg命令,将它从背景中移到前台运行:

[tony@free root]# fg←放到前台执行的命令会显示出来

3,在退出后让程序继续运行的nohup命令

此命令可使用户退出系统后,程序继续运行。范例如下:

[tony@free rony]$ nohup myserver&

然后用户就可以退出了,当再次登录的时候,可以用ps–aux命令看到程序仍在后台中运行。

五,任务调度命令

计算机有很多程序需要周期性的被运用,例如清理磁盘中不要的暂存盘、备份系统数据、检查远程服务器的邮件等。对于这些重复性的工

作,其实不需要每次都辛苦地运行这些程序。可利用任务调度命令,指定系统定期在某个时间运行这些程序,轻轻松松完成想要执行的工作。

任务调度的crond常驻命令

crond是Linux用来定期执行程序的命令。当安装完成操作系统后,默认便会启动此任务调动命令。crond命令每分钟会定期检查是否有要

执行的工作,如果有要执行的工作,便会自动执行该工作。由于任务调度中间的操作过程十分繁杂,我们只将任务调度文件的写法介绍给大家

,供大家参阅:

Minute Hour Day Month DayOfWeek Command

在这段文字中除了“Command”是每次都必须指定的字段以外,其他自动皆可视需求自行决定是否指定。

六,任务调度的系统工作

/ect/crontab/文件是Linux系统工程的任务调度设置文件,其默认的内容如下:

SHELL=/bin/bash←指定执行任务调度工作时所使用的SHELL

PATH=/shin:/bin:/usr/sbin:/usr/bin←指定命令搜索的路径

MAILTO=root←指定将输出结果给root用户

HOME=/←指定跟目录

CentOS有哪些常见的处理目录的命令

CentOS基础命令大全

1.关机(系统的关机、重启以及登出)的命令

shutdown-h now关闭系统(1)

init 0关闭系统(2)

telinit 0关闭系统(3)

shutdown-h hours:minutes&按预定时间关闭系统

shutdown-c取消按预定时间关闭系统

shutdown-r now重启(1)

reboot重启(2)

logout注销

2.查看系统信息的命令

arch显示机器的处理器架构(1)

uname-m显示机器的处理器架构(2)

uname-r显示正在使用的内核版本

dmidecode-q显示硬件系统部件-(SMBIOS/ DMI)

hdparm-i/dev/hda罗列一个磁盘的架构特性

hdparm-tT/dev/sda在磁盘上执行测试性读取操作

cat/proc/cpuinfo显示CPU info的信息

cat/proc/interrupts显示中断

cat/proc/meminfo校验内存使用

cat/proc/swaps显示哪些swap被使用

cat/proc/version显示内核的版本

cat/proc/net/dev显示网络适配器及统计

cat/proc/mounts显示已加载的文件系统

lspci-tv罗列 PCI设备

lsusb-tv显示 USB设备

date显示系统日期

cal 2007显示2007年的日历表

date 041217002007.00设置日期和时间-月日时分年.秒

clock-w将时间修改保存到 BIOS

3.文件和目录操作命令

cd/home进入'/ home'目录'

cd..返回上一级目录

cd../..返回上两级目录

cd进入个人的主目录

cd~user1进入个人的主目录

cd-返回上次所在的目录

pwd显示工作路径

ls查看目录中的文件

ls-F查看目录中的文件

ls-l显示文件和目录的详细资料

ls-a显示隐藏文件

mkdir dir1创建一个叫做'dir1'的目录'

mkdir dir1 dir2同时创建两个目录

mkdir-p/tmp/dir1/dir2创建一个目录树

rm-f file1删除一个叫做'file1'的文件'

rmdir dir1删除一个叫做'dir1'的目录'

rm-rf dir1删除一个叫做'dir1'的目录并同时删除其内容

rm-rf dir1 dir2同时删除两个目录及它们的内容

mv dir1 new_dir重命名/移动一个目录

cp file1 file2复制一个文件

cp dir/*.复制一个目录下的所有文件到当前工作目录

cp-a/tmp/dir1.复制一个目录到当前工作目录

cp-a dir1 dir2复制一个目录

ln-s file1 lnk1创建一个指向文件或目录的软链接

ln file1 lnk1创建一个指向文件或目录的物理链接

touch file1创建一个文件

4.文件搜索命令

find/-name file1从'/'开始进入根文件系统搜索文件和目录

find/-user user1搜索属于用户'user1'的文件和目录

find/home/user1-name \*.bin在目录'/ home/user1'中搜索带有'.bin'结尾的文件

find/usr/bin-type f-atime+100搜索在过去100天内未被使用过的执行文件

find/usr/bin-type f-mtime-10搜索在10天内被创建或者修改过的文件

locate \*.ps寻找以'.ps'结尾的文件-先运行'updatedb'命令

whereis file显示一个二进制文件、源码或man的位置

which file显示一个二进制文件或可执行文件的完整路径

5.查看文件内容

cat file1从第一个字节开始正向查看文件的内容

tac file1从最后一行开始反向查看一个文件的内容

more file1查看一个长文件的内容

less file1类似于'more'命令,但是它允许在文件中和正向操作一样的反向操作

head-2 file1查看一个文件的前两行

tail-2 file1查看一个文件的最后两行 5.挂载命令

mount/dev/hda2/mnt/hda2挂载一个叫做hda2的盘(注:确定目录'/ mnt/hda2'已经存在)

umount/dev/hda2卸载一个叫做hda2的盘(先从挂载点'/ mnt/hda2'退出)

fuser-km/mnt/hda2当设备繁忙时强制卸载

umount-n/mnt/hda2运行卸载操作而不写入/etc/mtab文件(当文件为只读或当磁盘写满时非常有用)

mount/dev/fd0/mnt/floppy挂载一个软盘

mount/dev/cdrom/mnt/cdrom挂载一个光盘

mount/dev/hdc/mnt/cdrecorder挂载一个cdrw或dvdrom

mount/dev/hdb/mnt/cdrecorder挂载一个cdrw或dvdrom

mount-o loop file.iso/mnt/cdrom挂载一个文件或ISO镜像文件

mount-t vfat/dev/hda5/mnt/hda5挂载一个Windows FAT32文件系统

mount/dev/sda1/mnt/usbdisk挂载一个usb捷盘或闪存设备

mount-t smbfs-o username=user,password=pass//WinClient/share/mnt/share挂载一个windows网络共享

6.磁盘空间操作的命令

df-h显示已经挂载的分区列表

ls-lSr|more以尺寸大小排列文件和目录

du-sh dir1估算目录'dir1'已经使用的磁盘空间'

du-sk*| sort-rn以容量大小为依据依次显示文件和目录的大小

7.用户和群组相关命令

groupadd group_name创建一个新用户组

groupdel group_name删除一个用户组

groupmod-n new_group_name old_group_name重命名一个用户组

useradd-c"Name Surname"-g admin-d/home/user1-s/bin/bash user1创建一个属于"admin"用户组的用户

useradd user1创建一个新用户

userdel-r user1删除一个用户('-r'同时删除除主目录)

passwd user1修改一个用户的口令(只允许root执行)

chage-E 2005-12-31 user1设置用户口令的失效期限

ls-lh显示权限

chmod 777 directory1设置目录的所有人(u)、群组(g)以及其他人(o)以读(r)、写(w)和执行(x)的权限

chmod 700 directory1删除群组(g)与其他人(o)对目录的读写执行权限

chown user1 file1改变一个文件的所有人属性,为use1。

chown-R user1 directory1改变一个目录的所有人属性并同时改变改目录下所有文件的属性都为use1所有

chgrp group1 file1改变文件的群组为group1

chown user1:group1 file1改变一个文件的所有人和群组属性,所属组为group1,用户为use1。

find/-perm-u+s罗列一个系统中所有使用了SUID控制的文件

chmod u+s/bin/file1设置一个二进制文件的 SUID位-运行该文件的用户也被赋予和所有者同样的权限

chmod u-s/bin/file1禁用一个二进制文件的 SUID位

chmod g+s/home/public设置一个目录的SGID位-类似SUID,不过这是针对目录的

chmod g-s/home/public禁用一个目录的 SGID位

chmod o+t/home/public设置一个文件的 STIKY位-只允许合法所有人删除文件

chmod o-t/home/public禁用一个目录的 STIKY位

8.打包和解压缩文件的命令

bunzip2 file1.bz2解压一个叫做'file1.bz2'的文件

bzip2 file1压缩一个叫做'file1'的文件

gunzip file1.gz解压一个叫做'file1.gz'的文件

gzip file1压缩一个叫做'file1'的文件

gzip-9 file1最大程度压缩

rar a file1.rar test_file创建一个叫做'file1.rar'的包

rar a file1.rar file1 file2 dir1打包'file1','file2'以及目录'dir1'

rar x file1.rar解rar包

unrar x file1.rar解rar包

tar-cvf archive.tar file1创建一个非压缩的tar包

tar-cvf archive.tar file1 file2 dir1创建一个包含了'file1','file2''dir1'的包

tar-tf archive.tar显示一个包中的内容

tar-xvf archive.tar释放一个包

tar-xvf archive.tar-C/tmp将压缩包释放到/tmp目录下(-c是指定目录)

tar-cvfj archive.tar.bz2 dir1创建一个bzip2格式的压缩包

tar-xvfj archive.tar.bz2解压一个bzip2格式的压缩包

tar-cvfz archive.tar.gz dir1创建一个gzip格式的压缩包

tar-xvfz archive.tar.gz解压一个gzip格式的压缩包

zip file1.zip file1创建一个zip格式的压缩包

zip-r file1.zip file1 file2 dir1将几个文件和目录同时压缩成一个zip格式的压缩包

unzip file1.zip解压一个zip格式压缩包

9.关于RPM包的命令

rpm-ivh package.rpm安装一个rpm包

rpm-ivh--nodeeps package.rpm安装一个rpm包而忽略依赖关系警告

rpm-U package.rpm更新一个rpm包但不改变其配置文件

rpm-F package.rpm更新一个确定已经安装的rpm包

rpm-e package_name.rpm删除一个rpm包

rpm-qa显示系统中所有已经安装的rpm包

rpm-qa| grep httpd显示所有名称中包含"httpd"字样的rpm包

rpm-qi package_name获取一个已安装包的特殊信息

rpm-ql package_name显示一个已经安装的rpm包提供的文件列表

rpm-qc package_name显示一个已经安装的rpm包提供的配置文件列表

rpm-q package_name--whatrequires显示与一个rpm包存在依赖关系的列表

rpm-q package_name--whatprovides显示一个rpm包所占的体积

rpm-q package_name--scripts显示在安装/删除期间所执行的脚本l

rpm-q package_name--changelog显示一个rpm包的修改历史

rpm-qf/etc/httpd/conf/httpd.conf确认所给的文件由哪个rpm包所提供

rpm-qp package.rpm-l显示由一个尚未安装的rpm包提供的文件列表

rpm--import/media/cdrom/RPM-GPG-KEY导入公钥数字证书

rpm--checksig package.rpm确认一个rpm包的完整性

rpm-qa gpg-pubkey确认已安装的所有rpm包的完整性

rpm-V package_name检查文件尺寸、许可、类型、所有者、群组、MD5检查以及最后修改时间

rpm-Va检查系统中所有已安装的rpm包-小心使用

rpm-Vp package.rpm确认一个rpm包还未安装

rpm2cpio package.rpm| cpio--extract--make-directories*bin*从一个rpm包运行可执行文件

rpm-ivh/usr/src/redhat/RPMS/`arch`/package.rpm从一个rpm源码安装一个构建好的包

rpmbuild--rebuild package_name.src.rpm从一个rpm源码构建一个 rpm包

10.YUM软件包升级器

yum install package_name下载并安装一个rpm包

yum localinstall package_name.rpm将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系

yum update package_name.rpm更新当前系统中所有安装的rpm包

yum update package_name更新一个rpm包

yum remove package_name删除一个rpm包

yum list列出当前系统中安装的所有包

yum search package_name在rpm仓库中搜寻软件包

yum clean packages清理rpm缓存删除下载的包

yum clean headers删除所有头文件

yum clean all删除所有缓存的包和头文件

CentOS7常用命令集合不过其实大多和DOS是一样的,只是命令的表达上可能有点儿不一样,毕竟这些都不是一家出来的嘛~

CentOS下将软件源码打包为RPM的方法

平台:centos6.5

首先是搭建环境:

复制代码代码如下:[cpp] view plaincopyprint?

[root@localhost binbin]#yum install-y rpm-build

[cpp] view plaincopyprint?

[root@localhost binbin]#yum install redhat-rpm-config

之后会在/root目录下有一个rpmbuild目录

复制代码代码如下:[cpp] view plaincopyprint?

[root@localhost rpmbuild]# pwd

/root/rpmbuild

进入该目录,里面有五个文件夹分别是BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

刚开始时都是空的

复制代码代码如下:[html] view plaincopyprint?

[root@localhost rpmbuild]# ls

BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

如果没有这几个目录可以手动添加创建

这六个目录的作用分别是:

BUILD:rpmbuild编译软件的目录

BUILDROOT:

RPMS:rpmbuild创建binary RPM所存放的目录

SOURCES:存放源代码的目录

SPECS:存放spec文件的目录

SRPMS:rpmbuild创建souce RPM所存放的目录

首先是将放置有源码的文件夹进行打包。此处我的文件夹起名为login-1.0

复制代码代码如下:[cpp] view plaincopyprint?

[root@localhost binbin]#tar zcvf login-1.0.tar.gz login-1.0

[root@localhost binbin]#ls

login-1.0.tar.gz login-1.0

将login-1.0.tar.gz拷贝至rpmbuild/SOUCES目录下

复制代码代码如下:[html] view plaincopyprint?

[root@localhost binbin]#cp login-1.0.tar.gz/root/rpmbuild/SOURCES

[root@localhost SOURCES]# ls

login-1.0.tar.gz

此时进入SPEC目录,编写SPEC文件(此步是打包rpm包的关键一步)

复制代码代码如下:[html] view plaincopyprint?

[root@localhost SOURCES]#cd../SPECS

[root@localhost SPECS]#touch login.spec

[root@localhost SPECS]#ls

login.spec

[root@localhost SPECS]#vim login.spec

[html] view plaincopyprint?

#名字

Name: login

#版本号

Version:1.0

#编译的次序

Release:1

#一句话介绍包(不超过50个字符)

Summary: is test

Group: Applications/Communications

License: GPL

URL: www.ciis.com

#要安装的压缩包源文件

Source: login-1.0.tar.gz

BuildRoot:%{_tmppath}/%{name}-%{version}-root

%description

a test

#构建包前的处理

%prep

#--解压:这里主要是构建的时候解压缩源码到系统目录,这里是$RPM_BUILD_DIR

# setup-c解压的时候会生成一个和压缩包同名的新目录; setup-n dirname指定一个新的目录以解压缩 setup-q直接解压,不产生新的目录

%setup-q

#--生成:这里主要是构建二进制包的的时候执行编译生成二进制文件

%build

make

#--安装:构建的时候把当前文件安装到系统目录$RPM_BUILD_ROOT/下,二进制安装的时候是安装文件到/根目录下

%install

#make install#使用makefile的install,方便

#没有makefile,自定义安装脚本

rm-rf$RPM_BUILD_ROOT/*

mkdir-p$RPM_BUILD_ROOT/usr/bin/

cp-r$RPM_BUILD_DIR/%{name}-%{version}$RPM_BUILD_ROOT/usr/bin/

#安装完成后续:二进制包安装后的处理脚本

%post

chmod+x/usr/bin/%{name}-%{version}/confAgent

chmod+x/usr/bin/%{name}-%{version}/check_confAgent.sh

#卸载完成后续:二进制包卸载完成后的处理脚本

%postun

rm-fr/usr/bin/%{name}-%{version}

#清理:构建包完成后处理

%clean

rm-rf$RPM_BUILD_ROOT

#文件列表:指示哪些文件应该被安装到系统中以及安装的目录;

#构建包时,文件列表的文件或目录必须和虚拟目录RPM_BUILD_ROOT中的文件或目录一致,否则构建时会

#提示找不到文件

%files

%defattr(-,root,root)

/usr/bin/%{name}-%{version}

%changelog

保存退出,执行打包命令

复制代码代码如下:[html] view plaincopyprint?

[root@localhost SPECS]#rpmbuild-ba login.spec

之后会在RPMS/i686目录下有相应的rpm包,这里是login-1.0-1.i686.rpm

复制代码代码如下:[html] view plaincopyprint?

[root@localhost SPECS]# cd../RPMS/i686

[root@localhost i686]# pwd

/root/rpmbuild/RPMS/i686

[root@localhost i686]# ls

login-1.0-1.i686.rpm

测试安装

复制代码代码如下:[html] view plaincopyprint?

[root@localhost binbin]#ls

login-1.0-1.i686.rpm

[root@localhost binbin]#rpm-ivh login-1.0-1.i686.rpm

[root@localhost binbin]#/usr/bin/login-1.0/demo

即可运行客户端

阅读剩余
THE END