3000字扫盲shell基础知识(新手必备)

不论前端还是后端,再学会Linux的基础上,还应该学会写一些简单的Shell。不止是工作,日常中想做一些东西,如果手动做就很累人也费时间,如果你会用Shell脚本处理就很简单了,本文普及的shell的一些基础知识。后面还会持续更新。

shell基础语法之变量

shell 变量命名

  • 变量只能由大小写字母,数字和下划线组成。
  • 变量名称不能以数字开头。
  • 变量可以存储数字类型或者字符串类型。
  • 变量赋值等号两边不能有空格。
  • 字符串的变量可以用单引号或者双引号括起来。

定义变量:

➜ ~ name="xiaoka"
➜ ~ age=2

无效的定义
[

root@iz2ze0ajic0vbv28hcdctpz hello]# 1212=sfds
-bash: 1212=sfds: 未找到命令
[root@iz2ze0ajic0vbv28hcdctpz hello]# ?aasd=hehe
-bash: ?aasd=hehe: 未找到命令

shell 变量调用

变量的调用使用$符号或者$符号加上花括号。一般来讲使用花括号的用法。

举例说明:

[root@iz2ze0ajic0vbv28hcdctpz hello]# apple=hongfushi
[root@iz2ze0ajic0vbv28hcdctpz hello]# echo $applepen

[root@iz2ze0ajic0vbv28hcdctpz hello]# echo ${apple}pen
hongfushipen

如果不加花括号,就会读成applepen为一个变量,因此解析产生了歧义。

shell 变量分类

  • 环境变量:保存操作系统运行时使用的参数。
  • 位置变量:传递脚本参数时使用。
  • 预定义变量:类似于环境变量,不同是它是不能重定义的。
  • 自定义变量:由用户自定义,可用于用户编写的脚本。

自定义变量:

定义变量database:

[root@iz2ze0ajic0vbv28hcdctpz hello]# database=mysql

[root@iz2ze0ajic0vbv28hcdctpz hello]# echo $database
mysql
[root@iz2ze0ajic0vbv28hcdctpz hello]# echo ${database}
mysql

环境变量:查看全局环境变量:

[root@iz2ze0ajic0vbv28hcdctpz ~]# printenv
XDG_SESSION_ID=2044
HOSTNAME=iz2ze0ajic0vbv28hcdctpz
TERM=xterm-256color
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=113.44.42.209 56074 22
SSH_TTY=/dev/pts/1
USER=root
LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:
MAVEN_HOME=/usr/local/apache-maven-3.6.0
MAIL=/var/spool/mail/root
PATH=/usr/local/apache-maven-3.6.0/bin:/usr/local/jdk1.8.0_191/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
JAVA_HOME=/usr/local/jdk1.8.0_191
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
CLASSPATH=.:/lib/dt.jar:/lib/tools.jar
SSH_CONNECTION=113.44.42.209 56074 172.17.187.244 22
LC_CTYPE=zh_CN.UTF-8
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/printenv

定义一个环境变量

[root@iz2ze0ajic0vbv28hcdctpz ~]# export kaka="kaka"
[root@iz2ze0ajic0vbv28hcdctpz ~]# env |grep kaka
kaka=kaka

删除环境变量

[root@iz2ze0ajic0vbv28hcdctpz ~]# unset kaka
[root@iz2ze0ajic0vbv28hcdctpz ~]# env |grep kaka

w如果长期使用,可以把它们写在配置文件中。/etc/profile 或者 用户家目录的.bash_profile

位置变量 :

我们先定义一个shell。

[root@iz2ze0ajic0vbv28hcdctpz ~]# cat test.sh
#!/bin/bash

echo "执行的文件: $0"
echo "第一个参数: $1"
echo "第二个参数: $2"

执行查看结果。

[root@iz2ze0ajic0vbv28hcdctpz ~]# chmod +x test.sh
[root@iz2ze0ajic0vbv28hcdctpz ~]# ./test.sh 1 2
执行的文件: ./test.sh
第一个参数: 1
第二个参数: 2

预定义变量:

常用的预定义变量有如下几个。

