前言:接着Linux学习(二)vim文本编辑器说

vim 文本编辑器

         u     撤销最近的更改
         /*     撤销之前多次更改
         U     撤消光标落在这行后所有此行的更改
         按ctrl + r    重做最后的“撤消”更改
         .      重复前一个操作
         n.    重复前一个操作n次
         退出模式下
                 e!   直接还原到文件最初打开状态

         v    面向字符选中
         V    面向行选中
         ctrl + v     面向块选中

        配置文件:永久有效
        全局: /etc/vimrc
        个人: ~/.vimrc

        扩展模式:当前vim进程有效
					set nu   显示行号
					set ic    忽略大小写

四,shell脚本编程基础

1.shell脚本基础

         格式要求:首行shabang机制
	                 "#!/bin/bash"
	                 "#!/usr/bin/python"
	                 "#!/usr/bin/perl"

2.创建shell脚本

使用文本编辑器(例如vim)创建文本文件
	      第一行必须包括shell声明序列: "#!"
				        例如:"#!/bin/bash"
		  添加注释
				         注释以 "#" 开头

 shell脚本示例


 脚本调试
           检测脚本中的语法错误		
                     bash -n
		   调试执行
		           bash -x

3.本地变量

变量赋值: name=‘value’
	可以使用引用value:
	        (1) 可以是直接字串:name= "root"
			(2) 变量引用: name="$USER"
			(3) 命令引用: name=`COMMAND`  name=$(COMMAND)

 变量引用: ${name} $name
      "":弱引用,其中的变量引用会被替换为变量值
  	'':强引用,其中的变量引用不会被替换为变量值,而保持原字符串

4.退出状态

进程使用退出状态来报告成功或失败
	 0 代表成功, 1-255代表失败
	 $? 变量保存最近的命令退出状态  (echo执行)

5.算数运算

实现算数运算
	    var=$[ 算术表达式 ]
        var=$(( 算术表达式 ))
        echo ‘算术表达式’ | bc

写脚本时的实用快捷键     ctrl + z 写脚本时可以保存到后台    fg 回到后台脚本    bg 查看有多少后台    shift +^ 跳到行首    shift +$ 跳到行尾    :e! 直接恢复到文件最初的状态


6.逻辑运算

!  非,取反向结果( ! 加到前面,后面要有空格)

7.条件测试

 test 
 [ ]            
 [[ ]]

中括号里面前后必须有空白字符

 /usr/bin/[    相当于test
 man test  整理命令选项(解释很详尽,随时用随时查)

执行操作符
	   &&    并且,同时为真为真     相当于' -a'
		 ||       或者,有一个假为假     相当于'-o'

     用于 [[ ]] 中


数值测试
	   -gt     是否大于
       -ge    是否大于等于
       -eq    是否等于
       -ne    是否不等于
        -lt     是否小于        
        -le    是否小于等于

     前有空格后有空格


字符串测试
	     ==     是否等于
		!=    是否不等于
		 =~     左侧的字符串能否匹配右面的模式
		 -z      字符串是否为空
		 -n      字符串是否为不空

      字符串一般都需要用" " 引起来


文件测试
	  文件存在性及类别测试
	         -e FILE: 文件存在性测试,存在为真,否则为假
             -f FILE:是否存在且为普通文件
      文件权限测试:
             -r FILE:是否存在且可读
			 -w FILE: 是否存在且可写
             -x FILE: 是否存在且可执行
       文件特殊权限测试:
             -u FILE:是否存在且拥有suid权限
             -g FILE:是否存在且拥有sgid权限
             -k FILE:是否存在且拥有sticky权限
       文件大小测试
             -s FILE: 是否存在且非空

8.read命令

read   接受输入
      -p       显示输入的内容
      -s       静默,不显示输入的内容
      -t N     控制输入时间
      -n N    控制输入字符的最大长度
      -d 字符     结束符

通常 -p 放最后


9.bash配置文件

全局配置
      /etc/profile
      /etc/profile.d/*.sh
      /etc/bashrc
个人配置
      ~/.bashrc
      ~/.bashrc_profile
profile 类 
        /etc/profile
        /etc/profile.d/*.sh
		~/.bashrc_profile
	控制 :    环境变量  ; 运行命令或脚本
bashrc  类
        /etc/bashrc
		~/.bashrc
	 控制 :   命令别名和函数  ;  本地变量
修改配置文件生效方法
         重启shell进程
          . 或 source(后面接文件路径命,中间有空格)

10.俩种登录方式

交互式登录
          直接通过终端输入账号密码登录
          使用“su - UserName” 切换的用户
   执行顺序: /etc/profile  -->  /etc/profile.d/*.sh  --> ~/.bash_profile  -->  ~/.bashrc  -->  /etc/bashrc
 非交互式登录   可以继承
           su UserName
           图形界面下打开的终端
           执行脚本
           任何其它的bash实例
   执行顺序: ~/.bashrc  -->  /etc/bashrc  -->  /etc/profile.d/*.sh

额外可以了解可能会用到的      -:普通文件     d: 目录文件      b: 块设备      c: 字符设备      l: 符号链接文件      p: 管道文件pipe      s: 套接字文件socket      wall 发广播      ping -W1 -c1 只执行一次,并且等待一秒      stty -echo 敲命令不显示 不换行      stty echo 解除