一、Linux上的文件管理类命令

命令:ls命令用来显示目标列表 参数: -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 -r 将文件以相反次序显示(原定依英文字母次序) -t 将文件依建立时间之先后次序列出 -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录) -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/" -R 若目录下有文件,则以下之文件亦皆依序列出

演示: 列出目前工作目录下所有名越新的排越后面 : ls -ltr

将目录以下所有目录及文件详细资料列出 : ls -lR /etc/

列出目前工作目录下所有文件及目录;目录于名称后加 "/", 可执行档于名称后加 "*" : ls -AF

命令:cat令用于连接文件并打印到标准输出设备上。 参数: -n 或 --number:由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。 -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。 -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。 -E 或 --show-ends : 在每行结束处显示 $。 -T 或 --show-tabs: 将 TAB 字符显示为 ^I。 -A, --show-all:等价于 -vET。 -e:等价于"-vE"选项; -t:等价于"-vT"选项

演示: textfile1 的文档内容加上行号后 cat -n textfile1

textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里: cat -b textfile1 textfile2 >> textfile3

清空 test.txt 文档内容: cat /dev/null > /test.txt

命令:head 用来显示档案的开头至标准输出中。 参数: -c, --bytes=[-]K 显示每个文件的前K 字节内容;如果附加"-"参数,则除了每个文件的最后K字节数据外 显示剩余全部内容 -n, --lines=[-]K 显示每个文件的前K 行内容;如果附加"-"参数,则除了每个文件的最后K行外 显示剩余全部内容 -q, --quiet, 不显示包含给定文件名的文件头 -v, --verbose 总是显示包含给定文件名的文件头

演示: 显示文件的前n行 head -n 5 test.txt

输出文件除了最后n行的全部内容 head -n -5 test.txt

显示多个文件 head test.txt test1.txt

命令tail 可用于查看文件的内容

参数: -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示行数

演示:

要显示文件的最后 10 行 tail test.txt

要跟踪的文件的增长情况,显示一直继续,直到您按下(Ctrl-C)组合键停止显示。 tail -f test.txt

显示文件 test.txt 的最后 10 个字符: tail -c 10 test.txt

more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示 。

参数: -num 一次显示的行数 -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声 -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能 -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料 -s 当遇到有连续两行以上的空白行,就代换为一行的空白行 -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同) +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示 +num 从第 num 行开始显示 fileNames 欲显示内容的文档,可为复数个数

实例 连续两行以上空白行则以一行空白行显示。 more -s test.txt

第 20 行开始显示之文档内容。 more +20 test.txt

常用操作命令 Enter 向下n行,需要定义。默认为1行 Ctrl+F 向下滚动一屏 空格键 向下滚动一屏 Ctrl+B 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 V 调用vi编辑器 !命令 调用Shell,并执行命令 q 退出more

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

参数:

-b <缓冲区大小> 设置缓冲区的大小 -e 当文件显示结束后,自动离开 -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -g 只标志最后搜索的关键词 -i 忽略搜索时的大小写 -m 显示类似more命令的百分比 -N 显示每行的行号 -o <文件名> 将less 输出的内容在指定文件中保存起来 -Q 不使用警告音 -s 显示连续空行为一行 -S 行过长时间将超出部分舍弃 -x <数字> 将"tab"键显示为规定的数字空格 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b 向后翻一页 d 向后翻半页 h 显示帮助界面 Q 退出less 命令 u 向前滚动半页 y 向前滚动一行 空格键 滚动一页 回车键 滚动一行 [pagedown]: 向下翻动一页 [pageup]: 向上翻动一页

演示: 查看文件 less test.txt

ps查看进程信息并通过less分页显示 ps -ef |less

浏览多个文件

less test.txt test1.txt 说明: 输入 :n后,切换到 test1.txt 输入 :p 后,切换到test.txt

1.全屏导航 ctrl + F - 向前移动一屏 ctrl + B - 向后移动一屏 ctrl + D - 向前移动半屏 ctrl + U - 向后移动半屏 2.单行导航

