約 1,454,685 件
https://w.atwiki.jp/mekagazira/pages/18.html
参考ページ UNIXコマンドとか
https://w.atwiki.jp/naobe/pages/70.html
Unix/Linuxに戻る ロック スピンロック http //www.multisoft-lab.com/os/processes.html 参照 資源が使用可能になるまでループして待つ。 【概略図】 lock(){ while(m) //永久ループ ; m=TRUE; } unlock(){ m=FALSE; } ファイルの権限 ls -lを実行すると以下のように表示する。 -rwxr-xr-x 1 root root 1249 1月 7 2007 xmkmf -rwsr-xr-x 1 root root 22984 1月 7 2007 passwd -rwxr-xr-x 1 root root 603696 1月 7 2007 cdrdao -rwxr-xr-x 1 root root 19668 1月 7 2007 cue2toc -rwsr-xr-xを説明する。最初の-はファイルの種類を表す(d ディレクトリ、s ソケット、p パイプ、l ロック)。3文字で区切った部分が、ユーザ、グループ、他者の権限を表す。rwsはユーザが読み、書き、実行、SetUIDの権限を持っていることを表す。次のr-xはグループが読み、実行の権限を持つことを表す。r-sなら実行権限とSetGID権限を持つ。最後のr-xは他者が読み、実行の権限を持つことを表す。 Sが表示されると、実行権がなくて、SetUID or SetGIDがセットされていることを表す(不正な状況)。 8進で表示すると各ビットは、SetUID,SetGID,ステッキービット,ユーザ読み,ユーザ書き,ユーザ実行,・・・となる。 プロセスの配置 a.out ヒープ領域はアドレスの大きい方向に成長する。スタックはアドレスの小さい方向に成長する。bssは初期値のない大域変数が割り当てられるセグメント。最初にロードしたときに0クリアされる。 ELF スタックセグメントはコードセグメントの前にあってアドレスの小さい方向に成長する。ヒープセグメントはa.outと同様。 UNIXオブジェクトファイル形式 UTC(Coordinate Universal Time) http //e-words.jp/w/UTC.html 参照 協定世界時間。全世界で時刻を記録する際に使われる公式な時刻。GMTとほぼ同じ。GMTは天体観測をもとに決定するが、UTCはSI単位系の1秒を原子時計で計測して決定している。GMTにおける1958年1月1日0時0分0秒からの経過時間を原子時計でカウントして定めた時刻である「国際原子時」に、GMTとのずれを調整するための「閏秒」を追加したものがUTCである。 海の潮汐運動がブレーキとなり、地球の自転周期は年々長くなっているため、放っておけばGMTとUTCは100年で約18秒ずれてしまう。このずれを1秒以下に抑えるため、ずれが0.8秒を超えるとUTCに閏秒を追加して、GMTとの差を詰める。 メタ文字 以下の文字はメタ文字として扱われ、表示したい場合はバックスラッシュを使う。 " $ @ ( ) ^ | [ ] { } ; * ? ` \ スペース 改行,タブといったエスケープ・シーケンス 端末エスケープシーケンス http //archive.linux.or.jp/JF/JFdocs/Bash-Prompt-HOWTO-5.html 参照 http //www14.ocn.ne.jp/~bkclass/doc_vt100.html 端末にエスケープシーケンスを出力すると、色、カーソル位置を変更できる エスケープシーケンスは0x1Bで始まる。 エスケープシーケンス 色 ESC[0;30m 黒 ESC[0;31m 赤 ESC[0;32m 緑 ESC[0;33m 茶 ESC[0;34m 青 ESC[0;35m Purple ESC[0;36m 水色 ESC[0;37m 薄灰色(light grey) 上記でESCは0x1B(10進の27) CentOSのinitシェルの中に以下の記述がある SETCOLOR_SUCCESS="echo -en \\033[0;32m" 033は8進(10進では27)。 ロケール 言語、国、文字コードで表される。メッセージ、日付、数値、ソート順等を、国、言語ごとに異なる書式で表示するために設定する。全てを同じロケールに設定するには、LC_ALLまたはLANGのみ設定しておけばよい。ロケールの設定一覧を見るには、localeコマンドを引数なしで実行する。 http //www.itmedia.co.jp/enterprise/articles/0605/16/news027.html 参照 ロケール名 language(_territory)(.encoding)(@modifier) 【例】 ja_JP.UTF-8 言語:ja, 地域 JP, エンコード:UTF-8 umask ファイルパーミッションを禁じるビットを設定する。666に対して、umaskを引いた値が、ファイルのパーミッションになる。 引くといってもビット(0,2,4)を0にするということ。 パーティション分割 最低限以下のパーティションに分割すべき。/と/usrは変化しない。/varと/homeは日々変化する。バックアップの観点から、日々変化するところのみバックアップしておけば良いということか。 / /var /home 権限 プロセスがファイルを読み/書き/実行するときに、プロセスの実効ユーザID、実効グループIDとファイルに割り当てられた権限から許可されるか判定し読み/書き/実行する。以下の順番で判定する。 プロセスの実効ユーザIDとファイルのユーザ権限を比較 プロセスの実効グループIDとファイルのグループ権限を比較 ファイルのその他権限を適用 ディレクトリの扱い UNIXではディレクトリは特殊なファイルとして取り扱われ、ファイルの作成や削除は、そのファイルが存在するディレクトリの内容を変更することを意味する。 ディレクトリパーミッション ディレクトリ r ディレクトリの内容を一覧できる w ディレクトリ内にファイルを追加/削除/リネームできる x ディレクトリ内のファイルを操作できる。サブディレクトリを作成できる。 操作 ディレクトリパーミッション ディレクトリに含まれるファイルの一覧を表示する r-x ディレクトリにファイルを新規作成する -wx ディレクトリからファイルを削除する -wx ディレクトリに含まれるファイルを読み出す --x ディレクトリに含まれるファイルを上書きする --x ディレクトリに含まれるファイルをリネームする -wx ディレクトリにサブディレクトリを作成する -wx ディレクトリからサブディレクトリを削除する -wx プロセス プロセスグループ jobコントロールなどを行う為に、パイプライン等で繋げられた複数のプロセスをグループ化したもの。 spawn Solarisではq、fork()-exec()によるプロセスの生成をspawnと言う。 ジョブ http //www.q-eng.imat.eng.osaka-cu.ac.jp/~ippei/unix-tips/jobs-process.html 参照 「ジョブ」というのはシェルが管理する仕事の単位。 シェルは自分が起動したコマンド一つ一つを「ジョブ」という単位として扱い、そしてジョブの状態を常に把握、管理する。仕事の実体は一つだけど、「ジョブはシェルによって」「プロセスは OS によって」と管理される主体が違う。 UNIXの起動とプロセス vi 制御文字入力 たとえば、Ctrl+D なら、EOT(0x04) が入力される。Dは0x44で、Ctrlキーは0x40減算する。 ttyが高機能になってASCII制御文字だけでは足りなくなると、エスケープシーケンスが使われるようになる。エスケープシーケンス は、ESC(0x1b)に続けて複数のコードを送り、それでひとつのコマンドとする。 vimで制御文字をファイルに入力するには Ctrl+V に続けて、制御文字を入力する。たとえば、ESC(0x1b)を入力するには、Ctrl+V Ctrl+[ 拡張子 拡張子 説明 備考 la 動的リンクライブラリ a 静的リンクライブラリ so 動的リンクライブラリ MANページの設定 /etc/man.config ハッシュの作成 openssl dgst [-md5|-sha1] ファイル名 シェルを使わせたくないユーザに割り当てるシェル /bin/false 常に終了コードに1を返す smartd ハードディスクの状況を調べるデーモン ATAではサポートされていない機種が多いため、起動スクリプトを無効にしておく。 ハードディスクが、smartdをサポートするかどうかは、#smartctl -i /dev/hdaを使う シグナル 以下のコマンドでプロセスに対してシグナル(割り込み)を伝える kill -s シグナル名|シグナル番号 プロセスID1 [プロセスID2 ...] シグナル番号 シグナル名 説明 デフォルトアクション 発生方法 1 SIGHUP 制御端末(controlling terminal)のハングアップ検出、または制御しているプロセスの死 プロセスを停止 2 SIGINT キーボードからの割り込み プロセスを停止 ctrl + C 3 SIGQUIT キーボードによる中止 コアを吐いて停止する ctrl + \ 5 SIGTRAP 6 SIGABRT abort(3) からの中断 (Abort) シグナル コアを吐いて停止する 8 SIGFPE 0による除算 コアを吐いて停止する 9 SIGKILL 無視したり捕捉することができない。 プロセスを停止 10 SIGUSR1 ユーザ定義シグナル1 11 SIGSEGV 権限のないメモリアクセス コアを吐いて停止する 12 SIGUSR2 ユーザ定義シグナル2 13 SIGPIPE Broken pipe. 閉じられたパイプやソケットに書き込むと発生。 プロセスを停止 14 SIGALARM alarm(2) からのタイマーシグナル。ジョブコントロール プロセスを停止 15 SIGTERM 終了 (termination) シグナル プロセスを停止 18 SIGCONT 保留されたプロセスを再開 19 SIGSTOP プロセスの一旦停止。無視したり捕捉することができない。 プロセスを保留 20 SIGTSTP 端末 (tty) より入力された一旦停止 (stop) プロセスを保留 ctrl + Z CDROMのマウント その他 デフォルトのファイル許可モード 666 umask 002 端末を終了しても継続してコマンドを実行する nohup command 優先度を下げてコマンドを実行する(優先度を10下げる) nice command 環境変数の一覧を表示する export 環境変数とは 子プロセスに伝搬する変数。シェル変数は当該のシェルのみ使える(子プロセスは使えない)。環境変数は親子関係のないプロセス間で共用できない。 Ctrl-D ログオフ
https://w.atwiki.jp/dixa/pages/36.html
図解雑学 UNIX 図解雑学 UNIX 著:西川猛史 Now reading..
https://w.atwiki.jp/wiki12_cm/pages/5.html
[UNIX CUI TIPS] [文字列操作] [その他]
https://w.atwiki.jp/naobe/pages/148.html
ソフトウェアにもどる UNIX,Linuxについてまとめる。 Linux Kernel 初期化シェル UNIX通信 UNIX共通 DHCPインストール フォント CVS Makefile Automake/Autoconf Posixシステムコール pthread Linuxコマンド Linuxもろもろ Linuxセキュリティ bash ksh awk vi syslog cron sed ssh sudo
https://w.atwiki.jp/hakuryu7orange/pages/44.html
その他のコマンド関連はコチラ 環境変数TMPDIRの話 色んな作業をすると,その過程で一時ファイルに保存を行うことがある. この一時ファイルが正しく保存されないと,悲しいことが起こったり, 処理結果を用いて作業を行う際に,思ったように動作しなかったりする. このような場合には,一時ファイルのディレクトリを指定すればいい. 具体的には,bash_profileやprofileやbashrcなどに記述すればいいわけだが, これらは開発環境によってファイルが変わる. echo $SHELL とすると,開発環境のシェルの種類が判明する. ちなみに,/bin/shとか/bin/bashとか色々あります. 話はそれたが,環境変数TMPDIRを宣言すればよく, export TMPDIR=/hogehoge で設定できる. 蛇足だが,windowsの場合は,環境変数でTMPをいじればいい. これらの設定を宣言しない場合は,普通はデフォルトが使用され,/tmpや/var/tmpなどがあてはまる. 普通は,何も問題ないので,この辺の設定は触らなくていいはずである. emacsの文字コードの話 catでもlessでも見れない場合 catでは見れるが,lessでは見れない場合 catでもlessでも見れるが,emacsで見れない場合 といった,大きく三つの場合に分けて考えてみる. 事象1 windows側からsshで繋いでいたりする場合,その使用端末(cygwin/MinGW/Teraterm/etc...)と,テキストの文字コードと違う場合,化ける. ちなみにテキストの文字コードは nkf --guess hoge.text で見られる. 文字コードを変える場合もnkfで, nkf -w hoge.text hogehoge.text -s sjis -e euc -w utf8 noyounishite おようにして,オプションをつけて変更する. 事象2 これは,計算機の文字コードとテキストやが違う可能性がある. export でLANGの部分を見てみて, ここのLANGの文字コードが違う場合,LANGの文字コードを変更してみる. 宣言は, export LANG="ja_JP.utf8" とかである.他に, ja_JP.eucJP ja_JP.SJIS ja_JP.utf8 などがある. 事象3 catでもlessでも見れるのに,emacsで開くと,別の文字でエンコードされてしまうために,上手く開けない場合がある.この場合はemacsの文字コードが違う. ファイルの先頭に, /* -*- coding utf-8 -*- */ をつけてもいいが,ひとまず,設定ファイル“.emacs”をひらいてみて,設定を確認してみる. (set-language-environment "Japanese") (prefer-coding-system utf-8-unix) (setq default-buffer-file-coding-system utf-8) (set-buffer-file-coding-system utf-8) (set-terminal-coding-system utf-8) (set-keyboard-coding-system utf-8) (set-clipboard-coding-system utf-8) のようにする. 以上UTF-8の場合を例にとって説明してみた. emacsのショートカットのメモ なんとなく,emacsのショートカットキーをメモしておく. ・C-aで行頭に移動してコピー ・C-kで1行切り取り ・C-yで1行貼り付け jobs バックグラウンドプロセスの終了は,まず jobs -pl でジョブを確認すると, [1]+ 27765 Stopped のような出力が得られるはずである. そこで,killシグナルをオプションでつけて, kill -9 ○○○○ と入力すると強制終了できる. またジョブ番号を指定して, kill %1 とすることもできる. %をつけないとプロセスIDでの強制終了になるので,予想外な結果になったりする. ネットワーク関連の話 IPアドレスとかを調べるコマンドをメモしておく. まず,hostに対するIPアドレスを調べる方法は, host www.google.com www.google.com is an alias for www.l.google.com. www.l.google.com has address 74.125.235.146 www.l.google.com has address 74.125.235.147 www.l.google.com has address 74.125.235.148 www.l.google.com has address 74.125.235.144 www.l.google.com has address 74.125.235.145 のような感じで分かる. 次に,こうして得たIPアドレスを打ち込んで,そのネットワークの通信状況を調べるのがpingコマンドである. $ ping 74.125.235.146 PING 74.125.235.146 (74.125.235.146) 56(84) bytes of data. 64 bytes from 74.125.235.146 icmp_req=1 ttl=53 time=12.8 ms 64 bytes from 74.125.235.146 icmp_req=2 ttl=53 time=12.5 ms --- 74.125.235.146 ping statistics --- 40 packets transmitted, 40 received, 0% packet loss, time 39068ms みたいな感じである.pingを打って返事が返ってこなければ,ホストが正常に動いていないなどの理由が考えられる. では,このgoogleのサイトにはどのようなネットワークを通して接続しているのか. それを調べるのが,traceroutである. $ tracert 74.125.235.146 nrt19s11-in-f18.1e100.net [74.125.235.146] へのルートをトレースしています 経由するホップ数は最大 30 です 1 1 ms 1 ms 14 ms 192.168.2.1 2 27 ms 7 ms 7 ms 133.205.100.194 3 175 ms * 7 ms 133.205.100.222 4 12 ms 12 ms 12 ms 133.205.93.44 5 490 ms 12 ms 11 ms 122.133.0.86 6 37 ms 14 ms 15 ms 122.130.0.78 7 22 ms 12 ms 12 ms 122.130.0.117 8 14 ms 12 ms 12 ms 122.130.0.225 9 14 ms 12 ms 11 ms 122.134.0.73 10 15 ms 12 ms 12 ms 210.147.255.146 11 13 ms 12 ms 12 ms 72.14.239.48 12 39 ms 12 ms 12 ms 209.85.241.129 13 22 ms 12 ms 12 ms nrt19s11-in-f18.1e100.net [74.125.235.146] トレースを完了しました。 自分のIPアドレスは何だろう.と思うこともたびたびある.そんなときは,ifconfigコマンドである. ifconfig とうつとぞろぞろと情報がでてくる. ちなみにwindowsの場合はipconfig である.
https://w.atwiki.jp/divadiva/pages/22.html
ここはUNIX一般な備忘録ページです。Solaris関連の話題は、ココで。 viの設定 ~/.vimrc に書ける設定。 タブを4文字にする set tabstop=4 文字の色の設定。 たとえばtermを黒背景-緑文字などにしていると、viでコメントのダークブルーが見えにくくて仕方ありません。そこで色を変更します。 hi Comment ctermfg=lightblue ちなみに下記コマンドで色見本が見れます。 so $VIMRUNTIME/syntax/colortest.vim また現在の設定は下記コマンドで見れます。 so $VIMRUNTIME/syntax/hitest.vim UNIXコマンド findとgrepのコラボ find . -name * -exec grep NANKA {} \; -print あるユーザが所属しているグループを表示 groups USER-NAME sudoの例 USER-AのコマンドラインからUSER-Bの権限でps -efコマンドを実行する場合。 USER-A $ sudo -u USER-B ps -ef /var/log/secureには下記のようなログが出力されている。 Feb 2 10 22 52 HOSTNAME sudo USER-A TTY=pts/3 ; PWD=/home/USER-A ; USER=USER-B ; COMMAND=/bin/ps -ef また、上記動作を許可するためのsudo設定ファイル(visudoコマンドでエディタ起動します)はたとえば下記のようになります。 Cmnd_Alias TESTCMD = /bin/ps USER-A ALL = (USER-B) TESTCMD コマンドラインでEthereal コマンドライン版Etherealであるtetherealを使いこなそう! tethereal -i INTERFACE -w OUTPUT_FILE tethereal -R sip -r OUTPUT_FILE 上がキャプチャ用。下が解析用。 ポート番号が使用されているか調べる まずは調べたいポートが本当に誰かに使用されているかを調べます。 netstat -tanp | grep 調べたいポート番号 これで何か結果が表示されれば、やはり使用済みであることになります。 たとえばポート3000がNetBeansから起動したWEBrick(Ruby on Railsサーバ)に使用されていると、下記のような感じで表示されます。 # netstat -tanp | grep 3000 tcp 0 0 3000 * LISTEN 6113/ruby 次に、このポートを使っているのが誰かを調べます。上記の例だと、「6113」がプロセス番号になりますので、 # ps -aef | grep 6113 などで、起動コマンドを確認すれば、いったい何なのか、情報が得られることでしょう。 ファイルを一括で文字コード変換 下記は全てのファイルをUTF-8に変換する例です。上書きです。 $ find -name *.cc | xargs nkf --overwrite -w RedHatコマンド xhost ローカルのユーザにのみXサーバの利用を許可する。 $ xhost +local user non-network local connections being added to access to access controllist rpm rpm -ql PACKAGE-NAME パッケージに含まれるファイルをリストします。 rpm -q --scripts PACKAGE-NAME インストール時に実行されるスクリプトを表示します。 ftp etc. # chkconfig --level 2345 vsftpd on # chkconfig --list vsftpd vsftpd 0 off 1 off 2 on 3 on 4 on 5 on 6 off # /etc/rc.d/init.d/vsftpd start Starting vsftpd for vsftpd [ OK ] telnet xinetd, in.telnetd or telnet-serverをインストール。 /etc/xinetd.d/telnetを編集し、 disable = yes を disable = no にする。最後に、 /etc/rc.d/init.d/xinetd restart
https://w.atwiki.jp/selflearn/pages/6.html
開始日 2006/12/31 終了日 2006/12/31 まとめ 乱暴に言ってしまうと、8-9ページにある9箇条のUNIX哲学(下記参照)について、その詳しい意味を軽妙な語り口で伝えているだけの本。 でも、先人の考え方を学べるから読む価値のある本。読んだ価値は十分にあったかな。 スモール・イズ・ビューティフル (Small is beautiful) 一つのプログラムには一つのことをうまくやらせる (Make each programu do one thing well) できるだけ早く試作する (Build a prototype as soon as possible) 効率より移植性を優先する (Choose portability over efficiency) 数値データはASCIIフラットファイルに保存する (Store numerical data in flat ASCII files) ソフトウェアを梃子(てこ)として使う (Use software leverage to your advance) シェルスクリプトによって梃子の効果と移植性を高める (Use shell scripts to increase leverage and portability) 過度の対話的インタフェースを避ける (Avoid captive user interfaces) すべてのプログラムをフィルタとして設計する (Make every program a filter) 感想 UNIXが当初からどのようなイメージの元に作成されているか、そしてUNIX的なプログラムとはどうあるべきかを学ぶことができる、他に無い良書でした。 実際、プログラム言語の書法などについては過去から何百冊も出版されていますが、UNIX上で作るとしたらどうあるべきかについて触れられているのはあまり見たことがありません。 この本で言う「UNIX的」という言葉を僕なりに解釈すると 大きなツールを都度用意するのではなく、小さなツールを組み合わせて目的を達成する 移植性があること 他者の優れたプログラムを最大限活用・応用して目的を達成する だと思います。 新しいことを発明した人が優れているのと同様、先人の資産に味付けをすることでより優れた資産を作り上げる人をも賞賛する文化です。 そしてこれらの哲学を実践することで、 どのような状態にも柔軟に対応できるシステムができる 長生きするプログラム・システム(UNIX自身を含む)ができる コンピュータを可能な限り働かせられる(人間の思考中などによるボトルネックの解消) というメリットを享受できる、というように受け取りました。 この考え方の一部は、UNIX上でプログラミングをするしないに関わらず有効であると思います。たとえばスモール・イズ・ビューティフルでは、オブジェクト指向でも構造化設計でも避けるべき「何でも屋オブジェクト/モジュール」を敵と見なしています。また、「できるだけ早く試作する」という点では、現在のLightWeight Language開発で盛んに言われているラピッドプログラミング・ダックタイピングの考え方に似ています。 原著は1995年と古く、またページ数わずか148ページの読み物ですが、一度は読んでおくべき本ですね。先人の残した結果ではなく「考えていたこと・考えてほしいこと」を学べますので。 ちなみにもっと詳しいレビューはhttp //www.linux.or.jpの中でも 紹介されていますので、そちらも見たほうが良いと思います。 僕は上のサイトを知らず本屋でたまたま目にして衝動買いしたのですが、買ってよかった。 ただ、組込みLinuxという視点を持ったときには、本書で掲げられている全哲学の徹底は難しいなと感じます。組込みLinuxではメモリ量が少ないために、プロセスを沢山起動することが許されません(プロセス起動のたびにスタックサイズががっぽり取られてしまうため)。スピードのためには移植性を犠牲にする必要があったりしますので、これも哲学に反します。 なので例えばプログラムではなく内部のモジュール・タスクに哲学を適用するというように、柔軟に見る必要がありますね。
https://w.atwiki.jp/sfrontier/pages/56.html
Books 作成日 2007/11/01 H.Naito 更新日 2007/11/01 H.Naito CommandBook Shell CommandBook No 名前 版数 出版年月日 著者 出版社 値段 (+tax) 保持者 貸出先 作成日 更新日 購入 ブックレビュー 001 Unixコマンドブック 初版 2005/08/27 小野斉大、田谷文彦、前田雄一郎 SoftBank Publishing 2200 内藤 NULL 2007/09/18 2007/08/18 amazon NULL 002 Unixコマンド ポケットリファレンス 初版 2003/06/01 中西隆 技術評論者 1680 内藤 NULL 2007/09/18 2007/08/18 NULL NULL Shell No 名前 版数 出版年月日 著者 出版社 値段 (+tax) 保持者 貸出先 作成日 更新日 購入 ブックレビュー
https://w.atwiki.jp/oxon/pages/50.html
UNIXソフトウェア CERNLIB defaults Emacs ImageMagick? Python ROOT SAOImage DS9 tar X11 Last Updated 2008-12-22