微信商城网站如何做,服务器wordpress建站教程,广州代理注册公司,郑州网站建设设计公司Shell 是一个用 C 语言编写的程序#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言#xff0c;又是一种程序设计语言。Shell 是指一种应用程序#xff0c;这个应用程序提供了一个界面#xff0c;用户通过这个界面访问 Linux 内核的服务。
Shell 脚本#x…Shell 是一个用 C 语言编写的程序它是用户使用 Linux 的桥梁。Shell 既是一种命令语言又是一种程序设计语言。Shell 是指一种应用程序这个应用程序提供了一个界面用户通过这个界面访问 Linux 内核的服务。
Shell 脚本shell script是一种为 shell 编写的脚本程序一般文件后缀为 .sh。
一、shell环境
Linux 环境下有很多可以使用的shell每个用户都拥有一个特定的默认shell。在Linux系统中/etc/shells文件用于指定哪些程序路径可以作为有效的登录shell。
Shell 的解释器种类众多常见的有
shell 解释器说明shBourne Shell。sh 是 Unix 标准默认的 shell。bashBourne Again Shell。bash 是 Linux 标准默认的 shell。tcsh整合 C Shell 提供更多的功能csh已经被 /bin/tcsh 所取代zsh功能强大的 shell 与脚本语言。
要查看系统中允许的合法登录shell可以执行以下命令
cat /etc/shells1.1 当前用户的默认shell
用户的“默认shell”是指他们登录系统后自动启动的命令行解释器或交互式shell。这个shell用于处理用户在命令行界面输入的命令和操作。 可以使用如下命令查看当前默认shell
echo $SHELL1.2 修改当前用户默认shell
要更改用户的默认shell可以在命令行中输入以下命令
chsh -s shell其中是你想要设置为用户默认shell的路径。例如要将当前用户的默认shell更改为Bash可以执行
chsh -s /bin/bash系统会要求你输入当前用户的密码以确认此操作。确认后用户的默认shell将被更改为Bash。但是似乎修改失败了。
1.3 指定脚本解释器
shell脚本中#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 解释器。#! 被称作shebang。 #! 决定了脚本可以像一个独立的可执行文件一样执行而不用在终端之前输入sh, bash, python, php等。
指定 bash 解释器
#!/bin/bash
#!/usr/bin/env bash1.4 shell 脚本执行方法
shell 脚本执行方法有多种以如下helloworld.sh 为例
#!/bin/bash
echo Hello, world!可以使用下面的命令让 shell 以非交互模式运行
sh /path/to/script.sh
bash /path/to/script.sh
source /path/to/script.sh
./path/to/script.sh其中source /path/to/script.sh 和 ./path/to/script.sh 是等价的。
除此之外你还可以通过chmod命令给文件添加可执行的权限来直接执行脚本文件
chmod x /path/to/script.sh #使脚本具有执行权限
/path/to/test.sh二、注释
注释可以说明你的代码是什么作用以及为什么这样写。shell 语法中注释是特殊的语句会被 shell 解释器忽略。
单行注释 - 以 # 开头到行尾结束。 多行注释 - 以 :EOF 开头到 EOF 结束。
# echo 这是单行注释########## 这是分割线 ##########:EOF
echo 这是多行注释
echo 这是多行注释
echo 这是多行注释
EOF三、shell 字符串输出
3.1 echo
echo用于字符串的输出。 输出普通字符串
echo hello!输出含有变量的字符串
namexiaoyuzhou
echo hello, \${name}\输出转义字符需要使用-e参数。
# 输出含换行符的字符串
echo -e first\nsecond
# \c 不换行
echo -e first \c
echo second3.2 printf 格式化输出字符串
printf 不会像 echo 一样自动添加换行符如果需要换行可以手动添加 \n。
如下仿照ls -l 的输出格式对文件夹信息进行打印输出
四、变量
Bash 中没有数据类型bash 中的变量可以保存一个数字、一个字符、一个字符串等等。同时无需提前声明变量给变量赋值会直接创建变量。
变量赋值时等号左右不能有空格。访问变量的语法为$var 或 ${var}。 使用 readonly 命令可以将变量定义为只读变量只读变量的值不能被改变。 使用 unset 命令可以删除变量。变量被删除后不能再次使用。unset 命令不能删除只读变量。
namexiaoyuzhou
gendermale
echo ${name}
readonly name
# namenewname # 放开注释执行报错
unset gender五、环境变量
环境变量是对当前 shell 会话内所有的程序或脚本都可见的变量。创建它们跟创建局部变量类似但使用的是 export 关键字shell 脚本也可以定义环境变量。
常见的环境变量
变量描述$HOME当前用户的用户目录$PATH用分号分隔的目录列表shell 会到这些目录中查找命令$PWD当前工作目录$RANDOM0 到 32767 之间的整数$UID数值类型当前用户的用户 ID$PS1主要系统输入提示符$PS2次要系统输入提示符