当前位置:   article > 正文

shell脚本介绍及基本功能

shell脚本介绍及基本功能

目录

1. 什么是shell

2. hello word

2.1 echo

2.2 第一个脚本

3. Bash的基本功能

3.1别名

3.2 常用快捷键

 3.3 输入输出

3.4 输出重定向 

3.5 多命令执行

3.6 管道符

3.7 通配符和特殊符号


1. 什么是shell

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Shell 既是一种命令语言,又是一种程
序设计语言。 shell 是解释执行的。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务
shell 的类型:
shell 有两种主要的语法类型: Bourne C ,这两种语法是互不兼容的。 Bourne 主要包括 sh ksh
Bash psh zsh ,其中 Bash linux 中使用最广; C 家族主要包括: csh tcsh
  1. # 查询系统中支持的shell
  2. [lisen@localhost root]$ vi /etc/shells
  3. /bin/sh
  4. /bin/bash
  5. /usr/bin/sh
  6. /usr/bin/bash

2. hello word

2.1 echo

echo shell 编程中经常使用,可以将信息输出到终端,也可以将字符重定向到文件等。
echo 命令格式: echo [ 选项 ] [ 输出内容 ]
选项 -e 表示支持反斜杠控制的字符转换

 示例:

  1. [lisen@localhost root]$ echo -e "ab\bc"
  2. ac
  3. [lisen@localhost root]$ echo -e "a\tb\tc\nd\te\tf"
  4. a b c
  5. d e f
  6. [lisen@localhost root]$ echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
  7. a b c
  8. d e f
  9. ## \e[1 表示开启颜色输出, 31m为定义颜色, \e[0m 表示结束颜色输出
  10. ## 30m 黑色;31m 红色;32m绿色;33m黄色;34m蓝色; 35m洋红;36m青色; 37m白色
  11. [root@localhost ~]# echo -e "\e[1;31m abcd \e[0m"
  12. abcd #字体为红色

2.2 第一个脚本

  1. [root@localhost ~]# mkdir sh
  2. [root@localhost ~]# cd sh
  3. [root@localhost sh]# vim hello.sh
  4. #!/bin/bash
  5. # hello.sh
  6. echo "hello world"
  7. # 在执行前需要为脚本赋予可执行权限
  8. [root@localhost sh]# ./hello.sh
  9. -bash: ./hello.sh: 权限不够
  10. [root@localhost sh]# chmod 755 hello.sh
  11. [root@localhost sh]# ./hello.sh
  12. hello world

3. Bash的基本功能

3.1别名

作用: 可以为我们常用的命令指定一个容易记的别名,方便使用。 在命令指定别名后,别名有优先执行
如何指定别名: alias 别名 =‘ 原命令
如果查看别名: alias
示例:
  1. [root@localhost ~]# alias vi='vim'
  2. [root@localhost ~]# alias
  3. alias cp='cp -i'
  4. alias egrep='egrep --color=auto'
  5. alias fgrep='fgrep --color=auto'
  6. alias grep='grep --color=auto'
  7. alias l.='ls -d .* --color=auto'
  8. alias ll='ls -l --color=auto'
  9. alias ls='ls --color=auto'
  10. alias mv='mv -i'
  11. alias rm='rm -i'
  12. alias vi='vim'
关于命令的执行顺序:
  • 如果使用绝对路径或相对路径执行命令,则执行是命令本身
  • 如果没有指定相对或绝对命令,有别名优先执行别名
  • 如果没有指定别名则,执行 Bash 的内部命令
  • 优先级最后的是按照 $PATH 环境变量定义的目录查找顺序找到的第一个命令

注意: 原则上在定义别名时不要与原有的命令,这样容易混淆

别名的持久化: 以命令的方式定义的别名重启之后就不再有效了,如果需要持久化的保持别名在需要在配置文件中指定。该文件在用户主目录下。
  1. [root@localhost ~]# vi .bashrc
  2. # .bashrc
  3. # User specific aliases and functions
  4. alias rm='rm -i'
  5. alias cp='cp -i'
  6. alias mv='mv -i'
  7. #在下面定义自己的别名,该别名永久生效
  8. # Source global definitions
  9. if [ -f /etc/bashrc ]; then
  10. . /etc/bashrc
  11. fi

3.2 常用快捷键

 3.3 输入输出

标准输入输出:

3.4 输出重定向 

3.5 多命令执行

 示例:

  1. # 如果ls命令正确执行,则会执行后一个命令
  2. ls /home/fafd && cd /home/fafd
  3. # 如果ls /home/fafd没有正确执行,则执行后一个命令
  4. ls /home/fafd || mkdir /home/fafd

3.6 管道符

命令格式:命令 1 | 命令 2  
命令 1 的正确输出作为命令 2 的操作对象。注意:如果命令 1 不能正确输出则命令 2 不能执行。
示例:
  1. # 当显示的结果比较多,则可以进行分屏显示
  2. ls /etc | more
  3. # 查看当前的连接
  4. [root@localhost ~]# netstat -an | grep ESTABLISHED
  5. tcp 0 0 192.168.114.128:22 192.168.114.1:3293 ESTABLISHED

3.7 通配符和特殊符号

示例:

  1. [root@localhost ~]# name='zs'
  2. [root@localhost ~]# echo $name
  3. zs
  1. [root@localhost ~]# echo '$name'
  2. #在单引号中失去了$符号的特殊含义
  3. $name
  4. [root@localhost ~]# echo "$name"
  5. #在双引号中$没有失去特殊含义
  6. zs
  7. [root@localhost ~]#
  8. [root@localhost ~]# d=`date`
  9. #将date命令的结果赋给变量d
  10. [root@localhost ~]# echo $d
  11. 20211114日 星期日 13:01:38 CST
  12. [root@localhost ~]# dd=$(date)
  13. #将date命令的结果赋给变量d
  14. [root@localhost ~]# echo $dd
  15. 20211114日 星期日 13:01:58 CST

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/156694
推荐阅读
相关标签
  

闽ICP备14008679号