20200707のLinuxに関する記事は8件です。

LPIC取得に向けた学習方法アウトプット

この記事について

LPIC level1取得に向けて学習方法などをアウトプットしていきたい。
アウトプットをする事で自己能力向上を図るだけでなく誰かの助けになればと思う。

使用している教材など

  • 1週間でLPICの基礎が学べる本 第3版
  • Linux教科書 LPICレベル1 Version5.0対応
  • Linux教科書 LPICレベル1 スピードマスター問題集 Version5.0対応
  • Ping-t

学習の流れ

前提として知っていただきたいのが、資格取得を目的としていること。
学習する意図としてLinuxの概要を知るためなので、現段階では深く理解をしない。
深めの知識は実戦から学ぶ方が何倍も効率が良いので、
座学で全てを学ぶ事に時間をかけるともったいないおばけがでてくる。

「1週間でLPICの基礎が学べる本 第3版」を1周する

本工程はそこまで重要度は高くないので飛ばしても良い。
私はLPIC学習するにあたり、概要を知っておきたいと思った。
(CCNA学習時に1週間シリーズのお世話になったので今回も活用した)
理解を後回しにしてとりあえず1周読んでみた結果、何一つわからなかった。

Ping-tの問題を繰り返す

Ping-tでは、LPIC101が無料だったのでお試しで使用してみた。
使用感としては思った以上に頭に残り、書籍学習よりも効率が良いと感じた。
また、問題を解いていく上で意識しなければならないのが、
1〜2周目は解説をみないことである。
まずは問題に対する答えがわかればそれで良い。
3周目以降はなぜその答えが結びつくのかを理解していこうと思う。
答えがわかっていると強くてニューゲームなので周回プレイが楽しくなるね。

Ping-tのみで理解できなかった箇所を調べて理解する

Ping-tである程度正答率が高くなってきたらLinux教科書などを参考に、
問題に対して何故その答えになるのかを調べていく。
極論を言えば問題と答えだけ覚えていれば合格ができるかもしれない。
しかし、理解していることで合格率は大幅に向上するのは言わずもがなである。
ベンダ資格で受験費用も安くないので一発合格を目指したい。

学習習慣を身につけるために実戦すること

ポモドーロ・テクニック

ポモドーロ・テクニックという時間術をご存知だろうか。
ポモドーロ・テクニックとは、タイマーを使用し25分の作業と短い休息で作業時間と休息時間を分割することである。集中力が続かない人にはうってつけの時間術だ。
具体的な手順は以下になる。

  1. LPIC学習などタスクを決める
  2. タイマーを25分に設定しタスクに集中する
  3. タイマーを5分に設定し意識的に集中を切らす(短めの休憩)
  4. 2〜3を5セット繰り返す
  5. タイマーを15分に設定し意識的に集中を切らす(長めの休憩)
  6. 2に戻る

私は昨日まで上記のテクニックを知らずに生きてきた。
なかなか集中力が続かないのでいろいろ調べた結果たどり着いた。
資格学習を進めるうえでポモドーロ・テクニックを実戦してみた結果、
集中力が継続できているか実感できなかったが、スマホに手を伸ばす癖が治せそう。
5分間の休息時に軽く見るようにしているので、これだけでも効果がありそう。
この5分間をどう使うかでこれからの人生が左右されると言える。(言えない)

ポモドーロ・テクニックによる効果

学習だけでなく仕事の質が格段に向上するらしい(適当)

学習をすすめていくうえでの小技

キリ良く学習を進めないこと

中途半端に終わらせることで「早く次に進めたい」という欲が強くなりませんか。
なりませんね、すみません。
キリ良く終わると「次はいつからでも進められる」という気になりませんか。
なりませんね、すみません。
私は○章までやるという目標は立てず、時間に身を任せている。
タイマーが鳴ったら途中でも手を止める、予定セット数が終わったら次の日へ回す。
あえて中途半端に終わらせることで、
早く次に進めたいという欲求を強めることができるような気がする。

さいごに

