头部背景图片
郭の |
郭の |

Linux

Linux

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:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。
avatar One Piece