关于linux的tbl命令的信息

Linux日志式文件系统面面观 文件系统是用来管理和组织保存在磁盘驱动器上的数据的系统软件,其实现了数据完整性的保 证,也就是保证写入磁盘的数据和随后读出的内容的一致性 。除了保存以文件方式存储的数据以外,一个文件系统同样存储和管理关于文件和文件系统自身的一些重要信息(例如:日期时间、属主、访问权限、文件大小和存储位置等等) 。这些信息通常被称为元数据(metadata) 。
由于为了避免磁盘访问瓶颈效应,一般文件系统大都以异步方式工作,因此如果磁盘操作被突然中断可能导致数据被丢失 。例如如果出现这种情况:如果当你处理一个在linux的ext2文件系统上的文档,突然机器崩溃会出现什么情况?
有这几种可能:
*当你保存文件以后 , 系统崩溃 。这是最好的情况,你不会丢失任何信息 。只需要重新启动计算机然后继续工作 。
*在你保存文件之前系统崩溃 。你会丢失你所有的工作内容,但是老版本的文档还会存在 。
*当正在将保存的文档写入磁盘时系统崩溃 。这是最糟的情况:新版文件覆盖了旧版本的文件 。这样磁盘上只剩下一个部分新部分旧的文件 。如果文件是二进制文件那么就会出现不能打开文件的情况,因为其文件格式和应用所期待的不同 。
在最后这种情况下 , 如果系统崩溃是发生在驱动器正在写入元数据时,那么情况可能更糟 。这时候就是文件系统发生了损坏,你可能会丢失整个目录或者整个磁盘分区的数据 。
linux标准文件系统(ext2fs)在重新启动时会通过调用文件扫描工具fsck试图恢复损坏的元数据信息 。由于ext2文件系统保存有冗余的关键元数据信息的备份,因此一般来说不大可能出现数据完全丢失 。系统会计算出被损坏的数据的位置,然后或者是通过恢复冗余的元数据信息,或者是直接删除被损坏或是元数据信息损毁的文件 。
很明显,要检测的文件系统越大,检测过程费时就越长 。对于有几十个G大小的分区,可能会花费很长时间来进行检测 。由于Linux开始用于大型服务器中越来越重要的应用,因此就越来越不能容忍长时间的当机时间 。这就需要更复杂和精巧的文件系统来替代ext2 。
因此就出现了日志式文件系统(journalling filesystems)来满足这样的需求 。
什么是日志式文件系统
这里仅仅对日志式文件系统进行简单的说明 。如果需要更深入的信息请参考文章日志式文件系统,或者是日志式文件系统介绍 。
大多数现代文件系统都使用了来自于数据库系统中为了提高崩溃恢复能力而开发的日志技术 。磁盘事务在被真正写入到磁盘的最终位置以前首先按照顺序方式写入磁盘中日志区(或是log区)的特定位置 。
根据日志文件系统实现技术的不同,写入日志区的信息是不完全一样的 。某些实现技术仅仅写文件系统元数据,而其他则会记录所有的写操作到日志中 。
现在,如果崩溃发生在日志内容被写入之前发生,那么原始数据仍然在磁盘上,丢失的仅仅是最新的更新内容 。如果当崩溃发生在真正的写操作时(也就是日志内容已经更新),日志文件系统的日志内容则会显示进行了哪些操作 。因此当系统重启时 , 它能轻易根据日志内容,很快地恢复被破坏的更新 。
在任何一种情况下,都会得到完整的数据,不会出现损坏的分区的情况 。由于恢复过程根据日志进行,因此整个过程会非常快只需要几秒钟时间 。
应该注意的是使用日志文件系统并不意味着完全不需要使用文件扫描工具fsck了 。随机发生的文件系统的硬件和软件错误是根据日志是无法恢复的,必须借助于fsck工具 。
目前Linux环境下的日志文件系统
在下面的内容里将讨论三种日志文件系统:第一种是ext3 , 由Linux内核Stephen Tweedie开发 。ext3是通过向ext2文件系统上添加日志功能来实现的,目前是redhat7.2的默认文件系统;Namesys开发的ReiserFs日志式文件系统,可以下载,目前Mandrake8.1采用该日志式文件系统 。SGI在2001年三月发布了XFS日志式文件系统 。可以在 oss.sgi.com/projects/xfs/下载 。下面将对这三种日志文件系统采用不同的工具进行检测和性能测试 。
安装ext3
关于ext3文件系统技术方面的问题请参考Dr. Stephen Tweedie的论文和访谈 。ext3日志式文件系统直接来自于其祖先ext2文件系统 。其具有完全向后兼容的关键特性,实际上其仅仅是在ext2日志式文件系统上添加了日志功能 。其最大的缺点是没有现代文件系统所具有的能提高文件数据处理速度和解压的高性能 。
ext3从 2.2.19开始是作为一个补丁方式存在的 。如果希望对内核添加对ext3文件系统的支持,就需要使用补丁 , 可以得到补丁程序,一共需要如下文件:
* ext3-0.0.7a.tar.bz2:内核补丁
* e2fsprogs-1.21-WIP-0601.tar.bz2 支持ext3的e2fsprogs程序套件
拷贝linux-2.2.19.tar.bz2和ext3-0.0.7a.tar.bz2到/usr/src目录下,进行解压:
mv linux linux-old
tar -Ixvf linux-2.2.19.tar.bz2
tar -Ixvf ext3-0.0.7a.tar.bz2
cd linux
cat ../ext3-0.0.7a/linux-2.2.19.kdb.diff | patch -sp1
cat ../ext3-0.0.7a/linux-2.2.19.ext3.diff | patch -sp1
首先对内核添加SGI的kdb内核调试器补?。诙鍪莈xt3文件系统补丁 。下来就需要配置内核,对文件系统部分的"Enable Second extended fs development code"回答Yes 。然后编译 。
内核编译安装以后,需要安装e2fsprogs软件套件:
tar -Ixvf e2fsprogs-1.21-WIP-0601.tar.bz2
cd e2fsprogs-1.21
./configure
make
make check
make install
下来要做的工作就是在分区上创建一个ext3文件系统,使用新内核重新启动,这时候你有两种选择创建新的日志文件系统或者对一个已有的ext2文件系统升级到ext3日志文件系统 。
对于需要创建新ext3文件系统的情况下,只需要使用安装的e2fsprogs软件包中的mke2fs命令加-f参数就可以创建新的ext3文件系统:
mke2fs -j /dev/xxx
这里/dev/xxx是希望创建ext3文件系统的新分区 。-j参数表示创建ext3而不是ext2文件系统 。可以使用参数"-Jsize="来指定希望的日志区大小(n单位为M) 。
升级一个已有的ext2,使用tune2fs就可以了:
tune2fs -j /dev/xxx
你可以对正在加载的文件系统和没有加载的文件系统进行升级操作 。如果当前文件系统正在被加载,则文件.journal会在文件系统加载点的所在目录被创建 。如果是升级一个当时没有加载的文件系统,则使用隐含的系统inode来记录日志,这时候文件系统的所有内容都会被保留不被破坏 。
你可以使用下面的命令加载ext3文件系统:
mount -t ext3 /dev/xxx /mount_dir
由于ext3实际上是带有日志功能的ext2文件系统 , 因此一个ext3文件系统可以以ext2的方式被加载 。
安装XFS文件系统
如果需要从技术方面了解XFS文件系统 , 请参考SGI的XFS文件系统和SGI信息页面 。也可以参考FAQ 。
XFS是一个SGI开发的linux环境下的日志文件系统,它是一个成熟的技术,最初是使用在IRIX系统上的文件系统 。XFS遵循GPL版权申明 。目前xfs文件系统最新版本是1.02 。下载得到对内核xfs文件系统支持补丁或者直接下载RPM包方式的内核,下面我们就以补丁方式说明如何对2.4.14内核使用xfs 。首先下载如下内容
patch-2.4.14-xfs-1.0.2.bz2
patch-2.4.14-xfs-1.0.2-kdb.bz2
拷贝Linux内核linux-2.4.2.tar.bz2到 /usr/src目录下,修改老的内核目录名 , 然后解压新内核:
mv linux linux-old
tar -Ixf inux-2.4.2.tar.bz2
拷贝每个每个补丁到内核源码目录下(例如:/usr/src/linux) , 并打补?。?
zcat patch-2.4.14-xfs-1.0.2.bz2 | patch -p1
zcat patch-2.4.14-xfs-1.0.2-kdb.bz2 | patch -p1
然后配置内核 , 打开文件系统部分的内核选项:"XFS filesystem support" (CONFIG_XFS_FS)和"Page Buffer support" (CONFIG_PAGE_BUF) 。同时需要升级下面这些系统工具到下面或更高的版本:
modutils-2.4.0
autoconf-2.13
e2fsprogs-devel-1.18
安装新内核并重启服务器 。
然后下载xfs工具 。这个软件包包括下面的命令来处理文件系统 , 使用下面的命令来安装该软件包::
tar -zxf xfsprogs-1.2.0.src.tar.gz
cd xfsprogs-1.2.0
make configure
make
make install
安装这些命令以后 , 就可以创建新的XFS文件系统:
mkfs -t xfs /dev/xxx
如果xxx是一个已经存在的文件系统,那么就需要使用"-f"参数来创建新分区,但是记得这将会破坏该分区的所有数据 。
mkfs -t xfs -f /dev/xxx
创建以后就可以使用基于下面的命令加载新文件系统:
mount -t xfs /dev/xxx /mount_dir
安装ReiserFS文件系统
如果希望更多地从技术方面了解reiserFS文件系统,请参考NAMESYS和FAQ 。
ReiserFS文件系统从2.4.1-pre4开始就是Linux内核的正式支持的文件系统了 。为了使用reiserFS文件系统那你首先需要在系统上安装文件系统支持工具(如:创建ReiserFS文件系统的mkreiserfs工具) 。最新的ReiserFS文件系统版本可以以补丁的方式添加到2.2.x或者2.4.x内核中 。这里我们以2.2.19为例:
第一步 , 首先下在内核源码,并下在ReiserFS文件系统的2.2.19补丁,目前补丁最新版本是linux-2.2.19-reiserfs-3.5.34-patch.bz2 。同时应该下载工具软件包:reiserfsprogs-3.x.0j.tar.gz 。
然后解压内核源码和补丁包到/usr/src中:
tar -Ixf linux-2.2.19.tar.bz2
bzcat linux-2.2.19-reiserfs-3.5.34-patch.bz2 | patch -p0
编译内核支持reiserfs,安装内核 。然后安装文件系统工具软件:
cd /usr/src/linux/fs/reiserfs/utils
make
make install
安装新内核并重新启动 。现在就可以创建新的'reiserfs文件系统 , 并加载:
mkreiserfs /dev/xxxx
mount -t reiserfs /dev/xxx /mount_dir
文件系统性能测试
测试环境使用的计算机环境如下:Pentium III - 16 Mb RAM - 2 Gb HD,操作系统为RedHat6.2 。所有的文件系统都能正常工作,所以就进行benchmark分析来对它们进行性能比较 。首先我直接拔掉系统电源以模拟系统掉电情况,以测试日志文件系统恢复过程 。所有的文件系统都成功地经过了文件扫描检测阶段,在数秒以后系统都经过了扫描然后正常启动了系统 。
下一步就采用了bonnie性能测试程序进行测试,这个程序对一个文件进行数据库类型的访问 , 进行了创建、读和删除小文件,这些操作对于Squid、INN或者Maildir格式的邮件服务器程序(qmail)是最常见的操作 。性能测试命令为:
bonnie-d/work1 -s10 -r4 -u0
其对加载在/work1目录下的文件系统进行了10Mb(-s10)的测试 。因此在执行测试之前必须创建适当类型的文件系统并加载到目录/work1下 。其他的参数指定内存大小(-r4)的M数,和以root身份运行测试程序,测试结果如下:
每种测试都有两组数据:文件系统速度(K/sec)和CPU占用率(%CPU) 。速度越高,文件系统越好 。而对于CPU率来说,数字越小性能越好 。可以看到Reiserfs文件系统在文件操作方面(Sequential Create和Random Create部分的) 的性能最好 , 超出其他文件系统10倍之多 。在其他方面(Sequential Output和Sequential Input)则和其他文件系统性能不相上下 。对于其他文件系统则没有特别明显的区别 。XFS性能接近ext2文件系统,ext3文件系统则比ext2要稍微慢上一些(因为记录日志需要一些额外的时间) 。最后使用从得到的性能测试程序mongo,并对其进行了修改以对三种日志文件系统进行测试 。这里在mongo.pl程序中添加了添加了加载xfs和ext3文件系统的命令,并对其进行格式化处理,然后就开始性能测试分析 。该脚本格式划分区/dev/xxxx,加载其并在每个阶段运行指定数目的进程:创建、拷贝、符号连接处理、读、显示文件状态信息、重命名和删除文件 。同时,该程序在创建和拷贝阶段以后会计算分段数(fragmentation) 。
Fragm = number_of_fragments / number_of_files
可以在结果文件中得到同样的测试比较结果:
log - 原始结果
log.tbl - 比较程序的输出结果
log_table - 表格式的结果
下面的命令进行测试:
mongo.pl ext3 /dev/hda3 /work1 logext3 1
如果要测试其他文件系统 , 就需要把上面命令的参数中的ext3修改为reiserfs或xfs 。其他参数分别为要加载的分区,加载路径,保存测试结果的文件名及启动的进程数 。
下面的表格是测试结果 。数据单位为秒 。值越低性能越好 。第一个表格测试使用的数据块大小为100字节,第二个表格为1000字节,最后一个为10000字节
从上面的表格可以看到ext3在状态删除和重命名方面要性能更好一些 , 而ReiserFS文件系统在文件创建和拷贝性能表现更出色 。同时也可以看到reiserFS正如其技术文档提到的其在小文件处理方面性能相当出色 。
结论
目前Linux至少有两个健壮可靠的日志文件系统可供选择(XFS和reiserFS),其都得到了广泛的应用 。例如Mandrake8.1就默认支持reiserFS文件系统 。
从性能测试的结果可以看到,reiserFS是最好的选择 。
Linux内核-arp协议 从ip_finish_output2到dev_queue_xmit路径:
arp协议:
(1).硬件类型:
硬件地址类型,该字段值一般为ARPHRD_ETHER,表示以太网 。
(2).协议类型:
表示三层地址使用的协议,该字段值一般为ETH_P_IP,表示IP协议
(3)硬件地址长度,以太网MAC地址就是6;
(4)协议地址长度,IP地址就是4;
(5)操作码
常见的有四种,arp请求 , arp相应 , rarp请求,rarp相应 。
(6)发送方硬件地址与IP地址,(7)目标硬件地址与目标IP地址 。
arp头数据结构:
arp模块的初始化函数为arp_init(),这个函数在ipv4协议栈的初始化函数inet_init()中被调用 。
1.初始化arp表arp_tbl;
2.注册arp协议类型;
3.建立arp相关proc文件,/proc/net/arp;
4.注册通知事件
一个neigh_table对应一种邻居协议,IPv4就是arp协议 。用来存储于邻居协议相关的参数、功能函数、邻居项散列表等 。
一个neighbour对应一个邻居项,就是一个arp条目
邻居项函数指针表,实现三层和二层的dev_queue_xmit()之间的跳转 。
用来存储统计信息,一个结构实例对应一个网络设备上的一种邻居协议 。
注册arp报文类型 :dev_add_pack(arp_packet_type);
就是把arp_packet_type添加到ptype_base哈希表中 。
注册新通知事件的时候,在已经注册和UP的设备上,会调用一次这个通知事件 。
设备事件类型:
创建一个邻居项 , 并将其添加到散列表上,返回指向该邻居项的指针 。
tbl:待创建的邻居项所属的邻居表,即arp_tbl;
pkey:三层协议地址(IP地址)
dev:输出设备
want_ref:??
创建邻居项
1.设置邻居项的类型
2.设置邻居项的ops指针
3.设置邻居项的output函数指针
调用dst_link_failure()函数向三层报告错误,当邻居项缓存中还有未发送的报文,而该邻居却无法访问时被调用 。不懂 。
用来发送arp请求 , 在邻居项状态定时器处理函数中被调用 。
neigh:arp请求的目的邻居项
skb:缓存在该邻居项中的待发送报文,用来获取该skb的源ip地址 。
将得到的硬件源、目的地址 , IP源、目的地址等作为参数,调用arp_send()函数创建一个arp报文并将其输出 。
创建及发送arp报文
创建arp报文,填充字段 。
发送arp报文
用来从二层接收并处理一个arp报文 。这个函数中就是做了一些参数检查 , 然后调用arp_process()函数 。
neigh_event_ns
neigh_update
这个函数的作用就是更新邻居项硬件地址和状态 。分支比较多 。
neigh_update_notify
代理arp(proxy arp),通常像路由器这样的设备才使用,用来代替处于另一个网段的主机回答本网段主机的arp请求 。
感觉代码ARP好像没啥用呀 。
网络主机发包的一般过程:
1.当目的IP和自己在同一网段时 , 直接arp请求该目的IP的MAC 。
2.当目的IP和自己不再同一网段时,arp请求默认网关的MAC 。
当主机没有默认网关的时候,arp请求别的网段的报文,到达路由器后,本来路由器是要隔离广播的,把这个arp请求报文给丢弃,这样就没法通信了 。当路由器开启arp proxy后,路由器发现请求的目的IP在其他网段,就自己给主机回复一个arp响应报文,这样源主机就把路由器的MAC当成目的IP主机对应的MAC , 可以通信了 。这样可能会造成主机arp表中 , 多个IP地址都对应于路由器的同一个MAC地址 。
可以使用arping命令发送指定IP的arp请求报文 。
写完了发现这个老妹写的arp代理文章蛮好的,不过她好像是转载的 。
Linux下常用文本处理命令 Linux下常用文本处理命令大全
Linux下面有很多经典的非常有用的命令,其中处理文本的命令就有很多 。下面就让我们一起看看这些经典的Linux文本处理命令有哪些吧 。
一. sort
文件排序, 通常用在管道中当过滤器来使用. 这个命令可以依据指定的关键字或指定的字符位置, 对文件行进行排序. 使用-m选项, 它将会合并预排序的输入文件. 想了解这个命令的全部参数请参考这个命令的info页.
二. tsort
拓扑排序, 读取以空格分隔的有序对, 并且依靠输入模式进行排序.
三. uniq
这个过滤器将会删除一个已排序文件中的重复行. 这个命令经常出现在sort命令的管道后边.
四. expand, unexpand
expand命令将会把每个tab转化为一个空格. 这个命令经常用在管道中.
unexpand命令将会把每个空格转化为一个tab. 效果与expand命令相反.
五. cut
一个从文件中提取特定域的工具. 这个命令与awk中使用的print $N命令很相似, 但是更受限. 在脚本中使用cut命令会比使用awk命令来得容易一些. 最重要的选项就是-d(字段定界符)和-f(域分隔符)选项.
六. paste
将多个文件, 以每个文件一列的形式合并到一个文件中, 合并后文件中的每一列就是原来的一个文件. 与cut结合使用, 经常用于创建系统log文件.
七. join
这个命令与paste命令属于同类命令. 但是它能够完成某些特殊的目地. 这个强力工具能够以一种特殊的形式来合并两个文件, 这种特殊的形式本质上就是一个关联数据库的简单版本.
join命令只能够操作两个文件. 它可以将那些具有特定标记域(通常是一个数字标签)的行合并起来, 并且将结果输出到stdout. 被加入的文件应该事先根据标记域进行排序以便于能够正确的匹配.
八. head
把文件的头部内容打印到stdout上(默认为10行, 可以自己修改). 这个命令有一些比较有趣的选项.
九. tail
将一个文件结尾部分的内容输出到stdout中(默认为10行). 通常用来跟踪一个系统logfile的.修改情况, 如果使用-f选项的话, 这个命令将会继续显示添加到文件中的行.
十. wc
wc可以统计文件或I/O流中的”单词数量”:
十一. fold
将输入按照指定宽度进行折行. 这里有一个非常有用的选项-s, 这个选项可以使用空格进行断行(译者: 事实上只有外文才需要使用空格断行, 中文是不需要的)(请参考例子 12-23和例子 A-1).
十二. fmt
一个简单的文件格式器, 通常用在管道中, 将一个比较长的文本行输出进行”折行”.
十三. col
这个命令用来滤除标准输入的反向换行符号. 这个工具还可以将空白用等价的tab来替换. col工具最主要的应用还是从特定的文本处理工具中过滤输出, 比如groff和tbl. (译者: 主要用来将man页转化为文本.)
十四. column
列格式化工具. 通过在合适的位置插入tab, 这个过滤工具会将列类型的文本转化为”易于打印”的表格式进行输出.
十五. colrm
列删除过滤器. 这个工具将会从文件中删除指定的列(列中的字符串)并且写到文件中, 如果指定的列不存在, 那么就回到stdout. colrm 2 4 filename将会删除filename文件中每行的第2到第4列之间的所有字符. p=""/filename将会删除filename文件中每行的第2到第4列之间的所有字符.
Caution: 如果这个文件包含tab和不可打印字符, 那将会引起不可预期的行为. 在这种情况下, 应该通过管道的手段使用expand和unexpand来预处理colrm.
十六. nl
计算行号过滤器. nl filename将会把filename文件的所有内容都输出到stdout上, 但是会在每个非空行的前面加上连续的行号. 如果没有filename参数, 那么就操作stdin.
nl命令的输出与cat -n非常相似, 然而, 默认情况下nl不会列出空行.
十七. pr
格式化打印过滤器. 这个命令会将文件(或stdout)分页, 将它们分成合适的小块以便于硬拷贝打印或者在屏幕上浏览. 使用这个命令的不同的参数可以完成好多任务, 比如对行和列的操作, 加入行, 设置页边, 计算行号, 添加页眉, 合并文件等等. pr命令集合了许多命令的功能, 比如nl, paste, fold, column, 和expand.
pr -o 5 –width=65 fileZZZ | more 这个命令对fileZZZ进行了比较好的分页, 并且打印到屏幕上. 文件的缩进被设置为5, 总宽度设置为65.
一个非常有用的选项-d, 强制隔行打印(与sed -G效果相同).
十八. gettext
GNU gettext包是专门用来将程序的输出翻译或者本地化为不同国家语言的工具集. 在最开始的时候仅仅支持C语言, 现在已经支持了相当数量的其它程序语言和脚本语言.
想要查看gettext程序如何在shell脚本中使用. 请参考info页.
十九. msgfmt
一个产生二进制消息目录的程序. 这个命令主要用来本地化.
二十. iconv
一个可以将文件转化为不同编码格式(字符集)的工具. 这个命令主要用来本地化.
二十一. recode
可以认为这个命令是上边iconv命令的专业版本. 这个非常灵活的并可以把整个文件都转换为不同编码格式的工具并不是Linux标准安装的一部分.
二十二. TeX, gs
TeX和Postscript都是文本标记语言, 用来对打印和格式化的视频显示进行预拷贝.
TeX是Donald Knuth精心制作的排版系统. 通常情况下, 通过编写脚本的手段来把所有的选项和参数封装起来一起传到标记语言中是一件很方便的事情.
linux命令全?acctcom 搜索并显示进程记帐文件
ar 维护可移植linux的tbl命令的档案或库
at 定时执行某个命令
awk 模式扫描和处理语言
batch 对at命令linux的tbl命令的调用
banner 显示大尺寸字符
basename,dirname 给出路径名linux的tbl命令的若干部分
bc 任意精度的算术运算语言
bdiff 大型diff
bfs 大文件扫描程序
cal 显示日历
calendar 提醒服务
cat 显示文本文件的内容
cd 改变工作目录
chgrp 改变文件或目录的组属关系
chmod 改变文件的读,写,执行等属性
chown 改变文件或目录的属主
clear 清除屏幕
cmp 比较两个文件
col 倒向换行过滤程序
comm 选择或舍去两个已排序文件的公共行
compress,uncompress,zcat 压缩文件,解压缩文件,显示压缩文件的内容
cp 拷贝文件或目录
cpio 档案文件的拷入和拷出
csh 具有类似C语言语法的shell命令解释程序
csplit 分割文件
ct 为远程终端衍生注册
ctags 创建一个用于vi的标记文件
cu 呼叫另一个UNIX系统
cut 剪下文件每一行中所选中的字段
date 显示和设置日期
dc 台式计算器
dd 转换并拷贝文件
deroff 删除nroff/troff,tbl和eqn结构
df 报告空闲的磁盘块数和文件系统占用磁盘情况
diff 比较并显示两个文件的不同之处
diff3 比较并显示三个文件的不同之处
dircmp 目录比较
dsconfig 显示数据存储设备的配置情况
du 总计磁盘的使用情况
echo 回显参数
ed,red 正文编辑程序
edit 正文编辑程序(ex的变种)
egrep,fgrep,grep 在文件中搜索匹配的字符串并显示
enable,disable 启用/禁用终端或打印机
env 设置命令运行的环境
ex 正文编辑程序
expr 把参数作为一个表达式来求值
factor 因式分解
file 判断文件类型
find 查找文件
finger 显示本地和远程用户的信息
fold 长行折叠
ftp 文件传输程序
gencat 生成一个格式化的消息分类
getopt 分析命令的任选项
groups 显示用户的组属关系
head 显示文件的前几行
iconv 国际代码集转换程序
id 显示用户名与用户ID以及组名与组ID
ipcrm 删除消息队列、信号量集或共享内存ID
ipcs 报告进程间通信设施的状态
ismpx 返回窗口型终端的状态
join 连接两个关联
kill 终止进程
ksh,rksh Korn Shell命令程序设计语言
last 显示最近用户或终端注册
line 读一行
ln 连接文件
login 注册
logname 获取注册名
lp,cancel 打印文件/删除打印请求
lpstat 显示打印状态
l,lc,lf,lr,ls,lx 列文件
mail,rmail 读邮件或发邮件
mailx 交互式邮件处理系统
linux 的常用小技巧 1、统计文件的行数
pre
[root@test59 dbgen]# wc -lpartsupp.tbl
80000000 partsupp.tbl
[root@test59 dbgen]# wc -lorders.tbl
150000000 orders.tbl
/pre
wc 还有其他的一些参数:
语法:wc [选项] 文件…
说明:该命令统计给定文件中的字符数、字数、行数 。如果没有给出文件名,则从标
准输入读取 。wc同时也给出所有指定文件的总统计数 。字是由空格字符区分开的最大字符串 。
该命令各选项含义如下:
这些选项可以组合使用 。
输出列的顺序和数目不受选项的顺序和数目的影响 。
总是按下述顺序显示并且每项最多一列 。
行数、字数、字符数、文件名
如果命令行中没有文件名,则输出中不出现文件名 。
另外针对命令也可以增加wc -l,例如查看一下当前80端口的连接情况:
netstat -an|grep 80|wc -l
2、用户如果出现资源不够,执行su - user也出错:
su: cannot set user id: Resource temporarily unavailable
需要检查/etc/security/limits.conf
pre
vi /etc/security/limits.conf
/pre
分布式环境下资源使用的很多,默认设置远远不够
3、简单的针对某个ip进行iptables设置:
iptables -I INPUT -s 121.0.0.34 -j DROP
4、设置密码的安全策略
Debian、Ubuntu 或 Linux Mint 系统上:
pre
root@deepin155:~# vi /etc/pam.d/common-password
passwordrequisitepam_pwquality.so enforce_for_root retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 difok=3
/pre
它表示密码必须至少包含一个大写字母(ucredit) , 一个小写字母(lcredit),一个数字(dcredit)
ocredit:标点符号
difok:字符种类
minlen:密码长度
CentOS、Fedora、RHEL 系统上:
pre
vi /etc/pam.d/system-auth
passwordrequisitepam_cracklib.so try_first_pass retry=3 type=
/pre
设置密码过期期限
编辑 /etc/login.defs 文件
pre
PASS_MAX_DAYS99999
PASS_MIN_DAYS0
PASS_WARN_AGE7
/pre
【关于linux的tbl命令的信息】linux的tbl命令的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于、linux的tbl命令的信息别忘了在本站进行查找喔 。

    推荐阅读