【 cp 】 ファイルやディレクトリをコピーする

cp  ファイルやディレクトリをコピーする

 

構文

cp [options] source dest
cp [options] source… directory

 

オプション

-a, –archive できる限り属性やディレクトリ構造を保持してコピーする
-b, –backup 上書きや削除されるファイルについて,バックアップ・ファイルを作成する
-d, –no-dereference シンボリック・リンクをコピーするときは,シンボリック・リンクの実体をコピーする
-f, –force コピー先に同名ファイルがあるときも警告せず,上書きを行う
-i, –interactive 上書きされるファイルがあるときは問い合わせする
-l, –link ファイルをコピーするときは代わりにハード・リンクを作成する
-P, –parents 指定したディレクトリをつけてコピーする
-p, –preserve オーナー,グループ,パーミッション,タイムスタンプを保持したままコピーする
-r ディレクトリを再帰的にコピーする
-s, –symbolic-link ディレクトリ以外のファイルをコピーする際,シンボリック・リンクを作成する
-u, –update 同名のファイルが存在する場合,タイムスタンプを比較して同じまたは新しいときにはコピーを行わない
-v, –verbose コピーの前に,ファイル名を表示する
-x, –one-file-system コピーする際,異なったファイル・システムのサブ・ディレクトリはコピーを行わない
-R, –recursive ディレクトリを再帰的にコピーする
–help cpコマンドの使用法を表示する
source コピー元のファイルやディレクトリを指定する。ワイルド・カードを使用することもできる
dest コピー先のファイル名やディレクトリ名を指定する。ファイル名を指定した場合は新しい名前でコピーされる。
directory コピー先のディレクトリを指定する

 

説明

ファイルやディレクトリをコピーする。”-r”オプションを指定した場合は,ディレクトリ以下を再帰的にコピーすることが可能。

使用例

file1をfile2というファイルとして複製
$ cp file1 file2

hoge1ディレクトリの内容をすべてhoge2にコピー
$ cp -r hoge1 hoge2

カレント・ディレクトリ内で拡張子.shtmlの
ファイルをpublic.shtmlディレクトリにコピー
$ cp *.shtml public.shtml

【 chmod 】 ファイルやディレクトリのアクセス権を変更する

chmod  ファイルやディレクトリのアクセス権を変更する (1)

 構文

chmod [-cfvR] [–recursive] [–changes] [–silent] [–quiet] [–verbose] [–help] mode file…

 

オプション

-c, –changes アクセス権限が変更されたファイルのみ詳細に表示する
-f, –silent, –quiet アクセス権限を変更できなかった場合でも,エラー・メッセージを表示しない
-v, –verbose アクセス権限の変更を詳細に表示する
-R, –recursive ディレクトリとその中身のアクセス権限を再帰的に変更する
–help chmodコマンドの使用法を表示する
mode 変更するアクセス権を記述する。記述方法は後述の「modeの記号による記述方法」を参照
file アクセス権を変更するファイルやディレクトリを記述する。また,ワイルド・カードも使用できる

 

 説明

ファイルやディレクトリのアクセス権限を変更する。所有者,グループ,その他のユーザーに対して,それぞれ読み出し,書き込み,実行権限を与えられる。ここで実行権限をファイルに指定するとコマンドやスクリプトなどとして使用できる

 

modeの記号による記述方法

[ugoa][+-=][rwx],…
権限はカンマで区切ることによりいくつでも記述できる。また,最初のユーザーの設定項目を省略したときは,すべてのユーザーと同等の意味になる

u 所有者の権限
g グループの権限
o その他のユーザーの権限
a すべての権限
+ 後に記述した権限を付加する
– 後に記述した権限を削除する
= 後に記述した権限にする
r 読み込み権限
w 書き込み権限
x 実行権限
s セットID
t スティッキ・ビット

 

modeの数字による記述方法

3桁の8進数を使用して権限を指定することもできる。左から順に所有者,グループ,その他のユーザーの権限を表す。

