• linux点滴


    很想好好用好linux,但是我的台式的显示器很是问题,或许我努力查查问题,它将不是问题。

    linux的一些特点,我想自己在使用linux的时候能够有一些感受
    Everything (including hardware) is a file
    所有的事物(甚至硬件本身)都是一个的文件。
    Configuration data stored in text
    以文本形式储存配置数据。
    Small, single-purpose program
    程序尽量朝向小而单一的目标设计
    Avoid captive user interfaces
    尽量避免令人困惑的用户接口
    Ability to chain program together to perform complex tasks
    将几个程序连结起来,处理大而复杂的工作。

    Small is beautiful.
    Make each program do one thing well.
    Build a prototype as soon as possible.
    Choose portability over efficiency.
    Store data in flat text files.
    Use software leverage to your advantage.
    Use shell scripts to increase leverage and portability.
    Avoid captive user interfaces.
    Make every program a filter.

    awk学习:http://coolshell.cn/articles/9070.html & the awk programming
    现在工作主要做日志分析,所以awk用到比较多,也非常神奇的感觉到它的强大, 日志过滤,拆分,提取,模式匹配&分析判断
    linux一些基本知识:http://coolshell.cn/articles/8883.html

    TCP/IP看得我太晕乎乎了,明天就从看awk和linux开始吧。刚好工作中也正需要。

    上上周周末将shell学习了下,现在对其进行简单地整理。

    对常用的语法记录下来,关键在于会用其来解决一些问题。当遇到问题,如何借助身边的资源来解决相关的问题。

    1. shell的变量和数组

    shell的变量无需进行声明,默认其为字符串变量。所以当使用字符串常量(若字符串常量中不含空格),有时候不需要引号。但是当需要进行算术运算的时候,需要进行特别处理,因为shell默认字符串处理,a=1+1,不会理解为a=2,而是字符串1+1.为了区分变量名和字符串,会在变量前加一个$的符号。

    shell的普通数组

    普通数组使用()来进行声明。并且

    shell的关联数组使用declare -A arr_name来完成

    2. shell的基本运算

    赋值运算

    shell的执行都是以空格为分段来执行一个命令。所以赋值运算的等号的左右不能含有空格。

    算术运算

    由于shell默认的变量类型为字符串,如果需要做数学运算,有几种方法,

    一种方法是let和bc命令。

    一种方法是双括号

    关系运算

    shell中存在算术比较运算,字符串比较运算以及文件判断运算。这些运算常用在if的判断中,作为if判断的条件。注意if判断的条件是用[],并且[]前后需要空格。

     
    运算符 描述 示例
    文件比较运算符
    -e filename 如果 filename 存在,则为真 [ -e /var/log/syslog ]
    -d filename 如果 filename 为目录,则为真 [ -d /tmp/mydir ]
    -f filename 如果 filename 为常规文件,则为真 [ -f /usr/bin/grep ]
    -L filename 如果 filename 为符号链接,则为真 [ -L /usr/bin/grep ]
    -r filename 如果 filename 可读,则为真 [ -r /var/log/syslog ]
    -w filename 如果 filename 可写,则为真 [ -w /var/mytmp.txt ]
    -x filename 如果 filename 可执行,则为真 [ -x /usr/bin/grep ]
    filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
    filename1 -ot filename2 如果 filename1 比 filename2 旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
    字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
    -z string 如果 string 长度为零,则为真 [ -z “$myvar” ]
    -n string 如果 string 长度非零,则为真 [ -n “$myvar” ]
    string1 = string2 如果 string1 与 string2 相同,则为真 [ “$myvar” = “one two three” ]
    string1 != string2 如果 string1 与 string2 不同,则为真 [ “$myvar” != “one two three” ]
    算术比较运算符
    num1 -eq num2 等于 [ 3 -eq $mynum ]
    num1 -ne num2 不等于 [ 3 -ne $mynum ]
    num1 -lt num2 小于 [ 3 -lt $mynum ]
    num1 -le num2 小于或等于 [ 3 -le $mynum ]
    num1 -gt num2 大于 [ 3 -gt $mynum ]
    num1 -ge num2 大于或等于 [ 3 -ge $mynum ]

    逻辑运算

    3. shell的控制循环

    条件控制

    for循环和while循环

    4. shell的函数、参数,返回值,获取日期

    shell的函数的声明方式function func_name()。 在函数名称后的括号里面不添加参数。参数以$1,$2等方式进行传递。函数的返回值为$?,函数的参数的个数为$#。

    5. shell的文件判断

    shell的数组与函数等,好好的梳理下

    $n        $1 the first parameter,$2 the second…
    $#        The number of command-line parameters.
    $0        The name of current program.
    $?        Last command or function’s return value.
    $$        The program’s PID.
    $!        Last program’s PID.
    $@        Save all the parameters.

  • 相关阅读:
    [置顶] java 通过classloader加载类再通过classforname实例化
    Linux内核源代码解析——用户发送数据包的起源之sendto
    POJ 2774 Long Long Message&&HDU 1403 Longest Common Substring&&COJ 1203
    add-two-numbers-ii
    【转载】React初学者入门须知
    【Todo】【转载】ES6的学习记录
    【转载】Java中如何写一段内存泄露的程序 & ThreadLocal 介绍和使用
    【Todo】深入理解Javascript系列
    【转载】什么是优秀技术团队
    【转载】React入门-Todolist制作学习
  • 原文地址:https://www.cnblogs.com/TsingLo/p/4523131.html
Copyright © 2020-2023  润新知