1.与输入输出相关的命令
1)回显命令echo:
常用选项:E:禁止转义字符(默认选项);e:启用转义字符;n:输出结束后不换行
2)接收用户输入命令read:格式:read [[option]parameter] name;read命令用于读取字符,读取的字符可以来自标准输入,也可以来自文从件。
常用选项:a:将输入的文本按字段放入数组中(默认使用的分隔符为空格或制表符tab),数组下标从0开始;d:指定结束符,当输入中出现指定的结束符时,read命令将认为输入已经结束(默认使用换行符作为结束符);e:从标准输入读取时,使用Readline库获取输入(此时用户可以使用退格键,方向键进行简单的行编辑操作);n:指定读取的字符数n;p:将该选项指定的字符串输出到标准错误,并读取输入。
r:将读取到的字符串按字段放入到不同的变量中;s:先锁住屏幕,然后再从标准输入中读取字符。
t:如果用户在指定的时间内没有输入,就结束读取状态(单位:秒);u:从指定的文件描述符中读取。
例子:读取多个数据并保存在数组中,
read -a name;echo “names are:${name[*] }”
3)显示并保存文本命令tee:tee命令将获取到的数据(通常来自管道)分为两个拷贝,一个拷贝输出到标准输出,另一个拷贝输出到指定的文件中。格式:...... | tee [options] filename
常用选项:a:以追加形式将数据写入到文件的结尾;i:写输入数据时,不写入标准错误。
如,ifconfig eth2 | tee eth2_info;如果想要追加写,可以在tee后加入-a选项。
4)邮件命令mail
a)发送邮件:命令格式:mail [option] [-s subject] [-c c_adress] [-b b_adress] user [-a file]...
常用选项:n:不读入设置文件/etc/mail.rc(这个文件允许用户使用外部地址而不是系统自带的sendmail发送邮件);s:设置邮件的主席信息;c:使用一个密件抄送列表;b:使用一个抄送列表。
用法:发送邮件时,通常将邮件的正文放入到一个文件内,然后使用重定向的方式读取并发送文件中的内容。例如,将文件net_info中的内容发送给用户root和user1,并将邮件的主题设置为net_info:
mail -s "net_info" root,user1
mail -s "net_info" root,user1,4065*****@qq.com4065*****@qq.com就可以收到一个来自user@localhost.localdomain的邮件(由于user@localhost.localdomain并不是一个可以返回的邮箱地址,因此某些邮箱可能会拒收此类邮件)。
b)查看邮件
有时系统中的用户可能会收到如下提示信息:You have new mail in /var/spool/mail/root 这个提示信息告诉用户收到新的系统邮件。
(1)可以使用mail查看邮件列表:mail 。使用mail命令后,将显示出邮件列表,其中前两行内容是邮件的版本号,总邮件数以及未阅读的个数等;后面的邮件列表中,“>”指示当前光标的位置,U表示未读邮件,气候分别是邮件序号、发件人、发件时间、邮件主题等内容。最后一行的“&”是邮件命令提示符,用户可以在此提示符后面输入命令并查看邮件。在邮件命令提示符中常用的命令如下:
h:查看邮件的标题
d:使用该命令加序号可以删除指定的邮件
f:查看当前光标指定的邮件
n:跳转到指定序号的邮件
q:退出并将已经阅读的邮件存入文件~/mbox中
x:退出
!:允许使用Shell命令
(2)通常建议使用命令q退出,以便于将已阅读的邮件存入文件~/mbox中。如果要重新阅读mbox中的邮件,可以使用选项f:mail -f
(3)管理员也可以使用-f查看其他用户的邮件:mail -f /var/spool/mail/user1
5)启动新Shell命令exec:exec用于启动一个新的shell,并在新shell中执行指定的命令。在实际应用中,exec命令常被用来处理文件描述符,此时(也只有在此时)exec不会启动新shell替代当前shell。
命令格式:
exec shell-command
如:exec 3<&-
exec 3<&-命令用于关闭文件描述符3,在关闭文件描述符时,必须指明文件描述符。
2.定位和查找
1)搜索命令:which,which命令的功能就是从当前环境变量PATH保存的目录中,查找参数指定的命令位置,并以绝对路径的方式输出。如 which ifconfg 结果为:/sbin/ifconfig
2)文件搜索命令locate:locate命令用于快速搜索文件和档案,其搜索工作依赖于一个事先建立的索引数据库,这个索引数据库每天会自动更新一次,以便于搜集新增的文档,因此使用locate名了那个可能无法搜索到最近新增的文档。locate iptables;locate命令也可以使用字符串匹配查找文件如 locate a* 表示查找所有以a开头的文件;使用updatedb可以更新索引数据库。
3)特殊文件搜索命令whereis:whereis命令更擅长于查找一些特殊的文件,这些特殊的文件包括二进制文件(通常为可执行文件)、说明问津啊额源代码等。同locate一样,whereis也是通过查找索引数据库来搜索文件
4)关键字搜索命令:apropos
3.切换用户
临时切换用户:su ,退出临时用户可以用exit命令
以root用户身份运行命令sudo,sudo命令工作时,先切换到root用户,并以root用户身份执行命令,然后返回到当前用户。当前用户使用sudo命令执行的操作取决于root用户在/etc/sudoers文件中的授权,即任何管理命令都需要root授权,否则不能使用sudo执行。
4.联线用户命令
1)查看联线用户命令who、finger和w
其中,who主要用于一般性查看,finger则侧重于用户的个人详细信息,而w命令则更侧重于输出用户使用系统的情况。
2)与联线用户通信的命令wall、write和mesg
如果向所有的在线用户发送公告、通知等消息可以使用wall命令,如:wall The system is going DOWN in 5 minutes 则此时登录到系统的用户都会得到提示。
如果要想登录到系统中的一个用户发消息,可以使用write,如:write root 接着就进入即时消息模式,在即使消息模式中输入要发送的信息,可以按enter换行,ctrl+C表示退出即时消息。
如果用户不希望被其他用户的消息打扰,可以使用命令mesg -n拒绝其他用户发送来的消息。可以使用mesg -y重新接受消息。
5.切断联线用户:fuser
在一些特殊情况下,需要对系统进行紧急维护,这时应该将已经联线到系统的用户
强制断开,并不允许root以外的用户登录。
如断开用户user1连接的终端设备:
fuser -k /dev/pts/3
紧急维护的另一种情况是禁止所有用户登录,这时可以在目录/etc中新建一个名为nologin的空文件,此时除root外的所有用户将无法登录到系统:touch /etc/nologin;此时系统将不会接受除root以外的用户登录,但是已经登录的用户将不会受到影响。
6.修改系统时间命令date和clock
使用date -s可以修改系统时间:date -s 06/25/08 ;修改系统日期。完成日期修改之后可以继续使用date -s命令修改时间 date -s 15:30:00
由于使用date命令修改的日期和时间都只保存在系统时钟内,因此还需要将时间同步到硬件时钟,可以使用clock命令:clock -w
7.查看日历
cal //查看当前月份日历
cal 2 2009 //查看指定月份日历
8.ls命令常用选项:
l:长格式显示文本列表
d:显示目录的详细信息,而非目录中文件列表
a:显示隐藏文件
k:显示文件大小时以k字节为单位
S:该文件大小顺序排列
h:以更为直观的方式查看文件列表(显示文件大小信息更加直观),这个选项必须配合选项l使用。
9.查看文本文件内容
1)cat 如 cat a.txt ;cat -v test.sh//这个命令同时显示文件中的控制字符
2)从文件结尾查看文件内容:tail 格式:
tail [option] filename
常用选项:n:指定查看的行数(默认10行);f:动态地显示文件内容的变化情况
3)从文件首行查看文本内容head 格式:
head [option] filename;如head -10//查看前十行