shell命令(一)
什么是shell?
Shell是一个应用程序,它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用Linux内核,这就是Shell的本质。
shell与Linux系统关系图
shell也能够编程
- 有if...else选择结构,case...in 开关语句,for、while、until循环
- 变量、数组、字符串、注释、加减乘除、逻辑运算等概念;
- 函数,包含用户自定义的函数和内置函数(例如printf\export\eval等)
shell在运维中的地位
下面手链形象地展示了Shell在运维工作中的地位
先看一个简单的shell程序
#!/bin/bash
# This is to show what a example looks like. echo "This first example"
echo # This inserts an empth line in output.
echo "We are currently in the following directory"
pwd
echo
echo "This directory contains the following files"
ls
注释:
#!/bin/bash #!跟shell命令的完全路径。作用:显示后期命令以哪种shell来执行这些命令。如不指shell,以当前shell作为执行的shell
# shell 中以#开头表示,整行就被当作一个注释。执行时被忽略。
总结:
创建shell程序的步骤
第一步:创建一个包含命令和控制结构的shell文件
第二步:修改这个文件的权限使它可以执行,使用chmod u+x
第三步:执行
方法一:./{文件名}
方法二:使用决定路径 /root/../{文件名}
方法三:bash {文件名}
Shell变量
变量是shell传递数据的一种方法。变量使用来表示每个值的符号名
例:x=1
Shell 有两种变量:临时变量和永久变量。
临时变量:是shell程序内部定义的,其使用范围仅限于定义它的程序,对于其它程序不可见。
永久变量:是环境变量,其值不随shell脚本的执行结束而消失。
例:如:$PATH
# 用作运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中去查找
用户定义变量:由字母或下划线打头。由字母、数字或下划线组成,并且大小写字母意义不同。变量名长度没有限制。
使用变量值时,要在变量名前加上前缀“$”。
例如:1VAR 就是非法变量。
变量赋值:赋值号“=”两边应没有空格。
例如:A=123
例如:将一个命令的执行结构赋值给变量
可以利用变量和其它字符组成一个新的字符串。
列出所有变量
set 列出所有变量
| 过滤
给变量赋值多个单词
单引号和双引号的区别
单引号之间的内容原封不动地指定给了变量,
双引号取消了空格的作用,保留特殊符号的含义
双引号:
单引号:
删除变量 unset
位置变量和特殊变量
位置变量:Shell 解释执行用户命令时,将命令行的第一个字作为命令名,而其它名字作为参数。由出现在命令行上的位置确定的参数称为位置参数。
特殊变量:有些变量是一开始执行Script脚本时就会设定,且不能被修改,但我们不叫它只读系统变量,而叫它特殊变量。这些变量当一执行程序时就有了,以下是一些特殊变量
$*:这个程序的所有参数
$#:这个程序的参数个数
$$:这个程序的PID
$!:执行上一个后台程序的PID
$?:执行上一个指令的返回值
程序例子:
#!/bin/bash
echo "$* 表示这个程序的所有参数"
echo "$# 表示这个程序的参数个数"
touch /tmp/a.txt echo "$$ 表示当前程序的ID"
touch /tmp/b.txt & echo "$! 执行上一个后台指令的PID"
echo "$$ 表示程序的进程ID"
结果:
变量的使用:
#!/bin/bash var1="abcd efg"
echo $var1 var2=
echo "The value of var2 is $var2"
echo $HOME
echo $PATH
echo $PWD
执行结果:
shell命令(一)的更多相关文章
- Hadoop Shell命令大全
hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于大多数程序猿/媛来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大 ...
- Shell命令和流程控制
Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...
- 在程序中执行shell命令
在linux系统下的操作中我们会经常用到shell命令来进行,一开始学习进程的时候对于shell命令也进行了思考,认为shell命令就是一个进程的外壳,经过了后来的学习对于这一点也有了更多的认识. 用 ...
- Linux远程执行Shell命令或脚本
## 远程执行shell命令 ssh [user]@[server] '[command]' # eg. ssh root@192.168.1.1 'uptime' ## 远程执行本地shell脚本 ...
- HBase基本shell命令
HBase基本shell命令 以下shell命令都是经过测试,正常展示,若有不足,还望指点! 1.创建表 create ‘表名称’,‘列族名称1’,‘列族名称1’create 'test_M_01', ...
- Linux SHELL 命令入门题目答案(一)
1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号ech ...
- Linux SHELL 命令入门题目(一)
新年新气象,注重知识积累,提高手敲代码能力,而不是眼高手低,只会复制黏贴. 1.使用shell 打印 “Hello World!” 2.求变量'hello world'的字符长度 3.$0 .$SHE ...
- shell命令获取最新文件的名称
最近有一个需求,在部署游戏战场服时,从程序包到部署需要做一些本地化的操作,手工操作费时费力,故写一个shell脚本,一键部署. 遇到的问题是每次要部署最新的程序包,因此需要shell命令获取最新的文件 ...
- 【转】Hadoop FS Shell命令
FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...
- [蟒蛇菜谱] Python封装shell命令
# -*- coding: utf-8 -*- import os import subprocess import signal import pwd import sys class MockLo ...
随机推荐
- 图解汉诺塔问题( Java 递归实现)
汉诺塔简介 最近在看数据结构和算法,遇到了一个非常有意思的问题--汉诺塔问题. 先看下百度百科是怎么定义汉诺塔的规则的: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候 ...
- A Systems-Level Characterization of the Differentiation of Human Embryonic Stem Cells into Mesenchymal Stem Cells (解读人:王欣然)
文献名:A Systems-Level Characterization of the Differentiation of Human Embryonic Stem Cells into Mesen ...
- nop 配置阿里cdn 联通4g 页面显示不全 查看源代码发现被截断
开发中遇见特别诡异的问题, 项目使用nop框架,pavilion主题,之后配置阿里cdn,然后在联通4g的情况下苹果手机网页显示不完全,nop首页和产品详情页都是如此,排查过程: 1.阿里cdn设置了 ...
- FME中矢量裁剪
- 【Pytest05】全网最全最新的Pytest框架之用例分组执行
一.Fixture用例分组运行常用于冒烟测试,分模块运行等 pytest.ini配置文件中增加分组参数markers来实现用例分组,如: markers = g1:组一 smoke:冒烟测试 pyte ...
- python实现十大经典排序算法
Python实现十大经典排序算法 代码最后面会给出完整版,或者可以从我的Githubfork,想看动图的同学可以去这里看看: 小结: 运行方式,将最后面的代码copy出去,直接python sort. ...
- js的预编译
JavaScript不会完全按照代码的顺序执行,在执行之前会对定义的函数和变量先来一边所谓的预编译处理. 先来说下对变量的预处理: console.log(a) //undefined var a = ...
- Spring核心组件知识梳理
Spring的一些概念和思想 Spring的核心:AOP.IOC. 简单点说,就是把对象交给Spring进行管理,通过面向切面编程来实现一些"模板式"的操作,使得程序员解放出来,可 ...
- 树莓派 zeroWH 使用笔记
更新raspbian apt-get update apt-get upgrade 删除python2 sudo rm /usr/bin/python安装python3 sud ...
- USACO07MAR Face The Right Way G 差分
题目链接 https://www.luogu.com.cn/problem/P2882 分析 这个题来看的话好像有点难下手,不如再去读一遍题 N遍,发现一句话很重要Each time the mach ...