manの登録の仕方
英語が苦手な人にmanページの日本語表示の仕方教えてあげたいなと思い(はい。私も苦手です。)
manページの日本語化をした。
この方のapt-get
コマンド通りに実行すれば大丈夫
sudo apt-get manpages-ja-dev manpages-ja
これで
/usr/share/man/ja/man1/
の中にgz
が追加されるのではないでしょうか
ですが、愚かな私は
manpages-ja
はインストールしたもののmanpages-ja-dev
はインストールしませんでした。
そこでたちはだかった壁
man ssh
SSH(1) BSD General Commands Manual SSH(1) NAME ssh — OpenSSH SSH client (remote login program) SYNOPSIS ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command] DESCRIPTION ssh (SSH client) is a program for logging into a remote machine and for executing commands on a remote machine. It is intended to provide secure encrypted communications between two untrusted hosts over an insecure network. X11 connections, arbitrary TCP ports and UNIX-domain sockets can also be forwarded over the secure channel. ---------------------------------- 以下略 --------------------------------------------------------
つら、sshは英語かよ。
sshの日本語manページなんて探せば見つかるっしょ!
ありました。
正確にはopensshのmanページですね
ってことはmanコマンド
でsshも日本語化できるってことですね!
manのsshを日本語化する手順
まず上記opensshのmanが乗ってあるサイトからtar.gzをダウンロードします。
そしてtarで展開してそれをmanの1
セクションに移動させます
mkdir openssh-man cd openssh-man curl -o openssh.man.tar.gz https://euske.github.io/openssh-jman/openssh-jman-730p1.tar.gz tar zxvf openssh.man.tar.gz sudo cp *.1 /usr/share/man/ja/man1/
みてみましょう
man ssh
名前 ssh — OpenSSH SSH クライアント (リモート ログイン プログラム) 書式 ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bindするアドレス] [-c 暗号方式] [-D [bindするアドレス:]ポート] [-E ロ グファイル] [-e エスケープ文字] [-F 設定ファイル] [-I pkcs11] [-i identityファイル] [-J [ユーザ@]ホスト[:ポート]] [-L アドレス] [-l ログイン名] [-m MAC指定] [-O 制御コマンド] [-o オプション] [-p ポート] [-Q 問い合わせオプション] [-R アドレス] [-S 制御用パス名] [-W ホスト:ポート] [-w ローカルtun[:リモートtun]] [ユーザ@]ホスト名 [コマンド] 説明 ssh (SSH クライアント) はリモートマシンにログインしたり、 リモートマシン上でコマンドを実行するためのプログ ラムです。 これは安全でないネットワーク上にある 2 つの信頼されていないホスト間で、 暗号化された安全な通信を 提供します。X11 接続や 任意の TCP ポートおよび UNIX-ドメイン ソケットなども安全な通信路を通して転送できま す。 ssh は指定された ホスト名 に接続し、 (オプションが指定された場合はその ユーザ で) ログインします。 ユーザは リモートマシンに対して、 本人であることを証明する必要があります。 これにはいくつの方法のうち、ひとつを使い ます (下記参照) : コマンド が指定された場合、リモートホスト上では ログインシェルのかわりにそのコマンドが実行されます。 ---------------------------------- 以下略 --------------------------------------------------------
$LANGに日本語設定してないひとはしましょう。
locale -a | grep JP ja_JP.utf8
でもしあるなら
LANG=`locale -a | grep JP`
これで私の環境はすぐに英語と日本語すぐに変わります。
CLIからgoogleの検索をしたい
こんにちは!
最近ようやく、この言葉がわかるようになりました。
「GUIしかないとやる気が出ない」
初めて聞いたのが3年前ぐらいで、「こいつ何言ってんだ?GUIの方がわかりやすいだろ」って思っていました。
でも今ならどこがわかりにくいとか具体的なことまで言えませんがその気持ちが分かる気がします。
CLIに慣れてきて一歩「できる奴ら」に近づいた気になっています。
本題
CLIで色々していて、わざわざgoogle chrome開くの面倒だなってときが来ました。
そこで僕は「CLIでブラウジングできるようなもの作ったらOKじゃね?」って考えました。
探したらありました。悔しいですね。普通に有名そうなやつですね
lynx
というものがあるんですね
Ubuntuなら
sudo apt-get install lynx
でインストールできます。
簡単な説明をすると、
lynx <URL>
で特定のwebページをCUIで表示することができます。普通にブラウジングしている感じです。
結局すること検索するぐらいだしgoogleにアクセスするようにすれば良いや~
に知らぬまになっていました。
ってことでCLIブラウザを1から作るほどの技術力はないので、lynxを使ってgoogle検索できるようにしました。
超簡単です。シェルスクリプトを作っただけです。
for x in "$@" do query=$query$x+ done lynx https://google.co.jp/search?q=$query
それがこちら
URLに直接検索する文字列を与えれることができれば検索は容易だなって思っていたらやっぱりできました
引数が $query
に代入されそれをURLにつなげて検索するというとても単純なものです。
これをgoogle
として保存します。実行権限も与えます
そして/usr/bin/
の配下に保存すると
google as rookie
等でCLIから検索できるようになりました。GIFのキャプチャを乗せたいが方法がわからないのでまたこんど乗せます
pythonのパッケージをcurlするためのURL知りたいだけなのにchromeをわざわざ開かないといけなかったのが いまではchromeを開かずにURLを知れるようになりました。
反省点を踏まえて(Mo-ikutsuneruto Calender)
どうもこんにちは!
僕は12月1日からソロアドベントカレンダーと題して、毎日ブログを更新しようとしていました。
ですが、実際は11日目にしてブログの更新は止まりました。
改めて考えてみたのですが、そもそも25個もネタがありません。
25日連続でブログを書くなんてとてもしんどいです。
ってことで、開き直りと反省をバネに
もういくつ寝るとカレンダーを開始します。
Mo-ikutstuneruto calender(和製)
もういくつ寝ると、お正月〜
12月31日まで毎日ブログを更新して1月1日は9時にうるう秒を眺めて2度寝でも決め込みたいものです。
さっそく今日の記事後ほど投稿しよう!!
反省点を踏まえた結果(非技術)
こんにちは
Mo-ikutsuneruto Calender 1日目の記事です。
すら書くことのできないクズ野郎ということが判明しました
見てる人は少ないだろうが、それでも謝罪します。
すいませんでした。
書かなかったことにびびって自分のブログのURLにすらアクセスできませんでした。
これからは開き直って、ちょうど良い頻度でブログを更新します。
manのセクションとmanファイル(11日坊主)
- この記事はsolo_advent_calender 2016年12月11日のものです。
こんにちは ショート advent calender11日目です。
manで気になったことがあったので調べた結果です。
普段コマンドのことで分からなかったことがあったらman
使ったら良いっていう認識でサーバー触ってます。
ではそのmanのファイルはどこにいるのでしょう
どうやら$MANPATH
にmanファイルが置かれているディレクトリがありそう。
echo $MANPATH
謎の空白が帰ってきた。これはちょっとわからない。 一度置いといて
manの設定は/etc/man.config
書いてあります。
そこに
MANPATH /usr/share/man
という記述が!とりあえず移動
cd /usrshare/man
このディレクトリの中にen
やko
やja
がありました。
私の環境では日本語でmanが表示されているので
cd ja ls man1 man2 man3 man4 man5 man6 man7 man8 man9
さらにディレクトリが9個もある。。。
どれをみれば設定ファイルがあるんだ?何の数字?
結論からいうとこの数字はセクションの数字です。
セクションとは、ドキュメントの内容の分類だそうです。
セクションの数字の対応表
Linuxコマンド集 - 【 man 】 オンライン・マニュアルを参照する:ITpro
このページで記されてますので参考にします。
そしてmanコマンドで
コマンドのセクションは何番と何番があるのかというのは
man -f <コマンド>
で確認することができます。たとえば
$ man -f passwd passwd (1) - update user's authentication tokens passwd (5) - password file
というふうに表示されます。
そして
$ cd man5 $ ls | grep passwd passwd.5.gz
やはりmanの5番目のディレクトリにpasswd関係のファイルがありました。
ですが、gzip形式で圧縮されているようです。
これを展開して中身を見たい気持ちはありますが、今日はここまで。
PS. manの6番目のセクションはゲーム
らしいのですが、man6
に格納されている.gzファイル名でmanを実行するとゲームの説明がみれることに気づきました。
ここも深くみていきたいものです。
Linuxのバッククォート(10日坊主)
- この記事はsolo_advent_calender 2016年12月10日のものです。
こんにちは ショート advent calender10日目です。
本来は土曜日にあげるはずだったやつです。
これの続きで、 シングルクォート、ダブルクォートときたらバッククォートですよね
コマンドをバッククォート``
で囲むとコマンドの実行結果が展開される。コマンドの標準出力を変数に代入したりできます
$ today=`date` $ echo date #バッククォートで囲まないとただの文字列だと認識する date $ echo $today 2016年 12月 10日 土曜日 23:42:15 JST $ hoge=neko $ echo '$hoge' is "$hoge" $hoge is neko $ pure=`echo '$hoge' is "$hoge"` # 変数pureに` $hoge is neko` を代入 $ $pure -bash: $hoge: コマンドが見つかりません #$pureには`$hoge is neko` が入っているので$hogeがコマンドとして入力される $ echo $pure hoge is neko
$ $pure
の部分で$hogeコマンドを実行しようとして、失敗しているが、
$ $hoge
を実行すると
-bash: neko: コマンドが見つかりません
となります。普通に$hogeを呼び出すと変数hogeに入っているnekoが実行されるのに、なぜ$hoge
コマンドを実行しようとしたのか。
echo でシングルクォートで囲って出力したものは、見かけ上では分からないが文字列ということになってそう
$ '$hoge' -bash: $hoge: コマンドが見つかりません
という結果になる。変数の$hoge
は知っているが、文字列の$hoge
は知らないという感じですね。
実際にデータがどのように認識されているのかを調べる方法を調べよう
Linuxのシングルクォートとダブルクォート(?日坊主)
- この記事はsolo_advent_calender 2016年12月9日のものです。
こんにちは ショート advent calender9日目です。
金曜日に書き忘れ、土曜日にまとめて書こうと思っていると、土曜日も気づいたら終わっている。そんなことありますよね。
はい。
シングルクォート''
の場合は単純に文字列として出力する。
ダブルクォートは""
の場合は変数展開してくれる。です
$ hoge=neko # 変数hogeに文字列nekoを入れる $ echo hoge hoge $ echo $hoge # 変数を表示するには先頭に$をつける neko $ echo '$hoge' # $hogeを文字列として表示 $hoge $ echo "$hoge" #変数を展開して表示 neko $ echo "I love $hoge" # 文字列に変数を埋め込む I love neko $ echo '$hoge' is "$hoge" # $hoge is neko