美文网首页
shell 学习

shell 学习

作者: 奋斗小威 | 来源:发表于2017-07-17 15:52 被阅读0次

    清空命令行:reset

    文件操作:

    显示列表

    ls -l

    ls -la 所有

    ls -l ja* 通配符查找

    创建文件

    touch today.c

    复制文件

    cp src.txt dest.txt

    cp -i src.txt dest.txt 询问

    cp src.txt . 复制到当前目录

    cp -R 目录 dest 复制整个目录到指定路径

    cp c_?1 ../  通配符复制到上级目录

    删除文件

    rm file

    删除目录

    rm -rf 目录

    查看文件类型:

    file 文件

    查看文件内容:

    cat file

    cat -n file 显示行号

    查看文件最后10行

    tail -n 10 file

    查看文件最开始的10行

    head -n 10 file

    创建用户

    useradd -m jack 创建用户的同时,创建了home目录

    userdel -r jack 删除用户

    创建组

    groupadd androidgroup

    分配用户到组

    usermod -G androidgroup jack

    文件权限

    r读 w写 x执行

    drwxr-xr-x

    d rwx r-x r-x

    d目录

    1.文件所属用户具备的权限(root对该文件具备读写执行权限)

    2.文件所属用户的所属组具备的权限(读、执行)

    3.系统的其他用户具备的权限(读、执行)

    rwx必须是固定顺序

    权限 二进制 八进制

    --- 000 0

    --x 001 1

    -w- 010 2

    -wx 011 3

    r-- 100 4

    r-x 101 5

    rw- 110 6

    rwx 111 7

    修改文件权限

    chmod 644 file

    给用户加上执行权限

    chmod u+x file

    改变创建目录的默认权限

    umask 026

    777-026

    改变文件的所属

    chown user.group file

    chown user file

    chown .group file

    ----------------------shell脚本

    输出

    echo

    #!/bin/bash

    2 NDK=10

    3 text="i love shell"

    4

    5 #命令的执行结果的输出作为变量的值

    6 text1=`date`

    7 text2=$(who)

    8

    9 echo $NDK

    10 echo $text

    11 echo "$text very much"

    12 echo "\$NDK"

    13 echo $text1

    14 echo $text2

    命令执行退出的状态:

    0 成功

    127 没有找到命令

    1 未知错误

    126 命令不可执行

    只有if命令的退出状态码为0,才会执行then部分

    if 命令

    then

    命令

    fi

    test数值比较

    -gt

    -eq 等于

    -le

    -ne 不等于

    test字符串比较

    str1 == str2

    str1 != str2

    str1 < str2

    -n str1 长度是否非0

    -z str1 长度是否为0

    文件比较

    -d 检查是否存在,并且是一个目录

    -e 检查file是否存在

    -f 检查是否存在,并且是一个文件

    -r 检查是否存在,并且可读

    -w、-x

    file1 -nt file2 file1比file2新

    file1 -ot file2 file1比file2旧

    case命令

    case 变量 in

    pattern1) 命令;;

    pattern2) 命令;;

    *) 默认命令;;

    esac

    for命令

    for var in list

    do

    命令

    done

    while命令

    while test command

    do

    命令

    done

    —————

    #!/bin/bash

    a=10

    b=20

    #expr命令

    c=${expr $b / $a}

    #方括号

    d=$[$sa * 2]

    #bc 浮点数计算

    #| 管道,一个命令的输出作为另一个命令的输入

    #scale 是自带的内建变量

    e=$(echo “scale=4;$a / 3” | bc)

    #内联输入重定向

    f=$(

    bc<< EOF

    scale=4

    a1= ($a * $b)

    a1/3

    EOF

    )

    echo “c:$c”

    echo “d:$d”

    echo “e:$e”

    echo “f:$f”

    ————————

    #!/bin/bash

    echo “ my shell exit”

    exit_5

    ————————

    #!bin/bash

    if pwd

    then

    echo “ok”

    else

    echo “error”

    if

    ————

    查找 在password 找 testuser 变量

    grep $testuser /etc/passwd

    #!/bin/bash

    testuser=lady

    if grep $testuser /etc/passwd

    then

    echo “ok”

    ls -a /home/$testuser/

    elif ls -d /home/$testuser

    then

    echo “用户不存在,主目录存在“

    else

    echo “testuser not exist ”

    fi

    ————

    #!/bin/bash

    #test命令 如果条件成立,test命令状态为0退出,if条件成立

    var=“”

    if test $var

    then

    echo ” test=true”

    else

    echo “test=false”

    fi

    —————

    #!/bin/bash

    a=10

    b=5

    if [ $a -gt $b ]

    then

    echo ”$a greater than $b“

    else

    echo “$a smaller than $b”

    fi

    ————

    相关文章

      网友评论

          本文标题:shell 学习

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