■掲示板に戻る■ 1- 最新50

コマンドオプション

1 :nil :2001/08/22(水) 22:08
CUIが使いにくいという人々がいるようだが、その原因の一端
を担っているのがコマンドごとに異なる文法だと思う。

フリーソフトの短所は無数の人々が開発に参加していることで、
インターフェースの統一がなされていないことだ。

誰でも好みのインターフェースがあり、それは個々人で異なる。
そして各ソフトウェアの作者は自分の好みにあわせて実装する。

その結果、現在のようにソフトごとにそれぞれ全く意味の異なる
無数のコマンドオプションが乱立することになってしまった。

例を挙げよう。cpやmvはオプションの後に現在あるファイル、
目標のファイルの順で入れる。だが、tarは逆なのだ。

私は、オプションごとに異なるコマンドに分割すべきだと思う。
例えば、cp -R はrecursive-copy、ls -a はprint-filelist-with-dotfiles
とかいう具合に。その点emacsの実装は優れている。
関数名を見るだけで内容が類推できるからだ。
シェルの補完機能がある今となっては、意味のわかりにくい
省略名のコマンドもやめて欲しいところだ。

2 :1 :2001/08/22(水) 22:15
UNIXのフリーソフトウェアコミュニティの人々は、伝統を重視しすぎ
ではないか。昔からずっとcpだったからといって、今後もcopyにして
はいけないなんてことはないだろう。

aliasで好きなのにしろって? 違うんだよ。
もちろん私はもうコマンドの名前は覚えた。あなたもそうなんだろう。
だが私がここで問題にしたいのは、aliasなんて知らない人たちのことだ。

デフォルトをもっと冗長にしよう。その上で利用者が必要に応じてalias
を使えばいいんだよ。そのほうが自然な進歩だと思わないか?

3 :犬板より :2001/08/22(水) 22:27
うーん、難しい〜

なんでも動けば良いんじゃない?
って考えがあるので気にしてないけど

進歩は必要ですね
でも、伝統派と若者向って二種類の使い方はアリだ

