什么是shell,shell基础由浅入深,常用的shell命令、用法、技巧

Shell:可以批量处理、自动化完成一系列维护任务,大大减轻管理员的负担!Shell是一个特殊的应用程序,介于操作系统内核与用户之间,充当了一个“命令解释器”的角色。负责接收用户输入的操作指令,并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

如何查看系统所支持的Shell(默认为Bash):

Shell脚本格式:由脚本声明、脚本注释、可执行语句构成:  

Shell脚本执行方式:只要将平时使用的各种Linux命令按顺序保存到一个文本文件,然后添加可执行权限,这个文件就成为一个Shell脚本了!PS:chmod +x 目标文件

   
重定向操作与管道符号:

1.重定向操作:在Linux系统中,一切硬件资源均已文件方式在系统中逻辑显示,例如:硬盘和分区,光盘等设备。包括以下交互设备文件。

A:标准输入(STDIN):默认的设备是键盘,文件编号为0,命令将从标准输入文件中读取在执行过程中需要的输入数据。

B:标准输出(STDOUT):默认的设备是显示器,文件编号为1,命令将执行后的输出结果发送到标准输出文件。

C:标准错误(STDERR):默认的设备是显示器,文件编号为2,命令将执行期间的各种错误信息发送到指定错误文件。

1):重定向输出:指的是将命令的正常输出结果保存到指定的文件中,而不是直接显示在显示器的屏幕上。使用“>”、“>>”符号表示,前者为保存的意思,后者为追加。

例如,将当前主机的CPU类型信息(uname -p)保存到cpuinfo.txt文件中。

例如,当需要保存目标文件原有的内容是,应改为“>>”操作符号,以便追加内容而不是覆盖文件。

2):重定向输入:指的是将命令中接收输入的途径由默认的键盘改为指定的文件获取,重定向输入使用“<”操作符。

例如:通过重定向输入可以使一些交互式操作过程能够通过读取文件来完成。此操作可以大大减少程序被打断的过程,提高脚本执行的效率。(passwd命令的--stdin选项用于识别标准输入)

3):错误重定向:指的是将执行命令过程中出现的错误信息,保存到指定的文件中,而不显示在屏幕上。错误重定向使用“2>”操作符,其中“2”是指错误文件的编号。(而标准输入、输出省略了0和1)

例如:以下操作可以将使用Tar命令进行备份时出现的错误信息保存到error.log文件中。

PS:使用“2>”操作符号,会像使用“>”一样覆盖目标文件内容,若要追加内容则使用“2>>”,也可以使用“>”、“2>”将两类输出信息分别保存到不同文件,也可以使用“&>”保存到同一文件中!

2.管道符号:管道符号作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左边的命令输出结果,将作为右边命令的输入对象,同一行命令中可以使用多个管道。

例如:使用grep命令查询使用“/bin/bash”作为Shell的用户名称时,会输出符合条件的整行内容,在此基础上可以结合管道操作与Awk命令作进一步过滤,只输出用户名和登录Shell。

PS:上例中Awk作用是以冒号“:”作为分隔符,输出第一和第七区域的字符串。其中“-F”部分用来指定分隔符号(可以指定任意符号)

使用Shell变量:

1.自定义新的变量:格式“变量名称=变量值”

