- What is Shell Script?
- Types of Shells
- Bourne Shell
- C Shell
- Capabilities of Shell Script
- Advantages of Shell Script
- Disadvantages of Shell Script
- Example of Shell Script
- Scriptable Shell Objects
- Shell Versions
- Instantiating Shell Objects
- Late Binding
- HTML OBJECT Element
- Shell Object
- Security
- Folder Objects
- Information Security Squad
- 🐧 Как запустить файл .sh или Shell скрипт в Windows 10
- Как запустить файл .sh или скрипт шелла в Windows 10
- 1] Выполнить файл скрипта оболочки, используя WSL
- 2] Выполнить скрипт оболочки, используя Ubuntu в Windows 10
What is Shell Script?
A shell script is a list of commands in a computer program that is run by the Unix shell which is a command line interpreter. A shell script usually has comments that describe the steps. The different operations performed by shell scripts are program execution, file manipulation and text printing. A wrapper is also a kind of shell script that creates the program environment, runs the program etc.
Types of Shells
There are two major types of shells in Unix. These are:
Bourne Shell
This is the default shell for version 7 Unix. The character $ is the default prompt for the bourne shell. The different subcategories in this shell are Korn shell, Bourne Again shell, POSIX shell etc.
C Shell
This is a Unix shell and a command processor that is run in a text window. The character % is the default prompt for the C shell. File commands can also be read easily by the C shell, which is known as a script.
Capabilities of Shell Script
The different capabilities of the shell script are −
- Batch jobs
Several commands that would be entered manually in a command line interface can be executed automatically using a shell script. This can be done without the user needing to trigger each command separately.
Programming
There are many features in modern shell scripts that are only found in sophisticated programming languages such as arrays, variables, comments etc. Many complicated applications can be written in shell scripts using these features. But there is a problem i.e. shell script languages don’t support classes, threading etc.
Generalisation
It is much more flexible to use loops, variables etc for multiple tasks in shell script. An example of this is a Unix shell script known as bash, which converts jpg images to png images.
Shortcuts
There is a shortcut provided by a shell script for a system command where command options, environment settings or post processing apply. This still allows the shortcut script to act as a Unix command.
Advantages of Shell Script
Some of the advantages of shell script are −
- The commands and syntax of the shell script are the same as that entered at the command line. Because of this, there is no need to switch to a completely different syntax.
- It is much faster to write a code in shell script than in other programming languages. This also means that the program is easier to create and files required can be selected easily.
- Shell script can also be used to provide linkage for already existing programs.
- Shell scripting can be used by users that are not experts to modify and tailor the behaviour of their programs according to their requirements.
Disadvantages of Shell Script
Some of the disadvantages of shell script are −
- There may be errors in shell scripting that prove to be quite costly.
- The programs in shell script are quite slow while executing and a new process is required for every shell command executed.
- Different platforms in shell scripting may also have compatibility problems.
Example of Shell Script
A script demo.sh is created for this example. The script and commands are given as follows −
gzip is a command to create, extract or view .gz files,
zip is a command used to create or extract zip file,
find is a command that is helpful to search for a file,
echo is a command displays a line of text
Scriptable Shell Objects
The Windows Shell provides a powerful set of automation objects that enable you to program the Shell with Microsoft Visual Basic and scripting languages such as Microsoft JScript (compatible with ECMA 262 language specification) and Microsoft Visual Basic Scripting Edition (VBScript). You can use these objects to access many of the Shell’s features and dialog boxes. For example, you can access the file system, launch programs, and change system settings.
This section introduces the scriptable Shell objects.
- Shell Versions
- Instantiating Shell Objects
- Late Binding
- HTML OBJECT Element
- Shell Object
- Security
- Folder Objects
Shell Versions
Many of the Shell objects became available in version 4.71 of the Shell. Others are available in version 5.00 and later. Version 5.00 became available with WindowsВ 2000. The following table lists each Shell object under the version of the Shell in which the object became available.
Version 4.71 | Version 5.00 |
---|---|
Folder | DIDiskQuotaUser |
FolderItemVerb | DiskQuotaControl |
FolderItemVerbs | Folder2 |
Shell | FolderItem |
ShellFolderView | FolderItems |
ShellUIHelper | FolderItems2 |
ShellWindows | IShellDispatch2 |
WebViewFolderContents | IShellLinkDual2 |
ShellFolderItem | |
ShellFolderViewOC | |
ShellLinkObject |
Instantiating Shell Objects
To instantiate the Shell objects in Visual Basic applications with early binding, add references to the following libraries in your project:
- Microsoft Internet Controls (SHDocVw)
- Microsoft Shell Controls and Automation (Shell32)
Late Binding
You can also instantiate many of the Shell objects with late binding. This approach works in Visual Basic applications and in script. The following example shows how to instantiate the Shell object in JScript.
The following example shows how to instantiate the Folder object in VBScript.
In the preceding example, sDir is the path to the Folder object. Note that the ShellSpecialFolderConstants enumeration values are not available in script.
The ProgID for each of the Shell objects is shown in the following table.
Object | ProgID |
---|---|
DIDiskQuotaUser | Microsoft.DiskQuota.1 |
DiskQuotaControl | Cannot late bind |
Folder | shell.Shell_Application.NameSpace(«. «) |
Folder2 | shell.Shell_Application.NameSpace(«. «) |
FolderItem | shell.Shell_Application.NameSpace(«. «).Self or Folder.Items.Item or Folder.ParseName |
FolderItems | Folder.Items |
FolderItems2 | Folder.Items |
FolderItemVerb | Shell.NameSpace(«. «).Self.Verbs.Item() |
FolderItemVerbs | FolderItem.Verbs or Shell.NameSpace(«. «).Self.Verbs |
IShellDispatch2 | shell.Shell_Application |
IShellLinkDual2 | Shell.NameSpace(«. «).Self.GetLink or Shell.NameSpace(«. «).Items().GetLink |
Shell | shell.Shell_Application |
ShellFolderItem | Shell.NameSpace(«. «).Self or Shell.NameSpace(«. «).Items() |
ShellFolderView | Cannot late bind |
ShellFolderViewOC | Cannot late bind |
ShellLinkObject | Shell.NameSpace(«. «).Self.GetLink or Shell.NameSpace(«. «).Items().GetLink |
ShellUIHelper | Cannot late bind |
ShellWindows | shell.Shell_Windows or ShellWindows._NewEnum |
WebViewFolderContents | Cannot late bind |
HTML OBJECT Element
You can also use the OBJECT element to instantiate Shell objects on an HTML page. To do this, set the OBJECT element’s ID attribute to the variable name you will use in your scripts, and identify the object using its registered number (CLASSID). The following HTML creates an instance of the ShellFolderItem object using the OBJECT element.
The following table lists each Shell object and its respective CLASSID.
DIDiskQuotaUser | 7988B571-EC89-11cf-9C00-00AA00A14F56 |
DiskQuotaControl | 7988B571-EC89-11cf-9C00-00AA00A14F56 |
Folder | BBCBDE60-C3FF-11CE-8350-444553540000 |
Folder2 | f0d2d8ef-3890-11d2-bf8b-00c04fb93661 |
FolderItem | 744129E0-CBE5-11CE-8350-444553540000 |
FolderItems | 744129E0-CBE5-11CE-8350-444553540000 |
FolderItems2 | C94F0AD0-F363-11d2-A327-00C04F8EEC7F |
FolderItemVerb | 08EC3E00-50B0-11CF-960C-0080C7F4EE85 |
FolderItemVerbs | 1F8352C0-50B0-11CF-960C-0080C7F4EE85 |
IShellDispatch2 | A4C6892C-3BA9-11d2-9DEA-00C04FB16162 |
IShellLinkDual2 | 317EE249-F12E-11d2-B1E4-00C04F8EEB3E |
Shell | 13709620-C279-11CE-A49E-444553540000 |
ShellFolderItem | 2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e |
ShellFolderView | 62112AA1-EBE4-11cf-A5FB-0020AFE7292D |
ShellFolderViewOC | 4a3df050-23bd-11d2-939f-00a0c91eedba |
ShellLinkObject | 11219420-1768-11d1-95BE-00609797EA4F |
ShellUIHelper | 64AB4BB7-111E-11D1-8F79-00C04FC2FBE1 |
ShellWindows | 9BA05972-F6A8-11CF-A442-00A0C90A8F39 |
WebViewFolderContents | 1820FED0-473E-11D0-A96C-00C04FD705A2 |
Shell Object
The Shell object represents the objects in the Shell. You can use the methods exposed by the Shell object to:
- Open, explore, and browse for folders.
- Minimize, restore, cascade, or tile open windows.
- Launch Control Panel applications.
- Display system dialog boxes.
Users are perhaps most familiar with the commands they access from the Start menu and the taskbar’s shortcut menu. The taskbar’s shortcut menu appears when users right-click the taskbar. The following HTML Application (HTA) produces a start page with buttons that implement many of the Shell object’s methods. Some of these methods implement features on the Start menu and the taskbar’s shortcut menu.
Security
As an application, an HTA runs under a different security model than a webpage. To interact with a webpage that implements the functionality of the Shell objects, users must enable the Initialize and script ActiveX Controls not marked as safe option for the security zone in which they are viewing the page.
Folder Objects
The Folder object represents a Shell folder. You can use the methods exposed by the Folder object to:
- Get information about a folder.
- Create subfolders.
- Copy and move file objects into the folder.
The FolderItem object represents an item in a Shell folder. Its properties enable you to retrieve information about the item. You can use the methods exposed by this object to run an item’s verbs, or to retrieve information about an item’s FolderItemVerbs object.
The FolderItems object represents a collection of items in a Shell folder. Its methods and properties enable you to retrieve information about the collection.
The following Visual Basic example shows the relationship between several of the folder objects and how they can be used together. When the user clicks the command button called cmdGetPath, the program displays a dialog box that enables the user to select a folder from My Computer, where ssfDRIVES is the ShellSpecialFolderConstants enumeration value for My Computer. When the user chooses a folder, the folder’s path is displayed in the text box called txtPath.
In VBScript, this function is slightly different because the ShellSpecialFolderConstants enumeration values are not available in script. The following example shows the VBScript equivalent of the previous example.
In the following JScript example, which is a direct translation of the preceding VBScript example, note how the empty parentheses ‘()’ are used to invoke the Items and Item methods.
Information Security Squad
stay tune stay secure
- Home
- 2019
- Июль
- 15
- 🐧 Как запустить файл .sh или Shell скрипт в Windows 10
🐧 Как запустить файл .sh или Shell скрипт в Windows 10
Шелл скрипты или .SH файлы похожи на командные файлы Windows, которые могут выполняться в Linux или Unix.
В Windows 10 можно запустить файл .sh или скрипт оболочки, используя подсистему Windows для Linux.
В этом руководстве мы покажем вам, как запустить файл скрипта оболочки в Windows 10.
Как запустить файл .sh или скрипт шелла в Windows 10
Bash – это оболочка и командный язык Unix, который может запускать файлы скрипты .sh.
Вам не нужно устанавливать Ubuntu или любые другие дистрибутивы Linux, если ваши скрипты не нуждаются в поддержке реального ядра Linux.
Мы поделимся обоими методами.
- Выполнить файл скрипт оболочки, используя WSL
- Выполнить скрипт оболочки с помощью Ubuntu в Windows 10
1] Выполнить файл скрипта оболочки, используя WSL
Установите WSL или Windows Subsystem для Linux
Перейдите в Настройки> Обновление и безопасность> Для разработчиков.
Проверьте переключатель режима разработчика.
Поищите «Функции Windows», выберите «Включить или отключить функции Windows».
Прокрутите, чтобы найти WSL, установите флажок и установите его.
После этого необходимо перезагрузить компьютер, чтобы завершить установку запрошенных изменений.
Нажмите Перезагрузить сейчас.
BASH отныне будет доступен в командной строке и PowerShell.
Выполнить файлы скриптов оболочки
- Откройте командную строку и перейдите в папку, где доступен файл скрипта
- Введите Bash script-filename.sh и нажмите клавишу Enter.
- Система выполнит скрипт, и в зависимости от файла вы должны увидеть вывод.
На платформе Linux вы обычно используете SH, но здесь вам нужно использовать BASH.
Тем не менее, BASH в Windows имеет свои ограничения, поэтому, если вы хотите выполнить их в среде Linux, вам нужно установить Ubuntu или что-то подобное.
2] Выполнить скрипт оболочки, используя Ubuntu в Windows 10
Убедитесь, что у вас установлена Ubuntu или любой другой дистрибутив Linux.
Ubuntu смонтирует или сделает все ваши каталоги Windows доступными в /mnt.
Таким образом, диск C доступен по адресу /mnt/C.
Таким образом рабочий стол будет доступен по адресу /mnt/c/users/ /desktop.
Теперь следуйте этим шагам
- В командной строке введите Bash, и система запустит приглашение дистрибутива.
- Перейдите в папку с помощью команды «cd» , где доступны скрипты.
- Введите «sh script.sh» и нажмите Enter
Система выполнит скрипт
Поскольку Linux теперь доступен в Windows, вам не нужно использовать какие-либо сторонние приложения, такие как Cygwin.
WSL должно быть достаточно для большинства скриптов, чтобы помочь вам запустить эти самые крипты оболочки в Windows 10.