340 likes | 457 Views
第 3 章 使 用文件. 内容概要. ◆ 使用 touch 创建空文件、 rm 删除文件 ◆ 使用 cp 、 mv 复制和移动文件 ◆ 使用 cat 、 pg 、 more 查看文本文件 ◆ 使用 wc 对文件统计 ◆ 使用 ln 为文件创建链接 ◆ 文件打印控制: qprt 、 qchk 、 qcan ◆ 使用 chmod 设置文件访问权限. 创建空文件. 命令格式:touch [ -t ] newfile1 newfile2. $ date
E N D
内容概要 ◆ 使用 touch创建空文件、rm删除文件 ◆ 使用 cp、mv复制和移动文件 ◆ 使用 cat、pg、more 查看文本文件 ◆ 使用 wc对文件统计 ◆ 使用 ln为文件创建链接 ◆ 文件打印控制:qprt 、qchk 、qcan ◆ 使用 chmod设置文件访问权限
创建空文件 命令格式:touch [ -t ] newfile1 newfile2 ... $ date Thu Apr 05 13:10:28 GMT+08:00 2011 $ touch newfile1 $ touch -t 1104010830 newfile2 $ ls -l newfile1 newfile2 -rw-r--r-- 1 user00 staff 0 Apr 05 13:10 newfile1 -rw-r--r-- 1 user00 staff 0 Apr 01 08:30 newfile2
删除文件 ◆ 使用rm 删除文件 格式: rm file1 file2 file3 ... $ rm file1 $ rm –i file2 $ rm –f file3 $ rm –r dir
复制文件 ◆使用cp 复制文件 格式: cp source target cp file1 file2 ... target_dir $ cp file1 file2 $ cp -r dir1 dir2 $ cp file3 dir3 $ cp -h lnsfile4 file5
复制文件 将文件/home/team03/pgms/suba拷贝到/home/team01/doc目录并将其命名为programa: $ pwd /home/team01/doc $ cp /home/team03/pgms/suba programa home home before after team01 team01 doc doc mon_report trio_ltr walrus mon_report programa trio_ltr walrus
复制文件 $ cd /home/team01 $ cp doc/programa test1 c home home team01 team01 .profile manuals test1 .profile manuals test1 c doc c doc programa test1 programa programa $ cd /home/team01/doc $ cp trio_ltr ../c home home team01 team01 c doc c doc trio_ltr trio_ltr trio_ltr
移动文件 ◆使用mv 移动文件 格式:mv source target mv file1 file2 ... target_dir $ pwd /home/team01/c $ mv trio_ltr t.letter home home team01 team01 c c trio_ltr t.letter
移动文件 $ pwd /home/team01/c $ mv t.letter ../doc/letter home home team01 team01 c doc doc c trio_ltr letter trio_ltr t.letter $ pwd /home/team01/c $ mv ../doc/mon_report . home home team01 team01 c c doc doc mon_report mon_report
cat查看文本文件 ◆使用cat 查看文本文件 cat file1 file2 ... $ cat walrus "The time has come," the Walrus said, "To talk of many things: Of shoes - and ships - and sealing wax - Of cabbages - and kings - And why the sea is boiling hot - And whether pigs have wings." From The Walrus And The Carpenter by Lewis Carroll (1871)
pg,more查看文本文件 ◆使用pg,more 查看文本文件 pg filename more filename $ pg walrus "The time has come," the Walrus said, "To talk of many things: Of shoes - and ships - and sealing wax - Of cabbages - and kings - And why the sea is boiling hot - And whether pigs have wings." : <Enter> $ more walrus "The time has come," the Walrus said, "To talk of many things: Of shoes - and ships - and sealing wax - Of cabbages - and kings - And why the sea is boiling hot - And whether pigs have wings." walrus (100%)<Enter> 每次显示一页
wc命令 ◆使用wc 计算文件或者命令输出结果的行,字以及字节数 格式: wc [-c] [-l] [-w] filename 选项: -c计算字节数 -l 计算行数 -w 计算字数 举例: $ wc myfile 17 126 1085 myfile 字节数 字数 行数
ln命令 ◆使用ln 创建硬链接或”软链接“ 格式:ln source_file target_file • 硬链接 • 即允许文件在目录中有一个以上的名字 • 所有这些文件都有相同的i-node • 不能用于目录,不能跨文件系统
ln命令 $ ls –li 63 -rw-r--r-- 2 team01 staff 1910 Nov 21 14:19 man_files $ ln man_files manuals $ ls -li 63 -rw-r--r-- 2 team01 staff 1910 Nov 21 14:19 man_files 63 -rw-r--r-- 2 team01 staff 1910 Nov 21 14:19 manuals $
ln命令 格式: ln -s source_file target_file • “软链接”or “符号链接” • 创建一个间接引用指向源文件(符号链接) • 链接文件引用原始文件的名字和路径 • 可以用于目录,可以跨文件系统
ln命令 $ ls –li 63 -rw-r--r-- 2 team01 staff 1910 Nov 21 14:19 man_files $ ln –s man_files manuals $ ls -li 63 -rw-r--r-- 1 team01 staff 1910 Nov 21 14:19 man_files 66 lrwxrwxrwx 1 team01 staff 1910 Nov 21 14:19 manuals -> man_files $
文件打印控制 • qprt - 打印文件,将文件放到打印队列 • qchk – 显示当前打印队列的状态 • qcan – 取消打印任务(指定任务号) $ qprt walrus $ qchk Queue Dev Status Job Files User PP% Blks Cp Rnk lp0 lp0 Running 99 walrus team01 1 1 1 1 $ qcan –x 99 $
文件访问权限 ls命令使用-l选项可以列出文件的详细信息 $ ls -l drwxrwxr-x 2 team01 staff 1024 Aug 12 10:16 c drwxrwxr-x 2 team01 staff 512 Feb 18 09:55 doc -rwxrwxr-x 1 team01 staff 320 Feb 22 07:30 suba -rwxrwxr-x 2 team01 staff 144 Feb 22 16:30 test1 权限位
文件访问权限 文件保护/权限 • 系统上的每个文件和目录都与权限相关联 • 三种权限类别: owner, group, 和 other • 每个类别用三位表示: read, write, execute (rwx)
文件访问权限 • 对于普通文件: • r => 可以查看文件内容 • w => 可以修改或者删除文件内容 • x => 可以执行文件(如果文件是脚本同时需要读权限) • 对于目录: • r => 可以列出目录中所有文件(ls) • w => 可以修改或者删除目录中的任何文件 • x => 可以cd进入该目录
文件访问权限 改变权限 (符号法) chmod mode filename u = 文件的拥有者 g = 拥有者所在组 o = 系统上的其他用户 a = 所有用户 + : 添加权限 - : 删除权限 = : 清除原有权限并设定为指定权限
文件访问权限 $ ls -l newfile -rw-r--r-- 1 team01 staff 58 Apr 21 16:06 newfile $ chmod go+w newfile $ ls -l newfile -rw-rw-rw- 1 team01 staff 58 Apr 21 16:06 newfile $ chmod a+x newfile $ ls -l newfile -rwxrwxrwx 1 team01 staff 58 Apr 21 16:06 newfile $ chmod o-rwx newfile $ ls -l newfile -rwxrwx--- 1 team01 staff 58 Apr 21 16:06 newfile
文件访问权限 改变权限 (八进制法) 拥有者 rwx 111 4+2+1 7 组用户 rw- 110 4+2+0 6 其他用户 r-- 100 4+0+0 4 符号 八进制 • 文件和目录的权限可以通过符号法或者八进制数来表示 • $ ls -l newfile • -rw-r--r-- 1 team01 staff 58 Apr 21 16:06 newfile • 改变权限,让拥有者和所在组有读写权限,其他用户只有读权限 • $ chmod 664 newfile • $ ls -l newfile • -rw-rw-r-- 1 team01 staff 65 Apr 22 17:06 newfile
文件访问权限 默认文件权限 新创建普通文件和目录的默认权限: 普通文件 -rw-r--r-- 644 目录drwxr-xr-x 755 通过改变umask的值来改变默认权限的设置。
文件访问权限 umask • umask在普通文件或目录被创建时,指定权限位设置。umask用八进制数表示,决定文件或目录创建时拥有哪些权限 • 新的目录: 777 - 022: 755 => rwxr-xr-x • 新的普通文件文件: 666 - 022: 644 => rw-r--r-- • 在配置文件/etc/security/user中umask默认值为022.它可以被所有用户或者某个特定用户所改变
文件访问权限 一些命令执行需要的权限 命令 源目录 源文件 目标目录 cd x N/A N/A ls r N/A N/A ls -l r, x N/A N/A mkdir x w (parent) N/A N/A rmdir x w (parent) N/A N/A cat, pg, more x r N/A mv x, w NONE x, w cp x r x, w touch x, w * NONE N/A rm x, w NONE N/A
课堂练习 • 以下命令运行会产生什么效果? $ cd /home/team01 $ cp file1 file2 • 以下命令运行会产生什么效果? $ cd /home/team01 $ mv file1 newfile • 以下命令运行会产生什么效果? $ cd /home/team01 $ ln newfile myfile • 列出可以查看文件内容的命令.
课堂练习 下面的问题是关于权限设置为rwxr-xr-x文件reporta的操作 用八进制法表示权限是什么? 用符号法将权限设置为rwx--r-- 用八进制法重新完成上面的操作 根据下面的信息完成问题4. 假设jobs目录包含joblog文件 $ ls -lR total 8 drwxr-xr-x 2 judy finance 512 June 5 11:08 jobs ./jobs: total 8 -rw-rw-r-- 1 judy finance 100 June 6 12:16 joblog 4. finance组的Fred能够修改文件joblog吗?
课堂练习 根据下面的信息回答问题。假设目录jobs包含目录work,同时目录work包含文件joblog $ ls -lR total 8 drwxrwxr-x 3 judy finance 512 June 5 11:08 jobs ./jobs: total 8 drwxrw-r-x 2 judy finance 512 June 5 11:10 work ./jobs/work: total 8 -rw-rw-r-- 1 judy finance 100 June 6 12:16 joblog • finance组的Fred能够修改文件joblog吗?
课堂练习答案 • 以下命令运行会产生什么效果? $ cd /home/team01 $ cp file1 file2 创建file1的拷贝,文件file2。file1和file2是相互独立的 • 以下命令运行会产生什么效果? $ cd /home/team01 $ mv file1 newfile 将file1重命名为newfile 3.以下命令运行会产生什么效果? $ cd /home/team01 $ ln newfile myfile 为newfile创建硬链接myfile 4.列出可以查看文件内容的命令. • cat,pg,more
课堂练习 根据下面的信息回答问题。假设目录jobs包含目录work,同时目录work包含文件joblog $ ls -lR total 8 drwxr-xr-x 3 judy finance 512 June 5 11:08 jobs ./jobs: total 8 drwxrwxrwx 2 judy finance 512 June 5 11:10 work ./jobs/work: total 8 -rw-rw-r-- 1 judy finance 100 June 6 12:16 joblog • finance组的成员Fred可以将joblog拷贝到自己的宿主目录吗?
课堂练习答案 下面的问题是关于权限设置为rwxr-xr-x文件reporta的操作 用八进制法表示权限是什么? 755 2.用符号法将权限设置为rwx--r-- chmod go-x reporta 3.用八进制法重新完成上面的操作 chmod 744 reporta 根据下面的信息完成问题4. 假设jobs目录包含joblog文件 $ ls -lR total 8 drwxr-xr-x 2 judy finance 512 June 5 11:08 jobs ./jobs: total 8 -rw-rw-r-- 1 judy finance 100 June 6 12:16 joblog 4. finance组的Fred能够修改文件joblog吗? 可以修改
课堂练习答案 根据下面的信息回答问题。假设目录jobs包含目录work,同时目录work包含文件joblog $ ls -lR total 8 drwxrwxr-x 3 judy finance 512 June 5 11:08 jobs ./jobs: total 8 drwxrw-r-x 2 judy finance 512 June 5 11:10 work ./jobs/work: total 8 -rw-rw-r-- 1 judy finance 100 June 6 12:16 joblog • finance组的Fred能够修改文件joblog吗? • 不能,因为在Fred没有对work目录执行权
课堂练习答案 根据下面的信息回答问题。假设目录jobs包含目录work,同时目录work包含文件joblog $ ls -lR total 8 drwxr-xr-x 3 judy finance 512 June 5 11:08 jobs ./jobs: total 8 drwxrwxrwx 2 judy finance 512 June 5 11:10 work ./jobs/work: total 8 -rw-rw-r-- 1 judy finance 100 June 6 12:16 joblog • finance组的成员Fred可以将joblog拷贝到自己的宿主目录吗? • 可以