シェル変数・環境変数
# Shell変数一覧 woosy@DESKTOP-62JDREN MINGW64 ~ $ set ACLOCAL_PATH=/mingw64/share/aclocal:/usr/share/aclocal ALLUSERSPROFILE='C:\ProgramData' APPDATA='C:\Users\woosy\AppData\Roaming' # set -o noclobber 上書き禁止 # 環境変数一覧 woosy@DESKTOP-62JDREN MINGW64 ~ $ env USERDOMAIN=DESKTOP-62JDREN OS=Windows_NT
exportコマンドの目的
シェル変数 → 環境変数 Bashから起動するアプリケーションが参照できるようにする。
export TEST # (= declare -x TEST)
PS1, PS2
PS1= ... // bash shellのコマンドプロンプト。'\s-\v\$ 'がデフォルト s : shell name v : bash version u : username h : hostname w : current directory PS2= ... // bash shelllの2次プロンプト '>'がデフォルト
マニュアルの場所
/usr/share/man /usr/local/share/man
history
woosy@DESKTOP-62JDREN MINGW64 ~ $ history -d 125 実行履歴の一部を消去する。 woosy@DESKTOP-62JDREN MINGW64 ~ $ history -c woosy@DESKTOP-62JDREN MINGW64 ~ $ history 1 history 履歴すべての消去する。 HISTFILE:実行履歴を保存するファイルを指定する。 $ echo $HISTFILE /c/Users/woosy/.bash_history
su vs sudo
su : 一時的に他のユーザの権限に切り替える場合
su - root
sudo : 事前に管理者から許可されている管理用コマンド
cp, mvのオプション
R or r : 元のディレクトリをそのままコピー・移動
f : 強制的に上書き
lsattr
tarのオプション
c: create archive t: display included files x: extract v: verbose z: filterwith gzip type
ダウンロードしたISOイメージをUSBデバイスに書き込む
dd if=image.io of=/dev/sdb
ファイルタイプを確認
$ file test.txt test.txt: ASCII text
標準出力・標準エラー
& : 標準出力・エラー両方を指す
&> = >& = 2>&1
#標準出力、標準エラーのどちらも表示させないように コマンド > /dev/null 2>&1
tac
ファイルを最後の行から出力
e.g. file1
aaa bbb ccc
tac file1 ccc bbb aaa
標準出力を別のコマンドにリダイレクトすると同時に、ファイルにも格納する
tee : 標準出力とファイルの両方に出力する。
P46575:lpic woohyeok.kim$ nl file1 | tee file1_tee | head -1 1 aaa P46575:lpic woohyeok.kim$ ls -l total 24 -rw-r--r-- 1 woohyeok.kim INTRA\Domain Users 12 Aug 21 08:33 file1 -rw-r--r-- 1 woohyeok.kim INTRA\Domain Users 33 Aug 21 08:36 file1_tee
パイプ式に使うんだ。
grepのオプション
- i : 大文字、小文字を区別しない
- v : 一致しない
- l : 正規表現を使う
- n : 行番号
P46575:lpic woohyeok.kim$ grep -i aaa file1_tee 1 aaa P46575:lpic woohyeok.kim$ grep -v aaa file1_tee 2 bbb 3 ccc P46575:lpic woohyeok.kim$ grep -n aaa file1_tee 1: 1 aaa
大文字を全て小文字に変換
tr:入力した文字を指定したフォーマットに変換
P46575:lpic woohyeok.kim$ tr 'a-z' 'A-Z' hello HELLO hi HI
こういう形も使用可能
tr 'a-z' 'A-Z' < file1_tee 1 AAA 2 BBB 3 CCC
cut
- d : 区切り文字を設定
- f : 指定された各フィールドを表示する
cut -d : -f 1,7 filename
sed
- d : パタンに合致する行を削除
- p : パタンに合致する行を表示
P46575:lpic woohyeok.kim$ cat file1_tee | sed '1,2d' 3 ccc
P46575:lpic woohyeok.kim$ cat file1_tee | sed -n '/aa/p' 1 aaa P46575:lpic woohyeok.kim$ cat file1_tee | sed '/aa/p' 1 aaa 1 aaa 2 bbb 3 ccc
ファイルの内容を8進数表示するコマンド
P46575:lpic woohyeok.kim$ od file1_tee 0000000 020040 020040 030440 060411 060541 020012 020040 020040 0000020 004462 061142 005142 020040 020040 031440 061411 061543 0000040 000012 0000041
tab > space
expand # 逆はunexpand
splitコマンドのデフォルト動作
1000行でファイルを分割する。