关于shell

写这篇文章的原因有二,一是因为接触CTF的二进制类型题目后,经常会听到个词叫“getshell”,意为“获取shell”;二是前一段时间,在区块链的课程实验中,用go语言实现raft算法(解决分布式一致性问题的一个算法),在运行测试脚本的时候,我照常用命令“sh ./run.sh”来运行脚本,结果是报错,搞得我一头雾水,于是我决定好好学习一下这个Linux中的shell脚本。

什么是shell

shell是一个复杂的交互式程序,基本上用户一登录进终端,它就在运行了。它为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径,它允许你输入文本命令,然后解释命令,并在内核中执行。
在图形化桌面出现之前,与Unix系统进行交互的唯一方式就是借助由shell提供的文本命令行界面(command line interface,CLI)。CLI只能接受文本输入,也只能显示出文本和基本的图形输出。现在都是通过图形化的终端(Terminal)访问CLI。下图是deepin的终端,还是比较美观的。
deepin的图形化终端
Linux上可用的shell其实有好几种,不同shell有不同的特性。执行“cat /etc/shells”可查看系统支持的shell,Linux中其它常见shell还有ash、korn、tcsh和zsh等。下图所列全都是shell程序的绝对路径。大多数发行版Linux系统默认的shell是bash shell:

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Shell脚本面试题是与Linux Shell相关的问题,以下是几个常见的面试题及其解答: 1. 什么是Shell脚本? Shell脚本是一种用于自动化执行任务的脚本语言。它可以通过编写命令和脚本来实现自动执行各种任务,包括文件操作、系统管理和软件安装等。 2. Shell脚本的文件扩展名是什么? Shell脚本的文件扩展名通常是.sh。 3. 如何指定一个脚本要使用的Shell类型? 可以使用shebang(井号加叹号)来指定脚本要使用的Shell类型。例如,#!/bin/bash表示脚本使用Bash Shell。 4. 如何将一个Shell脚本变成可执行文件? 可以使用chmod命令将Shell脚本文件设置为可执行文件。例如,使用chmod +x script.sh命令将script.sh文件设置为可执行文件。 5. 如何在Shell脚本中获取命令行参数? 可以使用特殊变量$1、$2、$3等来获取命令行参数。$1表示第一个参数,$2表示第二个参数,依此类推。 6. 如何在Shell脚本中进行条件判断? 可以使用if语句进行条件判断。例如: ``` if [ 条件 ]; then # 如果条件成立执行的代码 else # 如果条件不成立执行的代码 fi ``` 7. 如何在Shell脚本中进行循环操作? 可以使用for循环或while循环进行循环操作。例如: ``` # for循环 for 变量 in 列表; do # 循环体 done # while循环 while 条件; do # 循环体 done ``` 8. 如何在Shell脚本中读取文件内容? 可以使用while循环结合read命令来逐行读取文件内容。例如: ``` while read line; do # 处理每行内容的代码 done < 文件名 ``` 9. 如何定义和使用Shell脚本中的函数? 可以使用function关键字定义函数,然后通过函数名调用函数。例如: ``` function 函数名 { # 函数体 } # 调用函数 函数名 ``` 10. 如何在Shell脚本中进行字符串操作? 可以使用字符串操作符来进行字符串的拼接、替换等操作。例如: ``` # 字符串拼接 str="Hello" str2="World" result=$str$str2 # 字符串替换 str="Hello World" result=${str/World/John} ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值