大杂烩知识点总结(四)——Linux(部分)

  1. maninfo 这两个指令请一定要会使用

  2. 内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等;

  3. 每个文件都有一个inode,存储文件的元信息。 使用 stat 命令可以查看文件的inode信息。每个inode都有一个号码, Linux/Unix操作系统不使用文件名来区分文件,而是使用inode号码区分不同的文件。

  4. 目录文件: 链接文件分为符号链接(软链接)文件和硬链接文件

  5. 设备文件:字符设备与块设备最根本的区别就是它们是否可以被随机访问。 如键盘,当我们在键盘上敲下一个单词: "word"的时候, 那么系统肯定是需要按照顺序来进行读取word的字节流(字符流)的,随机访问在此时是没有意义的。

  6. 管道文件: 管道文件一般用于进程间通信,使用mkfifo命令可以创建一个管道文件。

  7. Socket套接字文件: 套接字文件被用于网络进程之间的通信,既可以使2台不同的机器进行通信,也可以用于本机的Socket网络程序。

  8. 一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用ls ‐ahl命令可以看到文件的所有者(所有组) 也可以使用chown 用户名 文件名来修改文件的所有者 。也可以使用chgrp 组名 文件名来修改文件所在的组。

  9. 在linux中,除了bash shell以外,还有很多版本的shell, 例如zsh、dash等等…不过bash shell还是我们使用最多的。 shell 的第一行比较特殊,一般都会以#!开始来指定使用的 shell 类型。

  10. #!/bin/bash
    name="SnailClimb"
    # 使用双引号拼接
    greeting="hello, "$name" !"
    greeting_1="hello, ${name} !"
    echo $greeting  $greeting_1
    # 使用单引号拼接
    greeting_2='hello, '$name' !'
    greeting_3='hello, ${name} !'
    echo $greeting_2  $greeting_3
    
    -----------------------------------------------------------------
    #!/bin/bash
    #获取字符串长度
    name="SnailClimb"
    # 第一种方式
    echo ${#name} #输出 10
    # 第二种方式
    expr length "$name";
    
    --------------------------------------------------------------------
    
    简单的字符串截取:
    
    #从字符串第 1 个字符开始往后截取 10 个字符
    str="SnailClimb is a great man"
    echo ${str:0:10} #输出:SnailClimb
    根据表达式截取:
    
    #!bin/bash
    #author:amau
    
    var="http://www.runoob.com/linux/linux-shell-variable.html"
    
    s1=${var%%t*}#h									正数t之前
    s2=${var%t*}#http://www.runoob.com/linux/linux-shell-variable.h		倒数t之前
    s3=${var%%.*}#http://www						正数.之前
    s4=${var#*/}#/www.runoob.com/linux/linux-shell-variable.html	正数/之后
    s5=${var##*/}#linux-shell-variable.html			倒数/之后
    
    #即 %字符* 之前
    #	#*字符 之后
    #	双%% 或 双## 是正数,单个是倒数。
    
    
  11. bash支持一维数组(不支持多维数组),并且没有限定数组的大小。

    #!/bin/bash
    array=(1 2 3 4 5);
    # 获取数组长度
    length=${#array[@]}
    # 或者
    length2=${#array[*]}
    #输出数组长度
    echo $length #输出:5
    echo $length2 #输出:5
    # 输出数组第三个元素
    echo ${array[2]} #输出:3
    unset array[1]# 删除下标为1的元素也就是删除第二个元素
    for i in ${array[@]};do echo $i ;done # 遍历数组,输出: 1 3 4 5 
    unset arr_number; # 删除数组中的所有元素
    
  12. if 条件语句

    #!/bin/bash
    a=3;
    b=9;
    if [ $a -eq $b ]
    then
       echo "a 等于 b"
    elif [ $a -gt $b ]
    then
       echo "a 大于 b"
    else
       echo "a 小于 b"
    fi
    
  13. for 循环语句

    ##输出当前列表中的数据:
    for loop in 1 2 3 4 5
    do
        echo "The value is: $loop"
    done
    
    ##产生 10 个随机数
    #!/bin/bash
    for i in {0..9};
    do 
       echo $RANDOM;
    done
    
    ##输出1到5:
    #!/bin/bash
    for((i=1;i<=5;i++));do
        echo $i;
    done;
    
  14. while 语句

    ##基本的 while 循环语句
    #!/bin/bash
    int=1
    while(( $int<=5 ))
    do
        echo $int
        let "int++"
    done
    
    #while循环可用于读取键盘信息
    echo '按下 <CTRL-D> 退出'
    echo -n '输入你最喜欢的电影: '
    while read FILM
    do
        echo "是的!$FILM 是一个好电影"
    done
    
  15. 函数

    #无参无返回值
    #!/bin/bash
    hello(){
        echo "这是我的第一个 shell 函数!"
    }
    echo "-----函数开始执行-----"
    hello
    echo "-----函数执行完毕-----"
    
    #输出结果
    -----函数开始执行-----
    这是我的第一个 shell 函数!
    -----函数执行完毕---
    
    
    #有返回值的函数
    #!/bin/bash
    funWithReturn(){
        echo "输入第一个数字: "
        read aNum
        echo "输入第二个数字: "
        read anotherNum
        echo "两个数字分别为 $aNum$anotherNum !"
        return $(($aNum+$anotherNum))
    }
    funWithReturn
    echo "输入的两个数字之和为 $?"
    
    #输出结果:
    
    输入第一个数字: 
    1
    输入第二个数字: 
    2
    两个数字分别为 1 和 2 !
    输入的两个数字之和为 3
    
    
    #带参的函数
    #!/bin/bash
    funWithParam(){
        echo "第一个参数为 $1 !"
        echo "第二个参数为 $2 !"
        echo "第十个参数为 $10 !"
        echo "第十个参数为 ${10} !"
        echo "第十一个参数为 ${11} !"
        echo "参数总数有 $# 个!"
        echo "作为一个字符串输出所有参数 $* !"
    }
    funWithParam 1 2 3 4 5 6 7 8 9 34 73
    
    #输出结果:
    
    第一个参数为 1 !
    第二个参数为 2 !
    第十个参数为 10 !
    第十个参数为 34 !
    第十一个参数为 73 !
    参数总数有 11 个!
    作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值