自学内容网 自学内容网

【完-网络安全】Shell与脚本

在这里插入图片描述

1.CLI与GUI

CLI命令行界面(CLl,Command Line Interface)
是早期电脑最广泛的用户界面,用户通过键盘出入指令,指令的执行结果往往也以文本的形式呈现给用户。

GUI 图形用户界面
图形用户界面(GUl,Graphical UserInterface)是指采用图形方式显示的用户界面,图形用户界面的学习成本更低,用户可以使用标及键盘与应用程序、操作系统进行交互。


2.终端和Shell

2.1 Shell 壳层

Shell(也称为壳层)则是指为用户提供用户“界面”的软件,这里的界面一般指 CLI。当然也有 GUl的 Shell比如 windows Explorer,即windows 资源管理器。一般来说计算机科学中提到Shell 的时候都是指 CLI类型的软件。

WindowsCLIGUI
WindowsWindows cmd/powershell资源管理器
类 Unixbash/zshGNOME/KDE

2.2 终端

常见终端模拟器

Windows :控制台 TerminalWindows
Linux :gnome-terminal/Konsole
macOS:Terminal.app/iTerm2

2.3 终端和Shell区别

现代操作系统中,用户用到的看来是 **CLI形式的“命令行窗口”或“终端”往往包括两个部分:一个终端模拟器软件以及真正处理用户命令的 Shell 。**比如 Windows 下常见的命令提示符运行后包含一个终端模拟器 conhost.exe 以及一个 Shell cmd.exe 。

在这里插入图片描述


3.标准流

终端和 Shell 之间通过标准流进行通信,标准流有三个
·stdin即标准输入。
·stdout即标准输出。
.stderr即标准错误输出。


4.PowerShell

4.1 管理员与非管理员

管理员权限打开的和非管理员权限的 Powershell 可以通过窗口标题以及初始工作目录来区分。

在这里插入图片描述
在这里插入图片描述


4.2 指令

Tab 自动补全命令
方向键可以翻看命令历史记录
CTRL+C 可以中断当前指令或脚本运行
非管理员权限的命令行支持直接拖放目录或文件
按住左键选中内容后点击右键可复制,直接点击右键可黏贴

在这里插入图片描述


4.3 重定向

在 Powershell 或其他 Shell 中,可以将指令执行的结果输出到文件中,甚至输出流之间也可以相互输出,我们称之为重定向。

“> ”重定向输出并覆盖
“> >” 重定向输出并追加
2>&1 2代表stderr,1代表stdout,即将stderr重定向到std


4.4 管道

在 Powershell 或其他 Shell 中,还可以将第一个指令的输出作为第二个指令的输入,来实现程序之间的互通,管道的符号是。比如想要删除当前文件夹中,文件名包含的所有文件。可以运行
dir -Name | grep | rm


5.环境变量

5.1 影响范围

不同类型的环境变量影响范围不同,用户变量只对特定用户生效,而系统变量则全局生效。
系统变量,与 Windows操作系统包括网络状况有关,由操作系统定义。管理员权限的用户可以添加添加、修改或删除;系统变量的作用域是全局的对所有用户生效。
用户变量,由操作系统、某些应用程序以及用户建立,相应的用户可以:增加、修改或删除;用户变量只影响对应的用户。


5.2环境变量的作用

环境变量在现代操作系统中几乎无处不在,常见作用有
为各个进程提供系统相关信息,比如Windows下环境变量 TEMP 对应临时文件夹。
PATH环境变量存放一些目录,Shel在执行指令时会试图从这些目录查应程序。
脚本中可以用环境变量来存储一些必要的数据,甚至可以将这些数据传这其他进程。


5.3 常见的环境变量

Windows 下常见的环境变量有,
Path:可执行文件搜索路径
ProgramFiles:默认程序安装目录·
windir:Windows 文件夹的路径
APPDATA:当前用户程序数据存放路径
TEMP/TMP:当前用户临时文件夹


6.脚本

什么是脚本
将多条 cmdles 集中在一个文件中,像编程一样自动化完成任务,这个文件我们称之为“脚本”。
cmd.exe的脚本扩展名为.bat,称之为批处理文件
Powershell的脚本扩展名为.ps1


脚本执行策略
Windows 上出于安全考虑,默认脚本执行策略为Restricted,即阻止所有脚本运行。Powershell执行策略包括以下几种:

AllSigned 可以运行脚本,但要求数字签名,包括本地编写的脚本
Bypass 不阻止任何脚本运行
RemoteSigned 可以运行脚本,远程下载的脚本需要数字签名,而本地写的不用
Restricted 不允许运行脚本
Undefned 未定义
Unrestricted 不限制脚本运行但会对非本地脚本弹出警告



原文地址:https://blog.csdn.net/qq_42688959/article/details/142822324

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!