Linux 必学的 60 个命令:系统安全相关命令

虽然 Linux 和 Windows NT/2000 系统一样是一个多用户的系统,但是它们之间有不少重要的差别。对于很多习惯了 Windows 系统的管理员来讲,如何保证 Linux 操作系统安全、可靠将会面临许多新的挑战。本文将重点介绍 Linux 系统安全的命令。

passwd 1.作用

passwd 命令原来修改账户的登陆密码,使用权限是所有用户。

  1. 格式

passwd [选项]  账户名称

  1. 主要参数

-l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。

-u:解开账户锁定状态,只有具备超级用户权限的使用者方可使用。

-x,  --maximum=DAYS:最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。

-n,  --minimum=DAYS:最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。

-d:删除使用者的密码, 只有具备超级用户权限的使用者方可使用。

-S:检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。

  1. 应用实例

$ passwd

Changing password for user cao. Changing password for cao (current) UNIX password:

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

从上面可以看到,使用 passwd 命令需要输入旧的密码,然后再输入两次新密码。

su

  1. 作用

su 的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。

  1. 格式

su [选项]... [-] [USER [ARG]...]

  1. 主要参数

-f  , --fast:不必读启动文件(如 csh.cshrc  等),仅用于 csh 或 tcsh 两种Shell。

-l , --login:加了这个参数之后,就好像是重新登陆为该使用者一样,大部分环境变量

