理解Linux Shell:

shell:一个命令行解释器,通过执行命令或脚本,帮助用户与操作系统打交道。

process:进程,用户执行的任务是进程,但进程不只是任务。

file:文件放在硬盘上,包含用户所有的数据。

x-windows(又称windows):Linux的一种模式,使屏幕包含多个视窗,让用户同时监视多个任务,方便地穿梭于任务之间,它是图形化的。

text terminal:一种只能显示文字或简单图形的视窗。

session:登入,建立会话;登出,注销会话。

标准Linux发行版里的shell种类:

Bourne Shell:它是早期版本中的一种主要的shell,并且后来成为了标准。由贝尔实验室的 Stephen Bourne 所写。每个“类Unix”的系统里都至少有一种shell与之兼容。Bourne Shell 的程序命名为“sh”,一般放在 /bin/sh 。

C shell:由 Bill Joy 为 BSD 版本所写。它的语法是模仿C语言的。它主要用于交互式操作,有很多交互式命令,而不太常用于写脚本。

开始玩了!

命令有成千上万条,都把它们记住,好吗?额,很明显那是不行的。计算机的真正用途是简化你的工作,你需要过程自动化,所以,你需要脚本。

脚本是命令的集合,保存在文件里。shell能读取这些文件并且执行里面的命令,就像执行键盘发来的命令。shell还提供各种各样的编程特性,使得脚本真心强大。

shell编程基础:

开启终端,以获取shell

看下你用着什么shell,运行:echo SHELL

在Linux shell中,美元符号代表一个变量

“echo”命令就是回复你键入任何东西

当需要串联几个命令时,管线指令 “|” 就有用了

Linux命令有自己的语法,你的任何错误都不会被容忍和接受。如果你写了条不规范的命令,当然不会如愿执行。

#!/bin/sh —— 这个叫环境。这句写在shell脚本的首行,使得命令被发送到 /bin/sh 程序

关于shell 脚本:

shell脚本就是一个普通的文本文件,扩展名是  .sh ,且能够被执行。

编写和执行脚本:

打开终端

“cd”命令,去到你想存放该脚本的地方

cd,回车,使你的提示符变成home目录

touch hello.sh(这里我们的脚本命名为hello,而 .sh 是规定的)

vi hello.sh(nano hello.sh)用你最喜欢的编辑器,我用nano

chmod 744 hello.sh(使脚本可被执行)

sh hello.sh 或者 ./hello.sh (执行脚本)

编写你第一个脚本:

#!/bin/bash

# My first script

echo “Hello World!”

如上所述,将这几行东西,保存在文本文件里,使之可执行,并执行之。

输出的样子:

Hello World!

上面的代码解释如下。

#!/bin/bash ( 运行环境 )

# My first script ( 注释,任何位于#后的东西都被注释 )

echo “Hello World!” ( 脚本的主要部分 )

编写你第二个脚本:

是时候写下一个了。这个脚本会说出你的username和列出运行中的process

#! /bin/bash

echo “Hello USER”

echo “Hey i am”USER “and will be telling you about the current processes”

echo “Running processes List”

ps

如上所述,将这几行东西,保存在文本文件里,文件叫啥名字都行,但记住扩展名为 .sh ,使之可执行,并执行之。

Hello tecmint

Hey i am tecmint and will be telling you about the current processes

Running processes List

PID TTY TIME CMD

1111 pts/0 00:00:00 bash

1287 pts/0 00:00:00 sh

1288 pts/0 00:00:00 ps

觉得酷吗?编写脚本就像将想法转变为流程式命令一样简单。通过内置的过滤器和管道功能,shell 脚本擅长做简单的文件系统操作。

当你的需求更复杂,例如是功能、健壮、性能、效率等方面时,你就需要一个全能的语言了。

当你已经熟悉 C、PERL、PYTHON之类时,学习脚本语言就不觉得难了。

编写你第三个脚本:

接着,来写第三个也是本文最后一个脚本。这个脚本表现为一个互动式的脚本,何不亲自执行它,说下感觉怎样?

[code language=”shel”]#! /bin/bash

echo "Hey what’s Your First Name?";

read a;

echo "welcome Mr./Mrs. a, would you like to tell us, Your Last Name";

read b;

echo "Thanks Mr./Mrs.a b for telling us your name";

echo "*******************"

echo "Mr./Mrs.b, it’s time to say you good bye"[/code]

输出的样子:

Hey what's Your First Name?

Avishek

welcome Mr./Mrs. Avishek, would you like to tell us, Your Last Name

Kumar

Thanks Mr./Mrs. Avishek Kumar for telling us your name

******************************************************

Mr./Mrs. Kumar, it's time to say you good bye

其实,这事还没完。我们只不过让你浅尝了一下。在未来,我们会全面开展“脚本”这个话题,它会一直下去,没有最详尽,只有更详尽。各位在评论中的宝贵意见都是可赞的!请支持我们,并帮忙宣传,保持联系,敬请关注!

