Linux shell编程命令-Linux基础环境命令学习笔记

1、正则表达式

    1)^开始  *前一个字符重复0次以上

           +       1次以上

           ?        0次或者1次

          .  一个任意字符(.*连用)

          {m,n}      m到n次

          [0-9][a-z]    任意数字或字母

      $结束字符

    2)sed和awk命令

        sed ‘匹配条件/执行的动作‘ /etc/passwd  sed ‘s/old/new/g‘

        awk -F: ‘{print $1}‘ /etc/passwd    1表示第一列,2表示第二列  -F:表示分隔符为:

2、变量

    1)环境变量  系统环境变量(/etc/profile)  用户环境变量(/home/用户名/.bash_profile)

        set查看

    2)位置变量  $0-9

        $0  脚本名称

        $1-9  位置参数

    3)预定义变量

        $!  后台运行的最后一个进程的PID号

        $?  程序退出的代表(0成功)

        $*  所有参数的内容

        $$  当前进程的ID号码

        $#  当前shell的参数个数

        [email protected]  所有参数内容(逐个读取)

    4)自定义变量

        name=[value]  ps:等号两边不能有空格,变量名对大小敏感

        $变量名  取值

3、算术运算

    + - * / %

    $((表达式))

    $[表达式]

    expr expression  expr 5 + 2  变量间有空格

4、内置测试判断

    Test 测试表达式

    [ 测试表达式 ]  ps:测试表达式与[]间一定有空格

    数值比较    

      -lt  小于  ex:test &a -lt &b  echo $?

      -gt  大于

      -eq  等于

      -ne  不等于

      -le  小于等于

      -ge  大于等于

    字串测试

      =  等于

      !=  不等于

      -z 字串  字串长度伪(为0)则真

      -n 字串  字串长度不伪则真

    文件测试

      -e 文件名  文件存在则真

      -r 文件名  文件存在且可读为真

      -w 文件名  可写

      -x 文件名  可执行

      -s 文件名  文件中至少存在一个字符

      -d 文件名  文件存在且为目录

      -f 文件名  文件存在且为普通文件

    !(非)>>-a(与)>>-o(或)

5、命令间的逻辑符合

    &&  逻辑与

      cmd1 && cmd2  cmd1执行成功才执行cmd2

    ||  逻辑或

      cmd1 || cmd2  cmd1失败了才执行cmd2

    ;  无逻辑关系

6、常用命令

    date -s "2016-04-12 15:20:13"  修改系统时间

    date ‘+Y%m%d‘  按照年月日格式输出系统时间

    date -d ‘7 day ago‘ ‘+Y%m%d‘  输出7天前的时间

7、取字符串

    ${变量名:offset:length}       echo ${a%.*}

8、书写规范

    #!/bin/bash    声明运行环境

    运行方式    a.赋予权限直接运行

            b.通过运行环境运行  bash 1.sh  sh 1.sh

            c.  . 1.sh  source 1.sh

9、控制语句

    1)for语句

        a.  for 变量 in 值1 值2...值N    变量依次取值1...值N

            do

            命令集合          {1..50}  `seq 50`  取值1到50

            done

        b.  for((初始化变量;结束循环条件;变量运算))

    2)while循环

        a.  while [ 条件 ]        let i=i+1---i=$[i+1]  i自增1

        b.  while read -r line

            do

            echo $line

            done < /etc/passwd      从路径中逐行读取并赋值给line

    3)if语句

        if 条件

        then

          命令序列

        elif 条件

        then  

          命令序列

        else

          命令序列

        fi

    4)case语句

        a.  case $变量名称 in

            条件1)

                  命令序列

                  ;;

            条件2)

                  命令序列

                  ;;

            *)                  以上都不满足

            esac

10、函数

    a.  name(){

        命令序列

        }

    b.  function name{

        命令序列

        }

11、计划任务

    1)一次性计划任务

      at 时间        ctrl+d结束输入

      at -l  列出当前计划任务

    2)周期性计划任务  service crond start(status,restart)

        a.开机自启动

            chkconfig --list  列出系统服务是否开机自启动(3和5)

        b.制定计划任务内容

            crontab -e(ENTER)  >>  进入vi命令

            时间和命令  分 时 日 月 周(没有用*代替  -表示连续时间  ,表示若干不连续时间  /表示间隔时间) cmd命令    */10 * * * * ntpdate 时间服务器IP 每10分钟同步一次时钟

        c.重启服务  service crond restart

时间: 2024-10-13 19:48:20

Linux shell编程命令-Linux基础环境命令学习笔记的相关文章

