• Linux常用命令— 目录和文件都能操作的命令


    1、rm命令

    rm是强大的删除命令,不仅可以删除文件,也可以删除目录。这个命令的基本信息如下。

    • 命令名称:rm。
    • 英文原意:remove files or directories。
    • 所在路径:/bin/rm。
    • 执行权限:所有用户。
    • 功能描述:删除文件或目录。
    1. 命令格式
    2. [root@localhost ~ ] # rm [选项] 文件或目录
    3. 选项:
    4. -f:强制删除(force)
    5. -r:递归删除,可以删除目录(recursive)
    6. -i:交互删除,在删除之前会询问用户(如果不添-f参数,rm命令默认添加-i参数)

    提示:一般rm的固定用法都是加-rf参数。记住删了就没有后悔药了。

    2、cp命令

    cp是用于复制的命令,其基本信息如下:

    • 命令名称:cp。
    • 英文原意:copy files and directories。
    • 所在路径:/bin/cp。
    • 执行权限:所有用户。
    • 功能描述:复制文件和目录。
    1. 命令格式
    2. [root@localhost ~ ] # cp [选项] 源文件 目标文件
    3. 选项:
    4. -a:相当于-dpr选项的集合,这几个选项我们一一介绍
    5. -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
    6. -i:询问,如果目标文件已经存在,则会询问是否覆盖
    7. -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
    8. -r:递归复制,用于复制目录
    9. 总结:只要加了-a选择,复制的目标文件或目录,和源文件或源目录,就会一模一样。

    提示:

    1. [root@192 ~ ] # ls
    2. abc anaconda-ks.cfg install.log install.log.syslog
    3. [root@192 ~ ] # cp abc /tmp/
    4. [root@192 ~ ] # cp abc /tmp/cde

    如果后边路径不加文件名,就是原名复制。
    如果后边路径最后加文件名,就是改名复制。

    3、mv命令

    mv是用来剪切的命令,其基本信息如下。

    • 命令名称:mv。
    • 英文原意:move(rename)files。
    • 所在路径:/bin/mv。
    • 执行权限:所有用户。
    • 功能描述:移动文件或改名。
    1. 命令格式
    2. [root@localhost ~ ] # mv [选项] 源文件 目标文件
    3. 选项:
    4. -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
    5. -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
    6. -v:显示详细信息
    7. [root@192 ~]# mv abc /tmp/ 剪切
    8. [root@192 tmp]# mv abc bef 重命名
    9. [root@192 tmp]# mv bef /root/abc 剪切+重命名
    10. 注意:在用mv命令操作一个目录的时候,不用加-r选项,这和cp命令是有区别的。

    基本权限管理

    一、权限的介绍


    1、权限位的含义
    前面讲解ls命令时,我们已经知道长格式显示的第一列就是文件权限的描述,例如:

    1. [root@localhost ~ ] # ls -l install.log
    2. -rw-r--r--. 1 root root 24772 114 1817 install.log

    第一列的权限位如果不计算最后的“.”(最后的.是在Red Hat 6 的版本才开始出现的。表示这个文件是受SELinux保护的。对权限的设置没有影响。),则共有10位,这10位权限位的含义如图下图所示。

    2、第1位代表文件类型。
    Linux不像Windows使用扩展名表示文件类型,而是使用权限位的第1位表示文件类型。
    虽然Linux文件的种类不像Windows中那么多,但是分类也不少,详细情况可以使用info ls命令查看。在这里只讲一些常见的文件类型。

    • “-”:普通文件。
    • “d”:目录文件。Linux中一切皆文件,所以目录也是文件的一种。
    • “l”:软链接文件。
    • “b”:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1就是这种文件。
    • “c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。
    • “p”:管道符文件。这是一种非常少见的特殊设备文件。
    • “s”:套接字文件。这也是一种特殊设备文件,一些服务支持Socket访问,就会产生这样的文件。

    提示:前三种文件个是最为常见。其他格式文件没事不要碰。

    3、第2~4位代表文件所有者的权限。

    • r:代表read,是读取权限。
    • w:代表write,是写权限。
    • x:代表execute,是执行权限。

    如果有字母,则代表拥有对应的权限;如果是“”,则代表没有对应的权限。
    4、第5~7位代表文件所属组的权限
    同样拥有“rwx”权限。
    5、第8~10位代表其他人的权限
    同样拥有“rwx”权限。
    6、注意:
    所有者,所属组,其他用户权限的优先级
    (1)如果所有者(UID)匹配,用户权限适用
    (2)否则,如果所属组(GID)匹配,组权限适用
    (3)如果都不匹配,其它权限适用
    匹配优先级:所有者>所属组>其他用户

    基本权限管理

    二、基本权限命令

    • chmod命令
    • chown命令
    • chgrp命令
      1、chmod命令
      修改权限的命令chmod,其基本信息如下。
    • 命令名称:chmod。
    • 英文原意:change file mode bits。
    • 所在路径:/bin/chmod。
    • 执行权限:所有用户。
    • 功能描述:修改文件的权限模式。
    1. 命令格式
    2. [root@localhost ~ ] # chmod [选项] 权限模式 文件名
    3. 选项:
    4. -R:递归设置权限,也就是给子目录中的所有文件设定权限

    2、权限模式
    chmod命令的权限模式的格式是“[ugoa][+-=][perms]]”,也就是“[用户身份][赋予方式][权限]”的格式,我们来解释一下。
    (1)用户身份。

    • u:代表所有者(user)。
    • g:代表所属组(group)。
    • o:代表其他人(other)。
    • a:代表全部身份(all)。

    (2)赋予方式。

    • +:加入权限。
    • -:减去权限。
    • =:设置权限。

    (3)权限。

    • r:读取权限(read)。
    • w:写权限(write)。
    • x:执行权限(execute)。
    1. abc文件
    2. [root@192 ~]# ll
    3. -rw-r--r--. 1 root root 0 1229 21:41 abc
    4. 1.给abc文件的所有者添加执行权限。
    5. [root@192 ~]# chmod u+x abc
    6. [root@192 ~]# ll
    7. -rwxr--r--. 1 root root 0 1229 21:41 abc
    8. 2.同时给多个身份赋予权限,之间用逗号隔开。
    9. [root@192 ~]# chmod g+w,o+w abc
    10. [root@192 ~]# ll
    11. -rwxrw-rw-. 1 root root 0 1229 21:41 abc
    12. 3.直接给对应的身份赋予想要的权限,用=。
    13. [root@192 ~]# chmod u=rwx,g=rwx,o=rwx abc
    14. [root@192 ~]# ll
    15. -rwxrwxrwx. 1 root root 0 1229 21:41 abc

    3、数字权限
    数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。
    我们来看看这些数字权限的含义。

    • 4:代表“r”权限。
    • 2:代表“w”权限。
    • 1:代表“x”权限。

    说明:
    rwx代表读写执行的权限,我们把1代表有权限,0代表没有权限,则111带便三个权限都有,把111看成一个二进制数,转义成十进制就是7,101则为5,以此类推。

    4、文件常用权限
    数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多,只有如下几个。

    • 644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。(文件的标准权限就是这个权限)
    • 755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
    • 777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。(代表所有人都拥有对该文件的最大权限,实际工作中不可这么设置。)

    5、所有者和所属组命令-chown命令
    chown是修改文件和目录的所有者和所属组的命令,其基本信息如下。

    • 命令名称:chown。
    • 英文原意:change file owner and group。
    • 所在路径:/bin/chown。
    • 执行权限:所有用户。
    • 功能描述:修改文件和目录的所有者和所属组。
    1. 命令格式
    2. [root@localhost ~ ] # chown [选项] 所有者:所属组 文件或目录
    3. 选项:
    4. -R:递归设置权限,也就是给子目录中的所有文件设置权限

    注意:在新安装的Linux系统中,是有大量的系统用户的,但是这些系统用户是不能登陆的,能登陆的用户只有root用户。

    1. 演示:登陆用户为root
    2. 1.文件的所有者为用户,所以需要先创建一个普通用户user1。
    3. [root@192 ~]# useradd user1
    4. [root@192 ~]# passwd user1
    5. 更改用户 user1 的密码 。
    6. 新的 密码:
    7. 无效的密码: 过于简单化/系统化
    8. 无效的密码: 过于简单
    9. 重新输入新的 密码:
    10. passwd: 所有的身份验证令牌已经成功更新。
    11. # 上面两个命令就是添加用户和给用户设置密码,以后会详细讲解。
    12. # 此时是root用户,如果是普通用户修改自己的密码,就需要符合密码复杂度原则。
    13. 2.查看abc文件的拥有者和所属组
    14. [root@192 ~]# ls -l abc
    15. -rwxrwxrwx. 1 root root 0 1229 21:41 abc
    16. 3.修改abc文件的拥有者为user1
    17. [root@192 ~]# chown user1 abc
    18. [root@192 ~]# ls -l abc
    19. -rwxrwxrwx. 1 user1 root 0 1229 21:41 abc
    20. 注意:在chown命令的描述中,是可以修改拥有者和用户组的`change file owner and group`。所以通过chown命令是可以同时修改文件的拥有者和用户组。
    21. [root@192 ~]# ls -l abc
    22. -rwxrwxrwx. 1 user1 user1 0 1229 21:41 abc
    23. [root@192 ~]# chown root:root abc
    24. [root@192 ~]# ls -l abc
    25. -rwxrwxrwx. 1 root root 0 1229 21:41 abc
    26. chown命令中拥有者和所属组之间用:或.分隔都可以。

    6、chgrp命令
    chgrp是修改文件和目录的所属组的命令,其基本信息如下。

    • 命令名称:chgrp。
    • 英文原意:change group ownership。
    • 所在路径:/bin/chgrp。
    • 执行权限:所有用户。
    • 功能描述:修改文件和目录的所属组。
    1. 同上边chown命令
    2. 1.查看abc文件的拥有者和所属组
    3. [root@192 ~]# ls -l abc
    4. -rwxrwxrwx. 1 root root 0 1229 21:41 abc
    5. 2.修改abc文件的所属组
    6. [root@192 ~]# chgrp user1 abc
    7. [root@192 ~]# ls -l abc
    8. -rwxrwxrwx. 1 root user1 0 1229 21:41 abc

    注意:
    在chown命令的演示中,只创建了user1用户,并没有创建user1组。但此时系统中是有user1组的。在Linux系统中,如果你添加了一个用户,系统会默认生成一个同名的组(user1组),作为这个用户的初始组,所以不用在单独创建user1的用户组了。这与windows系统是有区别的。

    7、总结

    • 1.普通用户可以修改所有者是自己的文件的权限。
    1. [user1@192 ~]$ touch test
    2. [user1@192 ~]$ ls
    3. test
    4. [user1@192 ~]$ chmod 755 test
    5. [user1@192 ~]$ ls -l
    6. -rwxr-xr-x. 1 user1 user1 0 1230 00:49 test

    如果修改文件为其他拥护者的权限时,只有root用户可以。

    • 2.普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。
    1. [user1@localhost ~ ] $ chown user2 test
    2. chown:正在更改"test"的所有者:不允许的操作

    重点:配套学习资料和视频教学

    那么在这里我也精心准备了上述大纲的详细资料在下方链接如下

     

  • 相关阅读:
    c语言之函数篇
    Docker本地部署Drupal并实现公网访问
    Vue2 —— vue面试题分享
    关于嵌入式人工智能?
    【FPGA教程案例64】硬件开发板调试4——通过vio扩充ila数据采集种类
    Bootstrap Studio 6.2.X Crack
    深入理解嵌入式系统【基于Arduino的嵌入式系统入门与实践】相关基础知识概述:嵌入式系统/技术(定义、分类、组成、简介);Arduino开发板分类;VCC,GND;模拟信号和数字信号;杜邦线,面包板
    Kubernetes使用OkHttp客户端进行网络负载均衡
    快速_排序
    数据转换成json格式
  • 原文地址:https://blog.csdn.net/m0_59868866/article/details/126182027