良く使うUNIXコマンド

<ファイル・ディレクトリ>

- cat - ファイルを結合 -
  # ファイルを結合
  $ cat file1.txt file2.txt $ file3.txt
- cd - ディレクトリ変更 -
  #ディレクトリ変更
  $ cd ./test
- chmod - ファイル・ディレクトリの属性を変更 -
  # 所有者にファイルの実行権限を付加
  $ chmod u+x test1.txt
		
  # 全員から実行権限を剥奪
  $ chmod a-x test1.txt
		
  #所有者とグループに実行権限と書き込み権限を付加
  $ chmod ug+xw test1.txt
		
 --------------------------------------------------------
  u,g,o,a    :所有者・グループに属するユーザ・その他のユーザ、全員
  r,w,x       :読み込み属性・書き込み属性・実行属性
  +/-	         :属性を ON にする/OFF にする		
- chgrp - グループを変更 -
  #グループを変更
  $ chgrp new_group test.txt 	
- chown - ファイルの所有者、グループを変更 -
  # ファイルの所有者を変更
  $ chown new_user test.txt

  # ファイルのグループを変更
  $ chown :new_group test.txt

  # ファイルの所有者とグループを変更
  $ chown new_user:new_group test.txt

  # ディレクトリ内のファイルに対して、グループと所有者を変更 
  $ chown -R new_user:new_group test_dir
- df - ディスクの使用容量 -
  # ディスクの使用容量を表示
  $ df -H
- diff - ファイルの比較 -
  # ファイルの比較
  $ diff test1.txt test2.txt
- ln - ハードリンク・シンボリックシンクを張る -
  # シンボリック作成
  $ ln -s test_dir test_symbolic
- cp - ファイルコピー -
  # ファイルのコピー
  $ cp ./test1.txt ./test2.txt
		
  # ファイルをディレクトリへコピー
  $ cp ./test1.txt ./test		
		
  # 拡張子"txt"のファイルを、ディレクトリへコピー
  $ cp *.txt ./test	
		
  # ディレクトリを再帰的に、ディレクトリへコピー
  $ cp -R ./test1 ./test2 
- less - 表示 -
  # less実行
  ls -al | less
- ls - ファイル/ディレクトリ表示 -
  # ディレレクトリの内容を表示
  ls -al
- mv - ファイルの移動・リネーム -
  # ファイルの移動
  mv test1.txt ./test
		
  # ファイルのリネーム
  mv test1.txt test4.txt
- pwd - カレントディレクトリを表示 -
  # カレントディレクトリ表示
  $ pwd
  $ /Users/develop/script/cmd/test3	
- rm - ファイルの削除 -
  # ファイルの削除
  $ rm test1.txt
		
  # 拡張子を指定したファイルの削除
  $ rm *.txt	
		
  # 再帰的にファイルを削除
  $ rm -r *.txt
	
  -- 特定条件のファイルを再帰的に削除 --
  $ find /usr/local/ -name \*.old -atime +30 -exec rm -rf {} \;
  $ find /usr/local/ -name *.old &#8211;atime +30 -print | xargs rm -rf

  -- 階層的なディレクトリの削除 --
  $ rm -r test_dir
- mkdir - ディレクトリの作成 -
  #ディレクトリの作成
  $ mkdir new_dir
		
  # 階層ディレクトリの作成
  $ mkdir -p test1/test2/test3

<プロセス>

- kill - プロセス削除 -
  # 指定プロセスIDのプロセスを削除
  $ kill 29318
- ps - プロセス情報の表示 -
  #  プロセス情報の表示
  $ ps ax
  $ ps ax | grep jEdit
- top - プロセス状態をリアルタイムに表示 -
  # プロセス状態をリアルタイム
  $ top

<検索>

- find - ファイルを検索 -
  $ find ./ -name *.txt 
  $ find ./ -name "m*.txt" 
  $ find ./ -type f
		
  -- 検索結果を削除 --
  $ find ~ -name '*bak" -exec rm {} \;
		
  -- 検索結果に対してgrep --
  $ find ./ -name "*.txt" -print | xargs grep -n test_data
