Uso básico do Shell

Shell é um programa escrito em linguagem C, que é uma ponte para os usuários usarem o Linux. Shell é uma linguagem de comando e uma linguagem de programação.

Shell refere-se a um programa aplicativo que fornece uma interface por meio da qual os usuários acessam os serviços do kernel do sistema operacional.

O sh de Ken Thompson é o primeiro shell Unix, e o Windows Explorer é um shell típico de interface gráfica.

1. Script de shell

Shell script (shell script) é um programa de script escrito para o shell.

O shell mencionado na indústria geralmente se refere a scripts de shell, mas os leitores devem saber que shell e script de shell são dois conceitos diferentes.

Devido a razões habituais, por uma questão de brevidade, "programação de shell" neste artigo refere-se à programação de scripts de shell, não ao próprio shell de desenvolvimento.

2. Ambiente shell

A programação Shell é a mesma que a programação JavaScript e PHP, desde que haja um editor de texto que possa escrever código e um interpretador de script que possa interpretar e executar.

Existem muitos tipos de Linux Shells, os mais comuns são:

  • Bourne Shell (/usr/bin/sh ou /bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell para Root(/sbin/sh)

3. O primeiro script de shell

Abra um editor de texto (você pode usar o comando vi/vim para criar um arquivo), crie um novo arquivo test.sh, a extensão é sh (sh significa shell), a extensão não afeta a execução do script, apenas conheça o nome, se você usar php para escrever scripts de shell, use apenas php como extensão.

Digite algum código, a primeira linha geralmente é assim:

#!/bin/bash
echo "Hello World !"
复制代码

#!É uma marca convencional, que informa ao sistema qual interpretador esse script precisa executar, ou seja, qual shell usar.

O comando echo é usado para enviar texto para a janela.

运行 Shell 脚本有两种方法:

1、作为可执行程序

将上面的代码保存为 test.sh,并 cd 到相应目录:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本
复制代码

注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

2、作为解释器参数

这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:

/bin/sh test.sh
/bin/php test.php
复制代码

这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。

ubuntu(linux)下 source、sh、bash、./ 执行脚本的区别是什么?

1. source命令用法:

source FileName
复制代码

作用:在当前 bash 环境下读取并执行 FileName 中的命令。该 filename 文件可以无 "执行权限"。

注:该命令通常用命令 . 来替代。

2. sh、bash的命令用法:

sh FileName
或
bash FileName
复制代码

作用:打开一个子 shell 来读取并执行 FileName 中命令。该 filename 文件可以无 "执行权限"。

注:运行一个shell脚本时会启动另一个命令解释器。

3、./的命令用法:

./FileName
复制代码

作用: 打开一个子 shell 来读取并执行 FileName 中命令,该 filename 文件需要 "执行权限"。

注:运行一个 shell 脚本时会启动另一个命令解释器。

Acho que você gosta

Origin juejin.im/post/7229318874806321212
Recomendado
Clasificación