【Linuxコマンド】よく使うコマンド(2)

Linux環境で使用するコマンドの一覧です。
主にファイル・ディレクトリに対する操作をまとめています。

詳細情報表示
$ ls -altr

日付順にソートし詳細を表示する。表示項目は以下の通り。
パーミッション,ファイル数,オーナー,グループ,サイズ,タイムスタンプ,ファイル名

空のファイルを作成
$ touch ファイル名


アクセス権を指定してフォルダを作成
$ mkdir -m 707 sample


ファイルを削除
$ rm file_name


ディレクトリを削除
$ rm -r dir_name


ファイル名変更
$ mv 元ファイル名 新ファイル名


ディレクトリ内のjpgファイルを一括変換
$ rename "変換前文字列" "変換後文字列" 対象ファイル
$ rename "ikou_389x500 (" "ikou_389x500(" *.jpg


コピー
$ cp -p コピー元 コピー先

-p:オーナー,グループ,パーミッション,タイムスタンプを保持
-r:ディレクトリコピー

一括コピー
$ cp /home/test/* /tmp/

「/home/test/」配下のファイルを全て「/tmp/」配下にコピーする。

ファイル移動
$ mv -f 移動ファイル1 移動ファイル2 移動先ディレクトリ

確認なしで上書きされる点に注意

所有者を変更
$ chown ユーザ名 ファイル(orディレクトリ名)


所有グループを変更
$ chgrp グループ名 ファイル(orディレクトリ名)


所有者、所有グループを変更
$ chown ユーザ名:グループ名 ファイル名(orディレクトリ名)


ディレクトリ配下のユーザ、グループを一括変更
$ chown -R ユーザ名:グループ名 対象ディレクトリ


ファイル編集
$ vi ファイル名

※ファイルが存在しない場合は新規作成になる。
 :q! 保存せずに終了
 :wq 保存して終了
 :set nu 行番号表示
 :set nocompatible
 vi互換モード
 i 編集モードへ移行
 Shift + d カーソルから行末までを削除
 /文字列 ファイル内検索(n:順方向 N:逆方向 へ検索)
 0 行頭へ移動
 $ 行末へ移動

パーミッション変更
$ chmod 権限 ファイル・ディレクトリ名


対象ディレクトリ配下すべてのパーミッションを一括変更
$ chmod -R ugo+rwx /対象ディレクトリ

 -R:すべて (下の階層) を変更する場合つける。
 u:User (ユーザー)
 g:Group (グループ)
 o:Other (その他)
 +:(権限を) 追加する。
 -:(権限を) 取り除く。
 r:読み込み
 w:書き込み
 x:変更

サイズ確認
$ du -sh ディレクトリ名

ディレクトリの合計サイズ (-s) を分かりやすい表記 (-h) で表示。

ファイル検索
$ find 検索開始ディレクトリ -name 検索するファイル名


ファイル検索+ファイル内検索
$ find 検索開始ディレクトリ -type f -print | xargs grep 検索する文字列

指定ディレクトリ配下からファイル名を表示しつつ、指定文字列を検索。

特定ディレクトリの一覧取得
$ find /home/test -type d -maxdepth 1 -print > list.txt

-maxdepth n 検索対象をn階層に制限する。

別サーバの場合はsshなどでログインして行う。
例1:sshで[IPアドレス]にアクセスし、/data/aaa 配下のファイル一覧をソートしてテキストに出力。

$ ssh [PASS]@[IPアドレス] find /data/aaa -type f -print | sort > list_aaa.txt

例2:sshで[IPアドレス]にアクセスし、/data/bbb 配下のフォルダを一階層まで潜り、その一覧をソートしてテキストに出力。

ssh [PASS]@[IPアドレス] find /data/bbb -type d -maxdepth 1 -print | sort > list_bbb.txt


カレントディレクトリのファイル数をカウント(フォルダはカウントされない)
$ ls | wc -w
$ find ./ -type f|wc -l


シンボリックリンクの作成
$ ln -s リンクを作りたいディレクトリ リンクの作成先ディレクトリ

リンクの張り替えは以下の通り。

$ ln -snf 既存のリンク 新リンク