Xshell命令

一 概述:

shell 一种解释型的语言,同解释器翻译成计算机机器语言,与javascript ,python同属于解释型语言。

如此相对的 有java .C# 属于编译型的语言,java语言通过编译器编译成class 文件,在通过java虚拟机 (JVM)的处理编程机器识别的语言。

二 Shell解析器

  1. liunx解析器存放的目录如下:

xshell运行python项目 xshell运行代码_bash

/bin/sh  bash的一个快捷方式

/bin/bash bash 是liunx下面大多数模式使用的shell

/bin/nologin  表示非交付,不能登录

/bin/dash   小巧高效,相对功能少一些

/bin/tcsh   具有C语言风格的一种shell ,特性多,缺陷不少

/bin/csh  是csh的增强版

  1. bash 和 shell的关系

bash 是 sh的一个软连接

xshell运行python项目 xshell运行代码_命令行_02

3) CentOS 默认的解析器 是 bash

xshell运行python项目 xshell运行代码_bash_03

三shell的脚本入门

  1. 脚本的格式

以 #!/bin/bash  注明解析器

  1. 自己编写案例

:<<! 多行注释

DESC 创建人生中的一个shell脚本

ANTHOR 张洋

!

:<<EOF

CREATETIME: 2019-12-14 16:00:00

UPTETIME:

EOF

#!/bin/bash

rm -rf /root/class21/test.txt

mkdir /root/class21/test2

mkdir -p /root/class21/test2/dir{1..3} /root/class21/test2/dir6

touch /root/class21/test2/dir2/student.txt

echo "zhangsan" >> /root/class21/test2/dir2/student.txt

echo "创建时间:`date '+%Y-%m-%d %H:%M:%S'`"

  1. 脚本的执行方式

sh/bash 相对路径/绝对路径

第一种:采用bash或sh+脚本的相对路径或绝对路径(不用赋予脚本+x权限)

[jinghang@hadoop101 datas]$ ./helloworld.sh

Helloworld

第二种:采用输入脚本的绝对路径或相对路径执行脚本必须具有可执行权限+x推荐采用这种方式

chmod +x helloworld.sh

[jinghang@hadoop101 datas]$ /home/jinghang/datas/helloworld.sh

Helloworld

 

4)个Shell脚本:多命令处理

详情见自己编写的案例

四 shell中的变量

1)为什么要使用变量

1.如果某个内容需要多次使用,并且在代码中重复出现,那么可以使用变量代表该内容,

这样在修改内容的时候,仅仅需要修改变量的值。

2.在代码运作的过程中,可能会把某些命令的执行结果保存起来,后续代码需要使用这些结果,就可以直接使用这个变量。

2)常用的系统变量

$HOME

$USER

 $SHELL

 $PWD

$PATH

......

3)实操案例

(1)查看系统变量的值

[jinghang@hadoop101 datas]$ echo $HOME

/home/jinghang

(2)显示当前Shell中所有变量:set

[jinghang@hadoop101 datas]$ set

BASH=/bin/bash

BASH_ALIASES=()

BASH_ARGC=()

BASH_ARGV=()

 

  1. 自定义变量

int a = 1;

shell中的变量

a=1

#注意变量等号左右两边不要出现空格;变量名不要包含特殊字符;变量名称不能以数字开头

 #作用域:只针对当前用户和当前会话有效

 

echo $a  或者 echo ${a}  #读取变量

 

export b=2  #(全局环境变量)作用域:只针对当前会话的所有用户有效

 

创建系统的环境变量(作用域:只针对所有会话的所有用户有效)

1.vim /etc/profile

2.创建变量

export 变量名(大写)=变量的值

3.激活

source /etc/profile

 

取消变量

unset a

 

创建只读变量

readonly 变量名=值

  1. 特殊变量

1.$n

1.基本语法

$n (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})

2.案例实操

#!/bin/bash

:<<!

DESC 特殊字符的传参方式

ATHOR 张洋

CREATIME  2019-12-14 14:49:50

UPDATETIME

!

echo "$0 $1 $2 $3 "

echo $#

echo $@

echo $*

echo ""

echo $?

 

2.$#

1.基本语法

$# (功能描述:获取所有输入参数个数,常用于循环)。

2.案例实操

(1)获取输入参数的个数

#!/bin/bash

:<<!

DESC 特殊字符的传参方式

ATHOR 张洋

CREATIME  2019-12-14 14:49:50

UPDATETIME

!

echo "$0 $1 $2 $3 "

echo $#

echo $@

echo $*

echo ""

echo $?

  1. $*   ,  $@

1.基本语法

$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

  1. 案例实操

#!/bin/bash

:<<!

DESC 特殊字符的传参方式

ATHOR 张洋

CREATIME  2019-12-14 14:49:50

UPDATETIME

!

echo "$0 $1 $2 $3 "

echo $#

echo $@

echo $*

echo ""

echo $?

4.$

1.基本语法

$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

2.案例实操

#!/bin/bash

:<<!

DESC 特殊字符的传参方式

ATHOR 张洋

CREATIME  2019-12-14 14:49:50

UPDATETIME

!

echo "$0 $1 $2 $3 "

echo $#

echo $@

echo $*

echo ""

echo $?

  1. 简单总结

特殊变量 $n、$#、$*、$@、$?

#!/bin/bash

echo $0 $1 $2 $3 ${11}

 

echo $0 $1 $2 $3 ${11}

echo $#

echo $*

echo $@

 

echo $? 返回结果0:表示成功 1:表示失败