- grep- ファイルの内容を検索 -
  # 'test1.txt'を検索、マッチした結果を出力
  $ grep 'develop' test1.txt
		
  # 拡張子"txt"のファイルを検索、マッチした結果を行数付きで出力
  $ grep -n 'develop' *.txt
			
  # 拡張子"txt"のファイルを検索、ファイルごとに出現した行数をカウントした結果を出力
  $ grep -n -ci 'develop' *.txt

<ネットワーク>

- ifconfig - ネットワークインタフェースの設定を行う -
  # 設定を確認
  $ ifconfig
- netstat - ネットワークの使用状況を表示 -
  # 使用状況を確認
  $ netstat -a  
- ping - 指定のホストとのパケットの送受信ができるかを調べる -
  # 送受信確認
  $ ping 192.168.10.130
- ssh - 安全にリモートコンピュータと通信するためのプロトコル -
  # リモート通信
  $ ssh -l user_name host_address

- wget - HTTP・FTPダウンローダ -
  # カレントにtop.htmlを保存
  $ wget http://www.yahoo.co.jp/top.html
		
  # test.tar.gzを保存
  $ wget ftp:ftp/example.com/test.tar.gz

  # 再帰的にファイルを取得、ディレクトリは自動的に作成されます
  wget -r http://www.example.com/bar/

<圧縮/解凍>

- tar - ファイルの圧縮/解凍 -
  # 圧縮	
  $ tar -czvf test_matome.tar.gz ./test
		
  # 展開
  $ tar -xzvf test_matome.tar.gz
- zip - ファイルの圧縮 -
  # ZIP圧縮
  $ zip -r test_dir.zip ./test_dir
- unzip - ファイルの解凍 -
  # ZIP解凍
  $ unzip test_dir.zip -d tmp_dir

<文字処理>

- awk - テキスト整形 -
  # 1、3カラム目を表示
  $ ls -al | awk -e '{print $1 " " $3}'
- cut - テキスト切り出し -
  # 4カラム目を表示	
  $ echo "a b c d e f" | cut -d' '-f 4 
- basename - パスからファイル名を取得 -
  # ファイル名を取得
  $ basename /user/bin/test.txt
- dirname - パスからディレクトリ名を取得 -
  # ディレクトリ名を取得
  $ dirname /user/bin/test.txt
- head - ファイルの先頭を表示 -
  # 先頭100行を表示
  $ head -n 100 test.txt
- tail - ファイルの末尾を表示 -
  # 末尾100行を表示
  $ tail -n 100 test.txt
		
  -- 指定範囲行を出力 --
  # head,tailを使用うするパターンもあるが、こっちの方が簡単
  $ sed -n '3,10p' list.txt
- jot - 連番/ランダムデータを生成 -
  # 連番表示
  $ jot 10

  # ランダム表示
  $ jot -r 10 1 10
- sed - 文字列の置換 -
  # 全てのabcをdefへ置換
  $ sed 's/abc/def/g' < file1.txt > file2.txt
- sort - 文字列をソート -
  # 文字列ソート
  $ ls | sort -r
 		
  # 9項目目を対象としてソート(文字列)
  $ ls -al | sort -k 9
 		
  # 2項目、5項目を対象としてソート(数値)
 $ ls -al | sort -k 2n -k 5n
- split - ファイル分割 -
  # 1000行ごとに分割('split_'は分割したファイルのプレフィックス)
  $ split -l 1000 test.txt split_
- tee - パイプからの入力を標準出力と指定ファイルに書き出す -
  # 'la -al'の結果を入力を標準出力と指定ファイルに出力
  $ ls -al | tee sample.txt
- tr - 文字の置換 -
  # abcをdefへ置換
  $ tr 'abc' 'def' < test1.txt > test2.txt
- uniq - 連続する同じ行を1行にまとめる -
  # ユニーク化
  $ sort test_uniq.txt | uniq
	 	
  # ユニーク化した行を個数により降順ソート
  $ sort test_uniq.txt | uniq -c | sort -r -k 1
- wc - ファイルの行数、単語数、サイズを表示 -
  # 行数を表示	
  $ wc -l test.txt