目录的相关操作
cd命令用来切换工作目录,可以用相对目录,也可以用绝对目录;~表示当前用户的主目录,-表示上一个工作目录,有点类似windows的后退,.表示当前目录,..表示上层目录。
pwd命令用来显示当前的工作目录,-p参数可以显示非连接文件的路径。
mkdir用来新建目录,-m参数可以直接指定新建目录的权限而不看默认的,-p参数可以递归的把每一层的目录一次都创建出来。
mkdir -m 711 test2
mkdir -p test1/test2/test3/test4
rmdir用来删除空的文件夹,如果目标文件夹非空会报directory not empty错。
环境变量PATH
以ls命令为例,当执行ls命令式,系统会依照PATH的设置去每一个PATH定义的目录下查询文件名为ls的可执行文件,如果有多个,先被查询到的先执行。
echo是显示的意思,$表示后面是一个变量,执行echo $PATH可以查看PATH的值,不同于windows的;分割,Linux的PATH路径之间以:分割,路径是有顺序的。
PATH="$PATH":/root这种写法可以为PATH添加新的目录。
不同身份的用户默认的PATH不同,所以默认能够执行的 命令自然不同。
当要执行某个文件时可用绝对路径,如/root/liuty/test.sh,如果要执行当前工作目录下的某文件需要用相对路径./test.sh,如果将.(即当前目录)加入PATH,可以直接执行当前工作目录下的文件,直接test.sh,但是这样很不安全,因为可能执行到意想不到的文件,如果你进入到某个目录该目录下有个ls文件,你执行ls就可能执行到这个ls。
文件与目录管理
ls命令用来查看文件与目录,参数-a查看全部文件,包括隐藏文件;-A包括隐藏文件,但是去除.和..;-h显示以KB,GB显示的文件大小;-l显示详细的信息,包括文件的属性和权限等,很多发行版本如centos会将ll设置为ls -l。
cp命令用来复制文件与目录,参数-i若目标文件已经存在时,在覆盖时先询问;-d若源文件问连接文件的属性,则复制连接文件属性而非文件本身;-p连同文件的属性一并复制过去,而非使用默认属性;-r递归复制,用于目录;-a相当于-pdr;-l用来创建硬连接文件,-s用来创建软连接文件。
在默认的条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常是命令操作者本身。这就是-p和-a参数的意义所在。
rm命令用来删除文件或目录,-i参数会在删除前询问;-r递归删除目录内的所有文件和目录。
mv命令用来移动目录或文件。
basename和dirname用来取得一个完整路径中的最后的文件名和目录名,常用于shell中。