每天学点Linux:二
关于输入输出和重定向:
默认情况下标准I/O的输入为键盘,输出为显示屏。输入和输出可以通过符号‘>’进行重定向。
例如可以通过命令:$>newfile
来创建一个新文件(如果newfile早已存在,则会将其清空),除此之外还可以通过touch命令创建一个空文件。向一个文件中输入一些内容,可以这么写:$ echo something > filename,在文件尾部添加一些内容:$echo something >> filename。
在Linux中标准文件有特定的代码表示:
比如命令:$echo $num| bc 2>/dev/null
就是把该命令产生的错误信息重定向输入到文件/dev/null中(默认情况下,产生的标准错误也是输出到屏幕的)。
还例如:$echo $str|grep "\.">/dev/null 2>&1
把该命令产生的标准输出重定向输出到文件/dev/null中,而把该命令产生的错误信息重定向输出到显示屏上(这种&用法是不是有点象C语言里面的取地址?)
touch命令
创建一个新的空文件,或者更改已存在文件的修改时间。
例子:$touchfilename
如果该文件不存在,则创建一个空的文件,反之将该文件的修改时间改为系统的当前时间。
例子2:$touch -d 20130828 filename
将该文件的修改时间改为20130828。
cat命令
以文本形式显示文件的内容。
3个有用的参数:-n -b -s
-n:给输出的文本的行数进行编号(在命令行中看代码很有用)
-b:也是给行数编号,只是滤掉空白行不编号。
-s:如果文本中有多个空白行,则合并为一个空白行(所以加-s参数后,还是会有空行,不像加-b参数)
cat命令可以和重定向符一起使用,例如cat file1.txt >>file2.txt,将一个文本文件添加到第二个文本文件尾部。Cat> filename,清空文件。
sort命令
排序,接受一段文本,一般按行排序。
默认情况下,指定关键字都是按照字典顺序排序,默认分割符为Tab或者空格。
参数:
-r:逆向排序,默认从小到大。
-n:按数值排序,默认数字将按字符串比较大小。
-t:制定分割符,默认为Tab或者空格。
-k:指定作为关键字的区域,例如 -k 2.5,3.9的含义是从第二个域的第五个自字符到第三个域的第九个字符中间所有的字符作为排序的字符串,所以-k参数的格式为:
-k [域.字符序号,域.字符序号]
注意:这里默认从1开始计数,而不是0。
其实老版Unix的sort命令,貌似比这个还要复杂。
uniq命令
比较相邻的行,如果相邻行重复,则只显示一行。
例如:$uniqfile.txt,或者sort -r file.txt | uniq
file命令
显示文件类型。
例如:$ file *,显示当前目录下所有文件(包括目录)的类型。