shell基础

1. shell概念

  1.1 什么是shell

Shell是一个作为用户与Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令,类似于Windows的命令提示符。简单说,就是用户通过shell告诉Linux内核执行什么命令,Linux内核通过shell告诉用户执行结果。

 

  1.2 常见shell种类

Shell 的种类繁多。除了我们熟悉的 sh、ksh、csh、bash ... 外,还有各种免费或商业版本如: RC、ES、EShell、psh、Zoidberg 等等。

 

  1.3 如何查看shell版本

查看当前使用什么种类的shell:

$ echo $SHELL

 

如使用bash,则返回:/bin/bash

查看bash版本号:

$ /bin/bash --version

 

执行结果:

 

2. 管道和重定向

  2.1 重定向输出

使用 >操作符将标准输出重定向到一个文件:

$ ls -l > lsoutput.txt

 

如果文件存在则覆盖,不存在则创建。

文件描述符0代表标准输入

文件描述符1代表标准输出

文件描述符2代表标准错误输出

 

使用 >>操作符将输出内容附加到一个文件中:

$ ps >> psoutput.txt

 

下面命令将标准输出及标准错误输出分别重定向到不同的文件中:

$ kill -HUP 1234 >killout.txt 2>killerr.txt


把两组输出都重定向到同一个文件中,使用 >&操作符:

$ kill -1 1234 >killouterr.txt 2>&1

 

可以使用Linux通用的“回收站” /dev/null来丢弃输出信息:

$ kill -1 1234 >/dev/null 2>&1

 

 

  2.2 重定向输入

使用 <操作符重定向标准输入:

$ more < killout.txt

 

  2.3 管道

管道操作符 |用于连接进程,可以将上一个进程的输出结果作为下一个进程的输入。

例如:

$ ps | sort | more

 

ps命令列出当前的进程,以此作为sor命令的t输入进行排序,再将排序结果作为more命令的输入进行分页输出。

 

3. 作为程序设计语言的shell

  3.1 交互式程序

所谓交互式程序就是直接在命令行上输入shell脚本进行测试的过程。

例如:

$ for file in *
> do
> if grep -l POSIX $file
> then
> more $file
> if
> done


当shell期待进一步的输入时,正常的 $提示符会变成 > 提示符。

 

  3.2 创建脚本

使用文本编辑器,如vi/vim,来创建一个包含命令的文件,命名为first,它的内容如下:

# !/bin/sh
# first
# This file looks through all the files in the current directory for the string POSIX, and then prints
# the names of those files to the standed output.

for file in *
do
if grep -q POSIX $file
then
echo $file
fi
done

exit 0


# 代表注释。第一行 # !/bin/sh代表告诉系统所使用的shell类型。exit命令返回一个有意义的退出码。

 

  3.3 把脚本设置为可执行

使用chmod命令来添加脚本的可执行属性:

$ chmod +x first

 

运行脚本:

$ ./first

 

---------------

码字不易,点个赞再走呗~

我是良许,世界500强外企 Linux 开发工程师,专业生产 Linux 干货。欢迎关注我的公众号「良许Linux」,回复「1024」获取最新最全的技术资料,回复「入群」进入高手如云技术交流群;提供永久免费 CSDN 资料下载服务。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良许Linux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值