(例如 HOME、SHELL 和 USER 等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定 USER,缺省情况是 root。

-m, -p  ,--preserve-environment:执行 su 时不改变环境变数。

-c command:变更账号为 USER 的使用者,并执行指令(command)后再变回原来使用者。

USER:欲变更的使用者账号,ARG 传入新的 Shell 参数。

  1. 应用实例

变更账号为超级用户,并在执行 df 命令后还原使用者。    su -c df root umask

  1. 作用

umask 设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入 profile 文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。

  1. 格式

umask [-p] [-S] [mode]

  1. 参数

-S:确定当前的 umask 设置。

-p:修改 umask  设置。

[mode]:修改数值。

  1. 说明

传统 Unix 的 umask 值是 022,这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组,那么这种“组保护模式” 就不在需要了。严密的权限设定构成了 Linux 安全的基础,在权限上犯错误是致命的。需要注意的是,umask 命令用来设置进程所创建的文件的读写权限,最保险的值是 0077,即关闭创建文件的进程以外的所有进程的读写权限,表示为-rw     。在~/.bash_profile 中,加

上一行命令 umask 0077 可以保证每次启动 Shell 后, 进程的 umask 权限都可以被正确设定。

  1. 应用实例

umask -S u=rwx,g=rx,o=rx umask -p 177 umask -S u=rw,g=,o=

上述 5 行命令,首先显示当前状态,然后把 umask 值改为 177,结果只有文件所有者具有读写文件的权限,其它用户不能访问该文件。这显然是一种非常安全的设置。

chgrp 1.作用

chgrp 表示修改一个或多个文件或目录所属的组。使用权限是超级用户。

  1. 格式

chgrp [选项]... 组 文件... 或

chgrp [选项]... --reference=参考文件 文件... 将每个<文件>的所属组设定为<组>。

  1. 参数

-c, --changes :像 --verbose,但只在有更改时才显示结果。

--dereference:会影响符号链接所指示的对象,而非符号链接本身。

-h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。

-f, --silent, --quiet:去除大部分的错误信息。

--reference=参考文件:使用<参考文件>的所属组,而非指定的<组>。

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

-v, --verbose:处理任何文件都会显示信息。

  1. 应用说明

该命令改变指定指定文件所属的用户组。其中 group 可以是用户组 ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。

  1. 应用实例

改变/opt/local /book/及其子目录下的所有文件的属组为 book,命令如下:

$ chgrp - R book /opt/local /book chmod

  1. 作用

chmod 命令是非常重要的,用于改变文件或目录的访问权限,用户可以用它控制文件或目录的访问权限,使用权限是超级用户。

  1. 格式

chmod 命令有两种用法。一种是包含字母和操作符表达式的字符设定法(相对权限设定);另一种是包含数字的数字设定法(绝对权限设定)。

  1. 字符设定法

chmod [who] [+ | - | =] [mode] 文件名

◆操作对象 who 可以是下述字母中的任一个或它们的组合

u:表示用户,即文件或目录的所有者。

g:表示同组用户,即与文件属主有相同组 ID 的所有用户。

o:表示其它用户。

a:表示所有用户,它是系统默认值。

◆操作符号

+:添加某个权限。

-:取消某个权限。

=:赋予给定权限,并取消其它所有权限(如果有的话)。

◆设置 mode 的权限可用下述字母的任意组合

r:可读。w:可写。x:可执行。

X:只有目标文件对某些用户是可执行的或该目标文件是目录时才追加 x 属性。

s:文件执行时把进程的属主或组 ID 置为该文件的文件属主。方式“u+s”设置文件的用户 ID 位,“g+s”设置组 ID 位。

t:保存程序的文本到交换设备上。u:与文件属主拥有一样的权限。

g:与和文件属主同组的用户拥有一样的权限。

o:与其它用户拥有一样的权限。

文件名:以空格分开的要改变权限的文件列表,支持通配符。一个命令行中可以给出多个权限方式,其间用逗号隔开。

  1. 数字设定法

数字设定法的一般形式为: chmod [mode] 文件名

数字属性的格式应为 3 个 0 到 7 的八进制数,其顺序是(u)(g)(o)文件名,以空格分开的要改变权限的文件列表,支持通配符。

数字表示的权限的含义如下:0001 为所有者的执行权限;0002 为所有者的写权限;0004 为所有者的读权限;0010 为组的执行权限;0020 为组的写权限;0040 为组的读权限;0100

为其他人的执行权限;0200 为其他人的写权限;0400 为其他人的读权限;1000 为粘贴位置位;2000 表示假如这个文件是可执行文件,则为组 ID 为位置位,否则其中文件锁定位置位; 4000 表示假如这个文件是可执行文件,则为用户 ID 为位置位。

  1. 实例

如果一个系统管理员写了一个表格(tem)让所有用户填写,那么必须授权用户对这个文件有读写权限,可以使用命令:#chmod 666 tem

上面代码中,这个 666 数字是如何计算出来的呢?0002 为所有者的写权限,0004 为所有者的读权限,0020 为组的写权限,0040 为组的读权限, 0200 为其他人的写权限,0400 为其他人的读权限,这 6 个数字相加就是 666(注以上数字都是八进制数),结果见图 1 所示。

图 1  用 chmod 数字方法设定文件权限

从图 1 可以看出,tem 文件的权限是-rw-rw-rw-,即用户对这个文件有读写权限。如果用字符权限设定使用下面命令:

#chmod a =wx tem chown

  1. 作用

更改一个或多个文件或目录的属主和属组。使用权限是超级用户。

  1. 格式

chown [选项]  用户或组 文件

  1. 主要参数

--dereference:受影响的是符号链接所指示的对象,而非符号链接本身。

-h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。

--from=目前所有者:目前组只当每个文件的所有者和组符合选项所指定的,才会更改所有者和组。其中一个可以省略,这已省略的属性就不需要符合原有的属性。

-f, --silent, --quiet:去除大部分的错误信息。

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

-v, --verbose:处理任何文件都会显示信息。

  1. 说明

chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或用户 ID;组可以是组名或组 ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用 chown 命令,在将文件拷贝到另一个用户的目录下以后,让用户拥有使用该文件的权限。

  1. 应用实例
  1. 把文件 shiyan.c 的所有者改为 wan

$ chown wan shiyan.c

  1. 把目录/hi 及其下的所有文件和子目录的属主改成 wan,属组改成 users。

$ chown - R wan.users /hi chattr

  1. 作用

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

  1. 格式

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

  1. 主要参数

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

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

-:失效属性。

+:激活属性。

= :指定属性。

A:Atime,告诉系统不要修改对这个文件的最后访问时间。                S:Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这

个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。

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

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

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

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

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

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

  1. 说明

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

  1. 应用实例
  1. 恢复/root 目录,即子目录的所有文件

# chattr -R +u/root

  1. 用 chattr 命令防止系统中某个关键文件被修改

在 Linux 下,有些配置文件(passwd ,fatab)是不允许任何人修改的,为了防止被误删除或修改,可以设定该文件的“不可修改位(immutable)”,命令如下:

# chattr +i /etc/fstab sudo

  1. 作用

sudo 是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,并且记录到日志中的命令,权限是所有用户。

  1. 格式

sudo [-bhHpV] [-s <shell>] [-u <用户>] [指令] sudo [-klv]

  1. 主要参数

-b:在后台执行命令。

-h:显示帮助。

-H:将 HOME 环境变量设为新身份的 HOME 环境变量。

-k:结束密码的有效期,即下次将需要输入密码。

-l:列出当前用户可以使用的命令。

-p:改变询问密码的提示符号。

-s <shell>:执行指定的 Shell。

-u <用户>:以指定的用户为新身份,不使用时默认为 root。

-v:延长密码有效期 5 分钟。

  1. 说明

sudo 命令的配置在/etc/sudoers 文件中。当用户使用 sudo 时,需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。sudo 是系统管理员用来允许某些用户以 root 身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果需要每天以超级用户的身份做一些日常工作,经常执行一些固定的几个只有超级用户身份才能执行的命令,那么用 sudo 是非常适合的。

ps

  1. 作用

ps 显示瞬间进程 (process)  的动态,使用权限是所有使用者。

  1. 格式

ps [options] [--help]

  1. 主要参数

ps 的参数非常多,  此出仅列出几个常用的参数。

-A:列出所有的进程。

-l:显示长列表。

-m:显示内存信息。

-w:显示加宽可以显示较多的信息。

-e:显示所有进程。

a:显示终端上的所有进程,包括其它用户的进程。

-au:显示较详细的信息。

-aux:显示所有包含其它使用者的进程。

  1. 说明

要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。ps 命令就是最基本、也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图 2 给出了ps-aux 命令详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是 u、a、x。下面就结合这三个参数详细说明 ps 命令的作用:ps aux

图 2 ps-aux 命令详解

图 2 第 2 行代码中,USER 表示进程拥有者;PID 表示进程标示符;%CPU 表示占用的CPU 使用率;%MEM 占用的物理内存使用率;VSZ 表示占用的虚拟内存大小;RSS 为进程占用的物理内存值;TTY 为终端的次要装置号码。

STAT  表示进程的状态,其中 D 为不可中断的静止(I/O 动作);R 正在执行中;S 静止状态;T 暂停执行;Z 不存在,但暂时无法消除;W 没有足够的内存分页可分配;高优先序的进程;N 低优先序的进程;L 有内存分页分配并锁在内存体内 (实时系统或 I/O)。START 为进程开始时间。TIME 为执行的时间。COMMAND 是所执行的指令。

4.应用实例

在进行系统维护时,经常会出现内存使用量惊人,而又不知道是哪一个进程占用了大量进程的情况。除了可以使用 top 命令查看内存使用情况之外,还可以使用下面的命令:

ps aux | sort +5n who

  1. 作用

who 显示系统中有哪些用户登陆系统,显示的资料包含了使用者 ID、使用的登陆终端、上线时间、呆滞时间、CPU 占用,以及做了些什么。 使用权限为所有用户。

  1. 格式

who - [husfV] [user]

  1. 主要参数

-h:不要显示标题列。

-u:不要显示使用者的动作/工作。

-s:使用简短的格式来显示。

-f:不要显示使用者的上线位置。

-V:显示程序版本。

  1. 说明

该命令主要用于查看当前在线上的用户情况。如果用户想和其它用户建立即时通信,比如使用 talk 命令,那么首先要确定的就是该用户确实在线上,不然 talk 进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用 who 命令。who 命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。

动手练习

  1. 使用 Linux 命令检测系统入侵者

安装过Mandrake Linux 和 Red Hat Linux 的用户都会知道,Linux 系统会内置三种不同级别(标准、高、更高)的防火墙,当进行了 Linux 服务器的安装和一些基本的设置后,服务器应该说是比较安全的,但是也会有黑客通过各种方法利用系统管理员的疏忽侵入系统。如何快速查找黑客非常重要。一般来说,可以使用命令查询黑客是否入侵,见表 1。

表 1 查询黑客入侵现象的命令对应表

举例说明,如果黑客嗅探网络,那么它必须使网卡接口处于混杂模式,使用下面命令进行查询:

#ifconfig -a

eth0    Link encap:Ethernet    HWaddr 00:00:E8:A0:25:86

inet addr:192.168.1.7   Bcast:192.168.1.255    Mask:255.255.255.0

UP BROADCAST RUNNING PROMISCUOUS    MTU:1500    Metric:1

......

从这个命令的输出中,可以看到上面讲到的这些概念。第一行的 00:00:E8:A0:25:86 是mac 地址,第二行的 192.168.1.7 是 IP 地址,第四行讲的是接收数据状态,这时正在被黑客嗅

探。一般而言,网卡有几种接收数据帧的状态,如 Broadcast、Multicast、 Promiscuous 等。Broadcast 是指接收所有类型为广播报文的数据帧;Multicast 是指接收特定的组播报文; Promiscuous 则是通常说的混杂模式,是指对报文中的目的硬件地址不加任何检查、全部接收的工作模式。

  1. 限制 su 命令的滥用

我们知道,超级用户在 Linux 中有最大的权利,几乎所有黑客都想得到这个目标。Linux 可以增加对切换到超级用户的限制。使用 PAM (Pluggable Authentication Modules)可以禁

止除在 wheel 组以外的任何人 su 成 root,修改/etc/pam.d/su 文件,除去屏蔽标识#。使用

/usr/sbin/usermod G10 bjecadm 将 bjecadm 这个账号加入 gid 为 10 的组,就是 wheel

组。命令如下:

/etc/pam.d/su # 使用密码验证#

auth sufficient /lib/security/pam_wheel.so debug # 限制只有wheel 组用户才可以切换到 root# auth required /lib/security/pam_wheel.so use_uid chmod -G10 bjecadm

另外,每当用户试图使用 su 命令进入系统用户时,命令将在/usr/adm/sulog 文件中写一条信息,若该文件记录了大量试图用 su 进入 root 的无效操作信息,则表明了可能有人企图破译root 口令。

Linux 命令有着强大的功能。对于 Linux 系统管理员来说,往往只需要通过各种安全命令技巧,组合构成安全防线。从计算机安全的角度看,世界上没有绝对安全的计算机系统, Linux 系统也不例外。

Linux 必学的 60 个命令(6)-其他

Linux 必学的 60 个命令:其它

Linux 必学的重要命令 (1)

在前面几讲中,我们把 Linux 命令按照在系统中的作用分成几个部分分别予以介绍。但是,还有一些命令不好划分,然而学习它们同样是比较重要的。

tar

  1. 作用

tar 命令是 Unix/Linux 系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。

  1. 格式

tar [主选项+辅选项] 文件或目录

  1. 主要参数

使用该命令时,主选项是必须要有的,它告诉 tar 要做什么事情,辅选项是辅助使用的, 可以选用。

主选项:

-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。

-r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。

-t 列出档案文件的内容,查看已经备份了哪些文件。

-u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新

的文件,则把它追加到备份文件的最后。

-x 从档案文件中释放文件。

辅助选项:

-b 该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为 20

(20×512 bytes)。

-f 使用档案文件或设备,这个选项通常是必选的。

-k 保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。

-m 在还原文件时,把所有文件的修改时间设定为现在。

-M 创建多卷的档案文件,以便在几个磁盘中存放。

-v 详细报告 tar 处理的文件信息。如无此选项,tar 不报告文件信息。

-w 每一步都要求确认。

-z 用 gzip 来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。

  1. 应用说明

tar 是 Tape Archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。如果下载过 Linux 的源代码,或许已经碰到过 tar 文件。tar 是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。使用 tar 可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或者从中展开单独的文件和目录。备份可以保存到基于文件的设备或磁带设备上。文件可以在还原时重定向,以便将它们重新放到一个与最初保存它们的目录(或系统)不同的目录(或系统)。tar 与文件系统无关,可以使用在 ext2、ext3、JFS、Reiser 和其它文件系统上。它支持各种备份介质,包括软盘、光盘写入器、可重写的光盘、JazZip、磁带、高端磁带等。Linux 中以.tar 结尾的文件都是用 tar 创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。如果使用 Linux 源代码安装程序,一定使用过 tar 文件。这是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。 tar 官方网址是 http://www.gnu. org/software/tar/tar.html。

请注意,不要忘了 Linux 是区分大小写的。例如,tar 命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如,-t 和-T 执行不同的功能。文件或目录名称可以混合使用大小写,而且就像命令和命令行开关一样是区分大小写的。

  1. 应用实例

tar 是一个命令行的工具,没有图形界面。使用 Konsole 打开一个终端窗口,接下来是一个简单的备份命令(在/temp 目录中创建一个 back.tar 的文件,/usr 目录中所有内容都包含在其中。):

$tar cvf - /usr > /temp/back.tar

另外,tar 命令支持前面第三讲中讲过的 crontab 命令,可以用 crontab 工具设置成基于时间的有规律地运行。例如,每晚 6 点把/usr 目录备份到 hda—第一个 IDE 接口的主驱动器(总是位于第一个硬盘)中,只要将下面语句添加到 root 的 crontab 中即可:

$00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr

一般情况下,以下这些目录是需要备份的:

  • /etc 包含所有核心配置文件,其中包括网络配置、系统名称、防火墙规则、用户、组, 以及其它全局系统项。
  • /var 包含系统守护进程(服务)所使用的信息,包括 DNS 配置、DHCP 租期、邮件缓冲文件、HTTP 服务器文件、dB2 实例配置等。
  • /home 包含所有默认用户的主目录,包括个人设置、已下载的文件和用户不希望失去的其它信息。
  • /root 根(root)用户的主目录。
  • /opt 是安装许多非系统文件的地方。IBM 软件就安装在这里。OpenOffice、JDK 和其它软件在默认情况下也安装在这里。

有些目录是可以不备份的:

  • /proc 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图,包括诸如/proc/kcore 这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。
  • /dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统,就可以备份/dev

。然而,如果计划还原到一个已安装的 Linux 系统,那么备份/dev 是没有必要的。

unzip

  1. 作用

unzip 命令位于/usr/bin 目录中,它们和 MS DOS 下的 pkzip、pkunzip 及MS Windows 中的 Winzip 软件功能一样,将文件压缩成.zip 文件,以节省硬盘空间,当需要的时候再将压缩文件用 unzip 命令解开。该命令使用权限是所有用户。

  1. 格式

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip 文件][文件][-d <目录>][-x <

文件>]

  1. 主要参数

