- 投稿日:2020-07-07T23:07:50+09:00
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分の作業と短い休息で作業時間と休息時間を分割することである。集中力が続かない人にはうってつけの時間術だ。
具体的な手順は以下になる。
- LPIC学習などタスクを決める
- タイマーを25分に設定しタスクに集中する
- タイマーを5分に設定し意識的に集中を切らす(短めの休憩)
- 2〜3を5セット繰り返す
- タイマーを15分に設定し意識的に集中を切らす(長めの休憩)
- 2に戻る
私は昨日まで上記のテクニックを知らずに生きてきた。
なかなか集中力が続かないのでいろいろ調べた結果たどり着いた。
資格学習を進めるうえでポモドーロ・テクニックを実戦してみた結果、
集中力が継続できているか実感できなかったが、スマホに手を伸ばす癖が治せそう。
5分間の休息時に軽く見るようにしているので、これだけでも効果がありそう。
この5分間をどう使うかでこれからの人生が左右されると言える。(言えない)ポモドーロ・テクニックによる効果
学習だけでなく仕事の質が格段に向上するらしい(適当)
学習をすすめていくうえでの小技
キリ良く学習を進めないこと
中途半端に終わらせることで「早く次に進めたい」という欲が強くなりませんか。
なりませんね、すみません。
キリ良く終わると「次はいつからでも進められる」という気になりませんか。
なりませんね、すみません。
私は○章までやるという目標は立てず、時間に身を任せている。
タイマーが鳴ったら途中でも手を止める、予定セット数が終わったら次の日へ回す。
あえて中途半端に終わらせることで、
早く次に進めたいという欲求を強めることができるような気がする。さいごに
最近になって何事も習慣化していきたいと思うようになった。
きっかけは「僕のヒーローアカデミア」という漫画で出てきたとある言葉。集中すればできることを寝ながらでもできるようにしろ
やると決めた時には既に行動し終わっていろビジネスの世界にも通用する言葉なのではないかと思った。
改札を通る時に定期券をタッチする行動やスマホのパスコードを入力する行動など、
毎日の習慣として身についているので全て寝ながらできる自信がある。
資格学習などの自己研鑽も習慣化できればこれほど良いことはない。
これからポモドーロテクニックを有効活用し、学習を習慣化していきたいと思う。
- 投稿日:2020-07-07T21:28:39+09:00
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
- 投稿日:2020-07-07T19:37:07+09:00
ApacheでSSL(TLS)を有効化する方法
はじめに
Apache2.4で自己署名証明書(※いわゆるオレオレ証明書)を使って、SSL(TLS)を有効化する方法をまとめてみました。
本番環境では当然使えない方法となりますが、自宅サーバーで学習する時や開発環境では使える方法なのではないかと思います。テストに使用した環境
ハードウェアについては今回の手順とは直接関係ありませんが、念のため記載しておきました。
- CPU
- Kabylake: Pentium G4560
- マザーボード:ASRock H110M-STX
- メモリ:8GB(4GB×2枚)
- ストレージ:256GB SSD(NVMe)
- OS
- CentOS 7.8(2003)
- Apache
- Apache-2.4.6
前提となる設定
- Apacheがインストールされていること。
- Apacheが起動できる状態であること。
- 事前に設定ファイル(httpd.confなど)を編集した場合は要注意。
- SELinuxが停止かつ無効化(disabled)されていること。
- 今回は自宅用、あるいは開発用ということで、SELinuxを停止させておきます。
SSL(TLS)を有効化するための手順
1. HTTPS通信に必要なソフトウェアのインストール
- OpenSSLは、SSLおよびTLSを実装したライブラリで、SSL(TLS)を有効化するのに必須のモジュールとなります。
- mod_sslは、ApacheでSSLおよびTLSをサポートするために提供されているモジュールです。
[root@akagi ~]# yum install openssl [root@akagi ~]# yum install mod_ssl2. 作業用のフォルダに移動
/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 key6. 秘密鍵のコピー
- 公開鍵をサーバー証明書を作成した後、秘密鍵を
/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で接続できますが、ブラウザのアドレスバーに「保護されていない通信」と警告が表示されます。
参考URL
- 投稿日:2020-07-07T17:46:35+09:00
デバイス、Linuxファイルシステム、FHS ③忘備録 (ファイルのパーミッションと所有者の管理・ハードリンクとシンボリックリンクの作成・システムファイルの検索、適切なファイル配置)
ファイルやディレクトリに対する権限をパーミッションと言う。
権限は読み取り・書き取り・実行の3つ。
①読み取り
cat moreなどのファイルの内容を参照する。
ディレクトリ内の内容を参照。ls find②ファイルに書き込み
vi ディレクトリに新規のファイルを作成.削除する→touch mv rm③実行
ファイルを実行する。ディレクトリ内のファイルへのアクセスをする
cdrwxrwxrwx 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
実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、プログラムの所有ユーザの権限で実行されます。
設定はchmodコマンドで、通常のパーミッションの値に4000を加えた値を設定するか、所有ユーザに「s」という権限を追加します(u+s)。
これが設定された代表的なプログラムに「passwd」コマンドがあります。・SGID
実行ファイルに設定する事で、そのプログラムをどのユーザが実行しても、プログラムの所有グループの権限で実行されます。
設定は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になる。
- 投稿日:2020-07-07T16:46:10+09:00
デバイス、Linuxファイルシステム、FHS ①忘備録 パーティションとファイルシステムの作成・ファイルシステムの整合性の保持
っっs
- 投稿日:2020-07-07T15:36:57+09:00
Ansibleについて調べたことの雑多なまとめ
変数
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_vars
、host_vars
ディレクトリにグループ名/ホスト名のファイルを作成し設定を記述する。/etc/ansible/group_vars/raleigh # ファイルの拡張子は '.yml'、 '.yaml'、 もしくは '.json' /etc/ansible/group_vars/webservers /etc/ansible/host_vars/foosballroleに紐づく変数の定義ファイルなどはちょっと違ったりしそう。
main.yml
だったり。
下記も目を通しておきたい。
公式ドキュメント - Best Practices繰り返し処理
loop
かwith_*
を使って繰り返し処理を実行することができる。
loop
はAnsibleのバージョン2.5で追加された機能だそうです。
一部のモジュールではパラメータに直接リストを渡すことができるので、タスクをループさせるより効率が良いことがある。モジュールのマニュアルを読むこと。単純なリストの繰り返し処理
- 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
- 投稿日:2020-07-07T01:16:24+09:00
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コマンド
で確認することができます。
- 投稿日:2020-07-07T01:16:24+09:00
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コマンド
で確認できます。