bash操作

iekei

公開:

1 なるほど
12,571 VIEW
0 コメント

Linuxでメジャーに使われるシェル:bash の機能逆引き一覧です。ほとんど自分用のメモですが、公開してみます。

誤りやツッコミがありましたらコメントをお願いします。

[コンソールの切り替え]

[Alt]+[F?] 別バッファでログイン [Alt]+[F7] 別バッファでXでログイン

[Ctl]+[Alt]+[F?] Xからの切り替えはCtrlも押す必要がある。

[入力補完]

  [tab]

[コマンド履歴]

^P (↑) 以前のコマンド ~N (↓) 以後のコマンド

$ history : 履歴番号とそのコマンドの表示 ~/.bash_history : history の参照するファイル

$ !パターン パターンに一致する最新のコマンドを実行 $ !! 1つ前を実行

$ !履歴番号 historyの番号を実行 $ !-数字 ~回前を実行

$ ^引数1^引数2 1つ前のコマンドの、引数1部分を引数2にして実行 $ echo $$ 使用シェルのPIDを表示

[カーソル移動]

^A 行頭へ

^E 行末へ ^B 左へ

^F 右へ

[行編集]

^H バックスペース ^D デリート

^U 行頭からカーソルまでの文字列を削除 ^K カーソルから行末までの文字列を削除

^Y 直前に削除した文字列を貼り付け ^L カレント行を画面の先頭にする

[画面表示の停止・再開]

^S 一時停止

^Q 再開

[jobのバックグラウンド実行]

$ コマンド&

[外部コマンド:/usr/bin/nohup]

プログラムをバックグラウンドで実行し、その後ログアウトすると、 そのとき実行していたプロセスには自動的に SIGHUP シグナルが送られ、プロセスは終了する。

$ nohup command & としてコマンドを実行すると、ログアウトしても command には SIGHUP シグナルが送られない。

つまりログアウト後も実行を続けさせることができる。 abc.sh の標準出力、標準エラー出力に送られたデータはプログラムを実行したディレクトリに nohup.out というファイル名で保存される。

プログラムを実行したディレクトリに書き込み権限が無ければ $HOME/nohup.out に保存される。 ちなみに、nohup を付けても & を付けないとターミナルを独占するので、別途 & は付ける。

[jobの連続実行]

コマンド;コマンド;コマンド 順次実行

コマンド1&&コマンド2 1が成功なら2を実行 コマンド1||コマンド2 1が失敗なら2を実行

[ログアウト]

$ logout : exit と異なり、Stopped 状態のjobがあればログアウトできない。

[シェル変数]

$ set シェル変数と環境変数を表示する。

csh の場合は、シェル変数の宣言は、set var=value とするが、bash は不要。 よってbashでは、set コマンドはシェル変数(狭義のシェル変数)と環境変数(広義のシェル変数)

の閲覧目的でしか使わないと思われる。 $ unset 変数名 : シェル変数を削除する

[環境変数]

$ export 変数名 シェル変数を環境変数に設定する。

環境変数は、すべての子プロセスに引き継がれる変数であり、シェルの外に影響する値。 $ env : 環境変数のみを閲覧する(シェル変数は無視)

[文字列の評価]

'文字列' シングルクォート:完全な文字列

"文字列" ダブルクォート:$変数 を展開する `文字列` バッククォート:変数に加え、コマンドも展開する

[シェル関数]

function 関数名() {コマンド;}   引数を使ってより複雑な内容を定義する、シェル関数 $ function lsdir() {ls -l $1 | grep '^d';} 「$1」は1番目の引数を表す

$ lsdir /boot         引数"$1"に"/boot"が渡され、boot内のディレクトリが表示される (特殊変数)

$1,$2,$3 : 引数 $@ : すべての引数

$# : 引数の数 $$ : スクリプトのPID

$0 : 実行スクリプトの名前 $? : 最後に実行したコマンドの終了スタータス $ declare -f 定義されている全てのシェル関数を表示

$ unset 関数名   シェル関数の削除

[エイリアス]

$ alias エイリアスの表示 $ alias エイリアス名='コマンド' エイリアスの設定

$ unalias エイリアス名 エイリアスの削除 \エイリアス名 エイリアスを無効化して評価

[標準入出力]

stdin 標準入力:キーボード

stdout 標準出力:端末画面 stderr 標準エラー出力:端末画面

[リダイレクト]

(出力)

コマンド > ファイル 出力のみ コマンド >> ファイル 追記のみ

コマンド 2> ファイル エラー出力のみ コマンド 2>>ファイル エラー追記のみ

コマンド > ファイル 2>&1 stdout,stderr ともにファイルへ書込み コマンド >> ファイル 2>&1 stdout,stderr ともにファイルへ追記

(入力) コマンド < ファイル stdin

コマンド

[パイプ]

コマンド1 | コマンド2 stdout を渡す コマンド1 2>&1 | コマンド2 stdout,stderr を渡す

コマンド1 |tee コマンド2 stdout を画面にもコマンドにも渡す コマンド1 |tee file コマンド2 stdout をファイルにもコマンドにも渡す

[キー配列の変更]

# loadkeys us us(101)キーボード

# loadkeys jp106 jp106キーボード

[端末の設定]

# setterm -blank 5 5分後にスクリーンを消灯する # setterm -blank 0 スクリーンを消灯させない

# setterm -clear all -foreground white -background blue 表示色の設定 # setterm -clear all -foreground cyan -background black -store 表示色を設定しデフォルトにする

(指定可能な色は8色:black, red, green, yellow, blue, magenta, cyan, white)

[ログインシェルの登録]

/etc/shells : ログインシェルとして使えるシェルを登録する

[バックグラウンドジョブ化]

あるコマンドをフォアグラウンドで実行中、バックグラウンドジョブに変更させる。 1.Ctrl+Z にて中断 ⇒ 停止してjob化した番号が表示される(例:[1]+ Stopped コマンド)

2.bg 番号 コマンドにより バックグラウンドジョブ化(例:$ bg 1) 確認:$ jobs により (例:[1]+ Running コマンド &) を確認

[キーの機能割り当て]

$ stty -a : 現在の端末設定一覧

$ stty intr ^C : intr 機能を ^C で割り当て デフォルト:

intr = ^C 割り込み(interrupt)シグナルを送る。 プロセスを強制終了する quit = ^\ 終了(quit)シグナルを送る。 プロセスを強制終了し、coreファイルを作成する。

erase = ^? 最後にタイプされた文字を消去する。 kill = ^U 現在の行を消去する。

eof = ^D ファイル終了(end of file)を知らせる(入力を終了する)。 eol = 行末(end of the line)。

eol2 = 行末を表す別の文字 swtch = 別のシェルレイヤー(shell layer)にスイッチする。

start = ^Q; 停止している出力を再開する。 stop = ^S 出力を停止する。

susp = ^Z 端末に停止(stop)シグナルを送る。 rprnt = ^R 現在の行を再表示する。

werase = ^W 最後にタイプされた単語(word)を消去する。 lnext = ^V 次にタイプされる文字を(スペシャルキャラクタであっても)そのままの文字として受け取る。

[カレントコンソール名の表示]

$ tty

[履歴検索]

^R $ (reverse-i-search)`': プロンプトが表示されるので、コマンドを記入。

^E もしくは [Enter] で確定。 更にさかのぼって検索するときは ^R

[ESC] または ^G で終了。

最終更新:

コメント(0

あなたもコメントしてみませんか?

すでにアカウントをお持ちの方はログイン