-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换。

-f:更新现有的文件。

-l:显示压缩文件内所包含的文件。

-p:与-c 参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

-t:检查压缩文件是否正确。

-u:与-f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中。

-v:执行是时显示详细的信息。

-z:仅显示压缩文件的备注文字。

-a:对文本文件进行必要的字符转换。

-b:不要对文本文件进行字符转换。

-C:压缩文件中的文件名称区分大小写。

-j:不处理压缩文件中原有的目录路径。

-L:将压缩文件中的全部文件名改为小写。

-M:将输出结果送到 more 程序处理。

-n:解压缩时不要覆盖原有的文件。

-o:不必先询问用户,unzip 执行后覆盖原有文件。

-P<密码>:使用 zip 的密码选项。

-q:执行时不显示任何信息。

-s:将文件名中的空白字符转换为底线字符。

-V:保留 VMS 的文件版本信息。

-X:解压缩时同时回存文件原来的 UID/GID。[.zip 文件]:指定.zip 压缩文件。

[文件]:指定要处理.zip 压缩文件中的哪些文件。

-d<目录>:指定文件解压缩后所要存储的目录。

-x<文件>:指定不要处理.zip 压缩文件中的哪些文件。

-Z unzip:-Z 等于执行 zipinfo 指令。在 Linux 中,还提供了一个叫 zipinfo 的工具,能够察看 zip 压缩文件的详细信息。unzip 最新版本是 5.50。

