[Linux]Shell的学习

  1. 什么是Shell

    Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

    Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

    Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

  2. Shell脚本

    Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

    业界所说的 shell 通常都是指 shell 脚本,但我们要知道,shell 和 shell script 是两个不同的概念。

    由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。

  3. Shell环境

    Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

    Linux 的 Shell 种类众多,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

以上几种Shell具体区分如下:

  1. sh(全称 Bourne Shell): 是UNIX最初使用的 shell,而且在每种 UNIX 上都可以使用。
    Bourne Shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。
  2. bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。
    与 Bourne Shell 完全兼容,并且在 Bourne Shell 的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多 C Shell 和 Korn Shell 中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。
  3. csh(全称 C Shell): 是一种比 Bourne Shell更适合的变种 Shell,它的语法与 C 语言很相似。
  4. Tcsh: 是 Linux 提供的 C Shell 的一个扩展版本。
    Tcsh 包括命令行编辑,可编程单词补全,拼写校正,历史命令替换,作业控制和类似 C 语言的语法,他不仅和 Bash Shell 提示符兼容,而且还提供比 Bash Shell 更多的提示符参数。
  5. ksh (全称 Korn Shell): 集合了 C Shell 和 Bourne Shell 的优点并且和 Bourne Shell 完全兼容。
  6. pdksh: 是 Linux 系统提供的 ksh 的扩展。pdksh 支持人物控制,可以在命令行上挂起,后台执行,唤醒或终止程序。
  1. 创建一个Shell脚本

    在文件夹中用touch或文本编辑器vi/vim命令新建一个以.sh为扩展名的脚本,如test.sh。

    注意扩展名不影响脚本执行,但要做到见名知意。

    输入第一行代码。

    1. #!/bin/bash  
    2. echo "Hello World !"  

    其中,#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种shell;

    Echo命令用于向窗口输出文本。

    运行shell:

    1. 作为可执行程序:

      将代码保存后,进入相应的目录,执行以下命令

      chmod u+x ./test.sh #使脚本具有执行权限

      ./test.sh #执行脚本

      注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

    2. 作为解释器参数

      这种运行方式是直接运行解释器,参数是shell脚本的文件名:

      /bin/sh test.sh

      这种方式运行脚本不需要字第一行指定解释器信息。

原文地址:https://www.cnblogs.com/soaplay/p/9005413.html

时间: 2024-08-30 10:05:08

[Linux]Shell的学习的相关文章

linux shell 命令学习(5) xxd- make a hexdump or do the reverse.

对于标准输入或者给定的文件,显示其16进制的内容.也可以反过来进行转换. ? 1 2 3 xxd -h[elp] xxd [options] [infile [outfile]] xxd -r[evert] [options] [infile [outfile]] 如果没有指定输入文件, 则采用标准输入. -b: 以2进制格式进行输出 ? 1 2 3 4 [[email protected] src]$ xxd -b train.ini 0000000: 01011011 01110100 01

Linux shell 菜鸟学习笔记....

20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的变量 定义变量直接用 variablename= value 就可以 其中变量名与等号之间没有空格. 使用变量的时候 是 ${vairablename} 的方式进行使用 大括号可以有可以没有,但是建议有. 可以使用 for file in `ls /etc/` 的方式来循环取得文件名. 使用do d

Linux shell command学习笔记(一)

Key points: Shell种类,echo,$,基本语法,ls,man,su,sudo,grep,ps,clear,cp,rm,cat,more 参考:http://www.jb51.net/LINUXjishu/45329.html Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell.在现在的大多数Linux发行版中,默认的Shell一般都是Bourne again shell(bash). <echo> echo $SHELL 在Linux中,$符号

linux shell脚本学习笔记一

一.文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]-r filename 如果 filename可读,则为真 [ -r

Linux shell 编程学习笔记--第一章

1.内核从开机自检就放在计算机内存,直到计算机关闭为止,应用程序是放在计算机硬盘的,需要时才调入内存执行. 2.shell就是应用程序,它是连接内核和用户程序的桥梁.用户登入Linux系统的时候,shell就会被调入内存执行.shell图的关系..缺 3.用户有两种方式打开shell(1)通过图形界面的方式,来操作Linux操作系统 (2)两个软件,远程登录.其中登录要输入的IP没太明白,输入谁的IP 4.脚本语言和编译型语言的区别和联系.脚本语言易学难精. 1.3.1 shell脚本的基本元素

linux shell 脚本学习总结

shell 编程: shell 开头必须指定bash:#!/bin/bash shell 的执行方式: 1.  ./1.sh    执行当前目录下的1.sh,1.sh要是可执行文件 2.  bash  /usr/local/1.sh 定义变量   aa=’qqq’        =两侧不能有空格,使用变量 ${aa} Shell特殊含义变量 $$ 取当前脚本的进程id,就是pid $0  取当前文件名 $n  n是大于0的数字,n是几就是第几个参数 $#  取参数的个数 $* 取所有参数 $?

Linux Shell基础学习(一)

shell脚本是什么呢?简单来说,它就是许多命令的一个集合:Shell脚本是一个面向过程的编程语言,它是通过解释器来解释运行脚本里的每一条命令: 面向过程的编程语言的元素:变量.数组.流程.函数 下面就来学习一下Shell脚本吧! 一.变量      变量:可以理解它为一个命名的内存空间,里面的数据是可变的 1.变量命名法则: (1).只能使用数字.字母或下划线,而且不能以数字开头 (2).不能使用系统中的关键字:比如if,elif,fi,then,for...等 (3).见名知义 2.变量类型

Linux Shell编程学习笔记一:shell简介

Q:什么是Shell,什么是shell脚本? A:Shell是一种用C语言编写的程序,它是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作.它是命令语言.命令解释程序及程序设计语言的统称.它的作用就是遵循一定的语法将输入的命令加以解释并传给系统. 命令解释程序:shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用.用户在提示符下输入的命令都由shell先解释然后传给Linux核心.

linux shell脚本学习(三)

1.在grep中, ^标记着单词的开始, $ 标记着单词的结束. 查看一个单词是否在linux自带的词典中,脚本如下: #bin/sh #文件名:checkword.sh word=$1 grep "^$1$"  /usr/share/dict/american-english -q if [ $? -eq 0 ]; then echo $word is a dictionary word; else echo $word is not a dictionary word; fi 2.