1.bash 是GNU 计划中重要的工具软件之一,目前也是Linux distributions 的标准shell。其主要功能如下:

(1)命令记忆和历史功能,可以通过history查询,存储位置在~/.bash_history

(2)命令和文件补全功能,按tab键

(3)给命令取一个别名:alias

(4)工作控制、前景背景控制job control, foreground, background

(5)(程序化脚本: (shell scripts))

以前在DOS 底下需要程序语言才能写的东西,在Linux 底下使用简单的shell scripts 就
可以帮你达成

(6)通配符Wildcard,*就是其中一个

2.查询指令是否为Bash shell 的内建命令: type

type [-tpa] name
选项与参数:
:不加任何选项与参数时,type 会显示出 name 是外部指令还是 bash 内建指令
-t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义:
file :表示为外部指令;
alias :表示该指令为命令别名所设定的名称;
builtin :表示该指令为 bash 内建的指令功能;
-p :如果后面接的 name 为外部指令时,才会显示完整文件名;
-a :会由 PATH 变量定义的路径中,将所有含 name 的指令都列出来,包含 alias

3.命令较长,一行写不完时,可以使用\+Enter调到下一行继续输入

4.shell的变量功能

变量就是以一组文字或符号等,来取代一些设定或者是一串保留的数据!

(1)变量的取用与设定:echo $变量名, 变量设定规则, unset

(2)给变量赋值=

(3)变量的设定

变量的设定规则
1. 变量与变量内容以一个等号 = 来连结,如下所示:
myname=hui
2. 等号两边不能直接接空格符,如下所示为错误:
myname = hui 或 myname=hui bo
3. 变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:
2myname=hui
4. 变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来,但
o 双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:
『var="lang is $LANG"』则『echo $var』可得『lang is zh_TW.UTF-8』
o 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:
『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』
5. 可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符,如:
『myname=hui\ sai』
6. 在一串指令的执行中,还需要藉由其他额外的指令所提供的信息时,可以使用反单引号『`指令`』或 『$(指
令)』。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本
的设定:
『version=$(uname -r)』再『echo $version』可得『3.10.0-229.el7.x86_64』
7. 若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如下所示:
『PATH="$PATH":/home/bin』或『PATH=${PATH}:/home/bin』
8. 若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量:
『export PATH』
9. 通常大写字符为系统默认变量,自行设定变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ;
10. 取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的设定:
『unset myname』

什么是『子程序』呢?就是说,在我目前这个shell 的情况下,去启用另一个新的shell ,新的那个
shell 就是子程序啦!在一般的状态下,父程序的自定义变量是无法在子程序内使用的。但是透过
export 将变量变成环境变量后,就能够在子程序底下应用了

(4)进入到您目前核心的模块目录?cd /lib/modules/`uname -r`/kernel

(5)取消刚刚设定的 name 这个变量内容

(6)单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符 ,而不会有特殊符号

(7)查看内核版本uname -r

欢迎加入c和c++交流群:

bash shell-linux的预设shell的更多相关文章

  1. linux下的shell和脚本

    1.各种Unix shell linux下的shell基本是从unix环境中的shell发展而来,贴一下wiki:其中我们常用的,可归类为Bourne Shell(/usr/bin/sh或/bin/s ...

  2. Linux系统的shell是什么

    shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash.本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性. 什么是 ...

  3. Linux基础入门 第二章 Linux终端和shell

    Linux终端 进入编辑IP地址命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0 按键“i”:进行编辑 按键“ESC”:退出编辑  按键“:”:输入wq, ...

  4. Linux命令行和shell编程

    Shell Shell是一个程序,用户输入的命令通过shell来传达给内核或其它程序.用户在linux打开一个终端,终端就会自动调用用户的shell. Linux上的Shell有很多种,用的最多是sh ...

  5. ./ . 和#!/bin/bash 辨析Linux如何选择当前执行脚本的shell

    最近遇到一个有趣的问题,让我搞清楚Linux如何选择当前执行脚本的shell 执行cts的的 media stress test 需要安装 android-cts-media-1.0.zip 把这个文 ...

  6. linux bash Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

    在linux下配置shell参数说明 前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid ...

  7. Linux中的shell和bash

    目录 shell shell script sh bash Dash tty .pty 和 pts 学安全的我们,经常会听到说获得某服务器的shell,就是指获得某个服务器的操作权限.我们学习linu ...

  8. 【Linux】【Shell】【Basic】Bash

    命令历史:shell进程会在其会话中保存此前用户提交执行过的命令: ------------------------------------------------------------------ ...

  9. Linux, Mac下Shell 数组 Array 的修理工

    我的测试基本都是在Mac,及Unix环境下测试的,如无特别注明,默认就是Mac 不论你看到这篇随笔是被shell array的奇淫巧技,还是发现shell array就在一对{}里面就可以做那么多勾当 ...

  10. linux基础之Shell Script入门介绍

    本文介绍下,学习shell script编程的入门知识,通过几个入门实例,带领大家走进shell script的神圣殿堂,呵呵,有需要的朋友参考下. 本文转自:http://www.jbxue.com ...

随机推荐

  1. POJ 2406 Power Strings next数组循环节应用、

    题意:就给出个字符串做*的定义.a^0 = "" (the empty string) and a^(n+1) = a*(a^n).    题目要求n的最大值. 思路: 化简上面的 ...

  2. iptables [match] 常用封包匹配参数

    参数 -p, --protocol 范例 iptables -A INPUT -p tcp 说明 匹配通讯协议类型是否相符,可以使用 ! 运算符进行反向匹配,例如: -p !tcp 意思是指除 tcp ...

  3. H3C ACL包过滤的局限性

  4. cdmc2016数据挖掘竞赛题目Android Malware Classification

    http://www.csmining.org/cdmc2016/ Data Mining Tasks Description Task 1: 2016 e-News categorisation F ...

  5. (二)C#编程基础复习——变量和常量

    今天要复习一下C#基础中的变量和常量,所谓变量,就是用来存储特定类型的数据,分为值类型和引类型,可以根据需要随时改变变量中所村存储的数据值,变量必须先声明,然后才能赋值:常量就是固定不变的值,常量的变 ...

  6. SVN提示update更新成功,但是本地文件却没有更新

    问题描述:将仓库的最新版本代码check out到本地后,然后最某个文件做了修改,保存后想通过svn的update来重新得到最新的版本,发现失效. 原因:经过多方查找原因,主要看了以下两篇文档 htt ...

  7. DIRECTORY_SEPARATOR 与 getcwd

    DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’    windows上是’\’ ,php的内置常量是一个显示系统分隔符的命令,php的内部常量,不需要任何定义与包含即可直接 ...

  8. 【11.61%】【codeforces 670F】Restore a Number

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  9. vscode 添加golang插件

    安装好git 下列命令中的路径一定要按照自己实际的路径来 mkdir -p $GOPATH/src/golang.org/x  //路径下创建此文件cd $GOPATH/src/golang.org/ ...

  10. boostrap-非常好用但是容易让人忽略的地方【7】:list-unstyled list-inline

    无样式列表 list-unstyled:去掉ul的默认样式 内联列表 list-inline:将ul子元素放置于同一行