/home/aaa/public_html/bunsyo/コマンド例.txt 戻る
$ 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:$PATH

rm -rf * (注意、ファイル・Dirが有っても全て削除する)

コマンドに別名を付ける
alias lsa='ls -a'

alias rmdir='rm -rf' (ファイルが有っても削除する)

alias

unalias rmdir

システムを再起動する
# shutdown -r now
# reboot

システムをシャットダウンする
# shutdown -h now
# halt
# shutdown -h 0:0 (0時にシャットダウンする)

リダイレククトの使い方
>    出力のリダイレクト
>>    出力をファイルに追記する
<    入力のリダイレクト
<<    入力終端文字列を指定する

sort コマンド例.txt > result

grep "in.ftpd" /var/log/secure >> ftp.log

grep "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" | less

ls -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.txt
rm "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_file
locate target_file

find ~/ -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; do
mv $nm ${nm%.txt}.doc;
done

tempで始まるファイルをHOGEで始まるファイル名に一括変更する。
for nm in temp*; do
mv $nm HOGE${nm#tr};
done

telnetのログをファイルに保存する
telnet example.jp | tee telnet.log

ファイルの更新日時を現時刻に変更する
touch target_file

更新時刻を指定時刻にする
touch -t 10170510 sample    (10月17日5時10分に変更)

ファイルのチェックサムを表示する
sum target_file
md5sum 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 -sf
who    who am i

ユーザーを作成・削除する
useradd user_name
userdel user_name
userdel -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_group
groupdel del_group

グループ名を変更する
groupmod -n new_grp old_grp

ユーザーが属しているグループを調べる
groups user1
id user1    idコマンドだとユーザーIDやグループIDも分かる

パスワードを変更する
$ passwd
# passwd user_name

ユーザーのログイン履歴を参照する
last

各ユーザーの最後にログインした日付を表示する
lastlog

スーパーユーザーになる
su
su -    (シェルや環境変数が読み込まれる)
su user1    su - user1

日付・時刻を設定する
date --set="2016/09/09 19:40"
hwclock --systohc    (ハードウェア・クロックを書き換える)

date    (現在の時刻を表示)
cal    cal 2016    (カレンダ)

タイム・サーバーから時刻を得る。
ntpdate タイム・サーバーのホスト名またはIPアドレス
hwclock --systohc

ntpd を用いることで定期的に時刻を合わせてくれるようになる。
/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/cdrom
umount /mnt/cdrom
eject    (取り出し)
eject -t    (トレイが閉まる)

fdformat /dev/fd0H1440
mkfs -t ext2 /dev/fd0    (mkfs -t msdos /dev/fd0)    (mkfs -t vfat /dev/fd0)

HDDの追加について    rootにて
fdisk -l
fdisk /dev/sdc
 p:表示
 n:追加
 w:書き込み
fdisk -l
再起動が必要。

ext4 ファイルシステムを作成する
mkfs -t ext4 /dev/sdc1

nano /etc/fstab
再起動テスト

CD-R/RW にデータを書き込む
cdrecord dev=0,0,0 -v -eject -data image.iso
cdrecord dev=0,0,0 speed=24 -v -eject -data image.iso
cdrecord 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.iso
mount -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/ifconfig

MACアドレスを調べる
/sbin/arp -a

ネットワークが利用できるか確認する
/sbin/route -n

固定IPアドレスを設定する
nano /etc/sysconfig/network-scripts/ifcfg-eth0

ゲートウェイ・アドレス、ホスト名、ドメイン名を設定
nano /etc/sysconfig/network

ネームサーバーのIPアドレス
nano /etc/resolv.conf

IPアドレスからドメイン、マシン名を調べる
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_file
more see_file
less see_file

先頭に行番号を表示しながら閲覧する
cat -n see_file
less -N see_file

連続する空行を1行にまとめて、閲覧する
cat -s see_file
more -s see_file
less -s see_file

ファイルから文字列を検索する
grep "Linux" target_file
grep "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_buf
sort target_file2 > file2_buf
sort target_file3 > file3_buf
sort -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_file
nkf -e -Lu sjis.txt > euc.txt
nkf -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_file

2つのファイルをタブで区切った1つのファイルにまとめる
paste file1 file2 > output
paste -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    perl
ABCD        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またはTEST
Woo*        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 1
kill -STOP 15263
killall -STOP httpd

プログラムを再開する
fg %1    (フォアグラウンド ジョブID)
bg %2    (バックグラウンド ジョブID)

プログラムを再起動する
kill -HUP 14528
killall -HUP httpd

プログラムを終了する
kill 16482
killall lpd

プログラムを強制終了する
kill -KILL 17653
killall -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 alx
jobs

定期的にプログラムを動かす
crontab -e

コマンドのマニュアルを表示する
man command_name

コマンドの使用方法を検索する
man -k keyword

セクションを指定してコマンドの使用方法を閲する
mon 5 command_name

コマンドを探す
which command_name

コマンドの使用方法を簡潔に表示する
mommand_name --help





戻る