20190411のLinuxに関する記事は5件です。

【チートシート】目的別GitHubの使い方【初心者用】

当記事の目的

以下の悩みを解決

  • GitHubのコマンドが書いてあるページはたくさんあるけど、現状に合わせてどう組み合わせて使ったらいいか分からない
  • はじめてGitHub触るけどぶっちゃけ何から手を付けたらいいか分からない

前提条件

  • 構成管理システムの概念的な話は一切触れません
  • GitHubのコマンドをインストール済みで、Linux上でGitHubにアクセスすることを想定
  • fetchとは何か、mergeとは何か、ローカルリポジトリとは?originとは?みたいな話は別のまとめを見てください。気が向いたら参考ページ張ります
  • 筆者がGitHubに慣れていくにつれ加筆されていきます

GitHubコマンド手順

case1:開発チームに入ったぞ!早速ローカルのフォルダにリモートのソースコードをクローンしてこよう!

手順

  • 自分のリポジトリにアクセス
    画像

  • Clone or downloadをクリックし、表示されたURLを控える(https://github.com/自分のリポジトリ.gitとする)

  • ローカルリポジトリを作成したいフォルダに移動

  • $ git clone https://github.com/自分のリポジトリ.git -b branch_name local_folder_name

    • branch_nameは、リモートのどのブランチをクローンするか指定
    • local_folder_nameは、作成するローカルリポジトリの名称(デフォルトはリモートURL-ブランチ名
  • ユーザID、パスワード入力を求められるため、GitHubにログインする際のユーザ名とパスワードを入力する

詰まりそうな点

case2:ブランチを分けてカスタマイズをするぞ!まずはブランチを分けよう!

手順

  • gitクローンされた、ローカルリポジトリ下にいることを確認
  • $ git branchでブランチの状態を確認
shun@shun-VirtualBox:~/xxx/yyy$ git branch
* original_branch_name
  • $ git checkout -b new_branch_name original_branch_nameで新ブランチ作成
    • new_branch_nameは、作成する新しいブランチの名称
    • original_branch_nameは、基にするローカルのブランチ名称
  • $ git branchでブランチの状態を確認
shun@shun-VirtualBox:~/xxx/yyy$ git branch
  original_branch_name
* new_branch_name

case3:カスタマイズが終わったから、分岐したローカルブランチに対してコミットしよう!

  • gitクローンされた、ローカルリポジトリ下にいることを確認
  • $ git statusでチェックアウトしてからの変更情報を確認
    • deleted: moved_file.pyは、消去されたファイル(実際にはファイル移動)
    • modified: changed_file.pyは、変更が加えられたファイル
    • deleted: deleted_file.pyは、消去されたファイル
    • new_file.pyは、新規で作成されたファイル
    • new_folder/moved_file.pyは、新規で作成されたファイル(実際にはファイル移動)
shun@shun-VirtualBox:~/xxx/yyy$ git status
ブランチ new_branch_name
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
    deleted:    moved_file.py
    deleted:    deleted_file.py
    modified:   changed_file.py


追跡されていないファイル:
  (use "git add <file>..." to include in what will be committed)

    new_folder/moved_file.py
    new_file.py

no changes added to commit (use "git add" and/or "git commit -a")
  • この状態を想定して、まずはaddしていく
    • $ git add moved_file.py
    • $ git add deleted_file.py
    • $ git add changed_file.py
    • $ git add new_folder/moved_file.py
    • $ git add new_file.py
  • $ git statusでaddした後の状態を確認
    • それぞれがrenamed, modified, deleted, new fileとしてコミット予定の発射台に乗っていることを確認する
shun@shun-VirtualBox:~/xxx/yyy$ git status
ブランチ new_branch_name

コミット予定の変更点:
  (use "git reset HEAD <file>..." to unstage)

    renamed:    moved_file.py -> new_folder/moved_file.py
    modified:   changed_file.py
    deleted:    deleted_file.py
    new file:   new_file.py

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)


追跡されていないファイル:
  (use "git add <file>..." to include in what will be committed)

no changes added to commit (use "git add" and/or "git commit -a")
  • $ git commit -m 'message'でコミットを実行
    • messageは任意のコミットメッセージを入力

詰まりそうな点

  • 間違えてaddして、取り消したい場合は$ git reset HEAD added_fileを実行。$ git reset HEADまでは固定。renameの場合は、変更前のファイルと変更後のファイルに対して両方resetする必要がある
  • commit時にメッセージは必須で、-m以降を入力しないとvimが開いてしまう

case4:ローカルのブランチにコミットしたぞ!リモートブランチにも反映しよう!

手順

  • $ git push origin new_branch_name
    • originは固定値
    • new_branch_nameはリモートに反映させたいブランチ名称

詰まりそうな点

  • リモートに同一名称のブランチがない場合は、new_branch_nameが新規作成される

case5:ローカルのブランチを、リモートのブランチの状態に合わせたい!

手順

  • $ git fetch origin
    • [new branch]となっているブランチは、ローカルには無いけどリモートに存在するブランチ
    • original_branch_nameは、ローカルにもリモートにも存在するブランチ
shun@shun-VirtualBox:~/xxx/yyy$ git fetch origin
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), done.
From https://github.com/自分のリポジトリ
 * [new branch]      new_branch   -> origin/new_branch
   c5996a4..47d6cc0  original_branch_name    -> origin/original_branch_name
  • $ git reset --hard origin/original_branch_name
    • git reset --hard origin/までは固定、original_branch_nameは、合わせたいブランチ名称
    • fetchしてきたリモートのブランチを、ローカルの同一名称ブランチに反映させますよ!という命令
  • $ git checkout original_branch_nameで、reset後のブランチに移動する
  • $ git clean -df .で余分なファイルを削除する
    • ここまでの命令では、あくまで更新情報/新規作成情報のみをリモートから取得できるが、不要ファイルの削除をしてあげる必要がある
    • ここまで実行することで、リモートブランチと全く同じ状態になる

