-------------------------------------------------------------------------------- linuxコマンド集(UNIX、winもちょっとある) -------------------------------------------------------------------------------- 更新日:2003.07.15 -------------------------------------------------------------------------------- 基本コマンド ls -t 最新順にファイルを表示 ls -m 整形しないでファイル名のみ表示、コンマ区切り ls -R 指定ディレクトリ以下をすべて表示 ls -h k,M 表示 ls -d skel ディレクトリだけ表示 ls -lG グループを非表示 ls -lARF ファイル/ディレクトリ一覧表示 ls -ltr ls -l --full-time > /tmp/ls.lst cat /tmp/ls.lst | awk '{print $6 "\t" $7}' cp -pvR -p: 元のファイルのアクセス権をつけたまま -v: コピーする前にファイル名を表示 -R: ディレクトリを再起的にコピー cp -dpR /mnt/cdrom/ /tmp/ CD-ROMからHDへのコピーの例、/tmp/cdrom/ が出来上がる mv /tmp/cdrom/ /tmp/disk1 手順の例 cp -a /mnt/cdrom ./disk1 上記その2、上書きせずに追加する場合も使用 chown -R root.root * mkdir -p a/b/c -p が無いと一度にディレクトリ作成できない、エラーを表示 lv file1 less の多言語対応版 www.ff.iij4u.or.jo/~nrt/lv less file* p でファイルの一番先頭へ :n で次のファイルに読み込む :p で前のファイルを読み込む / 検索 ? 逆検索 n 次へ N 戻る more file1 v でviエディタ起動 tail -f file1 ファイルの最後を表示 touch file1 空のファイル作成(cp /dev/null file1 と同じ) touch -t 01010000 file1 ファイルの修正日時を今年の1月1日0時0分に設定 find /usr -name 'rm.lst' -exec grep 'home' {} \; /usr 以下のディレクトリからrm.lstというファイルを探し、 そのファイルの中でhomeと言う文字列が使われている行を出力 find / -name '*sl*' -print ファイル名、ディレクトリ名表示 find / -mtime 1 -print 1日前までに更新したファイル名 ps axf プロセスが起動している子プロセスを表示 ps -edf ps -uax -u:起動した時間を調べる ps axfw 親プロセスと子プロセスを表示 ps e 自ユーザで稼動中のプロセスの環境変数表示 uptime システムがブートしてからの経過時間、負荷など cat /proc/uptime time tar cvf /usr/local 作成時間が分かる locate log *log* のファイル・ディレクトリを出力 一日一回のクーロンによりファイルdbを作成 /var/lib/slocate/slocate.db /etc/cron.daily/slocate.cron /etc/cron.daily/slocate.cron 手動で、locate用DBを更新する場合 updatedbを直接指定すると、不必要なファイルシステム、 ディレクトリまで対象になる。 updatedb -f nfs,smbfs 対象外のファイルシステム updatedb -e /tmp,/var/tmp 対象外のディレクトリ grep -s エラーは表示しない grep -e OR grep -v 以外 grep -n 番号付表示 grep -n init_waitqueue_head *.[ch] 例1 grep -n -B 1 -A 1 '>size' *.[ch] 例2(前後一行表示) basename string [suffix] / で終わるすべてのプレフィックスと suffix を string から削除して出力 例) basename /root/tmp を実行すると tmp が出力される dd if=/dev/zero of=100m bs=1024 count=102400 100Mファイル作成 102400 -> 1024 1M date 0228225899.45 1999年2月28日 22時58分45秒 に設定する date 02282258 2月28日 22時58分 に設定する date --set "14:15:30" 14時15分30秒 に設定する hwclock --systohc ハードウェアクロックをシステムクロックに合わせる システム shutdown 時に実行 date +%y%m%d 書式に従って、時間を表示 date +'%Y/%m/%d %T' date +%r --date '5 min' 5分後の時刻を表示 ssh HOSTNAME -l USERNAME sshでログイン -------------------------------------------------------------------------------- コマンド応用 # cd /etc/sysconfig/network-scripts # awk -F= '/NETWORK/{print}' ifcfg-eth0 NETWORK=172.21.9.0 # awk -F= '/NETWORK/{print $2}' ifcfg-eth0 172.21.9.0 strip -g bin_program 作成したプログラムよりデバック情報を取り除く vmstat -n 1 メモリの使用量の推移を表示 -------------------------------------------------------------------------------- ユーザ追加関係 useradd -u 700 -g users -c "Test User" -s /bin/csh tuser ユーザIDが700、グループがusers、シェルがcsh、 ユーザ名がtuser というアカウント作成 useradd -d /users/ksato ksato ホームディレクトリが /users/ksato のユーザを作成 userdel tuser ユーザ削除 passwd tuser パスワードの変更 passwd -u -f UserName パスワード無しのユーザを作成 whoami ログイン名 表示 who am i ログイン名+端末デバイスなど 表示 -------------------------------------------------------------------------------- コード変換 nkf -sc file1 > file2 Linux -> DOS ファイル変換 s SJISコードに変換に c 改行コードをDOS形式に(NLの次にCRを追加) nkf -ed file1 > file2 DOS -> Linux ファイル変換 e EUCコードに変換に d 改行コードをLinux形式に(NLを削除) nkf -eLu tr -d '\r' < a > b aファイルより \rコードを取り除くき bファイルに出力 (改行コードをDOS形式からUNIX形式に) tr -d '\032' < a > b \032コード(0x1A)すなわち、Ctrl-Z(DOSのEOF)を削除。 bashスクリプト実行時、「: command not found 」が表示されなくなる。 「TeraPad」で \032コードは、斜線(黒升の時もある)文字として表示される。 「メモ帳」で \032コードは、黒升として表示される。 「秀丸」で ファイルの最後が必ずEOFと仮定している。 \032コードは、必ずつく。(ちょっと違うかも) tr -d '.' '.'を取り除く -------------------------------------------------------------------------------- 圧縮/解凍関係 拡張子 *.tar TAR *.tar.gz , *.tgz gzip *.tar.Z compress *.tar.bz2 bzip2 基本操作 tar -cvf aaa.tar file名 作成 tar -rvf aaa.tar file名 追加 tar -tvf aaa.tar 一覧表示 tar -xvf aaa.tar 解凍 応用操作 tar zcvf /tmp/a.tgz usr/local gzip圧縮を使用 tar ztvf a.tgz tar zxvf a.tgz z:gzip , Z:compress , y:bzip2 (圧縮方式の選択) tar jxvf a.tar.bz2 tar xvfk a.tar k:同じファイル名があると作成しない tar xvfz a.tgz -C /tmp /tmp以下に解凍 その他の圧縮 gzip -f file名 gz形式(*.gz)のファイル強制的に作成 gzip -d aaa.gz *.gz ファイルの解凍 bzip2 -d aaa.bz2 *.bz2 ファイルの解凍 zip a.zip file名 zip圧縮ファイル作成 DAT(hp SureStrage Tape 6000,linux)へアクセス tar cvf /dev/nst0 * DATへ tar xvf /dev/nst0 DATから tar tvf /dev/nst0 list表示 -------------------------------------------------------------------------------- sudo sudo -u ユーザ名 コマンド 指定したユーザの権限でコマンド実行 sudo -l sudoで実行できるコマンド一覧 visudo 設定ファイル編集コマンド、viではだめ /etc/sudoers 設定ファイル 設定例 user1 ALL=(ALL) NOPASSWD: ALL user2 ALL=NOPASSWD: /bin/cp * -------------------------------------------------------------------------------- アパッチ(apache) chkconfig httpd on service httpd restart /var/www/html トップページ /etc/httpd/conf/httpd.conf 設定ファイル httpd -l 組み込まれているモジュールを表示 [root@neko /root]# httpd -l Compiled-in modules: http_core.c mod_so.c suexec: disabled; invalid wrapper /usr/sbin/suexec -------------------------------------------------------------------------------- sendmail関係(RH7.3) smtpサーバのみの設定 cd /etc/mail/ vi sendmail.mc SMART_HOST を 適切なホスト名(smtp.aaa.co.jp)に m4 /etc/mail/sendmail.mc > /etc/sendmail.cf service sendmail restart メール送信その1 mail -s test username@aaa.co.jp test ^D Cc:^D メール送信その2 mail -s test username@aaa.co.jp < mail.txt 参照 http://homepage2.nifty.com/NORIBE/linux/linux_set_sendmail.html http://www.kkoba.com/linux/mail.shtml ポート番号 smtp 25/tcp mail smtp 25/udp mail pop3 110/tcp pop-3 pop3 110/udp pop-3 -------------------------------------------------------------------------------- tripwire関係(RH7.3) /etc/cron.daily/tripwire-check cronで検査(毎日4:02に実施) mailで以下の処理行うように指示 /etc/tripwire/twinstall.sh tripwire --init db作成 /var/lib/tripwire/usagi1.twd ができた。 -------------------------------------------------------------------------------- ftp(wu-ftpd) /etc/ftpaccess ftpの設定 realuser user1 / をトップディレクトリに service xinetd restart ftpの再起動、xinetdを介してftpdが起動される -------------------------------------------------------------------------------- ネットワーク service network restart ネットワークの再開 起動されるスクリプト /etc/rc.d/init.d/network は /etc/sysconfig/network-script/* の設定ファイルと シェルスクリプトを参照し実行(ifcfg-lo,ifcfg-eth0など) /etc/rc.d  ソフトの初期化 /etc/sysconfig/network-script/ifcfg-eth0 BOOTPROTO=dhcp /etc/resolv.conf DNSの設定 /etc/host.conf DNSの検索順を指定 ping -b -c 5 192.168.1.255 ping -b -c 5 192.168.1.0 ブロードキャストのpingを5回送る traceroute -w 20 hostname 経路を表示、応答があるまで20秒待つ、デフォルトは5秒 ifconfig eth0 192.168.1.23 /sbin/ifconfig eth0 192.168.1.23 netmask 255.255.255.0 broadcast 192.168.1.255 NICのIP情報を再設定する /sbin/ifconfig eth0 確認 /sbin/ifconfig eth0 down ifdown eth0 /sbin/ifconfig eth0 up ifup eth0 ifconfig eth0 mtu 1468 MTUの変更 ifconfig eth0:0 192.168.1.24 IPエイリアスの指定 ifconfig eth0 add 3ffe:501:ffff:100::87/64 IPv6のアドレスを振る。add->delで削除。 /usr/sbin/ifconfig -a (SUN)全てのインターフェースを表示 /usr/sbin/ifconfig lo0 loopback le0,le1,hme0 インターフェース /usr/sbin/arp HOST_NAME/IP_ADDRESS (SUN)指定ホスト、IPアドレスのMACアドレス表示 /usr/sbin/arp -a arpテーブルを表示 route -n ホスト名をIPアドレスで表示 route add -net default gw 192.168.1.254 netmask 0.0.0.0 eth0 ルーティング表にデフォルトのGWを追加 [root@inu /root]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 [root@inu /root]# netstat -a ポートの状況を調査 telnet URL 80 ポート80にアクセス nslookup DomainName IPアドレスを調査 /etc/resolv.conf 設定ファイル domain jp.xxx.com nameserver aaa.bbb.ccc.ddd nameserver bbb.aaa.aaa.ddd serch jp.xxx.com xxx.com $HOME/.nslookuprc ユーザ設定ファイル /sbin/pump -i eth0 --status DHCP,BOOTPの情報表示 tcpdump -i eth0 パケット情報表示 netconfig 疑似GUIで、ネットワーク設定 -------------------------------------------------------------------------------- ネットワーク(windows) arp -a arpテーブル表示 arp -d 172.31.167.67 arpテーブルより削除 C:\WINDOWS>arp -a Interface: 172.31.167.123 on Interface 2 Internet Address Physical Address Type 172.31.167.64 00-00-e2-14-31-81 dynamic 172.31.167.67 00-d0-b7-af-54-f2 dynamic -------------------------------------------------------------------------------- ネットワーク障害が発生 cat /proc/net/dev 衝突数などが分かる ide-smart /dev/hda -------------------------------------------------------------------------------- デーモン 名称 コマンド 説明 amd amd Auto Mount Daemon、ファイルシステムを自動的にマウント CD-ROMが自動的にマウント /etc/amd.conf apmd apmd Automatic Power Management Daemon arpwatch arpwatch arpにより、アドレスを監視 atd atd AT Daemon、atコマンドを使用するときに必要 autofs Automatic File System、/etc/auto.masterファイルに従って、 ブート時にファイルシステムをマウント crond crond Cron Daemon xinetd xinetd -------------------------------------------------------------------------------- chkconfig 再起動時及び今のデーモンの挙動を設定 chkconfig --list 起動時から上げるデーモンの一覧表示 chkconfig rsh on rshを許可する chkconfig telnet on telnetを許可する chkconfig wu-ftpd on ftpdを許可する chkconfig --level 3 smb on ランレベル3で、起動時からsambaを上げる ntsysv 類似コマンド、ランレベル 2,3,5 /etc/rc[0-6].d 関連ファイル /etc/xinetd.conf /etc/xinetd.d/rsh disable = no/yes chkconfigで変更 /telnet -------------------------------------------------------------------------------- サービス 再起動すれば、初期状態にもどる service smb stop smbプロセス(サンバ)を停止させる service httpd start WEBサーバ service snmpd restart snmpd リスタート service sendmail restart service network restart -------------------------------------------------------------------------------- 設定ファイル等 /etc/issue telnetログイン時のバーナ /etc/crontab 定時駆動プログラムの記述 /etc/motd ユーザログインのメッセージ表示 /etc/syslog.conf コンソールにinfoメッセージを出す等 #kern のコメントを外す setup 設定の変更:keyboard, mouse, X, サービス(FreeWnn,lpdなど) -------------------------------------------------------------------------------- ログ /var/log/cron cronの実行の結果 /var/log/usracct 実行コマンドの履歴を保存、消去すると貯まらなくなる。 再度機能させるには /sbin/accton usracct を実行。 実行コマンドの履歴を見る手順の例 cd /tmp ll /var/log/usracct* gunzip < /var/log/usracct.2.gz > /tmp/com_log lastcomm -f com_log | lv lastcomm の デフォルトのログは /var/log/pacct /var/log/messages ブートメッセージを表示 /var/log/dmesg 認識したハードウェア関係のメッセージログ /var/log/message 起動されたデーモンが出力するメッセージログ dmesg ハードウェアメッセージを表示 -------------------------------------------------------------------------------- kernel cat /proc/sys/fs/file-nr 555 94 8192 累積ファイル数、自由に使えるファイル数、最大ファイル数 累積ファイル数が最大ファイル数に達すると、OSが落ちる lsof 誰がファイルを使用中なのかを表示 echo 2048 > /proc/sys/fs/file-max 最大ファイル数を設定し直す /etc/sysctl.conf rc.sysinitが参照して設定 # Disables packet forwarding net.ipv4.ip_forward = 1 # Enables source route verification net.ipv4.conf.default.rp_filter = 1 # Disables the magic-sysrq key kernel.sysrq = 1 kernel.panic = 5 fs.file-max = 20480 sysctl -a カーネルの現在の変数表示 cat /proc/version 今動作中のカーネルのバージョン調査 Linux version 2.4.18-3c (root@usagi1) (gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110)) #2 Tue Apr 1 18:56:06 JST 2003 -------------------------------------------------------------------------------- kernel障害 ハングアップしたか確かめる -> 「crash」を表示 last ハングアップしたか確かめる(rebootされると、usracctがローテートする。) cd /var/log lastcomm -f usracct.1 > /tmp/usracct1.dmp -------------------------------------------------------------------------------- SysRq Alt + SysRq + p コンソールに現在のレジスタとフラグの内容を表示 Alt + SysRq + t コンソールに現在のタスクとその情報を表示 Alt + SysRq + m コンソールに現在のメモリ情報を表示 Alt + SysRq + k 現在の仮想コンソール上の全てのプログラムを止める Alt + SysRq + s マウントされている全てのファイルシステムに sync を試行 Alt + SysRq + e init を除く全てのプロセスに SIGTERM を送る Alt + SysRq + i init を除く全てのプロセスに SIGKILL を送る Alt + SysRq + l init を含め全てのプロセスに SIGKILL を送る Alt + SysRq + b sync も unmount もなく直ちにシステムをリブート -------------------------------------------------------------------------------- ブートディスクの作成 ・cat /etc/lilo.conf linuxのカーネルのバージョン調査 mkbootdisk --device /dev/fd0 2.0.36-0.7 作成 ・mkbootdsk ・dd if=/boot/vmlinuz-2.2.12-32 of=/dev/fd0 rdev /dev/fd0 /dev/hda1 -------------------------------------------------------------------------------- ブートローダの変更 lilo -> grub grub-install /dev/hda grub-install --force-lba /dev/hda2 ノートパソコン、winとlinux共用時 /etc/grub.conf -------------------------------------------------------------------------------- RPMファイルインストール関係 rpm -ivh RPMファイル名 RPMのインストール方法 (新規にインストールする場合、すなわち過去に一度もインストールしていない時) rpm -Uvh RPMファイル名 RPMのアップグレード方法 (既にインストールされているものの最新版をインストールする場合) 前の(古い)バージョンに戻すことはできない、バージョン管理をしているため 戻す場合には、rpm -eを実施してから、rpm -ivh rpm -qilp RPMファイル名 RPMの内容確認方法 rpm -qil RPM名 バージョン表示 rpm -U --replacepkgs --replacefiles *.rpm --last 日付表示 rpm --initdb rpmDB作成 rpm --rebuilddb rpmDB再構成 rpm -e RPM名 インストール済のRPMの削除 rpm -i --justdb RPM名 DBに追加 rpm -qa 全てのパッケージ表示 rpm -qa --last 最後にインストールしたパッケージ表示 rpm -qg group_name グループ(Applications/File)の全パッケージ表示 rpm -K --nogpg *.rpm rpmファイルが壊れていないかを確かめる(7.0以降) rpm -K --nopgp *rpm 同上 (7.0以前) rpm --checksig filename rpm --checksig --nogpg filename 改竄されてされていないか調査 rpm -qa | grep kernel | xarg rpm -e *kernel* に引っ掛かるパッケージを削除 rpm -ql パッケージ名 インストール済みパッケージのファイル一覧 rpm -qlp パッケージファイル名 未インストールパッケージのファイル一覧 /var/lib/rpm/* rpmのDB rpm -qa --last | head -5 rpm -qf /lib/ld-linux.so.2 指定されたファイルを所有するパッケージ表示 glibc-2.2.5-34 -------------------------------------------------------------------------------- rpmが壊れたときの対処 rpm --rebuilddb 上のコマンドでうまくいかないとき # cd /var/lib # cp -a rpm rpm.back # rm -rf /var/lib/rpm # rpm --initdb # cd /var/lib # cp -fr rpm.back/[^_]* rpm -------------------------------------------------------------------------------- RPMファイル作成関係 vi ___.spec スペックファイルを作成 rpm -bp ___.spec %prepセクションの実行 /var/tmp/rpm-tmp.* に一時実行用の sh rpm -bc ___.spec %prep 〜 %build を実行 rpm -bi ___.spec %prep 〜 %install を実行 rpm -bb ___.spec バイナリ パッケージ(*.i386.rpm)を作成 rpm -bs ___.spec ソース パッケージ(*.src.rpm)を作成 rpm -ba ___.spec バイナリ&ソース パッケージを作成 rpm -qlp _____.i386.rpm ファイルの中身を表示 rpm2cpio ___.src.rpm | cpio -t ファイルの中身を見る rpm2cpio ___.src.rpm | cpio -i *.spec spec ファイルの取りだし -------------------------------------------------------------------------------- redhat linux RPMパッケージのアップデート コマンドラインから rhn_register 自コンピュータの情報をRHNへ登録 パッケージ構成を変更、つまり追加したか、削除したかすると実行したほうが良い up2date -u --nosig アップデートする、認証は非保護 up2date --nosig up2date 正しいかどうか分からない GUI(X)から up2date をメニューから探す ftp://updates.redhat.com/7.0/eb/os rhnsd RedHat Networkにシステム登録後、使用可能デーモン -------------------------------------------------------------------------------- X関係 startx init 3でloginし、X-windowを立ち上げる switchdesk ディスクトップ環境変更、GNOME,KDEなどへ(rh7.3) xwd -out file1 画像をファイルに保存 xwd -in file1 保存したファイルを表示 xpr -device ps -rv file | lpr プリンターへ出力 -------------------------------------------------------------------------------- デーモン xdm クライアント(PC)のXwindowに使用(linuxでは違うかも) -------------------------------------------------------------------------------- ハードウェア関係 grep eth /var/log/messages NICが動作している速度を調べる iostat I/Oの集中の度合いを調べる top CPUの使用度合いを調べる free topの簡易版 lspci PCIデバイスの表示 cat /proc/pci cat /proc/isapnp ISAデバイスの表示 -------------------------------------------------------------------------------- フロッピーディスク mount /mnt/floppy umount /mnt/floppy mke2fs /dev/fd0 fdフォーマット mcopy /tmp/file1 a:/tmp ファイルをDOS形式のFDにコピー mdir a: mformat a: -------------------------------------------------------------------------------- USB mount /dev/sda1 /mnt/usb -t vfat USB接続のHDをマウント mount /dev/sda /mnt/floopy USB接続のFDをマウント umont /mnt/usb cat /proc/pci UHCI, OHCI の区別、irqも分かる usbview usbmgr cat /proc/scsi/scsi /proc/bus/usb/devices UHCI(Universal Host Controller Interface) Intel OHCI(Open Host Controller Interface) PC,iMac -------------------------------------------------------------------------------- ファイルシステム /etc/fstab マウントポイントの指定 LABEL e2label で設定 mount で LABEL との対応が分かる [root@hp-srv bin]# cat /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/sda3 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 [root@hp-srv bin]# mount /dev/sda2 on / type ext3 (rw) none on /proc type proc (rw) usbdevfs on /proc/bus/usb type usbdevfs (rw) /dev/sda1 on /boot type ext3 (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) none on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) df (512バイト・ファイルシステム単位) df -k (KBytes単位) df -h (M,GBytes単位) cat /proc/mounts e2label /dev/hda1 ラベル表示 e2label /dev/hda3 /usr ラベルを設定 tune2fs -L でも設定可 fdisk -l /dev/hda HDのパーティションの表示その1 fdisk /dev/hda p HDのパーティションの表示その2 mount -t ext2 /dev/hda1 /mnt1 ディスクのマウント mount -t vfat /dev/hsa2 /dos winのFSのマウント -------------------------------------------------------------------------------- ファイルシステムの追加 /etc/fstab 書き換える mount -a /etc/fstab の内容に従ってマウント -------------------------------------------------------------------------------- ディスク障害 tune2fs -l /dev/hda1 ファイルシステムのパラメータ表示 tune2fs -l /dev/hda1 | grep with 障害項目表示 -------------------------------------------------------------------------------- ハードディスク関係 hdparm -i /dev/hda hdparm /dev/hda ハードディスクの情報を見る hdparm -m16 -X66 /dev/hda multcountを16に設定(0〜16)、使用するセクター数 転送モードを66Mに設定(33Mの時は-X34) -------------------------------------------------------------------------------- HDの詳細 [root@usagi1 root]# fdisk /dev/hda The number of cylinders for this disk is set to 4983. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/hda: 255 heads, 63 sectors, 4983 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 29 128520 82 Linux swap /dev/hda3 30 4983 39793005 83 Linux Command (m for help): q [root@usagi1 root]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda3 37G 12G 24G 32% / /dev/hda1 99M 22M 72M 24% /boot none 62M 0 61M 0% /dev/shm [root@usagi1 root]# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda3 39167788 11850544 25327596 32% / /dev/hda1 101089 22106 73764 24% /boot none 63284 0 63284 0% /dev/shm [root@usagi1 root]# 以上の情報から 1 sector = 512[B] 1 tack = 512[B] * 63[sectors] = 32256 [B] = 32 [KB] 32256[B] * 255[heads] * 4983[cylinders] = 40986570240 = 40 [GB] -------------------------------------------------------------------------------- intel系CPU 並列演算 複数の2進整数や2進浮動小数点の値を一つの命令で、同時に演算 Pentium では SIDM(Single instruction Multiple Data)命令に相当 MMX 整数演算、8ビット整数なら8個、16ビット整数なら4個、32ビット整数なら2個 を一つの命令で同時に演算 SSE 浮動小数点演算、4バイト(32ビット)長の単精度浮動小数点を4個 一つの命令で同時に演算 SSE2 128ビットのパックされた倍精度浮動小数点演算、 128ビットのパックされた整数の演算 8086 16ビット命令 80286 プロテクトモードの命令 386 32ビット命令 MMX Pentium MMX命令 Pentium III SSE命令 Pentium 4 SSE2命令 -------------------------------------------------------------------------------- GCC gcc -v -save-temps -Wl,-t -o hello hello.c hello.c プリプロセス /usr/lib/gcc-lib/i386-redhat-linux/2.96/cpp0 hello.i コンパイル /usr/lib/gcc-lib/i386-redhat-linux/2.96/cc1 hello.s アセンブル /usr/bin/as hello.o リンク /usr/lib/gcc-lib/i386-redhat-linux/2.96/collect2 /usr/bin/ld hello -------------------------------------------------------------------------------- ライブラリ依存性調査(ldd) # cd /bin # ldd ls libtermcap.so.2 => /lib/libtermcap.so.2 (0x40031000) libc.so.6 => /lib/i686/libc.so.6 (0x42000000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) # objdump -x ls ldconfig ld.so /etc/ld.so.conf /etc/ld.so.cache /lib/ld-linux.so.* lib*.so.version -------------------------------------------------------------------------------- make関係 ./configure --help make --debug install -------------------------------------------------------------------------------- bash関係 rehash シェルに新しいコマンドを認識させる。 more file1 lv !$ 前の実行行の最後の文字列参照 echo $RANDOM 乱数表示 echo $((100/3)) 四則演算 コマンド名 > 保存ファイル名 2>&1 標準出力、エラー出力を同じファイル(保存ファイル名)に書き込む ~/.bash_profile コマンドの記述があると実行 cd /usr/local/bin もうひとつのホスト(host2)の同じ場所(ディレクトリ)にコピー rcp file1 host2:$PWD sh ./loop.sh シェルスクリプト起動 ^Z 上記プロセスを一時停止 bg 上記一時停止したプロセスをバックグランド処理に fg バックグランド処理をフォアグランド処理に fg %2 2番目のJOBをフォアグランド処理に stop %3 3番目のJOBを停止 jobs 動作しているJOBをみる echo $? 戻り値、正常に終わったかどうか判断 PATH=/bin:/usr/bin;export PATH export PATH=/bin:/usr/bin 環境変数の追加 /usr/bin/setterm -dump 1 -file /tmp/dump.out 画面を取り込む 1はtty1の意味 setterm -store setterm 環境変数の表示 ls -ls > list.txt ファイルに保存 ls -ls >> list.txt 追加 ls -ls &> list.txt 標準出力及び標準エラー出力を保存 ls -ls 1> stdout.log 2>stderr.log 別々に出力 ls -ls | tee list.txt 画面に表示しながら保存 ls -ls 2>&1 | tee list.txt script list.txt この後を全て保存 ls -ls exit 終了 bash --version RH 7.3 GNU bash, version 2.05a.0(1)-release (i686-pc-linux-gnu) Copyright 2001 Free Software Foundation, Inc. bash -version GNU bash, version 1.14.7(1) vine 2.1 ldd `which bash` 依存するライブラリ調査 libtermcap.so.2 => /lib/libtermcap.so.2 (0x40031000) libdl.so.2 => /lib/libdl.so.2 (0x40036000) libc.so.6 => /lib/i686/libc.so.6 (0x42000000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) -------------------------------------------------------------------------------- 他のシェル set filec ファイル名入力補助(csh) setenv LANG C 英語表示する。(.cshrc) tcsh 子プロセスとしてtcshを起動 exec tcsh 現在使用中のシェルをtcshに置き換える -------------------------------------------------------------------------------- viエディタ関係 s 一文字削除後INSERTモードに 2s は2文字 r 一文字置き換え x 一文字削除 3x は3文字 dd 一行削除 2dd は2行 Shift+d カーソルより右側の文字の削除 p 上記 x,dd,Shift+d を実行後バッファに給った文字列を貼り付ける u 直前の編集取り消し U はカーソル行を編集前の状態に / 順検索、逆検索は ? 、n で次の文字列 N yy N行コピー N G N行目に飛ぶ、Gの代わりにggも可、G のみは最後の行に飛ぶ set number 行番号をつけて表示 抜き出し  ^g で現在の行(N)表示 上を消す 1g で先頭に戻る N dd でN行削除 d G 下を消す 置換 R カーソル上の文字からEscが押されるまでの文字列を置換 s カーソルのある1文字を他の文字列で置換 S 現在の行を他の文字列で置換 cw カーソル位置からこの語の最後までを置換 cf 字 カーソル位置から指定した字 までを置換 C カーソル位置から行の最後までを置換 :&, & 直前のsコマンドの繰り返し :%s/置換え前/置換え後 置換え前の文字列を、置換え後の文字列で置換 もっとも近くにある文字列一つに対してのみ実行 :%s/置換え前/置換え後/g ファイルの中すべての文字列に対して、置換えを行う ~ 大文字/小文字を変更する -------------------------------------------------------------------------------- emacs(MEW)関係 w 新規作成(a 返信) ^\ 日本語入力(文章など記入) ^c ^c 送信 ^c ^a 添付用領域作成 c ファイルをコピーして添付 B base64(バイナリ) T MIMEタイプ ^b ^p 本文に戻る ^c ^i 署名付加(~/.signature) -------------------------------------------------------------------------------- 日本語入力 Ctrl + SPACE vi @ vine 2.1 Crtl + \ vi @ vine 2.1 Crtl + \ emacs @ vine 2.1 -------------------------------------------------------------------------------- ディスククラッシュ後の対応 2002/01/10 追加 2002/01/31 ディスク交換後戻したファイル/ディレクトリ /etc/crontab /hosts /samba /xinetd.d /inittab /sysconfig/network /network-scripts/ifcfg-eth0 chkconfig --level 3 smb on chkconfig --level 3 httpd on service smb start service httpd start -------------------------------------------------------------------------------- linuxサーバの設定 /etc/dhcpd/dhcpd.conf /etc/rc.local ip table /etc/sysctl.conf ルーティング -------------------------------------------------------------------------------- SUN(SOLARIS)の場合 デバイスファイル /dev/rmt/0 DAT(SUN) sync shutdown -h now reboot -------------------------------------------------------------------------------- SFU (Service for UNIX)の場合 cronを使用可能に crontab -p パスワード入力 crontab -e 起動させたいプログラムを記入、以下は例 */1 * * * * /root/bin/test.sh > /dev/null 2>&1 at -f /root/bin/test.sh 22:50 起動、一度だけ起動、cronとは動作が異なる atq リストを表示 /var/spool/cron/atjobs jobの格納先 ksh .profile の中身 PS1="($LOGNAME)--> " PS1="[$LOGNAME@$COMPUTERNAME ]$ " SFUでの設定 PS1="[$LOGNAME@$COMPUTERNAME 'basename $PWD']$ " SFUでの設定 HISTFILE=~/.history 必ず touch ~/.history set -o emacs コマンドライン編集モード(bash風) r 10 前に実行したコマンドを再度実行 ESC ESC コマンドの補完 -------------------------------------------------------------------------------- win2k & DOS nbtstat -n ネットバイオスのステータスをみる nbtstat -a 172.31.168.2 指定IPの状態 net view 現在のWORKGROUPのサーバ一覧表示 PATH=%PATH%;C:\perl\5.6.1\bin\MSWin32-x86 autoexec.batにPATHの追加(win95) -------------------------------------------------------------------------------- FIPS win98の入っているHDを1つの領域から2つの領域に分ける 1.HDをチェック&デフラグ 2.FDをシステム入りでフォーマット 3.CD-ROM(fips20,rh7.2)より RESTORRB.EXE, FIPS.EXE, ERRORS.TXT をFDにコピー 4.FDよりブート 5.fips y y ↑↓ でファイルの大きさ調整 c y 6.再起動 元の領域が正常化否かを確認 -------------------------------------------------------------------------------- ドライバ(rh7.3) DISK ARRAY Adaptec社製 /usr/src/linux-2.4.18-3/drivers/scsi/dpt_i2o.c /lib/modules/2.4.18-3/kernel/drivers/scsi/dpt_i2o.o Fibre Channel QLogic社製 qla2x00src-v5.30.tgz /usr/src/linux-2.4.18-3/drivers/addon/qla2200/qla2x00.c /lib/modules/2.4.18-3/kernel/drivers/addon/qla2200/qla2200.o /lib/modules/2.4.18-3/kernel/drivers/addon/qla2200/qla2300.o ネットワーク intel社製 /usr/src/linux-2.4.18-3/drivers/addon/e1000 /usr/src/linux-2.4.18-3/drivers/addon/e100 /usr/src/linux-2.4.18-3/drivers/net/eepro100.c /lib/modules/2.4.18-3/kernel/drivers/addon/e1000/e1000.o /lib/modules/2.4.18-3/kernel/drivers/addon/e100/e100.o /lib/modules/2.4.18-3/kernel/drivers/net/eepro100.o SCSI Adaptec社製 /usr/src/linux-2.4.18-3/drivers/scsi/aic7xxx /usr/src/linux-2.4.18-3/drivers/scsi/aic7xxx_old /lib/modules/2.4.18-3/kernel/drivers/scsi/aic7xxx/aic7xxx.o /lib/modules/2.4.18-3/kernel/drivers/scsi/aic7xxx_old.o -------------------------------------------------------------------------------- その他 http://sourceforge.net/ SourceForge BIND(バークレイ・インターネット・ネーム・ドメイン) 代表的なDNSソフト DMI(Desktop Management Interface) 管理する標準API(Application Programming Interface)のことで, ホストのインベントリ情報を管理 CI(Component Interface) ハードウェア・ソフトウェアと情報交換するため規格 MI(Management Interface) 管理アプリケーションとの情報交換するための規格 MIF(Management Information Format) ハードウェア,およびソフトウェアの資産情報を定義した管理フォーマットであり, DMIがコンポーネントを記述するために使用するフォーマット。 SNMPのMIBに相当。 LDCM(Intel LANDesk Client Manager) 電源OFF,リブート,およびコンソールサービスへの起動通知機能が使用、 DMI機能を提供する代表的なプログラム --------------------------------------------------------------------------------