本サイトでは、プログラミング言語やコマンドを見栄え良くするために highlight.js を使ってます。
今回は、人気プログラミング言語とは逆に、インフラ系エンジニア(インフラエンジニア、ネットワークエンジニア、サーバーエンジニア、クラウドエンジニアなど)で利用シーンが多いと思われるコマンド系を中心にhighlight.jsの表示を確認します。
目次
Windows
Windows系の言語では、コマンドプロンプト、PowerShell、VBScriptがありました。
VBScriptはExcel VBAでも使えますね。
Batch file (DOS、バッチファイル、コマンドプロンプト)
cd \
copy a b
ping 192.168.0.1
@rem ping 192.168.0.1
net stop sharedaccess
del %tmp% /f /s /q
del %temp% /f /s /q
ipconfig /flushdns
taskkill /F /IM JAVA.EXE /T
cd Photoshop/Adobe Photoshop CS3/AMT/
if exist application.sif (
ren application.sif _application.sif
) else (
ren _application.sif application.sif
)
taskkill /F /IM proquota.exe /T
sfc /SCANNOW
set path = test
xcopy %1\*.* %2
PowerShell
$initialDate = [datetime]'2013/1/8'
$rollingDate = $initialDate
do {
$client = New-Object System.Net.WebClient
$results = $client.DownloadString("http://not.a.real.url")
Write-Host "$rollingDate.ToShortDateString() - $results"
$rollingDate = $rollingDate.AddDays(21)
$username = [System.Environment]::UserName
} until ($rollingDate -ge [datetime]'2013/12/31')
VBScript
' creating configuration storage and initializing with default values
Set cfg = CreateObject("Scripting.Dictionary")
' reading ini file
for i = 0 to ubound(ini_strings)
s = trim(ini_strings(i))
' skipping empty strings and comments
if mid(s, 1, 1) <> "#" and len(s) > 0 then
' obtaining key and value
parts = split(s, "=", -1, 1)
if ubound(parts)+1 = 2 then
parts(0) = trim(parts(0))
parts(1) = trim(parts(1))
' reading configuration and filenames
select case lcase(parts(0))
case "uncompressed""_postfix" cfg.item("uncompressed""_postfix") = parts(1)
case "f"
options = split(parts(1), "|", -1, 1)
if ubound(options)+1 = 2 then
' 0: filename, 1: options
ff.add trim(options(0)), trim(options(1))
end if
end select
end if
end if
next
Mac・Linux
BashはMacのターミナル、Shell SessionはLinuxのコマンドで使えそうです。
Bash
#!/bin/bash
###### CONFIG
ACCEPTED_HOSTS="/root/.hag_accepted.conf"
BE_VERBOSE=false
if [ "$UID" -ne 0 ]
then
echo "Superuser rights required"
exit 2
fi
genApacheConf(){
echo -e "# Host ${HOME_DIR}$1/$2 :"
}
echo '"quoted"' | tr -d \" > text.txt
Shell Session(Linuxコマンドライン)
$ echo $EDITOR
vim
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
$ git push
Everything up-to-date
$ echo 'All
> done!'
All
done!
Dockerfile
# Example instructions from https://docs.docker.com/reference/builder/
FROM ubuntu:14.04
MAINTAINER example@example.com
ENV foo /bar
WORKDIR ${foo} # WORKDIR /bar
ADD . $foo # ADD . /bar
COPY \$foo /quux # COPY $foo /quux
ARG VAR=FOO
RUN apt-get update && apt-get install -y software-properties-common\
zsh curl wget git htop\
unzip vim telnet
RUN ["/bin/bash", "-c", "echo hello ${USER}"]
CMD ["executable","param1","param2"]
CMD command param1 param2
EXPOSE 1337
ENV myName="John Doe" myDog=Rex\ The\ Dog \
myCat=fluffy
ENV myName John Doe
ENV myDog Rex The Dog
ENV myCat fluffy
ADD hom* /mydir/ # adds all files starting with "hom"
ADD hom?.txt /mydir/ # ? is replaced with any single character
COPY hom* /mydir/ # adds all files starting with "hom"
COPY hom?.txt /mydir/ # ? is replaced with any single character
COPY --from=foo / .
ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2
VOLUME ["/data"]
USER daemon
LABEL com.example.label-with-value="foo"
LABEL version="1.0"
LABEL description="This text illustrates \
that label-values can span multiple lines."
WORKDIR /path/to/workdir
ONBUILD ADD . /app/src
STOPSIGNAL SIGKILL
HEALTHCHECK --retries=3 cat /health
SHELL ["/bin/bash", "-c"]
その他
そのほかには、意外と使い道が多そうなプレーンテキストがあります。
Excelもちゃんとありました。
ファイル系として、JSONやYAMLも挙げてみました。
Plain text プレーンテキスト
プレーンテキストを使う場合は、以下のように class に plaintext を指定します。
<pre><code class="plaintext">
コード
</code></pre>
id | description
----+-------------
1 | one
2 | two
3 | three
(3 rows)
Excel
=IF(C10 <= 275.5, "Unprofitable", "Profitable")
JSON
[
{
"title": "apples",
"count": [12000, 20000],
"description": {"text": "...", "sensitive": false}
},
{
"title": "oranges",
"count": [17500, null],
"description": {"text": "...", "sensitive": false}
}
]
YAML
---
# comment
string_1: "Bar"
string_2: 'bar'
string_3: bar
inline_keys_ignored: sompath/name/file.jpg
keywords_in_yaml:
- true
- false
- TRUE
- FALSE
- 21
- 21.0
- !!str 123
"quoted_key": &foobar
bar: foo
foo:
"foo": bar
reference: *foobar
multiline_1: |
Multiline
String
multiline_2: >
Multiline
String
multiline_3: "
Multiline string
"
ansible_variables: "foo {{variable}}"
array_nested:
- a
- b: 1
c: 2
- b
- comment
まとめ
- highlight.js でニッチな言語やコマンドをまとめてみました。
- インフラエンジニアの方々で利用できそうな以下の言語を挙げてみました。
– Windows:コマンドプロンプト、PowerShell、VBScript
– Mac・Linux:bash、コマンドライン、Dockerfile
– その他:プレーンテキスト、Excel、JSON、YAML