mail

mail命令是命令行的电子邮件发送和接收工具。操作的界面不像elm或pine那么容易使用,但功能非常完整。

语法

mail(选项)(参数)

选项

-b<地址>:指定密件副本的收信人地址;
-c<地址>:指定副本的收信人地址;
-f<邮件文件>:读取指定邮件文件中的邮件;
-i:不显示终端发出的信息;
-I:使用互动模式;
-n:程序使用时,不使用mail.rc文件中的设置;
-N:阅读邮件时,不显示邮件的标题;
-s<邮件主题>:指定邮件的主题;
-u<用户帐号>:读取指定用户的邮件;
-v:执行时,显示详细的信息。

参数

邮件地址:收信人的电子邮箱地址。

实例

直接使用shell当编辑器

mail -s "Hello from linux.9iphp.com by shell" admin@linux.9iphp.com
hello,this is the content of mail.
welcome to linux.9iphp.com

第一行是输入的命令,-s表示邮件的主题,后面的admin@linux.9iphp.com则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,我们可以输入任何文字,比如上面的两行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。

使用管道进行邮件发送

echo "hello,this is the content of mail.welcome to linux.9iphp.com" | mail -s "Hello from linux.9iphp.com by pipe" admin@linux.9iphp.com

使用管道直接敲入这行命令即可完成邮件的发送,其中echo后的是邮件正文。

使用文件进行邮件发送

mail -s "Hello from linux.9iphp.com by file" admin@linux.9iphp.com < mail.txt

使用上面的命令后,我们就可以把mail.txt文件的内容作为邮件的内容发送给admin@linux.9iphp.com了。

使用上述三种方式都可以给外部邮箱进行邮件发送,但因为前面2中都是直接在shell中敲入邮件内容,因此无法输入中文,即使我们使用粘贴的方式输入了中文,那么收到的邮件也是乱码的。但第3种方式,我们可以在window下编辑好邮件内容后,放到linux下,再进行发送,这样就可以正常发送中文了。不过目前邮件的中文标题暂时没有找到解决办法。

因为mail程序本身就是调用sendmail来进行邮件发送的,因此我们可以在mail命令中使用sendmail的参数进行配置,比如我想使用特定的发件人发送邮件,可以使用如下命令:

mail -s "Hello from linux.9iphp.com with sender" admin@linux.9iphp.com -- -f user@linux.9iphp.com<mail.txt

上面的命令中,我们使用了– -f user@linux.9iphp.com这样的参数,这是sendmail的选项,其中-f表示邮件的发送人邮件地址。

很多情况下,我们也需要使用邮件来发送附件,在linux下使用mail命令发送附件也很简单,不过首先需要安装uuencode软件包,这个程序是对二进制文件进行编码使其适合通过邮件进行发送,在CentOS上安装该软件包如下:

yum install sharutils

安装完成后我们就可以来进行附件的发送了,使用如下命令:

uuencode test.txt test | mail -s "hello,see the attachement" admin@linux.9iphp.com<mail.txt

完成后就可以把text.txt文件作为邮件的附件发送出去了。uuencode有两个参数,第一个是要发送的文件,第二个是显示的文件名称。

这里我主要介绍的是在CentOS下使用mail发送电子邮件的一些使用方法,需要的要求是你的linux必须安装了sendmail并开启了,同时保证可以连接外网。另外,文章中提到的命令本人都经过亲自测试,保证完全可用,不过你需要将命令中的电子邮件地址换成自己的电子邮件地址。

ftptop

ftptop命令类似于top命令的显示风格显示proftpd服务器的连接状态。

语法

ftptop(选项)

选项

-D:过滤正在下载的会话;
-S:仅显示指定虚拟主机的连接状态;
-d:指定屏幕刷新时间,默认

htpasswd

htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。

语法

htpasswd(选项)(参数)

选项

-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户。

参数

  • 用户:要创建或者更新密码的用户名;
  • 密码:用户的新密码。

实例

利用htpasswd命令添加用户

htpasswd -bc .passwd linux.9iphp.com php

在bin目录下生成一个.passwd文件,用户名linux.9iphp.com,密码:php,默认采用MD5加密方式。

在原有密码文件中增加下一个用户

htpasswd -b .passwd Jack 123456

去掉-c选项,即可在第一个用户之后添加第二个用户,依此类推。

不更新密码文件,只显示加密后的用户名和密码

htpasswd -nb Jack 123456

不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码。

利用htpasswd命令删除用户名和密码

htpasswd -D .passwd Jack

利用htpasswd命令修改密码

htpasswd -D .passwd Jack
htpasswd -b .passwd Jack 123456

即先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能。

rlogin

rlogin命令用于从当前终端登录到远程Linux主机。

