Linux シェルスクリプト ~勉強前の準備など~
久しぶりの投稿になります。(社会人って忙しいのね…)
今回はシェルスクリプトを勉強するために、ファイルの配置場所や書き方などを簡単にご説明します。
1.シェルを書いてみる
シェルを作っていきます。Linuxにファイル拡張子などの概念はありませんが、わかりやすいように名前を付けます。
$ vi test.sh
test.shに下のような感じで書き込みます。
中身の説明は下に書きます。
#!/bin/sh printf "Hello " echo "World" #コメントです。
ファイルの権限を設定します。
lsコマンドで所有者がrwxまたはr-xとなっていればやらなくてもいいです。(実行権がないとシェルが使えないため)
$ chmod 750 test.sh
実行します。
$ ./test.sh Hello World
簡単ですね。
では、test.shの説明をします。
#!/bin/sh
これは、簡単に言うと「このファイルはシェルですよー」という宣言みたいなものです。
もう少し詳しく説明すると、先頭行に「#!」(シェバング)が書かれていると次に指定されたコマンドなどを実行するという意味になります。
/bin/lsとか指定すると、まんまlsコマンドみたいになります。(引数を指定する必要あり)
コメントも先頭に「#」を書くので紛らわしいですね。
printf "Hello " echo "World"
上から順にコマンドが実行されていきます。
脱線しますが、printfコマンドはC言語みたいな使い方ができます。
echoコマンドは、末尾が自動で改行されます。
2.シェル名だけで実行する
シェルを実行するのにわざわざ「./test.sh」とか面倒ですよね。シェル名だけで使用可能にする
ホームディレクトリにシェルを配置するためのディレクトリを作成します。(ホームでなくてもいいです)$ mkdir shellscript $ cd shellscript
先ほど作ったシェルを移動させます。(「~」はホームディレクトリを指します。)
$ mv ~/test.sh ~/shellscript
シェルを配置したディレクトリを確認します。
「siroru」は筆者の環境なのでご注意ください。
$ pwd
/home/siroru/shellscript
ではホームディレクトリに戻って、PATHを通します。
編集するのは、ホームディレクトリにある「.bash_profile」というものです。
一応バックアップを取っておきます。(「.org」はオリジナル ← わかりやすいファイル名にする)
$ cp .bash_profile .bash_profile.org
では編集します。
$ vi .bash_profile
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH
編集するのはここです↓
PATH=$PATH:$HOME/.local/bin:$HOME/bin
先ほど、pwdコマンドで出力された結果を後ろに貼り付けます…が、
この時、必ず「:」を末尾に追加してから貼り付けてください。
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/siroru/shellscript
保存して再起動
(※ログイン時に.bash_profileは読み込まれるので、再度ログインするだけでも可能)
$ reboot
シェル名だけで実行できるようになるはずです。
$ test.sh Hello World
今回はここまでです。
ありがとうございました。
SQLを勉強 -part2- ~DML(SELECT、INSERT、UPDATE、DELETEを簡単にメモ)編~
シロルです。
今回はDMLのINSERT、 UPDATE、 DELETEについて書いていきます。
※ここでは、表をテーブル、各項目の表題(縦の列)をカラム、横の列をレコード、各項目(データ)をフィールドと呼びます。
SELECT
単一、または複数のテーブルから検索ができるSQLです。SELECT カラム名 FROM テーブル名;
INSERT
各カラムにデータを入れることができるSQLです。INSERT INTO テーブル名 VALUES(フィールド名 入力条件, フィールド名 入力条件);
UPDATE
フィールドの値を編集できるSQLです。UPDATE テーブル名 SET カラム名 = 変更後の値 WHERE 条件;
DELETE
レコードを削除できるSQLです。DELETE FROM テーブル名 WHERE 条件;
SQLを勉強 -part1- ~DDM DML DCLについてざっくり~
シロルです。
DBMS(データベースマネジメントシステム)であるMySQLを勉強するために、少しずつ書いていきたいと思います。
まず、SQLには3種類ぐらいの文の区別があります。
DML(ディーエムエル)
データを検索したり、編集したりする以下4つのSQLです。・SELECT
・INSERT
・UPDATE
・DELETE
DDM
データベースを作成したり、表を削除したりする以下3つのSQLです。・CREATE
・ALTER
・DROP
DCL(ディーシーエル)
データのアクセス権やトランザクションを実行したりする以下4つのSQLです。・GRANT
・REVOKE
・COMMIT
・ROLLBACK
次は各SQLを細かく書いていきます。
Linux 便利そうなコマンド ~alias、function編~
linux勉強中のsiroruです。
今回は便利そうなコマンド、エイリアス(alias)と関数(function)についてメモしていきます。
エイリアスとは
シェルの一つであるbashの機能の一つらしいです。これを使うと今までのオプション付きで使っていたコマンドやファイルの作成なんかをを簡略化して使うことができます。
ここではお遊びでtouchコマンドを例に挙げます。
使い方はこんな感じです。
$ alias touch='touch test.txt'
これだけです。
早速touchと打ってみます。
その後lsで確認します。
$ touch $ ls test.txt
touchと打つだけでテキストファイルができていますね。
エイリアスを解除するには設定した名前で以下のコマンドを打ちます。
$ unalias touch
ちなみにエイリアスを一時的に使わないようにするにはコマンドの前に「\」を打ちます。
$ \touch index.txt
いろんなコマンドに使えるのでいろいろ試してみるのもいいと思います。
Fedora 端末をショートカットで起動させる
シロルです。
CentOSに続きFedoraでもショートカットキーで端末を呼び出せるように設定します。(簡単です。)
Fedoraのデスクトップ画面の左上に『アクティビティ』があるのでクリックします。
その後『アプリケーションを表示する』→『設定』→『デバイス』→『キーボード』の順にクリックしていきます。
キーボードの画面の一番下に「+」があるのでクリック。
名前は何でもいいです。
コマンドは画像と同じで『gnome-terminal』と入力します。
その後『ショートカットの設定』をクリックして、設定したいショートカットを押下します。(筆者は、Ctrl + Alt + t を押下しました。)
後は右上の追加をクリックして、再起動します。
これでショートカットで端末を起動できると思います。
CentOS インターネットに接続しないでyumを使う
シロルです。
今回はインターネットに接続できない状況などでyumをつかえるようにしたいと思います。
インストール時に使用した『.iso』ファイルを使います。
使用環境
環境: 仮想環境ホストOS: Windows 10
仮想化ソフト: virtualboxまたはvmware
ゲストOS: CentOS7(.isoファイルでインストール。GUI環境です。)
インストールディスクの挿入
インストールディスクを挿入(マウント)します。virtualboxの場合CentOSを起動した後の画面で「右下のCDマーク」または「左上のディスク」から挿入できます。
成功すると上の画像のように右側にDVDマークが出てきます。
ディスクの確認
$ df
一番下あたりにこんな感じで出てくると思います。
/dev/sr0 4414592 4414592 0 100% /run/media/siroru/CentOS 7 x86_64
『/run/media/siroru/CentOS 7 x86_64』をメモしておきます。
もう一つ確認。
$ ls /etc/pki/rpm-gpg
下のやつが出てくると思います。
RPM-GPG-KEY-CentOS-7
これもメモ。
リポジトリの作成
ここでは簡単に、リポジトリとはソフトウェアの提供元と考えてください。この提供元がどこにあるのかを指定するファイルを作成します。
作成場所は/etc/yum.repos.dです。
まず確認してみます。
$ ls /etc/yum.repos.d
.repoファイルがいくつか出てくると思います。
これらのファイルを残しておくと筆者はうまくいかなかったのですべて消しました。
うまくいかなかった場合のみ試してみてください。
# rm /etc/yum.repos.d/*.repo
きれいになったところでmedia.repoというファイルを作成します。
# vi /etc/yum.repos.d/media.repo
ファイルの内容です。
[media] name=CentOS 7 - Media baseurl='file:///run/media/siroru/CentOS 7 x86_64' gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
baseurlは一つ目のメモを書きます。
パスを指定する際はシングルコーテーションで囲みます。
gpgkeyは二つ目のメモを書きます。(パッケージ署名)
後はコピペでいけます。
これでyumが使えるはずです。
まとめ
うまくいかない場合はDVDを再度マウントしてみてください。CentOS 共有フォルダの設定 ~Sambaを使ってファイルサーバを作る~
シロルです。
今回はCentOSにSambaを入れてWindowsとフォルダの共有・設定しようと思います。
CentOSをSambaサーバにすることによって、Windowsの仮想環境でCentOSとフォルダの受け渡しが簡単いできるようになります。
Sambaのインストール
では早速インストールしていきましょう。# yum install samba
共有フォルダの作成
インストールが出来たら共有フォルダを作成します。今回はルート直下に作ります。
管理者と権限も設定します。(ディレクトリ名、ユーザ名は何でもいいです。)
# mkdir /share_folder # chown smb_siroru:smb_siroru /share_folder # chmod g+ws /share_folder
管理ユーザの作成
# useradd smb_siroru
SELinuxの設定
# semanage fcontext -a -t samba_share_t /share_folder # restorecon /share_folder
Samba設定ファイルの編集
設定ファイルは「/etc/samba/smb.conf」にあります。ワークグループの設定
sambaとwindowsのワークグループを一致させます。まずwindowsのワークグループを確認します。
キーボードの『Ctrl + E』でエクスプローラを起動 → PCを右クリック → プロパティをクリックで確認できます。
設定ファイルを編集します。
[grobal]のなかの「workgroup」をWindowsのワークグループと同じものに設定します。
その下の行に以下を追加します。
[global] workgroup = "任意" guest account = smb_siroru dos charset = CP932 unix charset = UTF-8
charsetは文字化け防止です。
パスワード設定の変更
パスワード入力なしで共有ファイルにアクセスするための設定をします。2,3行下へ行くと「passbd backend = tdbsam」とあるのでコメントアウトし下記を追加します。
# passdb backend = tdbsam map to guest = Bad Password
自分だけで使う分にはいいですが、この設定はあまりおすすめしません。
共有フォルダの設定を追加
分かりやすく一番下に共有フォルダ(ディレクトリ)と同じ名前の設定項目を追加します。[share_folder] path = /share_folder public = yes writable = yes
pathは共有フォルダの場所を指定。
publicは他のホストからでも見れるよう、今回は「yes」。
writableは書き込み可能にする設定をしています。
これで設定ファイルの編集は終わりです。
ファイアーフォールの設定
sambaを許可します。デスクトップ右上のアプリケーション → 諸ツール → ファイアーフォールとクリックする。
設定が永続になっていることを確認。(実行時だと毎回ファイアーフォールの設定をしなければならない)
上の画像のように、ゾーン、public、サービスとなっていることを確認し、項目の中の「samba」にチェックを入れる。
サービスの起動
sambaを起動させます。# systemctl start nmb.service # systemctl start smb.service
nmb.serviceはwindowsでsambaを使えるようにする。
smb.serviceはsambaの起動。
疎通確認ができていればエクスプローラのネットワーク探索で共有ファイルが見れると思います。
発見できない場合はアドレスを指定して試してください。(先頭に「\\」をいれて入力←¥です。)