#!/bin/bash

echo "执行的文件: $0"
echo "第一个参数: $1"
echo "第二个参数: $2"
echo "所有参数: $*"
echo "当前脚本的pid: $"
echo "脚本参数个数: $#"

查看执行结果

[root@iz2ze0ajic0vbv28hcdctpz ~]# ./test.sh 1 2
执行的文件: ./test.sh
第一个参数: 1
第二个参数: 2
所有参数: 1 2
当前脚本的pid: 30170
脚本参数个数: 2

查看上一个命令执行结果。

[root@iz2ze0ajic0vbv28hcdctpz hello]# ls
test
[root@iz2ze0ajic0vbv28hcdctpz hello]# echo $?
0

shell 运算符

shell也是一门语言其实和其他的语言运算符大同小异,不过这里我们还是来说一下。本节说一下运算符相关内容。

运算符种类

  • 算数运算符
  • 关系运算符
  • 布尔运算符
  • 逻辑运算符
  • 字符串运算符
  • 文件测试运算符

算数运算符

命令: expr
作用:   求表达式的值
语法:    expr 表达式
规则:

  • ​    运算符号两边要有空格
  • 遇到特殊符号如*号需要在前面加反斜杠
  • 空格和特殊字符串需要用引号括起来

操作:(先编写一个运算相关的shell脚本)

#!/bin/bash
i=1
j=2
addition=`expr $i + $j`
subtraction=`expr $i - $j`
multiplication=`expr $j \* $j`
division=`expr $j / $i`
mod=`expr $j % $i`
echo "addition=${addition} , subtraction=${subtraction} , multiplication=${multiplication} , division=${division} , mod=${mod}"

if [ $i == $j ]
then
 echo "i 等于 j"
fi

if [ $i != $j ]
then
 echo "i 不等于 j"
fi

查看结果:

➜  ~ ./operation.sh
addition=3 , subtraction=-1 , multiplication=4 , division=2 , mod=0
i 不等于 j

关系运算符

操作:(编写脚本)

#!/bin/bash
num1=5
num2=8
if [ $num1 -eq $num2 ]
then
 echo "$num1 是否等于 $num2 : num1 等于 num2"
else
 echo "$num1 是否等于 $num2: num1 不等于 num2"
fi
if [ $num1 -ne $num2 ]
then
 echo "$num1 是否不等于 $num2: num1 不等于 num2"
else
 echo "$num1 是否不等于 $num2 : num1 等于 num2"
fi
if [ $num1 -gt $num2 ]
then
 echo "$num1 是否大于 $num2: num1 大于 num2"
else
 echo "$num1 是否大于 $num2: num1 不大于 num2"
fi
if [ $num1 -lt $num2 ]
then
 echo "$num1 是否小于 $num2: num1 小于 num2"
else
 echo "$num1 是否小于 $num2: num1 不小于 num2"
fi
if [ $num1 -ge $num2 ]
then
 echo "$num1 是否大于等于 $num2: num1 大于或等于 num2"
else
 echo "$num1 是否大于等于 $num2: num1 小于 num2"
fi
if [ $num1 -le $num2 ]
then
 echo "$num1 是否小于等于 $num2: num1 小于或等于 num2"
else
 echo "$num1 是否小于等于 $num2: num1 大于 num2"
fi

操作结果:

➜  ~ ./relation.sh
5 是否等于 8: num1 不等于 num2
5 是否不等于 8: num1 不等于 num2
5 是否大于 8: num1 不大于 num2
5 是否小于 8: num1 小于 num2
5 是否大于等于 8: num1 小于 num2
5 是否小于等于 8: num1 小于或等于 num2

布尔运算符

编写脚本:

#!/bin/bash
num1=3
num2=23
if [ $num1 != $num2 ]
then
 echo "$num1 != $num2 : num1 不等于 num2"
else
 echo "$num1 != $num2: num1 等于 num2"
fi
if [ $num1 -lt 25 -a $num2 -gt 15 ]
then
 echo "$num1 小于 25 且 $num2 大于 15 : 返回 true"
else
 echo "$num1 小于 25 且 $num2 大于 15 : 返回 false"
