《Linux 应用基础教程--CH03_字符界面操作进阶》由会员分享,可在线阅读,更多相关《Linux 应用基础教程--CH03_字符界面操作进阶(147页珍藏版)》请在金锄头文库上搜索。
1、本章内容要点,文件和目录操作命令 信息显示命令 正则表达式和文本文件操作命令 Vim文本编辑器 命令补全、命令别名、命令历史 重定向、管道、命令替换、命令聚合 Shell变量 和 Shell环境 时钟、时区和语言,2018年11月7日,1,Creative Commons License(BY-NC-SA),本章学习目标,掌握各种常用命令的使用 学会使用正则表达式 学会使用VIM文本编辑器 学会使用命令补全、命令别名、命令历史 掌握重定向、管道、命令替换、命令聚合 掌握Shell变量的定义、作用域和使用 学会配置用户工作环境,2018年11月7日,2,Creative Commons Lice
2、nse(BY-NC-SA),文件和目录操作命令,2018年11月7日,3,Creative Commons License(BY-NC-SA),常用的目录操作命令,2018年11月7日,Creative Commons License(BY-NC-SA),4,当前工作目录,用户目前所处的目录 用户登录后进入的目录通常是自己的主目录 可用 pwd 命令查看用户的当前目录 可用 cd 命令来切换目录 一些特殊字符的特殊含义: “ .” 表示当前目录 “” 表示当前目录的上一级目录(父目录) “-” 表示用 cd 命令切换目录前所在的目录 “” 表示用户主目录的绝对路径名,2018年11月7日,Cr
3、eative Commons License(BY-NC-SA),5,路径 (path),路径是指文件或目录在文件系统中所处的位置 绝对路径 以斜线(/)开头 描述到文件位置的完整说明 任何时候你想指定文件名的时候都可以使用 相对路径 不以斜线(/)开头 指定相对于你的当前工作目录而言的位置 可以被用作指定文件名的简捷方式,2018年11月7日,Creative Commons License(BY-NC-SA),6,ls命令,功能:显示文件或目录信息 格式: ls 选项 目录或是文件 说明: 对于目录,该命令将列出其中的所有子目录与文件。 对于文件,ls 将输出其文件名以及所要求的其他信息。
4、 默认情况下,输出条目按字母顺序排序。 当未给出目录名或文件名时,就显示当前目录的信息。,2018年11月7日,Creative Commons License(BY-NC-SA),7,ls命令选项,2018年11月7日,Creative Commons License(BY-NC-SA),8,ls命令举例,2018年11月7日,Creative Commons License(BY-NC-SA),9,mkdir和tree命令举例,mkdir mkdir /home/lrj/mybin #创建一个空目录 mkdir -p mydoc/FAQ #创建一个空目录树 mkdir -p /srv/ww
5、w/abc,bcd/htdocs #创建/srv/www/abc/htdocs和/srv/www/bcd/htdocs目录 tree tree /srv/www # 显示/srv/www 目录树 tree -L 3 /srv #显示 /srv/ 的 3级目录树,2018年11月7日,Creative Commons License(BY-NC-SA),10,pwd和cd命令举例,$ pwd $ cd $ cd /some/dir/ $ cd $ cd $ cd / $ cd -,2018年11月7日,Creative Commons License(BY-NC-SA),11,常用的文件操作命令
6、,2018年11月7日,Creative Commons License(BY-NC-SA),12,touch命令,功能:生成新的空文件或更改现有文件的时间 若文件不存在,系统会建立一个文件 默认情况下将文件的时间记录改为当前时间 格式:touch 参数 参数 -a : 只更改访问时间。 -m : 只更改修改时间。 -t : 使用CCYYMMDDhhmm.ss格式的时间而非当前时间。 -r : 使用指定文件的时间属性而非当前时间。,2018年11月7日,Creative Commons License(BY-NC-SA),13,touch命令举例,$ touch newfile $ touch
7、 file $ touch -a file $ touch -m file $ touch -t 200701311200 file $ touch -r oldfile newfile,2018年11月7日,Creative Commons License(BY-NC-SA),14,文件的时间戳,GNU/Linux 文件的3种类型的时间戳: mtime: 最后修改时间 (ls -lt) ctime: 状态改变时间 (ls -lc) atime: 最后访问时间 (ls -lu) 说明 ctime并非文件创建时间。 覆盖一个文件会改变mtime、ctime和atime三类时间。 改变文件的访问权
8、限或拥有者会改变文件的ctime和atime。 读文件会改变文件的atime。,2018年11月7日,Creative Commons License(BY-NC-SA),15,判断文件类型,文件可以包含许多类型的数据 在打开前检查文件的类型来决定要使用的恰当命令或程序 命令 file 选项 stat 选项 举例 file /etc/passwd /bin/bash /dev/console stat /etc/passwd,2018年11月7日,Creative Commons License(BY-NC-SA),16,cp命令,功能:复制文件或目录。 格式:cp 参数 说明 若复制的目标文
9、件已存在,则被覆盖。 可以将多个源文件复制到目标目录中。 可以将源目录复制为指定的目标目录(目标目录不存在)。 可以将源目录复制到指定的目标目录中。,2018年11月7日,Creative Commons License(BY-NC-SA),17,cp命令的常用选项,2018年11月7日,Creative Commons License(BY-NC-SA),18,cp命令举例,2018年11月7日,Creative Commons License(BY-NC-SA),19,ln命令,功能:创建链接文件。 格式:ln 参数 参数: -s : 创建符号链接,而非硬链接。 -f : 强行创建链接,不
10、论其是否存在。 -i : 覆盖原有文件之前先询问用户。 举例: $ ln somefile hardlinkfile $ ln -s somefile softlinkfile $ ln -s somedir softlinkfile,2018年11月7日,Creative Commons License(BY-NC-SA),20,mv和rm命令举例,mv mv file file.bak mv file1 mydata/ mv -i file1 mydata/file2 mv datadir1 /home/zhang/data rm rm ash rm .* rm -f file1,3,5
11、rm -r myusr/ rm -rf myusr/,2018年11月7日,Creative Commons License(BY-NC-SA),21,find命令,功能:在文件系统中查找匹配的文件 格式 find . 说明 :对每个指定的 递归搜索目录树 省略时表示当前目录 :控制 find 命令的行为 :根据匹配条件查找文件 :指定对查找结果的操作,默认为显示在标准输出(-print) 不带任何参数的 find 命令将在屏幕上递归显示当前目录下的文件列表。,2018年11月7日,Creative Commons License(BY-NC-SA),22,find 命令选项表达式,2018年
12、11月7日,Creative Commons License(BY-NC-SA),23,find命令举例(1),递归显示当前目录的文件列表 $ find 递归显示 / 目录的文件列表 $ find / 递归显示 / 目录的文件列表(仅限于3层目录) $ find / -maxdepth 3 递归显示 / 目录的文件列表(仅限于 / 文件系统) $ find / -xdev 递归显示 /home、/www、/srv 目录的文件列表 $ find /home /www /srv,2018年11月7日,Creative Commons License(BY-NC-SA),24,find 命令 条件表
13、达式(1)文件名,2018年11月7日,Creative Commons License(BY-NC-SA),25,PATTERN 使用 Shell 的匹配模式 可以使用 Shell 的通配符(*、?) 要用“”或括起来,find命令举例(2),$ find -name myfile $ find -maxdepth 2 -name symfony $ find -name d* $ find -name ? $ find -name ch0-20-9.txt* $ find -iname a-z* $ find -name “*.txt“ $ find . -name “A-Z*“ $ fi
14、nd /etc -name “host*“,2018年11月7日,Creative Commons License(BY-NC-SA),26,find 命令 条件表达式(2)文件名续,2018年11月7日,Creative Commons License(BY-NC-SA),27,REPATTERN 使用正则表达式匹配模式 使用 -regextype TYPE 指定的正则表达式类型 默认为 emacs 类型,find命令举例(3),$ find -regex .* $ find /book -regex .*ch0.* $ find /book -regex .*ch0-9+ $ find /
15、book -iregex .*ch0-9+.txt,2018年11月7日,Creative Commons License(BY-NC-SA),28,find 命令 条件表达式(3)时间属性,2018年11月7日,Creative Commons License(BY-NC-SA),29,find命令举例(4),在/home下查找最近2天之内改动过的文件 $ find /home -mtime -2 在/home下查找最近2天之内被访问过的文件 $ find /home -atime -2 在/home下查找60分钟之前改动过的文件 $ find /home -mmin +60 在/home下
16、查找最近5分钟之内修改过的文件 $ find /home -mmin -5 在/home下查找30分钟之前被访问过的文件 $ find /home -amin +30 在/home下查找最近在2日内被改动之后被访问过的文件 $ find /home -used -2,2018年11月7日,Creative Commons License(BY-NC-SA),30,find 命令 条件表达式(4)时间属性续,2018年11月7日,Creative Commons License(BY-NC-SA),31,FILE 为要比对的样板文件或目录,find命令举例(5),在/home下查找更新时间比tmp.txt新的文件或目录 $ find /home -newer tmp.txt 在/home下查找存取时间比tmp.txt新的文件或目录 $ find /home