分页: 18/19 第一页 上页 13 14 15 16 17 18 19 下页 最后页 [ 显示模式: 摘要 | 列表 ]
Jun 19
一、需求: 将现成的eml格式的邮件在linux下批量发送。

二、步骤:

1. 复制eml格式文件到某个目录,如/root/waitsend

2. 将所有邮件进行处理,去除传输过程中添加的记录,只剩余原始的邮件正文,以下是实现这个功能脚本:

#!/bin/bash
cd $1
for filename in `ls`
do
sed /From:/ioooooooo $filename > $filename".bak"
sed -e /Received:/,/oooooooo/d $filename".bak" > $filename
rm -rf $filename".bak"
done  

用法:./editmail.sh /root/waitsend

3. 将eml文件中内容逐个发送给用户,脚本如下:

#!/bin/bash
cd $2
for filename in `ls`
do
echo "sending mail from: "$filename"..."
sendmail $1 < $filename
done  


用法:./sendmail.sh /root/waitsend
Tags: ,
Apr 5
sort命令,参数-u去掉结果中得重复行,-t,改变分割符,-n根据数字大小排序,-k制定排序的域.如:  sort -t: -k3n GARGO.db    #根据第三域的数字大小排序

sort -t: -k3nr GARGO.db  #根据第三域的数字大小排序,将排序结果逆向显示


uniq命令 -c打印每行在文本中重复出现的次数,-d只显示重复记录,每个重复记录只出现一次,-u只显示没有重复的记录。uniq去除的重复行必须是连续的重复行,中间没有夹杂任何文本。

join命令,文本记录的连接,如:join  -t:   -o1.1 2.1 2.2  -1 3  -2 1  text1 text2用第一个文本的第三个域连接第二个文本的第一个域,并显示第一个文本第一个域,第二个文本第一个域和第二个域,分隔符为:

测试:

test  expression

或者 [ expression ]

用$?判断推出状态,若为0表示命令运行成功

num1 -eq num2 如果num1等于num2,测试结果为0

num1 -ge num2  如果num1大于等于num2,测试结果为0

还有(-gt 大于,-le小于等于,-lt小于,-ne不等于) 、

string测试字符串是否不为空

-n string测试字符串是否不为空

-z  string测试字符串是否为空

文本操作符

-d file测试file是否为目录

-e  file测试file是否存在

-f file测试file是否为普通文件

-r file测试file是否进程可读

-s file测试长度是否不为0

-x file可执行,-w file可写 -L file符号化链接

逻辑运算符:

!expression如果expression为假,则测试结果为真

expression1 -a expression2 同时为真,则测试结果为真

expression1 -o expression2 有一个为真,则测试结果为真


字符串处理:

