Linux – curl

概要

curlコマンドはcURL (see URL)から名付けられたコマンドで、URLを通したファイル転送を行うコマンドラインツール。

Vagrantのbento/CentOS7にはcurlがインストール済みで、以下のようにバージョンを確認できる。

GET

curl URLでHTTPのGETメソッドをコマンドラインで実行し、転送されたファイルはコンソールに表示される。

-s, -S

curl -s URLはプログレス表示を抑制。ただしエラーメッセージも表示されなくなる。

curl -S URLはエラーメッセージを出力。

curl -sS URLはプログラス表示を抑制しながらエラーは表示させる。

-I, -i

curl -I URLでレスポンスヘッダー表示。

curl -i URLでボディーを含むレスポンス表示。

-v

リクエストを含むヘッダーとボディーを表示。

POST

-X

-XオプションでPOSTを指定してPOSTメソッドでリクエスト。

-d

-dオプションでパラメーターを指定。

 

Linux – shスクリプト

基本形

例として、ファイル名をscript_testとして以下の内容で作成。

1行目は実行するスクリプトの指定(shebang, sha-bang, hashbang, pound-bang)。

ただしこのままでは実行権限がないので、chmodで実行権限をセットする。

実行する場合、パスを通して入ればファイル名のみで実行できるが、パスを通していなければ絶対パス/相対パスでファイル名を指定する。

引数

スクリプト実行時の引数は、変数'1''2'に格納される。参照する場合は$1${1}など。

実行例

条件分岐

以下は条件分岐の例で、ifcaseのそれぞれで引数に応じた処理を行わせている。

実行例

 

Linux – Node.jsのインストール

概要

Vagrant + VirtualBox + CentOS7でRailsをインストールする際にNode.jsが必要になったのでインストール。

参考サイト:CentOS 7 Node.js のインストール手順 (yum を利用)

準備~nvmのインストール

nvmはNode.jsのバージョン管理ツール。Gitでnvmをクローン。

インストール可能なNode.jsの確認

インストール可能なNode.jsのバージョンを確認。

インストール

最新の安定板のインストール

nvm install stableで最新の安定板がインストールされる。

指定バージョンのインストール

RailsではNode.jsが必要となるが、最新バージョンだとunstableだと警告が出ることがある。Node.jsのバージョンを下げるときは、バージョンを指定してインストール。

指定バージョンの使用

デフォルトバージョン以外のNode.jsを使うときは以下のコマンド。

nvm use *.*.*

インストール済のNode.jsの確認

デフォルト・バージョンの変更

デフォルトバージョンの変更は以下のコマンド。

nvm alias default *.*.*

上記を実行しただけでは反映されない。

再起動することでデフォルト設定が反映される。

指定したバージョンの削除

以下のコマンドでバージョンを指定して削除。

nvm uninstall *.*.*

確認。

 

Linux – firewalld

概要

firewalldはファイアーウォールの機能を提供するサービス。

ステータスの確認

ステータスの確認にはsystemctlコマンドを使う。

active (running)の場合は実行中、inactive (dead)の場合は停止中。

ステータスの設定

ステータスの設定・変更には、suでsystemctlコマンドを使う。

firewalldの有効化

有効化はsudo systemctl start firewalld

firewalldの無効化

無効化はsudo systemctl stop firewalld

 

Linux – SELinux

概要

SELinuxはシステムへのアクセス制御のための機能。

ステータスの確認

SELinuxの動作状況はgetenforceコマンドで確認。

ステータスは3種類。

Permissive
アクセス制御は無効、警告メッセージを表示。
Enforcing
アクセス制御が有効。
Disabled
SELinuxは無効。

ステータスの変更

一時的な設定~setenforce

suでsetenforceコマンドを使い、Permissive/Enforcingを設定。

sudo setenforce 0/1

0でPermissing、1でEnforcing

起動時の設定~/etc/selinux/config

/etc/selinux/configファイル中、SELINUXの行をコメントアウトして設定すると、起動時のステータスが設定される。

 

Vagrant – 仮想環境構築 – CentOS7

概要

Windows10にVagrant + VirtualBoxでCentOS7の仮想環境を構築したときの記録。