逆にクラックに体制もあるかもしれんし(w

4 :名無しさん@お腹いっぱい。 :2001/08/22(水) 22:42
いや CUIが使いにくいというヤツはX使えばいい

5 :名無しさん@お腹いっぱい。 :2001/08/22(水) 23:05
ls -A は print-filelist-with-dotfiles-except-dot-and-dotdot かい?

6 :名無しさん@お腹いっぱい。 :2001/08/22(水) 23:06
GUIが使いにくいという人々がいるようだが、その原因の一端
を担っているのがプログラムごとに異なるメニューだと思う。

商業ソフトの短所は無数の企業が開発に参加していることで、
インターフェースの統一がされていないことだ。

各社ごとに好みのインターフェースがあり、それは会社で異なる。
そして各ソフトウェアメーカーは各社の利益にあわせて実装する。

その結果、現在のようにソフトごとにそれぞれまったく意味の異なる
無数のメニューやツールバーが乱立することになってしまった。

例を挙げよう。IEはファイルメニューの下にプロパティがあり
表示内容の情報を見られる。だが、Netscapeは違うのだ。

7 :名無しさん@お腹いっぱい。 :2001/08/23(木) 00:06
http://www6.airnet.ne.jp/as400/index.html
そういう面は汎用機の方が律儀だと思う。

8 :名無しさん@お腹いっぱい。 :2001/08/23(木) 00:09
solaris8歴+freebsd歴=4ヶ月
今日、chown -R を知ってちょっと感動。
UNIXって便利だなぁ。

9 :名無しさん@お腹いっぱい。 :2001/08/23(木) 00:20
>>2
recursive-copyやprint-filelist-with-dotfilesでは、
英単語を知らなければ理解できないので
日本語を用いたコマンドである必要があると思うんだが?

10 :名無しさん@お腹いっぱい。 :2001/08/23(木) 00:34
>デフォルトをもっと冗長にしよう。その上で利用者が必要に応じてalias
>を使えばいいんだよ。そのほうが自然な進歩だと思わないか?

ぜんぜん思わない。
何時も自分のマシンしか使わないヒトならいいけどねえ。
CUIが面倒なヒトはGUI使ってちょ。

11 :名無しさん@お腹いっぱい。 :2001/08/23(木) 01:14
>>1
その考えでいくとMacintoshの開発環境のMPWShellコマンド
みたいなクソコマンドになります。
どんなのかは調べてちょ。

12 :名無しさん@お腹いっぱい :2001/08/23(木) 02:23
UNIXの優れている処はコマンドを組み合わせて何でも出来る処。
CUIが使いにくいって奴は当然shellも使いこなせない。
それではUNIXの有り難味の10%もわからんだろう。

13 :名無しさん@お腹いっぱい。 :2001/08/23(木) 03:04
chown -Rって unix風じゃないよな..
find | xargs chown ってやってこそ unix

14 :名無しさん@お腹いっぱい。 :2001/08/23(木) 03:20
ああっ、もうダメッ!!はうあああーーーーっっっ!!!
ブリイッ!ブボッ!ブリブリブリィィィィッッッッ!!!!
いやぁぁっ!あたし、こんなにいっぱいウンチ出してるゥゥッ!
ぶびびびびびびびぃぃぃぃぃぃぃっっっっ!!!!ボトボトボトォォッッ!!!
ぁあ…ウンチ出るっ、ウンチ出ますうっ!!
ビッ、ブリュッ、ブリュブリュブリュゥゥゥーーーーーッッッ!!!
いやああああっっっ!!見ないで、お願いぃぃぃっっっ!!!
ブジュッ!ジャアアアアーーーーーーッッッ…ブシャッ!
ブババババババアアアアアアッッッッ!!!!
んはああーーーーっっっ!!!ウッ、ウンッ、ウンコォォォッッ!!!
ムリムリイッッああっ、もうダメッ!!はうあああーーーーっっっ!!!
ブリイッ!ブボッ!ブリブリブリィィィィッッッッ!!!!
いやぁぁっ!あたし、こんなにいっぱいウンチ出してるゥゥッ!
ぶびびびびびびびぃぃぃぃぃぃぃっっっっ!!!!ボトボトボトォォッッ!!!
ぁあ…ウンチ出るっ、ウンチ出ますうっ!!
ビッ、ブリュッ、ブリュブリュブリュゥゥゥーーーーーッッッ!!!
いやああああっっっ!!見ないで、お願いぃぃぃっっっ!!!
ブジュッ!ジャアアアアーーーーーーッッッ…ブシャッ!
ブババババババアアアアアアッッッッ!!!!
んはああーーーーっっっ!!!ウッ、ウンッ、ウンコォォォッッ!!!
ムリムリイッッ!!ブチュブチュッッ、ミチミチミチィィッッ!!!
おおっ!ウンコッ!!ウッ、ウンッ、ウンコッッ!!!ウンコ見てぇっ

15 :1 :2001/08/23(木) 08:29
>>11

検索してみたが、大して変わらないような気がするが。
意味不明のオプションもあるし。
>>12

完全にズレているぞ。

16 :1、失敗スマソ :2001/08/23(木) 08:29
>>5
あれはあくまでも一例だよ。煽らないでくれ。

>>9
現行のシステムが英語を主体にしてて、
現実問題として漢字を含む日本語をキーボードに並べられない
以上、それは仕方ない。
非英語圏以外の人間が不利なのはもうしょうがない。
英語の修得は勘弁してもらおう。
漏れは自分のシステムをプレーンな英語環境にしてしまおうか
と考えている。英語の学習にもなるし。
日本語のこと考えなくていいなら、かなりUNIXって使えるのでは
ないかと思う。

>>10
シェルのドットファイルも移せないってこと?
UNIXのウリの1つは「自分好みにカスタマイズできること」
だと思うんだが、現実がそれでは寒いね。
っていうか、自分がコマンドもう覚えたから俺は関係ない、
っていうのやめようよ。傲慢に見える。

>>11
検索してみたが、大して変わらないような気がするが。
意味不明のオプションもあるし。

>>12
論点が完全にズレているぞ。
それともaliasも使えない人は無視しろってこと?
そういう傲慢さがイヤなんだよなぁ。

17 :名無しさん@お腹いっぱい。 :2001/08/23(木) 09:09
マニュアルが充実してれば何も問題ないと思う。

たとえば man cp ってすっげー読みにくいじゃん。
英語だからってわけじゃあなく、説明がヘボイ。
マニュアルがちゃんとしてれば使いやすいと思うのよ

18 :名無しさん@お腹いっぱい。 :2001/08/23(木) 11:54
俺って Unixの manって使いやすいって思ったけどなあ。
結構ほしい情報がちゃんと載ってて、DOSとかの意味のない
manualたあ違うと思った。
BUGS sectionが秀逸かな.. ってこことは関係ないか。sage

19 :名無しさん@お腹いっぱい。 :2001/08/23(木) 12:08
>>17がイイ!こといった

20 :名無しさん@お腹いっぱい。 :2001/08/23(木) 12:18
オプションごとに別のプログラムにすればいいっていうのは
愚だよ。いちいち覚えられないだろ。
>>12 がいうように CUI の便利さは組合せにある。
いわゆるツールボックスアプローチだな。
だから極端なこというとオプションも少ない方がいい。
>>13 のような方法で解決する方がスマートだ。

CUI ってのは一種のプログラミングだぜ。アイコンクリックの
かわりに文字を入れるっていうのとは違う。

21 :名無しさん@お腹いっぱい。 :2001/08/23(木) 12:26
フェチごとに別の英単語にすればいいっていうのは
愚だよ。いちいち覚えられないだろ。
>>14 がいうように スカトロ の楽しさは表現にある。
いわゆるカンチョーアプローチだな。
だから極端なこというと液漏れも少ない方がいい。
>>14 のような表現で解決する方がスマートだ。

スカトロ ってのは一種の革命だぜ。戯れ合いの
かわりに液を肛門に入れるっていうのは違う。

22 :名無しさん@お腹いっぱい。 :2001/08/23(木) 12:57
man -k を覚えるだけでかなり状況は良くなるのではなかろうか。
その最初をどこで初心者が覚えるられるのかが問題だが...

GUI はその辺をあらかじめにみえる場所(メニューとか)に
おけるだけマシなんだが、CUI ではどうしたものか。

command not found が頻発したら勝手に interactive な
online help でもでればいいんだろうか?

23 :マジレスだよ〜ん :2001/08/23(木) 13:59
単純なコマンドの組み合わせで、複雑で巨大な処理を
こなすことこそが、まさしく UNIX の真髄なんだと思うなぁ。

それが必要ないというなら、もはや UNIX を選択する意味も
必然性もないので、素直に Win2k を使っとけ、てことになるっしょ。
評判聞いてると、突然死の心配も無くなったみたいだし。

24 :名無しさん@お腹いっぱい。 :2001/08/23(木) 14:08
Emacs 風にやるなら、「cp -R」は「recursive-copy」じゃなくて、
「copy-file」コマンドのオプションにすべきでしょ。

(copy-file FILE NEWFILE &optional OK-IF-ALREADY-EXISTS KEEP-DATE
RECURSIVELY)

やっぱりオプションごとにコマンドを分るべきではない。
それと、この議論はフリーソフトウェアとは直接関係ないのでは?
UNIX プログラマの話でしょ。土俵が違うと思う。

25 :24 :2001/08/23(木) 14:27
英語が辛いなら日本語を使おう。日本語の場合は単語の順序が変化するね。

$ ファイルを複写 /usr/share/data $俺の家/data --再帰的に

英語と違ってカテゴリ分けが楽になるかも。英語だと stack-create になって
違和感があるけど、日本語なら「スタックを作る」で違和感がない。
オンラインマニュアルは Emacs でいう DOCSTRING みたいのを用意すれば
良いと思う。

でもやっぱり理想で終る気がする。

26 :名無しさん@お腹いっぱい。 :2001/08/23(木) 14:58
「そろそろぴゅう太ネタが出てくる」に30inode。

27 :名無しさん@お腹いっぱい。 :2001/08/23(木) 15:07
「いや、Mindネタだろ」に60process slot

28 :1 :2001/08/23(木) 22:16
>>20
>>23
誤解されているようだが、少ないコマンドを組みあわせるという考え方には
共感しているし、13の意見にも同意するし、21にも部分的に同意する。
コマンド1つ分の機能が多すぎないだろうか。複雑怪奇でコマンドごとに全く
意味の異なるオプションもそのせいだと思う。
1機能1コマンド、で新しいコマンドの要望が出たらそれまでの組みあわせで
実装するのがいいと思う。だから今ある全てのコマンドとオプションの組み
合わせを別々に分離せよ、と言っているわけではなくて、本来いらないはず
のオプションがあるだろう、ということだ。

>>24
なんでrecursiveを先にもってきたかというと、補完機能を意識してのことだ。
copy系コマンドの先頭を全部copyにしたら、収束しにくくなる。

>>17
リファレンスとしてはいいのだが、始めに体系的に読む文書が少ない。なんだか
GNU信者みたいな物言いだが、この点infoは優れている。
体系的な知識は本で、とすぐ本をあてにする人が多いのもなんだか嫌だ。UNIXが
ネットで育ったのに、そのホームグラウンドに情報がないなんて、なんだか寒い
と思わないか?

29 :Solaris厨房 ◆5aEC99AQ :2001/08/23(木) 22:37
全てのコマンドマニュアルに使用例を載せてほしい。
記載されてるものもあるが、ないもの結構ある。

これだけで結構UNIXの敷居が下がると思う。

30 :名無しさん@お腹いっぱい。 :2001/08/23(木) 22:55
素朴な疑問だけど、UNIXの敷居を下げる必要ってあるんかな?

31 :名無しさん@お腹いっぱい。 :2001/08/23(木) 23:06
そうだね

32 :名無しさん@お腹いっぱい。 :2001/08/23(木) 23:09
下げないとWindowsにどんどんシェアを奪われる事になるでしょう。

33 :名無しさん@お腹いっぱい。 :2001/08/23(木) 23:13
敷居を下げるのならXのデスクトップ環境の方でやってもらった方が

むしろCUIの大幅な変更は混乱をきたすと思われ

34 :名無しさん@お腹いっぱい。 :2001/08/23(木) 23:18
>>28
>なんでrecursiveを先にもってきたかというと、補完機能を意識してのことだ。
>copy系コマンドの先頭を全部copyにしたら、収束しにくくなる。

そう?
やりたいことはコピーなんだから、copyを最初に持って来るべきなんじゃないの?
copy-で^DなりTABキーなり押してズラズラッとどんなコピーをしたいか
選択させた方がカッチョイイし、解りやすいと思う。

あともう一点。
>>2
>デフォルトをもっと冗長にしよう。その上で利用者が必要に応じてalias
>を使えばいいんだよ。そのほうが自然な進歩だと思わないか?

とは言え、既にcpコマンドは有るのだから、そっちをバラした方が
手っ取り早いと思う。
例えば、「解りやすいalias集」みたいのを作って、/usr/share/skelに
置いておくってのは、良い手だと思う。どーしてもaliasじゃヤだ!ってんなら
例えばcpならば
#!/bin/sh
case $0 in
copy-recursive)
cp -R $@;;
copy-interactive)
cp -i $@;;
copy-keep-permissions)
cp -p $@;;
esac
みたいのを/binに作って、名前の数だけシンボリックリンクを張って
やれば、俺的には万事おっけーに感じる。

