元工場員からプログラマーなれた人の日記

学んだ知識をあべのさんなりにアウトプットしていきます。

【Linux】ユーザーの追加/sudoユーザーの追加【CentOS 7】

f:id:abenosan:20181015152506j:plain

今回Linuxで、「ユーザー追加」と「ユーザーにsudo権限付与」のやり方を自分なりに少しまとめたので書いていこうと思います。
やり方は沢山ありますので、参考程度に見てください。

ここでは、初歩的な事しか書きませんのでご了承ください。

ユーザー追加

root権限でログイン
まずは、ユーザーの追加からしていきます。
ユーザー追加するコマンドはこちらです。

useradd 追加するユーザー名

f:id:abenosan:20181015153443p:plain

追加されているか確認してみましょう。

cat /etc/passwd

f:id:abenosan:20181015153523p:plain

追加されてますね。

ユーザーのパスワード設定

ユーザー名だけでは、ログインができないのでパスワードを決めておく必要性があります。

パスワードを与えるユーザー名を選択  

passwd ユーザ名

なので

passwd testuser

を入力すると、2度パスワードを要求されますので、希望のパスワードを入力しましょう。 2回目は確認なので間違えないように入力してください。

※テキストカーソルは動きませんが、きちんと入力されています。

入力が終えたらEnterを押します。

f:id:abenosan:20181015153544p:plain

passwd: all authentication tokens updated successfully.と出れば成功です。

これでユーザーにパスワードが設定できました。
実際に今追加したユーザーでログインできるか確認してみましょう。

管理権限からログアウトしましょう。

exit

こちらのコマンドもよく使うので覚えておきましょう。

それでは、先ほど追加したユーザーでログインしてみてください。

f:id:abenosan:20181015153608p:plain

このように表示されたら、きちんとユーザー追加がされています。

もし、「ログインできない!」って人がいればもう一度一から慎重に行ってください。
パスワード記入とかの間違いの可能性があるかと思われます。

ユーザーにsudo権限を与える

sudo権限とは?

簡単に言うと、一般ユーザーがある魔法のコマンドを打つと管理人モードになれる。
ということです。
いちいちログアウトしなくても、管理人権限で操作ができるので楽です。
危険性は増しますが・・・

次に、先ほど追加したユーザーにsudo権限を使えるようにしましょう。

root権限でログインしてください。
visudoと入力。

f:id:abenosan:20181015153626p:plain

すると、こちらが出てくるのでEnterを押します。

f:id:abenosan:20181015153743p:plain

沢山出てきましたね。
下の方にいって、ここを編集します。

f:id:abenosan:20181015153757p:plain

今の状態で入力しても入力されないので編集モードに切り替えます。
編集モード:キーボードのinsertを押す→左下に-- INSERT --と表示されたら編集モード。

次に、sudo権限を付与したいユーザ名を記入します。

testuser ALL=(ALL) ALL

f:id:abenosan:20181015153819p:plain

これで完了です。

それでは、visudoを抜けたいので、ESCを押して:qを入力してEnterで抜けれます。

これでsudoが適用されているか確認しましょう。

rootを抜ける exit

sudo権限が付与されたユーザーにログイン

sudo と入力
このように表示されたらsudo権限を付与することに成功しています。

f:id:abenosan:20181015153833p:plain

終わりに

どうでしたか?難しいと思われた方もいるのではないでしょうか?
コマンドは使っていくうちに慣れるものなので、わからなくなったら調べて沢山のコマンドを扱えるようになりましょう。
私もまだまだ勉強中ですので、間違っている部分がありましたらご指摘お願いします。

【チートシート】マークダウン記法【拡張子.md】

f:id:abenosan:20181012202919j:plain

最近よくマークダウンを使うようになってきたので、復習も兼ねて少し紹介したいと思います。

マークダウンとは?

Markdown(マークダウン)は、文書を記述するための軽量マークアップ言語のひとつである。 本来はプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発されたものである。 しかし、現在ではHTMLのほかパワーポイント形式やLaTeX形式のファイルへ変換するソフトウェア(コンバータ)も開発されている。

らしいです。
まぁ実際にイメージ画像を作ったので、それをみてもらった方がイメージつきやすいと思います! f:id:abenosan:20181012190640p:plain

こんな感じですね。
テキストだけで簡単なデザインができてしまいますので、非常に作業効率が上がります。

私のブログも現在マークダウンで記事を書いています。
非常に簡単にデザインができるので、みなさんも是非使ってみてくださいね。

マークアップ記法

ブログ仕様になってるので表示結果が通常とは異なっている場合があります。

見出し

# を利用することで見出しを作ることができる。

# 見出し1
## 見出し2
### 見出し3
#### 見出し4
##### 見出し5
###### 見出し6

結果(デザインは異なります)


