Linux-shell基本

Shell 教程
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
Shell 在线工具

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

业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的 “shell编程” 都是指 shell 脚本编程,不是指开发 shell 自身。

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)……

本教程关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。
在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。

第一个shell脚本
打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。

输入一些代码,第一行一般是这样:

实例

#!/bin/bash

echo "Hello World !"

运行实例 »

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
echo 命令用于向窗口输出文本。

扫描二维码关注公众号,回复: 4864513 查看本文章

运行 Shell 脚本有两种方法:
1、作为可执行程序

将上面的代码保存为 test.sh,并 cd 到相应目录:
**

chmod 755  test.sh  #使脚本具有执行权限
./test.sh  #执行脚本**
或者  
 bash text.sh

输出选项:echo -e "\e [1;31m hello world \e[0m"其中31m是代表颜色。

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

**bash***基本功能 **
1.命令别名与快捷键 :(alias 别名=‘原命令’ 删除别名unalias 别名
命令生效顺序:1用绝对路径或者相对路径的命令
2 别名
3 bash命令
4 $PATH环境变量定义目录查找顺序的第一个。
常用快捷键
终端上:ctrl +c 强制终止
ctrl +l 清屏
ctrl +u 从光标位置删除到行首
ctrl +a/e 跳到 行首/行尾
ctrl +z 命令放后台
crtl +r 在历史命令中搜索

2.历史命令
history [选项] [历史命令保存文件]
-c:清空历史命令
-w:把缓冲中的历史写入文件~/bash_history
‘!!’:执行上一次命令
“!字符”:重复执行最后一条一该字符开头的命令 。

3.输出重定向 命令 > 文件名 (>>:追加文件 )。
错误信息:命令 >文件名(注意点是>>紧挨着文件名);
同时保存:命令 & > 文件
输入重定向: wc [选项] [文件名]
-c:统计字数
-w:统计单词数
-l:统计行数
4.管道符
多命令顺序执行

  • ; 命令1;命令2(多个命令顺序执行)
  • && 命令1&&命令2(逻辑与,命令1真才执行命令2)
  • || 命令1||命令2(逻辑或,命令1为假才执行命令2)

命令格式:命令1|命令2
命令1的正确输出作为命令2的操作对象
例:ls -l /etc | more
netstat -an | grep ESTABLISHED | wc -l(看看有多少用户在访问服务器)

5.通配符
最主要的三个就是

  • ?匹配任意一个字符
  • *匹配任意多个字符
  • []匹配中括号中的任意一个字符
  • BASH中的其他特殊符号

在这里插入图片描述

     尽量不用反引号而改用$(),因为反引号和单引号容易混淆。

猜你喜欢

转载自blog.csdn.net/Yehappy_le/article/details/86238079