最近になって何事も習慣化していきたいと思うようになった。
きっかけは「僕のヒーローアカデミア」という漫画で出てきたとある言葉。

    集中すればできることを寝ながらでもできるようにしろ
      やると決めた時には既に行動し終わっていろ

ビジネスの世界にも通用する言葉なのではないかと思った。
改札を通る時に定期券をタッチする行動やスマホのパスコードを入力する行動など、
毎日の習慣として身についているので全て寝ながらできる自信がある。
資格学習などの自己研鑽も習慣化できればこれほど良いことはない。
これからポモドーロテクニックを有効活用し、学習を習慣化していきたいと思う。

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

grep時にgrepが出ないようにgrepする

プロセス確認時に任意の文字列を含んだプロセスを抽出するとき

ps aux | grep target

とすると

mochimochi 18277  248  1.4 1122692 367144 ?      Sl   21:18   0:39 ./target_process
mochimochi 18294  231  1.5 1253764 373160 ?      Sl   21:18   0:34 ./target_process
root     18565  0.0  0.0 112828   972 pts/0    S+   21:19   0:00 grep --color=auto target

コマンド叩いた自分自身もリスト化されるのが微妙に邪魔
なのでvオプション(除外)を使用する

ps aux | grep target | grep -v grep

目的の文字列を含みつつgrep除外対象としてgrepを指定する

mochimochi 18277  248  1.4 1122692 367144 ?      Sl   21:18   0:39 ./target_process
mochimochi 18294  231  1.5 1253764 373160 ?      Sl   21:18   0:34 ./target_process
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ApacheでSSL(TLS)を有効化する方法

はじめに

Apache2.4で自己署名証明書(※いわゆるオレオレ証明書)を使って、SSL(TLS)を有効化する方法をまとめてみました。
本番環境では当然使えない方法となりますが、自宅サーバーで学習する時や開発環境では使える方法なのではないかと思います。

テストに使用した環境

ハードウェアについては今回の手順とは直接関係ありませんが、念のため記載しておきました。

  • CPU
  • マザーボード:ASRock H110M-STX
  • メモリ:8GB(4GB×2枚)
  • ストレージ:256GB SSD(NVMe)
  • OS
    • CentOS 7.8(2003)
  • Apache
    • Apache-2.4.6

前提となる設定

  1. Apacheがインストールされていること。
  2. Apacheが起動できる状態であること。
    • 事前に設定ファイル(httpd.confなど)を編集した場合は要注意。
  3. SELinuxが停止かつ無効化(disabled)されていること。
    • 今回は自宅用、あるいは開発用ということで、SELinuxを停止させておきます。

SSL(TLS)を有効化するための手順

1. HTTPS通信に必要なソフトウェアのインストール

[root@akagi ~]# yum install openssl
[root@akagi ~]# yum install mod_ssl

2. 作業用のフォルダに移動

  • /rootなどではサーバー証明書を正常に作成できないため、/etc/pki/tls/certsに移動します。
    • /usr/local/ssl以下を使っている記事も見られますが、Apache2.4をRPMでインストールした場合にはこのフォルダが存在しませんでした。
[root@akagi ~]# cd /etc/pki/tls/certs/

3. 秘密鍵の作成

  • opensslコマンドで秘密鍵を作成します。
[root@akagi certs]# openssl genrsa > server.key
Generating RSA private key, 2048 bit long modulus
................................................+++
....+++
e is 65537 (0x10001)

4. 公開鍵の作成

  • 再びopensslコマンドを使って、今度は公開鍵を作成します。
  • 国名、都道府県名、市町村名、組織名(会社名)、部署名、メールアドレスなど様々な情報を要求されますが、今回は「オレオレ証明書」なので適当な値を入力します。
