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. @GeneratorValue与@GenericGenerator注解使用心得

    参考博主们的 http://blog.csdn.net/tianxiezuomaikong/article/details/64930151

  2. ASP.NET Core模块化前后端分离快速开发框架介绍之4、模块化实现思路

    源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin 前 ...

  3. 再谈Drupal 7.X的性能优化运行速度问题

    D6升级D7之后,性能着实让人头大,不妨参考下面文章,另外站内搜索DOOOOR里其他优化文章,中西医结合吧.其中CDN和BOOST效果还可以,其他的没试过. 1,服务器 Web服务器建议,推荐使用HA ...

  4. pat1099. Build A Binary Search Tree (30)

    1099. Build A Binary Search Tree (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN ...

  5. jQuery图片组展示插件----Galleria使用简介

    1.技术目标 掌握Galleria插件的基本操作 2.Galleria简介 Galleria是一个jQuery插件,可用于展示多张图片,操作也比较简单, 展示效果也非常不错,如图: 提示:Galler ...

  6. 《大话设计模式》num01---简单工厂模式

    2017年12月10日 20:13:57 独行侠的守望 阅读数:128更多个人分类: 设计模式编辑版权声明:本文为博主原创文章,转载请注明文章链接. https://blog.csdn.net/xia ...

  7. java.sql.SQLException: Zero date value prohibited 报错分析

    今天在使用 iReview 复习词条时,发现 review 页面始终不会跳到下一个词条,应该是前台或者后台出现 BUG 了. 查看浏览器控制台,看到 500 报错,那应该是后台的问题. 登录后台,先查 ...

  8. SSM整合笔记

    SSM整合笔记 1,创建maven项目 创建maven项目过程省略 ps:如果创建完maven项目之后项目报错,可能是没有配置Tomcat 2,在pom.xml里面导入相应的jar的依赖 <pr ...

  9. blog 题解目录

    洛谷: 1.P2430 严酷的训练 2.CF784E Twisted Circuit 3.P1886 滑动窗口 4.P1090 合并果子 5.P1119 灾后重建 6.P1690 贪婪的Copy 7. ...

  10. Sometimes it takes going through something so awful to realize the beauty that is out there in this world.

    Sometimes it takes going through something so awful to realize the beauty that is out there in this ...