gunzip 1.作用

gunzip 命令作用是解压文件,使用权限是所有用户。

  1. 格式

gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...]

或者

gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]

  1. 主要参数

-a 或--ascii:使用 ASCII 文字模式。

-c 或--stdout 或--to-stdout:把解压后的文件输出到标准输出设备。

-f 或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。

-h 或--help:在线帮助。

-l 或--list:列出压缩文件的相关信息。

-L 或--license:显示版本与版权信息。

-n 或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。

-N 或--name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。

-q 或--quiet:不显示警告信息。

-r 或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。

-S<压缩字尾字符串>或--suffix<压缩字尾字符串>:更改压缩字尾字符串。

-t 或--test:测试压缩文件是否正确无误。

-v 或--verbose:显示指令执行过程。

-V 或--version:显示版本信息。

  1. 说明

gunzip 是个使用广泛的解压缩程序,它用于解开被 gzip 压缩过的文件,这些压缩文件预

设最后的扩展名为“.gz”。事实上,gunzip 就是 gzip 的硬连接,因此不论是压缩或解压缩,都可通过 gzip 指令单独完成。gunzip 最新版本是 1.3.3 。

unarj 1.作用

unarj 解压缩格式为.arj 格式的文件,使用权限是所有用户。

  1. 格式

unarj [eltx][.arj 压缩文件]

  1. 主要参数