自定义变量由系统用户自己定义,只在用户自己的Shell环境中生效,又称本地变量(变量名以字母或下划线开头,区分大小写,建议全大写,不可以包含特殊符号,如:+ - * / ? % # 等)。

例如:

2.查看和引用变量的值

通过在变量名称前添加前导符号“¥”,可以引用一个变量的值。使用Echo命令查看,也可以同时查看多个变量值,中间可以没有空格。

PS:echo–e 选项:用于调用特殊字符,支持反斜线控制的字符转换!

例如:

当引用变量和输出自己添加的新内容时,应以“{}”符号把变量名括起来。

3.变量赋值的特殊操作

A:双引号(“”):主要起界定字符串的作用,特别是当要赋值的内容中包含空格时,必须以双引号括起来;一般情况省略。(PS:双引号主要用于调用其他变量值,或者用到“空格”时,加上双引号,其他情况可省略)

例如:将“Benet 5.0”赋值给变量BENET,应执行“BENET=“Benet 5.0”操作。

在双引号范围内,使用“$”符号可以引用其他变量的值(变量引用)

例如:  

B:单引号(‘):当赋值的内容中需要包含特殊符号 $ " \ 等字符时,应使用单引号括起来,在其范围内的字符作为普通符号对待!

但赋值内容中包含单引号时,可以使用“\”符号进行转义,以免冲突。(PS:也可以省略单引号,对特殊字符用“\”符号进行转义)

例如:

C:反撇号(`):此键位于esc键下面。

反撇号主用于命令替换,允许将命令的执行结果,作为变量的值输出。

例如:若要在一行命令中查找useradd命令程序的位置并列出详细信息:

反撇号也可以使用“$()”符号代替,它俩等价

将上面的命令结果作为wgl的值

4.read命令:此命令用于交互式方法赋值,且可以同时赋多个值。

read 的 -p 命令 :-p用于交互式提示信息。

4.设置变量的作用范围:

默认情况下,自定义的变量只在当前用户的Shell环境生效,当进入其他Shell环境却不生效。

例如:

为了使用户定义的变量在所有Shell中生效,可以使用内部命令Export将指定的变量导入到“全局变量”,也可以同时指定多个变量名作为参数,也能使用此命令定义新变量。

5.数值变量的运算

Shell变量的数值运算多用于脚本程序的过程控制(如循环次数,使用量比较等)在Bash Shell 环境中,只能进行简单的整数运算,不支持小数运算。整数值运算主要通过内部命令expr进行!运算符与变量之间必须有至少一个空格。

+:加法运算

-:减法运算

\*:乘法运算,PS:不能仅适用“*”符号,否则将被当成文件通配符

/:除法运算(不计算小数点后的数字)

%:取模运算,又称取余运算,用来计算整除后的余数(不计算小数点前的数字)。

6.环境变量:主要用于设置用户的工作环境,例如用户宿主目录、命令查找路径、用户当前目录、登录终端等,这些变量由Linux系统管理,会随着用户状态的改变而改变。使用env可以看到当前工作环境下的环境变量。

7.位置变量:又称为位置参数,使用“$1 $2 $3 … $9”表示。例如:当执行命令行“ls -lh /boot/”时,其中第一个位置变量为“-lh”,以“$1”表示;第二个位置变量为“/boot/”,以“$2”表示。命令或脚本本事的名称使用“$0”表示。

8.预定义变量:预定义变量是由Bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,不能更改,也不可以预定义变量赋值。预定义变量使用“$”符号和另一个符号组合表示,常见如下:

$#:表示命令行中位置参数的个数。

$*:表示所有位置参数的内容,即参数名。

$?:表示前一条命令执行后的返回状态,返回值为0表示执行正确,返回任何非0值均表示执行出现异常。

$0:表示当前执行的脚本、进程、程序名称。

补充:shell 执行方式(source bash ./)的区别

用法:  
source file.sh 或 . file.sh    
source命令与"."命令相同    
source file.sh 与 sh file.sh 及./file.sh执行脚本的区别在那里呢?    
1.当shell脚本具有可执行权限时,用sh file.sh与./file.sh执行脚本是没有区别的。./file.sh是因为当前目录没有在PATH中,所有"."是用来表示当前目录的。    
2.sh file.sh 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export来传递。    
3.source file.sh:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面

时间: 2024-08-24 01:25:50

什么是shell,shell基础由浅入深,常用的shell命令、用法、技巧的相关文章

shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量

Shell脚本介绍 shell是一种脚本语言 blog.lishiming.net(阿铭的博客,可以去里面找shell习题)可以使用逻辑判断.循环等语法可以自定义函数,减少重复代码shell是系统命令的集合shell脚本可以实现自动化运维,能大大增加我们的运维效率 Shell脚本结构和执行 开头需要加#!/bin/bash 以#开头的行作为解释说明 脚本的名字以.sh结尾,用于区分这是一个shell脚本写一个简简单的脚本#!/bin/bash#Linletao#2018-5-29echo llt

六十七、shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

一.shell脚本介绍 shell是一种脚本语言  aming_linux  blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 定义函数的目的:为了简化,为了减少重复的代码. shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 二.shell脚本结构和执行 脚本示例: #!/bin/bash echo "123" w ls 开头需要加#!/bin/bash,这个脚本在当前机器执行能识别里面的命令,换一台机器也许就不能

shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

shell脚本介绍 shell脚本结构和执行 开头需要加#!/bin/bash 因为有了#!/bin/bash文件头所以需要给01.sh文件执行权限 [[email protected] shell]# chmod a+x 01.sh 以#开头的行作为解释说明 脚本的名字以.sh结尾,用于区分这是一个shell脚本 执行方法有两种chmod +x 1.sh; ./1.shbash 1.sh 查看脚本执行过程 bash -x 1.sh 查看脚本是否语法错误 bash -n 1.sh date命令用

练习记录--总结Spark基础操作常用的Shell命令

启动hadoop -ls:显示文件夹内容 -put:上传到hdfs上 -cat:显示文件内容 hdfs文件读取成功:三种方式 原文地址:https://www.cnblogs.com/daisy99lijing/p/12293790.html

68.shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

一.shell是什么 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 二.shell脚本结构和执行方法 开头需要加#!/bin/bash 以#开头的行作为解释说明 脚本的名字以.sh结尾,用于区分这是一个shell脚本 执行方法有两种 chmod +x 1.sh; ./1.sh bash 1.sh 查看脚本执行过程 bash

较详细介绍IBM AIX操作系统上常用的korn shell的基础知识

[导读]较详细介绍IBM AIX操作系统上常用的korn shell的基础知识. Korn Shell执行命令的顺序1.关键字,如if,for,function等2.别名(Aliases)3.内部命令,如cd, whence和函数等4.函数Functions5.脚本Scripts.在PATH中的可执行程序※找到命令的根源用下面的命令:whence -v command或:type commandAlias(别名)alias aliasname=command取消一个别名:unalias alia

shell脚本基础、变量

shell脚本基础 知识要点 掌握Shell脚本的基础知识 学会使用Shell变量 学会编写简单的Shell脚本 Shell脚本的应用环境 学习shell脚本的基本流程 看.想.写 shell脚本用在什么地方 编写常用系统维护工具菜单 重要的性能参数.进程和日志分析 自动实现数据备份计划 自动批量搭建特定系统环境 防火墙自动配置脚本 服务器的配置文件安全比对 对批量设备进行远程巡检 Shell脚本的组成元素 shell脚本的基本组成 声明和注释* 系统命令 文本处理工具(grep.cut.sed

shell脚本基础和grep使用

shell脚本基础和grep使用 一.shell脚本基础 (1).命令hash hash的作用:缓存此前命令的查找结果:key-value数据格式(键值),key:搜索键:value:值 hash的使用: 直接使用hash,列出缓存的所有命令 -d选项,hash -d COMMAND:表示清空指定命令的缓存,如hash -d ls -r选项,表示清空所有命令的缓存,hash -r (2).编程语言 强类型变量编程语言 弱类型变量编程语言:? ? (1)bash把所有变量统统视作字符型;? ? 在

bash初识,shell的基础语法及基本特性

1.1 bash初识 1.1.1 什么是bash shell 是一个命令解释器,负责用户程序与内核进行交互操作的一种接口, 将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕. 1.1.2 bash shell的作用 文件管理 用户管理 权限管理 磁盘管理 网络管理 软件管理 应用管理 ...管理 1.1.3 bash两种使用方式 1) 命令:效率低,适合少量工作 2) 脚本:效率高,适合大量工作 1.1.4 命令提示符 [root @ centos7 ~ ] # :超级管理员 [old

shell脚本基础

一.什么是shell shell既是一个可执行程序,又是一种程序设计语言.作为执行程序,它交互式地解释和执行用户输入的命令,是用户和Unix/Linux沟通的桥梁:作为程序设计语言,它可以定义变量和参数,在一定程度具备编程的能力.虽然不属于系统内核的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,shell是最重要的实用程序. 二.shell类型 三.shell脚本在编程程序语言中的分类 bash中的弱类型相对于强类型变量带来三个改