Linuxコマンドの最近知った機能をまとめる
目次
echoコマンド
echoコマンドは、指定した引数の文字列を表示するコマンドです。
echo "Hello" => Hello
シェルに設定されている環境変数を確認したりもできます。
echo $HOME => /Users/yuuki_haga
シェルのリダイレクト機能
シェルのリダイレクトという機能を使うと、コマンド実行時の標準入出力を変更することができます。
# /tmpディレクトリに移動して、/tmpディレクトリ配下にsample.txtを作成する touch sample.txt # catでsample.txtに何も書かれていないことを確認する cat sample.txt # echoコマンドの標準出力をファイルに変更 echo $HOME > ./sample.txt # ファイルに書き込まれていることを確認できた cat sample.txt => /Users/yuuki_haga # catコマンドの標準入力をファイルに変更 cat < ./sample.txt /Users/yuuki_haga # 再度、コマンド実行結果をファイルに出力する echo $HOME > ./sample.txt # ファイルの内容が上書きされる cat < ./sample.txt => /Users/yuuki_haga # 新しい行として追加したいなら、>>を使う echo $HOME >> ./sample.txt # 確かに追加されていた cat sample.txt => /Users/yuuki_haga /Users/yuuki_haga # <<を使うと、標準入力をヒアドキュメントで渡すことができる # ヒアドキュメントとは、特定の文字列が入力されるまでをまとめて入力として扱う機能である # <<の後に任意のワードを書くと、次にそのワードが入力されるまでに書かれた行を標準入力の行として解釈される cat << "EOF" heredoc> aueo heredoc> kakikukeko heredoc> EOF => aueo kakikukeko # ヒアドキュメントを使いつつ、標準出力をファイルに変えたりもできる cat ./sample.txt => /Users/yuuki_haga /Users/yuuki_haga cat << "EOF" > ./sample.txt heredoc> aiueo heredoc> kakikukeo heredoc> sasisuseso heredoc> EOF cat ./sample.txt => aiueo kakikukeo sasisuseso
パイプ
パイプは、前のコマンドが出力した内容を、次のコマンドの入力につなげるための機能です。 grepコマンド使う時に、パイプをよく使います。
ps aux | grep zsh
長いコマンドを読みやすくする
バックスラッシュ("\")を使うことでコマンドを複数の行で分割できます。
echo aiueo \ akkikeo \ sasiseso => aiueo akkikeo sasiseso
ユーザーとsudoコマンド
Linuxにはシステムにログインするためのアカウントとして、ユーザーという概念があリマス。ユーザーのアカウントにはユーザー名や認証情報が含まれます。
whoamiコマンドを使えば、ログインしているユーザー名を確認できます。
whoami
=> yuuki_haga
また、Linuxのユーザーにはスーパーユーザーという考え方があります。スーパーユーザーはシステムの管理人です。スーパーユーザーはその他のユーザーでは実行できないような、システムを改変するような操作も実行できます。例えば、sudoコマンドを使うと、一時的にスーパーユーザーとしてコマンドを実行できます。
topコマンド
topコマンドは、CPUやメモリの利用状況を表示するためのコマンドです。 このコマンドは定期的に表示をリフレッシュしながら実行を続けます。
コマンド置換
コマンド置換では、ドル記号と丸括弧の中にコマンドを入力します(シェル変数や環境変数を参照する場合は$だけで良くて、丸括弧は必要ないので勘違いしないように注意)。そうすると先に丸括弧の中のコマンドが実行されて、$(コマンド)
自体が「丸括弧内のコマンドの実行結果」に置換されます。
コマンド置換をすることで、ファイルの場所をwhichで特定して、そのパスをコピーして別のコマンドの引数としてペーストして実行する必要がなくなくなります。
which go => /usr/local/go/bin/go # goのファイルが開ける vim $(which go)