kdoc - コマンド/bash/ターミナル

  • 作成日:2009-12-07 13:55:31
  • 修正日:2017-09-19 09:12:39

bash

↑ページトップへ

!$ 直前のコマンドの引数を参照
!! 直前のコマンドをオプション+引数付きで(頭にsudoを付け忘れた時とか)
!35 historyコマンドで出てきた35番のコマンドを実行
!cat 直前のcatコマンドを実行(cat部分は他のコマンドでもOK)
history コマンド履歴
Ctrl+r コマンド履歴検索
Ctrl+u カーソルより前を全部削除
Ctrl+w カーソルより前の1単語を削除
Ctrl+h カーソルより前の1文字を削除
Ctrl+k カーソルより後ろを全部削除
Ctrl+d カーソルより後ろを1文字削除
Ctrl+a カーソルを行頭へ
Ctrl+e カーソルを行末へ
Ctrl+l 画面クリア
Ctrl+c キャンセルして次の行へ

設定

$ vi .bash_profile

export HISTCONTROL=ignoreboth
export HISTIGNORE="history*:exit:ls*:pwd"

# 標準プロンプトの前にカレント時刻表示
export PS1="\t $PS1"
# あるいは
export PS1="\t[\u@\h \W]\\$ "
# 重複履歴を無視
export HISTCONTROL=ignoredups

# 空白から始めたコマンドを無視
export HISTCONTROL=ignorespace

# よく使うコマンドをhistoryに残さない
export HISTIGNORE=history*:cd*

パーミッション/権限

↑ページトップへ

# 「その他」のユーザに対してReadを許可
$ chmod o+r text.txt

# 所有者以外に対して読み・書き・実行を禁止
$ chmod go-rwx test.txt

# 所有者には読み・書き・実行を許可し、それ以外には禁止
$ chmod 700 test.txt
  • 【u】所有者、【g】グループ、【o】その他、【a】すべて
  • 【+】追加、【-】削除、【=】「そのアクセス権だけ」を指定
  • 【r】Read、【w】Write、【x】実行、【s】set-user-id→このファイル実行時にコマンド実行者ではなく、このファイルの所有者で実行したことになる→所有者がrootならrootで実行したことになる。ディレクトリに設定した場合、その配下に作成されたファイル/ディレクトリがこのディレクトリの所有グループと同じになる。

サーバ/情報

↑ページトップへ

# サーバのOS情報
$ uname -a
Linux HOSTNAME 2.6.18-274.7.1.el5 #6870 SMP Thu Oct 20 16:20:37 EDT 2011 i686 i686 i386 GNU/Linux

# CPU情報
$ cat /proc/cpuinfo

# メモリ情報
$ cat /proc/meminfo
# freeでもいいかも
$ free
# 見やすく(total used free)
$ free -m|perl -a0pe'@a=map{$_>1024?sprintf"%.1fG",$_/1024:$_.M}@F[7,15,16];$_="@a\n"'

# OS
$ cat /etc/redhat-release

# SELinuxの状態
$ cat /etc/selinux/config

# 実行中のプロセス
$ ps aux
# 例えば自分の
$ ps aux | grep sakai
# ヘッダ出力
$ ps aux | head -1

$ ps auxf
# -aで引数がわかる。
$ pstree -a
# cpu使用率の高い順。
$ top

# プロセスの情報
$ ls -la /proc/〈プロセスID〉

# プロセスの強制終了
$ kill -9 〈プロセスID〉

# ディスク容量
$ df -h

# IPアドレス/ネットマスク/デフォルトゲートウェイ
$ /sbin/ifconfig
$ cat /etc/sysconfig/network

# ネットワーク状況
$ netstat -ea

# 開いているポート
$ lsof -i -n -P

# 80番ポート(http)を使用しているプロセス
$ /usr/sbin/lsof -i | grep http

# ユーザ一覧
$ cat /etc/passwd

# ログインしている人
$ w
$ who

# ユーザ情報
$ id
$ id officek

# apache config確認
service httpd configtest
# apache graceful再起動
service httpd graceful

# サービスの現在のステータス
$ service --status-all

# それぞれのサービスのステータス
$ service httpd status
$ service network status

# OSのブート時に自動起動するサービス
$ chkconfig --list

# どのネットワークデバイスにどんな名前が割り当てられているかを確認
$ cat /etc/udev/rules.d/70-persistent-net.rules

# ディスク(パーティション)ごとの使用率
$ df -h

# ファイル容量(ファイルサイズではなくディスク占有容量)
# カレントディレクトリから1階層分だけ(指定がないと再帰的にたどる)
$ du -h --max-depth=1
# カレントディレクトリだけ
$ du -sh
# カレントディレクトリ直下で容量の大きいディレクトリTOP10(単位MB)
$ du -m --max-depth=1 | sort -rn | head -10

操作

↑ページトップへ

ログ調査

# リアルタイムで
$ tail -f 20160307.txt

# でっかいやつ
$ less 20160307.txt
shift + g # 末尾へ
? <pattern> # 逆方向へ検索
? # 逆方向検索繰り返し
? <pattern>\c # 末尾に\cで大文字小文字区別しない
巨大ファイル内で検索かけて時間かかってるのでやめたいならctl+c

低負荷でコピー

$ scp -l 500 fromfile tofile

5秒おきに実行

$ watch -n 5 "ps aux | grep perl"

特定ファイルのファイル容量合計

$ for i in 01 02 03 04 05 06 07 08 09 10 11 12
> do
> du -bhc /var/www/html/doc/public/2016$i*/*.pdf | tail -n 1
> done
585M    total
589M    total
602M    total
599M    total
610M    total
611M    total
626M    total
629M    total
636M    total
648M    total
697M    total
671M    total

文字コード/iconv

↑ページトップへ

Shift_JISのテキストファイルsjis.txtを、UTF-8に変換し、utf8.txtとして保存する

# -f: from、-t: to
iconv -f Shift_JIS -t UTF-8 sjis.txt > utf-8.txt

文字コードのリスト

iconv -l

BOM付きUTF-8(あるいはBOMなしでも)をBOMなしUTF-8へ

iconv -f UTF-8 -t UTF-16 in.txt | iconv -f UTF-16 -t UTF-8 > out.txt

その他メモ

↑ページトップへ