Linux 操作 系统 目录和 文件
周炯 上海艾基信 息技术有限 公司
Acegene IT Co. Ltd.
1
Linux—— 文件与 目录操作 • 1 操作文件与子目录 • 2 搜索文件 • 3 压缩与解压缩文件
Acegene IT Co. Ltd.
2
1 操作文 件与子目 录 • 使用 Linux 操作系统在硬盘驱动器上对文件和子 目录进行拷贝、删除或者移动,以便更好地组织 信息。 – – – – – – – –
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
touch 命令 rm 命令 mkdir 命令 rmdir 命令 mv 命令 cp 命令 ln 命令 Midnight Command (MC) Acegene IT Co. Ltd.
3
1.2 rm 命令 • 使用 rm 命令删除文件 – # rm -fr /*
• rm 命令可以从命令行上一次删除一个或者 几个文件。 – # rm file1 file2 file3 – # rm -i new* – # rm -f new*
Acegene IT Co. Ltd.
4
1.1 touch • 使用 touch 命令建立文件 – 建立文件 – 更新文件的修改日期
• 建立文件的命令: # > newfile2 # ls -l new* # touch newfile2 # ls -l newfile2 # touch -t 1225130000 newfile2
• touch 命令可以在 行 份操作的 程中更新 些文件的 时间记录,这样备份程序在进行下一次备份工作的时候就 有了一个可供参考的时间
Acegene IT Co. Ltd.
5
1.3 mkdir 命令 • mkdir 命令一次可以建立一个或者几个子目录。 • mkdir -p 命令还可以只使用一个命令行一次就建 立起包括全部的父目录和子目录在内的一个完整 的子目录继承结构。 – – – –
# # # #
mkdir temp mkdir temp2 temp3 temp4 mkdir temp/child mkdir -p temp5/parent/child
» # tree temp5 Acegene IT Co. Ltd.
6
1.4 rmdir 命令 • rmdir 命令是用来删除子目录的 – # rmdir tempdirectory
• 但是要注意:这个子目录必须是空的。 – – – –
# # # #
rmdir -p temp5 rmdir -p temp5/parent/child mkdir -p temp5/parent/child2 rmdir -p temp5/parent/*
Acegene IT Co. Ltd.
7
1.5 mv 命令 • 使用 mv 命令给文件改名或者用来在文件 系统内移动文件或者子目录。 –# –# –# –#
touch file1 mv file1 file2 mkdir -p temp/temp2/temp3 mv temp newtemp
• mv 命令有很多参数,但是我们只讨论其中 最常用的两个, -b( 备份 ) 和 -i( 交互操作 )
Acegene IT Co. Ltd.
8
1.5 mv 命令 • #touch uno deux tree • #mv uno deux • #mv –b uno deux • #mv –i uno deux
Acegene IT Co. Ltd.
9
1.6 cp 命令 • cp 命令,即拷贝命令,是用来对文件或者子目录进行拷 贝操作的。这个命令有将近 40 个命令行参数。 – # cp file1 file2 – # cat > file1
• this is file1 – # cat > file2
• this is file2 – # cat > file3
• this is the third file – – – –
# ls -l file*ls # cp -i file1 file2 #cp tempdir1/* tempdir2 #cp -r tempdir1 tempdir2
• 最后, cp 命令还有一个 -p 参数,它的作用类似于 mkdir 命令中的 -p 参数。 Acegene IT Co. Ltd.
10
1.7 ln 命令 : 建立硬 链接和符 号链接 • ln 命令:可以建立 链接在一起。
形式的
接并把文件与其他的文件
– 硬链接 : 直接链接两个同时保存在相同的文件系统上的文件。 • 删除了文件 file1 ,文件 file2 依然存在。修改了文件 file1 ,修改都 会反映到文件 file2 中;修改了文件 file2 ,文件 file1 也会随之更新 。 • 虽然有两个文件,但是在硬盘驱动器上只有原始文件占用的空间。
– 符号链接 ln -s : 用来在扩展到不同的文件系统上的子目录或者 文件之间建立链接。 • 符号链接和硬链接的区别是符号链接只不过是指向原始文件的一个 alias (假名)而已。 • 如果删除了符号链接,原始文件不会发生任何变化。而一旦删除了原 始文件,符号链接也会依然存在。 #cat > file1 This is file1. #ln file1 file2 #ls -l file* #cat file2 Acegene IT Co. Ltd.
11
1.8 Midnight Commander • mc 程序的全称是 Midnight Commander 它是一个对文件进行管理的图形化界面。 相当于一个可视化的 shell 。如果想运行 mc 命令,请在命令行上键入下面的内容: # mc
• 它的一些主要特点: • 提供了同时对两个子目录的可视化接口 • 允许使用鼠标操作对子目录中的文件进行 浏览
Acegene IT Co. Ltd.
12
2 搜索文 件 • 介绍复杂的通配符、即规则表达式的使用 方法以及一些使用 grep 类的程序进行文件 搜索的小例子。 – 规则表达式 – grep: 在文件内进行搜索
Acegene IT Co. Ltd.
13
2.1 什么 是规则表达 式 • 规则表达式又称为正则表达式 • 规则表达式:是使用特殊的语法对字符串 ( 除非是在对文件名进行搜索,字符串一般 都在文件的文本之中 ) 进行匹配的字符串格 式。 • 详细资料可以通过 man ed 获取
Acegene IT Co. Ltd.
14
2.1 常用 规则表达式 表达式 匹配 * 任意字符 ? 或者 . 一个字符 {x} 前导字符 x 个 {x,y} 前导字符至少 x 个,但是不超过 y 个 {x,} 前导字符至少 x 个 (xxx)||(XXX) 字符串 xxx 或者 XXX [xxx] 或者 [x-x] 在方括号中的字符范围内中的某 个字符 [XYZ]+ X 、 Y\Z 至少一次 \x ? 或 \ 等特殊符号字符 ^pattern 一行开头的字符排列形式 $pattern 一行结尾的字符排列形式 Acegene IT Co. Ltd.
15
2.1 常用 规则表达式 • #ls *.txt • #ls *1* *2* *3* *4* *5* *6* *7* *8* *9* (注 意:有重复) • #ls *[0123456789]* • #ls *[0-9]* ( #ls *[0-9] 、 #ls [0-9]* ) • #ls *[a-z]*[0-9]* • #ls *\?*
Acegene IT Co. Ltd.
16
2.2 grep: 在文件内进 行搜索 • grep 命令家族包括: grep 、 egrep 、和 fgrep 等命令。 • 需要使用这几个命令可以在文件中进行查 找并抽出文本。这几中个程序命令的每一 个都会查找文件的每一行。可以搜索一个 文件或者一组文件。 • #(e)grep ^[0-9] guide.txt • #fgrep friends guide.txt
Acegene IT Co. Ltd.
17
2.2 grep: 在文件内进 行搜索 • 使用 egrep 命令在文件中查找所有包含字符串 (b) 的行 : – #egrep "\([b]\)" guide.txt
• (see section 1 for a list of compatible boards ), or (b) there is an • connect to the network , or (b) you have a " dynamic " IP address, – # grep "\([b]\)" guide.txt
• This is version 2.2.2 of the book , " Linux Installation and Getting to PostScript printers . • This document was generated by a set of This is not the " o fficial " version of the book ! Please see – #grep "(b)" guide.txt Acegene IT Co. Ltd.
18
2.2 grep: 在文件内进 行搜索 • 每个 grep 命令程序都能够接受几乎相同的 命令行参数。其中常用的一个是 -n ,即显 示行号参数。 – #egrep -n "friend" guide.txt 1242 : large extent by the window manager . This friendly program is 1942 : copy Linux from a friend who may already have the software , or 5161 : ( Unfortunately , the system was being unfriendly .)
Acegene IT Co. Ltd.
19
2.2 grep: 在文件内进 行搜索 • -f 参数 • #cat > mykeywords beautiful mind dvd • #grep –nf mykeywords guide.txt • 可以使用 grep 命令的 -F 参数使它能 模仿 fgrep 命令的执行情况; • 或者使用 -E 参数模仿 egrep 命令的执行情况。 • 还可以在系统上找到一个独特的 grep 命令家族 成员, zgrep 命令,可以使用它来搜索压缩文件 , Acegene IT Co. Ltd.
20
3 压缩与 解压缩文 件 介绍对文件进行归档和压缩操作的基本知识 • 3.1 用 tar 磁带文件归档命令建立档案文 件 • 3.2 建立 cpio 档案文件 • 3.3 使用 gzip 命令压缩文件 • 3.4 使用 compress 命令压缩文件
Acegene IT Co. Ltd.
21
3.1 tar: 建立档 案文件 • tar (tape archive) 磁带文件归档命令程 序出现在还没有软盘驱动器、硬盘和光盘 驱动器的计算机早期阶段。 • 使用 tar 命令可以生成一个包含有多个子目 录和多个文件的档案文件。 • 在系统上安装的 tar 命令版本还支持一个 z 参数,这样就可以使用 gzip 程序来压缩 文档。
Acegene IT Co. Ltd.
22
3.1 tar: 建立档 案文件 • #mkdir mydir • #cd mydir • #touch file1 file2 file3 • #mkdir mydir2 • #touch file21 file22 file23 • #cd ../.. • #tree mydir
Acegene IT Co. Ltd.
23
3.1 tar: 建立档 案文件 • tar 命令参数 : – – – – – –
c( 生成 ) f( 文件 ) v(verbose) w( 提问 ) t( 测试 ) x( 展开 ) # tar c(v)f mydir.tar mydir
• 需要注意的是,如果参数的顺序放错了, tar 命 令会显示出错信息并退出 – # tar x(v)f(w) mydir.tar mydir – # tar zc(v)f mydir.tar.gz mydir
• 如果只想从档案文件中释放某一个文件,可以在 命令行中指定这个文件。 – # tar xf mydir.tar mydir/mydir2/file23 Acegene IT Co. Ltd.
24
5.3.2 建立 cpio 档案文 件 • cpio 命令可以从 tar 或者 cpio 档案文件中 拷入或者拷出文件。 cpio 命令和 tar 命令 兼容。这个命令具备一些 tar 命令没有的功 能 • 如下所示: – 支持 cpio 和 tar 两种档案文件格式 – 支持许多老式磁带数据格式 – 能够通过一个管道读取文件的文件名 cpio -idvm < *.cpio
Acegene IT Co. Ltd.
25
3.3 使用 gzip 命令压 缩文件 • gzip 命令是用来压缩文件的。这个程序不 仅可以用来压缩大的较少使用的文件以节 省磁盘空间, • 还可以和 tar 命令一起构成可能是 Linux 操作系统中最流行的压缩文件格式。 • 在因特网上寻找新的 Linux 软件时,经常 会遇到 .tgz 或 .tar.gz 格式的文件。 • gzip 命令对文本文件有 60% ~ 70% 的压 缩率。 Acegene IT Co. Ltd.
26
3.3 使用 gzip 命令压 缩文件 – #gzip mydir.tar
• 缺省的状态下, gzip 命令会压缩文件、再加上一 个 .gz 扩展名、然后删除掉原来的文件 • gzip 命令的对应程序命令 gunzip 或者 gzip • 必须保证这个用于解压缩的文件有 .gz( 或者 . Z、 -gz 、 .z 、 -z 、或者 _z) 扩展名,否则 gzip 命 令和 gunzip 命令都会显示出错信息。 • 如果想使用自己的扩展名,可以使用 -S 后缀参数 ,如下所示: – #gzip -S .gzipped mydir.tar Acegene IT Co. Ltd.
27
3.3 使用 gzip 命令压 缩文件 • gzip 命令还可以处理用 zip 命令、 compress 命令和 pack 命令压缩的文件包。 如果想在压缩或者解压缩的过程中看到更 多的信息, – 可以使用 -l 列清单参数看到文件在被压缩或解 压缩的时候的文件长度 – #gzip -l mydir.tar.gz
• gzip 命令还有一个很有用的参数 -t ,可以 用来测试压缩的完整性,如果文件正常, gzip 命令不会给出任何显示文件。 – 如果想看到 OK 这两个字母,可以在测试某个 文件时使用 -tv 。 Acegene IT Co. Ltd.
28
3.4 使用 compress 命令压缩 文件 • compress 命令就象它的文件名那样,就是用来 压缩文件的。这是 UNIX 世界中出现得比较早的 一个压缩程序。 • 使用 compress 命令生成的文件传统上都有一个 .Z 扩展名。如果想压缩某个文件,请输入下面的 内容: – # compress file
• 如果想解压缩某个文件,请输入下面的内容: – # uncompress file.Z
• 像使用 gzip 命令的时候一样,必须给出一个带有 .Z ,扩展名的文件名否则 compress 命令显示出 错信息。 Acegene IT Co. Ltd.
29
其他的 压缩命令 • bzip2 、 zip 、 unzip 、 zipcloak 、 zipnote 、 zipsplit 、 zless 、 zcat 、 znew 、 zmore 、 zc mp 、 pack 、 compact 、 shar 、 unsh ar 或者 zforce 程序命令。 • 其他相关命令: uudecode, uuencode, strings
Acegene IT Co. Ltd.
30
其他命 令 • du, df 文件系统使用空间 • sync, ps, top, uname, 进程管理 • who, su 用户身份
Acegene IT Co. Ltd.
31
Q& A
QUESTIONS ANSWERS
练习 • 文件和目录 – – – – – – –
查看目录内容 ls ll dir 建立目录 mkdir 新建文件 touch 复制文件 cp 移动文件 mv 删除文件和目录 rm rmdir 浏览文件 grep
• 压缩文件 – – – –
tar 磁带文件归档命令建立档案文件 cpio 命档案文件 gzip 令压缩文件 Compress
• 建立 接 – ln -s /sbin/fuser /bin/fuser Acegene IT Co. Ltd.
33