第一章 目录及文件操作命令
一 ls 列目录
[语法] ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]
[说明] ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺序为纵向按字符顺序排列.
[选项说明]
-R 递归地列出每个子目录的内容
-a 列出所有文件,包括第一个字符为”.”的隐藏文件
-d 若后面参数是目录,则只列出目录名而不列出目录内容,常与-l选项连用以显示目录状态
-C 输出时多列显示
-x 横向按字符顺序排列
-m 输出按流式格式横向排列,文件名之间用逗号(,)分隔
-l 长列表输出,显示文件详细信息,每行一个文件,从左至右依次是:文件存取模式 链接数 文件主 文件组 文件字节数 上次修改时间
文件存取模式用10个字母表示,从左至右的意义如下:
第一个字母表示文件种类:d 为目录文件,
l 为链接,
b 为块文件
c 为字符型文件
p 为命名管道(FIFO)
- 为普通文件
后面9个字母分别表示文件主、同组用户、其他用户
对文件的权力,r 表示可读,w 表示可写,x 表示可执 行。
如果是设备文件,则在文件字节数处显示: 主设备 从设备
-n 与-l选项相同,只是文件主用数字(即UID)显示,文件组用数 字(即GID)表示
-o 与-l选项相同,只是不显示文件组
-g 与-l选项相同,只是不显示文件主
-r 逆序排列
-t 按时间顺序排列而非按名字
-u 显示时间时使用上次访问时间而非上次修改时间
-c 显示时间时使用上次修改i节点时间而非上次修改时间
-p 若所列文件是目录文件,则在其后显示斜杠(/)
-F 在目录文件后加’/’,在可执行文件后加’*’
-b 文件名中若有非打印字符,则用八进制显示该字符
-q 文件名中的打印字符用’?’表示
-i 显示节点号
-s 显示文件长度时使用块长度而非字节长度
-f 将后面的参数解释为目录并列出其中的每一项
-1 每行仅列一项
[例子]
ls
列出当前目录下的文件
ls -al /bin
以长列表的形式列出目录 /bin 下的所有文件,包 括隐藏文件
二 pwd 显示当前工作目录
[语法] pwd
[说明] 本命令用于显示当前的工作目录
[例子] pwd
显示出当前的工作目录
三 cd 改变当前工作目录
[语法] cd [目录]
[说明] 本命令用于改变当前的工作目录,无参数时使用环境变量 $HOME 作为其参数,$HOME 一般为注册时进入的路径
[例子]
cd
回到注册进入时的目录
cd /tmp
进入 /tmp 目录
cd ../
进入上级目录
四 mkdir 建立目录
[语法] mkdir [-m 模式] [-p] 目录名
[说明] 本命令用于建立目录,目录的存取模式由掩码(umask)决定,
要求对其父目录具有写权限,目录的UID和GID为实际UID和GID
[选项说明]
-m 按指定存取模式建立目录
-p 建立目录时建立其所有不存在的父目录
[例子]
mkdir tmp
在当前目录下建立子目录 tmp
mkdir -m 777 /tmp/abc
用所有用户可读可写可执行的存取模式
建立目录 /tmp/aaa ,存取模式参看命令 chmod
mkdir -p /tmp/a/b/c
建立目录 /tmp/a/b/c ,若不存在目录 /tmp/a 及
/tmp/a/b 则建立之
五 rmdir 删除目录
[语法] rmdir [-p] [-s] 目录名
[说明] 本命令用于删除目录
[选项说明]
-p 删除所有已经为空的父目录
-s 当使用-p 选项时,出现错误不提示
[例子]
rmdir /tmp/abc
删除目录 /tmp/abc
rmdir -p /tmp/a/b/c
删除目录 /tmp/a/b/c ,若目录 /tmp/a /b及 /tmp/a 空,则删除
六 cat 连接、显示文件
[语法] cat [-u] [-s] [-v[-t] [-e]] 文件...
[说明] 显示和连接一个或多个文件至标准输出
[选项说明]
-u 无缓冲的输出(缺省为有缓冲输出)
-s 对不存在的文件不作提示
-v 显示出文件中的非打印字符,控制字符显示成^n ,n为八进制数 字,其他非打印字符显示成M-x , x 为该字符低7位的8进制数值
-t 在使用-v 选项时,将制表符(tab) 显示成 ^I,将换页符(formfeed)显示成 ^ L
-e 在使用-v 选项时,在每一行的行尾显示 $
[例子]
cat file
显示文件
cat -s -v -e file1 file2 file3
逐个显示文件 file1 file2 file3
七 head 显示文件的头若干行
[语法] head [-n] [文件 ...]
[说明] 将文件的头 n 行显示输出, 缺省值为 10 行,显示多个文件
时,在每个文件的前面加上 ==> 文件名 <==
[例子] head -9999 file1 file2
显示文件 file1 和 file2 的头 9999 行
八 more 分屏显示文件
[语法] more [-cdflrsuw] [- 行数] [+ 行数] [+ / 模式 ] [ 文件 ... ]
[说明] 将文件显示在终端上,每此一屏,在左下部显示 --more--,
若是从文件读出而非从管道,则在后面显示百分比,表示已显示
的部分,按回车键则上滚一行,按空格键则上滚一屏,未显示完时
可以使用more 命令中的子命令
[选项说明]
-c 显示文件之前先清屏
-d 当输错命令时显示错误信息而不是响铃(bell)
-f 不折叠显示长的行
-l 不将分页控制符(CTRL D)当作页结束
-r 一般情况下,more 不显示控制符,本选项使more 显示控制符,例如,将 (CTRL C) 显示成 ^ C
-s 将多个空行转换成一个空行显示
-u 禁止产生下划线序列
-w 一般情况下 more 显示完后立即推出,本选项在显示完后作提示,敲任意键后推出
-n 行数 指定每屏显示的行数
+ 行号 从指定行号开始显示
+/模式 在文件中搜索指定模式,从模式出现行的上两行开始显示
[命令说明]
文件未显示完时,可以使用more 命令中的子命令,命令中除了! 和 /
以外均不回显,也不用敲回车,当命令破坏 more 提示行时,可用退
格键恢复提示行,以下 i 表示数字,缺省值为 1
i 空格 上滚一屏多 i 行
i 回车 上滚 i 行
i CTRL+D i 缺省时上滚 11 行,否则上滚 i 行
id i 缺省时上滚 11 行,否则上滚 i 行
iz i 缺省时上滚一屏,否则定义每屏为 i 行
is 跳过 i 行后显示一屏
if 跳过 i 屏后显示一屏
i CTRL+B 跳回 i 屏后显示一屏
b 跳回 一屏后显示一屏
q 或 Q 推出 more
= 显示当前行号
v 从当前行开始编辑当前文件,编辑器由环境变量
$EDITOR 定义
h 显示帮助信息
i / 模式 向前搜索,直至模式的第 i 次出现 , 从该行的上 两行开始显示一屏
in 向前搜索,直至上一模式的第 i 次出现 , 从该行 的上两行开始显示一屏
单引号 回到上次搜索的出发点,若无搜索则回到开始位置
! 命令 激活一个sh 去执行指定的命令
i : n 跳到后面第 i 个文件,若不存在则跳到最后一个文件
:f 显示当前文件名和行号
:q 或 :Q 推出 more
. (点) 重复上次命令
[ 例子]
more -c +50 file
清屏后,从第50行开始显示文件 file
more -s -w file1 file2 file3
显示文件 file1 file2 file3
九 cp 拷贝文件
[ 语法] cp [ -p ] [ -r ] 文件 1 [ 文件 2 ...] 目标
[说明] 将文件1(文件2 ...)拷贝到目标上,目标不能与文件同名,
若目标是文件名,则拷贝的文件只能有一个,若目标是目录,
则拷贝的文件可以有多个,若目标文件不存在,则建立这个
文件,若存在,则覆盖其以前的内容,若目标是目录,则将文
件拷贝到这个目录下
[选项说明]
- i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
- p 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表,
但不拷贝 UID 及 GID
- r 若文件名为目录,则拷贝目录下所有文件及子目录和它们的
文件, 此时目标必须为目录
[例子]
cp file1 file2
将文件 file1 拷贝到文件 file2
cp file1 file2 /tmp
将文件 file1 和文件 file2 拷贝到目录 /tmp 下
cp -r /tmp /mytmp
将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp