Adsenseコード

ラベル bash の投稿を表示しています。 すべての投稿を表示
ラベル bash の投稿を表示しています。 すべての投稿を表示

2019-06-18

WordPressをSSHで接続して、CLIで操作する

自分のMacからXserverへSSH接続をし、CLI操作をしてWordPressを管理する、ということをやってみたいと思います。

まずXserverで、SSH接続を許可する設定があるのでそれをオンにします。

1.サーバーパネルにログインして、左にある「SSH設定」に進みます。
2.状態が「ON」にします。

次に「公開鍵認証用鍵ペアの生成」タブに移動して、SSHでサーバーに接続するときに使うパスワードデータを生成します。

ターミナルを起動して、下記の順にコマンド操作していきます。

# ディレクトリ「.ssh」をダウンロードフォルダに作成します。
$ mkdir ~/Downloads/.ssh
# ダウンロードフォルダにある「sampleServerID.key」を作成した「.ssh」フォルダに移動します。
$ mv ~/Downloads/sampleServerID.key ~/Downloads/.ssh/

# ディレクトリ「.ssh」に移動
$ cd ~/Downloads/.ssh/
# ファイル名を「id_xserver_rsa」に変更
$ mv sampleServerID.key id_xserver_rsa
# フォルダの権限を変更
$ chmod 700 ~/Downloads/.ssh
# Xserverにログインします
$ ssh -l sampleServerID -i id_xserver_rsa sampleServerID.xsrv.jp -p 10022

# 成功すると下記が表示されます。

The authenticity of host '[sampleServerID.xsrv.jp]:10022 ([111.111.111.111]:10022)' can't be established.
ECDSA key fingerprint is
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

# このように聞かれるので「yes」を入力

Are you sure you want to continue connecting (yes/no)?

# それ以外を入力すると下記が表示されます。

Please type 'yes' or 'no': yes

# 成功するとこれが表示

Warning: Permanently added '[sampleServerID.xsrv.jp]:10022,[111.111.111.111]:10022' (ECDSA) to the list of known hosts.

# これが表示されたら、Xserverにログインして先程行った「公開鍵認証用鍵ペアの生成」タブで入力したパスワードを入力します。

Enter passphrase for key 'id_xserver_rsa':

# 成功するとこれが表示

Last login: Sun Oct 14 19:52:21 2018 from c159144.net180131.cablenet.ne.jp

# サーバ側に移動すると、左側の表示がこうなります

[(サーバID)@svXXXX ~]$

例 [sample@sv1234 ~]$

# これを入力してインストールします。

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

# 正しくインストールされたか検証します。

php wp-cli.phar --info

# 成功すると、以下の実行結果が表示される

OS: Linux 3.10.0-693.11.1.el7.x86_64 #1 SMP Mon Dec 4 23:52:40 UTC 2017 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php
PHP version: 7.1.12
php.ini used: /etc/php.ini
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /XXXXXXXX/XXXXXXXX
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.0.1



参考
https://www.xserver.ne.jp/manual/man_server_ssh.php
https://hi3103.net/notes/web/1128
https://qiita.com/ryo2132/items/38b5a93b3df476dd2b44



2017-10-03

mac OS のグループ、ユーザの作成の周辺コマンド集

Super ユーザに切替
$ su

ユーザ hoo に切替
$ su hoo

グループ名とプライマリグループIDの一覧を表示
$ sudo dscl . -list /Groups PrimaryGroupID

ユーザ名とプライマリグループIDの一覧を表示
$ sudo dscl . -list /Users PrimaryGroupID

ユーザ名と UID の一覧を表示
$ sudo dscl . -list /Users UniqueID

ユーザのIDを確認する
$ id foo

users というグループの詳細を参照する
$ sudo dscl . -read /Groups/users

foo というアカウント名のユーザの詳細を参照する
$ sudo dscl . -read /Users/foo

グループの作成 or gidの変更
$ sudo dscl . -create /Groups/users gid 601

ユーザの作成
$ sudo dscl . -create /Users/foo

ユーザのフルネームを設定 or 変更
$ sudo dscl . -create /Users/foo RealName foo



参考
http://shige-mon.blogspot.jp/2017/09/parallels-desktop-uid-0-parallels.html
http://shige-mon.blogspot.jp/2017/10/mac-oscui.html






mac OS のログインパスワードを強制的に変更する

■シングルユーザモードの起動

起動時に下記を押しておく cmd + S

■起動後の操作