詰まりそうな点

  • fetchって何?と思う人は、リモートリポジトリとローカルリポジトリの中間層があると思えばよい。そこを「origin」と呼んでおり、リモートをoriginに反映させる処理をfetchと呼ぶ。originを使ってローカルリポジトリをどうするかが、reset以降のコマンド【入門者向け】Gitのfetchコマンドについて図を用いて解説

続く

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【チートシート】目的別GitHubの使い方

当記事の目的

以下の悩みを解決

  • GitHubのコマンドが書いてあるページはたくさんあるけど、現状に合わせてどう組み合わせて使ったらいいか分からない
  • はじめてGitHub触るけどぶっちゃけ何から手を付けたらいいか分からない

前提条件

  • 構成管理システムの概念的な話は一切触れません
  • GitHubのコマンドをインストール済みで、Linux上でGitHubにアクセスすることを想定
  • fetchとは何か、mergeとは何か、ローカルリポジトリとは?originとは?みたいな話は別のまとめを見てください。気が向いたら参考ページ張ります
  • 筆者がGitHubに慣れていくにつれ加筆されていきます

GitHubコマンド手順

case1:開発チームに入ったぞ!早速ローカルのフォルダにリモートのソースコードをクローンしてこよう!

手順

  • 自分のリポジトリにアクセス
    画像

  • Clone or downloadをクリックし、表示されたURLを控える(https://github.com/自分のリポジトリ.gitとする)

  • ローカルリポジトリを作成したいフォルダに移動

  • $ git clone https://github.com/自分のリポジトリ.git -b branch_name local_folder_name

    • branch_nameは、リモートのどのブランチをクローンするか指定
    • local_folder_nameは、作成するローカルリポジトリの名称(デフォルトはリモートURL-ブランチ名
  • ユーザID、パスワード入力を求められるため、GitHubにログインする際のユーザ名とパスワードを入力する

詰まりそうな点

case2:ブランチを分けてカスタマイズをするぞ!まずはブランチを分けよう!

手順

  • gitクローンされた、ローカルリポジトリ下にいることを確認
  • $ git branchでブランチの状態を確認
shun@shun-VirtualBox:~/xxx/yyy$ git branch
* original_branch_name
  • $ git checkout -b new_branch_name original_branch_nameで新ブランチ作成
    • new_branch_nameは、作成する新しいブランチの名称
    • original_branch_nameは、基にするローカルのブランチ名称
  • $ git branchでブランチの状態を確認
shun@shun-VirtualBox:~/xxx/yyy$ git branch
  original_branch_name
* new_branch_name

case3:カスタマイズが終わったから、分岐したローカルブランチに対してコミットしよう!

  • gitクローンされた、ローカルリポジトリ下にいることを確認
  • $ git statusでチェックアウトしてからの変更情報を確認
    • deleted: moved_file.pyは、消去されたファイル(実際にはファイル移動)
    • modified: changed_file.pyは、変更が加えられたファイル
    • deleted: deleted_file.pyは、消去されたファイル
    • new_file.pyは、新規で作成されたファイル
    • new_folder/moved_file.pyは、新規で作成されたファイル(実際にはファイル移動)
shun@shun-VirtualBox:~/xxx/yyy$ git status
ブランチ new_branch_name
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
    deleted:    moved_file.py
    deleted:    deleted_file.py
    modified:   changed_file.py


追跡されていないファイル:
  (use "git add <file>..." to include in what will be committed)

    new_folder/moved_file.py
    new_file.py

no changes added to commit (use "git add" and/or "git commit -a")
  • この状態を想定して、まずはaddしていく
    • $ git add moved_file.py
    • $ git add deleted_file.py
    • $ git add changed_file.py
    • $ git add new_folder/moved_file.py
    • $ git add new_file.py
  • $ git statusでaddした後の状態を確認
    • それぞれがrenamed, modified, deleted, new fileとしてコミット予定の発射台に乗っていることを確認する
shun@shun-VirtualBox:~/xxx/yyy$ git status
ブランチ new_branch_name

コミット予定の変更点:
  (use "git reset HEAD <file>..." to unstage)

    renamed:    moved_file.py -> new_folder/moved_file.py
    modified:   changed_file.py
    deleted:    deleted_file.py
    new file:   new_file.py

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)


追跡されていないファイル:
  (use "git add <file>..." to include in what will be committed)

no changes added to commit (use "git add" and/or "git commit -a")
  • $ git commit -m 'message'でコミットを実行
    • messageは任意のコミットメッセージを入力

詰まりそうな点

  • 間違えてaddして、取り消したい場合は$ git reset HEAD added_fileを実行。$ git reset HEADまでは固定。renameの場合は、変更前のファイルと変更後のファイルに対して両方resetする必要がある
  • commit時にメッセージは必須で、-m以降を入力しないとvimが開いてしまう

case4:ローカルのブランチにコミットしたぞ!リモートブランチにも反映しよう!

手順

  • $ git push origin new_branch_name
    • originは固定値
    • new_branch_nameはリモートに反映させたいブランチ名称

詰まりそうな点

  • リモートに同一名称のブランチがない場合は、new_branch_nameが新規作成される

case5:ローカルのブランチを、リモートのブランチの状態に合わせたい!

手順

  • $ git fetch origin
    • [new branch]となっているブランチは、ローカルには無いけどリモートに存在するブランチ
    • original_branch_nameは、ローカルにもリモートにも存在するブランチ
shun@shun-VirtualBox:~/xxx/yyy$ git fetch origin
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), done.
From https://github.com/自分のリポジトリ
 * [new branch]      new_branch   -> origin/new_branch
   c5996a4..47d6cc0  original_branch_name    -> origin/original_branch_name
  • $ git reset --hard origin/original_branch_name
    • git reset --hard origin/までは固定、original_branch_nameは、合わせたいブランチ名称
    • fetchしてきたリモートのブランチを、ローカルの同一名称ブランチに反映させますよ!という命令
  • $ git checkout original_branch_nameで、reset後のブランチに移動する
  • $ git clean -df .で余分なファイルを削除する
    • ここまでの命令では、あくまで更新情報/新規作成情報のみをリモートから取得できるが、不要ファイルの削除をしてあげる必要がある
    • ここまで実行することで、リモートブランチと全く同じ状態になる