fi
if [ $num1 -lt 25 -o $num2 -gt 25 ]
then
 echo "$num1 小于 25 或 $num2 大于 25 : 返回 true"
else
 echo "$num1 小于 25 或 $num2 大于 25 : 返回 false"
fi

查看结果:

➜  ~ ./bool.sh
3 != 23 : num1 不等于 num2
3 小于 25 且 23 大于 15 : 返回 true
3 小于 25 或 23 大于 25 : 返回 true

字符串运算符

编写脚本:

#!/bin/bash
apple="apple"
pen="pen"

if [ $apple = $pen ]
then
 echo "$apple = $pen : apple 等于 pen"
else
 echo "$apple = $pen: apple 不等于 pen"
fi
if [ $apple != $pen ]
then
 echo "$apple != $pen : apple 不等于 pen"
else
 echo "$apple != $pen: apple 等于 pen"
fi
if [ -z $apple ]
then
 echo "-z $apple : 字符串长度为 0"
else
 echo "-z $apple : 字符串长度不为 0"
fi
if [ -n "$apple" ]
then
 echo "-n $apple : 字符串长度不为 0"
else
 echo "-n $apple : 字符串长度为 0"
fi
if [ $apple ]
then
 echo "$apple : 字符串不为空"
else
 echo "$apple : 字符串为空"
fi

执行结果:

[root@iz2ze0ajic0vbv28hcdctpz ~]# ./string.sh
apple = pen: apple 不等于 pen
apple != pen : apple 不等于 pen
-z apple : 字符串长度不为 0
-n apple : 字符串长度不为 0
apple : 字符串不为空

逻辑运算符

编写脚本:

#!/bin/bash
num1=5
num2=8
if [[ $num1 -lt 10 && $num2 -gt 5 ]]
then
 echo "返回 true"
else
 echo "返回 false"
fi

if [[ $num1 -lt 10 || $num2 -gt 5 ]]
then
 echo "返回 true"
else
 echo "返回 false"
fi

执行结果:

[root@iz2ze0ajic0vbv28hcdctpz ~]# ./logic.sh
返回 true
返回 true

文件测试运算符

编写脚本:

~ cat testfile.sh
#!/bin/bash

file="/root/testfile.sh"

if [ -r $file ]
then
 echo "该文件可读"
else
 echo "该文件不可读"
fi
if [ -x $file ]
then
 echo "该文件可执行"
else
 echo "该文件不可执行"
fi
if [ -w $file ]
then
 echo "该文件可写"
else
 echo "该文件不可写"
fi

if [ -f $file ]
then
 echo "该文件是普通文件"
else
 echo "该文件是非普通文件"
fi

if [ -s $file ]
then
 echo "该文件为空"
else
 echo "该文件不为空"
fi
if [ -d $file ]
then
 echo "该文件是目录"
else
 echo "该文件不是目录"
fi

执行脚本:

➜  ~ ./testfile.sh
该文件可读
该文件可执行
该文件可写
该文件是普通文件
该文件为空
该文件不是目录

shell条件判断&流程控制

其实流程控制的本质是差不多的,只是在语法上稍微有些差别,本节我们来盘一盘。

单分支if

流程示意图:

举例:

➜ if cat if-one.sh
#!/bin/bash
a=10

if [ a > 5 ]
then
 echo "a 大于 5"
fi

执行结果:

➜  if ./if-one.sh
a 大于 5

双分支if

流程示意图:

举例:

➜ if cat if-double.sh
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
 echo "成年"
else
 echo "未成年"
fi

执行结果:

➜  if ./if-double.sh
成年

多分支if语句

流程示意图:

举例:

➜ if cat if-multi.sh
#!/bin/bash
money=10
if [ $money -lt 1 ]
then
 echo "1块钱都没有的比皮卡丘决定在家吃土"
elif [ $money -ge 1 -a $money -lt 5 ]
then
 echo "老板我要大白兔奶糖"
elif [ $money -ge 5 -a $money -le 10 ]
then
 echo "老板我要巧克力"
else
 echo "老板给我拿个鸡腿"