Linux Shell脚本入门--cut命令

Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [[email protected] ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符 [[email protected] ~]# cut -c 字符区间 <==用于排列整齐的信息 选项与参数: -d :后面接分隔字符.与 -f 一起使用: -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思: -c :以字符 (

Linux Shell 编程实战技巧

目前,越来越多的企业应用会部署在 Linux 系统上的,而 Linux Shell 脚本可以极大地帮助我们完成这些应用的运维任务.这使得 Linux Shell 开发技能成为开发人员的一项重要的.有竞争力的技能.本文就笔者的实际开发经验,以 Korn Shell 为例分享了脚本开发中的常见问题及相关技巧. 避免定时任务脚本的常见问题 很多脚本在实际使用的时候往往是以定时任务的方式运行,而非手工运行.但是实现同样功能的脚本在这两种运行方式下可能遇到的问题不尽相同. 以定时任务方式运行的脚本往往会遇

京峰Linux Shell编程从入门到精通

课程介绍:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. -------------------课程目录------------------- <Shell编程从入门到精通> ├1.linux下shell编程基础入门_(new).mp4├2.Shell编程之变量及LAMP导航菜单编写_(new).mp4├3.Shell编程之IF条件语句各种案例演练_(new).mp4├4.使用if条件语句编写MySQL备份脚本_(new).mp4

关于linux shell编程,alias rm=&#39;cp [email&#160;protected] ~/backup; rm [email&#160;protected]&#39;

书上的这个例子需要在ubuntu的低版本的系统才支持,现在基本上都不支持了,想实现也很简单自己写一个脚本先备份再删除. alias也只是做了一次替换alias rm='cp [email protected] ~/backup; rm [email protected]' rm text.txt被转换成了cp  [email protected] ~/backup; rm [email protected] text.txt即cp  ~/backup; rm  text.txt可以看到text.

Linux Shell编程之二选择结构

Shell编程学习之二 一.bash的条件测试 测试方法或者说测试书写: test EXPR [ EXPR ] [[ EXPR ]] 例如:测试变量 User_Name 的之是否为root test $User_Name="root" [ $User_Name == "root" ] [[ $User_Name == "root" ] 根据比较时操作数的类型,测试类型分为: 测试类型 运算符 运算符所代表的意义 示例 整形测试 -gt -lt -

Linux Shell编程之五字符串的处理

shell编程之字符串处理 在 shell 中,由于是一种弱类型的语言,在没有事先申明变量类型的情况下,所有的变量都是字符串.所以对字符串的处理就显得相当重要了. 下面介绍常见的对字符串处理的操作. 一.字符串切片 ${string_var:offest:length},类似于数组元素的提取. # 这里的string_var是一个变量,offest 是字符串的开始偏移量,length是切去字符串的长度 var=dhcpd:x:177:177:DHCP server:/:/sbin/nologin

Linux多线程编程和Linux 2.6下的NPTL

Linux多线程编程和Linux 2.6下的NPTL 在Linux 上,从内核角度而言,基本没有什么线程和进程的区别--大家都是进程.一个进程的多个线程只是多个特殊的进程他们虽然有各自的进程描述结构,却共享了同一 个代码上下文.在Linux上,这样的进程称为轻量级进程Light weight process.致此,就是关于线程的总体概念了,我们往往就在了解这个概念的情况下开始我们的多线程编程之旅.这对于多线程编程入门已经足够了,然而事 实上线程却要复杂的多. 首先多线程间的优先级调度,内存资源(

python基础教程_学习笔记26:好玩的编程

好玩的编程 程序设计的柔术 当大家坐下来并计划应该如何组织程序的时候,对于这个具体的程序,还没有任何的经验.在实现功能的时候,会逐渐地学到对原始设计有用的新知识.不应该无视一路走来所吸取的教训,而应该将它们用于软件的重新设计(或重构)中. 灵活性的实现包括许多方面,下面是其中两个: 原型设计:python最棒的功能之一就是可以快速地编写程序.编写原型程序是更充分地了解问题的一种很好的方法. 配置:灵活性有很多种存在形式.配置的目的就是让程序某部分的改变更简单,对于你和用户来说都是这样. 第三点是

【转】linux 用户线程、LWP、内核线程学习笔记

[好文转发---linux 用户线程.LWP.内核线程学习笔记] 在现代操作系统中,进程支持多线程.进程是资源管理的最小单元:而线程是程序执行的最小单元.一个进程的组成实体可以分为两大部分:线程集合资源集.进程中的线程是动态的对象:代表了进程指令的执行.资源,包括地址空间.打开的文件.用户信息等等,由进程内的线程共享. 线程有自己的私有数据:程序计数器,栈空间以及寄存器. Why Thread?(传统单线程进程的缺点) 1. 现实中有很多需要并发处理的任务,如数据库的服务器端.网络服务器.大容量

python基础教程_学习笔记12:充电时刻——模块

充电时刻--模块 python的标准安装包括一组模块,称为标准库. 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 任何python程序都可以作为模块导入. $ cat hello.py #!/usr/bin/python print "Hello,signjing!" $ ./hello.py Hello,signjing! 假设将python程序保存在/home/ggz2/magiccube/mysh/p