e:解压缩.arj 文件。

l:显示压缩文件内所包含的文件。t:检查压缩文件是否正确。    x:解压缩时保留原有的路径。

  1. 说明

带有.arj 扩展名的文件是由用于 MS DOS 和Windows 的 ARJ 实用程序创建的。因为 ARJ 是一种不能免费获得源代码的共享件程序,所以在 Linux 平台上几乎不存在与其功能匹配的工具,要解压缩.arj 文件,就要使用 unarj 实用程序。unarj 比 ARJ 慢,能力也不如 ARJ,但至少能

够顺利地抽取大多数.arj 文件。unarj 只能将文件抽取到当前的工作目录、列出档案内容, 或者测试档案。从 ARJ Software 的站点或携带所需 Linux 发行版的 FTP 服务器上可以下载unarj 源码。另外,unarj 通常是基本 Linux 发行版的一部分,因此可以在主要发行版本的CD-ROM 上找到它。如果需要可到所有 Linux 发行版链接的列表下载,ARJ 软件网址为http://www.arjsoft.com,ARJ 的下载页面为 http://www.arjsoft.com/files.htm。unarj 最新版本是2.65,注意 unarj 选项不是以减号(-)开头的。

mtools 1.作用

mtools 实际上是一个命令集合,是 DOS 文件系统的工具程序,它可以模拟许多 DOS 命

