ls命令:显示当前目录下文件
ls 是最常见的目录操作命令,主要作用是显示目录下的内容。这个命令的基本信息如下:
- 命令名称:ls。
- 英文原意:list。
- 所在路径:/bin/ls。
- 执行权限:所有用户。
- 功能描述:显示目录下的内容。
命令格式:
[root@localhost ~]#ls 选项
选项:
- -a:显示所有文件,可以显示隐藏文件;
- -d:显示目录信息,而不是目录下的文件;
- -h:显示文件大小;
- -i:显示文件的 i 节点号;
- -l:长格式显示;
"-l"选项
[root@localhost ~]# ls -l
总用量44
-rw-------.1 root root 1207 1 月 18 18:18 anaconda-ks.cfg
-rw-r-r--.1 root root 24772 1 月 18 18:17 install.log
-rw-r-r--.1 root root 7690 1 月 18 18:17 install.log.syslog
代表含义权限 引用计数 所有者 所属组 大小 文件修改时间 文件名
"-h选项"
[root@localhost ~]# ls -lh
总用量44K
-rw-------.1 root root 1.2K 1 月 18 18:18 anaconda-ks.cfg
-rw-r-r--.1 root root 25K 1 月 18 18:17 install.log
-rw-r-r--.1 root root 7.6K 1 月 18 18:17 install.log.syslog
cd命令:切换目录
cd 是切换所在目录的命令,这个命令的基本信息如下。
- 命令名称:cd。
- 英文原意:change directory。
- 所在路径:Shell 内置命令。
- 执行权限:所有用户。
- 功能描述:切换所在目录。
命令格式:
[root@localhost ~]#cd [目录名]
特殊符号
- ‘~’代表用户的家目录,直接cd也能快速回到家目录
- ‘-’ 代表上次所在目录
- ‘.’ 代表当前目录
- ‘..’ 代表上级目录
mkdir命令:创建目录(文件夹)
- mkdir 是创建目录的命令,其基本信息如下:
- 命令名称:mkdir。
- 英文原意:make directories。
- 所在路径:/bin/mkdir。
- 执行权限:所有用户。
- 功能描述:创建空目录。
命令格式:
[root@localhost -]# mkdir [选项]目录名
选项:
- -p: 递归建立所需目录
"-p选项"
[root@localhost ~]# mkdir -p lm/movie/jp/cangls 递归创建空目录
rmdir命令:删除空目录
既然有建立目录的命令,就一定会有刪除目录的命令 rmdir,其基本信息如下:
- 命令名称:rmdir。
- 英文原意:remove empty directories。
- 所在路径:/bin/rmdir。
- 执行权限:所有用户。
- 功能描述:删除空目录。
命令格式:
[root@localhost -]# rmdir [选项]目录名
选项:
- -p: 递归删除目录
"-p选项"
[root@localhost ~]# mkdir -p lm/movie/jp/cangls 递归删除目录只能删除空目录如果目录里面有文件会提示错误
stat命令:显示文件或文件系统的详细信息
在 Linux 中,文件有访问时间、数据修改时间、状态修改时间这三个时间,而没有创建时间。stat 是査看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下。
- 命令名称:stat。
- 英文原意:display file or file system status。
- 所在路径:/usr/bin/stat。
- 执行权限:所有用户。
- 功能描述:显示文件或文件系统的详细信息。
命令格式:
stat [选项]文件名或目录名
选项:
- -f:査看文件所在的文件系统信息,而不是査看文件的信息。
cat命令:连接文件并打印输出到标准输出设备
cat 命令的基本信息如下。
- 命令名称:cat。
- 英文原意:concatenate files and print on the standard output。
- 所在路径:/bin/cat。
- 执行权限:所有用户。
- 功能描述:连接文件并打印输出到标准输出。
命令格式:
[root@localhost ~]# cat [选项]文件名
选项:
- -A:相当于 -vET 选项的整合,用于列出所有隐藏符号;
- -E:列出每行结尾的回车符 $;
- -n:显示行号;
- -T:把 Tab 键 ^I 显示出来;
- -V:列出特殊字符;
more命令:分屏显示文件内容
如果文件过大,则 cat 命令会有心无力,这时 more 命令的作用更加明显。
more 是分屏显示文件的命令,其基本信息如下。
- 命令名称:more。
- 英文原意:file perusal filter for crt viewin。
- 所在路径:/bin/more。
- 执行权限:所有用户。
- 功能描述:分屏显示文件内容。
命令格式:
[root@localhost ~]# more 文件名
more 命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一些交互命令。常用的交互命令如下。
- 空格键:向下翻页。
- b:向上翻页。
- 回车键:向下滚动一行。
- / 字符串:搜索指定的字符串。
- q:退出。
head命令:显示文件开头的内容
head 是用来显示文件开头的命令,其基本信息如下。
- 命令名称:head。
- 英文原意:output the first part of files。
- 所在路径:/usr/bin/head。
- 执行权限:所有用户。
- 功能描述:显示文件开头的内容。
命令格式:
[root@localhost ~]# head 文件名
选项:
- -n 行数: 从文件头开始,显示指定行数;
- -v:显示文件名;
-n选项
head命令默认显示开头10行如果想显示指定的行数,则只需使用"-n"选项即可,例如:
[root@localhost ~]# head -n 20 anaconda-ks.cfg
tail命令:显示文件结尾的内容
tail 命令的基本信息如下:
- 命令名称:tail。
- 英文原意:output the last part of files。
- 所在路径:/usr/bin/tail。
- 执行权限:所有用户。
- 功能描述:显示文件结尾的内容。
命令格式:
[root@localhost ~]#tail [选项] 文件名
选项:
- -n 行数:从文條尾开始,显示指定行数
- -f:监听文件的新増内容
rm命令:删除文件或目录
rm 是强大的删除命令,不仅可以删除文件,也可以删除目录。这个命令的基本信息如下。
- 命令名称:rm
- 英文原意:remove files or directories。
- 所在路径:/bin/rm。
- 执行权限:所有用户。
- 功能描述:删除文件或目录。
命令格式:
[root@localhost ~]# rm[选项] 文件或目录
选项:
- -f:强制删除(force)
- -i:交互删除,在删除之前会询问用户
- -r:递归删除,可以删除目录(recursive)
cp命令:复制文件和目录
cp 是用于复制的命令,其基本信息如下:
- 命令名称:cp;
- 英文原意:copy files and directories;
- 所在路径:/bin/cp;
- 执行权限:所有用户;
- 功能描述:复制文件和目录;
命令格式:
[root@localhost ~]# cp [选项] 源文件 目标文件
选项:
- -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
- -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
- -i:询问,如果目标文件已经存在,则会询问是否覆盖;
- -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
- -s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
- -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
- -r:递归复制,用于复制目录;
mv命令:移动文件或改名
mv 是用来剪切的命令,其基本信息如下。
- 命令名称:mv。
- 英文原意:move(rename)files。
- 所在路径:/bin/mv。
- 执行权限:所有用户。
- 功能描述:移动文件或改名。
命令格式:
[root@localhost ~]# mv 【选项】 源文件 目标文件
选项:
- -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
- -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
- -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
- -v:显示详细信息;
Linux权限位
前面讲解 ls 命令时,我们已经知道长格式显示的第一列就是文件的权限,例如:
[root@localhost ~]# ls -linstall.log
-rw-r--r--.1 root root 24772 1月 14 18:17 install.log
第 1 位代表文件类型。Linux 不像 Windows 使用扩展名表示文件类型,而是使用权限位的第 1 位表示文件类型。虽然 Linux 文件的种类不像 Windows 中那么多,但是分类也不少,详细情况可以使用"info ls"命令查看。笔者在这里只讲一些常见的文件类型。
- -"-":普通文件。
- -"b":块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件 /dev/sda1 就是这种文件。
- -"c":字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。
- -"d":目录文件。Linux 中一切皆文件,所以目录也是文件的一种。
- -"l":软链接文件。
- -"p":管道符文件。这是一种非常少见的特殊设备文件。
- -"s":套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样的文件。
第 2~4 位代表文件所有者的权限。
- -r:代表 read,是读取权限。
- -w:代表 write,是写权限。
- -x:代表 execute,是执行权限。
如果有字母,则代表拥有对应的权限;如果是"-",则代表没有对应的权限。
第 5~7 位代表文件所属组的权限,同样拥有"rwx"权限。
第 8~10 位代表其他人的权限,同样拥有"rwx"权限。
chmod命令:修改文件或目录的权限
chmod 是修改权限的命令,其基本信息如下:
命令名称:chmod。
英文原意:change file mode bits。
所在路径:/bin/chmod。
执行权限:所有用户。
功能描述:修改文件的权限模式。
命令格式:
[root@localhost ~]# mv 【选项】 源文件 目标文件
选项
- -R:递归设置权限,也就是给子目录中的所有文件设定权限
用户身份:
- -u:代表所有者(user)。
- -g:代表所属组(group)。
- -o:代也人(other)。
- -a:代表全部身份(all)。
赋予方式:
- +:加入权限。
- -:减去权限。
- =:设置权限。
权限:
- -r:读取权限(read)。
- -w:写权限(write)。
- -x:执行权限(execute)。
下面举几个例子
[root@localhost ~]# chmod u+x lmls #给所有者加入执行权限
[root@localhost ~]# chmod g+w,o+w lmls #给所属组和其他人同时加入写权限
[root@localhost ~]# chmod u-x, g-w, o-w lmls #给所有者减去执行权限,给所属组和其他人都减去写权限,也就是恢复默认权限
[root@localhost ~]# chmod u=rwx, g=rw, o=rw lmls #所有者赋予权限"rwx",给所属组和其他人赋予权限"rw"
数字权限
我们来看看这些数字权限的含义,
- 4:代表"r"权限。
- 2:代表"w"权限。
- 1:代表"x"权限。
举例子
[root@localhost ~]# chmod 755 lmls #给文件赋予"755权限"
解释一下"755权限":
- 第一个数字"7":代表所有者的权限是"4+2+1",也就是读、写和执行权限。
- 第二个数字"5":代表所属组的权限是"4+1",也就是读和执行权限。
- 第三个数字"5":代表其他人的权限是"4+1",也就是读和执行权限。
数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多,只有如下几个:
- 644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
- 755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
- 777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。