C-cmd

===============================================================================================

cd

ディレクトリを移動。

形式: cd [オプション] [ディレクトリ]

オプション 内容
−P シンボリックリンクの場合、シンボリックリンクのターゲットに移動します。
−L シンボリックリンクの場合、シンボリックリンクに移動します。

ショートカット

記号 内容
/ ルートディレクトリ
. 現在のディレクトリ
.. 親ディレクトリ
~ ユーザーのホームディレクトリ
直前にいたディレクトリ

使用例

コマンド動作
$ cd /ルートディレクトリに移動
$ cd /home/pi絶対パスを指定してディレクトリに移動
$ cd samp | $ cd ./samp現在のDirectoryの下に”samp”に移動
$ cd ..現在のディレクトリ1つ上の階層のディレクトリに移動
$ cd
$ cd ~
$ cd ~user
現在のユーザー(user)のホームディレクトリへの移動
$ cd ~user他のユーザーから、”user” のホームディレクトリへの移動

===============================================================================================

chmod

ファイルやディレクトリのパーミッションを変更する。

形式: chmod アクセス権限 ファイル名 -> chmod 777 work/test01.sh

対象 説明
u 所有者
g 所有グループ
o その他のユーザ
a 全てのユーザ
操作 説明
+ 権限を追加
権限を削除
= 権限を指定
権限 説明
r 読み取り権
w 書き込み権
x 実行権
s SUIDまたはSGID
t スティッキービット

特殊なパーミッション

  • SUID
    • 実行ファイルに設定し、そのプログラムをどのユーザが実行してもプログラムの所有ユーザの権限で実行。
    • 設定はchmodコマンドで、通常のパーミッションの値に4000を加えた値を設定するか、所有ユーザに「s」という権限を追加(u+s)。
    • これが設定された代表的なプログラム「passwd」コマンド。
    • 例: test.txt (744) -> chmod 4744 test.txt / chmod u+s test.txt
  • SGID
    • 実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、プログラムの所有グループの権限で実行されます。
    • ディレクトリに設定する事で、そのディレクトリ配下に作成したファイルやディレクトリの所有グループは親ディレクトリと同じになります
    • 設定はchmodコマンドで、通常のパーミッションの値に2000を加えた値を設定するか、所有グループに「s」という権限を追加します(g+s)。
    • 例: test.txt (744) -> chmod 2744 test.txt / chmod g+s test.txt
  • スティッキービット
    • ディレクトリに設定する事で、そのディレクトリに対して書き込み権限を持つユーザでも、自分が所有する以外のファイルを削除できなくなります。
    • 設定方法はchmodコマンドで、通常のパーミッションの値に1000を加えた値を設定するか、その他ユーザに「t」という権限を追加します(o+t)。
    • これが設定された代表的なディレクトリに「/tmp」ディレクトリがあります。
    • 例: test.txt (744) -> chmod 1744 test.txt / chmod o+t test.txt

===============================================================================================

cp

ファイルやディレクトリのコピー

形式: cp [オプション] コピー元のファイル(ディレクトリ)  コピー先ファイル(ディレクトリ)

オプション 説明
 -a 元ファイルの属性とディレクトリの構成を保持してコピーする
-b 上書きされるファイルのバックアップを作成する
-f コピー先に同じ名前のファイルがある際に警告なしで上書きをする。
-i 同名のファイルやディレクトリが有る場合、上書きするか問い合わせる
-p ファイルの属性を保持したままコピーする。
-r | -R ディレクトリを再帰的にコピー