zoukankan      html  css  js  c++  java
  • LINUX基础内容

    在Linux中,有三种基本的文件类型:

    1) 普通文件

    普通文件是以字节为单位的数据流,包括文本文件、源码文件、可执行文件等。文本和二进制对Linux来说并无区别,对普通文件的解释由处理该文件的应用程序进行。

    2) 目录

    目录可以包含普通文件和特殊文件,目录相当于Windows和Mac OS中的文件夹。

    3) 设备文件

    有些教程中称特殊文件,是一个含义。Linux 与外部设备(例如光驱,打印机,终端,modern等)是通过一种被称为设备文件的文件来进行通信。Linux 输入输出到外部设备的方式和输入输出到一个文件的方式是相同的。Linux 和一个外部设备通讯之前,这个设备必须首先要有一个设备文件存在。

    例如,每一个终端都有自己的设备文件来供 Linux 写数据(出现在终端屏幕上)和读取数据(用户通过键盘输入)。

    通过 ls -l 列出的文件,每一行都是以 a、d、- 或 l 开头,这些字符表示文件类型:

    前缀 描述
    - 普通文件。如文本文件、二进制可执行文件、源代码等。
    b 块设备文件。硬盘可以使用块设备文件。
    c 字符设备文件。硬盘也可以使用字符设备文件。
    d 目录文件。目录可以包含文件和其他目录。
    l 符号链接(软链接)。可以链接任何普通文件,类似于 Windows 中的快捷方式。
    p 具名管道。管道是进程间的一种通信机制。
    s 用于进程间通信的套接字。

    元字符是具有特殊含义的字符。* 和 ? 都是元字符:

    • * 可以匹配 0 个或多个任意字符;
    • ? 匹配一个字符

    例如:

    $ls ch*.doc

    可以显示所有以 ch 开头,以 .doc 结尾的文件。

    cat查看内容命令查看文件内容$ cat filename;

    wc统计内容命令统计文件中的字符等信息$wc filename;  

    • 第一列:文件的总行数
    • 第二列:单词数目
    • 第三列:文件的字节数,即文件的大小
    • 第四列:文件名

    cp复制文件命令$cp source_file destination_file;

    mv重命名文件命令$mv old_file new_file;

    mkdir创建目录命令:$mkdir dirname

    点号(.)

    一个点号(.)表示当前目录,两个点号(..)表示上级目录(父目录)。

     如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。

    转移字符有:下面的转义字符都可以用在 echo 中:

    转义字符 含义
    \\ 反斜杠
    \a 警报,响铃
    \b 退格(删除键)
    \f 换页(FF),将当前位置移到下页开头
    \n 换行
    \r 回车
    \t 水平制表符(tab键) 
    \v 垂直制表符

    使用举例:echo -e "Value of a is $a \n"

    命令替换

    命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。

    命令替换的语法:

    1. `command`

    注意是反引号,不是单引号,这个键位于 Esc 键下方。

    使用举例:

    DATE=`date`

    echo "Date is $DATE"

    变量替换

    变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值

    可以使用的变量替换形式:

     

    形式 说明
    ${var} 变量本来的值
    ${var:-word} 如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
    ${var:=word} 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
    ${var:?message} 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。若此替换出现在Shell脚本中,那么脚本将停止运行。
    ${var:+word} 如果变量 var 被定义,那么返回 word,但不改变 var 的值。

    expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

    使用举例:val=`expr 2 + 2`

    两点注意:

    • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
    • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
    算术运算符列表
    运算符 说明 举例
    + 加法 `expr $a + $b` 结果为 30。
    - 减法 `expr $a - $b` 结果为 10。
    * 乘法 `expr $a \* $b` 结果为  200。
    / 除法 `expr $b / $a` 结果为 2。
    % 取余 `expr $b % $a` 结果为 0。
    = 赋值 a=$b 将把变量 b 的值赋给 a。
    == 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
    != 不相等。用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。

    注意:

    • 乘号(*)前边必须加反斜杠(\)才能实现乘法运算;
    • 条件表达式要放在方括号之间,并且要有空格,例如 [$a==$b] 是错误的,必须写成 [ $a == $b ]。

    关系运算符

     关系运算符
    运算符说明举例
    -eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 true。
    -ne 检测两个数是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
    -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
    -lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
    -ge 检测左边的数是否大等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
    -le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

    布尔运算符

     布尔运算符
    运算符说明举例
    ! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
    -o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
    -a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。

    字符串运算符列表

    字符串运算符
    运算符说明举例
    = 检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
    != 检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
    -z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。
    -n 检测字符串长度是否为0,不为0返回 true。 [ -z $a ] 返回 true。
    str 检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true
  • 相关阅读:
    Nginx目录结构与配置文件详解
    最新Sql语句来啦
    一个小工具帮你搞定实时监控Nginx服务器
    javascript学习笔记基于对象续
    Buffer解析
    使用用户自定义控件实现asp.net的的权限管理
    asp.net java 的十大关键技术
    程序员的基本素质
    无法编译的异常解决
    程序员的健康作息时间 该看看啊
  • 原文地址:https://www.cnblogs.com/han1ning1/p/6623083.html
Copyright © 2011-2022 走看看