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
その他メモ
↑ページトップへ