Leo Technology Stack Leo Technology Stack
首页
  • Android
  • Web
  • SpringBoot
  • 数据库
  • Docker
  • Netty
  • KubeSphere
  • Linux
  • Android Framework
  • 开源库
思维
  • 面试
  • 投资理财
  • 杂事记录
  • 索引

    • 分类
    • 标签
    • 归档
  • 开源项目

    • Advance Markdown
    • AnLibrary (opens new window)

Leo

不知名的架构师
首页
  • Android
  • Web
  • SpringBoot
  • 数据库
  • Docker
  • Netty
  • KubeSphere
  • Linux
  • Android Framework
  • 开源库
思维
  • 面试
  • 投资理财
  • 杂事记录
  • 索引

    • 分类
    • 标签
    • 归档
  • 开源项目

    • Advance Markdown
    • AnLibrary (opens new window)
  • Linux概念扫盲

    • 常见命令
      • Ubuntu查看Mac地址
        • Linux文件权限
          • 更改文件属性
            • Linux命令大全
              • 程序和进程
                • fork
                • notes
                • Linux
                • Linux
                2021-04-13

                Linux概念扫盲

                # 常见命令

                查看端口使用情况,使用netstat命令。
                如果要查看已经连接的服务端口(ESTABLISHED)      netstat -a
                如果是查看所有的服务端口(LISTEN,ESTABLISHED)       netstat -ap

                查看8080端口,则可以结合grep命令:                                  netstat -ap | grep 8080

                若要停止使用这个端口的程序,使用kill +对应的pid即可         kill pid

                # Ubuntu查看Mac地址

                sudo lshw -c network | grep serial

                # Linux文件权限

                在Linux中,使用如下命令查看文件的基本属性和文件所属的用户和组

                root:/system $ ls -l
                total 208
                drwxr-xr-x 78 root root  4096 2018-12-06 10:30 app
                drwxr-xr-x  3 root shell 8192 2018-12-06 10:43 bin
                -rw-r--r--  1 root root  9115 2018-12-07 01:40 build.prop
                -rw-r--r--  1 root root  9008 2018-12-06 11:03 build.prop.bakforspec
                drwxr-xr-x 19 root root  4096 2018-12-07 01:40 etc
                drwxr-xr-x  2 root root  4096 2018-12-06 10:44 fake-libs
                drwxr-xr-x  2 root root  4096 2018-12-06 10:44 fake-libs64
                drwxr-xr-x  2 root root  4096 2018-12-06 10:44 fonts
                drwxr-xr-x  5 root root  4096 2018-12-06 11:10 framework
                drwxr-xr-x  7 root root  8192 2018-12-06 11:10 lib
                drwxr-xr-x  6 root root  8192 2018-12-06 11:10 lib64
                drwx------  2 root root  4096 1970-01-01 00:00 lost+found
                drwxr-xr-x  3 root root  4096 2018-12-07 01:40 media
                drwxr-xr-x 57 root root  4096 2018-12-06 11:03 priv-app
                drwxr-xr-x  5 root root  4096 2018-12-07 01:46 rfs
                drwxr-xr-x  3 root root  4096 2018-12-06 11:10 tts
                drwxr-xr-x  8 root root  4096 2018-12-06 11:10 usr
                drwxr-xr-x 61 root shell 4096 2018-12-07 01:46 vendor
                drwxr-xr-x  2 root shell 4096 2018-12-06 11:10 xbin
                
                
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                17
                18
                19
                20
                21
                22

                每个文件的名称都由最后一行的字段确定,而每个文件的属性由该行的第一个十位长度的字段确定,如下abcdefghij

                drwxr-xr-x 78 root root 4096 2018-12-06 10:30 app
                abcdefghij x x x x x x

                其中第一列的十位,如上abcdefghij是表明该文件的属性,如文件类型、属主权限、属组权限、其他用户权限,如下表

                a bcd efg hij
                文件类型 属主权限(rwx) 属组权限(rwx) 其他用户权限(rwx)

                文件类型

                • d:目录
                • -:文件
                • l:连接文档(Link file)
                • b:装置文件里面可供存储的接口设备(可随机存取装置)
                • c:为装置文件里面的串行端口设备,如键盘、鼠标(一次性读取装置)

                rwx组合

                • r:可读(Read)
                • w:可写(write)
                • x:可执行(execute)
                • 该三个位置不会变,如果没有权限就会出现 - 号

                Linux文件系统

                • 对于文件来说,他都有一个特定的所有者,也就是对该文件具有所有权的用户
                • 在Linux中,用户是按组分类的,一个用户属于一个或多个组
                • 文件所有者以外的用户又分为文件所有者的{% em %}同组用户{% endem %}和{% em %}其他用户{% endem %}
                • Linux文件系统按{% em %}文件所有者{% endem %}、{% em %}文件所有者同组用户{% endem %}、{% em %}其他用户{% endem %} 规定了不同的文件访问权限

                属主权限(该文件所有者)
                属组权限(所有者的同组用户)
                其他用户权限

                如上表中可以描述成,app是个目录文件,属主和属组都是root,属主具有rwx,即可读、可写、可执行;属组具有r-x,即可读、不可写、可执行;其他用户具有r-x,即可读、不可写、可执行

                # 更改文件属性

                • # 更改文件属组

                  chgrp [-R] 属组名 文件名
                  //changer group====chgrp
                  
                  usage: chgrp/chown [-RHLP] [-fvh] group file...
                  Change group of one or more files.
                  
                  -f      suppress most error messages.                不显示各种错误信息
                  -h      change symlinks instead of what they point to 更改符号链接,而不是它们指向的内容
                  -R      recurse into subdirectories (implies -h).              -R 递归更改文件属性,常用于批量更改文件夹
                  -H      with -R change target of symlink, follow command line symlinks
                  -L      with -R change target of symlink, follow all symlinks
                  -P      with -R change symlink, do not follow symlinks (default)
                  -v      verbose output.   详细输出。
                  
                  chgrp: Need 2 arguments
                  
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                • # 更改文件属主,也可同时更改文件属组

                  chown [-R] 属主名 文件名
                  chown [-R] 属主名:属组名 文件名
                  
                  //change owner === chown
                  
                  usage: chgrp/chown [-RHLP] [-fvh] group file...
                  
                  Change group of one or more files.
                  
                  -f      suppress most error messages.
                  -h      change symlinks instead of what they point to
                  -R      recurse into subdirectories (implies -h).
                  -H      with -R change target of symlink, follow command line symlinks
                  -L      with -R change target of symlink, follow all symlinks
                  -P      with -R change symlink, do not follow symlinks (default)
                  -v      verbose output.
                  
                  chown: Need 2 arguments
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  17
                  18
                • # 更改文件的9个属性

                usage: chmod [-R] MODE FILE...
                
                1

                9个属性:属主(owner)、属组(group、owner所在的group)、其他用户(others)的各自rwx权限

                Linux设置文件属性有两种方法

                • # 数字

                各个权限分数:r=4,w=2,x=1

                如上方app的属性drwxr-xr-x
                owner=r+w+x=4+2+1=7
                group=r-x=4+0+1=5
                others=r-x=4+0+1=5

                指令为

                chmod [-R] 755 文件或目录
                //-R 对文件夹起作用,递归所有文件
                
                1
                2
                • # 符号

                九个属性分别归属于如下三个身份,简称u、g、o,a代表all,全部身份

                • user
                • group
                • others

                如上方app的属性drwxr-xr-x
                u=rwx
                g=r-x
                o=r-x

                指令如下

                chmod [-R] u=rwx,g=r-x,o=r-x 文件名[文件目录]
                
                1

                若要修改为dr-xrwxr-x,则指令为

                chmod [-R] u-w,g+w 文件名[文件目录]
                
                1

                # Linux命令大全

                # 程序和进程

                程序和进程

                • 1、程序:程序是静止的,程序就是磁盘上的一个文件。
                • 2、进程:进程是一个正在执行的程序的实例。
                • 3、进程是动态的。
                • 4、一旦程序被操作系统加载进内存了,那么这程序就成为了进程。

                PID和PPID

                1、PID(process ID):
                PID是程序被操作系统加载到内存成为进程后动态分配的资源。
                每次程序执行的时候,操作系统都会重新加载,PID在每次加载的时候都是不同的。
                2、PPID(parent process ID):PPID是程序的父进程号。
                3、PID和PPID都是非零的整数。
                4、PID是唯一的,一个PID只标识一个进程。
                5、一个进程创建的另一个新进程称为子进程。相反地,创建子进程的进程称为父进程。
                6、对于一个普通的用户进程,它的父进程就是执行它的哪个Shell,对于Linux而言,Shell就是bash。
                7、bash所在的目录:[negivup@localhost bin]$ cd /bin | ls bash

                提示

                1、所有进程追溯其祖先最终都会落到进程号为1的进程身上,这个进程叫init进程

                2、init进程是linux内核启动后第一个执行的进程。

                3、init引导系统,启动守护进程并且运行必要的程序。

                # fork

                提示

                一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。

                一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。

                fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:

                1)在父进程中,fork返回新创建子进程的进程ID;
                2)在子进程中,fork返回0;
                3)如果出现错误,fork返回一个负值;
                

                在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。我们可以通过fork返回的值来判断当前进程是子进程还是父进程。

                引用一位网友的话来解释fpid的值为什么在父子进程中不同。其实就相当于链表,进程形成了链表,父进程的fpid(p 意味point)指向子进程的进程id,因为子进程没有子进程,所以其fpid为0。

                编辑此页 (opens new window)
                #Linux
                上次更新: 2022-04-27, 17:56:55
                Theme by Leo | Copyright © 2016-2022 Leo | MIT License
                • 跟随系统
                • 浅色模式
                • 深色模式
                • 阅读模式