0 —
1 –x
2 -w-
3 -wx
4 r–
5 r-x
6 rw-
7 rwx

 

特殊なモード

読み出し・書き込み・実行のほか「chmod」ではスティッキ・ビットおよびセットIDの指定をすることができる。

drwxrwxrwt スティッキ・ビット。指定したディレクトリ以下のファイルの削除・ファイル名の変更は所有者のみが行える
-rwsr-xr-x セット・ユーザーID。他人が実行する際,所有者の権限で実行する
-rwxrwsr-x セット・グループID。他人が実行する際,グループの権限で実行する

 

使用例

testファイルの権限を変更する
$ ls -l
-rw-r–r– 1 hoge hoge-grp 154 Nov 01 00:00 test
$ chmod a+x test ←すべてのユーザーに実行権限を与える
$ ls -l
-rwxr-xr-x 1 hoge hoge-grp 154 Nov 01 00:00 test
$ chmod g+w,o= test ←グループに書き込み権限をその他のユーザーにはすべて禁止する
$ ls -l
-rwxrwx— 1 hoge hoge-grp 154 Nov 01 00:00 test
$ chmod 444 test ←数字表記ですべてのユーザーを読み出し権限のみにする
$ ls -l
-r–r–r– 1 hoge hoge-grp 154 Nov 01 00:00 test
$ chmod 1777 test-dir ←スティッキ・ビットを付加する
$ ls -l
drxwrxwrxt 1 hoge hoge-grp 154 Nov 01 00:00 test-dir
$ chmod u+s test-prog1 ←ファイルにセット・ユーザーIDを付加する
$ ls -l
-rwsr-xr-x 1 hoge hoge-grp 154 Nov 01 00:00 test-prog1
$ chmod g+s test-prog2 ←ファイルにセット・グループIDを付加する
$ ls -l
-rwxrwsr-x 1 hoge hoge-grp 154 Nov 01 00:00 test-prog2

【 mkdir 】 ディレクトリを作成する

関連:【 rm 】 ファイルやディレクトリを削除する

構文

mkdir [-m mode] [-p] [-v] [–help] [–mode=mode] [–parents] [–verbose] [–version] directory…

 

オプション

-m, –mode mode ディレクトリのモードを設定する
-p, –parents 指定したディレクトリをサブディレクトリごと作成する。ツリー状のディレクトリも作成可能
-v, –verbose ディレクトリを作成するごとにメッセージを出力する
–help mkdirコマンドの使用法を表示する
–version バージョン情報を標準出力に表示する
directory 作成するディレクトリ名を指定する

 

説明

指定したファイルを削除する。また,-rオプションを付けるとディレクトリごと削除できる。このとき,警告メッセージが表示される。もし,警告メッセージを表示させたくない場合は-fオプションも同時に指定するとよい。

 

【 rm 】 ファイルやディレクトリを削除する

関連:【 mkdir 】 ディレクトリを作成する

オプション

-d 「–directory ディレクトリごと削除できる。スーパーユーザーのみ使用が可能」
-f 「–force 警告メッセージを表示しない」
-i 「–interactive ファイルを削除してよいかを問い合わせる」
-r 「-R, –recursive ディレクトリ内を再帰的に削除する」
-v「–verbose ファイルを削除する前にファイル名を表示する」

name 削除するファイルやディレクトリを指定。ワイルド・カード(*)も使用可能です。

–help rmコマンドの使用法を表示する

 

説明

指定したファイルを削除する。また,-rオプションを付けるとディレクトリごと削除できる。このとき,警告メッセージが表示される。もし,警告メッセージを表示させたくない場合は-fオプションも同時に指定するとよい。

 

使用例

カレント・ディレクトリ内の拡張子がtxtのファイルを削除する
$ rm *.txt

temp-dirディレクトリを内部のファイルごと削除する
$ rm -rf temp-dir

 

Linux パス(PATH)の確認と設定方法:pathの追加

 

参考url:
パス(PATH)の確認と設定方法は?

まずは、パス(PATH)の確認方法。