35 :34 :2001/08/23(木) 23:24
>>34
>なんでrecursiveを先にもってきたかというと、補完機能を意識してのことだ。
>copy系コマンドの先頭を全部copyにしたら、収束しにくくなる。

ていうか、よく考えたら >>1 の考えをマジメにこなすと、この命名法だと
recursive-hogehogeが沢山出てきて、それこそ解りにくくなる。
ので、>>28 案には反対。

36 :1 :2001/08/23(木) 23:38
>>34
前半
zshのように一覧つきの補完機能があれば、確かにその方がいいような気がする。
後半
なかなかいいアイデアだ。
「解りやすいalias集」は是非欲しいところ。少しずつ書いてみようかな。

>>35
28の前半でも書いたが、実際に必要なのは一部だ。
それ(似たようなコマンド)が沢山出てくるということが失敗なんだよ。

37 :名無しさん@お腹いっぱい。 :2001/08/23(木) 23:41
>全てのコマンドマニュアルに使用例を載せてほしい。
意味無し

>>29 はコマンドとそのオプションを全て丸覚えするつもりなのか?
○○をしたいときはこのコマンドをこう使うということを覚えたほうがいいぞ。
その手助けをするのがmanでありinfoでありFAQそして検索エンジンだ。

manの読み方、FAQの探し方を覚えましょう。

