昨天安装了一下虚拟机,搭建了一个linux操作系统,重新熟悉一下具体的操作及常用命令,下面先来认识一下命令提示符各个字符代表的含义,如下图所示。
命令提示符
一、基本命令
1、ls:用于显示指定工作目录下的内容(列出目前工作目录所包含的文件及子目录)。
格式:ls [选项] [文件或目录]
选项:
-a:显示所有文件及目录,包括隐藏文件;
-l:除文件名称外,也将文件型态、权限、拥有者、文件大小等信息详细列出;
-d:查看目录属性;
-h:人性化显示文件大小;
-i:显示文件的inode(节点/id号);
-r:将文件以相反次序显示(原定为英文字母次序);
-t:将文件按照创建时间的先后顺序列出;
-A:同-a,但不列出‘.’(当前目录)及‘..’(父目录);
-F:在列出的文件名称后加一符号;如可执行则加‘*’,目录则加‘/’;
-R:若目录下有文件,则以下的文件也都依次列出。
二、文件/目录相关命令
在讲解目录操作命令之前,我们先大概了解一下linux系统的目录结构,登录系统后,我们通过'ls /'命令查看跟目录下的所有目录。树状目录结构图及各目录的解释见下图。
跟目录下所有目录
树状目录结构图及各目录解释
1、mkdir:用于创建目录
语法:mkdir [-p] dirname
参数:-p 用于递归创建,即确保目录名称存在,如果不存在就创建一个。如:
mkdir -p BBB/Test //在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)
2、cd:用于切换当前工作目录到指定的目录(dirName)。
语法:cd [dirName]
其中dirName可以是绝对路径也可以是相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚login时所在的目录)。
另外,"~" 也表示为home目录的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录,"-" 则表示返回到上一次目录。
其中dirName可以是绝对路径也可以是相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚login时所在的目录)。
另外,"~" 也表示为home目录的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录,"-" 则表示返回到上一次目录。
3、rmdir:用于删除空的目录。
语法:rmdir [-p] dirName
参数:-p 是当子目录被删除后当它也为空目录的话,则顺便被一并删除。如:
参数:-p 是当子目录被删除后当它也为空目录的话,则顺便被一并删除。如:
rmdir -p BBB/Test //在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。
4、 rm:用于删除一个文件或者目录。
语法:rm [options] name...
参数:
-i:删除前逐一询问确认;
-f:强制删除,即使文档属性设置为只读,也可以直接删除,无需逐一确认;
-r:将该目录下的所有文件和目录都逐一删除。
5、cp:用于复制文件或目录。
语法:cp [options] source dest 或 cp [options] source... directory
参数:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpr参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间、访问权限等属性也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
语法:cp [options] source dest 或 cp [options] source... directory
参数:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpr参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间、访问权限等属性也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
6、mv:用于给文件或者目录改名、或将文件或目录移动到其他位置。
语法:mv [options] source dest 或 mv [options] source... directory
参数:
-i:若指定目录已有同名文件,则询问是否覆盖旧文件;
-f:在mv操作要覆盖已有的目标文件时不给提示,强行执行。
语法:mv [options] source dest 或 mv [options] source... directory
参数:
-i:若指定目录已有同名文件,则询问是否覆盖旧文件;
-f:在mv操作要覆盖已有的目标文件时不给提示,强行执行。
7、文件搜索命令
①locate:用于查找符合条件的文档,他回去保存文档和目录名称的数据库内,查找符合条件的文档和目录。
语法:locate [-d] [--help] [--version] [范本样式...]
参数:
-d或--database 代表配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。
--help 在线帮助。
--version 显示版本信息。
附加说明:
locate 和 find 不同:find是去硬盘中找,locate只是在/var/lib/mlocate资料库中找。
locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/mlocate/mlocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为: locate -u 。
locate查找时遵循/etc/updatedb.conf配置文件。
②whereis:用于查找命令所在的路径及文档所在位置。该指令会在特定的目录中查找符合条件的文件,这些文件包括二进制文件、源代码、帮助文件。
语法:whereis 命令名
参数:
-b 只查找二进制文件。
-B<目录> 只在设置的目录下查找二进制文件。
-f 不显示文件名前的路径名称。
-m 只查找说明文件。
-M<目录> 只在设置的目录下查找说明文件。
-s 只查找原始代码文件。
-S<目录> 只在设置的目录下查找原始代码文件。
-u 查找不包含指定类型的文件。
③which:搜索命令所在路径及别名。该指令会在环境变量$PATH设置的目录里查找符合条件的文件。
语法:which 文件名
参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息。
④find:用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法:find path -option [ -print ] [ -exec -ok command ] {} \;
参数:
linux中的通配符:* 匹配任意内容;?匹配任意一个字符;[]匹配任意一个中括号内的字符。
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写。
-user, -nouser : 搜索 属于user用户或没有所有者 的文件。
-atime n : 在过去 n 天过读取过的文件。
-ctime n : 在过去 n 天过修改过属性的文件。
-mtime n : 在过去 n 天过修改过内容的文件。(其中n可以 +n、n、-n,分别代表n天前、n天当天、n天内)
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。
-inum n : 查找i节点是n的文件。
-a : 逻辑与,两个条件都满足的。
-o : 逻辑或,两个条件满足一个即可。
-exec/-ok command {} \ : 对搜索结果执行操作。
语法:locate [-d] [--help] [--version] [范本样式...]
参数:
-d或--database 代表配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。
--help 在线帮助。
--version 显示版本信息。
附加说明:
locate 和 find 不同:find是去硬盘中找,locate只是在/var/lib/mlocate资料库中找。
locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/mlocate/mlocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为: locate -u 。
locate查找时遵循/etc/updatedb.conf配置文件。
②whereis:用于查找命令所在的路径及文档所在位置。该指令会在特定的目录中查找符合条件的文件,这些文件包括二进制文件、源代码、帮助文件。
语法:whereis 命令名
参数:
-b 只查找二进制文件。
-B<目录> 只在设置的目录下查找二进制文件。
-f 不显示文件名前的路径名称。
-m 只查找说明文件。
-M<目录> 只在设置的目录下查找说明文件。
-s 只查找原始代码文件。
-S<目录> 只在设置的目录下查找原始代码文件。
-u 查找不包含指定类型的文件。
③which:搜索命令所在路径及别名。该指令会在环境变量$PATH设置的目录里查找符合条件的文件。
语法:which 文件名
参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息。
④find:用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法:find path -option [ -print ] [ -exec -ok command ] {} \;
参数:
linux中的通配符:* 匹配任意内容;?匹配任意一个字符;[]匹配任意一个中括号内的字符。
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写。
-user, -nouser : 搜索 属于user用户或没有所有者 的文件。
-atime n : 在过去 n 天过读取过的文件。
-ctime n : 在过去 n 天过修改过属性的文件。
-mtime n : 在过去 n 天过修改过内容的文件。(其中n可以 +n、n、-n,分别代表n天前、n天当天、n天内)
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。
-inum n : 查找i节点是n的文件。
-a : 逻辑与,两个条件都满足的。
-o : 逻辑或,两个条件满足一个即可。
-exec/-ok command {} \ : 对搜索结果执行操作。