linux培训教材(4)

Linux培训(第四期)

本期培训的主要内容有:linux终端常用命令,rpm包管理

1,linux常用命令

1.1,常用信息显示命令

pwd用于屏幕上输出当前的工作目录。

Stat 显示指定文件的相关信息。

linux培训教材(4)_第1张图片

uname -a 显示操作系统信息

hostname 显示当前本地主机的命令

dmesg显示系统最后一次启动时内核的内部缓存信息

free显示当前内存和交换分区的使用情况

解释:该主机有2075420KB的物理内存,已有1591152被使用,还有484268是可用的。第二行第5列的buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据,这二者是为了提高IO性能,并由OS管理。

Linux为了提高IO read的性能,总是要多cache一些数据,这也是为什么cacheused大的原因。第三行是从应用的的角度查看系统内存的使用情况,-buffers/cache,表示应用程序认为系统被用掉多少内存;+buffers/cache,表示应用程序认为系统还有多少内存。第四行为交换分区的信息,分别是交换的总量,第一列是使用量,第二列是使用量,第三列是空闲量。

locale显示当前系统的语言设置

linux培训教材(4)_第2张图片

cat /etc/issue 显示当前系统的发行版本

date 显示系统当前的日期和时间。-s可以对系统的日期和时间进行设定。

time 计算执行一个进程所需要的时间

linux培训教材(4)_第3张图片

cat /proc/cpuinfo 显示CPU的相关信息

linux培训教材(4)_第4张图片

lsmod显示目前已经加载的内核模块

set设置用户的环境变量

env查看用户的环境变量

sysctl -a 显示系统所有可以设置的内核参数

ps用于检测进程的工作情况

ps 提供了很多的选项参数,常用的有以下几个;


l 长格式输出;

u 按用户名和启动时间的顺序来显示进程;

j 用任务格式来显示进程;

f 用树形格式来显示进程;

a 显示所有用户的所有进程(包括其它用户);

x 显示无控制终端的进程;

r 显示运行中的进程;

ww 避免详细参数被截断;


ps aux lax输出的解释;


USER 进程的属主;

PID 进程的ID

PPID 父进程;

%CPU 进程占用的CPU百分比;

%MEM 占用内存的百分比;

NI 进程的NICE值,数值大,表示较少占用CPU时间;

VSZ 进程虚拟大小;

RSS 驻留中页的数量;

WCHAN

TTY 终端ID

STAT 进程状态


D Uninterruptible sleep (usually IO)

R 正在运行可中在队列中可过行的;

S 处于休眠状态;

T 停止或被追踪;

W 进入内存交换(从内核2.6开始无效);

X 死掉的进程(从来没见过);

Z 僵尸进程;


< 优先级高的进程

N 优先级较低的进程

L 有些页被锁进内存;

s 进程的领导者(在它之下有子进程);

l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

+ 位于后台的进程组;


WCHAN 正在等待的进程资源;

START 启动进程的时间;

TIME 进程消耗CPU的时间;

COMMAND 命令的名称和参数

top动态显示当前系统中消耗资源最多的进程

linux培训教材(4)_第5张图片

histtory保留最近执行的命令,默认保留500个,文件保存在家目录下的.history

1.2,常用系统管理命令

kill用于杀死指定的进程。kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比 如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时,曾提到系统多个虚拟控制台的 作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令 可以直接调用的。

kill -9 123 强行中止一个进程标识号为123的进程

killall httpd 直接使用进程的名字而不是进程标识号

alias用于设定别名,可以用一个自定义的字符串来替代一个完整的命令行。

unalias取消指定的别名。

在命令行上使用alias查看系统中使用的别名。


clear用于清屏并把光标移到左上角。

linux培训教材(4)_第6张图片

jobs 显示目前在后台执行的任务列表

& 指定程序放在后台运行,有时用户需要执行程序要花很多时间,如果在前台运行,用户将无法进行其他工作,此时可以利用&命令将程序放到后台运行。

fg 将用户在后台运行的程序移到前台

exit 用于退出并关闭命令行终端

echo 将命令行中的字符串显示在屏幕上,与printf相似。

wc 任何一个文本都由行,单词和字符组成,使用wc命令可以对文本文件的这些基本信息进行统计。

wc -l 显示文件的行数

wc -w 显示文件中包含的单词数

wc -c 显示文件中包含的字符串

chattr 修改ext2ext3文件系统属性(attribute),使用权限超级用户。

格式 chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录

