$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin最後に"&"を付けるとプログラムがバックグラウンドで動作するため、実行後すぐにプロンプトが戻ってくる。find -name "log" &bg %1パスを追加する例$ PATH=/home/aaa/aaa:$PATHrm -rf * (注意、ファイル・Dirが有っても全て削除する)コマンドに別名を付けるalias lsa='ls -a'alias rmdir='rm -rf' (ファイルが有っても削除する)aliasunalias rmdirシステムを再起動する# shutdown -r now# rebootシステムをシャットダウンする# shutdown -h now# halt# shutdown -h 0:0 (0時にシャットダウンする)リダイレククトの使い方> 出力のリダイレクト>> 出力をファイルに追記する< 入力のリダイレクト<< 入力終端文字列を指定するsort コマンド例.txt > resultgrep "in.ftpd" /var/log/secure >> ftp.loggrep "2002/09" < access_log$ cat <<_END_ > result> Hello!!> Happy Linux> _END_$ cat resultパイプの例$ ls -l | less$ grep "sample.html" access_log | logresolve | grep "xxx.yyy.co.jp" | lessls -a (全てのファイル)ls -l (詳細情報)ls -lX (拡張子でソート)ls -lS (ファイルサイズの小さい順)pwd (現在のディレクトリ)ファイルのコピーcp -i abcd.txt /home/aaa/ (上書きする前に確認する)cp -p abcd.txt /home/aaa/ (属性を保護する)cp -u abcd.txt /home/aaa/ (ファイルがコピー先ファイルより新しいか存在しない時だけコピーする)ファイルを消すrm abcd.txtrm "ab cd.txt" (名前にスペースが含まれる場合)rm ./-abcd.txt (名前がマイナスで始まる場合)ファイルを移動(ファイルやディレクトリ名を変更する)mv abcd.txt /home/aaa/mv old_name new_nameディレクトリを作成mkdir -m 777 new_dirディレクトリを消すrmdir test1 (ファイルが無い場合のみ)rm -rf test1 (ファイルが有っても消す)rm -ri test1 (確認しながら削除を行う)ディレクトリの使用容量du /home/aaa (Kバイト)du -h /home/aaa (適切な単位)du -m /home/aaa (Mバイト)ディレクトリごとコピーcp -r dir1 dir2ディレクトリごとコピー(情報もできるだけコピー)cp -a dir1 dir2ディレクトリごと移動mv dir1/ to_dir/mv -v dir1/ to_dir/ (移動中の状況を表示)ファイルやディレクトリのリンクを作成ln -s moto_file /home/aaa/aaa/ln -s moto_dir /home/aaa/aaa/ファイルを分割するsplit -l 2 sample out. (2行ごとに分割してファイルに書き出す)split -d 512k sample out. (512kバイトづつのファイルに分割する)分割したファイルを結合するcat out.?? > sample_file空のファイルを作成するecho -n > empty_fileランダムなファイル名を付けた空のファイルを作成mktemp XXXXXXXX.txtファイルやディレクトリの所有者を変更するchown apache test1.phpファイルやディレクトリのグループを変更するchgrp apache test1.php所有者とグループを同時に変更する(root権限)chown user1:user_grp target_fileパーミッションを変更するchmod 644 test1.phpファイルやディレクトリを探すfind / -name target_filelocate target_filefind ~/ -size +1000k -ls (1000kバイト以上)find ~/ -perm -a+w -type f (全てのユーザーが書き込み可能)find ~/ -mtime 3 -fprint result (3日前に修正されたファイル→result)find ~/ -name *~ -exec rm {} \; (チルダ(~)ファイルを削除)find ./ -empty | xargs rm -rf (空のファイルやディレクトリを削除)find ~/ -group user_grp | xargs chmod o= (グループがuser_grpのファイルをたのユーザーがアクセスできないようする)複数のファイルの拡張子を一括変更する(.txt→.doc)for nm in *.txt; domv $nm ${nm%.txt}.doc;donetempで始まるファイルをHOGEで始まるファイル名に一括変更する。for nm in temp*; domv $nm HOGE${nm#tr};donetelnetのログをファイルに保存するtelnet example.jp | tee telnet.logファイルの更新日時を現時刻に変更するtouch target_file更新時刻を指定時刻にするtouch -t 10170510 sample (10月17日5時10分に変更)ファイルのチェックサムを表示するsum target_filemd5sum target_file容量を適当な単位で表示ls -lh df -h du -hワイルドカードとは? 任意の1文字。ドットファイルの"."は除く。. 0文字以上の文字列。ドットファイルの"."は除く。[] []内の任意の1文字。"-"により文字範囲を指定できる。{} {}内の任意の文字列。文字列は","により複数列挙できる。ワイルドカードのかっこの使い方[0-9] 数字[a-z] 小文字アルファベット[A-Z] 大文字アルファベット[0-9a-zA-Z] 数字、アルファベットrm * 全てのファイルを削除(ドットファイルは残る)mv ????? ~/ ファイル名が5文字をホームディレクトリに移動(ドットファイルは残る)ls -l [a-zA-Z]* ファイル名の最初がアルファベットのものの情報一覧cp *.{rpm,gz} src/ 拡張子がrpmとgzのファイルをsrc/にコピーログイン中のユーザーが何をしているのか知るw w -sfwho who am iユーザーを作成・削除するuseradd user_nameuserdel user_nameuserdel -r user_name (ホームディレクトリも削除する)登録されているユーザーは /etc/passwd に記載。グループの情報は /etc/group に記述。ユーザーの有効期限を設定するusermod -e 12/31/16 login_name (2016年12月31日)ユーザーのホームディレクトリを変更するusermod -d /home/user_dir/user1 -m user1 (-m を付けると中身も移動する)ユーザー名を変更するusermod -l new_name old_name (中身はそのまま)グループを変更するusermod -G new_group user1グループを作成・削除するgroupadd new_groupgroupdel del_groupグループ名を変更するgroupmod -n new_grp old_grpユーザーが属しているグループを調べるgroups user1id user1 idコマンドだとユーザーIDやグループIDも分かるパスワードを変更する$ passwd# passwd user_nameユーザーのログイン履歴を参照するlast各ユーザーの最後にログインした日付を表示するlastlogスーパーユーザーになるsusu - (シェルや環境変数が読み込まれる)su user1 su - user1日付・時刻を設定するdate --set="2016/09/09 19:40"hwclock --systohc (ハードウェア・クロックを書き換える)date (現在の時刻を表示)cal cal 2016 (カレンダ)タイム・サーバーから時刻を得る。ntpdate タイム・サーバーのホスト名またはIPアドレスhwclock --systohcntpd を用いることで定期的に時刻を合わせてくれるようになる。/etc/ntpconf の server にタイムサーバーを設定する。ディスクの空き容量を知る(Kバイト単位)dfフロッピーディスクを使用するmount /mnt/floppy (ext2)mount -t vfat /dev/fd0 /mnt/floppy (MS-DOS)umount /mnt/floppy (取り出す時)CD-ROM , DVD-ROM を使うmount /mnt/cdromumount /mnt/cdromeject (取り出し)eject -t (トレイが閉まる)fdformat /dev/fd0H1440mkfs -t ext2 /dev/fd0 (mkfs -t msdos /dev/fd0) (mkfs -t vfat /dev/fd0)HDDの追加について rootにてfdisk -lfdisk /dev/sdc p:表示 n:追加 w:書き込みfdisk -l再起動が必要。ext4 ファイルシステムを作成するmkfs -t ext4 /dev/sdc1nano /etc/fstab再起動テストCD-R/RW にデータを書き込むcdrecord dev=0,0,0 -v -eject -data image.isocdrecord dev=0,0,0 speed=24 -v -eject -data image.isocdrecord dev=0,0,0 blank=all (CD-RW のディスクを初期化する)cdrecord -scanbus (CD-RW のデバイス番号を調べる)CD-R/RW , DVD-R/RW , DVD+R/RW 用の書き込みイメージを作成するCD や DVD に書き込むイメージを作成するには、まずイメージ用ディレクトリを用意し、書き込むファイル(ディレクトリ・ツリー)をそこにコピーする。イメージ用ディレクトリ配下のディレクトリ構造がそのイメージを作成するにわ、イメージ用ディレクトリに移動して、mkisofs -r -J -o ../cd.img .mkisofs -udf -o ../udf.img .cat /dev/cdrom > image.isomount -o loop image.iso /mnt/cdromネットワーク接続を開始する/etc/init.d/network start/sbin/ifconfig eth0 upネットワーク接続を終了する/etc/init.d/network stop/sbin/ifconfig eth0 downネットワーク接続をリスタートする/etc/init.d/network restartネットワークが利用できるか確認するping 192.168.1.30ネットワークの接続経路を確認する/usr/sbin/traceroute 192.168.1.30ネットワーク・カードの動作状態を確認する/sbin/ifconfigMACアドレスを調べる/sbin/arp -aネットワークが利用できるか確認する/sbin/route -n固定IPアドレスを設定するnano /etc/sysconfig/network-scripts/ifcfg-eth0ゲートウェイ・アドレス、ホスト名、ドメイン名を設定nano /etc/sysconfig/networkネームサーバーのIPアドレスnano /etc/resolv.confIPアドレスからドメイン、マシン名を調べるdig 111.222.333.444ドメインの登録情報を閲覧するwhois yahoo.co.jpネットワーク・モジュールを設定する/lib/modules/カーネルのバージョン/kernel/drivers/net (ネットワーク・モジュールの場所)/etc/modules.conf alias eth0 ne2k-pci (NE2000互換カードの例)/sbin/insmod ne2000-pci (不要な場合もあります)無線LANカードの動作状態を確認する/sbin/iwconfigファイルの内容を閲覧するcat see_filemore see_fileless see_file先頭に行番号を表示しながら閲覧するcat -n see_fileless -N see_file連続する空行を1行にまとめて、閲覧するcat -s see_filemore -s see_fileless -s see_fileファイルから文字列を検索するgrep "Linux" target_filegrep "Linux" target_file > result正規表現を用いて「yyyy/mm/dd」の日付けを探すgrep -e "[0-9]\{4\}/[0-9]\{2\}/[0-9]\{2\}" target_file「Linux」という文字列が何行存在するか調べるgrep -c "Linux" target_file「Linux」が存在しない行を調べるgrep -v "Linux" target_file拡張子が"txt"であるファイルについて、"Linux"の文字列を探すfind . -type f -name "*.txt" | xargs grep "Linux"検索時に大文字・小文字を区別しないgrep -i "linux" target_fileテキスト・ファイルの行を並び替えるsort target_file > result sort -o result target_file(左と同じ)sort -r target_file > result (逆順)sort -n target_file > result (行頭を数値として、並び替える)sort -f target_file > result (大文字・小文字を区別せず、並び替える)sort -t , -k 5 target_file.csv > result (csvファイルの5列目をキーとして、並び替える)3つのファイルを並び替えながら1つのファイルにまとめるsort target_file1 > file1_bufsort target_file2 > file2_bufsort target_file3 > file3_bufsort -mu file[1-3]_buf > result (重複した行を1行にする)差分ファイル(パッチ)を作成するdiff -Naru dir1 dir2 > dir.diff差分ファイル(パッチ)を適用するpatch < dir.diffファイルの始めや終わりを閲覧するhead -n 5 target_file (5行)tail target_file (-n 5 が無ければ10行)ログファイルを常に監視するtail -f /var/log/message (新しい行を表示する)ファイルの文字コードを変換するnkf -s -Lw euc_file > sjis_filenkf -e -Lu sjis.txt > euc.txtnkf -w -Lu sjis.txt > UTF8.txt複数ファイルをつなげて1つのファイルにするcat file1 file2 > out_fileテキストファイルの単語数や行数を知るwc -c target_file (バイト数)wc -w target_file (単語数)wc -l target_file (行数)ファイルの種類を調べる(文字コードも調べる)file target_file2つのファイルをタブで区切った1つのファイルにまとめるpaste file1 file2 > outputpaste -d , file1 file2 > output (タブの代わりに,カンマにする)ファイル内の大文字を小文字に変換するdd if=target_file of=change_file conv=lcase (ucaseだと小文字を大文字にする)タブをスペースに置き換えるexpand tab.txt > space.txtスペースをタブに置き換えるunexpand -a space.txt > tab.txt文字を変換するcat target_file | tr A-Z a-z > output_file (大文字から小文字に変換)cat target_file | tr [:punct:] , > output_file (記号を,カンマに変更) alnum 文字と数字 alpha 文字 blank 水平方向の空白 cntrl コントロール文字 digit 数字 graph 印刷できる文字(空白は含まない) lower 小文字 print 印刷できる文字(空白も含む) punct 記号 space 水平および垂直方向の空白 upper 大文字 xdigit 16進数の文字各行から指定した文節を取り出すcut -c 12- target_file > result指定した列の文字列を取り出すcut -f 2 tel.lst > result (タブ区切り)cut -f 2 -d , tel.lst > result (,カンマ区切り)文字列を置換するsed -e s/command/コマンド/g target_file > output_file (command→コマンド)「2009/09/01」→「2009年09月01日」置換するsed -e "s/\([0-9]\{4\}\)\/\([0-9]\{1,2\}\)\/\([0-9]\{1,2\}\)/\1年\2月\3日/g" target_file > output_file置換する文字列中でかっこ"\(...\)"を用いると、その中でマッチした文字列が一時的に記憶される。置換後の文字列中で"\数字"と指定すると、記憶した文字列のうち指定した順番のものが呼び出される。 代表的な正規表現grep,sed perl. . 改行文字以外の任意1文字* * 直前の1文字の0回以上の繰り返しに一致^ ^ 行の先頭$ $ 行の末尾[] [] []内の任意の1文字に一致[^] [^] []内の任意の1文字に不一致\+ + 直前の文字の1個以上の連続に一致\? ? 直前の文字の0または1文字に一致\{n\} {n} 直前の文字のn個に一致\{n,\} {n,} 直前の文字のn個以上に一致\{,m\} {,m} 直前の文字のm個以下に一致\{n,m\} {n,m} 直前の文字のn個以上,m個以下に一致patan1\|patan2 patan1|patan2 patan1またはpatan2のいずれかに一致\(patan\) (patan) patanをグループ化する\ \ 正規表現に使われる記号を普通の文字として扱う 検索パターンgrep,sed perlABCD ABCD ABCDに一致[0-9] [0-9] 1文字の数字に一致[a-z] [a-z] 1文字の小文字アルファベットに一致[A-Z] [A-Z] 1文字の大文字アルファベットに一致[0-9a-zA-Z] [0-9a-zA-Z] 1文字の数字またはアルファベットに一致[0-9]\{4\}/[0-9]\{1,2\}/[0-9]\{1,2\} [0-9]{4}/[0-9]{1,2}/[0-9]{1,2} yyyy/mm/ddに一致^patan$ ^patan$ patanである行[Gg]rep [Gg]rep Grepまたはgrepに一致^[^0-9] ^[^0-9] 行頭が数字でないもの^.\{10\}$ ^.{10}$ 10文字の行test\|TEST test|TEST testまたはTESTWoo* Woo* Woo,Wooo....に一致\(\(SUN\|MON\|TUE\)/[0-9]\)\{,3\} ((SUN|MON|TUE)[0-9]){,3} SUN,MON,TUEの後ろに数字がくるものが3回以下「2002/09/01」のような日付で始まる行をgrepで検索grep -e "^[0-9]\{4\}/[0-9]\{2\}/[0-9]\{2\}" target_fileスクリプトファイルを指定時刻に実行するat 4:00 < target_script予約されているキューを一覧するatq予約されているキューを削除するatrm 3現在のシステムの状況を知るtopプログラムを一時停止するstop 1kill -STOP 15263killall -STOP httpdプログラムを再開するfg %1 (フォアグラウンド ジョブID)bg %2 (バックグラウンド ジョブID)プログラムを再起動するkill -HUP 14528killall -HUP httpdプログラムを終了するkill 16482killall lpdプログラムを強制終了するkill -KILL 17653killall -KILL xfsログアウトしてもプログラムを実行し続けるnohup grep "nikkeibp.co.jp" access_log > result &プログラム実行に要する時間を測定するtime grep "nikkeibp.co.jp" access_log優先順位を上げてプログラムを実行するnice -n -10 grep "nikkeibp.co.jp" access_log > resultプログラムの優先順位を指定し直すrenice -2 17636現在実行しているプログラムを知るps alxjobs定期的にプログラムを動かすcrontab -eコマンドのマニュアルを表示するman command_nameコマンドの使用方法を検索するman -k keywordセクションを指定してコマンドの使用方法を閲するmon 5 command_nameコマンドを探すwhich command_nameコマンドの使用方法を簡潔に表示するmommand_name --help