Linux目录和文件操作命令
文件系统层次结构标准
文件系统层次结构标准(Filesystem Hierarchy Standard,FHS):定义了在类Unix系统中的目录结构和目录内容。它由Linux基金会维护,最新版为2015年六月三日发布的3.0版,仅用于Linux的各类发行版中。
(1)/
根目录,是树状目录结构的根节点。
(2)/root
root用户的家目录。
(3)/home
普通用户的家目录建在home目录下,比如普通用户nsk:/home/nsk
几个比较重要的目录,平时需要注意不要误删除或者随意更改内部文件。
(4)/etc
系统的配置文件,若更改了其中的某个文件可能会导致系统不能启动。
(5)/bin, /sbin, /usr/bin, /usr/sbin
系统预设的执行文件的放置目录。 /bin存放着用户最经常使用的命令,比如ls命令就在/bin/ls目录;/usr/bin存放着用户使用的应用程序;/sbin存放的是root用户使用的系统管理程序;/usr/sbin是root用户使用的比较高级的管理程序和系统守护程序。
(6)/dev
目录dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
绝对路径和相对路径
目录和文件的绝对路径和相对路径:
(1)绝对路径:一定是由根目录 / 开始写起。路径书写格式由“/”起始。
例如:/home/nsk
(2)相对路径:是从当前所在的工作目录开始写起。不以“/”开设,而是以目录名称开始。
也会用到特别的目录:.(当前目录)和…(父目录)
例如(假设当前目录是/home):nsk或 ./nsk(等价)
例如(假设当前目录是/home/nsk): …/china …/…/china
目录操作命令:
1. pwd命令
pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。
全部目录使用“/”符号分隔。第一个“/”表示根目录,最后一个目录是当前目录。
例如:# pwd //显示当前工作目录
2. cd命令
cd命令用来从当前工作目录切换到新的工作目录DirName。 新的工作目录DirName的表示有绝对路径或相对路径。
格式: cd [参数]
参数:绝对路径或相对路径(几个特殊路径:/、~、…)
例如:# cd / //切换到系统根目录
# cd ~//切换到用户家目录,~可缺失
# cd …//返回到上一级目录
# cd /etc/sysconfig///切换到/etc/sysconfig目录
3. ls命令
ls命令用来列出某个目录下的文件和目录信息。
格式:ls [选项] [参数]
选项:-l (以长格式显示目录下的内容列表)
-R (显示出目录下以及其所有子目录的文件名(包括了隐藏文件))
参数:目录或文件
例如:# ls //列出当前目录下的文件和目录
# ls \home //列出绝对路径(或相对路径)下的文件和目录
# ls -l//列出当前目录下所有文件的权限、所有者、文件大小、
修改时间及名称
# ls \etc\tt //列出给出名称的文件(当前目录或绝对路径或相对路径)*
4. mkdir命令
** mkdir命令用于创建一个或多个目录。**
** 格式:mkdir [选项] [参数]**
** 选项:-p (若所要建立目录的父目录不存在,则同时创建该目录及该目录的父目录,即可创建多级目录)**
-m (建立目录的同时设置目录的权限)
** 参数: 一个或多个目录(绝对路径或相对路径)**
例如:# mkdir dir1 dir2 //在当前目录下创建dir1,dir2目录
# mkdir dir2/dir3 //在相对路径下在dir2目录内创建dir3目录
**# mkdir –p dir4/dir5//在当前目录下创建多级目录 **
5. rmdir命令
rmdir命令用于删除一个或多个空目录。如果被删除目录有其它文件或子目录存在,则删除不成功。
** 格式:rmdir [选项] [参数]**
** 选项:-p (在删除目录时,一并删除父目录,但要求父目录中必须没有其他目录的存在,即可删除多级目录)**
参数: 一个或多个目录(绝对路径或相对路径)
例如:# rmdir dir2/dir3 //在相对路径下在dir2目录内删除dir3目录
# rmdir dir1 dir2 //在当前目录下删除dir1,dir2目录
**# rmdir –p dir4/dir5//在当前目录下删除多级目录 **
6. touch命令
touch命令用于新建普通文件,该命令的语法为:
touch 文件名或文件名列表
例如:
# touch file1 file2 //在当前目录下建立一个空文件file1
7. cp命令
cp命令主要用于文件或目录的复制。
格式:cp [选项] [参数]
选项:-f (如果目标文件或目录存在,则先删除它们再进行复制(即覆盖),并且不提示用户)
-i(如果目标文件或目录存在,则在覆盖既有文件之前先询问用户)
-p(保留源文件或目录的属性)
-r(递归复制所有目录,将所有的非目录内容当作文件一样复制)
** 参数: <源文件或目录> <目的文件或目录> (绝对路径或相对路径)**
例如(复制文件:源参数是文件,目标参数是文件或目录):
# cp file1 file2//把当前目录中的文件file1复制并更名成file2
# cp file1 dir1//把当前目录的文件file1复制到目录dir1下成file1
# cp /user/file1 .//将user目录下file1文件复制到当前目录下成file1
# cp /user/file1 file2//将user目录下file1文件复制到当前目录下更名为file2
例如(复制目录:源参数是目录,目标参数是目录):
# cp -r dir1 dir2//在当前目录中复制整个dir1目录到:
(1)dir2目录内(dir2存在)
(2)当前目录并改名为dir2(dir2不存在)
8. mv命令
mv命令用于移动或更改文件和目录的名称。
格式:mv [选项] [参数]
选项:-f(文件重命令时强制覆盖已有文件)
-u(目标文件比源文件新时不覆盖)
-i(覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件)
参数:<源文件或目录> <目的文件或目录>(绝对路径或相对路径)
例如(移动文件:源参数是文件,目标参数时文件或目录):
# mv file1 file2//把当前目录中文件file1更名为file2
# mv file1 dir1//把当前目录中文件file1移动到目录dir1下成file1
# mv /user/file1 .//将user目录下file1文件移动到当前目录下成file1
# mv /user/file1 file2//将user目录下file1文件复制到当前目录下更名为file2
例如(移动目录):
# mv dir1 dir2//在当前目录中:
(1)整个dir1目录移动到dir2目录内(dir2存在)
(2)dir1目录更名为dir2目录(dir2不存在)
9. rm命令
rm命令用于删除文件或目录。
格式:rm [选项] [参数]
选项:-i(删除每个文件或目录时给用户提示)
-r(递归删除目录,即包含目录下的文件和各级子目录)
-f(删除文件或目录时不提示用户)
参数:[文件名或目录名或列表](绝对路径或相对路径)
** 例如:#rm file //删除当前目录下的文件file**
** # rm -r dir1 //删除目录dir1及其子目录下所有文件**
注意:rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。
参考故事:rm –rf 的悲剧
rm –rf / user