Useful Linux Commands for NOC Work

Total Page:16

File Type:pdf, Size:1020Kb

Useful Linux Commands for NOC Work Useful Linux Commands for NOC Work Abstract: This page is intended to be a somewhat-loose flow of instructions which will serve as both a lesson when taken in order and as a searchable reference. NOC's Linux sandbox (aus-noc-dev.trionworld.priv) can be reached with PuTTY (http://www.putty.org/). Objective/Goal: Provide a fully funtional introduction to performing Tier 1 NOC procedures in a Linux environment. Keywords: unix admin administration bash shell rhel centos ubuntu debian This document is a: Reference Learning and applying these instructions will require the use of: Your standard AD credentials should provide access; otherwise, Linux Engineering can set you up. Some learning lab advise: 1. Type your command but do not press Enter. 2. Take your hands far away from your keyboard. 3. Picture in your mind what you expect the command will do. 4. Press the Enter key then observe the results. Caution: In DOS, the Find command works like the Grep command in Linux. However, Find in Linux serves a different purpose and it is a far-reaching and dangerous command. It should not be used without a specific purpose in mind and only with intentions and results tested on a safe server. Instruction Body: The basics: Copy from your Linux session: Use the mouse to highlight the text you want to copy. Text will automatically go to the clipboard. Paste to your Linux session: Right-click in the Linux window. Items on the clipboard will insert at the cursor position. Ctrl+c // Cancel current action. Some actions require a few repeated cancels to generate an interrupt. ls -l // Shows the files in the current directory. unalias command // Turn off certain default system features. Also see the Unalias Supplement page. EX: unalias ls // This will cause all screen text shown during an ls of any sort to be black and white. EX: unalias vi // This will likewise cause special coloring to be removed, but during vi editing sessions. pwd // Shows your current directory. Tab-complete // You can partially type something and press tab to resolve the remaining text. mkdir folderName // Make a new subdirectory from your current location. touch fileName // Quickly make an empty file. cd folderName // Change directory to a folder beneath current directory. cd .. // Move up one directory level. cd ~ // Move to current user's home directory. cd /etc/httpd/conf // Move several levels ('/' aka "slash" or "root" through 'etc/' through 'httpd/' to 'conf') in one command. man subject // Pull up the manual for a subject. apropos subject // Search through a brief entry of subjects based on keywords. EX: apropos net | grep -i snmp | grep -i nic hostname // Shows what server you are current working in. ssh serverName //Move to another server. EX: ssh rwc-dev-ch1.trionworld.priv EX: ssh rwc-dev-ch1 ssh userName Move to another server using another name. @_serverName EX: [email protected] whoami // Shows what user you are currently working as. sudo su userName // Change to another user. sudo su - // Become the root user. Also "sudo su - root". sudo commandLine // Regardless of current user, function with admin rights. EX: sudo vi inventoryPlayerDisconnects.script rift eu clear // Clear the current screen. cursor-up/-down // Move through the last commands used as stored in history. history // Display a list of commands used. uptime // See how long it has been since the last bootup. who // See who is logged into the server. last // See who was previously logged into the server. type file // Show a quick blurb about a 'file'. Note that in Unix-based systems everything is a file. EX: type php EX: type vi EX: type ls EX: type alias host ipNumber // Find the hostname based on the IPv4 number given. nslookup ipNumber // Find the arpa name (FQDN) based on the IP address given. nslookup ipAddress // Find the IPv4 address based on the host name given. ifconfig // May have to be root (sudo su -) to do this. Shows ip configuration info. netstat // Displays active connections. tracert ipAddress // Perform a trace route. mtr ipAddress // Perform a My Traceroute. EX: mtr 216.81.59.173 Run this exact MTR command and enjoy the results! File commands: sudo chmod // '###' is where the numeric arguments are inserted. Change the permissions of a file so that certain ### groups, users or everyone else may read, write and/or execute the file. Some numeric argument examples are: 764 = User can read, write and execute (7); user group can read and write (6); everyone else can read (4). 500 = User can read and execute only (5); everyone else is denied read, write and execution (00). 710 = User can read, write and execute (7); user group can execute only (1); everyone else is denied (0). cat fileName // Display the contents of a file. EX: cat log.file | grep -i error less fileName // Search through a file. Move down the lines with the spacebar and up the lines with the b key. cp fileName // Create a duplicate file. newFile mv fileName // Rename the file. This does not preserve a duplicate file. fileRenamed mv fileName // Move the file into the named directory location. subDirectory/ mv -i fileName .. // Move the file up one directory level. rm fileName // Deletes a file. In Linux, there is no recycle bin – deleted files are immediately wiped away. vi fileName // Create or edit a file using the vi editor. This is a huge subject and so only an introduction is mentioned here. Most of what follows is done in Command Mode. (in vi) i // Enter Insert Mode in vi to begin typing. This allows plain text style writing, copying and pasting. (in vi) Esc // Escape key returns to Command Mode. (in vi) u // Undo the last command(s) or edit(s). Similar to Ctrl+Z in Windows. (in vi) w // Save the file. You must have write permissions. (in vi) w newFile // Save the file as a copy with a new name. (in vi) q // Quit out of the vi editor. wq will save and quit. (in vi) q! // Quit without saving. Install new software: sudo su - // Assume root privileges. yum install softwareName y EX: yum install facter Return system information with 'facter' and 'DMI Decode': facter facter | grep up // This returns the various uptime info. facter | egrep -i 'mem|har' // This returns memory and hardware info. dmidecode // returns a very long list of hardware information. dmidecode | less dmidecode | grep -ih -8 processor | less // returns eight lines following every successful location of the word 'processor'. dmidecode | egrep -ih -4 'vendor|product' Find processor information with 'cat': cat /proc/cpuinfo // Returns an entry for every processor. cat /proc/cpuinfo | egrep -i 'proc|model' // Reduces the list to only show the processor ID ("0", "1", etc.) and the vendor's model information. Check running processes with 'top': *There are many options that can be used with Top. You can either enter the option on the same command as calling top ("top -c") or toggle the options on and off while Top is running by typing the letter, as shown below. The later has many more options, which are called 'hotkeys'. top c // Option 'c' will show the command used to call the processes. A // Splits the display into consumption groups. f // Shows a menu of hotkey options. Check running processes with 'ps aux': ps aux EX: ps aux | grep -i pierce // Return all processes being run by 'pierce' or by 'Pierce'. EX: ps aux | grep -i pierce | grep -v grep // Same command but exclude the grep command itself from the return. EX: ps auxf | sort -nr -k 3 | head -20 // Return the top 20 CPU consumers. For much more on processes, see Processes Supplement - Stopping, Starting, Restarting, Tracing Check disk consumption: df -ha // Displays all the drives, and their size info. du -h driveName // Displays where consumption is occurring most. EX: du -h /home/jpierce/ // Displays storage consumption in my home directory. You can get the same result in this case with "du -h ~". EX: *du -h ** // This shows a huge list if you are at a top level, so it is best to use it in a regex expression, such as: EX: du -h * | less EX: du -h * | grep M | egrep 'log|out' | grep -v grep //Search for files (and folders) with the words 'log' or 'out' (as in output) that are at least a meg in size. EX: du -hs * | grep G | head -n 40 // This is my personal favorite command for drilling down to the source of a heavy directory or file. Start at the top of the suspected branch and use this to see where to go next. Go there and repeat as needed until you have drilled enough. find * -mmin -30 | grep log // Search for log related material that was updated within the last 30 minutes. Or "-mmin 30" finds them from exactly 30 minutes ago. And "-mtime -1" finds them from up to one day ago. EX: find * -mtime -7 | grep log | grep -i access // Find items from the last seven days. Detect and resolve file system in a read-only state: In the case of an unusually large event (like the domain's DNS system crashes) a Linux server's file system can become vulnerable to corruption. As a means of avoiding corruption, every file on the server becomes 'read only', meaning not even the operating system will be able to write to it or save things. NOC can quickly detect this problem and return the server from its 'safe mode' status using the following sequence of commands. 1. ssh root@serverName // SSH into the server as root. If you suspect that the server is in a read-only state and the SSH command freezes with no errors or successful connections, then the server is in worse shape than this instruction can help with --probably its in a 'kernel panic' state that requires Linux Engineering to resolve.
Recommended publications
  • Linux Hacking Case Studies Part 4: Sudo Horror Stories
    Linux Hacking Case Studies Part 4: Sudo Horror Stories written by Scott Sutherland | March 26, 2020 This blog will cover different ways to approach SSH password guessing and attacking sudo applications to gain a root shell on a Linux system. This case study commonly makes appearances in CTFs, but the general approach for attacking weak passwords and sudo applications can be applied to many real world environments. This should be a fun walk through for people new to penetration testing. This is the fourth of a five part blog series highlighting entry points and local privilege escalation paths commonly found on Linux systems during network penetration tests. Below are links to the first three blogs in the series: Linux Hacking Case Study Part 1: Rsync Linux Hacking Case Study Part 2: NFS Linux Hacking Case Study Part 3: phpMyAdmin Below is an overview of what will be covered in this blog: Finding SSH Servers Dictionary Attacks against SSH Servers Viewing Sudoers Execution Options Exploiting Sudo sh Exploiting Sudo VI Exploiting Sudo Python Exploiting Sudo Nmap Finding SSH Servers Before we can start password guessing or attacking sudo applications, we need to find some SSH servers to go after. Luckily Nmap and similar port scanning tools make that pretty easy because most vendors still run SSH on the default port of 22. Below is a sample Nmap command and screenshot to get you started. nmap -sS -sV -p22 192.168.1.0/24 -oA sshscan Once you’ve run the port scan you can quickly parse the results to make a file containing a list of SSH servers to target.
    [Show full text]
  • Getty Scholars' Workspace™ INSTALLATION INSTRUCTIONS
    Getty Scholars’ Workspace™ INSTALLATION INSTRUCTIONS This document outlines methods to run the application locally on your personal computer or to do a full installation on a web server. Test Drive with Docker Getty Scholars' Workspace is a multi-tenant web application, so it is intended to be run on a web server. However, if you'd like to run it on your personal computer just to give it a test drive, you can use Docker to create a virtual server environment and run the Workspace locally. Follow the steps below to give it a spin. Scroll further for real deployment instructions. 1. Install Docker on your machine. Follow instructions on the Docker website: https://www.docker.com/ 2. If you are using Docker Machine (Mac or Windows), be sure to start it by using the Docker Quickstart Terminal. Docker is configured to use the default machine with IP 192.168.99.100. 3. At the command line, pull the Getty Scholars' Workspace image. $ docker pull thegetty/scholarsworkspace 4. Run the container. $ docker run -d -p 8080:80 --name=wkspc thegetty/scholarsworkspace supervisord -n 5. Point your browser to `<ip address>:8080/GettyScholarsWorkspace`. Use the IP address noted in Step 2. 6. The Drupal administrator login is `scholar` and the password is `workspace`. Be sure to change these in the Drupal admin interface. 7. To shut it down, stop the container: $ docker stop wkspc Web Server Installation These installation instructions assume you are installing Getty Scholars' Workspace on a server (virtual or physical) with a clean new instance of Ubuntu 14.04 as the operating system.
    [Show full text]
  • Tao-Of-Tmux Documentation 发布 V1.0.2
    tao-of-tmux Documentation 发布 v1.0.2 Tony Narlock 2020 年 04 月 18 日 Contents 1 前言 3 1.1 关于本书 ............................................... 3 1.2 代码等风格说明 ........................................... 4 1.3 本书主要内容 ............................................. 4 1.4 打赏 .................................................. 5 1.5 书籍形式(Formats) ........................................ 5 1.6 勘误说明(Errata){#errata} ................................... 5 1.7 感谢 .................................................. 6 1.8 本书跟新和 tmux 的变动 ...................................... 6 2 tmux 初识 {#thinking-tmux} 7 2.1 terminal 的窗口管理器 ....................................... 8 2.2 多任务处理 .............................................. 9 2.3 在后台运行程序 ........................................... 10 2.4 Powerful combos ........................................... 11 2.5 小节 .................................................. 12 3 Terminal 基础知识(fundamentals){#terminal-fundamentals} 13 3.1 POSIX 标准 ............................................. 13 3.2 Terminal interface .......................................... 14 3.3 Terminal emulators ......................................... 15 3.4 Shell languages {#shell-languages} ................................ 15 3.5 Shell interpreters (Shells) {#shells} ................................ 15 3.6 小节 .................................................. 16 4 开始使用(Practical usage){#practical-usage} 17 4.1 前缀组合快捷键(prefix key ){#prefix-key} ........................... 17 4.2 Session persistence and the server model ............................. 19
    [Show full text]
  • BSD UNIX Toolbox 1000+ Commands for Freebsd, Openbsd
    76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iii BSD UNIX® TOOLBOX 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD®Power Users Christopher Negus François Caen 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page ii 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page i BSD UNIX® TOOLBOX 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page ii 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iii BSD UNIX® TOOLBOX 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD®Power Users Christopher Negus François Caen 76034ffirs.qxd:Toolbox 4/2/08 12:50 PM Page iv BSD UNIX® Toolbox: 1000+ Commands for FreeBSD®, OpenBSD, and NetBSD® Power Users Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2008 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-0-470-37603-4 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 Library of Congress Cataloging-in-Publication Data is available from the publisher. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permis- sion should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions.
    [Show full text]
  • Secure Automation: Achieving Least Privilege with SSH, Sudo and Setuid Robert A
    Secure Automation: Achieving Least Privilege with SSH, Sudo and Setuid Robert A. Napier – Cisco Systems ABSTRACT Automation tools commonly require some level of escalated privilege in order to perform their functions, often including escalated privileges on remote machines. To achieve this, developers may choose to provide their tools with wide-ranging privileges on many machines rather than providing just the privileges required. For example, tools may be made setuid root, granting them full root privileges for their entire run. Administrators may also be tempted to create unrestricted, null-password, root-access SSH keys for their tools, creating trust relationships that can be abused by attackers. Most of all, with the complexity of today’s environments, it becomes harder for administrators to understand the far-reaching security implications of the privileges they grant their tools. In this paper we will discuss the principle of least privilege and its importance to the overall security of an environment. We will cover simple attacks against SSH, sudo and setuid and how to reduce the need for root-setuid using other techniques such as non-root setuid, setgid scripts and directories, sudo and sticky bits. We will demonstrate how to properly limit sudo access both for administrators and tools. Finally we will introduce several SSH techniques to greatly limit the risk of abuse including non-root keys, command keys and other key restrictions. Introduction to files writable only by a particular group. For exam- ple, in FreeBSD programs that read system memory Since its introduction in 1995 by Tatu Ylonen, are setgid to a special kmem group.
    [Show full text]
  • Page 1 of 3 Sudo (Super User Do) Is a Very Useful
    Sudo Sudo (Super User Do) is a very useful program that allows a system administrator to give certain users the ability to run some (or all) commands as root 1. Download the source code: The source of sudo is available from http://www.courtesan.com/sudo/. At the time of writing, the latest version is V1.6.3 and the source code is provided as a compressed tar archive in the file sudo- 1.6.3.tar.gz . Download this file to a temporary directory, such as /tmp. 2. Prepare the source code for compilation: Log in as root, make a directory at a convenient point in the file system to hold the source code and copy the source into this directory. For example: # mkdir -p /opt/source/sudo # cd /opt/source/sudo # cp /tmp/sudo-1.6.3.tar.gz . Unzip and untar the source and then change to the directory created by tar: # gunzip sudo # tar xvf sudo # cd sudo-1.6.3 At this point, you may like to have a look at the README, INSTALL and FAQ files. 3. Compile the source code and install sudo: Configure the compilation process for your system: # ./configure Compile the source code: # make And install the compiled code: # make install This install the sudo program into /usr/local/bin, the visudo script (see later) into /usr/local/sbin and the manual page into subdirectories of /usr/local/man. 4. Modify the search path: If you haven't already done so for other software, you now need to modify the search paths so that the system can find the sudo program and its manual pages.
    [Show full text]
  • System Analysis and Tuning Guide System Analysis and Tuning Guide SUSE Linux Enterprise Server 15 SP1
    SUSE Linux Enterprise Server 15 SP1 System Analysis and Tuning Guide System Analysis and Tuning Guide SUSE Linux Enterprise Server 15 SP1 An administrator's guide for problem detection, resolution and optimization. Find how to inspect and optimize your system by means of monitoring tools and how to eciently manage resources. Also contains an overview of common problems and solutions and of additional help and documentation resources. Publication Date: September 24, 2021 SUSE LLC 1800 South Novell Place Provo, UT 84606 USA https://documentation.suse.com Copyright © 2006– 2021 SUSE LLC and contributors. All rights reserved. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled “GNU Free Documentation License”. For SUSE trademarks, see https://www.suse.com/company/legal/ . All other third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its aliates. Asterisks (*) denote third-party trademarks. All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its aliates, the authors nor the translators shall be held liable for possible errors or the consequences thereof. Contents About This Guide xii 1 Available Documentation xiii
    [Show full text]
  • Lab :: Snort (Ids)
    LAB :: SNORT (IDS) # super user command. $ normal user command. Username apnic and password training . VM Details [group01.apnictraining.net] [192.168.30.1] [group02.apnictraining.net] [192.168.30.2] ...... [group10.apnictraining.net] [192.168.30.10] [group11.apnictraining.net] [192.168.30.11] ...... [group20.apnictraining.net] [192.168.30.20] [group21.apnictraining.net] [192.168.30.21] ...... [group30.apnictraining.net] [192.168.30.30] Install SNORT 1. Install SNORT: sudo apt update sudo apt install snort 2. It will ask for your HOME_NET address. For this lab define it as your host IP. Example, for group 11 it will 192.168.30.11/32 . If required we can change it later from snort.debian.conf file also. 3. Check the installation location of SNORT whereis snort Few important location SNORT configuration : /etc/snort/snort.conf SNORT debian configuration : /etc/snort/snort.debian.conf SNORT rules : /etc/snort/rules SNORT exuecuble : /usr/sbin/snort Configure SNORT 1. Check HOME_NET and Interface related configuration on /etc/snort/snort.debian.conf . During installation process if you had defined your HOME_NET properly; no need to edit it. Else, you can edit this file. 2. The main configuration file for SNORT is /etc/snort/snort.conf file. sudo vi /etc/snort/snort.conf This is a big configuration file; for the purpose of this lab we will disable all predefined rules (ruleset). Disable (comment out # ) all the line having include $RULE_PATH (in Step 7 of configuration file) except include $RULE_PATH/local.rules . We will put all our local rules in include $RULE_PATH/local.rules To enable alert log; comment out (adding # before the line) the following line (Step 6 in the configuration file): output unified2: filename snort.log, limit 128, nostamp, mpls_event_types, vlan_event_types Save and quit from snort.conf file :wq Start SNORT: sudo systemctl start snort or sudo /etc/init.d/snort start Check whether SNORT is running: sudo systemctl status snort or ps -ef|grep snort SNORT Rules Snort rules are divided into two logical sections: 1.
    [Show full text]
  • A Quick and Easy Guide to Tmux
    7/24/2018 A Quick and Easy Guide to tmux Ham Vocke writing stu about software (/) Home (/) Blog (/blog) About Me (/about) Talks (/talks) (https://github.com/hamvocke) (https://twitter.com/hamvocke) (http://www.hamvocke.com/feed.xml) A Quick and Easy Guide to tmux 16 Aug 2015 terminal 13 minutes read I love working with the command line. Seriously, I think there’s hardly any more productive and more versatile tool for a software developer than the terminal. Maybe it’s the hacker/wizard/neckbeard kind of feeling I get when using a terminal, I don’t know. At work we do lots of pair programming. Everyone’s got their own laptop and can set it up the way they like. And since I love working with the command line I’ve spent quite some time doing (only sane! I swear!) modications to my terminal environment that make working with the command line more pleasant and streamlined. This is why my pair usually will be greeted by something like this: https://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/ 1/21 7/24/2018 A Quick and Easy Guide to tmux If they’ve worked with me before they know what they are up to. But every once in a while there will be a new team member who doesn’t know my environment. Usually this is the point where they will ask something like “WTF am I looking at?” and it’s my time to shine! Because what they’re looking at is nothing less than the best thing since sliced bread.
    [Show full text]
  • NVIDIA CUDA Installation Guide for Linux
    NVIDIA CUDA Installation Guide for Linux Installation and Verification on Linux Systems DU-05347-001_v11.4 | September 2021 Table of Contents Chapter 1. Introduction........................................................................................................ 1 1.1. System Requirements...............................................................................................................1 1.2. About This Document............................................................................................................... 3 Chapter 2. Pre-installation Actions..................................................................................... 4 2.1. Verify You Have a CUDA-Capable GPU....................................................................................4 2.2. Verify You Have a Supported Version of Linux........................................................................ 5 2.3. Verify the System Has gcc Installed........................................................................................5 2.4. Verify the System has the Correct Kernel Headers and Development Packages Installed........................................................................................................................................5 2.5. Install MLNX_OFED.................................................................................................................. 7 2.6. Choose an Installation Method................................................................................................ 7 2.7. Download
    [Show full text]
  • Geek Guide > Beyond Sudo: How to Know You Have Outgrown It
    GEEK GUIDE Beyond Sudo: How to Know You Have Outgrown It (and What to Do) Table of Contents About the Sponsor ..................................................................4 Introduction ..............................................................................5 A Bit of Sudo History ...............................................................7 Sudo Usage ..............................................................................8 Sudo Defaults ........................................................................12 Aliases ....................................................................................16 A More Complex Example ....................................................16 Other Security Tools ..............................................................19 Sudo Shortcomings ...............................................................21 Next-Generation Tools ..........................................................22 Key Capabilities in Achieving Advanced Security and Compliance Use Cases on UNIX and Linux Platforms ......24 GREG BLEDSOE is a Managing Consultant with Accenture in the DevOps Architecture Practice. He has more than 20 years of hard-fought experience in security and operations, having been a developer, network engineer, sysadmin, techops manager, Vice President of Operations and CISO. You can reach him at [email protected] or via Twitter: @geek_king. 2 GEEK GUIDE Beyond Sudo: How to Know You Have Outgrown It (and What to Do) GEEK GUIDES: Mission-critical information for the most technical
    [Show full text]
  • Installation and Configuration of Ocaml for Windows 10
    Installation and Configuration of OCaml for Windows 10 By: Brandon Kim, Jonathan Morley, Francis Oyebanjo, and BT Rappaport Table of Contents Introduction 2 Installing OPAM and OCaml 3 Checkpoint 7 Installing Extra Packages (OCamlfind, OUnit, rlwrap) 8 Ensuring Correct Installation and Configuration 11 Troubleshooting Errors 12 Glossary 16 1 Introduction This manual is for OCaml beginners who would like to use OCaml on a Windows 10 computer. OCaml is not very compatible for installation on a Windows computer but is made simple with Bash on Ubuntu on Windows, a brand new Windows 10 feature that enables direct use of Linux command-line tools. However, the directions available are usually not Windows 10 specific and assume the audience is already well versed in Linux tools. This manual provides beginners to OCaml and Linux with a clear and orderly set of instructions for installing and configuring OCaml on Windows 10. OCaml is a heavy-duty programming language that supports functional, imperative and object- oriented styles. OCaml’s safety, advanced type system, and automatic memory management are a few features that make it a highly effective programming tool. Even though OCaml is a powerful language, it is also simple and easy to use, making it an ideal language to expose to students in undergraduate computer science courses. In this manual we will install OCaml via OPAM, a package manager (collection of tools that automates the process of installing, upgrading, configuring, and removing programs from a computer) for OCaml. Requirements/ Materials ● Computer running Windows 10 (64-bit) with build 14393 or later ● Administrative access of the computer ● Bash on Ubuntu on Windows installed and setup ○ https://msdn.microsoft.com/en-us/commandline/wsl/install_guide ● Internet access with decent download speed Important Notes ● Copy and paste (to paste simply right click in bash where you want to paste) the commands from the manual into Bash, especially if they are long.
    [Show full text]