fi

执行结果:

➜  if ./if-multi.sh
老板我要巧克力

到此这篇关于3000字扫盲shell基础知识的文章就介绍到这了,更多相关shell入门内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Shell脚本编程30分钟入门(小结)

    什么是Shell脚本 Shell脚本(英语:Shell script),又称Shell命令稿.程序化脚本,是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作.被当成是一种脚本语言来设计,其运作方式与直译语言相当,由Unix shell扮演命令行解释器的角色,在读取shell脚本之后,依序运行其中的shell命令,之后输出结果.利用shell脚本可以进行系统管理,文件操作等. 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell

  • linux Shell入门:掌握Linux,OS X,Unix的Shell环境

    在Linux或类Unix系统中,每个用户和进程都运行在一个特定环境中.这个环境包含了变量.设置.别名.函数以及更多的东西.下面是对Shell环境下一些常用命令的简单介绍,包括每个命令如何使用的例子,以及在命令行下设定你自己的环境来提高效率. 找出你当前的shell 在终端应用中输入下面命令中的任意一个: ps $$ ps -p $$ 或者 echo "$0" 输出范例: 图1:找出当前的shell 找出所有已安装的shell 找到已安装shell的完整路径: type -a zsh t

  • 分享一个入门级可控多线程shell脚本代码

    说到shell可控多线程,网上分享的大部分是管道控制的方案.这种方案,张戈博客也曾经实战并分享过一次:<Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点>,感兴趣的朋友可以看看. 分享一个入门级可控多线程shell脚本方案 下面张戈博客再分享另一种更容易理解的入门级可控多线程shell脚本方案:任务切割.各个击破. 先来 1 段场景描述: 某日,在鹅厂接到了这个任务,需要在Linux服务器中,对几千个IP进行一次Ping检测,只要取得ping可达的IP就好.如果单个IP去pi

  • linux shell(.sh)脚本编写和运行入门

    编写第一个shell脚本 在gedit中编写.sh格式的文件,保存为a.sh. 代码: #! /bin/bash # employ bash shell player1=xiaoming # define a player1 player2=ken echo "Game start! $player1 $player2" # echo is used to printf in terminal 在终端调用脚本,定位到目录,然后输入: bash a.sh 看到打印结果如上所示. 编写第一

  • Linux Shell 脚本编程入门教程

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作.在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用.深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh).Bourne

  • 一篇教会你写90%的shell脚本(入门小结)

    shell脚本? 在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls.cd.pwd等等.总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动.暂停.停止程序的运行或对计算机进行控制. shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效.安全.低成本地使用 Linux 内核,这就是 Shell 的本质.

  • Linux Shell脚本系列教程(一):Shell入门

    一.Shell简介 诸多类Unix操作系统的设计令人惊叹.即便是在数十年后的今天,Unix式的操作系统架构仍是有史以来最佳的设计之一.这种架构最重要的一个特性就是命令行界面或者shell.shell环境使得用户能与操作系统的核心功能进行交互.术语脚本更多涉及的便是这种环境.编写脚本通常使用某种基于解释器的编程语言.shell脚本本质上就是一些文本文件,我们可以将一系列需要执行的命令写入其中,然后通过shell来执行. 在这里我们介绍的是Bash shell(Bourne Again Shell)

  • 3000字扫盲shell基础知识(新手必备)

    不论前端还是后端,再学会Linux的基础上,还应该学会写一些简单的Shell.不止是工作,日常中想做一些东西,如果手动做就很累人也费时间,如果你会用Shell脚本处理就很简单了,本文普及的shell的一些基础知识.后面还会持续更新. shell基础语法之变量 shell 变量命名 变量只能由大小写字母,数字和下划线组成. 变量名称不能以数字开头. 变量可以存储数字类型或者字符串类型. 变量赋值等号两边不能有空格. 字符串的变量可以用单引号或者双引号括起来. 定义变量: ➜ ~ name="xia

  • ASP新手必备的基础知识

    我们都知道,ASP是Active Server Page的缩写,意为"动态服务器页面".ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单.方便的编程工具.下面介绍一些基本知识,供大家参考. 一.数据库连接 以下为引用的内容: <% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access dr

  • AngularJS实用基础知识_入门必备篇(推荐)

    前言 今天来和大家学习一下AngularJS-- AngularJS 通过新的属性和表达式扩展了 HTML. AngularJS 可以构建一个单一页面应用程序. AngularJS 学习起来非常简单. 一.AngularJS指令与表达式 [AngularJS常用指令] 1.ng-app:声明Angular所管辖的区域,一般写在body或HTML上,原则上一个页面只有一个. 2.ng-model:把元素值(比如输入域的值)绑定到应用程序的变量中. eg:<input type="text&q

  • 学习shell脚本之前的基础知识[图文]

    日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要不断的练习,只要你shell脚本写的好,相信你的linux求职路就会轻松的多.笔者在这一章中并不会多么详细的介绍shell脚本

  • sql注入之必备的基础知识

    什么是SQL注入(SQL Injection) 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击. mysql常用注释 # --[空格]或者是--+ /*-*/ 在注意过程中,这些注释可能都需要进行urlencode. mysql认证绕过 ;%00 ' or 1=1 # ' /*!or */

  • Asp.net基础知识扫盲篇

    asp.net基础知识篇-中文扫盲篇 1..NET是什么? .Net全称.NET Framework是一个开发和运行环境, 该战略是微软的一项全新创意, 它将使得"互联网行业进入一个更先进的阶段, .NET不是一种编程语言. 简单说就是一组类库框架, .NET开发支持C#.VB.NET.J#.Jsript和Managed C++等. C#是.NET Framework框架支持的一种主力开发语言, 可用于开发ASP.NET网站, Windows 程序,控制台程序,甚至于手机软件 2.ASP.NET

  • Ubuntu 20.04最佳配置指南(新手必备)

    一.系统配置 1.关闭sudo密码 为了避免每次使用sudo命令时都输入密码,我们可以将密码关闭.操作方法: 1.终端输⼊命令 sudo visudo ,打开 visudo: 2.找到 %sudo ALL=(ALL:ALL) ALL 这⼀⾏修改为 %sudo ALL=(ALL:ALL) NOPASSWD:ALL 2. 修改软件源 Ubuntu 默认的软件源是境外的,速度上会有些问题,我们可以在「So!ware & Updates」(软件和更新)中 选择国内的镜像. 3. 更新系统 # 更新本地报

  • Django基础知识与基本应用入门教程

    本文实例讲述了Django基础知识与基本应用.分享给大家供大家参考,具体如下: MVC模式和MTV模式 MVC model view controller MTV model templates view controller Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM)        Template(模版):负责如何把页面展示给用户        View(视图):负责业务逻辑,并在适当的

  • PHP小白必须要知道的php基础知识(超实用)

    很多人看到PHP就以为是程序员,就以为钱很多(虽然是事实),但是也要考虑下自己是不是适合这一行,知道PHP是什么吗?PHP都有什么样的功能,都能用来干嘛? PHP是什么? •PHP(PHP: Hypertext Preprocessor,超文本预处理器的缩写),是一 种被广泛应用的开放源代码的.基于服务器端的用于产生动态网页 的.可嵌入HTML中的脚本程序语言,尤其适合 WEB 开发. •当客户端向服务器的程序提出请求时,web服务器根据请求晌应对应 的页面,当页面中含有php脚本时,服务器会交

  • Shell常见知识 方便想学习linux shell的彭玉

    Shell常见知识 一.用户登陆进入系统后的系统环境变量 $HOME 使用者自己的目录$PATH 执行命令时所搜寻的目录$TZ 时区$MAILCHECK 每隔多少秒检查是否有新的信件$PS1 在命令列时的提示号$PS2 当命令尚未打完时,Shell 要求再输入时的提示号$MANPATH man 指令的搜寻路径 二.特殊变量 $0 这个程序的执行名字$n 这个程序的第n个参数值,n=1..9$* 这个程序的所有参数$# 这个程序的参数个数$$ 这个程序的PID$! 执行上一个指令的PID$? 执行

随机推荐