logo-sm

お問い合わせは Webフォームから

ブログ

Linuxの作業効率を上げる基本操作

2017.03.03

こんにちは。
2017年も早2ヶ月が経ちました。
今年は良いスタートを切れたでしょうか?

今回はLINUXのコマンドラインを使用する上で、作業効率アップに繋がりそうな基本操作の紹介をしたいと思います。
作業効率アップ(要するに出来るだけ楽をしたい)は考える人も多いと思います。
基本的な操作内容となっていますが、今回の内容が少しでも役に立てば幸いです。

今回紹介するのは以下の3つとなります。
1.ディレクトリの移動
2.エイリアス(別名)
3.ショートカットキー

ディレクトリの移動

ディレクトリの移動といえばcdコマンドです。
cdコマンドには記号によるショートカットがあるのでそれらを紹介します。

ディレクトリの移動において必要となる考え方が、ディレクトリの絶対パスと相対パスについてです。
絶対パス:ルートディレクトリを基点とした目的のファイル、ディレクトリへのパスになります。
相対パス:現在のディレクトリ(カレントディレクトリ)を起点とした目的のファイル、ディレクトリへのパスになります。
紹介する中にある1つ上のディレクトリに移動するなどは相対パスの考え方になります。

ユーザのホームディレクトリに移動するには

cd
cdコマンドのみで引数を指定しない場合は実行ユーザのホームディレクトリに移動します。
実行例:

$pwd
/tmp

$cd

$pwd
/home/usera

特定のユーザのホームディレクトリに移動するには

cd ~<ユーザ>
<ユーザ>を指定せず「~」のみの場合は、実行ユーザのホームディレクトリに移動します。
<ユーザ>を指定した場合は指定したユーザのホームディレクトリへ移動します。
実行例:

$pwd
/tmp

$cd ~

$pwd
/home/usera

$cd ~userb

$pwd
/home/userb

1つ上のディレクトリへ移動するには

cd ..
現在のディレクトリ(カレントディレクトリ)の1つ上のディレクトリに移動します。
実行例:

$pwd
/home/usera/test1

$cd ..

$pwd
/home/usera

1つ前のディレクトリへ移動するには

cd –
現在のディレクトリ(カレントディレクトリ)に移動する前のディレクトリに移動します。
繰り返し実行しても2つ前、3つ前となるわけではなく、移動前と後のディレクトリを行ったり来たりするだけになります。
コマンド実行時に移動後のディレクトリの絶対パスが表示されます。
実行例:

$pwd
/tmp

$cd

$cd -
/tmp

$pwd
/tmp

$cd -
/home/usera

エイリアス(別名)

エイリアス(別名)を設定することで、コマンド入力を簡略化することができます。
よく使用するコマンドとオプションの組み合わせなどはエイリアスを設定して作業効率をアップしましょう。

エイリアスを表示するには

alias
引数を使用しない場合は設定されているエイリアスが表示されます。
実行例:

$alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

エイリアスを設定するには

alias <エイリアス名>=’<コマンド>’
エイリアス名は任意の文字列です。
=の前後にスペースを入れないように注意しましょう。
実行例:

$alias et='echo test'
test

aliasは現在のセッションのみ反映されるため、ターミナルを閉じる、ログアウトするなどでセッションが切れると使用できなくなります。
もし常に使用したいのであれば、~/.bashrcに使用したいaliasを設定するコマンドを追記するなどして起動時に設定されるようにしましょう。

エイリアスを回避するには

\<コマンド>
aliasは既存のコマンドと同じ文字列でも設定できます。
設定した場合はaliasの方が優先されるため、そのままでは元のコマンドが使用できません。
元のコマンドを使用したい場合はコマンドの前\(エスケープ文字)を入れます。
実行例では「cp -p」を「cp」にしています。
実行例:

$whoami
userb

$ls -l
-rw-rw-r-- 1 usera usera 0  2月 22 20:36 test

$alias cp='cp -p'

$cp test test1

$ls -l
-rw-rw-r-- 1 usera usera 0  2月 22 20:36 test
-rw-rw-r-- 1 usera usera 0  2月 22 20:36 test1

$\cp test test2

$ls -l
-rw-rw-r-- 1 usera usera 0  2月 22 20:36 test
-rw-rw-r-- 1 usera usera 0  2月 22 20:36 test1
-rw-rw-r-- 1 userb userb 0  2月 22 20:38 test2

エイリアスを削除するには

unalias <エイリアス名>
aliasを間違えて設定した場合、不要になった場合などはunaliasコマンドで削除できます。
実行例:

$alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

$unalias ll

$alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ls='ls --color=auto'

ショートカットキー

コマンドラインで使用するショートカットキーになります。
ショートカットキーの中にはEnterやESCなどの代わりになるものがあります。
当然そのままそれぞれそのキーを使用すればいいのですが、ショートカットキーを使用すればキーボードのホームポジションを崩すこと無く作業し易くなります。
使いこなすことができるようになれば、キーボード上での操作がより簡略化できるかもしれません。

カーソルを移動するには

Ctrl+a:カーソルをコマンドラインの行頭へ移動します。
Ctrl+e:カーソルをコマンドラインの行末へ移動します。
Ctrl+f:カーソルを1つ右に移動します。
Ctrl+b:カーソルを1つ左に移動します。

カーソル位置から行末まで削除するには

Ctrl+k:カーソル位置から行末まで削除します。

バッファをクリアするには

Ctrl+l:バッファをクリアします。
clearコマンドと同じ動作になります。

特定キーの代わりとなるショートカットキー

Ctrl+[:ESCキーの代わりになります。
Ctrl+h:Back spaceキーの代わりになります。
Ctrl+j,Ctrl+m:Enterキーの代わりになります。

履歴を表示するには

Ctrl+p:コマンド履歴の1つ前を表示します。
Ctrl+n:コマンド履歴の1つ後を表示します。

ジョブのキャンセル、一時停止をするには

Ctrl+c:ジョブをキャンセルします。
Ctrl+z:ジョブを一時停止します。
一時停止したジョブはfgコマンドなどを使用すれば再開できます。

まとめ

今回は上記の内容を紹介しましたが、作業効率アップの方法はそれこそ無数にあり、基本操作だけに絞ってみてもまだまだあると思います。
機会があれば他の方法も紹介したいと思います。

関連記事

  • 自宅に構築!仮想環境 ~BIG-IP VE導入編~
    【導入】 前回は、自宅サーバにProxmoxを導入しました。 今回はその上に仮想マシンとしてBIG-IP VE […]

    2024.09.30

  • 自宅に構築!仮想環境 ~Proxmox導入編~
    【導入】 以前から学習用に自宅仮想環境をつくりたく思っていたところ、BIG-IP(の仮想版)に触れる必要が出て […]

    2024.09.30

  • WindowsのWSL2上のDockerでup時に’ContainerConfig’のエラーが出た。
    当社の開発環境はMacとWindowsが混在したDocker上での開発を行っています。なのでMacでOKだけど […]

    2024.04.08

  • パートナー

  • 人材育成・採用情報