下記を入力し、 Super ユーザの権限状態にします /sbin/fsck -fy /sbin/mount -uw / ユーザを一覧表示 ls /Users launchctl load /System/Library/LaunchDaemons/com.apple.opendirectoryd.plist (Snow Leopard以前の場合) launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist ログインパスワードの設定 dscl . -passwd /Users/username newpassword 再起動 reboot 参考 http://blog.livedoor.jp/ag_plusplus/archives/67958160.html https://www.lifehacker.jp/2012/10/121019break_into_mac.html

【mac OS】CUIでユーザを作成する

■作成するユーザ

以下の設定のユーザを作成します
アカウント名foo
フルネーム (RealName)foo
アカウント (UID)foo (601)
グループusers (601)
ホームディレクトリ/Users/foo
ログインシェル/bin/bash

■ユーザの作成

$ sudo dscl . -create /Groups/users gid 601 $ sudo dscl . -create /Users/foo $ sudo dscl . -create /Users/foo RealName foo $ sudo dscl . -create /Users/foo UniqueID 601 $ sudo dscl . -create /Users/foo PrimaryGroupID 601 $ sudo dscl . -create /Users/foo NFSHomeDirectory /Users/foo $ sudo dscl . -create /Users/foo UserShell /bin/bash $ sudo passwd foo

■作成グループの確認

作成したグループを確認します $ sudo dscl . -read /Groups/users AppleMetaNodeLocation: /Local/Default GeneratedUID: 05416EC7-AD6E-47AB-A7D1-7752821BF5CE PrimaryGroupID: 601 RecordName: users RecordType: dsRecTypeStandard:Groups

■作成ユーザの確認 ・・・①

下記では、設定したホームディレクトリ、グループ、フルネーム、 アカウント名、アカウント (UID)、ログインシェルが確認できます $ sudo dscl . -read /Users/foo AppleMetaNodeLocation: /Local/Default AuthenticationAuthority: ;ShadowHash; ;Kerberosv5;;foo@LKDC:SHA1.E5FB873ECB88A3928DE07A18294D98A61EB3BFEE;LKDC:SHA1.E5FB873ECB88A3928DE07A18294D98A61EB3BFEE; GeneratedUID: BD01036A-109A-4005-8932-D2358643061F NFSHomeDirectory: /Users/foo Password: ******** PrimaryGroupID: 601 RealName: foo RecordName: foo RecordType: dsRecTypeStandard:Users UniqueID: 601 UserShell: /bin/bash

■ユーザのIDを確認する

$ id foo uid=601(foo) gid=601(users) groups=601(users)

■作成したユーザの属性変更

作成した時と同様のコマンドで、 上書きするイメージで設定すれば変更されます フルネーム (RealName) の変更 $ sudo dscl . -create /Users/foo RealName hoge

■ユーザ情報の別の確認方法

Linux のグループとユーザの関係について理解を深めるために、 以下の方法でユーザの情報を確認してみてください ユーザデータベース情報の更新、追加用コマンド $ chpass mac OS に登録したユーザの一覧を表示します $ dscl Entering interactive mode... (type "help" for commands) > cd Local/Default/Users /Local/Default/Users > ls ユーザ情報の確認 上記①と同じ結果が得られます /Local/Default/Users > cd (user) /Local/Default/Users/user > read ※ 以下でも情報を確認できます > cd /Contact/Users /Contact/Users > ls 参考 macのユーザ情報管理はOpenDirectoryだった http://fanblogs.jp/macyarounanoka/archive/137/0

■visudo について

Linuxとは異なるので、下記のコマンドでは 権限がないと怒られてしまいます $ visudo visudo: /etc/sudoers: Permission denied この場合は以下のようにするとよいです user$ su Password: sh-3.2# visudo visudo: /etc/sudoers.tmp unchanged 参考 http://l-w-i.net/t/macosx/dscl_002.txt https://qiita.com/matsubo/items/50a2530e6d6f9ac0645e https://suin.io/473 Macで管理者権限がなくなってしまった時の対処方法 http://underwoodmac.cocolog-nifty.com/blog/2010/08/mac-95c7.html GUI でログインシェルを確認、変更する方法 https://rcmdnk.com/blog/2015/05/25/computer-mac-bash-zsh/ Linuxにおけるグループとユーザについて https://begi.net/read/base/07.html

2017-10-02

bash & sh と source コマンドの違い

■前提

予め下記の sh ファイルをホームディレクトリに作成しておきます ~/goApp.sh ``` #!/bin/bash cd /Applications echo "Applicationディレクトリに移動" ``` ※「~」はホームディレクトリを表しています