j - 向前移动一行 k - 向后移动一行 3.其它导航

G - 移动到最后一行 g - 移动到第一行 q / ZZ - 退出 less 命令

命令tac 从最后一行倒序显示内容,并将所有内容输出

命令cp主要用于复制文件或目录。

参数说明:

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。 -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。 -f:覆盖已经存在的目标文件而不给出提示。 -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。 -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。 -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 -l:不复制文件,只是生成链接文件。

演示: 将当前目录"test/"下的所有文件复制到新目录"newtest"下 cp –r test/ newtest

命令mv 用来为文件或目录改名、或将文件或目录移入其它位置。

参数 -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件; -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;

命令格式 运行结果 mv 文件名 文件名 将源文件名改为目标文件名 mv 文件名 目录名 将文件移动到目标目录 mv 目录名 目录名 目标目录已存在,将源目录 移动到目标目录;目标 目录不存在则改名 mv 目录名 文件名 出错

演示: 将文件test 更名为 test1 : mv test test1

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。 mv info/ logs

将/usr/student下的所有文件和目录移到当前目录下,命令行为: mv /usr/student/* .

命令rm 用于删除一个文件或者目录。

参数: -i 删除前逐一询问确认。 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。

演示: 删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:

rm test.txt rm:是否删除 一般文件 "test.txt"? y
rm homework
rm: 无法删除目录"homework": 是一个目录
rm -r homework
rm:是否删除 目录 "homework"? y

删除当前目录下的所有文件及目录 rm -r *

命令touch 用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

参数 a 改变档案的读取时间记录。 m 改变档案的修改时间记录。 c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。 f 不使用,是为了与其他 unix 系统的相容性而保留。 r 使用参考档的时间记录,与 --file 的效果一样。 d 设定时间与日期,可以使用各种不同的格式。 t 设定档案的时间记录,格式与 date 指令相同。

演示: 修改文件的时间属性为当前系统时间 touch test #修改文件的时间属性

使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。 touch file #创建一个名为“file”的新的空白文件

命令stat 用于显示inode内容。

演示: 查看 testfile 文件的inode内容内容 stat testfile

命令file 用于辨识文件类型。 参数:

-b  列出辨识结果时,不显示文件名称。 -c  详细显示指令执行过程,便于排错或分析程序执行的情形。 -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。 -L  直接显示符号连接所指向的文件的类别。 -m<魔法数字文件>  指定魔法数字文件。 -v  显示版本信息。 -z  尝试去解读压缩文件的内容。

演示: 显示文件类型: file test test: ASCII text

** 二、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z**

mkdir -pv /tmp/{a1/{a,b},a2} mkdir -pv /tmp/{x,q}_{y,z}

三、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

文件的数据分两种:一种元数据,既属性数据;一种就是数据本身;可使用stat命令查看文件的元数据:

stat /test.txt

其中:

file:文件名;

size:文件大小

block:文件占了多少个数据块

IO Block:文件所占数据块的块大小

Device:硬件,既说明该文件在硬盘的那个柱面

Inode:节点号

links:链接

Access(第一个):权限

Uid:该文件所属的属主

Gid:该文件所属的属组

context:安全上下文

Access(第二个):文件上一次的访问时间

Modify:文件上一次修改的时间

Change:文件上一次属性更改的时间

2)修改文件的时间戳信息:

可以使用touch命令更改文件的时间戳:

touch [OPTION]… FILE…

常用选项:

-c: 指定的文件路径不存在时不予创建;

-a: 仅修改access time;

-m:仅修改modify time;

-t:使用指定的日期时间,而非现在的时间;[[CC]YY]MMDDhhmm[.ss];

四、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。 touch tfile-$(date +%F-%H-%M-%S)

五、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中

mkdir -pv /tmp/mytest1 cp -R /etc/p*[^[:digit:]] /tmp/mytest1 cp -R /etc/p*[^0-9] /tmp/mytest1

六创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack groupadd tom groupadd jack useradd -u 5001 -d /tmp/tom -s /bin/zsh -g tom -G jack tom