38 :名無しさん@お腹いっぱい。 :2001/08/23(木) 23:53
>>37
>>29 の言うことには俺は賛同する。
たとえば
$ man find
すると
SYNOPSIS
find [path...] [expression]
とはあるが、それだけでは使い方がようわからん人が多いとおもわれ。

39 :名無しさん@お腹いっぱい。 :2001/08/24(金) 00:10
[csh系]
alias rm 'rm -r ~/'

40 :名無しさん@お腹いっぱい。 :2001/08/24(金) 00:12
>>39
氏ね

41 :39 :2001/08/24(金) 00:15
>>39,->>40
ジサクジエンデシタ

42 :10 :2001/08/24(金) 00:36
>>16

>シェルのドットファイルも移せないってこと?

そうだよ。
いつもFD持ち歩きたくないし。
必ずしもインターネットに繋がってるとも限らない。
それに頻繁に使うマシンが変わったり、勝手に環境を触ることに問題が
ある場合もある。例えば一時的にアカウントを借りたりするときだね。

>UNIXのウリの1つは「自分好みにカスタマイズできること」
>だと思うんだが、現実がそれでは寒いね。

寒いか?
そういう形態でサービス業やってるヒトもいるのよ。

>っていうか、自分がコマンドもう覚えたから俺は関係ない、
>っていうのやめようよ。傲慢に見える。

