linux shell程序 shell基本命令
大家好,关于linux shell程序很多朋友都还不太明白,今天小编就来为大家分享关于shell基本命令的知识,希望对各位有所帮助!
想编写linux下的shell脚本,首先需要看程序之类的书作为基础
具体情况具体分析,实用为主。看需要什么样的脚本,然后写什么样的脚本,不求最精炼最牛X。
对shell一点都不懂? ls、cd、mkdir、rm、grep、ps、 cut、sed……
bash脚本不就是把一系列连贯的操作事先写在一个*.sh文件里,然后运行吗。
一件事情,自己想到完成的步骤,然后把步骤写下来就成了。
=======================================================
细节方面:
1.开头第一行要强调解释器(其实不强调也行,因为环境就是bash,但是要有规矩)
#!/bin/bash
其中“#!”是指定解释器的意思,比如写Python程序的时候不也得需要加在第一行#!/usr/bin/python吗。
2.熟悉几个对文本操作的程序,比如 sed、awk等,够用即可。
好比这条命令:
echo 2010080405001| sed's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1:\2:\3:\4:/'是什么意思?
就是把2010080405001输出成2010:08:04:05:001这个样子。
很可怕吗?其实——竖杠是管道标识,反斜杠表示“转义”(C语言里一个意思),[]表示选择([0-9]就是0-9其中任意的数字),{}表示块儿,其它的格式比如就是sed程序的语法了。
3.知道取变量是$变量名
4.了解几个bash的小技巧:$()、 ``(shift+~)、$(())、|、;、……
5.知道if、for、while等一些语法(挺简单的)。
======================================================
其它方面:
还是老话,具体情况具体分析,具体项目具体参考。
好比你要写个 1+1=?的脚本,那么都没必要看什么狗屁的命令,直接变量+变量就行了。
好比写一个定期整理系统日志的脚本,那至少需要知道系统日志在哪儿,查阅该日志需要什么命令,日志文件的格式如何,需要将日志文件内容格式化之后输出吗……等等等等。
好比写一个检查http服务器是否正常的脚本,那至少知道HTTP服务器的配置文件、网络相关的命令……
==============================
bash脚本的语法不是重点。无论怎样,以实用为宗旨,需要什么,资料一查,马上ok,什么叫不懂,查的多了,不懂也比懂的会写脚本。
linux shell脚本执行命令详解
在Linux下,如果你需要执行shell脚本,那么应该使用那个命令呢?下面由我为大家整理了linux shell脚本执行命令的相关知识,希望对大家有帮助!
linux shell脚本执行
linux shell脚本执行方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:
cd/data/shell
./hello.sh
./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo$PASH命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。
linux shell脚本执行方法二:以绝对路径的方式去执行bash shell脚本:
/data/shell/hello.sh
linux shell脚本执行方法三:直接使用bash或sh来执行bash shell脚本:
cd/data/shell
bash hello.sh
或
cd/data/shell
sh hello.sh
注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊。
linux shell脚本执行方法四:在当前的shell环境中执行bash shell脚本:
cd/data/shell
. hello.sh
或
cd/data/shell
source hello.sh
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。
linux下的 shell到底是什么啊
【一】 shell的含义:
首先shell的英文含义是“壳”;
它是相对于内核来说的,因为它是建议在核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核。
Linux中的shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息;
【二】shell在Linux中的存在形式:
由于Linux不同于Windows,Linux是内核与界面分离的,它可以脱离图形界面而单独运行,同样也可以在内核的基础上运行图形化的桌面。
这样,在Linux系统中,就出现了两种shell表现形式,一种是在无图形界面下的终端运行环境下的shell,另一种是桌面上运行的类型Windows的MS-DOS运行窗口,前者我们一般习惯性地简称为终端,后者一般直接称为shell
【三】shell如何执行用户的指令
shell有两种执行指令的方式,一种方法是用户事先编写一个sh脚本文件,内含shell脚本,而后使用shell程序执行该脚本,这种方式,我们习惯称为shell编程。
第二种形式,则是用户直接在shell界面上执行shell命令,由于shell界面的关系,大家都习惯一行行的书写,很少写出成套的程序来一起执行,所以也称命令行。
总结:shell可以说只是为用户与机器之间搭建成的一个桥梁,让我们能够通过shell来对计算机进行操作和交互,从而达到让计算机为我们服务的目的。
以上。
参考资料:
【shell的定义】
【shell学习】