$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/webmaster/bin
次に、パスの設定方法。今回は[/sbin]にパスを通したいと思います。

$ PATH=$PATH:/sbin
$ export PATH
ちなみに、コマンド『 export PATH 』は必須。環境変数 PATH をエクスポート(出力)=環境変数を設定する、という意味があるそうです。

そして毎回ログインする度にパスの指定をするのは面倒なので、ログインする度に自動で設定する方法です。
環境変数の設定をサーバ内の全ユーザに対して指定したい場合は /etc/profile ファイルを開き、末尾に PATH=$PATH:~ と export を追加する方法が確実でしょう。とあるのでその方法でやってみます。

 

$ sudo vi /etc/profile

export PATH=$PATH:/sbin
上記で/etc/profileの設定が終わったらログインをし直して、[echo $PATH]でパス(PATH)を確認します。

$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/home/webmaster/bin
設定した通りに[/sbin]が表示されていればOK!

Itamaeコマンド一覧

対象バージョン

v1.9.6 (https://github.com/itamae-kitchen/itamae/releases/tag/v1.9.6)

※随時更新の予定です

全リソース共通のアトリビュート

アトリビュート名 用途 必須
aciton 実行するアクション × Symbol or Array
only_if あるコマンドが成功したときのみ実行 × String
not_if あるコマンドが失敗した時のみ実行 × String
user 実行ユーザ × String

リソース

execute

概要

  • シェルコマンドを実行する

アトリビュート

アトリビュート名 用途 必須
command 実行するシェルコマンド String

デフォルト値

アトリビュート名
action :run
Ex
execute "update yum repo" do
  user "root"
  command "yum -y update"
end

git

概要

  • git cloneを実行する

アトリビュート

アトリビュート名 用途 必須
repository cloneしたいgitリポジトリ String

デフォルト値

アトリビュート名
action :sync
Ex
git "/usr/local/rbenv" do
  repository "git://github.com/sstephenson/rbenv.git"
end

remote_file

概要

  • ファイルを転送する
  • Chefでいうところのcookbook_file
  • sourceは相対パスで指定

アトリビュート

アトリビュート名 用途 必須
owner 所有者 × String
group 所属グループ × String
source 転送したいファイルのパス String

デフォルト値

アトリビュート名
action :create
Ex
remote_file "/etc/profile.d/rbenv.sh" do
  owner "root"
  group "root"
  source "remote_files/rbenv.sh"
end

template

概要

  • 用意したテンプレートファイル(erb)を転送する
  • テンプレートファイルにはノード or variablesで定義した変数かを埋め込む

アトリビュート

アトリビュート名 用途 必須
owner 所有者 × String
group 所属グループ × String
source 転送したいテンプレートファイルのパス String
variables テンプレートファイルに引き渡したい変数 × Hash

デフォルト値

アトリビュート名
action :create
Ex
template "/tmp/template" do
  source "hello.erb"
  variables(goodbye: "Good bye")
end

package

概要

  • パッケージをインストールする

アトリビュート

アトリビュート名 用途 必須
name インストールしたいパッケージ名 × String
version インストールしたいパッケージのバージョン × String
options インストール時の実行オプション × String

デフォルト値

アトリビュート名
action :install
Ex
package "nginx" do
  version "1.6.1"
  options "--force-yes"
end

directory

概要

  • ディレクトリを作成する

アトリビュート

アトリビュート名 用途 必須
mode パーミッション × String
owner 所有者 × String
group 所属グループ × String

デフォルト値

アトリビュート名
action :create
Ex
directory "/var/foo/bar" do
  mode "775"
  owner "hoge"
  group "hoge"
end

link

概要

  • シンボリックリンクを作成する

アトリビュート

アトリビュート名 用途 必須
link リンク先のパス × String
to リンク先のパス String

デフォルト値

アトリビュート名
action :create
Ex
link "/tmp-link" do
  to "/tmp"
end

local_ruby_block

概要

  • blockを実行する

アトリビュート

アトリビュート名 用途 必須
block do 〜 end block内のコードを実行する Proc
Ex
local_ruby_block "greeting" do
  block do
    Itamae::Logger.info "板前"
  end
end

file

概要

  • ファイルを生成する

アトリビュート

アトリビュート名 用途 必須
mode パーミッション × String
owner 所有者 × String
group 所属グループ × String
content ファイルの内容 String
content_file 存在するファイルのパス String

デフォルト値

アトリビュート名
action :create
Ex
file "/tmp/file1" do
  content "Hello, World"
end

user

概要

  • ユーザを作成する

アトリビュート

アトリビュート名 用途 必須
uid ユーザID × String or Integer
gid グループID × String
username ユーザ名 × String
password パスワード × String
home 作成するユーザのホームディレクトリ × String
shell ログインシェル × String
system_user システムユーザとするか否か × true or false

デフォルト値

アトリビュート名
action :create
Ex
user "create user" do
  uid "123456789"
  username "hoge"
  password "abcdffg"
end

service

概要

  • サービスを起動や終了などを行う

アトリビュート

アトリビュート名 用途 必須
name サービス名 String

デフォルト値

アトリビュート名
action :nothing
Ex
service "cron" do
  action :stop
end

gem_package

概要

  • gemパッケージをインストールする

アトリビュート

アトリビュート名 用途 必須
package_name gem名 String
gem_binary 利用するgemコマンドのバイナリのパス × String or Array
version インストールするgemのバージョン × String
options gemコマンドのオプション × Array
source インストールするgemの取得先のURL × String

デフォルト値

アトリビュート名
action :install
gem_binary :gem
Ex
gem_package 'bundler' do
  gem_binary 'usr/local/rbenv/shims/gem'
  options ['--no-ri', '--no-rdoc']
end

ブランチの一覧表示する~gitコマンド

リポジトリを複製する

リモートリポジトリの内容をローカルに複製(ダウンロード)することができる。リポジトリにはrsync://example.com/path/to/repo.git/git://example.com/path/to/repo.git/ssh://[user@]example.com[:port]/path/to/repo.git/などの形式で対象を指定することができる。

1
git clone リポジトリ

 

リポジトリを作成する

カレントディレクトリにリポジトリを作成する。

1
git init

 

ブランチの一覧表示する

ローカルリポジトリに存在するブランチの一覧を表示する。

1
git branch

 

ブランチを作成する

ローカルリポジトリにブランチを新しく作成する。

1
git branch ブランチ名

 

ブランチの名前を変更する

checkoutしているブランチの名前を変更する。

1
git branch -m 変更後の名前

 

ブランチを削除する

ローカルリポジトリのブランチを削除する。

1
git branch -D ブランチ名

リモートリポジトリのブランチも削除する場合は,プッシュすれば良い。プッシュコマンドは以下のような書式で記述できる。
git push プッシュ先リポジトリ ローカルのブランチ名:リモートのブランチ名
なので,リモートのリポジトリを削除するには,ローカルのブランチを削除した状態で以下のようにプッシュすれば良い。

1
git push origin :ブランチ名

 

ブランチを切り替える

リモートリポジトリのブランチを取得し,ローカルリポジトリのブランチの内容を書き換える。

1
git checkout ブランチ名

 

ファイルを編集前の状態に戻す

リモートリポジトリのブランチからファイルを取得する。

1
git checkout ファイルパス

 

現在のブランチに含まれる内容を基に,新しいブランチを作成する

現在checkoutしているブランチの内容を基にして,新しいブランチを作成する。

1
git checkout -b ブランチ名

 

ブランチに他のブランチの内容をマージする

checkoutしているブランチに他のブランチの内容をマージする。マージした結果,コンフリクトが起こることもある。
コンフリクトが起こった場合は,手動でソースコードを修正する必要がある。

1
git merge ブランチ名

 

リモートリポジトリの内容を取り寄せる

リモートリポジトリのブランチの内容を取り寄せる。取り寄せただけでローカルリポジトリのブランチへのマージは行われない。

1
git fetch

 

リモートリポジトリの内容を取り寄せて,マージする

リモートリポジトリのブランチの内容を取り寄せ,マージを行う。

1
git pull

 

リモートリポジトリの内容を取り寄せて,リベースする

リモートリポジトリのブランチの内容を取り寄せ,リベースを行う。
新しくコミットを積む前にgit pullし忘れた場合や,コミット(枝分かれ)をキレイにしたいときに使う。

1
git pull --rebase

 

ブランチのコミット履歴を確認する

checkoutしているブランチに積まれているコミットの履歴を確認する。

1
git log

 

変更のあるファイルを確認する

変更のあるファイルを確認する。

1
git status

 

ファイルの差分を確認する

編集したファイルの,元の状態との差分を確認する。

1
git diff

 

ファイルの更新をステージング反映する

ファイルの更新をステージング(commit可能な状態)に反映する。

1
git add ファイルパス

 

ファイルの削除をステージングに反映する

ファイルの削除をステージング(commit可能な状態)に反映する。

1
git rm ファイルパス

 

更新内容をステージングから外す

ファイルの編集内容はそのままで,ステージングからファイルを外す(addをする前の状態に戻す)。

1
git reset

 

全ての内容を元に戻す

ファイルの編集内容ごと,全てのファイルを元の状態に戻す。
※HEAD~1やHEAD~2などと指定すると,いくつか前のコミットまで戻ることが出来る。

1
git reset --hard HEAD

 

ブランチに更新内容を反映する

checkoutしたブランチに対して自分で追加した更新内容を反映する。

1
git commit

–amendオプションを付けることで,1つ前のコミットに対してコミットの内容を上書きすることが出来る。

1
git commit --amend

 

ローカルリポジトリのコミットをリモートリポジトリに反映する

ローカルリポジトリで積んだコミットをリモートリポジトリに反映することが出来る。

1
git push origin HEAD

–amendを使ったコミットなどを行った場合は,-fオプションを付けることでプッシュすることができる。

1
git push -f origin HEAD

 

コミットの歴史を書き換える

派生元のコミットを最新のコミットにすることが出来る。masterの古いコミットを元に派生したブランチがあった場合,そのブランチをmasterの最新のコミットを元に派生したブランチにすることが出来る。

1
git rebase ブランチ名

コミットの歴史を書き換えることが出来る。実行すると,エディタが立ち上がりコミットの編集モードへと入る。
※originを指定することでリモートのブランチを基にしてコミットの歴史を書き換える。

1
git rebase -i origin ブランチ名

 

rebaseした内容を完了する

rebaseによるコミット履歴の変更を完了する。

1
git rebase --continue

 

rebaseした内容を元に戻す

rebaseによるコミット履歴の変更を取り止める。

1
git rebase --abort

 

特定のコミットへ戻る

reflogでコミットのハッシュ値を調べる。

1
git reflog

reflogで調べたハッシュを使い,resetで特定のコミットへ戻る。

1
git reset --hard ハッシュ値

 

他のブランチの特定のコミットを適用する

cherry-pickで特定のコミットのみをつまみ食いする。
reflog,もしくは他の情報から調べたハッシュ値を使用する。

1
git cherry-pick ハッシュ値

 

コミットを打ち消す(コミット履歴は積まれる)

ブランチへのコミットを打ち消す。コミットが無かったことになるように見えるが、実際はコミット履歴は積まれているかたちで変更が加わる。打ち消したいコミットハッシュを指定して使用する。ここには枝分かれしたブランチ名も指定することが出来る。

1
git revert コミットハッシュ

 

複数のファイルの内容を検索する

複数のファイルから,特定のキーワードにマッチする行を検索することが出来る。

1
git grep キーワード

 

問題のあるコミットを探索する

2分岐探索によって,バグが混入したコミットを探すことが出来る。

1
git bisect start 問題のあるコミットハッシュ 問題のないコミットハッシュ

※「問題のあるコミットハッシュ」には,バグが混入している最新のコミットハッシュを指定し,「問題のないコミットハッシュ」には,適当に時系列を遡って見つけたバグのまだ混入していない状態のコミットハッシュを指定する。

「問題ある」「問題ない」の判定は以下のコマンドで行う。

1
git bisect bad
1
git bisect good

この判定を何度か繰り返すことで,問題のあるコミットを絞り込むことができる。

探索が終了したら,以下のコマンドによってbisectモードを終了する。

1
git bisect reset

 

ファイルの変更内容を一時保存する

作業途中にレビュー依頼などがきて,他のブランチに切り替えたい場合,変更内容を一時保存しておくことが出来る。

1
git stash save

一時保存した変更内容が積まれたリストを確認する。

1
git stash list

一時保存した変更内容を取り出す。

1
git stash pop

一時保存したものが溜まり過ぎると,どんな変更内容だったのかが分からなくなるので,基本的には一時保存する内容は一つまでにして運用すると良い。

set_time_limit 実行時間の最大値を制限する

  スクリプトが実行可能な秒数を設定します。 この制限にかかるとスクリプトは致命的エラーを返します。 デフォルトの制限値は 30 秒です。 なお、php.iniでmax_execution_timeの 値が定義されている場合にはそれを用います。

 

この関数がコールされた場合、 タイムアウトカウンタをゼロから再スタートします。 言いかえると、タイムアウトがデフォルトの 30 秒で スクリプト実行までに 25 秒かかる場合に、 et_time_limit(20) を実行すると、スクリプトは、 タイムアウトまでに全体で 45秒 の間実行されます。

パラメータ ¶

seconds
最大実行時間を表す秒数。ゼロを設定すると、時間制限を行いません。

 

返り値 ¶

成功した場合に TRUE、失敗した場合に FALSE を返します。

 

警告

この関数は、PHP が セーフモード で実行されている場合には効果がないことに注意してください。 セーフモードをオフにするか、php.ini の時間制限を変更する以外に対策はありません。

NetBeansエディタの謎挙動、矩形選択への切り替え「Ctrl + Shift + R」

「Ctrl + Shift + R」
矩形選択の切り替え、謎の挙動から脱出します。

概要

通常マウスをドラッグした場合は複数行全体を選択することができます。ときどき全体ではなくて、複数行の一部分をまとめて選択出来れば便利なことがあります。NetBeansの最新版では、矩形の範囲で選択をするように切り替えることができます。

矩形選択って何?って思うかもしれないので、実際に画面を見てもらったほうがはやいと思います。

4種、セレクタにもいろんな種類がありますが、基本となるいくつかをご紹介

jQueryの指定ですが、基本は、「要素」に対し、「実行タイミング」を選び、「処理」を実行するという流れです。

例えば下記の例のような感じです。

「画像」を「クリック」で「入れ替える」。
「テキスト」を「マウスオーバー」で「フェードアウトさせる」。
「背景画像」を「マウスアウト」で「表示する」。
どうでしょう。感覚はつかめましたでしょうか。それでは、具体的な指定をしていきたいのですが、jQueryには必ず書かなければいけない基本形があります。

$(function(){
// ここにプログラムを記述
});

 

この記述は、「htmlを読み込んでから処理を実行する」という意味です。詳細は省きますが、jQueryの指定に必要な記述ですので、忘れないようにして下さい。

1.「要素」を選ぶ

要素を選ぶ記述を、通常「セレクタ」と呼びます。cssを使える人にはピンとくるのではないでしょうか?
このセレクタにもいろんな種類がありますが、基本となるいくつかをご紹介します。

idセレクタ

$(function(){
  $('#test').click(function () {
    $(this).text("クリックされました");
  });
});

classセレクタ

$(function(){
  $('.test').click(function () {
    $(this).text("クリックされました");
  });
});

要素セレクタ

$(function(){
  $('p').click(function () {
    $(this).text("クリックされました");
  });
});

子孫セレクタ

$(function(){
  $('div p').click(function () {
    $(this).text("クリックされました");
  });
});