美文网首页
Linux命令和shell编程基础

Linux命令和shell编程基础

作者: flyrain | 来源:发表于2020-08-31 17:41 被阅读0次

    Linux相关

    ​ Linux是基于Linux内核的操作系统,除了内核外,操作系统还需要一些工具来执行例如文件、文本、进程,有一套通用的这类工具就是GNU工具集,其中Linux shell是GNU核心工具集的一部分

    ​ 在shell命令行中使用bash类命令时,会创建一个新的shell子程序,子shell的变量不继承父shell变量的值,且在子shell中更改删除全局环境变量的值时对父shell都不会产生影响,感觉生成子shell的过程很象 String fatherShell = new String ("childShell"),如下图:

    子shell的变量不继承父shell的变量:


    子shell的变量不继承父shell的变量.png

    ​ 子shell的改变是无法影响父shell的全局环境变量值,且【unset global可以删除全局环境变量global的值,类似的如果在子shell进程中删除,则父shell中仍然有效】:

    子shell的改变是无法影响父shell的全局环境变量值.png

    ​ Linux文件权限采用3个八进制表示,每个八进制依次表示用户、同组用户、其他用户的 rwx(读、写、执行)权限,文件默认是666,文件夹权限是777,对应八进制是 110 110 110 , rw- rw- rw-,但是实际新建的时候需要减去profile下存放umask值,这里有两个,可以看到新建一个文件的权限是666-022 = 644,也就是 rw- r-- r--,实际减去的是022,另一个值可能是文件夹的默认umask

    文件权限测试图:


    文件权限.png

    文件权限的修改就很简单了,用户 + /- 修改的权限种类:

    修改权限.png

    Shell部分相关命令

    1. vim相关命令:

      • h、j、k、l:上下左右

      • G:大写的,末尾

      • gg:开头

      • num G:num行

      • u:撤销

      • p:粘贴,可粘贴删除的

      • y$:复制行

      • v:可视化,配合y,可以指定复制

    2. 重定向命令:

      • >:重定向
      • >>:重定向追加
      • < <<同理 EOF xxxxx EOF
    3. 管道命令:

      • command1 | command2 Linux同时运行这两个命令,第一个命令产生的输出被立即送给第二个命令,不会用到任何缓冲区
    4. if command 【与其他的控制流类似,判断条件是根据exit的值是否为0】:

      • 是以command退出是否为0,觉得是否执行then
      • -eq -n -gt....是数值比较
      • > = != >=:是字符串比较 【要转义】
    5. if-then的高级特性:【无需转义,建议使用】

      • (( 数学表达式 ))
      • [[ 字符串比较 ]] --可以使用模式匹配
      • 语法等同于高级语言,有== ! >> && val++ --val $val == r*
    6. c语言的for:

      • for (( a = 1 ; a < 10 ; a++ )) 【不是a=1,不是${a},不是 expr 】

    相关文章

      网友评论

          本文标题:Linux命令和shell编程基础

          本文链接:https://www.haomeiwen.com/subject/xqhpsktx.html