令,使用起来非常方便。使用权限是所有用户。Linux 系统提供了一组称为 mtools 的可移植工具,可以让用户轻松地从标准的 DOS 软盘上读、写文件和目录。它们对 DOS 和 Linux 环境之间交换文件非常有用。mtools 的使用非常简单,如果想把软盘里所有的文件都拷贝到硬盘上,那么就可以执行以下命令:

mcopy a:*.*

也就是说,只需要在相应的 DOS  命令之前加上一个字母“m”,就可以完成对应的功能

。一般 Linux 发行版本中都有这个软件,可以使用下面命令检查一下。

rpm -qa|grep mtools

如果没有安装,也没有关系,可以从网上下载(http://mtools.linux.lu/)一个最新版本来安装 。 目 前 可 供 下 载 的 最 新 mtools 版 本 是 3.9.9 , 下 载 链 接 为http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下载后安装一下即可。

  1. 包括的命令

mcd 目录名:改变 MS DOS 下的目录。

mcopy 源文件 目标文件:在 MS DOS 和 Unix 之间复制文件。

mdel 文件名:删除 MS DOS 下的文件。

mdir 目录名:显示 MS DOS 下的目录。

mformat 驱动器号:在低级格式化的软盘上创建 MS DOS 文件系统。

rnlabel 驱动器号:产生 MS DOS 下的卷标。mmd  目录名:建立 MS DOS 下的目录。mrd 目录名:删除 MS DOS 下的目录。

mren 源文件 目标文件:重新命名已存在的 MS DOS 文件。

mtype 文件名:显示 MS DOS 文件的内容。

请注意,这些命令和对应的 MS DOS 命令非常相似。在 mtools 命令中,“/”和“\”是可以混用的。因为文件列表的是 DOS 系统下的文档,对大小写并不敏感,所以“CDE”和“cde” 在这里是一样的。

  1. 应用实例
  1. 如果把软盘进行快速格式化,可以使用命令 mformat: mformat A:

mtools 当初发展的目的是用来处理 DOS 文件系统的,所以只能用在 FAT 文件格式的分区上。需要注意的是,如果用 mount 命令来挂载了 FAT16/32 分区,那么就不能使用 mtools 的指令来处理这些分区上的文件。这是因为一旦 FAT16/32 分区挂到了 Linux 文件目录下, Linux 就会将其视为文件系统本身的一部分,这时如果要对其操作就必须使用 Linux 本身所附带的指令集。

  1. 将 DOS 盘上的文件 htca.c 复制到当前目录下,并用 ls 命令进行验证。

$ mcopy a:\htca.c

$ ls -l htca.c

-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c man

  1. 作用

man 命令用来提供在线帮助,使用权限是所有用户。在 Linux 系统中存储着一部联机使用的手册,以供用户在终端上查找。使用 man 命令可以调阅其中的帮助信息,非常方便和实用。

  1. 格式

man 命令名称

man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...

  1. 参数

-C config_file:指定设定文件 man.conf,缺省值是/etc/man.conf。

-M path:指定了联机手册的搜寻路径,  如果没有指定则使用环境变数 MANPATH 的设定;如果没有使用 MANPATH, 则会使用/usr/lib/man.conf 内的设定;如果 MANPATH 是空字串, 则表示使用缺省值。

-P pager:指定使用何种 pager.man 会优先使用此选项设定,然后是依环境变数

MANPAGER 设定,然后是环境变数 PAGER;man 缺省使用/usr/bin/less -is。

-S section_list man:所搜寻的章节列表(以冒号分隔),此选项会覆盖环境变数MANSECT 的设定。

-a man:缺省情况是在显示第一个找到的手册之后,就会停止搜寻,使用此选项会强迫man 继续显示所有符合 name 的联机手册。

-c:即使有最新的 cat page,也继续对联机手册重新作排版,本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。

-d:不要真的显示联机手册,只显示除错讯息。

-D:同时显示联机手册与除错讯息。

-h:显示求助讯息然后结束程式 。

-K:对所有的联机手册搜寻所指定的字串。请注意,本功能回应速度可能很慢,如果指定 section(区域)会对速度有帮助。

-m system:依所指定的 system 名称而指定另一组的联机手册。

man:是 manual(手册)的缩写。在输入命令有困难时,可以立刻得到这个文档。例如,

如果使用 ps 命令时遇到困难,可以输入 man  ps 得到帮助信息,此时会显示出 ps 的手册页

man page)。

由于手册页 man page 是用 less 程序来看的(可以方便地使屏幕上翻和下翻), 所以在 man page 里可以使用 less 的所有选项。

