上 Linux系统文件命令精通指南( 二 )


HOME,用户主目录
PATH,Linux 用来搜索您输入的命令的可执行镜像的搜索路径
HISTSIZE,系统保存的历史事件的数量
除了这些保留的关键字之外,您还可以定义您自己的环境变量 。例如,Oracle 使用 ORACLE_HOME (还有其它一些变量),要使 Oracle 安装成功完成,必须在您的环境中设置这些变量 。
可以在提示符下临时设置变量:
$HISTSIZE=100
或者,在 /etc/profile (需要根用户权限)中进行系统范围的永久设置,或在 .profile 中进行局部永久设置 。
可以通过 echo 命令,并用一个 $ 符号来访问一个环境变量的值,进而查看该值 。
$ echo $HOME
/home/bluher
可以用 env 命令来查看当前所有的环境变量 。
正则表达式和通配符
许多 Linux 命令使用通配符 * 和 ? 来匹配任意数量的字符或分别匹配任意的单个字符;正则模式匹配表达式利用一个句点 (.) 来匹配除“换行符”之外的任意单个字符 。这两种情况下都使用方括号 ([ ]) 来匹配除“*”号之外的字符组 。不过,* 号在各种情况下有类似但不同的意义:虽然它在 shell 中将匹配一个或更多的字符,但在正则表达式中,它匹配上述字符的零个或更多的实例 。一些命令(如 egrep 和 awk)使用了一组更广泛的特殊字符来进行模式匹配 。
文件处理命令
剖析一个文件列表
ls 命令用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项 。例如:
$ ls -liah *
22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile
19942 -rw-r--r-- 1 scalish users 30 Jan 3 20:00 test2.out
925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh
上面的列表显示 8 列:
第 1 列指示文件的 inode,因为我们使用了 -i 选项 。剩下的列通过 -l 选项来进行正常显示 。
第 2 列显示文件类型和文件访问权限 。
第3 列显示链接数,包括目录 。
第 4 和第 5 列显示文件的所有者和组所有者 。这里,所有者 "bluher" 属于组 "users" 。
第 6 列显示文件大小(单位为所显示的单位,而不是默认的字节数,因为我们使用了 -h 选项 。
第 7 列显示日期(它看起来像是三列),包括月、日和年,以及当天的时间 。
第 8 列显示文件名 。在选项列表中使用 -a 将使列表中包含隐藏文件(如 .profile)的列表 。
处理文件
可以移动 (mv)、复制 (cp) 或删除 (rm) 文件和目录 。明智地使用 -i 选项,以获得确认通常是个不错的主意 。
$ cp -i ls.out ls2.out
cp:overwrite `ls2.out"?
mv 命令允许使用 -b 选项,这将在移动文件之前作一个备份拷贝 。rm 和 cp 接受功能强大但却危险的 -r 选项,它将在一个目录和它的文件上递归执行 。
$ rm -ir Test
rm:descend into directory `Test"? y
可以用 mkdir 来创建目录,用 rmdir 来删除目录 。不过,因为不能用 rmdir 来删除包含文件的目录,所以使用 rm 加 -r 选项通常要更方便些 。
出于安全的原因,所有的文件都有所有权和保护 。文件访问权限(或文件模式)包含之前提到的相同的 10 个字符:
第一个字符指示文件类型 。最常见的是 - 代表文件,d 代表目录,而 l 代表链接 。
接下来的 9 个字符是三种用户类别的访问权限:文件所有者(字符 2-4),用户组 (5-7) 和其它 (8-10),其中 r 表示读权限,w 表示写权限,x 指示一个文件上的执行权限 。破折号 - 如果出现在这九个位置的任意一个,则指示这个操作对该类别的用户禁止 。
可以使用 chmod 命令通过字符符号或二进制掩码来设置访问权限 。要使用二进制掩码,必须将三个权限组的字符表示转换成二进制格式,然后转换成八进制格式:

推荐阅读