kernel主要的功能:
1、内存的管理
2、设备驱动程序
3、文件系统的管理
4、进程的管理
5、网络系统
 
vim /etc/profile.d/
profile(主配置文件)
.d(子配置文件)
 
添加这个配置文件时,加source
 
 
后台运行脚本
1、bash 脚本名称 &   (这种用法关掉当前终端就停止脚本)
(在命令后加上&是把作业放在后台执行)
2、nohup bash 脚本名称 & (关掉终端不会停止脚本)
3、查看后台运行
jobs
 
停止此种脚本方法
1、直接关掉当前终端
2、ps -aux 找到该脚本的PID ,然后使用kill -9 PID
3、使用jobs命令查看该脚本的序列号,然后使用kill -9 %序列号
 
执行shell有三种方法
1、直接用bash解释器执行
当前终端会新生成一个子 bash 去执行脚本。
2.、添加可执行权限
Linux 系统会去 PATH(环境变量) 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
3、source 命令执行,以当前默认 Shell 解释器执行
注:执行shell的命令要以系统所能寻找的路径来执行, ./表示当前目录下
有这个文件才执行
 
source filename 与 bash filename 及./filename执行脚本的区别
 
  • 当shell脚本具有可执行权限时,用bash filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所以”.”是用来表示当前目录的。
  • source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
  • bash filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,子shell新建的、改变的变量不会被带回父shell。子shell继承父shell的环境变量:
子shell新建变量,在父shell中不会生效,但子shell继承父shell的环境变量
使用pstree查看当前bash位置
 
 
 
Shell 变量的命名规范和大部分编程语言都一样:
  • 变量名由数字、字母、下划线组成;
  • 必须以字母或者下划线开头,不能以数字开头
  • 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。
例:
# name="zgn"   
定义变量时等号左右两边无需空格(否则可能会出现错误)
echo ${name}
zgn
给所有变量加上花括号{ },用于定义变量的边界,这是个良好的编程习惯。
 
使用 unset 命令可以删除变量。语法:
unset name
变量被删除后不能再次使用;unset 命令不能删除只读变量。
 
运行shell时,会同时存在三种变量:
1) 局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
 
2) 环境变量
即全局变量,对所有用户有效。所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
 如果你希望查看当前 Linux 的默认 Shell,那么可以输出 SHELL 环境变量:echo $SHELL
 
3) shell变量
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
 
 
 
特殊变量 $0  当前脚本的文件名 $n  传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,
第一个参数是$1,第二个参数是$2。 如脚本里含有$1 ,$2 的变量,在执行脚本
的时候脚本并不知道$1,$2 的值 ,可在执行脚本是后面加上参数
例:  #bash 1.sh A B    ,这里的A即为$1的值  B为$2的值 $#  传递给脚本或函数的参数个数。 $*  传递给脚本或函数的所有参数。 $?  上个命令的退出状态,或函数的返回值。可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。
退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 非0 。
#echo $?   查看返回值 $$  当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
 
 
 
条件表达式
         [ expression ] 
                [ 1 -eq 1 ]
注意:括号中的表达式前后都有空格,否则会报错!
 
   整数比较符
         
         描述                        
                实例                   
-eq, equal
等于
[ 1 -eq 1 ] 为true
-ne, not equal
不等于
[ 1 -ne 1 ] 为false
-gt, greate than
大于
[ 1 -gt 1 ] 为false
-lt, lesser than
小于
[ 1 -lt 1 ] 为false
-ge, greate or equal
大于或者等于
[ 1 -ge 1 ] 为false
-le, lesser or equal
小于或者等于
[ 1 -le 1 ] 为false
 
字符串比较符
   运算符                 
                 描述                        
                  实例                        
                   ==
等于
 [ "a" == "a" ] 为true
                   !=
不等于
[ "a" != "a" ] 为false
                   -n
字符串长度不等于 0 为真
 VAR1=1;VAR2=""
 [ -n "$VAR1" ]为 true
 [ -n "$VAR2" ]为 false
                   -z 
 
字符串长度等于 0 为真
  VAR1=1;VAR2=""
   [ -z "$VAR1" ]为false
   [ -z "$VAR2" ]为 true
 
文件测试
    测试符      
             描述              
                   实例                
-e
文件或者目录存在为真
[ -e path ] path 存在为 true
-f
文件存在为真
[ -f file_path ] 文件存在为 true
-d
目录存在为真
[ -d dir_path ] 目录存在为 true
 -r
有读权限为真
[ -r file_path ]file_path有读权限为真
-w
有写权限为真
[ -r file_path ]file_path有写权限为真
-x
有执行权限为真
[ -r file_path ]file_path有执行权限为真
 
布尔运算符
运算符              
              描述                
              实例                     
非关系,条件结果取反
[  ! 1 -eq 2 ]为true
-a
和关系,在[]表达式中使用
[ 1 -eq 1 -a 2 -eq 2 ]为true
两者都为真才为真
-o
或关系,在[]表达式中使用
[ 1 -eq 1 -o 2 -eq 1 ]为true
两者有一真则为真
 
