Failure Sharing

Bootup your energy with sharing failure.

LPIC 試験まとめ 第一章:基本コマンドとファイルの操作

シェル変数・環境変数

# 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

ext2ファイルシステム上にあるファイルの属性を表示

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行でファイルを分割する。