見出し1

見出し2

見出し3

見出し4

見出し5
見出し6

テキスト装飾(イタリック、太文字)

* または _ で文字を囲むと適用されます。

**太文字**
__太文字__
*イタリック*
_イタリック_

結果


太文字
太文字
イタリック
イタリック


引用

>を使うことで簡単に引用デザインが適用されます。
また>>を使うと二重引用が適用されます。
通常引用

> 私の名前はあべのさんだ。

結果(通常引用)

私の名前はあべのさんだ。

二重引用

> 私の名前はあべのさんだ。
>> あべのさんは元工場員

結果(二重引用)

私の名前はあべのさんだ。

あべのさんは元工場員



箇条書きリスト

-,+,*のいずれかで箇条書きが適用されます。

- あべの
    - ネスト適用 あべの2号
        - ネスト適用 あべの3号  
* あべの
    * ネスト適用 あべの2号
        * ネスト適用 あべの3号 

結果

  • あべの

    • ネスト適用 あべの2号
      • ネスト適用 あべの3号
  • あべの*版

    • ネスト適用 あべの2号 *版
      • ネスト適用 あべの3号 *版

番号付きリスト

1.で番号付きリストが適用されます。(ネスト適用)

1. あべの
1. あべのさん
1. あべっち 
    1. あべっちの子供
1. あべっちさん

結果

  1. あべの
  2. あべのさん
  3. あべっち
    1. あべっちの子供
  4. あべっちさん

コード記法

バッククォートで文字列を囲むことでデザインが適用されます。
Windowsの場合 Shift + @ で `が表示されます。

Pythonであべのを出力したい場合はこちらを入力してください。  
`print('あべのです')` 実行結果:あべのです

結果

Pythonであべのを出力したい場合はこちらを入力してください。
print('あべのです') 実行結果:あべのです

水平線

___,***,--- を記入すると水平線が適用されます。

___
***
---

結果




リンク

`表示文字形式でリンクを記述できます。