詰まりそうな点

  • fetchって何?と思う人は、リモートリポジトリとローカルリポジトリの中間層があると思えばよい。そこを「origin」と呼んでおり、リモートをoriginに反映させる処理をfetchと呼ぶ。originを使ってローカルリポジトリをどうするかが、reset以降のコマンド【入門者向け】Gitのfetchコマンドについて図を用いて解説

続く

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

よく使うrpmコマンドまとめ

最近使うことがあるのでまとめてみました。

RPMはパッケージ管理を行うシステムで、
CentOSとか、RedHat系のディストリビューションに採用されています。

RPMのパッケージは拡張子が.rpmとなっており、
これを操作するのがrpmコマンドです。

基本的な書き方

$ rpm {オプション} {パッケージ名}

オプション部分は基本的に複数のrpmオプションを
組み合わせて使います。
なので詳しいオプションはここでは記載しません。

コマンド

・パッケージのインストール
$ rpm -ivh {パッケージ名}

・パッケージのアップグレード
$ rpm -Uvh {パッケージ名}

・パッケージのアンインストール
$ rpm -evh {パッケージ名}

・インストールされているrpmパッケージを一覧表示
$ rpm -qa {パッケージ名}

・rpmパッケージの情報を表示
$ rpm -qi {パッケージ名}

