実務で使ってるLinuxコマンド一覧
最近ではLAMP環境でアレコレやることも(きっと)減っていて、
僕自身、実際あまりLinuxコマンドに触れることはなかったです。
使ってたのはせいぜい
cd
mkdir
rm
vim
ls
ぐらいでした。
オプションつけるなんてことも滅多になく。
(あったとしてもrm -rf)
しかし3月〜、受託会社にてエンジニアとして勤めていると、
なんとまぁLinuxコマンドはわりと普通に使うんですね。(当然ですかね。。笑)
ということで色々とアレコレやりだして仕入れた、
Linuxコマンドたちを備忘録としても使えるようにまとめてみました。
ls
List Segmentsの略、らしい。
カレントディレクトリのファイルやディレクトリを一挙に表示してくれます。
$ ls
Application Documents Downloads Library Movies Music
Pictures Public
個人的にはlオプションをつけて表示すると、縦一列に並ぶ上、ファイルの持つ権限なども
一覧になり、管理する上でも、シンプルに閲覧する上でも見やすくて欠かせないオプションです。
mkdir
Make Directoryの略ということで、
文字通り、ディレクトリを作成するコマンドです。
$ mkdir test_directory
$ ls
test_directory
cd
Change Directoryの略ということらしく、
ディレクトリを移動するためのコマンドです。
$ cd test
$ pwd
Users/User_Name/test
因みに、存在しないディレクトリには移動できないため、
ディレクトリを作成する意図がある場合には、
mkdirでディレクトリを生成してからにしましょう!
よく使うのは、「..」で、1階層上のディレクトリに移動するというコマンドです。
cdだけで打つと、ホームディレクトリに一発で戻れます。
ディレクトリ移動をうっかり間違えた場合などは「cd -」で一個前にいたディレクトリに戻ります。
pwd
Positioning Work Directoryの略(のはず)らしいです。
いまいるディレクトリのパスを表示するというコマンドです。
$ pwd
Users/User_Name/
たったそれだけですが、本番環境などで作業する際に、
cdコマンドで移動したあとに、ちゃんと想定通りのディレクトリに移動したか?
などの確認のために使っています。
rm
Removeの略だと思っている。
ファイル削除のためのコマンドです。
$ ls
test1.txt test2.txt test3.txt
$ rm test1.txt
$ ls
test2.txt test3.txt
-rfオプションをつけるとディレクトリ削除ができます。
因みに、つけないとディレクトリ削除はできません。
実行されたが最後、問答無用で削除するので、
本番環境にいる場合など、要注意です。
mv
moveの略称でしょう。
moveは移動という意味の通り、ファイルなどの移動をさせるコマンドです。
僕がよく使う例としては以下になります。
scp hoge fuga:~/
とかでファイルを転送したあとで…
$ cd var/www/html
$ mv fuga .
$ ls
fuga
みたいに、転送させてきたファイルを移動させるのに使ってますね。
ドットは「カレントディレクトリ(現在地)」を指すので、移動させたい場所に先に移動して、
.記述でファイルを移動させる、っていうのを最近よくやっています。
cp
copyの略称でしょう。
いうまでもなく、ファイルやディレクトリをコピーするコマンドです。
先方の環境が古かったりなんだったりで、
sshで接続してデプロイせねばならない場合などに、
バックアップを取得する目的で使うことが多いです。
$ cp test.txt test.txt_back
$ ls
test.txt test.txt_back
という風にバックアップファイルを取得することができます。
ただ、上記の目的のような場合は、基本的にコピーしたいファイルやディレクトリがもともと持っている
読み書きの権限や所有者をそのまま取っておかないと「バックアップ」としての意味を
持たないことになっちゃうのですが、それを解決するのが-pオプションです。
$ cp -p test.txt test.txt_back
このようにすれば、test.txtにもともと設定されている権限や所有者、その他タイムスタンプなどの
情報をそのままにコピーを取得できるので、cpを使うときは必須といっても全く過言ではないです。
また、バックアップファイルを取得する際は、日付なんかもファイル末尾につけておくと、
後々管理しやすかったりするかもしれませんが、そんなときはdate +%Y%m%d
をつければOK。
$ cp -p test.txt test.txt_back`date +%Y%m%d`
$ ls
test.txt test.txt_back20200414
という感じで、その日の日程をつけてくれます。
あと、ディレクトリをコピーしたい場合は、「-r」オプションでOKです。
$ cp -r DIRECTORY MOVE_DIRECTORY
ps
なんの略だか知りません。笑
Linux上で稼働中のプロセスを表示するコマンドです。
$ ps
PID TTY TIME CMD
1989 XXXXXXX 0:00.03 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server
auxオプションをつけると、より詳細かつ、より幅広いプロセスの情報を一覧することができていて、
実務上で使うのは、以下のコマンドです。
$ ps aux| grep hoge
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
hoge 2336 0.0 0.0 4268212 540 s001 R+ 1:21AM 0:00.00 grep root
grep
psコマンドの紹介中にちゃっかり出てきたこいつ、
ファイル中の文字列に対して正規表現を使って検索し表示するというコマンドです。
$ grep test DIRECTORY_NAME/*
上記のコマンドを打つと、DIRECTORY_NAMEというディレクトリ内にあるファイルの中身を検索し、
testという文言がある箇所がコンソールに表示されます。
ssh
TeratermやPuTTyなどの便利な接続ツールがあるおかげであまりコマンドを打って
サーバーに接続するみたいなのってイメージとして減っているように思うのですが、
実際はどうなんでしょうか?
$ ssh hoge_server
hoge_server $
基本的にはパスワードやらの入力は必要だと思いますが、このコマンドを用いて他サーバに接続することが可能です。
また、~/.ssh/configというファイルの中にssh接続情報が格納されており、
ここにアレコレ記述することで、ssh接続の際の手間を削減することも可能です。
chmod
Change Modeの略らしく、ファイルやディレクトリに与えられている権限の変更を行うコマンドです。
$ chmod 777 test.txt
777はあまり使わないようにも思いますが、
読み書き実行についての権限が変更できます。
先に紹介したlsコマンドの-lオプション付きでの実行により、
ここでいう権限も確認できるようになっています。
chown
Change Ownerの略らしく、ファイルやディレクトリの所有者を変更するコマンドです。
大体はユーザーかrootなのかな?と思っていますが、
まぁこれらを変更するコマンドです。
$ chown root:root
ざっと思い出せる限りで書いてみました。
Linuxコマンドは数も多く、コマンドそれぞれのオプションも多いので、
覚えるのが大変!って思うかもしれません。。
なので、本番環境やプロジェクトのテスト環境ではなく、
完全にプロジェクトに影響のないローカル環境で
バチバチ動かしてみて、体で覚えていくと良いかなと思います。
これからもがんばります。笑