主要参数

R:递归处理所有的文件及子目录。

V:详细显示修改内容,并打印输出。

-:失效属性。

+:激活属性。

=:指定属性。

AAtime,告诉系统不要修改对这个文件的最后访问时间。

SSync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结 果写到磁盘。

aAppend Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。

iImmutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。

D:检查压缩文件中的错误。

dNo dump,在进行文件系统备份时,dump程序将忽略这个文件。

CCompress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。

sSecure Delete,让系统在删除这个文件时,使用填充文件所在的区域。

uUndelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。

说明

chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误 的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能 保护//dev/tmp/var目录。

shutdown把内存中的数据写回硬盘并关闭系统,例如把数据写回硬盘后立即重启#shutdown -r now 再如立即关闭系统,并在关闭前进行数据同步#shutdown -h now

reboot 重新引导系统,该命令不会自动将内存中的数据写回硬盘,因此可能造成数据丢失。

halt关闭系统

sync 用于将内存中的数据写入磁盘,

shutdown -r new = sync + reboot

shutdown -h now = sync + halt

1.3,mount挂载命令

mount

功能:加载指定的文件系统。
语法:mount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [加载点]
用法说明:mount可将指定设备中指定的文件系统加载到Linux目录下(也就是装载点)。可将经常使用的设备写入文件/etc/fastab,以使系 统在每次启动时自动加载。mount加载设备的信息记录在/etc/mtab文件中。使用umount命令卸载设备时,记录将被清除。
常用参数和选项:
-a
加载文件/etc/fstab中设置的所有设备。
-f
不实际加载设备。可与-v等参数同时使用以查看mount的执行过程。
-F
需与-a参数同时使用。所有在/etc/fstab中设置的设备会被同时加载,可加快执行速度。
-h
显示在线帮助信息。
-L<
标签>加载文件系统标签为<标签>的设备。
-n
不将加载信息记录在/etc/mtab文件中。
-o<
选项>指定加载文件系统时的选项。有些选项也可在/etc/fstab中使用。这些选项包括:
async
以非同步的方式执行文件系统的输入输出动作。
atime
每次存取都更新inode的存取时间,默认设置,取消选项为noatime
auto
必须在/etc/fstab文件中指定此选项。执行-a参数时,会加载设置为 auto的设备,取消选取为noauto
defaults
使用默认的选项。默认选项为rwsuiddevexecanto nouserasync
dev
可读文件系统上的字符或块设备,取消选项为nodev
exec
可执行二进制文件,取消选项为noexec
noatime
每次存取时不更新inode的存取时间。
noauto
无法使用-a参数来加载。
nodev
不读文件系统上的字符或块设备。
noexec
无法执行二进制文件。
nosuid
关闭set-user-identifier(设置用户ID)set-group-identifer(设置组ID)设置位。
nouser
使一位用户无法执行加载操作,默认设置。
remount
重新加载设备。通常用于改变设备的设置状态。
ro
以只读模式加载。
rw
以可读写模式加载。
suid
启动set-user-identifier(设置用户ID)set-group-identifer(设置组ID)设置位,取消选项为nosuid
sync
以同步方式执行文件系统的输入输出动作。
user
可以让一般用户加载设备。

-r
以只读方式加载设备。

-t<文件系统类型>指定设备的文件系统类型。常用的选项说明有:
minix Linux
最早使用的文件系统。
ext2 Linux
目前的常用文件系统。
msdos MS-DOS
FAT
vfat Win85/98
VFAT
nfs
网络文件系统。
iso9660 CD-ROM
光盘的标准文件系统。
ntfs Windows NT
的文件系统。
hpfs OS/2
文件系统。Windows NT 3.51之前版本的文件系统。
auto
自动检测文件系统。
-v
执行时显示详细的信息。
-V
显示版本信息。
-w
以可读写模式加载设备,默认设置。

例子

查看当前挂载的设备

#mount

挂载光盘

#mount /dev/cdrom /mnt

1.4,常用压缩命令

tar命令