・パッケージからインストールされたファイルを一覧表示
$ rpm -ql {パッケージ名}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxにpython3実行環境を構築した話

「pipてなに?エレキバン?」
というレベルの私がpython3/pip/pythonのモジュールが動く環境を構築した時のメモ。

入れるもの入れまくる

python3

-> yum で

bash
yum search python36
sudo yum install rh-python36.x86_64

PATHが通っていないので、python2に向いているシンボリックリンクをpython3に向くように作り直し

bash
# pythonコマンドのありかを確認
which python

# ↑で確認したパスに移動
cd /usr/bin

# すでにシンボリックリンクがあるので削除
sudo rm python

# python3に向くリンクを作成
sudo ln -s /usr/local/python/bin/python python

pip

-> yum で

bash
yum search pip
sudo yum install rh-python36-python-pip.noarch

モジュール類

-> pip で

bash
sudo pip install numpy

適当なモジュールを入れようとすると

bash
You are using pip version 9.0.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

pipのバージョンが古くて怒られる。自らをバージョンアップ。

bash
sudo pip install --upgrade pip

動確

テストスクリプトをこちらから拝借
Pythonを使えるNumPyのインストール方法や基本的な使…|Udemy メディア

test.py
#! /usr/bin/python
import numpy as np

#配列(ndarray)
test1 = np.array([1,2,3,4,5])

#配列のから条件が満たされた要素番号を取得する
test2 = np.where(test1>=3)
print(test2[0])

成功例

bash
./test.py
[2 3 4]

モジュールがないよエラーになる場合

bash
./test.py
(略)
ModuleNotFoundError: No module named 'numpy'

モジュール検索のパスが違うらしい

モジュール検索のパス設定確認
pythonコンソールログイン

python(console)
import sys
print(sys.path)

結果を記憶①

インストールしたモジュールがどこに置かれちゃったか確認

bash
find / -name numpy

結果を記憶②

対応方法としては下記のどちらか
1)②を①に mv する
2)②のパスを①に追加する

1)だとモジュール追加するたびにmvしないといけなさそうなので2)のほうがよいかもしれない。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【チートシート】GitHubコマンド手順【やりたいこと別】

当記事の目的

以下の悩みを解決

  • GitHubのコマンドが書いてあるページはたくさんあるけど、現状に合わせてどう組み合わせて使ったらいいか分からない
  • はじめてGitHub触るけどぶっちゃけ何から手を付けたらいいか分からない

※重要 前提条件

  • 構成管理システムの概念的な話は一切触れません
  • GitHubのコマンドをインストール済みで、Linux上でGitHubにアクセスすることを想定
  • fetchとは何か、mergeとは何か、ローカルリポジトリとは?originとは?みたいな話は別のまとめを見てください。気が向いたら参考ページ張ります
  • 筆者がGitHubに慣れていくにつれ加筆されていきます

GitHubコマンド手順

case1:開発チームに入ったぞ!早速ローカルのフォルダにリモートのソースコードをクローンしてこよう!