less 中比较重要的功能键有:

[q] 退出;

[Enter] 一行行地下翻;

[Space] 一页页地下翻;

[b] 上翻一页;

[/] 后跟一个字符串和[Enter]来查找字符串;

[n] 发现上一次查找的下一个匹配。

  1. 阅读手册页

手册页在很少的空间里提供了很多的信息,这里简单介绍一下大多数手册页中都有的部分内容。Linux 手册页主要有九个部分:用户指令、系统调用、程序库、设备说明、文件格式、游戏、杂项、系统指令、内核,手册页快照见图 1 所示。

图 1 ps 命令手册页快照

Linux 手册页布局见表 1。

  1. 应用实例

Linux 命令中有一些基础的、重要的命令,例如 ps、find、cat 和ls 等。下面来举一个综合应用的例子,由此可以看出 man 的地位在 Linux 中可谓至关重要。但是,man 所显示的信息却不是普通的文本,如果直接将这些文字重定向到一个文本文件,就会发现在 man 中高亮显示的文字就变成了两个,而且有不计其数的制表符,使打印、编辑都变得非常不便。不过,使用下面这样一条语句就能得到 ps 命令打印。

# man ps | col -b | lpr

这条命令同时运用了输出重定向和管道两种技巧,作用是将 ps 命令的帮助信息可以直接打印出来。更多的 Man 文件可以查看 Linux Man Pages 简体中文版主页,其链接为http://cmpp.linuxforum.net/ 。

unencode 1.作用

unencode 命令可以把一个二进制文件表编码为一个文本文件,使用权限是所有用户。

  1. 格式

uuencode [-hv] [源文件]  目标文件

  1. 主要参数

-h:列出指令使用格式(help) 。

-v:列出版本信息。

  1. 应用说明

uuencode 指令可以将二进制文件转化成可使用电子邮件发送的 ASCII 编码形式。uuencode 编码后的资料都以 begin 开始,以 end 作为结束,且通常其中的每一行的开始均为“M”,中间部分是编码过的文件,编码后的文件比源文件要大一些。

uudecode

  1. 作用

uudecode 命令用来将 uuencode 编码后的档案还原,uudecode 只会将 begin 与 end 标记之

的编码资料还原,程序会跳过标记以外的资料。它的使用权限为所有用户。

  1. 格式

uuencode [-hv] [file1 ...]

  1. 主要参数

-h:列出指令使用格式(help)。

-v:列出版本信息。

  1. 应用实例

使用下面命令一次还原几个文件:

uuencode file1.uud file2.uud file3.uud

动手练习

  1. 在 Linux 命令行下发送邮件

虽然 Linux 桌面应用发展很快,但是命令行(Shell)在 Linux 中依然有很强的生命力。如果能确认电子邮件服务器支持 8bit 的字节,就可以直接使用下面命令:

cat <附件文件名> | mail  <邮件地址>

cat(cat 是 concatenate 的缩写)命令是将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件,这里我们用它来合并邮件的文本。

写好邮件名称,比如叫 cjkmail,然后使用下面命令:

$uuencode <附件文件名> <附件文件名> >>cjkmail

这样就可以用 vi 编辑器写 cjkmail 文件,并在前面写上信的正文,然后寄出。

对方收到信后,把信中属于 cjkmail 中的内容拷贝出来,存为 themail.uue。如果对方是在Windows 下,就可以用 WinRAR 或 WinZip 解压,这样就可以看到附件。

如果对方也使用 Linux,可以用 undecode 命令还原:

$ uudencode -o<附件文件名> themail.uue

  1. 实现 tar 的分卷

笔者想把一个 378MB 的文件压缩成多个 63MB 的文件(笔者的 USB 为 64MB),使用下面命令

$tar czvf - dir | split -d -b 63m

然后合并命令:

$cat x* > dir.tgz

以上例子实际是由三个命令组合完成的,即用 tar 打包,用 split 分割,用 cat 合并。“tar czvf

- dir”的意思是把 dir 目录打包,并输出到标准输出(argv),这样就可以直接用管道输出给

split.

  1. 连续执行一个命令

使用 watch 命令,可以反复执行命令。如果和 ls 配合,可以达到观察某文件大小变化的效果。

$watch ls -l file.name

  1. 用 tar 命令导出一个文件

有一个 tar 格式的 DVD 文件 GLvPro6.4_linux.tar,因为该文件非常大(4.7GB),如果全

部解压比较麻烦,可以用下面命令先导出 readme.txt 看看。

tar xvf GLvPro6.4_linux.tar readme.txt

这样 readme.txt 就单独被导出了。

  1. 用 tar 打包一个目录时只备份其中的几个子目录

