黒い画面を触ってみる[Terminal]
こちらの記事を参考にTerminal(黒い画面)を触った感想や学びを書いていこうと思います。
Part1
ここで得た気づきはコマンドの略語には必ず意味があることです。例えば、カレントディレクトリにいるファイルやディレクトリを確認するのに使うコマンドlsはLiStの略であったり、現在いるディレクトリのパスを示してくれるコマンドpwdはPrint Working Directoryなど意味に則ってコマンド名がつけられています。略語を丸暗記せず、何の略なのかを意識するかで暗記量も減りより定着しやすくなると感じました。
Part2
echoコマンドに関しての説明でブログ本文中に以下の記述に思わず吹いてしまいました。
渡した文字を表示するだけのこんなプログラム何の役に立つんでしょう?
しかし、echoコマンドには設定された変数の値を確認できるメリットが!($マークを確認したい変数の前に着けて)
結局の所、黒い画面に打ち込んでいるのはプログラムである事は新たな発見でした。何の考えもなしにlsを打てばディレクトリ・ファイルの中身を確認できる便利機能程度と思っていましたが、実はプログラムを実行していたという意識は無かったですorz。そして、そのプログラムをTerminalで実行するにはプログラムが置かれているファイルのフルパスを記述というのも納得できました。「フルパスの入力が面倒、頻繁に使う、どこからでも使えるよう」にとプログラムの置かれているディレクトリまでのパスを環境変数PATHに記述することで、プログラム名のみ入力すれば実行できるようになるのも納得です。今後、自分で作ったプログラムを同じようにPATHに登録すればいつでも実行できるオレオレコマンドが出来そうです。
Part3
・ディレクトリの移動にcd(change directory)
・lsに引数-aを渡すと隠しファイル(.付き)が現れる。
・迷った時は、pwdで現在地確認(/etc/hoge/hoge.conf...)
Part4
コマンドのオプションにはショートネームオプションとロングネームオプションがあり、前者は-(ハイフン)1つで、後者は--(ハイフン)2つで指定できる。コマンドの説明には--help(-h)で簡易なモノが、man commandと打つとより詳細な説明が出る。
(RTFM、ggrks、keep calm and ask google)←自力で解決しようとする姿勢が大事ですね。
Part5
カー●おじさんみたいなコマンドcurl(シーユーアールエル)
略語は(Client for URLs)で、実行すると、おじさんのAAは出力され
ず、ネットから指定したファイルをダウンロードできます。引数にURLを渡して実行します。(-oオプションの後に指定するファイル名で保存可能)
curl https://www.meiji.co.jp/sweets/snack/karl/
<!DOCTYPE html>
<html>
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
<meta charset="UTF-8">
<title>カールおらが村|株式会社 明治</title>
<meta name="Author" content="Meiji Co., Ltd.">
<meta name="description" content="カールおじさんと仲間たちが暮らす「カールおらが村」にようこそ!商品情報やCM情報、みんなのお話やゲームもあるよ!">
<!-- OGP -->
<meta property="og:title" content="カールおらが村|株式会社 明治">
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.meiji.co.jp/sweets/snack/karl/">
<meta property="og:image" content="https://www.meiji.co.jp/sweets/snack/karl/snsimages/top.jpg">
<meta property="og:site_name" content="カールおらが村|株式会社 明治">
<meta property="fb:app_id" content="159500414123842">
<meta property="og:description" content="カールおじさんと仲間たちが暮らす「カールおらが村」にようこそ!商品情報やCM情報、みんなのお話やゲームもあるよ!">
<meta name="viewport" content="width=320">
<!-- 明治共通 -->
<link rel="stylesheet" href="/common/css/import.css" type="text/css">
<link rel="alternate stylesheet" href="/common/css/large.css" type="text/css" title="fontlarge">
<link rel="alternate stylesheet" href="/common/css/small.css" type="text/css" title="fontsmall">
<script src="/common/js/rollover.js" type="text/javascript"></script>
<script src="/common/js/change.js" type="text/javascript"></script>
<!-- カール共通 -->
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<script src="/sweets/snack/karl/common/js/ie8.js"></script>
.
.
.
<一部省略>
色々開けるコマンドopen
ファイル名を指定して開く
open hoge.txt
URLを指定して既定のブラウザで開く
open https://yahoo.co.jp
パスを指定してFinderで表示
#今いるディレクトリをFinderで表示
open .
#/binディレクトリをFinderで表示
open /bin
saykanaでニコニコでお馴染みの音声が流せるのは面白い。(-hオプションは日本語だったので、あまりググることなく遊べそうです。)
Part6
パッケージマネージジャーhomebrewの導入についてです。
/usr/local以下のファイルの所有者を変更する際に様々なコマンドが組み合わせれていました。その際に以下のブログ本文が金言だと思った為、引用。
“黒い画面”は単機能のコマンドを組み合わせて複雑な動作をするという意味がおわかりいただけたでしょうか。
単純なコマンドの組み合わせで複雑なことを行う。_φ( ̄ー ̄ )メモ
brew search ソフト名 ・・・該当ソフトを検索
brew install ソフト名 ・・・該当ソフトをインストール
brew uninstall ソフト名 ・・・該当ソフトをアンインストール
Part7
ファイルの基本操作について
mkdir -p hoge/fuga/fjord # 深い階層のディレクトリを作成
touch hoge/fsuga/fjord/foo # ファイルを作成
cp hoge/fuga/fjord/foo hoge/fuga/hooo # hoge/fuga/fjordにあるfooを hoge/fuga/以下にhoooとしてコピー
cp -r hoge/ nuga # hogeディレクトリをnugaディレクトリにコピー
mv nuga hoge/ # nugaディレクトリをhogeディレクトリ以下に移動
rm hoge/fuga/hooo # hoooファイルを削除
rm -r hoge/nuga/ # nugaディレクトリを削除
[sudo rm -rf / # 絶対に実行してはいけない]
cat hoge/fuga/fjord/foo # fooファイル中身を表示(何も記述してないので表示さない)
Part7でインストールしたtreeコマンドで構造を見てみる。
Part8
コマンドの自動化について
普段よく見るサイトを自動で立ち上げるスクリプトの作成をしてみました(open_browserと命名)
#!/bin/sh
open https://twitter.com/i/moments
open https://yuchrszk.blogspot.com/
open https://yahoo.co.jp
chmod u+x open_browser # ユーザー実行権限を付与
export PATH=$PATH:~/bin # PATHの設定
open_browser # 実行!
Part9
黒い画面は主にTerminalとShellの二つで成り立っている。shellはコンピュータとの仲介役を担い、Terminalは入力と結果表示を担っている。
この記事が気に入ったらサポートをしてみませんか?