简介
Shell 本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并发(并行)的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性及其使用方法,是用好Linux系统的关键。
Shell有各种不同的shell,每种shell有不同的命令提示符,一般是在用户当前目录上加$、%、#或>符号。现在用得最多的也是一般常的shell是bash。
简单操作
查看系统默认的shell,可以使用echo命令来查看
[root@free root]Echo $SHELL
/bin/bash --这是当前默认的shell
这种命令的格式也是可以的。
[root@free root]Echo ${SHELL}
/bin/bash --这是当前默认的shell
另外,执行finger命令查询用户数据,也能看出用户默认的shell
[root@locahost /]# finger –l root
Login:root Name:root
Directory: /root Shell:/bin/bash
Shell的功能
1.补全命令行
如:当用户输入想输入clear命令的时候,只需要输入cl,然后按tab键就可以自动补全了,而且不光是能补命令,像什么文件目录都可以补的。
2.命令历程
所谓的命令历程,也就是用户可以使用上下左右来恢复已经使用过的命令,或者是输入过的一些字符。
3.通配符(shell元字符)
如:*、?、[]等等,如ls test? 后面只能没有或者是再跟一个字符,ls [a-c]*可以列出a-c范围内的所有字符。
4.使用输入/输出重定向和管道
“>”,后面跟一个文件名,可以把命令执行的结果输入文件里面。
“<”,后面跟一个已经存在的文件,可以把文件里面的内容输入到当前标准输入窗口。“>>”,追加到一个已经存在的文件。
“|”, 管道,即可以把上一个命令的结果当作下一个命令的输入。
5.作业控制
如:find / -name SCSI –print & -代表在后台运行
使用ctrl+d 能够使当前的命令在后台执行,使用bj命令可以使进程恢复在后台执行。
用jobs可以显示当前正在后台运行的作业名单。
6.特殊字符
&:以后台的方式运行。
;:用来分隔多个命令,让命令依次执行。
.: 代表当前的目录。
..: 表示上一层目录,例如:cd .. ,可以返回上一层目录。
~: 代表用户主目录。
#:表示注释。
\: 跳脱字符(Escape),解除特殊字符的含义。
Shell的环境变量与设置
对bash shell来讲,默认的全局的系统环境变量是在“/etc/profile”中定义的,而一些定制的变量可以在用户子目录中的文件“.bashrc”中找到。
1.shell定义的环境变量
Shell在开始执行时就已经定义好的变量
HOME:保存着用户的主目录
PATH:保存着一些可执行文件或命令的目录
TERM:显示用户的终端类型
UID:当前用户的识别字
PWD:当前工作目录的绝对路径名
PSI:主提示符
PS2 :当用户命令没有输入完,或者在最后输入了一个“\”的时候代表用户还要进入命令输入,默认的是“>”
2.用户定义的变量
用户可以按照下面的格式来定义变量
变量名=变量值 注意“=”号两边不能留空格,建议所有的变量名都用大写字母
如:HI=”hello world”
说明一个变量以后不可更改
Readonly 变量名
Export 可以让shell把当前的变量用作shell运行的其它命令或者是shell程序直接使用。
Export 变量名
Export 变量名=变量值
3.位置参数
格式是这样的$1、$2等等,表示调用shell程序后台跟的参数。值得注意的是$0,表示执行的shell文件的名字。
4.预定义的变量
在shell一开始就定义了的变量,不能重新定义它,所有的预定义变量都由$字符和另外一个符号组成的,常用的shell预定义变量有:
$#:位置参数的数量
$*:所有位置参数的内容
$?:命令执行后返回的状态
$$:当前进程的进程号
$!:后台运行的最后一个进程号
$0:当前执行的进程名
5.参数置换的变量
name=${name2:-word}
当name2这个变量已经设置过了(就是说name2这个变量设置过值),则把它的值赋值给name。如果name2这个变量没有设置过值,则把word当作name的值。
name=${name2:=word}
当name2这个变量已经设置过了,就把name2的值赋值给name这个变量,如果name2没有设置过,则把word赋值给name2
name=${name2:?word}
当name2这个变量设置过了,就把name2的值赋值给name,如果没有设置过值,则打印出word,但并不把值赋值给name
name=${name2:+word}
当name2这个变量有值,则把word的值赋给name,如果name2没有值,则什么都不设置。
分享到:
相关推荐
这篇“Shell基础”资料为初学者提供了全面的Shell入门指南,帮助你掌握这一强大的工具。 1. **什么是Shell?** Shell是Linux系统中的一个程序,它提供了一个交互式环境,让用户通过文本命令来控制计算机。常见的...
Shell 入门:掌握基础与实践 Shell 是操作系统中的一个命令解释器,主要用于与操作系统交互,特别是在Linux和Unix系统中。它不仅提供了丰富的命令集,还允许用户通过编写脚本来自动化执行一系列任务,极大地提高了...
Korn Shell入门脚本Korn Shell入门脚本Korn Shell入门脚本Korn Shell入门脚本Korn Shell入门脚本Korn Shell入门脚本
文档名称 Shell 从入门到精通 腾讯课堂直播 http://opsdev.ke.qq.com 博客 http://lizhenliang.blog.51cto.com GitHub https://github.com/lizhenliang/Shell-Python-Document QQ 技术群 323779636(Shell/...
Shell是Linux和Unix系统中的命令解释器,它提供了一个用户与操作系统内核交互的界面,允许用户通过命令行执行各种操作。本篇文章将深入探讨Shell的基础知识,包括其概念、重要性、基本语法以及如何进行Shell编程练习...
shell 编程入门教程 shell 编程是 Linux 操作系统中的一个重要组件,它允许用户输入命令并将其执行, shell 编程有两种执行命令的方式:交互式(Interactive)和批处理(Batch)。在 shell 编程中,有变量、流程...
### 大数据Shell入门到精通视频教程知识点概览 #### 一、Shell基础概念与环境搭建 - **Shell简介**:Shell是Unix/Linux系统用户与操作系统之间的交互接口,通过命令行方式实现对系统的操作。 - **Shell种类**:介绍...
Shell 命令 入门教程 详细介绍常用的若干linux 包括 awk sed find 还介绍了shell编程中if,while 等流程控制的使用
《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...
1.Linux下Shell编程基础入门.mp4 2.Shell编程之变量及LAMP导航菜单编写.mp4 3.Shell编程之IF条件语句各种案例演练.mp4 4.使用if条件语句编写MySQL备份脚本.mp4 5.Shell编程之LAMP一键安装脚本实战.mp4 6.For循环及...
1Linux下Shell编程入门及变量讲解.mp4 2Linux下Shell编程入门及变量讲解.mp4 3Shell编程企业实战菜单系列.mp4 4Shell编程企业实战菜单系列.mp4 5Linux下LAMP实战及脚本编程思路讲解.mp4 6Linux下LAMP实战及脚本编程...
根据提供的文件信息,我们可以归纳出一系列与Shell设计入门相关的知识点,包括Shell的基础概念、Bash Shell的特点及其在不同操作系统中的应用、脚本编写基础、控制结构、文本处理工具以及环境配置等方面的内容。...
本教程“Shell编程从入门到精通”旨在帮助初学者快速掌握Shell编程的核心技能,并逐步提升至高级水平。 1. **Shell基础** - **Shell类型**:不同的Linux发行版和Unix系统可能使用不同类型的Shell,如Bash(Bourne-...
Linux Shell脚本系列教程(一):Shell入门 Linux Shell脚本系列教程(一):Shell入门是Linux操作系统中的一种基本组件, Shell是命令行界面或文本界面,它使得用户能够与操作系统的核心功能进行交互。 一、Shell...
"人性化解析shell脚本,快速入门sh、bash、shell入门" Shell脚本是Linux操作系统中的一种编程语言,用于自动化系统管理和任务执行。本文档旨在快速入门Shell脚本,帮助读者快速掌握Shell脚本的基本知识和使用方法...