1read 100read
2011年12月2期UNIX57: コマンドオプション (155)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
・ 次のスレ
58: ■OpenBSD(VMS)の考察及炉理画像を貼り付けるスレ (117)
59: UNIX板のバナーつくってあげよう! (426)
3: *BSDニュース@2ch その5 (456)
4: ここだけ20年時代が遅れているスレ (611)
コマンドオプション
1 :01/08/22 〜 最終レス :10/10/09 CUIが使いにくいという人々がいるようだが、その原因の一端 を担っているのがコマンドごとに異なる文法だと思う。 フリーソフトの短所は無数の人々が開発に参加していることで、 インターフェースの統一がなされていないことだ。 誰でも好みのインターフェースがあり、それは個々人で異なる。 そして各ソフトウェアの作者は自分の好みにあわせて実装する。 その結果、現在のようにソフトごとにそれぞれ全く意味の異なる 無数のコマンドオプションが乱立することになってしまった。 例を挙げよう。cpやmvはオプションの後に現在あるファイル、 目標のファイルの順で入れる。だが、tarは逆なのだ。 私は、オプションごとに異なるコマンドに分割すべきだと思う。 例えば、cp -R はrecursive-copy、ls -a はprint-filelist-with-dotfiles とかいう具合に。その点emacsの実装は優れている。 関数名を見るだけで内容が類推できるからだ。 シェルの補完機能がある今となっては、意味のわかりにくい 省略名のコマンドもやめて欲しいところだ。
2 : UNIXのフリーソフトウェアコミュニティの人々は、伝統を重視しすぎ ではないか。昔からずっとcpだったからといって、今後もcopyにして はいけないなんてことはないだろう。 aliasで好きなのにしろって? 違うんだよ。 もちろん私はもうコマンドの名前は覚えた。あなたもそうなんだろう。 だが私がここで問題にしたいのは、aliasなんて知らない人たちのことだ。 デフォルトをもっと冗長にしよう。その上で利用者が必要に応じてalias を使えばいいんだよ。そのほうが自然な進歩だと思わないか?
3 : うーん、難しい〜 なんでも動けば良いんじゃない? って考えがあるので気にしてないけど 進歩は必要ですね でも、伝統派と若者向って二種類の使い方はアリだ 逆にクラックに体制もあるかもしれんし(w
4 : いや CUIが使いにくいというヤツはX使えばいい
5 : ls -A は print-filelist-with-dotfiles-except-dot-and-dotdot かい?
6 : GUIが使いにくいという人々がいるようだが、その原因の一端 を担っているのがプログラムごとに異なるメニューだと思う。 商業ソフトの短所は無数の企業が開発に参加していることで、 インターフェースの統一がされていないことだ。 各社ごとに好みのインターフェースがあり、それは会社で異なる。 そして各ソフトウェアメーカーは各社の利益にあわせて実装する。 その結果、現在のようにソフトごとにそれぞれまったく意味の異なる 無数のメニューやツールバーが乱立することになってしまった。 例を挙げよう。IEはファイルメニューの下にプロパティがあり 表示内容の情報を見られる。だが、Netscapeは違うのだ。
7 : http://www6.airnet.ne.jp/as400/index.html そういう面は汎用機の方が律儀だと思う。
8 : solaris8歴+freebsd歴=4ヶ月 今日、chown -R を知ってちょっと感動。 UNIXって便利だなぁ。
9 : >>2 recursive-copyやprint-filelist-with-dotfilesでは、 英単語を知らなければ理解できないので 日本語を用いたコマンドである必要があると思うんだが?
10 : >デフォルトをもっと冗長にしよう。その上で利用者が必要に応じてalias >を使えばいいんだよ。そのほうが自然な進歩だと思わないか? ぜんぜん思わない。 何時も自分のマシンしか使わないヒトならいいけどねえ。 CUIが面倒なヒトはGUI使ってちょ。
11 : >>1 その考えでいくとMacintoshの開発環境のMPWShellコマンド みたいなクソコマンドになります。 どんなのかは調べてちょ。
12 : UNIXの優れている処はコマンドを組み合わせて何でも出来る処。 CUIが使いにくいって奴は当然shellも使いこなせない。 それではUNIXの有り難味の10%もわからんだろう。
13 : chown -Rって unix風じゃないよな.. find | xargs chown ってやってこそ unix
14 : ああっ、もうダメッ!!はうあああーーーーっっっ!!! ブリイッ!ブボッ!ブリブリブリィィィィッッッッ!!!! いやぁぁっ!あたし、こんなにいっぱい出してるゥゥッ! ぶびびびびびびびぃぃぃぃぃぃぃっっっっ!!!!ボトボトボトォォッッ!!! ぁあ…出るっ、出ますうっ!! ビッ、ブリュッ、ブリュブリュブリュゥゥゥーーーーーッッッ!!! いやああああっっっ!!見ないで、お願いぃぃぃっっっ!!! ブジュッ!ジャアアアアーーーーーーッッッ…ブシャッ! ブババアアアアッッッッ!!!! んはああーーーーっっっ!!!ウッ、ウンッ、ォォォッッ!!! ムリムリイッッああっ、もうダメッ!!はうあああーーーーっっっ!!! ブリイッ!ブボッ!ブリブリブリィィィィッッッッ!!!! いやぁぁっ!あたし、こんなにいっぱい出してるゥゥッ! ぶびびびびびびびぃぃぃぃぃぃぃっっっっ!!!!ボトボトボトォォッッ!!! ぁあ…出るっ、出ますうっ!! ビッ、ブリュッ、ブリュブリュブリュゥゥゥーーーーーッッッ!!! いやああああっっっ!!見ないで、お願いぃぃぃっっっ!!! ブジュッ!ジャアアアアーーーーーーッッッ…ブシャッ! ブババアアアアッッッッ!!!! んはああーーーーっっっ!!!ウッ、ウンッ、ォォォッッ!!! ムリムリイッッ!!ブチュブチュッッ、ミチミチミチィィッッ!!! おおっ!ッ!!ウッ、ウンッ、ッッ!!!見てぇっ
15 : >>11 検索してみたが、大して変わらないような気がするが。 意味不明のオプションもあるし。 >>12 完全にズレているぞ。
16 : >>5 あれはあくまでも一例だよ。煽らないでくれ。 >>9 現行のシステムが英語を主体にしてて、 現実問題として漢字を含む日本語をキーボードに並べられない 以上、それは仕方ない。 非英語圏以外の人間が不利なのはもうしょうがない。 英語の修得は勘弁してもらおう。 漏れは自分のシステムをプレーンな英語環境にしてしまおうか と考えている。英語の学習にもなるし。 日本語のこと考えなくていいなら、かなりUNIXって使えるのでは ないかと思う。 >>10 シェルのドットファイルも移せないってこと? UNIXのウリの1つは「自分好みにカスタマイズできること」 だと思うんだが、現実がそれでは寒いね。 っていうか、自分がコマンドもう覚えたから俺は関係ない、 っていうのやめようよ。傲慢に見える。 >>11 検索してみたが、大して変わらないような気がするが。 意味不明のオプションもあるし。 >>12 論点が完全にズレているぞ。 それともaliasも使えない人は無視しろってこと? そういう傲慢さがイヤなんだよなぁ。
17 : マニュアルが充実してれば何も問題ないと思う。 たとえば man cp ってすっげー読みにくいじゃん。 英語だからってわけじゃあなく、説明がヘボイ。 マニュアルがちゃんとしてれば使いやすいと思うのよ
18 : 俺って Unixの manって使いやすいって思ったけどなあ。 結構ほしい情報がちゃんと載ってて、DOSとかの意味のない manualたあ違うと思った。 BUGS sectionが秀逸かな.. ってこことは関係ないか。sage
19 : >>17 がイイ!こといった
20 : オプションごとに別のプログラムにすればいいっていうのは 愚だよ。いちいち覚えられないだろ。 >>12 がいうように CUI の便利さは組合せにある。 いわゆるツールボックスアプローチだな。 だから極端なこというとオプションも少ない方がいい。 >>13 のような方法で解決する方がスマートだ。 CUI ってのは一種のプログラミングだぜ。アイコンクリックの かわりに文字を入れるっていうのとは違う。
21 : フェチごとに別の英単語にすればいいっていうのは 愚だよ。いちいち覚えられないだろ。 >>14 がいうように の楽しさは表現にある。 いわゆるカンチョーアプローチだな。 だから極端なこというと液漏れも少ない方がいい。 >>14 のような表現で解決する方がスマートだ。 ってのは一種の革命だぜ。戯れ合いの かわりに液を肛門に入れるっていうのは違う。
22 : man -k を覚えるだけでかなり状況は良くなるのではなかろうか。 その最初をどこで初心者が覚えるられるのかが問題だが... GUI はその辺をあらかじめにみえる場所(メニューとか)に おけるだけマシなんだが、CUI ではどうしたものか。 command not found が頻発したら勝手に interactive な online help でもでればいいんだろうか?
23 : 単純なコマンドの組み合わせで、複雑で巨大な処理を こなすことこそが、まさしく UNIX の真髄なんだと思うなぁ。 それが必要ないというなら、もはや UNIX を選択する意味も 必然性もないので、素直に Win2k を使っとけ、てことになるっしょ。 評判聞いてると、突然死の心配も無くなったみたいだし。
24 : Emacs 風にやるなら、「cp -R」は「recursive-copy」じゃなくて、 「copy-file」コマンドのオプションにすべきでしょ。 (copy-file FILE NEWFILE &optional OK-IF-ALREADY-EXISTS KEEP-DATE RECURSIVELY) やっぱりオプションごとにコマンドを分るべきではない。 それと、この議論はフリーソフトウェアとは直接関係ないのでは? UNIX プログラマの話でしょ。土俵が違うと思う。
25 : 英語が辛いなら日本語を使おう。日本語の場合は単語の順序が変化するね。 $ ファイルを複写 /usr/share/data $俺の家/data --再帰的に 英語と違ってカテゴリ分けが楽になるかも。英語だと stack-create になって 違和感があるけど、日本語なら「スタックを作る」で違和感がない。 オンラインマニュアルは Emacs でいう DOCSTRING みたいのを用意すれば 良いと思う。 でもやっぱり理想で終る気がする。
26 : 「そろそろぴゅう太ネタが出てくる」に30inode。
27 : 「いや、Mindネタだろ」に60process slot
28 : >>20 >>23 誤解されているようだが、少ないコマンドを組みあわせるという考え方には 共感しているし、13の意見にも同意するし、21にも部分的に同意する。 コマンド1つ分の機能が多すぎないだろうか。複雑怪奇でコマンドごとに全く 意味の異なるオプションもそのせいだと思う。 1機能1コマンド、で新しいコマンドの要望が出たらそれまでの組みあわせで 実装するのがいいと思う。だから今ある全てのコマンドとオプションの組み 合わせを別々に分離せよ、と言っているわけではなくて、本来いらないはず のオプションがあるだろう、ということだ。 >>24 なんでrecursiveを先にもってきたかというと、補完機能を意識してのことだ。 copy系コマンドの先頭を全部copyにしたら、収束しにくくなる。 >>17 リファレンスとしてはいいのだが、始めに体系的に読む文書が少ない。なんだか GNU信者みたいな物言いだが、この点infoは優れている。 体系的な知識は本で、とすぐ本をあてにする人が多いのもなんだか嫌だ。UNIXが ネットで育ったのに、そのホームグラウンドに情報がないなんて、なんだか寒い と思わないか?
29 : 全てのコマンドマニュアルに使用例を載せてほしい。 記載されてるものもあるが、ないもの結構ある。 これだけで結構UNIXの敷居が下がると思う。
30 : 素朴な疑問だけど、UNIXの敷居を下げる必要ってあるんかな?
31 : そうだね
32 : 下げないとWindowsにどんどんシェアを奪われる事になるでしょう。
33 : 敷居を下げるのならXのデスクトップ環境の方でやってもらった方が むしろCUIの大幅な変更は混乱をきたすと思われ
34 : >>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 >なんでrecursiveを先にもってきたかというと、補完機能を意識してのことだ。 >copy系コマンドの先頭を全部copyにしたら、収束しにくくなる。 ていうか、よく考えたら >>1 の考えをマジメにこなすと、この命名法だと recursive-hogehogeが沢山出てきて、それこそ解りにくくなる。 ので、>>28 案には反対。
36 : >>34 前半 zshのように一覧つきの補完機能があれば、確かにその方がいいような気がする。 後半 なかなかいいアイデアだ。 「解りやすいalias集」は是非欲しいところ。少しずつ書いてみようかな。 >>35 28の前半でも書いたが、実際に必要なのは一部だ。 それ(似たようなコマンド)が沢山出てくるということが失敗なんだよ。
37 : >全てのコマンドマニュアルに使用例を載せてほしい。 意味無し >>29 はコマンドとそのオプションを全て丸覚えするつもりなのか? ○○をしたいときはこのコマンドをこう使うということを覚えたほうがいいぞ。 その手助けをするのがmanでありinfoでありFAQそして検索エンジンだ。 manの読み方、FAQの探し方を覚えましょう。
38 : >>37 >>29 の言うことには俺は賛同する。 たとえば $ man find すると SYNOPSIS find [path...] [expression] とはあるが、それだけでは使い方がようわからん人が多いとおもわれ。
39 : [csh系] alias rm 'rm -r ~/'
40 : >>39 氏ね
41 : >>39 ->>40 ジサクジエンデシタ
42 : >>16 >シェルのドットファイルも移せないってこと? そうだよ。 いつもFD持ち歩きたくないし。 必ずしもインターネットに繋がってるとも限らない。 それに頻繁に使うマシンが変わったり、勝手に環境を触ることに問題が ある場合もある。例えば一時的にアカウントを借りたりするときだね。 >UNIXのウリの1つは「自分好みにカスタマイズできること」 >だと思うんだが、現実がそれでは寒いね。 寒いか? そういう形態でサービス業やってるヒトもいるのよ。 >っていうか、自分がコマンドもう覚えたから俺は関係ない、 >っていうのやめようよ。傲慢に見える。 ヒトが自分と同じ方法で問題解決できるはずと思い込む方が よほど傲慢に思えるが、どうよ? 端的に言ってカスタマイズは機能として「あり」だけど、標準 には標準の良さもあるはずだ。viやemacsが違う名前だったら とまどわないか? 名称付与が良いとか悪いとかを越えた伝統を軽く考えすぎてな いか? 一新して改善するは、「あり」だと思うが、出来上がったそれ はもうUNIXじゃないと思うよ。
43 : ほんとに 1が思ってるほど UNIX が使いにくい (使いにくいと 思ってる人間が多い) OS なら、ここまで使われてはいないだろう。
44 : >>43 そりゃそうだ。 解りやすい。
45 : >>37 使用例があってくれた方が良い。 example# ufsdump 0f - /dev/rdsk/c0t0d0s7 | (cd /home;ufsrestore xf -) (上記はSolaris7のman ufsresotre より) ってのが例として載ってなければ disk to diskでコピーができるなんてわからなかった。 それまでは1回テープにufsdumpしてからufsrestoreしてた...
46 : >>45 つーか、それってただの応用でしょ。 個々のコマンドの機能理解して、パイプの意味がわかれば あとは頭の回転の差でしょ。こういうのは。 なんでもマニュアルに頼るタイプ?
47 : 話の流れに反るかもしれないけど。 コマンドがいい具合に略されてるんで、 「どうすればいいのか」っつー情報交換が楽です。
48 : >>46 なんでもマニュアルに頼る ってわけじゃあなく、 人の経験と知恵を知識化する ってことだな。
49 : Unix の man は tutorial というより reference に徹しているように 思える。find みたいに変則的なものは man で覚えるのは確かに大変だが、 一旦覚えてしまうと man の reference の方がさっと探せて便利。 どっちも一長一短だね。
50 : >>49 参考になります。
51 : >>49 つまり、両方用意すれば万事解決ってことか。
52 : 1文字オプションの意味だけは最初に決めておいてほしかったよな…。 たいていは 'all' の意味なんだけど (ls,man,ps,uname,ifconfig, netstat,df,du,strings,sttyなど多数。mount,umount,sa,shなども この仲間だが趣がちと異なる)、'append' の意味だったり(tar,ar, ktrace,time,rcs,paxなど) 'ascii' の略だったりする({,e,f}grep, gzip,diff,dd,troffなど)。変り種としては、 address: inetd, tcpdump auto: telnet, perl and: find audio: ping again: fetch archive: objdump anonymous: ftp alternative: bindkey(cshの内部コマンド) authentication: ntpdate なんてのがある。sh の -a は -allexport の略だそうで、 as の場合 'assemble list', cpio は 'access list' だったり。 英語に詳しくないので推測するしかないが、chpass は 'as' かなあ、cu は 'at' かなあ、pr は 'across' かなあなんて 思ったり。whois は 'ARIN' だったりする。そんな物に大事な 1文字オプション使うな。 applyの -a オプションがマジックキャラクタの指定だったり、 ccでは「基本ブロックのプロファイル情報を生成」という意味 だったりするのは作った人しか分からない世界。勘弁してくれ。 FreeBSD 4.3 の標準コマンドの話なので他のOSではまた違うと 思うけど。
53 : 忘れてた。 after: sed, less というのを追加。 しかしこの二つ、意味が違うんだよな。sedのほうは時間的な after なのに対し、less のほうは空間的な after。
54 : 同意はできないけど面白い意見だと思う。 とりあえず、最初から補完があったらUNIXはどうなってたか、 というシミュレーションはやる価値がある。
55 : * 階層化論者 touch file-new cat,ls file-open mkdir dir-new cd dir-open grep file-search egrep file-search-regrep tar c archive-new tar x archive-open * OO論者 hoge.txt :: open /etc :: open
56 : 本当にシェルと人間の自然な言葉で対話するシステムを作れ。 日本語圏なら、 # 今のディレクトリのjpgを全てeroというディレクトリを作りそこに入れとけ[Enter] ↓ mkdir ero mv *.jpg eroが実行される。 様々な言い回しに対応。
57 : >>56 コマンド打ったほうが早い。
58 : >>57 コマンド知らなくてもなんでも出来るじゃん。 文章さえ書ければ小学生でもいきなり使える。 # /からjpg探してちょ # 今動いてるプロセス全部表示してちょ # hello.cコンパイルしてちょ # /usr/localに移動してちょ # プロセスにxmmsって無い?あったらしてちょ
59 : >>58 いいね。 究極の命令。 # あれやっといてちょ
60 : 取り合えず第一歩。 alias ファイルみせて。 'ls'
61 : # やれる相手連れて来い
62 : >>52 同意。 chmod とかは recursive が -R なのに、 GNU grep は -r ってのはかんべん。 -R あいてんじゃネーノ?
63 : >>14 オレはそれは違うと思う。 あんたは Unix の本質のなんたるかを理解していない。
64 : >>63 14に対してか?
65 : >>63 タワラ
66 : >>65 ドーイ!!
67 : >>65 みごとなスレ終了ワザだね!!
68 : しかしあれだな。勢いよくウ○コをまきちらすのはいいけど、後かたづけが大変だな。
69 : ロールバックできるといいね>>68
70 : コアダンプしたりして。
71 : comp.timpo.japan
72 : 取り合えず第二歩。 alias この下にあるエロ画像を見せろゴルァ 'xv `find . -name "*.jpg"`'
73 : alias エロ画像を見せろやゴルァ。ディレクトリは俺様が指定するぞゴルァ 'qiv -fmsu'
74 : なげーよ。
75 : なげーよ。
76 : 音声入力も組み合せれば面白ろいんじゃねぇ?
77 : >>73 は長いな。
78 : >>76 面白くねぇよ。 夜中一人でブツブツ言うのかよ。 「リストオール!」「マイクインストール!」 「スドゥー!スドゥー!」
79 : 「マイクインストール」って何ですか age
80 : 間違えました「メイク」でした AGE
81 : 「リムーブ ハイフンアール テンプスラアスタ」 っていったら、間違えてとちって 「リムーブ ハイフンアール テンプ スラアスタ」 にしちゃーたよ age
82 : 「シンセツナVAX」を思い出しちまっただよ。
83 : 音声入力ってスペースもいちいち言わなきゃいけなくてウザぃかも。 「アールエムスペースハイフンアールエフスペーススラ」
84 : findのオプションいつもはらたつ。 find [path...] [expression] ってのが。 しかし、 find [expression] [path...] にはならんのだろな。
85 : find [-option] [path...] [expression] だろ。expressionが難儀なのには同意だが。
86 : >>1 あーわかった。 とりあえず自前のスクリプト組んでオプション解析して既存コマンドに渡したまえ。 万事OK。 ついでにチュートリアルも作って公開すればいい。
87 : 音声入力ならAIが解析してコマンド実行してほしいな。 「国防総省にハッキングしてくれたまえ」
88 : >>87 AIが解析して国防総省とCIAに通報してくれるYO!
89 : >>87 「ただし、逆探かけられてたら即座に切断したまえ。」 がぬけてるYO!
90 : それじゃコマンドオプションがついてるのと同じだ…
91 : >>84 find . とか find . -type f とか find . -name "*.pch" |xargs rm -f とかしか使わないので、ぜんぜん腹立たないです。
92 : >>5 > ls -A は print-filelist-with-dotfiles-except-dot-and-dotdot かい? 加えるに、ls -Alt(-Atl, -lAt, -ltA, -tAl, -tlA)は、 print-filelist-with-dotfiles-except-dot-and-dotdot-with-long-format-with-modify-time-first-order なのか print-filelist-with-dotfiles-except-dot-and-dotdot-with-modify-time-first-order-with-long-format なのか print-filelist-with-long-format-with-dotfiles-except-dot-and-dotdot-with-modify-time-first-order なのか print-filelist-with-long-format-with-modify-time-first-order-with-dotfiles-except-dot-and-dotdot なのか print-filelist-with-modify-time-first-order-with-long-format-with-dotfiles-except-dot-and-dotdot なのか print-filelist-with-modify-time-first-order-with-dotfiles-except-dot-and-dotdot-with-long-format なのか、誰か決めてくれ。
93 : >>92 初心者にやさしくって前提からすると、全部用意しておいた方がいいな。
94 : >>87 漏れ:「さくらタンのエロ画像キボンヌ」 AI: 「どうぞ ttp://.....」 (・∀・)イイ !
95 : cpをcopyにするのは絶対イヤ。 tar [option]は方向間違えると洒落にならんのでaliasでsave/loadにしてる。 findは糞かも。
96 : 漏れ:「さくらタンのエロ画像キボンヌ」 AI: 「名スレの予感、と」
97 : 漏れ:「さくらタンのエロ画像キボンヌ」 AI: 「2!」
98 : 漏れ:「さくらタンのエロ画像キボンヌ」 AI: 「駄スレたてんなゴルァ!!」
99 : 話は全く変わるんだけど、UNIXコマンドで実行中のアプリのメモリ使用量を 見たいんだけど、何のコマンドで見れるか誰か教えて。
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
・ 次のスレ
58: ■OpenBSD(VMS)の考察及炉理画像を貼り付けるスレ (117)
59: UNIX板のバナーつくってあげよう! (426)
3: *BSDニュース@2ch その5 (456)
4: ここだけ20年時代が遅れているスレ (611)