■検証

bash と sh コマンドで、 sh ファイルを実行した場合は、 以下のようになります。 ~ user$ sh goApp.sh Applicationディレクトリに移動 ~ user$ source コマンドで、 sh ファイルを実行した場合は、 以下のようになります。 ~ user$ source goApp.sh Applicationディレクトリに移動 Applications user$ つまり、 bash コマンドや sh コマンドでは、 sh ファイル内で実行されるディレクトリ移動は、 shファイル内の処理のみで有効( sh ファイルの処理が終わるとなくなる) 一方 source コマンドでは、 sh ファイルを呼び出している 環境上の実行スクリプトとして実行されているため、 sh ファイルの処理が終わっても、 行った処理の効果が継続します

2017-09-29

nmap を mac OS にインストールする

■Nmap のソースファイルをダウンロード

下記のURLのページ中の 「Latest stable Nmap release tarball: nmap-7.60.tar.bz2」 からダウンロードします https://nmap.org/download.html

■ソースファイルの解凍

下記を実行して、解凍します #ダウンロードディレクトリに移動 $ cd ~/Downloads/ #tar コマンドで解凍 $ tar xjvf nmap-7.60.tar.bz2

■インストール

下記を実行し、インストールします $ cd nmap-7.60 $ ./configure $ make $ sudo make install このコードではそれぞれ  環境を調査し、Makefileの作成  ソースコードのコンパイル  バイナリファイルのコピー(インストール) を行っています

■動作確認

下記を実行し、ホームディレクトリに移動し、 バージョン情報を確認して動作確認します $ cd ~/ $ nmap -V 参考 https://macperson.net/mac-nmap/

2017-08-14

イヌでもわかるGit入門 ターミナル 操作テンプレート


◆既に作成されているリポジトリを利用してスタートする場合


■クローン


この操作では、インターネット上にあるリポジトリ(リモートリポジトリ)をコピーして、自分のローカルに同じリポジトリ(ローカルリポジトリ)を作成します。


ローカルリポジトリを作成するディレクトリに移動します。
下記を実行します。
<URI>の部分に、リモートリポジトリが提供されるURLをいれます。
$ git clone <URI>


例 バックログの git を clone
下記の例では、途中で BacklogId とパスワードを入力します。


$ git clone https://testspace.backlog.jp/git/testProject/testRepository.git
Cloning into 'testRepository'...
Username for 'https://testspace.backlog.jp': BacklogId
Password for 'https://BacklogId@testspace.backlog.jp':
remote: Counting objects: 1361, done.
remote: Compressing objects: 100% (1312/1312), done.
remote: Total 1361 (delta 675), reused 184 (delta 39)
Receiving objects: 100% (1361/1361), 104.27 MiB | 9.20 MiB/s, done.
Resolving deltas: 100% (675/675), done.



■プル


この操作では、インターネット上にあるリモートリポジトリから、
自分のローカル上にあるローカルリポジトリへ変更内容を反映させます


クローンで作成されたディレクトリ「testRepository」に移動して以下を実行します。
$ git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From <リポジトリURI>
   fbe36a2..c689df6  master     -> origin/master
Merge made by the 'recursive' strategy.
 ...B01_03_05_新データ・作業量予測表.xlsx | Bin 59870 -> 60098 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)



■インデックスに登録


作成、更新したファイルをインデックスに全て登録する。
$ git add .


以下のコマンドで、ファイルがインデックスに
登録されたことが確認できます。
$ git status
# On branch master
nothing to commit (working directory clean)


上記の「全てをインデックスに登録する」では
余計なシステムファイル(「~$」などの隠しファイル)
を含む場合があるので、git status で確認して不要なファイルが
混じっていたら、それを取り除いて必要なファイルだけを
インデックスに登録するようにしてあげましよう。



■git status の中身の見方


new file:
 インデックスに登録されたファイルです。


Untracked files:
 これ以降のファイルはインデックスに登録されていないファイルです。



■git status でファイル名が文字化けしてしまう場合


以下を実行します
$ git config --global core.quotepath false


参考



■インデックスに登録したファイルを取り消す


$ git reset HEAD sample.txt
以下のコマンドで、全てを取り消すことができます。
$ git reset HEAD



参考
http://tweeeety.hateblo.jp/entry/2015/06/10/212631



■コミット


インデックスに登録したファイルを自分のPCのローカルリポジトリへ
変更を反映させます。
$ git commit -m "first commit"



以下のコマンドで、コミットした内容を確認できます。
$ git log



