基本语法列表

#linux组成:内核+工具

#linux启动:
. getty:提示登录名和密码,输入之后调用login
. login:login验证用户名和密码,然后调用shell
. shell:用户与系统的交互接口 #文件的分类:普通文件、目录、特殊文件。
. 普通文件的:ls cat cp mv rm
. 目录:ls mkdir rmdir cp mv rm #文件的属性:权限、所有者、组
. 权限:chmod
. 所有者、组:chown chgrp #进程:前台,后台
. & fg bg nohup(终端断开同样执行)
. jobs ps top kill
. exec #变量:普通变量、数组变量
. $
. 数组变量赋值:ksh:set -A name value1 value2 value3,bash: name(value1 value2 value3)
. 数组的访问:${name[index]},${name[*]},${name[*]}
. readonly
. set unset
#变量:局部变量、环境变量、Shell变量
. shell变量:PWD UID SHLVL REPLY RANDOM SECONDS IFS PATH HOME
. export #替换:文件名替换、变量替换
. 文件名的替换:* ? [characters]
. 变量替换
${parameter:-word} 若parameter为空或未设置,使用word代替parameter进行替换,parameter的值不变
${parameter:+word} 若parameter设置了,使用word代替parameter进行替换,parameter的值不变
${parameter:=word} 若parameter为空或未设置,则parameter设置为word
${parameter:?message} 若parameter为空或未设置,这message作为标准错误打印出来
. 命令替换:`command`
. 算术替换:$((express)) #参数:
. $:程序名字
. $n:第n个参数
. $#:参数数量
. $*:所有的参数
. $@:全部
. $?:
. $$:
. $!:
. shift #输入
. 向屏幕:echo printf
. 重定向输出:> >> |
. 重定向输入:<
. read #文本过滤
. head tail grep sort uniq tr
. sed awk #常用工具
eval
:
type
sleep
find
xargs
expr #控制流
. if
if list1
then
list2
elif list3
then
list4
else
list5
fi
. case
case word in
pattern1)
list1
;;
pattern2)
list2
;;
esac
. while
while command
do
list
done
. until
until command
do
list
done
. for
for name in value1 value2 ... valueN
do
list
done
. select
select name in value1 value2 ... valueN
do
list
done
. break continue #判断
. 判断 test [ ]
. 文件判断
-f file:文件是否存在
-d path:路径是否存在
-r file:是否可读
-w file:是否可写
-x file:是否可执行
. 字符串判断
-z string:字符长度为0
-n string:字符长度不为0
string1 = string2:相等
string1 != string2:不相等
. 数字比较
-eq:=
-ne:<>
-lt:<
-gt:>
-le:<=
-ge:>=
. 逻辑运算
!expr:非
expr1 -a expr2:且
expr1 -o expr2:或
&&
|| #函数
. 定义
name( ) { list ; } #tips
#读文件
while read Line
do
echo $Line
done < file
#find
find * -name '*.sh'
#输入一长段提示
echo 'one
two'
echo 'one\ntwo'
cat <<EOF
NICE DAY IN THE WORLD.
THIS IS A VERY NICE DAY.
EOF
#最后一个参数的求法
eval last=\${$#}

shell语法的更多相关文章

  1. makefile中的shell语法

    在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙.下面总结了一些. 1:尽在Makefile文件的目标项冒号后的另起一行的代码才是 ...

  2. Hadoop学习笔记之HBase Shell语法练习

    Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...

  3. Shell语法规范

    ver:1.0 博客:https://www.cnblogs.com/Rohn 本文介绍了Shell编程的一些语法规范,主要参考依据为谷歌的Shell语法风格. 目录 背景 使用哪一种Shell 什么 ...

  4. shell语法习题练习进阶版

    第4章 shell语法深度习题练习 4.1 使用if,case,函数的方法将服务改成system(centos6) 4.1.1 if方法 4.1.1.1 system实现 4.1.1.1.1 编写代码 ...

  5. 读完学会shell语法,shell脚本80%已经学会

    第3章 shell语法讲解 3.1 shell运算讲解 3.1.1 运算符的讲解 3.1.2 shell运算方式的讲解 3.1.2.1 $(())运算 [root@m01 test_init] # a ...

  6. Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数

    if语法 :   if [ expression ]    then   commandselif [ expression2 ]   then   commandselse   commandsfi ...

  7. Shell 语法之结构化命令(流程控制)

    许多程序在脚本命令之间需要某种逻辑流控制,允许脚本根据变量值的条件或者其他命令的结果路过一些命令或者循环执行这些命令.这些命令通常被称为结构化命令.和其他高级程序设计语言一样,shell提供了用来控制 ...

  8. shell语法快速入门(1)

    #得到绝对路径 DIR=$(cd `dirname $0`;pwd) $DIR/file.txt #去掉#注释 egrep -v "(#|^$)" /etc/zabbix/zabb ...

  9. shell语法基础

    一.变量 1.linux大小写敏感,变量取名要注意大小写.可以通过变量名前面加$来访问变量的内容.可以通过使用read命令来将用户输入的值赋给一个变量. 2.给变量赋值时,如果字符串中包含空格,就必须 ...

随机推荐

  1. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)

    前言:出于某种原因,需要学习下Knockout.js,这个组件很早前听说过,但一直没尝试使用,这两天学习了下,觉得它真心不错,双向绑定的机制简直太爽了.今天打算结合bootstrapTable和Kno ...

  2. @RenderSection,@RenderPage,@RenderBody介绍

    在MVC的模板页中会用到上面三个东西,那么今天就简单归纳下各有什么作用 1.@RenderSection 用法 对CSS或JS部分模块的预留定义 例如模板页定义了@RenderSection(&quo ...

  3. java-读取javabean中所有属性和属性的类型

    /** * java读取文件中的属性类型 * @param model * @return * @throws Exception */ public static Map<String,Str ...

  4. JAVA当中变量什么时候需要初始化

    1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值. 默认值如下:             Boolean      false             ...

  5. JavaScript系列文章:变量提升和函数提升

    第一篇文章中提到了变量的提升,所以今天就来介绍一下变量提升和函数提升.这个知识点可谓是老生常谈了,不过其中有些细节方面博主很想借此机会,好好总结一下. 今天主要介绍以下几点: 1. 变量提升 2. 函 ...

  6. [C#] 日志类

    在程序发布到服务器上的时候,不能在像本地执行一样可以调试,在发生错误时候,往往不能很方便的查找错误.将错误信息写入文件是一种比较常用的处理方法.以下是一个日志类,实现以下功能: 1)按日期每天生产不同 ...

  7. 重复安装相同包名APK出现的问题。

    一. INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES 这样的问题主要是签名冲突造成的,比如你使用了ADB的debug权限签名,但后来使用标准sign签名后 ...

  8. nodejs异步处理

    采用Async.Q.Promise等第三方库处理异步回调 Async 安装 npm install async --save-dev

  9. python 常用内建模块(3) base64

    Base64是一种用64个字符来表示任意二进制数据的方法. 用记事本打开exe.jpg.pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的 ...

  10. 记一次WinForm中屏蔽空格键对按钮的作用

    事件的起因是在做一个项目功能时,添加快捷键关闭声音,这个键最终选择了空格键,但是当按下空格键时,会把窗体中获取焦点的控件(比如按钮,文本框等)的单击事件触发,所以要屏蔽这个现象. 开始使用各种方法,在 ...