スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
manのSYNOPSIS(書式)の読み方
lsコマンドのmanより、manのSYNOPSIS(書式)の読み方を学習する

「SYNOPSIS(書式)」とは、そのコマンドは、
こんな文法で使えますよー という事が書いてある部分である。


では、見てみよう。

man ls 抜粋
SYNOPSIS
     ls [-ABCFGHLPRSTW@abcdefghiklmnopqrstuwx1] [file ...]

man_sy.jpg

以上から、こんな感じで使えることがわかる。
$ ls -ltr hoge.txt hoge.c

お次は、cp
SYNOPSIS
     cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] source_file target_file
     cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] source_file ... target_directory


2段になっているのは、書き方が2通りあることを示している。
上の段にならうと、
$ cp hoge foo

下の段にならうと、
$ cp hoge foo bar

ただし、最後のbarはディレクトリでなければならない。


さらに、オプション自体が引数をとることがある。
gccでみてみよう。
SYNOPSIS
       gcc [-c|-S|-E] [-std=standard]
           [-g] [-pg] [-Olevel]
           [-Wwarn...] [-pedantic]
           [-Idir...] [-Ldir...]
           [-Dmacro[=defn]...] [-Umacro]
           [-foption...] [-mmachine-option...]
           [-o outfile] infile...

たとえば、 -o outfile のところが引数をとるオプションである。
gcc.jpg




さらに、 -v というオプションは --version という感じで、同じ機能であるが、長い名前が用意されている場合がある。長い名前の場合は -- とハイフン2つから始まるという慣習があるので覚えておくと役にたつ。
スポンサーサイト
インストール
1. ソースからのインストール

・ソースからインストールしたいとき
  ./configure; make; make install;
  を使う

  ./configure && make && make install
  なんてのもアリ(むしろ推奨)
     ; だと前のコマンドが成功しても失敗しても実行される。
     && だと前のコマンドが失敗したらその時点で実行が中断される


・拡張子 .tar.gz
  .tar.gzはファイルをネットワーク経由で送るときの一般的な拡張子
  ソースは .tar.gz拡張子で配布されていることが多い


・解凍したら
  READMEかINSTALLを探そう
    READMEかINSTALLにインストール方法は書いてある

    でも、細かくなるので、まず
    ./configure; make; make install;
    を覚えよう


・configureについて
  解凍しても、configureがないときがある orz
  昔はconfigureなんてなくて、自分でMakefileを書き換えてた
  めんどくさいので環境を自動で検出してMakefileを自動生成しよう
  というのがconfigureスクリプト


・autoconfなんてのも
  configureスクリプト書くのもめんどくさくなった
  configureを自動生成するautoconfができた
  autoconfはconfigure.acからconfigureを生成する


・makeについて
  ビルドとインストール
  ビルド
    所定の位置に置くためのファイルをつくり出すこと

  インストール
    ファイルを所定の位置に置くこと

  makeというのは作業の自動化ツールで割となんでもできる
    例)makeがgccを呼び出すならビルドの役目になるし、
     cpを呼び出すならインストールの役目になる


・make install について
  make; はコンパイル(ビルドの役目)に専念しよう
  make install; はインストールの役目に専念することにしよう






2. Linuxのパッケージ

・パッケージとは
  プログラムや設定ファイルを一つにまとめたもの
  Linuxではバイナリパッケージが配布されている
    バイナリとは、「コンパイル済み」の意味

・パッケージをダウンロードしたい
  apt もしくは yum
    apt (Debian派生)もしくはyum(RedHat派生)
    aptコマンドはない apt-getコマンドはある
    yumコマンドはある

・パッケージをインストールしたい
  dpkgもしくはrpm
    dpkg(Debian派生)もしくはrpm(RedHat派生)

  実は、apt-get install package-nameでよかったりする

・apt と yum に関する小話
  rpm対応Distributionは長らくネットワーク経由での
  パッケージインストール機能がなかったため
  apt-getが移植された

  yumというaptみたいなものが作成され、
  Fedora派生のDistributionだとyumが使われることが多い

  yumはpythonで書かれてて遅かったため
  Fedoraでもaptを使いたがる人もいる

・atpとyumは内部でdpkg,rpmを呼び出す
  apt(ネットワーク担当)は内部でdpkg(インストール担当)を、
  yum(ネットワーク担当)は内部でrmp(インストール担当)を呼び出している






3. FreeBSDのパッケージについて

・ports
  ソースのダウンロードとビルドを自動化するツール

・package
  pkg_add -r packagename
    ネットワーク経由でインストール

  pkg_add filename
    ローカルのファイルをインストール

  package というコマンドはない
  pkg_add というコマンドはある


※間違い等ありましたら、ご指摘いただけると幸いです。
グループ
$ ls -l
total 24
-rw-r--r-- 1 bingo_nakanishi staff 231 11 11 01:00 test.pl
-rw-r--r-- 1 bingo_nakanishi staff 221 11 11 00:56 test1.pl
-rw-r--r-- 1 bingo_nakanishi staff 266 11 11 01:00 test2.pl
これで、ファイルのグループが staff であるとわかる。

$ cat /etc/group | grep staff
staff:*:20:root
これでグループのIDが20であるとわかる。

あと 
$ awk -F: '{ if( $4 == "20" ) print $0 }' /etc/passwd
とawkのifがけっこう使える。 なぜか、20みあたらなかったが...
.def って何?
echoのソースを読んでみようと思った。

BASH - GNU Project - Free Software Foundation (FSF)
Index of /gnu/bash

bash-2.01.tar.gzを落としてきた。

echo.cっていうファイルがてっきりあるんだと思ったら、
echo.defってファイルがみつかった。俺のしってるC言語っぽいのがそこに書かれていた。

#if defined (HAVE_UNISTD_H)
# include <unistd.h>
#endif

む、この書き方、見たことある。


---------研究室での記憶が蘇る--------

ビンゴ中西:「こんなのどこで覚えるんだ?」
羊    :「ソース読めば、気になって仕方なくなって覚えるよ」

--------------------------------------

int
echo_builtin (list)
WORD_LIST *list;
{

む、この書き方、聞いたことがある。

--------つい最近の会話の記憶が蘇る-------

とあるvi使い:「関数名で始めておくと 『^関数名』で検索できるだろ」

-----------------------------------------



しかし、読めそうにないぞ、なんだこのファイルは・・・

無題
$ type echo for ls
echo is a shell builtin
for is a shell keyword
ls is hashed (/usr/bin/ls)
ブログ検索

プロフィール

ビンゴ中西
Perlが好きである。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。

FC2カウンター

カレンダー

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

ブロとも申請フォーム

この人とブロともになる

| ホーム | 次のページ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。