LINUX講習 ?がつくのは記述に自身がないもの、分からないもの。 -* はオプション、パラメータのことです。 viやEmacsに関する資料 LINUX Total Guide Prodect http://www.mirai.ne.jp/~mituzi/ltgp/index.html rpmの拡張子 rpmfinder.comにてopensourseを手に入れられる。 簡単インストール etc/inittab 設定情報のあるディレクトリ ls etc システム設定ファイルは直接書き換えない。 cat filename ファイルの中をみる ctrl + alt + f1 コマンドログイン→マルチユーザー f1からf6まで。f7で元の画面にもどる。 設定ファイルでいうtty1からtty6まで ctrl + alt + del soutdown -h -r now +10(halt reboot nowsoon 10minite) kon  日本語入力ON←インストールの必要性あり ctrl + s 処理の中止 ctrl + z 一時中断 ctrl + k カーソルより右を削除 startx xwindowが起動(コマンドからGUIへ) kterm (xterm) 端末起動(GUI) tgz (tar +gz) bz2も圧縮ファイル conf config cfg 設定ファイル ps ポストスクリプト sh シェルスクリプト ls -a  すべてを見る的 ls -l 属性も見れる ls-la とまとめてできる 環境変数 environment variables シェル変数も含むことがある echo $LANG で実行すると ja.JP.eucJP echo $SHELL /bin/tcsh sh シェルの種類 sh bourne shell (Bshell) →default csh  c shell ksh b系 bash  b系 tcsh cの発達系 zsh ? exec tcshで一時シェル変更 chshでずっとシェル変更 history 過去に打ったコマンドの履歴をすべて表示。~/.bath_historyに保存 history !14  ヒストリー番号を実行するには!を使用 ↑↓ 過去のコマンドをひとつずつ出す。 tab 補完機能。 など押すと便利 touch test  ファイルを作る test[1]   1を含むファイル test[12] 1か2を test[a-s] aからsを *と?も使える ls >> listfile lsの内容をファイルに追加書き込み。 cat listfile で中をのぞく ls > list file lsの内容をファイルに書き換える。 2>はエラー (bashのみ) >&はエラー (tcshのみ) find / -name "*.doc" -print 探す ルート ファイルを *.docの ディスプレイに出力 短縮コマンド alias la="ls -a" 設定 unalias la 解除 ls | more ls .b* > blist .bのファイル名をblistに書き込む ls -l `cat blist`  blistを(引数をls -lに渡す) grep 検索語 `cat blist` 複数ファイルの中からある1行を探す。 例 grep alias `cat blist` & andで実行 xterm & とすると、別窓を開くbackgroundプロセス ; 順番に実行 ls ; ls -a ( ) 独立した処理をする exec tcsh シェルを変更 alias lm "ls -a" tcshでは=が省略 alias ld "ls バックスラッシュ!* | more" ld /usr など他のディレクトリも参照できる。 lsbin というファイルをVIで作成 内容 #! /bin/bash この行はコメント文 ls -CF /bin /usr/bin | more chmod +x lsbin パーミッションにxを付加 ./lsbin で実行できるようになる が./を入れるのが面倒 export PATH=/home/mynamedhirekutori:$PATH でPATHに自分のディレクトリを追加するとlsbinで実行可能になる。(bash) tcshなら seteno PATH /home~~~となる。 vi argtest  argtestというファイルを作成(viついては下の方にも説明があります。) 内容  #! /bin/bash #!はコメント文 echo 1:$1 2:$2 all:$* echoは表示 パーミッション変更後(実行可能形式)シェルスクリプト実行  argtest 1 2 3 ここで引数を指定 結果 1:1 2:2 all 1 2 3 $1は引数1  file /bin/* | grep "shell script" /bin/の中のファイルの情報を出す+grepで検索する。 pwd カレントディレクトリを表示(現在の参照場所) ls -F classify分類表示。ディレクトリ /、EXEC *、symbolic link @が付加 ls -R 下の階層も表示 ls -r 逆順表示 mkdir name ディレクトリ作成 rmdir ディレクトリ削除 mkdir -p dir1/dir2/dir3 n階層を一気に作る set prompt="[%~] %" プロンプト変更(tcsh) set prompt="[%erhhdj] dgreherh%"などとやってみる cp option コピー元 コピー先 オプション -i 上書きしそうなとき確認メッセージを出す。 -R(r) 下の階層も全部コピー -p パーミッションでタイムスタンプを変えずにコピー rm ファイルの削除 -i 確認メッセージ -R(r) 下の階層も消す mv 移動元 移動先 複数ディレクトリも移動可能 -i 確認メッセージ cat ファイルの中を見る -n 行番号を付加する。 -b 空いている行に行番号を付加しない。 less filename ファイルの中を見れる。lessを使うとちょっと便利ね。→スクロールできる find directry condition action 条件と処理 find -name test* カレントディレクトリの下の階層のtest*を検索 find /usr/bin /bin -name "*.tmp" -exec rm{ } /usr/bin と /bin にあるtmpファイルを削除 grep option string file1 file2,,, 処理を終了 ctrl+d gzip gunzip 圧縮解凍 conpress uncompress bzip2 bunzip2 これらも同様だが、一番多く使われているのはgzip tar これもアーカイブ解凍によく使う tar -cvf filename アーカイブ作成のoption 圧縮 tar -tvf 〃 アーカイブ内容の表示 tar -xvf 〃 アーカイブからの展開 tar -cvfz arch.tgz Dir 一気にアーカイブ圧縮 tar -xvfz arch.tgz 一気に展開 man command 終了はq 以下はtcsh set prompt="%n@%m:%/-%# " 実行すると・・・先生の場合 nenchev@selena:/home/nenchev# alias cls clear alias dir 'ls -lga \!* | more' alias tdir 'ls -algt \!* | more' alias find2 'find . -name \!* -print' alias stoe 'mv \!* \!*.SJIS; nkf -e \!*.SJIS | fromdos > \!*' alias etos "nkf -s \!* > \!*.SJI_; perl -p -e 's/\n/\r\n/g' \!*.SJI_ > \!*.SJIS; rm \!*.SJI_" vi hjkl  カーソル移動 d 一行削除 x 一文字削除 G1 一行目にジャンプG2で2行目 /** **を検索 y コピーyank p ペーストpaste :w 上書き保存 :q (:q !) viを終了 emacs IDE統合(融合)開発環境 Integrated Environment C-x C-c 終了させる C-k 一行削除 C-y コピー M-c M-u C-x f C-d 一文字削除 C-s インクリメントサーチ一文字ずつどんどん検索していく C-g 分からなくなったときに使う システムのバージョン=カーネルのバージョン、ディストリビューションのバージョン カーネルバージョン最新は2.5.〜〜  2.6が安定する予定 調べ方uname -r releaseのr -a もっと詳しく ls /lib/libc.so.* ライブラリのバージョン情報。プログラムをインストールするときに確認 cat --ver catコマンドのバージョン情報cat --versionも同じ cat --help コマンドのヘルプを表示 ディレクトリ構造 ルート/の元にはシステム起動関係 usrの元にはそれ以外のものが配置。標準ユーザーレベル localの元にはnon standerdなもの。自作コマンドなどを配置 cd ~koiwa  ホームディレクトリ(/home)のkoiwaに移動 収納状況 /usr/local と /home  は別のパーティションに収納できる。移動もできる。 /bin コマンド用のディレクトリ。shとか。 /sbin スーパーユーザ用のコマンドディレクトリ /lib コマンドのライブラリ /games ゲーム /src ソースコードの管理アプリのコード、C言語のコード /man /doc マニュアル関係 /etc システム設定のディレクトリ /var logファイルを入れる /var/log システムや各種ソフト /var/spool メールやニュース、印刷の時の1次ファイル /tmp メモリからあふれる情報の一時的ファイルなど /usr/x11(/usr/lib/x11) xウィンドウ用のパッケージ、フォント /dev すべてのデバイス、ネットワーク以外のデバイス /dev/hda IDEポート用 /dev/cdrom CD-ROM /dev/hda1 第一パーティション /dev/hdb セカンダリーaはプライマリ /dev/sda スカジー /mnt マウントポイント。CD-ROMとFDDをマウントしないとそれらを利用できない。HDDも同様。 /mnt/cdrom こうなっていると、CDを利用できる。 /proc システム状況やプロセスの情報が提供されるファイルシステム /lost+found パーティションごとに配置。コンピュータに問題が発生したときにファイルが作成される。 異常ファイルとか、異常終了とかに関係する。 df どのディレクトリにファイルがあるかチェック  df /etc /etcの在り処を見る df -h MやGでバイト数をだす。 du ディレクトリの領域をチェック。残りはどのくらいか考える du /home/koiwa 自分のバイト数をファイル一個ずつで見る du -a ? du -s filename 指定したファイルのみ du -b biteででる。普通はKbte mount -* divice mountpoint デバイスをマウントするコマンド mount dosはfat だが、linuxはext2 /dw/hda7 on / hda7にルートをマウントされている。 fdisk rootのみ使用可能 partitionを作ったりする partitionの例 1 :/ /bin /sbin /etc 2: /usr 3: /usr/local 4: /home whatis,apropos この2つはコマンドのキーワード検索 apropos sound 左にコマンド右に説明。soundが必ず含まれている。 さらにmanを使って、細かく調べる。 whatis du コマンド名を指定して調べる。一行だけ説明文がでる。ちょっと忘れたときとかに使う。 which command コマンドや関連ドキュメントの表示。コマンドがどのディレクトリにあるか調べる。 alias Path shell の順に表示 where command (bashでは不可tcshとzsh) すべてのファイルを表示。whichはディレクトリ。whereはディレクトリ内全部。 whereis -* command whereis grep 外部コマンド。whichとwhereは内部コマンド組み込みコマンド。外部コマンドはpathを通す必要あり? find,locate 検索関係 locate man.conf ディレクトリ&ファイルを検索findの前に使うといいかも man,jman jmanは日本語ででる。 man lilo コマンドOK jman lilo.conf ファイルOK! aproposの()の中の数字に関して 1:一般コマンド 2:システムコール 3:ライブラリ関数 4:ディバイス(/dv)とネットワーク関数 5:ファイルフォーマット 6:ゲーム 7:その他ファイルシステムやマクロ 8:システム管理関係コマンド man test > /dev/lp0 プリンターに出力(直接) man test | col -bfx > test.txt viを使ってチェックしてみて man test | nkf -s | cat -s > test2.txt shift-jisに変換(nkf -s) ハードのチェック dmesg ハードの組み込み状況が出る dmesg | grep eth MACaddress **:**:**:**:**:** ハードの個々に背番号 cat /proc/cupinfo CPUの情報 cat /proc/version バージョン cat /proc/dma ダイレクトメモリアクセス cat /proc/interrrpt わりこみ 以下はスーパーユーザのみ可能 less /var/log/message 起動のログ、ログインのログ last log 最後の起動の時間を表示 rpm | more パッケージ関係 rpm -qi grep -i lpr インストールするパッケージの紹介 runlevel less /etc/inittab 設定情報 ID:runlevel:entry:process 10:0:wait:/etc/rc.d/rc 0 initdefault 5   x11(Xウインドウ)が起動のときrun 5がx11を起動ということ /etc/fstab partition設定情報 後ろの2つの数字はそれぞれbaskup&Check ダンプdump?1が優先順位高い?? option(数字の前) defaultは自動マウント, roはReadOnly, fsck システムのチェックと修復。詳しくはmanを・・・ システムログの設定 etc/syslog.conf 優先?通知??facility priority kern.errカーネル(facility)エラー(priority) 左にfacility priority、右にそのディレクトリを表示 facility:  auth(ログイン認証システム), daemon(デーモン), lpr(プリンタ), mail, syslog, usr priority:  debug, info, notice, warning, error, crit(ハード装置のエラー), alert(緊急に対応), emerg(panic,イマジェンシー) daemonとcron ? crontab crond→daemon /etc/cron.hourly /etc/cron.daily /etc/cron.monthly /etc/cron.weekly タスク処理やりたいことをスクリプトにしておけばやってくれる 例えば、1週間に一回バックアップを取るなど。 *.conf *config 個人以外の設定ファイル 自分用のは.*(ドットファイル) source .bathrc .bathrcを変更したとき今すぐその設定を使えるようにするコマンド ~*/.bathrcで個人の設定(aliasなどができる) どのファイルになにを設定するか .bathrc シェル変数やエイリアス shell variables →ずっと働くものを書くようにする。 .bath_profile,.profile 端末設定やプログラムの起動。例えばxtermを起動時に出すとか。 →ログイン時に一回だけ動かすだけでいいプログラムなど。 練習〜起動時にemacsを起動させてみよう。 まず、自分のディレクトリの中の.bath_profileをviなどで開く。 次にどの行でもいいので、emacsを書く。 :wで保存、:qで終了。(vi のコマンド) source .bath_profile とすると、emacsが起動する。