整数运算
运算符
描述                 
+
加法
-
减法
*
乘法
/
除法
%
取余
 
 运算表达式          
            实例                  
$(())
$((1+1))
$[]
$[]
 
其他运算工具
  命令        
           描述                      
                  实例              
                   let
        赋值并运算,支持++、--
let VAR=(1+2)*3 ; echo $VAR
x=10 ; y=5
let x++;echo $x 每执行一次 x 加 1
let y--;echo $y 每执行一次 y 减 1
let x+=2 每执行一次 x 加 2
let x-=2 每执行一次 x 减 2
                expr
  乘法*需要加反斜杠转义\*
 
expr 1 \* 2   运算符两边必须有空格
expr \( 1 + 2 \) \* 2  使用双括号时要转义
                  bc
 计算器,支持浮点运算、平方等
 bc 本身就是一个计算器,可直接输入命令,进入解释器
echo 1 + 2 |bc 将管道符前面标准输出作为 bc 的标准输入
echo "1.2+2" |bc

shell基础及变量符号的更多相关文章

  1. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  2. shell基础及变量

    一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...

  3. centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课

    centos shell基础知识 alias  变量单引号 双引号   history 错误重定向 2>&1  jobs  环境变量 .bash_history  source配置文件 ...

  4. shell基础、变量、相关脚本

    目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...

  5. Linux Shell基础篇——变量

    一.Shell中的变量 注:这里所说的Shell是Bash Shell,我姑且统称为Shell. Shell中的变量分为用户自定义变量.环境变量.位置参数变量.预定义变量.在Shell中,变量的默认类 ...

  6. Shell基础:变量类型 & 运算符

    Shell变量 Shell支持三种类型的变量 用户自定义变量:用户自定义的变量,变量名以英文字母或下划线开头,区分大小写. 位置变量:根据位置传递参数给脚本的变量,默认支持9个位置变量 $1,$2,$ ...

  7. Linux Shell基础 位置参数变量、预定义变量

    位置参数变量 在 Linux 的命令行中,当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数.其中,$0 代表命令行本身,$1 代表第 1 个参数,$2 代表第 2 个参数 ...

  8. Linux Shell基础 环境变量

    环境变量 环境变量和用户自定义变量最主要的区别在于,环境变量是全局变量,而用户自定义变量是局部变量.用户自定义变量只在当前的 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的 ...

  9. Shell基础之四 变量与运算

    shell变量与运算 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$号,只有引用变量的值时才使用$号.也就是说在内存中,标记变量的变量名称是str,而不是$str. 变量数据的存储方式 ...

随机推荐

  1. dotnet core 命令行使用web deploy 部署项目到远程IIS

    众所周知dotnet cli可以用来编译和生成发布.net core,其实dotnet publish 还能进行WebDeploy.先解释一下使用场景一般是用于持续部署 dotnet publish进 ...

  2. 埃氏筛法(求n以内有多少个素数)

    题目大意:给定整数n,请问n以内有多少个素数 思路:想必要判断一个数是否是素数,大家都会了,并且可以在O(根号n)的复杂度求出答案,那么求n以内的素数呢,那样求就显得有点复杂了,下面看一下这里介绍的

  3. Python踩坑之旅其一杀不死的Shell子进程

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 坑后扩展 1.4.1 扩展知识 1.4.1 技术关键字 1.5 填坑总结 1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程 ...

  4. db2一些简单操作及错误记录

    操作: 删除主键: alter table tablename drop parimary key  添加主键: alter table tablename add primary key(colum ...

  5. c语言数据结构:用标志位实现循环队列

    #include<stdio.h> #include<stdlib.h> #define MAXSIZE 10//定义队列长度 ;//定义标志位 typedef struct ...

  6. mysql数据库字段类型的选择原则

    原文链接:http://blog.csdn.net/u013412790/article/details/51615407 数据库类型的选择对数据库的性能影响很大 1 . 数据类型会影响存储空间的开销 ...

  7. Cocos2d-x v3.1 坐标系统(五)

    Cocos2d-x v3.1 坐标系统(五) 为了能够更好的布局以及了解对象所在的位置,我们必须对Cocos2d-x中的坐标有详细的了解,本篇文章主要就是了解Cocos中用到的坐标系统.学过数学的人都 ...

  8. Python之HTML的解析(网页抓取一)

    http://blog.csdn.net/my2010sam/article/details/14526223 --------------------- 对html的解析是网页抓取的基础,分析抓取的 ...

  9. jquery UI_tabs

    1.tab使用 <!doctype html> <html lang="en"> <head> <meta charset="u ...

  10. POJ 3126 Prime Path(筛法,双向搜索)

    题意:一个4位的素数每次变动一个数位,中间过程也要上素数,问变成另一个的最小步数. 线性筛一遍以后bfs就好.我写的双向,其实没有必要. #include<cstdio> #include ...