tar cf --exclude home/cjh home/cao

这样 home 目录下只有 cjh 和 cao 两个子目录备份。

到此为止,Linux 必学的 60 个命令已经全部介绍完了。Linux 的命令行方式功能强大, 如果熟练掌握了 Linux 的常用命令,往往只需要通过各种技巧就可以组合构成一条复杂的命令,从而完成用户任务。Linux 系统中的命令实在是太多了,不可能像在 MS DOS 中把所有的命令及参数都记住。Linux 系统提供了一些方法,比如可以通过“help”和“man”来查询名令。

Linux 必学的 60 个命令__1__网络安全相关推荐

  1. Linux必学的60个命令(文字整理版)

    Linux必学的60个命令         Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用 ...

  2. IT忍者神龟之 Linux必学的60个命令

    Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令 ...

  3. linux必学的100个命令,Linux必学的60个命令

    inux必学的60个命令本文引用地址:http://www.eepw.com.cn/article/201610/305663.htm Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如 ...

  4. linux 命令传文件大小,Linux必学的60个命令(6)-其他

    Linux必学的重要命令 (1) 在前面几讲中,我们把Linux命令按照在系统中的作用分成几个部分分别予以介绍.但是,还有一些命令不好划分,然而学习它们同样是比较重要的. tar 1.作用 tar命令 ...

  5. linux命令sm,标 题: Linux必学的60个命令(6)-其他

    Linux必学的60个命令:其它 Linux必学的重要命令 (1) 作者:曹元其 发文时间:2004.12.16 在前面几讲中,我们把Linux命令按照在系统中的作用分成几个部分分别予以介绍.但是,还 ...

  6. linux中Gy模式什么意思,Linux必学的60个命令 -其他

    其它命令:tar.unzip.gunzip.unarj.mtools.man.unendcode.uudecode. 在前面几讲中,我们把Linux命令按照在系统中的作用分成几个部分分别予以介绍.但是 ...

  7. linux系统基础命令使用,linux基础命令(linux必学的60个命令)

    本文主要是讲解Linux系统上最常用.最基本的10个命令. 如果您习惯于通过一个漂亮的图形界面来完成所有的工作,那么在Linux CLI(命令行界面)世界中入门可能会有些困难.对于初学者,有时很难决定 ...

  8. linux 二次封装 释放,Linux必学的60个命令(二)

    51CTO博客开发Linux服务器性能评估与优化 本文转载自:天高任鸟飞(http://blog.chinaunix.net/uid-25135004-id-3139293.html )       ...

  9. linux菜鸟必学的60个命令,Last- Linux必学的60个命令

    1.作用 last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户.通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统. 2.格式 1ast[-n][-f file ...

最新文章

  1. Java基础学习总结(6)——面向对象
  2. 在没有安装OpenCV的电脑运行OpenCV程序
  3. python自动化测试框架结构_基于Python的HTTP接口自动化测试框架实现
  4. python的文件夹_Python遍历文件夹和文件
  5. 比特币区块链将分道扬镳、Libra苦难继续,2020区块链进入关键时期!
  6. Node Sass version 6.0.0 is incompatible with ^4.0.0.
  7. java能开发winform程序吗_Java进击C#——应用开发之WinForm环境
  8. Casewhen和Decode
  9. 微信小程序-模拟器某些页面空白-引用 VantUI 后,页面空白
  10. 第七章、TPP2(G2)
  11. CS5218 DP转HDMI 4K30HZ转换方案
  12. C++入门(六)之String
  13. 从第一代 iPhone 细数到 iPhone 12,iPhone 屏幕尺寸进化历程背后的 app 设计哲学
  14. 大数据技术有什么特点
  15. win10单机修复计算机在哪,win10如何进入高级修复选项
  16. 【收藏】如何开始创业
  17. QT qq登陆界面设计
  18. 八字取名,你应该要考虑的7个实用建议
  19. 为什么样本的方差和样本的二阶中心矩并不一样
  20. SpringCloud学习记录 | 第十五篇:SpringCloud Alibaba Nacos配置中心-单机版

热门文章

  1. C语言中指针占据内存空间问题
  2. Kernel Restarting
  3. python画流程图-画Python代码的数据流程图
  4. Python_itertools模块
  5. 到农行领取Google西联汇款的注意事项
  6. Odoo看板视图实践案例
  7. mqtt.fx的安装和使用
  8. 墨卡托投影、高斯-克吕格投影、UTM投影、兰伯特等角圆锥投影
  9. Google 出王炸!Meet 免费支持 100 人同时在线,与 Zoom 正面刚
  10. ZynqMP升级方案Qspi+emmc