Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Path: blob/master/src/packages/next/pages/features/terminal.tsx
Views: 687
/*1* This file is part of CoCalc: Copyright © 2022 Sagemath, Inc.2* License: MS-RSL – see LICENSE.md for details3*/45import { Layout } from "antd";67import { Icon } from "@cocalc/frontend/components/icon";8import Code from "components/landing/code";9import Comparison from "components/landing/compare";10import Content from "components/landing/content";11import Footer from "components/landing/footer";12import Head from "components/landing/head";13import Header from "components/landing/header";14import Info from "components/landing/info";15import SignIn from "components/landing/sign-in";16import Snapshots from "components/landing/snapshots";17import { Paragraph, Title } from "components/misc";18import A from "components/misc/A";19import { Customize } from "lib/customize";20import withCustomize from "lib/with-customize";21import { FullLinuxTerminal } from "./linux";22import shellScript from "/public/features/cocalc-shell-script-run.png";23import collabDemo from "/public/features/cocalc-terminal-collab.gif";24import logo from "/public/features/linux-logo.svg";25import stack from "/public/features/terminal-software.png";26import terminal from "/public/features/terminal.png";2728const component = "a Linux Terminal";29const title = `Online Linux Terminal`;3031export default function Terminal({ customize }) {32return (33<Customize value={customize}>34<Head title={title} />35<Layout>36<Header page="features" subPage="terminal" runnableTag="term" />37<Layout.Content>38<Content39landing40startup={component}41body={logo}42title={title}43subtitle={"A Linux Terminal that can't mess up your own computer."}44subtitleBelow={true}45image={terminal}46alt={"Running Sage in a Terminal"}47/>4849<FullLinuxTerminal />5051<SignIn startup={component} />5253<Info.Heading54description={55<>There are many ways to use {component} online via CoCalc.</>56}57>58Feature Overview59</Info.Heading>6061<Info62title="Realtime collaboration"63icon="users"64image={collabDemo}65anchor="a-realtimecollab"66alt={"Video showing synchronized terminals"}67wide68>69<Paragraph>70The same terminal can be opened by two or more users. Both see the71same view, which adaptively resizes to a common size.72</Paragraph>73<Paragraph>74Additionally, open a{" "}75<A href="https://doc.cocalc.com/chat.html">side chat</A> panel to76exchange thoughts and ideas.77</Paragraph>78<Paragraph>79This is ideal for getting advice by a colleague or{" "}80<A href="https://doc.cocalc.com/teaching-interactions.html">81helping a student of yours82</A>83.84</Paragraph>85</Info>8687<Info88title="Run Bash, Python, R, etc."89icon="r"90image={shellScript}91anchor="a-shell-script"92alt={"Screenshot of editing and running a shell script"}93caption={94<>95Bash <Code>script.sh</Code> file (left),{" "}96<Code>bash -f script.sh</Code> to run (right)97</>98}99>100<Paragraph>101CoCalc's{" "}102<A href="https://doc.cocalc.com/frame-editor.html">103frame editor104</A>{" "}105supports <strong>editing script files</strong> side-by-side with a{" "}106<strong>107<A href="https://doc.cocalc.com/terminal.html">terminal</A>108</strong>109.110</Paragraph>111<Paragraph>112To get started, create a file with a suitable ending, e.g.{" "}113<Code>.py</Code>, <Code>.sh</Code>, <Code>.r</Code>, ... Then open114that file (via <Code>open filename.ext</Code>) and you can edit it115with <strong>syntax highlighting</strong>. Finally, split the116frame and select the Terminal, like you can see it in the117screenshot. Execute <Code>python3 script.py</Code>,{" "}118<Code>bash -f script.sh</Code>, ... to run it.{" "}119</Paragraph>120</Info>121122<Info123title="Comprehensive software stack"124icon="server"125image={stack}126anchor="a-stack"127alt={"Terminals software"}128caption={129"Linux Terminals using vim, emacs, clang, mysql, cpp, maxim and zsh!"130}131wide132>133<Paragraph>134Many <strong>popular applications</strong> are included in CoCalc:{" "}135<A href="https://git-scm.com/">Git</A> to interact with{" "}136<A href="https://www.github.com">GitHub</A>,{" "}137<A href="https://www.vim.org/">VIM</A>,{" "}138<A href="https://www.gnu.org/software/emacs/">Emacs</A>, various139programming shells like <A href="https://ipython.org/">IPython</A>140, <A href="https://www.r-project.org/">R</A>,{" "}141<A href="https://www.gnu.org/software/octave/index">Octave</A> and{" "}142<A href="https://www.sagemath.org/">SageMath</A>.143</Paragraph>144<Paragraph>145There is also support for many programming languages and146compilers. <A href="/features/python">Python</A>, JAVA, C/C++ via{" "}147<A href="https://gcc.gnu.org/">GCC</A> and{" "}148<A href="https://clang.llvm.org/">Clang</A>,{" "}149<A href="https://ziglang.org/">Zig</A>,{" "}150<A href="https://en.wikipedia.org/wiki/Ada_(programming_language)">151Ada152</A>153,{" "}154<A href="https://en.wikipedia.org/wiki/Haskell_(programming_language)">155Haskell156</A>157, <A href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</A>,{" "}158<A href="https://www.rust-lang.org/">Rust</A> and many more.159</Paragraph>160<Paragraph>161Look at our{" "}162<strong>163<A href="/software/executables">list of executables</A>164</strong>{" "}165to check what is available!{" "}166</Paragraph>167</Info>168169<Snapshots />170171<Comparison172name="terminal"173disclaimer174title={175<Title level={2} style={{ textAlign: "center" }}>176<Icon name="bolt" /> Terminals in CoCalc versus the competition177</Title>178}179/>180181<SignIn startup={component} />182</Layout.Content>183<Footer />184</Layout>185</Customize>186);187}188189export async function getServerSideProps(context) {190return await withCustomize({ context });191}192193194