Vagrant/VirtualBoxの導入

Vagrantのインストール

VirtualBoxのサイトのダウンロードページからインストールファイルをダウンロード。

  • Windows/64bitを選択してDownload
  • vagrant_2.2.14_x86_64.msi(232MB)

ダウンロードしたmsiファイルを実行

  1.  Welcome to ….→Next
  2. End-User Lisence Agreement→accept & Next
  3. C:\HashiCorp\Vagrant→Next
  4. Ready to install Vagrant→Install
  5. Completed …→Finish
  6. You must restart your system …→Yes/No
  7. Restart

コンソールを起動し、インストールされたVagrantのバージョンを確認。

VirtualBoxのインストール

VirtualBoxのサイトからパッケージをダウンロード。

  1. VirtualBox 6.1.18 platform packages
  2. Windows hosts
  3. VirtualBox-6.1.18-142142-Win.exe

インストール

  1. Welcome to …→Next
  2. Custom Setup
    • インストール先はC:\Progrm Files\Oracle\VirtualBox
  3. ショートカット作成選択
  4. Warning Network Interfaces→Yes
  5. Ready to Install→Install
  6. … installation is complete→Finish

VisuaruBoxを起動してバージョン確認。

  • バージョン 6.1.18 r142142 (Qt5.6.2)

拡張版のインストール

本体ダウンロードのリンクの下に拡張版のダウンロードがある。説明書きに”Support for USB 2.0 and USB 3.0 devices, …”とあって、USBを有効が有効になる。

  1. VirtualBox 6.1.18 Oracle VM VirtualBox Extension Pack→download
  2. VirtualBox起動
    1. ファイル→環境設定→機能拡張
    2. 右方のアイコン→ファイル選択→インストール

この段階ででSSD 147/237GB freeでインストール前と容量が変わっていない。

Boxの導入

Vagrant導入当初BoxとしてVagrant CloudのCentos/7を選んだが、共有フォルダ-設定がうまくいかなかったのでbento/Centos-7.7に変更した。

Boxのインストール

仮想環境のBoxをインストール。Vagrant Cloudで提供されているbento/CentosOS-7.7を選んだ。

  • Vagrantからのインストールの場合は以下のコマンド。
    • >vagrant box add bento/centos-7.7
    • ダウンロードに10分程度かかる
  • 他のサイトからの場合、名前を指定してインストールする場合は以下のコマンド。
    • >vagrant box add name url/local_file

インストールされたBoxの存在確認(前にインストールしたCentos/7のBoxも残っている)。

Boxファイルの格納場所

Windows

  • ユーザーフォルダー\.vagrant.d\boxes

仮想環境のVagrant設定

ドライブ直下にVagrantディレクトリー、その下にCentOS7のディレクトリーを作成し、そこに移動。

移動後のディレクトリー内で初期設定。この操作によってディレクトリー内にvagrantfileが作成されて、仮想環境が利用可能になる。

この時点でSSD 140/237GB free。

仮想環境の利用

仮想環境の起動

vagrant upコマンドで仮想環境を起動。

仮想環境へのログイン

現バージョンでは、Windowsでもvagrant sshで接続できる。

バージョンを確認。

実行中の仮想環境の確認

仮想マシンを立ち上げたコンソールとは別のコンソールを立ち上げ、vagrant statusで確認。

仮想環境からのログアウト

CentOSのexitコマンドでログアウト。

仮想環境の停止

Windowsプロンプトでvagran haltコマンドを実行して停止。

仮想環境停止の確認

停止後のWindows環境でvagrant statusを実行すると仮想環境の停止を確認できる。

ロケール/タイムゾーンの設定

ロケール/タイムゾーンの確認

現在のロケール、タイムゾーンはdatelocalelocalectlコマンドで確認できる。インストール直後はUSになっている。

ロケールの設定

ロケールの設定はlocalectlをsuで実行。

sudo localectl set-locale LANG=ja_JP.UTF-8

設定の反映には再接続が必要。

タイムゾーンの設定

現在のタイムゾーンはtimedatectlコマンドで確認できる。