本文链接:http://www.yunweipai.com/3131.html

会linux基本命令是脚本语言吗,如何理解Linux Shell和基本Shell脚本语言?相关推荐

  1. linux目录结构与功能_深入理解linux系统的目录结构(总结的非常详细)

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

  2. linux 虚拟机大量udp请求失败_理解 Linux 网络栈:Linux 网络协议栈简单总结分析...

    1. Linux 网络路径 1.1 发送端 1.1.1 应用层 (1) Socket 应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的.Linu ...

  3. windows比linux差在哪,怎么让新手理解Linux比Windows好在哪里!

    pingpang2008 于 2009-06-17 08:54:31发表: 人好多啊 hantu 于 2009-06-16 23:28:57发表: 哈哈,偏偏很多人就是不爽windows了才用Linu ...

  4. linux文件未识别,linux的内核文件vmlinuz介绍-深入理解Linux重定向的使用-网卡eth0,未识别的端口的解决方法_169IT.COM...

    介绍:Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作. Linu ...

  5. linux执行cd会使用系统调用,深入理解Linux系统调用

    一.实验环境配置 系统环境:Ubuntu16.04 实验说明:本人学号末两位70,对应__64x_sys_msgrcv系统调用 注:不能在上次实验的基础上做,要重新下载解压linux-5.4.34文件 ...

  6. linux内核文件系统的架构,《深入理解Linux内核》-文件系统学习心得

    内核中要注意的是各种结构体,结构体之间的联系和各个函数以及函数之间的调用关系,参数的传递和函数的功能. 内核中数据结构的字段无外乎包括三种字段:属性字段,调用方法,指向其它结构的指针.具体如下图所示: ...

  7. 操作系统实验报告 实验1 VMware虚拟机配置与linux基本命令(答案全)

    实验1 VMware虚拟机配置与linux基本命令 (1) 实验目的 (2) 实验要求: (3) 实验步骤 1.1 Linux Ubuntu的安装.创建新的虚拟机VMWare 实验1.2 linux系 ...

  8. linux查看通道的命令,10个Linux新手必须记住的Linux基本命令,快速入门通道!!...

    原标题:10个Linux新手必须记住的Linux基本命令,快速入门通道!! Linux 作为免费操作系统,与 Windows.OS x 齐名.比起后两者,Linux 显得很低调,低调得不少人都以为自己 ...

  9. linux系统怎么设置硬链接,二、Linux系统硬链接和软链接详细介绍与实践

    链接的概念 在linux系统中,链接可分为两种:一种被称为硬链接(Hard LinK),另一种被称为软链接或符号链接(Symbolic Link).在默认不带参数的情况下,执行ln命令创建的链接是硬链 ...

最新文章

  1. java网络编程udp_java网络编程 UDP网络编程问题
  2. linux shell面试题(一)
  3. R语言使用vcd包的spine函数可视化spinogram图(spinogram图是被归一化的堆叠条形图、这样每个条形的高度一样、内部显示不同分布的比例)
  4. 挑战8门UDACITY课程学习方法总结
  5. Linq多表查询条件批量删除
  6. .net面试题(高级)
  7. idea修改新的git提交地址
  8. python获取程序文件中的全局变量和局部变量的函数
  9. 1005打印任务取消不了 hp_惠普HP M1136 MFP多功能打印机 一年半使用感受(学生打印机)...
  10. latex支持python吗_用MarkDown和Python编写LaTex
  11. linux下gmt4绘制站点分布图,GMT复杂图制作教程———让作图简单的飞起来
  12. 在你学习计算机的路上,哪些书籍对你的帮助最大?
  13. HTML网页设计制作——响应式网页影视动漫资讯bootstrap网页(9页)
  14. Nginx报错:nginx: [error] invalid PID number in /run/nginx.pid 解决方法
  15. C语言标识符有哪三类
  16. 获取2020年中国大学前20名在各省分布(python实现)
  17. Shell学习(12)文件操作
  18. 血战力扣752.打开转盘锁
  19. 我的世界(12)-服务器领地(Residence插件)
  20. 兄弟打印机 android,Android项目集成Brother兄弟无线打印机QL-720NW

热门文章

  1. 逻辑回归:损失函数与梯度下降
  2. 聊聊高并发(二十六)解析java.util.concurrent各个组件(八) 理解CountDownLatch闭锁
  3. HashMap与垃圾回收
  4. CSS3 - 清除浮动
  5. 在 Raspberry Pi 3B 上安装最新版 Node-RED
  6. linux 命令整理(持续更新)
  7. Java Swing编程之仿js树状折叠菜单
  8. 冲突域、广播域的通俗讲解
  9. Eclipse c++ 中[Linker error] undefined reference to `WSAStartup@8'的解决办法
  10. Golang 垃圾回收剖析