计算长度${#string}或者expr length $string

expr index $string $substring子串索引

expr match $string $substring 字符串匹配,不配不上返回0

${string:position:length}或者expr substr  $string $position $length 抽取字符串(前面坐标0开始,后面从1开始)

${string#substring}删除开头处与substring匹配的最短子串

${string##substring}删除开头处与substring匹配的最长子串


${string%substring}删除结尾处与substring匹配的最短子串


${string%%substring}删除结尾处与substring匹配的最长子串


${string/substring/replacement} 替换第一次与substring匹配的字符串

${string//substring/replacement}替换所有与substring匹配的字符串


awk

awk 'BEGIN  {FS=":"} {if($1==2&&$2==2) print $0}' /etc/passwd 用:分割passwd,输出第一个域或者第二个域等于2时的行信息

awk 'BEGIN  {FS=","}{print NF,NR,$0} END {print FILENAME}'  sturecord   #NF当前记录中得域数量,NR当前记录数,FILENAME当前输入文件名。
Tags:
Jan 15
NSlookup命令的用法

用了域名服务器后,经常要查询域名的解析情况,nslookup是常用工具之一,无论是linux或者是window下都有这个工具,用好它对平常的域名解析情况,或者对域名服务器的维护都有帮助。

用途

查询因特网域名服务器。

语法

nslookup [ -Option ... ] [ Host ] [ -NameServer ]

描述

nslookup 命令以两种方式查询域名服务器。交互式模式允许查询名称服务器获得有关不同主机和域的信息,或打印域中主机列表。在非交互式模式,打印指定的主机或域的名称和请求的信息。

当没有给出参数时进入交互式模式,或者当第一个参数是 -(减号)并且第二个是主机名或名称服务器的因特网地址时,nslookup 命令进入交互式模式。当没有给出参数时,命令查询缺省名称服务器。-(减号)调用可选的子命令(-Option... 变量)。除了 set 命令,这些命令在命令行指定并且必须在 nslookup 命令参数之前。set 子命令选项能在用户主目录的 .nslookuprc 文件有选择的指定。

当第一个参数是正在搜索的主机的名称或地址,nslookup 命令在非交互式模式下执行。在此情况下,主机名或名称服务器的因特网地址是可选的。

非交互式命令使用缺省名称服务器或由 NameServer 参数指定的名称服务器为指定的主机搜索信息。如果 Host 参数指定因特网地址并且查询类型是 A 或 PTR,则返回主机名称。如果 Host 参数指定名称并且名称没有结尾句点,缺省的域名追加到名称后。不在当前域中查找主机,在名称后追加单一的句点。

注:如果在用户主目录的 .nslookuprc 文件指定,set 子命令的 domain、srchlist、defname 和 search 选项能影响非交互式命令的行为。

子命令

下列命令可以随时输入 Ctrl-C 按键顺序终止。要退出,请输入 Ctrl-D 按键顺序或输入 exit。将内置命令作为主机名,在它之前带转义字符 \。不能标识的命令解释为主机名。

下列子命令由 nslookup 命令标识:


finger [Name] [> FileName]
finger [Name] [>> FileName]
在当前主机连接 finger 守护程序服务器。当前一个查询主机成功并且返回地址信息,如返回 set querytype=A 命令时,定义当前主机。Name 参数指定用户名,它是可选的。> 和 >> 字符可以用来重定向输出到新建或现有的文件。

server Domain
lserver Domain
更改缺省服务器为 Domain 参数指定的值。lserver 子命令使用初始服务器查询有关域的信息。server 子命令使用当前的缺省服务器。如果未发现授权应答,则任何可能有应答的附加服务器名返回。

root
更改缺省服务器为 root 域名空间服务器。当前,使用主机 ns.nic.ddn.mil 。root 服务器名可以使用 set root 子命令更改。(root 子命令与 lserver ns.nic.ddn.mil 子命令同义)。

ls [Option] Domain [> FileName]
ls [Option] Domain [>> FileName]
为指定的 Domain 列出可获得的信息,有选择的创建或追加输出到 FileName 参数指定的文件。缺省输出包含主机名和它们的因特网地址。Option 参数的可能值是:

-t QueryType
列出指定类型的所有记录。缺省记录类型是 A。有效类型是:

A
主机的因特网地址
CNAME
为别名规范名称
HINFO
主机 CPU 和操作系统
KEY
安全性密钥记录
MINFO
邮箱或邮件列表信息
MX
邮件交换器
NS
指定区域的名称服务器
PTR
如果查询是因特网地址则指向主机名;否则,指向其他信息
SIG
特征符记录
SOA
域的“start-of-authority”信息
TXT
文本信息
UINFO
用户信息
WKS
支持众所周知的服务
-a
列出域中主机的别名(与 -t CNAME 选项相同)。
-d
列出域中所有记录(与 -t ANY 选项同义)。
-h
列出域中 CPU 和操作系统信息(与 -t HINFO 选项同义)。
-s
列出域中众所周知的主机服务(与 -t WKS 选项同义)。
注: 当输出重定向到文件,每从服务器接收 50 条记录,打印散列标记。

view FileName
将以前 ls 命令的输出排序并且使用 more 命令将其列出。

help

?
显示命令的简要总结。

exit
退出程序。

set Keyword[=Value]
改变影响查询的状态信息。该命令可以在命令行指定或有选择的在用户主目录的 .nslookuprc 文件指定。有效的关键字是:

all
显示频繁地使用的选项要设置的当前值。有关当前缺省服务器和主机的信息也显示。
class=Value
更改查询类为下列之一。类指定信息的协议组。缺省值是 IN。

IN
Internet 类
CHAOS
Chaos 类
HESIOD
MIT Althena Hesiod 类
ANY
通配符(上面任意之一)
[no]debug
打开调试模式。缺省值是 nodebug (关闭)。
[no]d2
打开全面调试模式。缺省值是 nod2(关闭)。
domain=Name
更改缺省域名为 Name 参数指定的域名。缺省域名追加到查询请求,取决于 defname 和 search 选项的状态。如果搜索列表在其名称中至少包含两部分则域搜索列表包含缺省域的父域。例如,如果缺省域是 CC.Berkeley.EDU,搜索列表是 CC.Berkeley.EDU 和 Berkeley.EDU。使用 set srchlist 命令指定不同列表。使用 set all 命令显示列表。domain=Name 选项的缺省值是在系统的 hostname、/etc/resolv.conf、或 LOCALDOMAIN 文件指定的值。
srchlst=Name1/Name2/...
更改缺省域名为 Name1 参数指定的值,并且更改域搜索列表为 Name1、Name2......参数指定的名称。可以指定由斜杠分开的六个名称的最大值。使用 set all 命令显示名称列表。缺省值是在系统的 hostname、/etc/resolv.conf 或 LOCALDOMAIN 文件指定的值。

注:该命令覆盖缺省域名和 set domain 命令选项的搜索列表。

[no]defname
追加缺省域名到单一的组成部分的查询请求(不包含句点的请求)。缺省值是 defname (追加)。
[no]search
如果查询请求包含结尾句点以外的句点,追加域搜索列表中的域名到请求直到接收到应答。缺省值是 search。
port=Value
更改缺省 TCP/UDP 名称服务器端口为 Value 参数指定的数。缺省值是 53。
querytype=Value  
type=Value
更改信息查询为下列值之一。缺省值是 A。

A
主机的因特网地址
ANY
任何可用的选项。
CNAME
为别名规范名称
HINFO
主机 CPU 和操作系统
KEY
安全性密钥记录
MINFO
邮箱或邮件列表信息
MX
邮件交换器
NS
为指定区域的命名服务器
PTR
如果查询因特网地址则指向主机名;否则,指向其他信息
SIG
特征符记录
SOA
域的“start-of-authority”信息
TXT
文本信息
UINFO
用户信息
WKS
支持众所周知的服务
[no]recurse
如果没有信息则通知名称服务器查询其他服务器。缺省值是 recurse。
retry=Number
设置请求企图重试次数值为 Number 参数指定的值。当请求的应答没有在 set timeout 命令指定的时间帧之内接收,则超时周期加倍,请求重新发送。该子命令控制超时之前请求发送的次数。缺省值是 4。
root=Host
更改 root 服务器名称为 Host 参数指定的名称。缺省值是 ns.nic.ddn.mil。
timeout=Number
更改初始等待应答超时间隔为 Number 参数指定的秒数。缺省值是 5 秒。
[no]vc
当发送请求到服务器使用虚拟电路。缺省值是 novc(没有虚拟电路)。
[no]ignoretc
忽略数据包截断错误。缺省值是 noignoretc(不忽略)。  

示例

更改缺省查询类型类型为主机信息(HINFO)并且初始超时时间为 10 秒,请输入:

nslookup -query=hinfo -timeout=10

设置域和搜索列表为三个名称,lcs.MIT.EDU、ai.MIT.EDU 和 MIT.EDU,请输入:

nslookup -set srchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU

该命令覆盖缺省域名和 set domain 命令的搜索列表。使用 set all 命令显示列表。

确定名称是否指定主机、域、或其他实体,请输入:

nslookup -querytype=ANY austin.ibm.com

nslookup 命令返回有关名称 austin.ibm.com 的所有可用的信息,包括权限语句(SOA)、名称服务器、邮件交换器和主机因特网地址信息,如下:

Server: benames.austin.ibm.comAddress: 9.3.199.2 austin.ibm.com origin = ausname1.austin.ibm.com mail addr = brian.chriss.austin.ibm.com serial=1993081210,refresh=3600,retry=300,expire=604800, min=86400 austin.ibm.com nameserver = ausname1.austin.ibm.com austin.ibm.com nameserver = bb3names.austin.ibm.com austin.ibm.com nameserver = benames.austin.ibm.com austin.ibm.com nameserver = b45names.austin.ibm.com austin.ibm.com nameserver = bbcnames.austin.ibm.com austin.ibm.com nameserver = netmail.austin.ibm.com austin.ibm.com preference = 10, mail exchanger = netmail.austin.ibm.com austin.ibm.com inet address = 129.35.208.98 ausname1.austin.ibm.com inet address = 129.35.17.2 bb3names.austin.ibm.com inet address = 129.35.208.99 benames.austin.ibm.com inet address = 9.3.199.2 b45names.austin.ibm.com inet address = 129.35.49.2 bbcnames.austin.ibm.com inet address = 129.35.17.68 netmail.austin.ibm.com inet address = 129.35.208.98

要在 opus 主机上执行非交互式查询,请输入:

nslookup opus

nslookup 命令与 host 命令的应答相同。命令返回域名和 opus 主机的因特网地址,如下:

Name: opus.austin.ibm.com Address: 129.35.129.223

如果主机 opus 已经是名称服务器(以空 /etc/resolv.conf 文件正在运行 named 守护程序的主机),下列信息将会显示:

Server: loopback Address: 0.0.0.0

退出状态

当查询请求不成功,则 nslookup 命令返回下列错误消息之一:


Timed Out
表示服务器在超出指定的重试次数后不响应请求。

No Response from Server
表示名称服务器不在服务器上运行。

No Records
表示服务器没有主机的指定查询类型的资源记录,即使主机名有效。

Non-Existent Domain
表示主机或域名不存在。

Connection Refused
表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和 finger 请求有关的典型错误。

Network Is Unreachable
表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和 finger 请求有关的典型错误。

Server Failure
表示名称服务器遇到内部矛盾并且不能返回有效的应答。

Refused
表示名称服务器拒绝请求服务。

Format Error
表示名称服务器拒绝数据包请求因为格式不正确。


文件


/usr/bin/nslookup
包含 nslookup 命令。

/etc/resolv.conf
包含初始域名和名称服务器地址。

$HOME/.nslookuprc
包含用户的初始选项。

HOSTALIASES
包含主机别名。

LOCALDOMAIN
包含覆盖的缺省域。


***值得提醒的是命令行参数中的[- name server]上的-后要有一空格,实际上 - 是第一个参数,曾经许多人都觉得这个参数不对,不能在命令行指定域名服务器,实际上都是这个原因。这个用法对检查某个域名服务器的解析是否正确很有用。比如三个运营商在当地的域名解析是否正确,就不用采用每次都修改电脑的域名服务器来实现,只要在命令行加上这个参数就行。

***nslookup不能查询dns的递归或者迭代,功能也比dig弱。
Tags:
Jul 15
Tags: ,
May 28
1.命令作用

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

2.使用方式

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

3.参数说明

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

-l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并

且工作目录也会改变。如果没有指定USER,缺省情况是root。

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

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

–help 显示说明文件
–version 显示版本资讯

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

4.例子

su -c ls root 变更帐号为 root 并在执行 ls 指令后退出变回原使用者。

su [用户名]

a>在root用户下, 输入 su 普通用户. 则切换至普通用户, 从root切换到变通用户不需要密码

b>在普通用户下, 输入 su [用户名]
提示 password:
输入用户的PASSWORD, 则切换至该用户

扩展阅读一:Linux下 su命令与su - 命令有什么区别?

su 是切换到其他用户,但是不切换环境变量(比如说那些export命令查看一下,就知道两个命令的区别了)

su - 是完整的切换到一个用户环境

所以建议大家切换用户的时候,尽量使用 su -  linuxso 这样 否则可能发现某些命令执行不了

扩展阅读二:su和sudo的区别



由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和 管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。

通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;

sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;
分页: 18/19 第一页 上页 13 14 15 16 17 18 19 下页 最后页 [ 显示模式: 摘要 | 列表 ]