とりあえずWarningは置いておく。

設定可能なタイムゾーンの一覧は以下のとおり。

timedatectl list-timezones

タイムゾーンの設定はtimdatectlをsuで実行。

sudo timedatectl set-timezone [タイムゾーン名]

 

Linuxコマンド – ln

概要

ファイル/ディレクトリへのリンクを作成する。リンクにはハード・リンクとシンボリック・リンクの2種類がある。

ハードリンク

ハードリンクは、ソースのiノード番号をターゲットとして持ち、ソースが移動されたり、名前が変更されても有効。

実行例

  • 1~4行目でソースとその内容を確認
  • 5行目でハードリンクを作成
  • 6~7行目でリンクを確認
  • 8~9行目でリンクで参照されるソースの内容を確認
  • 10行目でソースの名前を変更
  • 11~12行目、変更後もハードリンクは有効

シンボリックリンク

シンボリックリンクでは、リンクファイルにリンク先にソースへのパスが保存され、これを参照してソースがアクセスされる。

ソースの位置や名前が変更されてもリンクファイルのパスは変わらないため、変更後のソースにはアクセスできなくなる(デッド・リンク)。

実行例

  • 1~2行目でソースの内容を確認
  • 3行目でソフトリンクを作成
  • 4~5行目でソフトリンクを確認(パスが表示されている)
  • 6~7行目でソフトリンクからソースの内容を表示
  • 8行目でソースの名前を変更
  • 9~10行目、変更後はソフトリンクからアクセスできない

 

viコマンド

カーソル移動

w 次の語の先頭に移動
b 前の語の先頭に移動
^ 行頭に移動
$ 行末に移動
[CTRL] + f 次のページに移動
[CTRL] + b 前のページに移動
G 最終行に移動
Gn n行目に移動

入力・編集

a カーソルの右から挿入開始
i カーソル位置から挿入開始
o 現在行の下に1行挿入し、行頭から入力開始
O 現在行の上に1行挿入し、行頭から入力開始
J 現在行と次の行を結合

削除

x カーソル位置の1文字を削除
X カーソルの左の1文字を削除
dd 現在行を削除
dw カーソル位置の1語を削除
d^ 行頭からカーソル位置まで削除
d^ カーソル位置から行末まで削除

カット・コピー(ヤンク)

行のカット・ヤンク

  • カットは対象行でdd
  • ヤンクは対象行でyy

貼り付け

貼り付ける行の上の行にカーソルを置いてp

任意位置のカット・ヤンク

開始位置でv→カーソルで範囲選択後にddまたはyy

pを入力したポジションの後に内容が貼付けられる。

 

Linuxコマンド – alias

さくらサーバで用いられているaliasコマンドの書き方。

たとえばlsaという名前でls -aを実行させたい時は以下のように入力。

登録済みのエイリアスの一覧は引数なしでaliasコマンド。

エイリアスを削除するにはunaliasコマンド。

さくらサーバのデフォルトでは、.cshrcファイルにエイリアスが登録されている。

このファイルに新たなaliasを追加することができる。

 

Linuxコマンド – chmod

概要

ファイルやディレクトリのパーミッションを変更する。パーミッションは記号または数値で指定する。

記法

オプション

-c 権限変更されたファイルのみ詳細に表示
-f 権限変更できなかった場合もエラーメッセージを表示しない
-v 経過を表示
-R ディレクトリとその下のファイルを再帰的に変更

記号モード(シンボリックモード)

記号の意味

u 所有者の権限
g グループの権限
o その他のユーザの権限
a 全てのユーザの権限
無指定 a(全てのユーザ)と同じ意味
+ 指定したユーザに後に記述した権限を付加する
指定したユーザから後に記述した権限を削除する
= 指定したユーザの権限を後に記述した権限に変更する
r 読み出し権限
w 書き込み権限
x 実行権限

使用例

全てのユーザに実行権限を与える。

グループとその他のユーザから書き込み権限を削除する

絶対モード

u, g, oそれぞれのrwxのパターンに対応した0~7の8進数で指定。

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

対応例

-rw-r—– 640
-r——– 400
-rwxrwxrwx 777