[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....
参数:
-c
:建立一个压缩文件的参数指令(create 的意思)
-x
:解开一个压缩文件的参数指令!
-t
:查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z
:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j
:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v
:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f
:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
tar -zcvPf tfile sfile』才对喔!
-p
:使用原文件的原来属性(属性不会依据使用者而变)
-P
:可以使用绝对路径来压缩!
-N
:比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE
:在压缩的过程中,不要将 FILE 打包!


例子:

查看tar包内容

#tar -tf test.tar

向包中添加新文件

#tar rvf test.tar file

生成.tar.gz压缩包

#tar zcvf test.tar.gz test

解压.tar.gz压缩包

#tar zxvf test.tar.gz

生成.tar.bz2压缩包

#tar jcvf test.tar.bz2 test

解压.tar.bz2压缩包

#tar jcvf test.tar.bz2


gzip

linux gzip 命令详解
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

语法:gzip [选项] 压缩(解压缩)的文件名
各选项的含义:
-c
将输出写到标准输出上,并保留原有文件。
-d
将压缩文件解压。
-l
对每个压缩文件,显示下列字段:
压缩文件的大小
未压缩文件的大小
压缩比
未压缩文件的名字
-r
递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t
测试,检查压缩文件是否完整。
-v
对每一个压缩和解压的文件,显示文件名和压缩比。
-num
用指定的数字num调整压缩的速度,-1或—fast表示最快压缩方法(低压缩比),-9--best表示最慢压缩方法(高压缩比)。系统缺省值为6

例子:

对当前目录下的file1 file2进行压缩

#gzip file1 → file1.gz

file1.gz进行解压

#gunzip file1.gz

1.5系统中的备份命令

dump

格式:

dump [-level#] [-acmMnqSuv] [-A file] [-B records] [-b blocksize]

[-d density] [-D file] [-e inode#,inode#,...] [-E file]

[-f file] [-h level] [-I nr errors] [-j zlevel] [-Q file]

[-s feet] [-T date] [-y] [-z zlevel] filesystem

常用参数

Level:备份级别0-9

级别表示备份所有文件,1-9表示增量备份。

-B:指定用来备份的磁带的长度,以KB为单位(有些磁带不支持以结束标志判断时,就需要使用到此参数

-b:指定块大小,默认为10

-d:指定密度,默认为1600BPI

-D:设定存储数据库的名称和路径,默认是/etc/dumpdates文件

-e-E:与备份文件的inodes数有关的参数)

-f:指定备份文件的路径和名称

-u:更新数据库文件/etc/dumpdates

-s:统计备份所需的空间,一般在备份前做,以防磁带或磁盘空间不足

例子

对当前目录下的file1进行备份,备份名字为dumpfile1

# dump -f dumpfile1 file1

dd

用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换

格式

if=file 输入文件名,缺省为标准输入。

of=file 输出文件名,缺省为标准输出。

bs=bytes 同时设置读写块的大小为bytes

count=blocks 仅拷贝blocks个块,块大小等于ibs指定的字节数。

例子

root目录下建一个1M的文件testfile

#dd if=/dev/zero of=/root/testfile bs=512 count=2

将磁盘/dev/sdb1全盘备份到/home/image

#dd if=/dev/sdb1 of=/home/image

cpio

cpiotar命令类似,但cpio不仅可以实现分卷备份,还可以跳过磁带上的坏区。

参数

-o从标准输出设备读入文件名,归档后从标准输出设备输出。

-i用法与-i相反,用于恢复备份。

例子

有文件file1 file2 file3 对这3个文件进行备份。

#ls * | cpio -o > backup_file

恢复以上备份

#cpio -i < backupfile

rsync

当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。

特点
1.
可以镜像保存整个目录树和文件系统;
2.
可以很容易做到保持原来文件的权限、时间、软硬链接等;
3.
无须特殊权限即可安装;
4.
优化的流程,文件传输效率高;
5.
可以使用rshssh等方式来传输文件,当然也可以通过直接的socket连接;
6.
支持匿名传输。

参数

具体参数查看相关文档

2,linux系统检测和维护

2.1,检测系统资源和性能

proc

proc不是一个真实的文件系统,不占用外存空间,只是以文件的方式为访问Linux内核数据提供接口。用户和应用程序可以通过查看/proc得到系统的运行信息,并可以改变内核的某些参数。由于系统的信息总是动态变化的,所以用户或应用程序读取proc文件时所获得的数据也是瞬时的。许多应用程序依靠proc来访问Linux内核信息。

例子

查看系统内存信息

#cat /proc/meminfo

linux培训教材(4)_第7张图片

查看系统版本信息

#cat /porc/version

2.2,查看用户使用系统资源情况

w在多用户环境下,每个用户都可以登录到系统,执行不同的程序。利用w命令可以查看当前有那些用户已经登录。

who 查看最近有那些用户登录

linux培训教材(4)_第8张图片

2.3,自动作业程序实现系统的自维护

cron

crondlinux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:
1
、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存

2
、个人执行的工作:某个用户定期要做的工作,例如每隔
10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

CrontabUNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:

文件

含义

/etc/cron.deny

该文件中所列的用户不允许使用Crontab命令

/etc/cron.allow

该文件中所列的用户允许使用Crontab命令

/var/spool/cron/

是所有用户的crontab文件

/var/spool/cron/crontabs

/var/spool/cron/crontabs

Crontab命令的格式为:crontab –l|-r|-e|-i [username],其参数含义如表一:

参数名称

含义

示例

-l

显示用户的Crontab文件的内容

crontabl –l

-i

删除用户的Crontab文件前给提示

crontabl -ri

-r

Crontab目录中删除用户的Crontab文件

crontabl -r

-e

编辑用户的Crontab文件

crontabl -e

用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段, 格式如下:* * * * *

含义

取值范围

第一段

代表分钟

0—59

第二段

代表小时

0—23

第三段

代表日期

1—31

第四段

代表月份

1—12

第五段

代表星期几,代表星期日

0—6

例子

0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache

50 7 * * * /sbin/service sshd start 意思是每天750开启ssh服务

50 22 * * * /sbin/service sshd stop 意思是每天2250关闭ssh服务

0 0 1,15 * * fsck /home 每月1号和15号检查/home磁盘

1 * * * * /home/bruce/backup 每小时的第一分执行/home/bruce/backup这个文件

00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
● 30 6 */10 * * ls
意思是每月的
1112131日是的630执行一次ls命令

at

说明:at可以让使用者指定在TIME这个特定时刻执行某个程序或指令,TIME的格式是HH:MM其中的HH为小时,MM为分钟,甚至你也可以指定am, pm, midnight, noon, teatime(就是下午4点钟)等口语词。如 果想要指定超过一天内的时间,则可以用 MMDDYY或者MM/DD/YY的格式,其中MM是分钟,DD是第几日,YY是指年份。另外,使用者甚至也可以使用像是now + 时间间隔来弹性指定时间,其中的时间间隔可以是minutes, hours, days, weeks。另外,使用者也可指定todaytomorrow来表示今天或明天。当指定了时间并按下enter之后,at会进入交谈模式并要求输入指令或程序,当你输入完后按下ctrl+D即可完成所有动作,至于执行的结果将会寄回你的帐号中。

参数
-V :
印出版本编号

-q :
使用指定的伫列
(Queue)来储存,at的资料是存放在所谓的queue中,使用者可以同时使用多个queue,而queue的编号为a, b, c... z 以及A, B, ... Z 52
-m :
即使程序
/指令执行完成后没有输出结果,也要寄封信给使用者
-f file :
读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入

-l :
列出所有的指定
(使用者也可以直接使用atq而不用at -l
-d :
删除指定
(使用者也可以直接使用atrm而不用at -d
-v :
列出所有已经完成但尚未删除的指定

例子

三天后的下午5点锺执行/bin/ls
#at 5pm + 3 days /bin/ls&
三个星期后的下午
5点锺执行/bin/ls
#at 5pm + 2 weeks /bin/ls
明天的
17:20执行/bin/date
#at 17:20 tomorrow /bin/date

3,linux帮助命令

man 用于查看linux系统手册。

#man ls

info 文档是linux系统提供的另一种格式的帮助信息,与手册相比有更强的交互性,使用info命令可以查看texinfo格式的帮助文档。

#info ls

help shell命令数量众多,当没有独立的帮助文件,help命令提供了对这些shell命令的在线帮助支持。

#ls --help

4,rpm包管理

3.1,rpm包管理介绍

Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的添加/删除程序,但是功能又比添加/删除程序强很多,它就是Red Hat Package Manager(简称RPM)

3.2,rpm使用

下面列出几个rpm常用参数,其他参数可以使用man来获得!

rpm

常用参数

查看软件包里有什么内容,系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。

#rpm -qpi ***.rpm

安装rpm

#rpm -ivh ***.rpm

卸载安装过的rpm

#rpm -e ***.rpm

查询系统中已经安装的rpm

#rpm -qa

查询一个已经安装的文件属于哪个软件包

#rpm -qf 文件名

查询一个已安装软件包的信息

#rpm -qa 软件名

查看一下已安装软件所依赖的软件包及文件;

# rpm -qR 软件名

你可能感兴趣的:(linux培训教材(4))