特殊的目录标识
在linux中不仅包含相对目录和绝对目录,还有一些其他的特殊目录标识,比如:
- 代表上一个工作目录
~ 代表当前用户家目录
~ 用户名 表示指定用户的家目录
[
. 表示当前目录
.. 表示上一级目录
]
这里需要区分的是 - 和 .. 的区别:
-表示的是上一个目录,而 .. 表示的上一级目录.
举个例子:
如果你之前在 /home/panda/这个目录下,现在你进入了/home/cat目录.
- 就代表着/home/panda 这个目录,这是你上一个工作的目录.
但是 .. 代表着/home这个目录,这是你当前工作目录的上一级目录.
注意:所有的目录下面都存在 .(当前目录)和..(上一级目录)这两个,目录,包括根节点 / ,只不过在根节点下 . 和 .. 都表示当前目录.
目录处理的常用指令
通常来说,我们对目录的操作无外乎增(创建),删(删除目录),改(变更目录),查(进入,查看目录).
下面我们就了解一下这几个功能需要使用的命令:
1.查看目录(进入目录)
在传统意义上的查看目录应该是查看目录的信息,比如我们之前说过的ls -al命令,就可以查看该目录的信息.
查看目录还可以理解为查看当前目录的位置.如果我们需要查看当前目录的位置的话,我们可以使用命令:pwd
pwd:该命令的作用是显示当前所在的目录.
pwd(print Working Directory),意思是显示出当前工作目录.
如图所示:
![]()
我当前处于在/usr/local/mysql目录下,当我输入pwd 命令时,就会显示我当前所处的目录/usr/local/mysql.
当然pwd命令还有一些参数,比如 -P(大写),显示出确实的路径,而非链接路径.
这个参数可以这么理解,如果当前文件实际上是一个类似于windows快捷方式的东西,那么当使用pwd -P时,显示的快捷方式关联文件的位置,而不是当前快捷方式所处 的位置.
查看文件/目录的详细信息
在linux中如果想要查看一个文件的详细可以使用ls命令,该命令在介绍权限的时候提到过.ls(list):列出文件的详细信息,它有如下参数:1.a 列出全部的文件,包含隐藏文件.2.A,列出除了 . 和 ..两个目录之外的所有文件(包含隐藏文件).3.d 列出目录本身,但不列出目录的内容.4f,直接列出结果,不排序.5.F 根据文件/目录等新的,给予附加的数据结构,比如目录 panda则表现为panda/6.h 将文件的大小人性化显示(kb/mb)7.i 列出inode节点号8.列出文件的属性,权限 等数据.9,n 显示UID和GID而非用户名和组名10.r 将排序反向输出11.R 将子目录的数据也列出来12.S 按文件大小排序13.t 按文件时间排序14. --color=never:不根据文档特性显示颜色--clolor=always.显示颜色--color=auto:系统自己判定是否显示颜色15.--full-time:显示完整的时间.16.--time=(atime,ctime),输出权限时间或者变更权限时间(非内容变更).
2.增加目录(添加目录)
在linux中如果需要创建一个新的文件夹可以使用命令,mkdir.mkdir(make directory):创建一个新的目录
该命令有两个可选项,-m 和 -p .1. m选项 配置文件的权限. 比如 mkdir -m 555 panda,这样就会在创建panda这个目录的同时给panda目录附上 dr-xr-xr-x 权限.2. p选项 允许创建多级目录(默认创建多级目录需要一层一层的创建) 比如,当我们使用mkdir out/panda的时候系统将会报错找不到out这个目录,但是我们加 上-p选项之后,就可以创建成功3.删除目录(文件)
在linux中删除一个目录可以使用命令:rmdirrmdir(remove directory):移除目录(需要注意的是,此命令只可以删除空目录)
该命令有一个可选的参数 -p .1.p 递归删除上层空目录,比如,我们现在有一个文件结构 /tmp/out/panda/remove,其中从out开始到remove均为空目录,当我们使用rmdir -p /tmp/out/panda/remove 命令删除remove文件夹的时候,将会联同/tmp/out/和/tmp/out/panda一块删除,但是因为tmp文件夹不为空,所以不会被删除.那么我们要如何删除非空文件夹呢?
rm(remove):删除文件
该命令有三个参数:1. f (force)表示强制删除.2. i (information) 在删除前会询问是否删除.3. r(recursion) 递归删除(联同子目录的数据一块删除).4.改动目录(变更目录)
改动目录的操作,常见的应该有下面几种:1.切换目录2.移动目录3.复制目录切换目录,我们通常使用cd命令.cd(change directory):变更工作目录
我们可以使用cd命令来变更目录,比如cd /home 标识切换到/home路径下,当然我们也可以使用cd 加特殊目录标识来切换目录.比如:cd .. 表示切换到上一级目录.cd - 表示切换到上次工作目录.cd ~ 切换到当前用户家目录cd ~用户名 切换到指定用户的家目录cd 不加参数 等同于 cd ~ 切换到当前用户家目录mv(move):移动目录
mv(move) param1 param2 表示将param1文件或目录移动到 param2处.该命令有三个常用参数:1.f(force),强制移动目录,如果目标目录已经存在,那么将会覆盖掉.2. i(information) 若param2存在时,询问是否覆盖3.u(update) 若目标档案已经存在,同时param1比较新,才会更新.当我们需要将一个目录或文件移动到其他地方去时,可以使用mv命令.cp(copy):复制文件(目录)
cp(copy),复制文件或目录 cp file1 file2 表示将file1复制到file2cp命令有以下几个主要选项:1.a(all):相当于选项pdr的组合,2.d:如果被复制的文件是链接文件,那么复制该链接文件3.f(force):若目标文件已经存在,那么删除目标文件之后再复制.4.i(information):若目标文件已经存在,询问是否覆盖.5.l(link):创建硬链接,而非复制文件本身.硬链接涉及到inode节点,可以先看一下补充A这篇博客. Linux学习补充A-inode节点6.p: 联同文件的属性一起复制过去.7.r: 递归复制8.s 创建软连接,类似于windows的快捷方式9.u:如果file1比file2新才更新cp命令可以一次复制多个文件,比如:cp file1 file2 file3 .....filex file_target 其中file1到filex都是需要复制的文件,file_target则是目标文件.如果复制多个文件,那么目标文件即file_target必须是目录.umask:目前用户在建立档案或目录时候的权限默认值
环境变量和PATH
环境变量(Environment Variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数.环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.比如Linux的环境变量PATH.PATH是告诉操作系统,当需要运行某个程序,但是却没有给出这个程序的绝对路径的时候,系统出了会在当前目录下寻找改程序,还会到PATH指定的目录下去寻找.也正因为此,我们才可以使用类似于cd,cp这样的命令,而不用输入/usr/bin/cp 来执行该命令.PATH这个变量的内容是由一堆目录组成的,多个目录之间使用冒号(:)分隔.假如遇到这种情况,PATH指定目录中有两个目录,同时都含有ls命令,那么执行ls命令实际上执行的是前面目录的ls命令.即先查到谁先执行谁.