一、文件处理命令
1.mkdir
作用:
mkdir命令的作用是建立名称为dirname的子目录,使用权限是所有用户。
格式:
mkdir [options] 目录名
[options]主要参数:
-m,mode模式:设定文件夹权限,与chmod类似。
-p,parents:创建多级目录时,如果上级目录不存在,则自动创建;如果目录一存在,不当作错误。
-v,verbose:每次创建新目录时都显示信息。
--version:显示版本信息后离开。
应用实例:
在创建目录的同时设置权限,此时使用的参数是-m。假设创建test文件夹,所有用户权限都有rwx(可读,可写,可执行),那么可以使用以下命令:
#mkdir -m 777 test
2.grep
作用:
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全程车Global Reguler ExpressionPrint,表示全局正则表达式版本,它的使用权限是所以用户。
格式:
grep [options]
[options]参数:
-c:只输出匹配行的计数。
-l:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v: 显示不包含匹配文本的所有行。
应用实例:
查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知道有两个句点,例如nnn nn..。要抽取其中所有nnn.nnnIP地址,使用[0-9]\{3\}\.[0-0\{3\}\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。
#grep '[0-9]\{3\}\.[0-0{3\}\' ipfile
3.find
作用:
find命令的作用是在目录中搜索文件,它的使用权限是所有用户。
格式:
find [path][options][expression]
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认当前目录。
主要参数:
[options]参数:
-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。
-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。
-mount:不在其他文件系统的目录和文件中查找。
-version:打印版本。
[expression]是匹配表达式,是find命令接收的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。
-name:支持通配符*和?。
-atime n:搜索在过去n天读取过的文件。
-ctime n:搜索在过去n天修改过的文件。
-goup groupname:搜索所有组为groupname的文件。
-user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。
-size n:搜索文件大小是n个block的文件。
-print:输出搜索结果,并且打印。
应用技巧:
(1)根据文件名查找
例如,我们想查找一个文件名是lilo.conf的文件,可以常用如下命令:
find / -name lilo.conf
find命令后的“/”表示搜索整个硬盘。
(2)快速查找文件
根据文件名查找文件会遇到一个实际问题,就是要花费相当长的时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:
find /etc -name smb.conf
这样,使用“快速查找文件”方式可以缩短时间。
(3)根据部分文件名查找方法
有时我们只知道某个文件包含abvd个4个字,那么要超找系统中所有包含这4个字符的文件可以输入下面命令:
find / -name '*abvd*'
输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。
4.mv
作用:
命令用来为文件或目录改名,或者将文件有一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同dos命令中的ren和move的组合。
格式:
mv[options] 源文件或目录 目标文件或目录
[options]主要参数:
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统村问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何提示,指定此参数后i参数将不再起作用。
应用实例:
(1)将/usr/cbu 中的所有文件移动到当前目录中:
#mv /usr/cbu/* .
(2)将文件cjh.txt 重命名为wjz.txt:
#mv cjh.txt wjz.txt
5.diff
作用:
diff命令用于两个文件之间的比较,并之处两者个不同,它的使用权限是所有用户。
格式
diff[options] 源文件 目标文件
[options]主要参数:
-a:将所有文件当作文件文件来处理。
-b:忽略空格造成的不同。
-B:忽略空行造成的不同。
-c:使用纲要输出格式。
-H:利用试探法加速对大文件的搜索。
-l:忽略大小写的变化。
-n --res:输出RCS格式。
二、系统管理命令
1.free
作用:
free命令用来显示内存的使用情况,使用权限是所有用户。
格式:
free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
主要参数:
-b -k -m:分别以字节,kb,mb为单位显示内存使用情况。
-s delay:显示每个多少秒数来显示一个内存使用情况。
-t:显示内存在和列。
-o:不显示缓冲区调节列。
应用实例:
free命令用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
2.at
作用:
at命令用来在指定时刻执行指定的命令序列。
格式
at [-V] [-q x] [-f file] [-m] time
主要参数:
-V:显示标准错误输出。
-q:许多队列输出。
-f:从文件中读取作业。
-m:执行完作业后发电电子邮件到用户。
time:设定作业执行的时间。time格式有严格的要求,有消失、分钟、日期和时间的便宜了组成,其中日期的格式为MM.DD.YY, MM是分钟,DD是日期,YY是只年份。偏移量的格式为时间+偏移量,单位是minutes、hours和days。
应用实例:
at -f data 15:30+2days
上面的命令表示让系统在两天后的17:30执行文件data中指明的作业。
3.useradd
作用:
useradd命令用来建立用户账号和创建用户的起始目录,使用权健是超级用户。
格式:
useradd [-d home] [-s shell] [-c comment] [-m] [-k template] [-f inactive] [-e expire] [-p passwd] [-r] name
主要参数:
-c:加上备注文件,备注文件保存在passwd的备注栏中。
-d:指定用户登入时的起始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久 有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。
说明:
useradd课用来建立用户账号,它和adduser命令是相同的。账号建好只后,再用passwd设定账号的密码。使用useradd命令锁建立的账号,实际上是保存在/etc/passwd文本文件中。
应用实例:
建立一个新账户,并设置ID:
#useradd new -u 544
需要说明的是,设定ID值是尽量要大于500,一面冲突。因为Linux安装后会建立一些特殊用户,一般到0-499之间的值留给bin、mail这样的系统账号。
4.quota
作用:
quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户。
格式:
quota[-g][-u][-v][-p] 用户名 组名
参数:
-g: 显示用户所在组的磁盘使用限制。
-u:显示用户的磁盘使用限制。
-v:显示没有分配空间的文件系统的分配情况。
-p:显示简化信息。
应用实例:
在企业中磁盘配额非常重要,普通用户要学会看懂自己的磁盘使用情况。要查询自己的磁盘配额可以使用下面的命令(下例中用户账号是aa):
#quota aa
Disk quotas for user caojh(uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 58 200000 400000 41 500 1000
以上显示ID号为502的aa藏好,文件个数设置500-1000个,硬盘空间限制设置为200MB~400MB。一旦磁盘配额要用完时,就需要删除一些垃圾文件或向系统管理员请求追加配额。
5.groupadd
作用:
groupadd命令用于将新组加入系统。
格式:
groupadd [-g gid] [-o] [-r] [-f] groupname
主要参数:
-g gid:指定组ID号。
-o:允许组ID号,不必唯一。
-r:加入组的ID号,地域499系统账号。
-f:加入一颗有的组时,发张程序退出。
应用实例
建立一个新组,并设置组ID加入系统。
#groupadd -g 344 newgroup
此时在/etc/passwd 文件中产生一个组ID(GID)是344的项目。
三、系统安全命令
1.passwd
作用:
passwd命令用来修改账户的登陆密码,使用权限是所有用户。
格式:
passwd [选项] 账户名称
主要参数:
-l:锁定已经明明的账户名称,只有具备超级用户权限的使用者方可使用。
-u解开账户锁定状态,只有具备超级用户权限的使用者方可使用。
-x,-maximum=DAYS:最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-n,-minimum=DAYS:最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-d:删除使用者的密码,只要具备超级用户权限的使用者方可使用。
-S:检查指定使用者的密码认证种类,只有具备超级用户权限的使用者方可使用。
应用实例:
# 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
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命令需要输入旧的密码,然后再输入两次新密码。
2.su
作用:
su的作用是变更为其他使用者的身份,超级用户除外,需要键入改使用者的密码。
格式:
su [选项]...[-][USER[ARG]...]
主要参数:
-f,--fast:不必读启动文件(如csh,schrc等),仅用于csh或tsh两种shell。
-l,--login:加了这个参数之后,就好像是重新登陆为该使用者(USER)一样,大部分环境变量都是以改使用者(USER)为主,并且工作目录袁辉改变。如果没有指定USER,缺省情况是root。
-m,-p,-preserve-environment:执行su时 不改变环境变数。
-c command:变更账号为USER的使用者,并执行指令(command)后在便会原来使用者。
USER:欲变更的使用者账号,ARG传入新的shell参数。
应用实例:
变更账号为超级用户,并在执行df命令后还原使用者。
su -c df root
3.chmod
作用:
chmod命令是非常重要的,用于改变文件或文件夹的访问权限,用户可以用它控制文件或目录的访问权限,使用权限是超级用户。
格式:
chmod命令有两种用法。一种是包含字母和操作符表达式的字符设定法(相对权限设定);另一种是包含数字的数字设定法(绝对权限设定)。
(1)字符设定法
chmod [who][+/-][mod] 文件名
操作对象who可以是下述字母中的人一个或它们的组合
u:表示用户,即文件或目录的所有者。
g:表示同组用户,即与文件属主用相同组ID的所有用户。
o:表示其他用户。
a:表示所有用户,它是系统默认值。
操作符号
+:添加某个权限。
-:取消某个权限。
=:赋予给定权限,并取消其他所有权限(如果有的话)。
设置mode的权限可用下述字母的任意组合
r:可读
w:可写
x:可执行
X:只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
s:文件执行时吧进程的属主或组ID只为改文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t:保存程序的文本到交换设备。
u:与文件属主拥有一样的权限。
g:与和文件属主同组的用户拥有一样的权限。
o:与其他用户拥有一样的权限
文件名:一空格分开的要改变权限的文件列表,支持通配符。
一个命令行中可以给出多个权限方式,期间用都好隔开。
(2)数字设定法
数字设定法的一般形式为:chmod [mod] 文件名
数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o)文件名,以开个分开的要改变权限的文件列表,支持通配符
应用实例:
如果一个系统管理员写了一个表格(tem)让所有用户填写,那么别出新意授权用户对这个文件的读写权限,可以使用命令:#chmod 666 tem
rw-rw-rw- 表示为 110 110 110 即 666
4.sudo
作用:
sudo是一种以限制配置文件中的命令为基础,在有线时间内给用户使用,并且录到日志中的命令,权限是所有用户。
格式:
sudo[-bhHpV][-s][-u<用户>][指令]
sudo [-klv]
主要参数:
-b:在后台执行命令。
-h:显示帮助。
-H:将HOME环境变量蛇尾新身份的HOME环境变量。
-k:结束密码的有效期,即下次将需要输入密码。
-l:理出当前用户可以使用的命令。
-p:改变询问密码的提示符号。
-s:执行指定的shell。
-u<用户>:以指定的用户为新身份,不适用时,默认为root。
-v:延长密码有效期5分钟。
说明:
sodu命令的配置在/etc/sudoers 文件中。当用户用sudo时,需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果需要每天以超级用户的身份做一些日程工作,经常执行一些固定的几个只有超级用户身份从能执行的命令,那么用sudo是非常适合的。
5.who
作用:
who显示系统中有哪些用户登陆系统,显示的资料包含了使用者ID、使用的登陆终端、上线时间、呆滞时间、CPU占用,以及做了些什么。使用权限为所有用户。
格式:
who -[husfV][user]
主要参数:
-h:不要显示标题栏。
-u:不要显示使用者的动作/工作。
-s:使用简短的格式来显示。
-f:不要显示使用者的上线位置。
-V:显示程序版本。
说明:
该命令主要用于查看当前在线的用户情况。如果用户想和其他用户建立即时通信,比如使用talk命令,那么受限要确定的就是该用户确实在线上,不然talk进程就无法建立起来。又如,系统管理员希望建立每个登陆的用户此时此刻的所作所为,也要使用who命令。who命令英语歌起来非常简单,可以比较准确地唱我用户的情况,所以使用非常广泛。