[root@akagi certs]# openssl req -new -key server.key > server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Chiyoda
Organization Name (eg, company) [Default Company Ltd]:XYZ Company
Organizational Unit Name (eg, section) []:Development Dept.
Common Name (eg, your name or your server's hostname) []:192.168.10.240
Email Address []:nkojima@xyz.co.jp

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

5. サーバー証明書(自己署名証明書)の作成

  • opensslコマンドを使って、さらにサーバー証明書を作成します。
[root@akagi certs]# openssl x509 -req -signkey server.key < server.csr > server.crt
Signature ok
subject=/C=JP/ST=Tokyo/L=Chiyoda/O=XYZ Company/OU=Development Dept./CN=192.168.10.240/emailAddress=nkojima@xyz.co.jp
Getting Private key

6. 秘密鍵のコピー

  • 公開鍵をサーバー証明書を作成した後、秘密鍵を/etc/pki/tls/privateにコピーしました。
    • 秘密鍵の置き場所によっては、Apacheが秘密鍵を見つけられずに起動に失敗しました。
[root@akagi certs]# cp -a server.key ../private/

7. ssl.confの修正

  • 編集前にssl.confをコピーしてオリジナルのssl.confを保存した後、以下の4ヶ所を修正しました。
  • セキュリティ上、TLS1.2以下はNGというケースが増えてきているので、TLS1.2以上に対応するようにしています。
    • オレオレ証明書を使っている人が言うことではありませんが...
★サーバー名の変更
ServerName www.example.com:443
↓
ServerName 192.168.10.240:443

★TLS1.2以上に対応
SSLProtocol all -SSLv2 -SSLv3
↓
SSLProtocol +TLSv1.2

★証明書のパス
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
↓
SSLCertificateFile /etc/pki/tls/certs/server.crt

★秘密鍵のパス
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
↓
SSLCertificateKeyFile /etc/pki/tls/certs/server.key

8. Apacheの再起動

  • Apacheが正常に再起動できれば、SSL(TLS)が有効化されているはずです。
[root@akagi certs]# systemctl restart httpd

作業後の状態

  • 以下のスクリーンショットのように、当該サーバーにHTTPSで接続できますが、ブラウザのアドレスバーに「保護されていない通信」と警告が表示されます。

image.png

参考URL

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

デバイス、Linuxファイルシステム、FHS ③忘備録 (ファイルのパーミッションと所有者の管理・ハードリンクとシンボリックリンクの作成・システムファイルの検索、適切なファイル配置)

ファイルやディレクトリに対する権限をパーミッションと言う。
権限は読み取り・書き取り・実行の3つ。
①読み取り
cat moreなどのファイルの内容を参照する。
ディレクトリ内の内容を参照。ls find

②ファイルに書き込み
vi ディレクトリに新規のファイルを作成.削除する→touch mv rm

③実行
ファイルを実行する。ディレクトリ内のファイルへのアクセスをする
cd

rwxrwxrwx 421421421だけど 777で表すっぽいで。

ls ーl

ファイルやディレクトリには所有ユーザ、グループ、パーミッション(アクセス権)などが設定されている
これらの情報を確認するのがls -lコマンド

ls -l /etc/passwd

-rw-r--r--. 1 root root 1929 Jan 18 14:17 /etc/passwd
これは決まり文句だから覚える。所有ユーザーとグループはroot
グループとそのほかのユーザーは読み取り権がある。

-rw-r--r-- 1 test staff 24 Jul 21 13:38 index.html
テストユーザー スタッフグループってことか

chmodコマンド

プログラムをどのユーザが実行しても、プログラムを所有するグループの権限で実行されるようにするにはSGIDを設定します。SGIDは特殊なパーミッションの1つです。chmodコマンドで通常のパーミッションの値に2000を加えた値を設定するか、グループに「s」という権限を追加します(g+s)。

・SUID
実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、プログラムの:point_up:所有ユーザの権限で実行されます。
設定はchmodコマンドで、通常のパーミッションの値に4000を加えた値を設定するか、所有ユーザに「s」という権限を追加します(u+s)。
これが設定された代表的なプログラムに「passwd」コマンドがあります。

・SGID
実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、プログラムの:point_up:所有グループの権限で実行されます。
設定はchmodコマンドで、通常のパーミッションの値に2000を加えた値を設定するか、所有グループに「s」という権限を追加します(g+s)。

・スティッキービット
ディレクトリに設定する事で、そのディレクトリに対して書き込み権限を持つユーザでも、自分が所有する以外のファイルを削除できなくなります。
設定方法はchmodコマンドで、通常のパーミッションの値に1000を加えた値を設定するか、その他ユーザに「t」という権限を追加します(o+t)。
これが設定された代表的なディレクトリに「/tmp」ディレクトリがあります。

umask

ファイルやディレクトリを新規作成した際のデフォルトのパーミッションを設定するにはこれ。
666 - マスク値 = ファイルのデフォルトのパーミッション
777 - マスク値 = ディレクトリのデフォルトのパーミッション

chown = chgrp

指定したファイルやディレクトリの所有ユーザーやグループ変更をする際に使用する。
chown [-R] ユーザ名:グループ名 ファイルまたはディレクトリ
:の部分は.でもOK
=chgrp [-R] グループ名 ファイルまたはディレクトリ

lnコマンド

リンクの作成にはこれ。ln リンク元 リンク先
シンボリックリンクを作成するにはオプションで-sをつける。

①ハードリンク
あるファイルを複製する。さらにそのできたファイルに名前をつける。
元ファイルを消してもあだ名の方は消えない。あだ名と元ファイルを消すことで両方削除される。
②シンボリックリンク
間に入って中継してくれる感じ
こいつを通して命令・注文する感じ

ls -l で表示される先頭の文字

先頭に出るパーミッションの文字はファイルの種別を出す。
- ファイル
d ディレクトリ 
l シンボリックファイル
ハードリンクに関してはでない。inode番号で出る。ハードリンクを観たい時はls -liで。

findコマンド

指定したディレクトリ以下からファイルやディレクトリを検索するにはこのコマンド

-typeでファイル種類を検索 lがシンボリックリンク dはディレクトリ fはファイル
-maxdepth 階層 指定した階層まで検索
-mindepth 階層 指定した階層から下を検索
-atime 最終アクセス日で検索
-mtime 最終更新日で検索
-print 検索結果を改行で区切って表示
-print0 検索結果をNULL文字(¥0)で改行で区切って表示
-name ファイル名 でファイルを検索する。
-perm アクセス権 アクセス権を検索
-size サイズ ファイルサイズの検索
-exec コマンド名 検索結果のファイルに対してコマンドを実行

which whereis

指定したコマンドの場所を検索する
which 環境変数PATHで設定しているディレクトリから検索する
whereis Linuxでコマンドの格納される標準的なディレクトリの中から検索します。
つまり2つとも絶対パスで表示してくれる

locate

検索用DBを使用して高速でファイル検索をするコマンド
locate httpd.conf などで検索をかける
※updatedb locateコマンドが利用するファイルデータベースを更新するコマンドです。

/usrディレクトリ

起動には不要なプログラムなどが格納されている。
/usr/shere/man マニュアル
/usr/bin システムの起動には必須でない、一般ユーザーのコマンド
/usr/sbin システム起動には必須ではない、システム管理用のコマンド

umask

ファイルやディレクトリを新規作成した際のデフォルトのパーミッションを設定するコマンド
マスク値というものを設定して、新規に作成するファイルとディレクトリのデフォルトのパーミッションを決定します。マスク値はユーザ毎に設定します。

マスク値が0の場合に使用されるデフォルトのパーミッションは、ファイルが「666」、ディレクトリが「777」です。これらの値から指定したマスク値を引いた値が新たなデフォルトのパーミッションとして設定されます。
例えばマスク値が022の場合、ファイルとディレクトリのデフォルトのパーミッションはそれぞれ「644(666-022)」と「755(777-022)」です。

マスク値で0以下は全て0になる。

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

デバイス、Linuxファイルシステム、FHS ①忘備録 パーティションとファイルシステムの作成・ファイルシステムの整合性の保持

っっs

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

Ansibleについて調べたことの雑多なまとめ

変数

公式ドキュメント - Using Variables

iniファイル形式でもYAML形式でも記述できるらしい。これはインベントリファイルのことか...?

# ini形式
[atlanta]
host1
host2

[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
# YAML形式
atlanta:
  hosts:
    host1:
    host2:
  vars:
    ntp_server: ntp.atlanta.example.com
    proxy: proxy.atlanta.example.com

ホスト変数とグループ変数

インベントリに変数を定義するだけでなく、ホスト変数やグループ変数を定義することができる。
その場合はYAML形式を使用する必要がある模様。
/etc/ansible/ディレクトリ配下、カレントディレクトリ配下のgroup_varshost_varsディレクトリにグループ名/ホスト名のファイルを作成し設定を記述する。

/etc/ansible/group_vars/raleigh # ファイルの拡張子は '.yml'、 '.yaml'、 もしくは '.json'
/etc/ansible/group_vars/webservers
/etc/ansible/host_vars/foosball

roleに紐づく変数の定義ファイルなどはちょっと違ったりしそう。main.ymlだったり。
下記も目を通しておきたい。
公式ドキュメント - Best Practices

繰り返し処理

loopwith_*を使って繰り返し処理を実行することができる。
loopはAnsibleのバージョン2.5で追加された機能だそうです。
一部のモジュールではパラメータに直接リストを渡すことができるので、タスクをループさせるより効率が良いことがある。モジュールのマニュアルを読むこと。

公式ドキュメント - Loops

単純なリストの繰り返し処理

- name: add several users
  user:
    name: "{{ item }}"
    state: present
    groups: "wheel"
  loop: # with_items:
     - testuser1
     - testuser2

ハッシュリストの繰り返し処理

- name: add several users
  user:
    name: "{{ item.name }}"
    state: present
    groups: "{{ item.groups }}"
  loop: # with_items:
    - { name: 'testuser1', groups: 'wheel' }
    - { name: 'testuser2', groups: 'root' }

変数を参照する場合

事前に定義した変数を使用して繰り返し処理を行う場合、loopに変数を指定する。
変数は"{{ }}"で括らないと変数が参照できない。
注意したほうがいいのは変数名で、暗黙的に宣言されている変数があるので、それとかち合ってる場合はうまく動かなくてハマる。。。groupsとか。
公式ドキュメントの特殊変数を確認しよう。。。

vars:
  users:
    - { name: 'testuser1', groups: 'wheel' }
    - { name: 'testuser2', groups: 'root' }

- name: add several users
  user:
    name: "{{ item.name }}"
    state: present
    groups: "{{ item.groups }}"
  loop: "{{ users }}"

タスクを管理者ユーザで実行する

rootでSSH接続できない場合、管理者権限でタスクを実行するにはbecomeを使います。

公式ドキュメント - Understanding privilege escalation: become

Playbookに記載する場合は下記のような形で記載する。

---
- hosts: all
  become: yes
  become_user: root
  become_method: su
  become_flags: '-s /bin/sh'

または変数を設定する。
変数は適用範囲に応じて適切なファイルに指定しておけばいいと思う。

---
# group_vars/all.yml
ansible_become: yes
ansible_become_method: su
ansible_become_password: somepassword

become_passwordはパスワードハッシュは指定できないみたい。
機微なデータを保護したい場合はAnsible Vaultを使う感じ。

実行

DRY-RUN

--checkオプションつけて実行する。
--diffオプションもあるが何が違うのか...

構文チェック

--syntax-checkオプションつけて実行する。

タスク一覧の確認

--list-tasksオプションつけて実行する。

特定のタスクから実行する

ansible-playbookコマンドを--start-at-taskオプション付きで実行する。
ステップ実行するには--stepオプションをつける。

ansible-playbook -i hosts -l hostname site.yml --start-at-task="some task name" --step
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

WSLからコマンドラインでエクスプローラを実行する方法

はじめに

WSL(Windows Subsystem for Linux)Git Bashのようにターミナル上からエクスプローラーを起動したいと思い、実行方法を調べてみました。

実行環境は以下のとおりです。

  • Windows : Windows 10 Pro
  • WSL : Ubuntu 18.04.2 LTS

やりたかったこと

Git Bashではコマンドプロンプトのstartコマンドを使用してエクスプローラーを実行することができます。

$ start explorer [ディレクトリパス]

これと同じように、コマンドラインからエクスプローラを実行できるかをWSLで確認します。

結果

結果としてWSLでは下記のコマンドでエクスプローラーを実行することができました。

$ explorer.exe [ディレクトリパス]

Windows側のファイルを実行できる理由

envコマンドを用いてWSL側の環境変数PATHの中身を確認してみました。

$ echo $PATH | sed s/:/\\n/g | grep -Ei "/mnt/c/windows"
/mnt/c/Windows/system32
/mnt/c/Windows
/mnt/c/Windows/System32/Wbem
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/system32
/mnt/c/WINDOWS
/mnt/c/WINDOWS/System32/Wbem
/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/System32/OpenSSH/
/mnt/c/WINDOWS/system32
/mnt/c/WINDOWS
/mnt/c/WINDOWS/System32/Wbem
/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/System32/OpenSSH/

どうやらWSLではWindows側の環境変数がデフォルトで反映される為、Windowsの標準コマンドなどの実行ファイルを指定できるようです。

.exeを指定しないでコマンドを実行する

実行方法は分かりましたが、いちいち.exeを指定して実行するのが億劫なのでエイリアスを登録します。

エイリアスの登録

bashの設定ファイル.bashrcの中にエイリアスを登録し、.exeなしでコマンドが実行できるよう設定します。

$ vim ~/.bashrc

vimの編集画面が開かれるので、以下のように.bashrcに内容を追記してください。

alias [コマンド名]='[実行ファイル名]'

私は以下のように設定しました。

# aliases
alias explorer='explorer.exe'

編集が終わったら、sourceコマンド.bashrcを再度読み込ませて、エイリアスを反映させます。

$ source ~/.bashrc

sourceコマンド実施後、.exeなしでコマンドを実行できるか確認します。

$ explorer .

無事に.exeなしで実行することができました。
ちなみに設定したエイリアスの一覧はaliasコマンドで確認することができます。

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

WSLからエクスプローラを起動する方法

はじめに

WSL(Windows Subsystem for Linux)Git Bashのようにコマンドラインからエクスプローラーを起動したいと思い、実行方法を調べてみました。

実行環境は以下のとおりです。

  • Windows : Windows 10 Pro
  • WSL : Ubuntu 18.04.2 LTS

やりたかったこと

Git Bashではコマンドプロンプトのstartコマンドを使用してエクスプローラーを実行することができます。

$ start explorer [ディレクトリパス]

これと同じように、コマンドラインからエクスプローラを実行できるかをWSLで確認します。

結果

結果としてWSLでは下記のコマンドでエクスプローラーを実行することができました。

$ explorer.exe [ディレクトリパス]

Windows側のファイルを実行できる理由

envコマンドを用いてWSL側の環境変数PATHの中身を確認してみました。

$ echo $PATH | sed s/:/\\n/g | grep -Ei "/mnt/c/windows"
/mnt/c/Windows/system32
/mnt/c/Windows
/mnt/c/Windows/System32/Wbem
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/system32
/mnt/c/WINDOWS
/mnt/c/WINDOWS/System32/Wbem
/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/System32/OpenSSH/
/mnt/c/WINDOWS/system32
/mnt/c/WINDOWS
/mnt/c/WINDOWS/System32/Wbem
/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/System32/OpenSSH/

どうやらWSLではWindows側の環境変数がデフォルトで反映される為、Windowsの標準コマンドなどの実行ファイルを指定できるようです。

.exeを指定しないでコマンドを実行する

実行方法は分かりましたが、いちいち.exeを指定して実行するのが億劫なのでエイリアスを登録します。

エイリアスの登録

bashの設定ファイル.bashrcの中にエイリアスを登録し、.exeなしでコマンドが実行できるよう設定します。

$ vim ~/.bashrc

vimの編集画面が開かれるので、以下のように.bashrcに内容を追記してください。

alias [コマンド名]='[実行ファイル名]'

私は以下のように設定しました。

# aliases
alias explorer='explorer.exe'

編集が終わったら、sourceコマンド.bashrcを再度読み込ませて、エイリアスを反映させます。

$ source ~/.bashrc

sourceコマンド実施後、.exeなしでコマンドを実行できるか確認します。

$ explorer .

これで.exeなしで実行できるかと思います。
ちなみに設定したエイリアスの一覧はaliasコマンドで確認できます。

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