[Yahoo!!](https://www.yahoo.co.jp/)

結果

Yahoo!!

終わりに

どうでしょうか?思ったより簡単な記述方法で、すぐにデザインができちゃいましたね!
はじめは記述方法がわからないかもしれませんが、練習していくうちに覚えてくるかと思います! 是非、ブログのチートシートをみながらマークダウンを習得していってください。

【5分でわかる】Djangoのページネーションの使い方

f:id:abenosan:20181011125111j:plain Web開発では欠かせないページネーションについて、軽くまとめてみたいと思います。

ページネーションって?

ページネーションとは、誰もが一度は使ったことがあると思います。
そう、ネットサーフィンをしていたらよく見かけるあれです。
f:id:abenosan:20181011103916p:plain
普段、当たり前のように使っているかと思いますが、実は裏方で「1ページに何個のレコードを表示する」と設定されているんです。

Googleだと膨大な数のWebページがあるので、1度にそれを表示すると・・・
想像つきますよね・・・

なので、ページネーションという機能を使って表示件数を制限するわけです。 f:id:abenosan:20181011122147p:plain
それでは実際に使ってみよう!

簡単な流れ

  1. viewsに表示させる内容を書く
  2. urlsに表示先を書く
  3. テンプレートに表示

Paginatorクラスの使い方

Djangoには元からページネーションするクラスが入っています!
それが「Paginator」クラスです。便利ですね!
このクラスを使うことで、簡単にページを分けてレコードを取り出すことができます。

インスタンス作成

変数 = Paginator( コレクション , レコード数)

第一引数:レコード全体をまとめたコレクション
(allやfilterメソッドで得られるオブジェクト)
第二引数:1ページあたりのレコード数

使用例

page = Paginator(data,5)

これで、dataオブジェクトの5つのレコードを変数pageに格納しています。
簡単ですね!

viewsに記入しよう

それでは、Paginatorインスタンスの作り方を理解したので実際にviews.pyに記入していきましょう。
ここでは簡単なページを作成しています。

from django.core.paginator import Paginator

def index(request,num=1):
    data = hoge.object.all()    # hoge=表示したいテーブル名
    page = Paginator(data , 5)
    params = {
    'data':page.get_page(num)
  }
    render(request,'表示先',params)

なんだこれは・・・と思うかもしれませんが、やってることは非常にシンプルです。
それでは一行ずつ見ていきましょう。

from django.core.paginator import Paginator
Paginatorクラスを利用できるようにインポートしています。 これを忘れるとPaginatorクラスが動かないので忘れないでくださいね!

data = hoge.object.all()
元となるデータをすべてdataに格納しています。

page = Paginator(data , 5)
先ほど作った変数(data)を使って、Paginatorの第一引数に格納しています。
これでpageにはhogeの中にある5つのデータが入っています。

'data':page.get_page(num) [Paginator],get_page(番号)
引数にページ番号を指定すれば、そのページのレコードを取り出すことができます。

これで、viewsは完成しました。

urlsの追加

ページごとに表示を変更しないといけないのでurlsにページ番号をアクセスできるようにしましょう。

pah('<int:num>',views.index,name='index'),

Templateを記入しよう

先ほど作った関数を表示させるためには、Templateが必要ですよね。
HTMLを書いていきましょう。

{% load static %}
<!doctype html>
<html lang='ja'>
    <head>
        <meta charset='utf-8'>
        <title>hello</title>
        <link rel="stylesheet" type="text/css" href="{% static 'hello/css/style.css' %}" />
    </head>
    <body>
        <table>
            <tr>
                <th>name</th>
            </tr>
        {% for item in data %}
            <tr>
                <td>{{item.user_id}}</td>
            </tr>
        {% endfor %}
        </table>
        <div class="pagination">
            {% if data.has_previous %}
                <a href="{% url 'index' %}">&laquo;first</a>
                <a href="{% url 'index' %}{{ data.previous_page_number }}">&laquo;prev</a>
            {% endif %}
            <span>
                [{{ data.number }}/{{ data.paginator.num_pages}}]
            </span>
            {% if data.has_next %}
                <a href="{% url 'index' %}{{ data.next_page_number}}">next&raquo;</a>
                <a href="{% url 'index' %}{{ data.paginator.num_pages }}">last&raquo;</a>
            {% endif %}
        </div>
        <p><a href="{% url goto %}">{{ goto }}</a></p>
        <p><a href="{% url add %}">{{ add }}</a></p>
    </body>
</html>

一度、アクセスしてみてください。
表示はGoogleとは異なりますがやっていることは同じです。
f:id:abenosan:20181011123338p:plain
どうですか?思ったより簡単でしょ。
これでページネーションの完成です。

ページ移動リンクの仕組み

前のページに移動

前のページに移動するリンクは「first」と「prev」を用意しています。

{% if data.has_previous %}
    // ここにリンクを用意
{% endif %}

ここではdataの「hax_previous」メソッドを呼び出しています。
これは、前のページがあるかどうがチェックするメソッドです。
Trueであれば、first と prev のリンクを表示しています。

現在のページ

[{{ data.number }}/{{ data.paginator.num_pages}}]
現在のページは dataの「number」で得ることができます。
また、レコードが全部で何ページ分あるがどうかの確認は「data.paginator」の「num_pages」で取得できます。

終わりに

どうでしょうか?簡単にまとめすぎたかもしれませんが、大まかな動きは理解できたのではないでしょうか。
実際にWebアプリケーションを作成するのであれば、ページネーションは必ずお世話になるので、是非使い方を習得してください。

バージョン管理システム

リポジトリ

しゃいさん「よし、変更したデータを送っておくぞ!」

れぐさん「え?あ、はい。私もそのデータ変更したんですが・・・」

でぃさん「あの・・・どこにデータ置いてますか・・・?」


あべのさん「バージョン管理システムを使って、データを全員で共有しよう!!」

バージョン管理システム

このような問題を解決してくれるのがバージョン管理システムです。

何か複数人でシステムを開発するときに、コードベースを変更できるようにしておくことが不可欠です。

※コードベースとは、システムのフォルダやファイルの集まりで、他の人のデータの変更を全員で共有するものです。

ですので、現在の現場ではバージョン管理システムが必須と言っても過言ではありません。

実際私も使い始めは「これのなにがいいんだ!データはスカイプ送れや!」って思っていましたが・・・

使い方を覚えてからバージョン管理システムのありがたみを実感することができました。
ぜひ、この機会に習得しましょう!!



バージョン管理システムの種類

人気のあるバージョン管理システムGitSVNなどがあります。

通常では、バージョン管理システムで管理したコードはクラウドに保存します。が・・・

今回は、 Gitを使ってコードをバージョン管理し、GitHubというウェブサービスにコードを保存する方法を学んでいきたいと思います。

GitHubの他にも有名なGitLubやBitbucketなどが存在します。



終わりに

バージョン管理システムの概要について簡単に説明させていただきました。

どうでしょうか?まだバージョン管理システムの良さが実感できていない方も多いのではないのでしょうか?

大丈夫です!

きっと、次の記事であなたもバージョン管理システムの良さを実感し、開発へのモチベーションも高まるに間違いありません!

次回の記事では、実際にGitHubを使いバージョン管理システムの良さをみなさまに実感できればいいと思います。

ブログはじめました!

ブログはじめました!

はじめまして、これが最初のブログで少し緊張しています。

私自身、文章を書くことが苦手で、うまくみなさまに思いを伝えれるか心配ですが、精一杯頑張りたいと思います。