【Linuxコマンド】よく使うコマンド(2)
Linux環境で使用するコマンドの一覧です。
主にファイル・ディレクトリに対する操作をまとめています。
- 詳細情報表示
- 空のファイルを作成
- アクセス権を指定してフォルダを作成
- ファイルを削除
- ディレクトリを削除
- ファイル名変更
- ディレクトリ内のjpgファイルを一括変換
- コピー
- 一括コピー
- ファイル移動
- 所有者を変更
- 所有グループを変更
- 所有者、所有グループを変更
- ディレクトリ配下のユーザ、グループを一括変更
- ファイル編集
- パーミッション変更
- 対象ディレクトリ配下すべてのパーミッションを一括変更
- サイズ確認
- ファイル検索
- ファイル検索+ファイル内検索
- 特定ディレクトリの一覧取得
- カレントディレクトリのファイル数をカウント(フォルダはカウントされない)
- シンボリックリンクの作成
詳細情報表示
$ 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 既存のリンク 新リンク