Linux命令和shell编程基础

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编程基础)