linux中对查看目录和文件操作的一些命令
什么是目录,什么是文件??
目录
linux系统中的目录,就相当于windows中的文件夹,这样理解会比较简单点。
什么是文件??
文件
linux系统中的文件,它并不像windows中的文件一样,它不是以文件后缀来区分文件类型的,但是在linux中是存在的文件后缀的,如.sh表示是一个shell文件,以点开头文件可以表示隐藏文件,这些都是方便管理者去管理。
什么是当前目录??
当前目工作目录
每个shell和系统进程都有一个当前的工作目录CWD:current work directory
如何显示当前shell的绝对路径呢呢?用pwd命令。英文printing working directory
但又有一个新问题什么事绝对路径呢?
绝对路径:是以根开始的,表现为斜杠开始,它是一条完整的位置路径,可用于任何想指定的一个文件
相对路径:不是以根开始,指定与相对当前工作目录或是某个位置,可以作为一个简短的形式的文件指定
如何进入其他目录呢??
cd 改变目录
cd 绝对路径、相对路径
cd 不跟任何参数,默认是切换到用户的家目录,root用户的家目录是/root,
而普通用户的家目录是/home/用户名
cd 切换至以前的目录(上一次的目录)如果反复的使用cd- 会在当前目录和 上次目录之间来回的切换
其实是变量PWD 保存了当前的目录路径
变量OLDPWD保存了当一次目录的路径
如何列出目录下的文件和目录呢??
用ls和相关选项
ls 命令[option] [文件 或是 目录]
ls -a 列出所有文件包括隐藏文件
ls -l 显示额外的信息(列出目录下的目录和文件的详细信息)
ls -R 目录的递归通过(列出目录下文件的同时列出了子目录信息,目录的递归就是一层一层的自动查询)
ls -ld 目录和符号链接信息
ls -1(是数字1不是l)文件分行显示
ls -S按从大到小排序
ls -u配合-t选项,显示并按atime从新到旧排序
ls -U不排序按目录存放顺序显示
ls -d 不显子目录信息
ls -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
接字(sockets)。
ls -r 对目录反向排序。
如何快速查找没有记住全部文件名的目录或文件呢?
用通配符
*匹配零个或多个字符
?匹配任何单字符
~当前用户家目录
~username
~+当前工作目录
~—前一个工作目录
[0--9]匹配一个数字范围
[a-z] 大写和小写字母
[A-Z]大写或是小写
注意:如果涉及到目录用cd命令来测试cd ~username ~+当前一个工作
目录 ~-表示上一个工作目录
[wxc] 匹配列表中的任何的一个字符;(注意[]是wxc这三个字母中的任何 一个都可以)
[^wxc]匹配列表中的所有 字符以外的字符
预定义的字符类#man 7 glob
[:digit:] 任意数字。相当于0-9
[:lower:} 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:space:] 空格
[:punct:] 标点符号
[[:alnum:] 任意字数或字母]
练习题:
1.显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
2.显示/etc目录下以任意一个数字开头,后面跟了一个非数字结尾的文件或目录
3.显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意总府的文件或目录
4.显示/etc目录下所有以m开头以非数字结尾的文件或目录
5.显示/etc/目录下所有以 .d 结尾的文件或目录
6.显示/etc目录下所有以 .conf结尾,且以m ,n ,r,p开头的文件或是目录
2.课后作业
1.列出/tmp 下的隐藏文件
2.只列出/etc 下的目录