• 【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作


    作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的。 今天我们就介绍一些在linux上的文件系统结构和基本操作命令。

    命令:ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip

    好了,开始吧。

     1.ls命令

    ls == list,根据不同的选项,列举指定目录或文件的相关信息,是Unix/Linux下最常用的命令之一,cd到某一目录下后执行的第一个命令。

    ls命令格式:ls [OPTION]... [FILE]...

    列举文件信息(默认为当前目录)。

    ls

    无参数:显示当前目录下的文件和目录(隐藏文件除外)。

    ls -a

    -a选项同ls,但会列举当前目录或者指定目录下的所有文件,包括dot文件(.开头的文件)和.目录和..目录。

    ls -A

    -A选项同ls,但会列举当前目录或者指定目录下的所有文件,包括dot文件(.开头的文件),但不包括.目录和..目录。

    ls -l

    -l选项的ls命令将列举当前目录或指定目录中文件或者子目录的详细信息。

    ls -l列举的信息包含7个以Tab的域:

    • 第一个域:第一个字符指明了文件类型
      • -: 普通文件;
      • d: 目录文件;
      • l: 符号链接;
      • s: socket文件;
      • b: 块设备;
      • c: 字符设备;
      • p: 管道文件。

      后面的9个字符指明了文件的访问权限:每三位指明一类用户的权限,分别是文件属主、同组用户、其它用户,权限分为读(r)、写(w)、执行(x)。

    • 第二个域:链接数。普通文件至少为1,目录至少为2(.和..);
    • 第三域:文件属主;
    • 第四域:用户组;
    • 第五域:文件大小,其中目录大小通常为块大小的整数倍;
    • 第六域:文件的最近修改日期和时间,修改文件意味着对其内文件或子目录的增添和修改;
    • 第七域:文件名

    ls -t

    按文件的修改时间列举文件,最近修改的在前。

    ls -1

    单独行列举文件。

    ls -lat

    组合选项,即是说,各个选项可以结合使用,除了互相排斥的选项,例如-a和-A,上面的组合就是ls -l 、ls -a、ls -t的组合

    ls -lh

    组合选项,-h表示文件size以人性化表示,那样就会以K、M、G为单位查看文件大小

    模糊列举: 其中,*代表任意个字符(包括0个),?代表一个字符。

    ls /etc/a*e

    列出/etc/目录下以字母a开头且以字母e结尾的目录和文件。

    ls /bin/l?

     列出/bin/目录下以字母l开头的目录和文件,且目录名或文件名的长度为2.

    2.chmod

    变更文件或目录的权限。

    说明:在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

    1. 文字设定法: chmod [who] [+ | - | =] [mode] 文件名

        命令中各选项的含义为:

        操作对象who可是下述字母中的任一个或者它们的组合:

        u 表示“用户(user)”,即文件或目录的所有者。

        g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

        o 表示“其他(others)用户”。

        a 表示“所有(all)用户”。它是系统默认值。

        操作符号可以是:

        + 添加某个权限。

        - 取消某个权限。

        = 赋予给定权限并取消其他所有权限(如果有的话)。

        设置mode所表示的权限可用下述字母的任意组合:

        r 可读。

        w 可写。

        x 可执行。

        X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

        s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

        t 保存程序的文本到交换设备上。

        u 与文件属主拥有一样的权限。

        g 与和文件属主同组的用户拥有一样的权限。

        o 与其他用户拥有一样的权限。

        文件名:以空格分开的要改变权限的文件列表,支持通配符。

        在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example

        使同组和其他用户对文件example 有读权限。
    2. 数字设定法: 我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

        例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

        数字设定法的一般形式为:

        chmod [mode] 文件名

    举例说明: 为user添加读写权限:

    chmod u+rw test.txt  或者 chmod  644 test.txt(假设默认的group 和 other的权限为读权限)

    由于篇幅问题,先介绍 ls 和chmod 其他的后面介绍。。。

  • 相关阅读:
    运行客户端程序报读取配置文件出错的解决方案
    速达软件二次开发-销售开单结算单位和账期报表需求
    速达软件开发版客户端启用流程
    vue 从后台获取数据并渲染到页面
    postgreSQL更改表的数据类型
    mybatis-plus实现多表联查
    mybatis学习笔记(四)
    mybatis学习笔记(三)
    mybatis学习笔记(二)
    mybatis学习笔记(一)
  • 原文地址:https://www.cnblogs.com/vhua/p/linux_1.html
Copyright © 2020-2023  润新知