以下のコマンドで、コミットしていないインデックスに
登録したファイルがないことを確認できます。
$ git status
# On branch master
nothing to commit (working directory clean)



参考
https://www.backlog.jp/git-guide/intro/intro2_4.html



■対象リポジトリの確認


以下のコマンドで、リモートリポジトリの一覧を表示します。
$ git remote
origin



■プッシュ


この操作では、 pull の逆で、自分のローカル上にあるローカルリポジトリから
インターネット上にあるリモートリポジトリへ変更内容を反映させます。



以下のコマンドでプッシュします。
$ git push origin master
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.46 MiB | 0 bytes/s, done.
Total 12 (delta 7), reused 0 (delta 0)
To <リポジトリURI>
   c689df6..4207a26  master -> master



※自分が pull した後にリモートリポジトリに変更が追加され、
自分がその変更されたファイルを変更しようとすると、コンフリクトが発生します。
その場合はマージが必要になります。



ただし、変更を加えたファイルが互いに別々であれば、
コンフリクトは発生せず、差分は吸収されてリモートリポジトリへ
マージがなされます。



■ push がエラーになる場合


push を実行したときに、以下のエラーが表示された場合、
ローカルリポジトリがリモートと比較して最新でない可能性があります。
pull をしてから再実行してみましょう。



To <リポジトリURI>
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to '<リポジトリURI>'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.



参考 実は pull = fetch + merge origin/master
https://qiita.com/osamu1203/items/cb94ef9da02e1ec3e921



■ push がエラーになる場合2


-bash: syntax error near unexpected token `('

addで上記のエラーが出た時の対処法です。
このエラーは、gitに限らずbashの操作で入力文字がうまくエスケープできていないときに表示されます。
以下のように、問題の部分をダブルクォーテーションで挟んであげましょう。

$ git add "sample.txt"



参考
sh.exe": syntax error near unexpected token `('



■ push がエラーになる場合3


push時に以下のようなコンフリクトのエラーが置きた場合の対処法です。

$ git push
To https://test.backlog.jp/git/.....git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://test.backlog.jp/git/.....git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.



この場合は、一度リモートリポジトリの最新をpullして、そこへ変更を加えるようにしましよう。
以下を実行すると、ローカルリポジトリの管理ファイルは、全てリモートリポジトリの内容で置き換わります。
※ この操作をするときは、念のため更新したファイルのバックアップを事前に取っておいてください。

$ git fetch origin
$ git reset --hard origin/master



あとはファイルを更新し、通常通りpushします。



参考
https://qiita.com/ms2sato/items/72b48c1b1923beb1e186



■Git管理内のファイルの名前を変更する場合


Finder などのエクスプローラからファイル名を変更してはいけません。
Git から操作をしてファイル名を変更することで、履歴を継続的に管理することができます。

Git の操作によるファイル名の変更は、以下のコマンドを打ちます。

$ git mv oldFileName.txt newFileName.txt



ステータスで反映されたか確認してみます。

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

renamed:    oldFileName.txt -> newFileName.txt



■特定のファイルだけ前のバージョンに戻したい場合


戻したいバージョンのコミットのハッシュ値を取得し、
checkout をすることで戻します。

以下を入力して、戻したいコミットのハッシュ値を取得します。

$git log (ファイルの相対パス)
commit f174f55e3b3539ca69c2720bdf936c46aaaaaaaa
Author: 山田 太郎 <myamada@p.trs.com>
Date:   Wed Dec 27 11:54:52 2017 +0900

    コミット時のコメント新

commit eca0b933f08d85c404d7bdfbbd048a0aaaaaaaaa
Author: hsasaki <hsasaki@trs.co.jp>
Date:   Wed Dec 27 11:45:33 2017 +0900

    コミット時のコメント旧



commit の後に続いている文字列がハッシュ値です。
戻したいバージョンのハッシュ値で以下を入力します。

$ git checkout (コミットハッシュ値) (ファイルの相対パス)



以上で、「前のバージョンに戻す」という変更がされますので、
この変更をコミットします。
履歴には、前のバージョンに戻したという変更として記録されます。



参考
http://mementomori.info/git%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A0%E3%81%91%E9%81%8E%E5%8E%BB%E3%81%AE%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88/



◆自分用のリポジトリを作成して始める場合


■
対象としたいディレクトリまで移動します。

$ git init
$ git add *
$ git commit -m "initial import"



参考
https://qiita.com/mountcedar/items/682743c95fd3b8fc274b



参考
Git rmコマンドの使い方
https://eng-entrance.com/git-rm