zoukankan      html  css  js  c++  java
  • 操作系统 Linux ex2 note

    locate filename 搜索文件

    将当前用户目录下的文件清单输出到文件list1.txt(当前用户目录下)中、
    ls -l > list1.txt

    利用管道命令将根(/)下所有修改日期在4月24日的文件清单输出到list2.txt(当前用户目录下)。
    ls / -l
    ls / -l | grep '4月 24' > list2.txt

    将文件list1.txt与文件list2.txt合并,输出到list.txt。
    cat list1.txt list2.txt > list.txt

    利用nano编写Linux脚本程序sum.sh,其功能如下:
    请求用户输入正整型数n
    判断n的值,若n小于或等于0,则输出错误信息
    <当前时间> Input Error! n = <输入的n的值>
    追加到error.log,并以5号错误代码退出脚本。
    若输入有效,则计算从1到n的所有整数的和,输出到sum.r。


    执行方式
    (1) bash script-name或者sh script-name
    (2) path/script-name或者./script-name

    注意:
    (1)在Shell中如果一行的第一个字母是#,则是注释,但是上面两个是写在第一行,所以不是脚本注释行,如果写在某个命令之后,则变成注释行。
    (2)sh为bash的软链接,大多数情况下,脚本的开头使用“#!/bin/bash”和“#!/bin/sh”是没有区别的,但更规范的写法是在脚本的开头使用“#!/bin/bash”。

    #!/bin/bash 注释
    read -p "input" n 输入
    echo "n is $n" >> ./out.txt 输出到文件
    echo "n is $n" 输出到控制台

    ------------------------------------------------------------------------------
    两条命令一起运行,输在同一行,用;隔开。最大不超过255字符
    date显示时间
    who显示当前登录到该系统的用户

    脚本第一行#!/bin/bash/
    除第一行第一个字符外,可以用#表示注释

    运行
    ./test1
    没有权限
    创建文件时,umask值为默认权限设置 022,系统以只读和只写权限创建该文件
    用chmod u+x test1修改权限
    chmod 777 a
    ./a
    此法 shell储存文件a没有后缀名

    显示消息
    echo ok 在字符串不含引号时可不用引号
    echo 'ok'
    echo "ok" 可用双引号、单引号
    用上面的会自动换行,若不换行,加参数-n
    echo -n "ok"
    需要用引号包围字符串,同时确保该字符串末尾有个空格(好像不用?)

    使用变量

    环境变量
    $USER
    $UID
    $HOME
    只能大写

    用户变量
    不超过20字符,区分大小写
    变量、等号、变量值之间不允许有空格
    通过$引用
    被赋值不用$,赋值需要
    a=$b

    反引号
    允许将整个命令的输出赋值给变量
    testing=`date`
    用反引号捕获当前日期,并用它在脚本中创建唯一的文件名
    #!/bin/bash
    today=`data +%y%m%d` #加号左边必须有空格,右边没有。用反引号
    ls /bin -al > log.%today

    输出重定向
    date > test.txt 若文件存在,覆盖
    date >> test.txt 附加

    输入重定向
    command < inputfile
    wc命令
    wc < test6
    默认生成3个值
    文本行数
    文本单词数
    ’文本字节数

    sort命令

    数学计算
    aa=4
    bb=`expr $aa + $aa0` #反引号
    echo "$bb"

    使用括号
    var1=$[1 + 5]

    bash shell只支持整数算法
    关于浮点小数 P142、143

    退出脚本
    退出状态0~~255,成功0
    退出状态表P145
    默认以shell脚本最后一条命令的退出状态退出
    可以改为自己的退出状态代码
    exit 5
    exit $var3

    if - then 语句
    if 语句命令返回的退出状态为0,就会执行then后面的语句;非0,跳过。

    if command
    then
    commends
    fi

    if date
    then
    echo "it worked"
    fi

    if command; then #在command末尾加分号
    commands
    fi

    if-then-else语句
    if command
    then
    commands
    else
    commands
    fi

    elif
    if command
    then
    commands
    elif command
    then
    commands
    fi

    test命令
    if test condition
    then
    commands
    fi

    if [ condition ]
    then
    conditions
    fi
    方括号前后要加空格

    数值比较
    n1 -eq n1 ==
    -ge >=
    -gt >
    -le <=
    -lt <
    -ne !=
    要注意的是 [ ] 中引用变量需要 $

    字符串比较
    str1 = str2
    str1 != str2
    str1 < str2
    str1 > str2
    -n str1 检查str1的长度是否大于0
    -z str1 检查str1的长度是否为0

    if [ $USER = $testuser ]
    if [ $val1 > $val2 ]
    if [ $val1 > $val2 ]
    if [ -n $val ]
    if [ -z $val ]

    文件比较 P155
    -d -e -f ................

    复合条件检查
    [ condition_1 ] && [ condition_2 ]
    [ condition_1 ] || [ condition_2 ]

    if then高级特征
    双圆括号 P162
    (( expression ))
    (( val2=$val1 ** 2 )) #取幂

    双方括号 P162
    [[ expression ]] 提供模式匹配
    正则表达式......

    case p163


    1. 利用nano编写Linux脚本程序sum.sh,其功能如下:
    请求用户输入正整型数n
    判断n的值,若n小于或等于0,则输出错误信息
    <当前时间> Input Error! n = <输入的n的值>
    追加到error.log,并以5号错误代码退出脚本。
    若输入有效,则计算从1到n的所有整数的和,输出到sum.r。

    #!/bin/bash

    touch error.log
    touch sum.r

    read -p "请输入正整数:" n
    if [ "$n" -le 0 ]
    then
    echo "$(date) Input Error! n=$n" >> error.log
    exit 5
    else
    sum=0
    while [ "$n" -gt 0 ]
    do
    sum=$[ $sum + $n ]
    n=$[ $n - 1 ]
    done
    echo "从1到n的和为:$sum" >> sum.r
    fi


    用 bash sum.sh运行
    用 echo $?可以获得exit返回的值

  • 相关阅读:
    excel 读取
    MSDN异步编程概述 [C#] zzhttp://www.cnblogs.com/hxhbluestar/articles/60023.html
    window.opener showModelessDialog showModalDialog 获取|控制父窗体的区别
    MySql中文乱码解决方法
    关于随机数
    javascript 日期处理(注意事项)
    一个简单访问office程序的控件,不依赖officedll
    关于12306的bug
    回车提交
    js动态添加外部js(顶)
  • 原文地址:https://www.cnblogs.com/cbattle/p/9018443.html
Copyright © 2011-2022 走看看