9. ls
-----
ls的顏色: ls --color.
dircolors用於產生一些shell命令, 通常我們這樣使用它,
eval `dircolors ~/.dir_colors`
注意, 缺省產生的是bash風格的.
如果, 只想顯示目錄名而不想列出其下面的文件, 試一下下面的命令
cd \
ls -d bi*
以.開頭的文件ls一般不會顯示, 用 -a 表示 all.
-h 用加單位的方式來顯示文件的大小, 如 1.4K 1.5M等.
-S 按大小排序
-t 按時間排序
如何只顯示目錄呢? 用下面的包含awk的腳本:
#!/bin/sh
if [ $# -eq 0 ]; then
ls -l --color grep ^d awk {print $NF}
else
ls $1 -l --color grep ^d awk {print $NF}
fi
也可以用perl來實現:
#!/usr/bin/perl
open(LS,"ls -l --color $ARGV[0] ");
$a = 1;
while($a) {
$a=;
next unless $a=~/^d/;
@a=split(/\s+/,$a);
print ($a[8],"\n");
};
close(LS);
10. tr
------
tr是Translate的縮寫. 它是標准的Unix風格的命令, 簡捷而高效.
它通常放在管道中作一些處理, 如:
ls tr a-z A-Z (注意, 不可加參數 --color)
它從標准輸入中都寫到標准輸出中去, 並可以作下列操作:
1. 轉換, 壓縮連續的字符串.
2. 壓縮連續的字符串.
3. 刪除字符.
4. 刪除字符, 壓縮連續的字符串.
tr [option]... [set1] [set2]
當set1和set2都被設置, 沒加-d. 將set1中的字符set2被替換. 如果
set1中的字符有重復的, 以最後一個為准.
如: tr aaa xyz tr和tr a z是一樣的.
最常用是大小寫的轉換
tr a-z A-Z
-d 刪除set1中的字符.
-s 壓縮set1中的字符.
-d -s 先刪除set1中的字符, 再壓縮set2中的字符.
11. Dos和Unix下的純文本格式
------------------------
二者的區別其實很簡單, Dos下一行的結束用\r\n, 而在Unix中僅使用\n.
在convert這個rpm包裡有兩個命令用於格式的轉換:
dos2unix filename
unix2dos filename
這個包裡還有下面的命令用於文件編碼的轉換:
gb2big filename
big2gb filename
12. sort
--------
sort這個命令用於排序. 可以從標准輸入中讀, 也可以從文件中讀如:
sort /etc/passwd
cat /etc/passwd sort
常用的參數:
sort
-c 檢查文件是否已經排好序了
-b 去掉前導空白
-f 忽略大小寫
-n 按數字來處理, 但不用科學計數法
-(num)n num
-g 使用科學計數法
-t 分隔符
-r 反向排序
-n 表示忽略幾個區(用分隔符隔開的)
+4 表示跳過4個區
如: 將當前目錄下的文件按大小排序:
ls -l sort +4
反向排序
ls -l sort -r +4