ヒトが自分と同じ方法で問題解決できるはずと思い込む方が
よほど傲慢に思えるが、どうよ?


端的に言ってカスタマイズは機能として「あり」だけど、標準
には標準の良さもあるはずだ。viやemacsが違う名前だったら
とまどわないか?
名称付与が良いとか悪いとかを越えた伝統を軽く考えすぎてな
いか?

一新して改善するは、「あり」だと思うが、出来上がったそれ
はもうUNIXじゃないと思うよ。

43 :名無しさん@お腹いっぱい。 :2001/08/24(金) 00:58
ほんとに 1が思ってるほど UNIX が使いにくい (使いにくいと
思ってる人間が多い) OS なら、ここまで使われてはいないだろう。

44 :名無しさん@お腹いっぱい。 :2001/08/24(金) 01:24
>>43

そりゃそうだ。
解りやすい。

45 :9 :2001/08/24(金) 01:25
>>37
使用例があってくれた方が良い。

example# ufsdump 0f - /dev/rdsk/c0t0d0s7 | (cd /home;ufsrestore xf -)
(上記はSolaris7のman ufsresotre より)

ってのが例として載ってなければ
disk to diskでコピーができるなんてわからなかった。
それまでは1回テープにufsdumpしてからufsrestoreしてた...

46 :名無しさん@お腹いっぱい。 :2001/08/24(金) 01:30
>>45

つーか、それってただの応用でしょ。
個々のコマンドの機能理解して、パイプの意味がわかれば
あとは頭の回転の差でしょ。こういうのは。
なんでもマニュアルに頼るタイプ?

47 :名無しさん@お腹いっぱい。 :2001/08/24(金) 01:40
話の流れに反るかもしれないけど。
コマンドがいい具合に略されてるんで、
「どうすればいいのか」っつー情報交換が楽です。

48 :名無しさん@お腹いっぱい。 :2001/08/24(金) 02:39
>>46
なんでもマニュアルに頼る ってわけじゃあなく、
人の経験と知恵を知識化する ってことだな。

49 :名無しさん@お腹いっぱい。 :2001/08/24(金) 03:04
Unix の man は tutorial というより reference に徹しているように
思える。find みたいに変則的なものは man で覚えるのは確かに大変だが、
一旦覚えてしまうと man の reference の方がさっと探せて便利。

どっちも一長一短だね。


次100 最新50
名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)