2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

面倒なことはshellになんとかしてもらおう

Last updated at Posted at 2019-04-02

エンジニアたるもの怠惰であれ、と神は言った。

人生は面倒に溢れている

生活を送るに当たって面倒なことは多々あります。わけのわからない講義やわけのわからないコンパイル、クソつまんねぇ行事やクソつまんねぇ一連のコマンド操作。はい、毎回やる一連の動作なんてものは一発でできるようにしてしまいましょう。

shellってなに?

コマンドうつ時のあれ、つまりコマンド作ろうぜってお話ですね。
今回は3つのコマンド作成について説明します

コマンドを作ろう

では、本題です、これから何回も打つコマンドや長いコマンドを短くしていく方法を3つ紹介していきましょう。

ailiasを設定しよう

alias (別名,偽名)をコマンドに設定してあげましょう。
~/.bash_profile というfileに書き込んでいきましょう。
zshに変えている人は
~/.zshrc に書き込みましょう。

nano ~/.bash_profile

を実行してfileに書き込みましょう。
書き込みが終わったら control + o で保存して control + x でエディタを閉じましょう。CUIエディタに興味がある人は調べてみても面白いかもしれません。

早速実例を見ながら説明していきましょう。

  • ll
    まずはlsコマンドの -l オプションです。これ1日に100回くらい使います
    1日100回もこんなの打つと鬱になりますね。
alias ll='ls -l'

ついでに

  • la
alias la='ls -al'

これも設定しちゃいましょう。
~/.bash_profileを書き換えたら実際に動きを確認してみたいですよね、今llコマンドを打っても反応はしてくれません、焦らずに

source ~/.bash_profile

としてあげましょう、せっかちはダメですよ。
そうするとあら不思議、llとコマンドを打つとls -l が実行されたではありませんか。では、このままaliasを使って面倒なコマンドを短くしていきましょう。興味があるのは追加してみてください。

  • sshl
alias sshl='ssh 接続するサーバー'

決まったサーバーにsshする場合はsshコマンドを簡潔にしましょう。lはlocalの意です。
僕はraslというコマンドで自宅のラズベリーパイにlocal sshをし、rasgというコマンドでglobal sshをしています。

  • nn
alias nn='nano -k -w -i -S'

nanoのオプションを毎回打つのは面倒なので簡略化します。

  • bi
alias bi='brew install'

何気にしょっちゅう打つ、brewを使ってパッケージをインストールする際に毎回brew installを打つのは面倒なのでbiで済ませます。

と、まあこんな感じにいくつか紹介しましたが、このコマンド何回も打つなって思ったらaliasに登録して短くしてやりましょう。

shファイルを作ろう

aliasには変数は使えません。なので変数を使う場合などはcommandName.shのようなfileに書き込み、aliasに登録してあげましょう。
まずは.shファイルをまとめるディレクトリを作り、そ子に移動しましょう。

mkdir ~/Tools
cd ~/Tools

以下はcommandNameというshファイルを作り、commandというaliasを設定する場合です。

alias command='sh ~/Tools/commandName.sh'
  • mkcd

mkdirをしたあとはさっきのように続けてcdしましたよね、これ面倒ですよね、コマンドにしてあげましょう。

mkcd.sh
#!/bin/sh

command='mkdir $1 && cd $1'
eval $command

少し説明します、$1とは

cd hogehoge

このhogehogeの部分のことです。スペース区切りで入力した文字が$1,$2と変数に格納されます。
eval とは以降のコマンドを実行するという命令です。
aliasに登録してあげましょう。

alias mkcd='source ~/Tools/mkcd.sh'
  • cl

もう一例示してみましょう、cdした後にはそのディレクトリになにがあるか知りたいですよね、先ほど登録したllを使いましょう。

cdll.sh
#!/bin/sh

command='cd $1 && ll'
eval $command

これで、cdしたディレクトリでll (ls -l)コマンドを自動で行ってくれます。

alias cl='source ~/Tools/cdll.sh'

alias登録を忘れずに。

functionをつくろう

先ほど作ったclコマンドをfunctionで実装してみましょう。

function cl () {
  cd $1;
  ls -l;
}

こうやって作ることで、aliasに登録せずに、clと入力することでcl関数を実行することも可能です。

## おわりに

こんな感じで少しでも面倒に感じたら自分なりにショートカットできるコマンドを作ってみるといいと思います。c言語やtexのコンパイル作業とか、面倒なのでshellになんとかしてもらいましょう。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?