语法

rlogin(选项)(参数)

选项

-8:允许输入8位字符数据;
-e脱离字符>:设置脱离字符;
-E:滤除脱离字符;
-l用户名称>:指定要登入远端主机的用户名称;
-L:使用litout模式进行远端登入阶段操作。

参数

远程主机:指定要登录的远程主机(ip地址或者域名)。

htdigest

htdigest命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用于摘要认证的密码文件。

语法

htdigest(选项)(参数)

选项

-c:创建密码文件。

参数

  • 密码文件:指定要创建或更新的密码文件;
  • 域:指定用户名所属的域;
  • 用户名:要创建或者更新的用户名。

mysqldump

mysqldump命令mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中。

语法

mysqldump(选项)

选项

--add-drop-table:在每个创建数据库表语句前添加删除数据库表的语句;
--add-locks:备份数据库表时锁定数据库表;
--all-databases:备份MySQL服务器上的所有数据库;
--comments:添加注释信息;
--compact:压缩模式,产生更少的输出;
--complete-insert:输出完成的插入语句;
--databases:指定要备份的数据库;
--default-character-set:指定默认字符集;
--force:当出现错误时仍然继续备份操作;
--host:指定要备份数据库的服务器;
--lock-tables:备份前,锁定所有数据库表;
--no-create-db:禁止生成创建数据库语句;
--no-create-info:禁止生成创建数据库库表语句;
--password:连接MySQL服务器的密码;
--port:MySQL服务器的端口号;
--user:连接MySQL服务器的用户名。

实例

导出整个数据库

mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u linuxdoc -p smgp_apps_linuxdoc > linuxdoc.sql

导出一个表

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u linuxdoc -p smgp_apps_linuxdoc users > linuxdoc_users.sql

导出一个数据库结构

mysqldump -u linuxdoc -p -d --add-drop-table smgp_apps_linuxdoc > linuxdoc_db.sql

-d没有数据,--add-drop-table每个create语句之前增加一个drop table

ftpwho

ftpwho命令ftp服务器套件proftpd的工作指令,用于显示当前每个ftp会话信息。

语法

ftpwho(选项)

选项

-h:显示帮助信息;
-v:详细模式,输出更多信息。

rsh

rsh命令用于连接到远程的指定主机并执行指定的命令。

语法

rsh(选项)(参数)

选项

-d:使用Socket层级的排错功能;
-l<用户名称>:指定要登入远端主机的用户名称;
-n:把输入的指令号向代号为/dev/null的特殊外围设备。

参数

  • 远程主机:指定要连接的远程主机;
  • 指令:指定要在远程主机上执行的命令。

mysqladmin

mysqladmin命令mysql服务器管理任务的客户端工具,它可以检查mytsql服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。

语法

mysqladmin(选项)(参数)

选项

-h:MySQL服务器主机名或ip地址;
-u:连接MySQL服务器的用户名;
-p:连接MySQL服务器的密码;
--help:显示帮助信息。

参数

管理命令:需要在MySQL服务器上执行的管理命令。

mysqladmin支持下列命令:

create databasename:创建一个新数据库;
drop databasename:删除一个数据库及其所有表;
extended-status:给出服务器的一个扩展状态消息;
flush-hosts:清空所有缓存的主机;
flush-logs:清空所有日志;
flush-tables:清空所有表;
flush-privileges:再次装载授权表(同reload);
kill id,id,...:杀死mysql线程;
password 新口令:将老密码改为新密码;
ping:检查mysqld是否活着;
processlist:显示服务其中活跃线程列表;
reload:重载授权表;
refresh:清空所有表并关闭和打开日志文件;
shutdown:关掉服务器;
status:给出服务器的简短状态消息;
variables:打印出可用变量;
version:得到服务器的版本信息。

nfsstat

nfsstat命令用于列出NFS客户端和服务器的工作状态。

语法

nfsstat(选项)

选项

-s:仅列出NFS服务器端状态;
-c:仅列出NFS客户端状态;
-n:仅列出NFS状态,默认显示nfs客户端和服务器的状态;
-2:仅列出NFS版本2的状态;
-3:仅列出NFS版本3的状态;
-4:仅列出NFS版本4的状态;
-m:打印以加载的nfs文件系统状态;
-r:仅打印rpc状态。

实例

要显示关于客户机发送和拒绝的RPC和NFS调用数目的信息,输入:

nfsstat -c

要显示和打印与客户机NFS调用相关的信息,输入如下命令:

nfsstat -cn

要显示和打印客户机和服务器的与RPC调用相关的信息,输入如下命令:

nfsstat -r

要显示关于服务器接收和拒绝的RPC和NFS调用数目的信息,输入如下命令:

nfsstat –s