手順

  • 自分のリポジトリにアクセス
    画像

  • Clone or downloadをクリックし、表示されたURLを控える(https://github.com/自分のリポジトリ.gitとする)

  • ローカルリポジトリを作成したいフォルダに移動

  • $ git clone https://github.com/自分のリポジトリ.git -b branch_name local_folder_name

    • ※branch_nameは、リモートのどのブランチをクローンするか指定
    • ※local_folder_nameは、作成するローカルリポジトリの名称(デフォルトはリモートURL-ブランチ名
  • ユーザID、パスワード入力を求められるため、GitHubにログインする際のユーザ名とパスワードを入力する

詰まりそうな点

case2:ブランチを分けてカスタマイズをするぞ!まずはブランチを分けよう!

手順

  • gitクローンされた、ローカルリポジトリ下にいることを確認
  • $ git branchでブランチの状態を確認
shun@shun-VirtualBox:~/xxx/yyy$ git branch
* original_branch_name
  • $ git checkout -b new_branch_name original_branch_nameで新ブランチ作成
    • new_branch_nameは、作成する新しいブランチの名称
    • original_branch_nameは、基にするローカルのブランチ名称
  • $ git branchでブランチの状態を確認
shun@shun-VirtualBox:~/xxx/yyy$ git branch
  original_branch_name
* new_branch_name

case3:カスタマイズが終わったから、分岐したローカルブランチに対してコミットしよう!

  • gitクローンされた、ローカルリポジトリ下にいることを確認
  • $ git statusでチェックアウトしてからの変更情報を確認
    • deleted: moved_file.pyは、消去されたファイル(実際にはファイル移動)
    • modified: changed_file.pyは、変更が加えられたファイル
    • deleted: deleted_file.pyは、消去されたファイル
    • new_file.pyは、新規で作成されたファイル
    • new_folder/moved_file.pyは、新規で作成されたファイル(実際にはファイル移動)
shun@shun-VirtualBox:~/xxx/yyy$ git status
ブランチ new_branch_name
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
    deleted:    moved_file.py
    deleted:    deleted_file.py
    modified:   changed_file.py


追跡されていないファイル:
  (use "git add <file>..." to include in what will be committed)

    new_folder/moved_file.py
    new_file.py

no changes added to commit (use "git add" and/or "git commit -a")
  • この状態を想定して、まずはaddしていく
    • $ git add moved_file.py
    • $ git add deleted_file.py
    • $ git add changed_file.py
    • $ git add new_folder/moved_file.py
    • $ git add new_file.py
  • $ git statusでaddした後の状態を確認
    • それぞれがrenamed, modified, deleted, new fileとしてコミット予定の発射台に乗っていることを確認する
shun@shun-VirtualBox:~/xxx/yyy$ git status
ブランチ new_branch_name

コミット予定の変更点:
  (use "git reset HEAD <file>..." to unstage)

    renamed:    moved_file.py -> new_folder/moved_file.py
    modified:   changed_file.py
    deleted:    deleted_file.py
    new file:   new_file.py

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)


追跡されていないファイル:
  (use "git add <file>..." to include in what will be committed)

no changes added to commit (use "git add" and/or "git commit -a")
  • $ git commit -m 'message'でコミットを実行
    • messageは任意のコミットメッセージを入力

詰まりそうな点

  • 間違えてaddして、取り消したい場合は$ git reset HEAD added_fileを実行。$ git reset HEADまでは固定。renameの場合は、変更前のファイルと変更後のファイルに対して両方resetする必要がある
  • commit時にメッセージは必須で、-m以降を入力しないとvimが開いてしまう

case4:ローカルのブランチにコミットしたぞ!リモートブランチにも反映しよう!

手順

  • $ git push origin new_branch_name
    • originは固定値
    • new_branch_nameはリモートに反映させたいブランチ名称

詰まりそうな点

  • リモートに同一名称のブランチがない場合は、new_branch_nameが新規作成される

case5:ローカルのブランチを、リモートのブランチの状態に合わせたい!

手順

  • $ git fetch origin
    • [new branch]となっているブランチは、ローカルには無いけどリモートに存在するブランチ
    • original_branch_nameは、ローカルにもリモートにも存在するブランチ
shun@shun-VirtualBox:~/xxx/yyy$ git fetch origin
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), done.
From https://github.com/自分のリポジトリ
 * [new branch]      new_branch   -> origin/new_branch
   c5996a4..47d6cc0  original_branch_name    -> origin/original_branch_name
  • $ git reset --hard origin/original_branch_name
    • git reset --hard origin/までは固定、original_branch_nameは、合わせたいブランチ名称
    • fetchしてきたリモートのブランチを、ローカルの同一名称ブランチに反映させますよ!という命令
  • $ git checkout original_branch_nameで、reset後のブランチに移動する
  • $ git clean -df .で余分なファイルを削除する
    • ここまでの命令では、あくまで更新情報/新規作成情報のみをリモートから取得できるが、不要ファイルの削除をしてあげる必要がある
    • ここまで実行することで、リモートブランチと全く同じ状態になる

詰まりそうな点

  • fetchって何?と思う人は、リモートリポジトリとローカルリポジトリの中間層があると思えばよい。そこを「origin」と呼んでおり、リモートをoriginに反映させる処理をfetchと呼ぶ。originを使ってローカルリポジトリをどうするかが、reset以降のコマンド【入門者向け】Gitのfetchコマンドについて図を用いて解説

続く

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む