備忘録

忘れっぽいのでブログにしてみました

早く知りたかったLinuxコマンドのお話1

LPICって重要ですね、

勉強して感じたことは。。。

Linux触って半年したくらいのタイミングで勉強しておけばよかった!!』

ってことです。

 

知らなくて後悔したコマンドたちを徒然なるままに書いていきます。

 


コマンドの特殊な記号

 <コマンド1> ; <コマンド2>
  コマンド1の結果に関係なくコマンド2を実行する

 <コマンド1> && <コマンド2>
  コマンド1が正常終了したらコマンド2を実行する

 <コマンド1> || <コマンド2>
  コマンド1が失敗したらコマンド2を実行する

 ( <コマンド1> ; <コマンド2> )
  コマンド1とコマンド2を1つのコマンドとして実行

 { <コマンド1> ; <コマンド2> }
  コマンド1とコマンド2を1つのシェルで実行

 

引用符

 '(シングルクオーテーション)
  囲まれた文字をすべて文字列として扱う

 "(ダブルクオーテーション)
  囲まれた文字を文字列として扱うが、変数は展開する

 `(バッククオーテーション)
  囲まれた文字をコマンドとして展開する

 

  [root@localhost ~]# echo "'date'コマンドの結果は`date`です"
  'date'コマンドの結果はSat Jun 17 00:31:33 PDT 2017です

 

bashの履歴管理

 ・historyコマンドで過去のコマンド履歴を表示できる
 ・!<数字>でhistoryで出した番号のコマンドを予備だせる
 ・!<文字列>で文字列から始まるコマンドを再度呼び出せる
 ・!?<文字列>で文字列を含むコマンドを再度呼び出せる
 ・!!で直前のコマンドを実行

 

マニュアル

 manコマンドの仕様が以外と深い

 man (Option) (Section) <コマンド名>

 

 (Option)
  -a
   すべてのセクションのマニュアルを表示
  -f
   キーワードに完全一致するコマンドを表示
  -k
   キーワードに部分一致するコマンドを表示
  -w
   マニュアルの置かれているディレクトリを表示

 

 (マニュアルの項目)
  NAME
   名前
  SYNOPSIS
   書式
  DESCRIPTION
   説明
  OPTIONS
   コマンドオプションの説明
  FILES
   設定ファイルの説明
  BUGS
   バグ情報
  SEE ALSO
   関連情報
  AUTHOR
   著者
  これ以外にもいろいろあり

 

 (セクション)
  マニュアルにはセクションという章がある?

  1
   ユーザコマンド(いちばんよく使う)
  2
   システムコール(?)
  3
   ライブラリ
  4
   デバイスファイル(?)
  5
   設定ファイル(よく使う!)
  6
   ゲーム(????)
  7
   その他(?)
  8
   システム管理コマンド
  9
   カーネル用ドキュメント?

  [root@localhost ~]# man -w passwd
  /usr/share/man/man1/passwd.1.gz

 

マニュアル自体の検索もできる

 

  whatis(完全一致)

  [root@localhost ~]# whatis passwd
  passwd (1) - update user's authentication tokens
  sslpasswd (1ssl) - compute password hashes
  passwd (5) - password file

  apropos(部分一致)

 

  [root@localhost ~]# apropos passwd
  chpasswd (8) - update passwords in batch mode
  fgetpwent_r (3) - get passwd file entry reentrantly
  getpwent_r (3) - get passwd file entry reentrantly
  gpasswd (1) - administer /etc/group and /etc/gshadow
  grub2-mkpasswd-pbkdf2 (1) - Generate a PBKDF2 password hash.
  kpasswd (1) - change a user's Kerberos password
  lpasswd (1) - Change group or user password
  lppasswd (1) - add, change, or delete digest passwords.
  pam_localuser (8) - require users to be listed in /etc/passwd
  passwd (1) - update user's authentication tokens
  sslpasswd (1ssl) - compute password hashes
  passwd (5) - password file
  passwd2des (3) - RFS password encryption
  pwhistory_helper (8) - Helper binary that transfers password hashes from passwd or   shadow to opasswd
  saslpasswd2 (8) - set a user's sasl password
  smbpasswd (5) - The Samba encrypted password file
  vncpasswd (1) - change the VNC password

 

cpコマンドの-aオプションが最強

 

 -f
  上書き設定
 -i
  上書きを確認する
 -p
  権限設定を引き継ぐ
 -r,R
  再帰的にコピーする
 -d
  シンボリックリンクをそのまま複製
 -a
  d + p + R

 

 

正規表現

 

 難しいけど。。。{}がかなり有用!

 

  [root@localhost test]# ls
  [root@localhost test]# touch file{1,2}
  [root@localhost test]# ls
  file1 file2
  [root@localhost test]#