はじめに
みなさん、こんにちは。torihaziです。
今回は普段、業務で触っている Linuxのコマンドについて
紹介していこうと思います。
私が実務で2年間linuxを触り続けてきた中で
最もよく使う形をご紹介します。
マニアックなオプションとかは紹介するつもりはありません。
というか使わなくても仕事は可能です。
その都度ググりながら来てください。大丈夫。簡単ですよ。
lets go!!
目次
- はじめに
- 終わりに
cd
ディレクトリ間を移動することができます。
記法 : cd 移動したいパス
よく使うもの
例えば今dir
にいるとします。
・・・dir1-2に行きたい場合 # cd dir1/dir1-2 # pwd <- 現在いるディレクトリを出力する /home/hoge/dir/dir1/dir1-1 ・・・1つ上に行きたい場合 # cd ../ # pwd /home/hoge/dir/dir1 ・・・1つ直前にいたディレクトリに戻る # cd - # pwd /home/hoge/dir/dir1/dir1-1
pwd
現在いるディレクトリを出力します。(上でさらっと使いましたね。)
記法 : pwd
よく使うもの
なし。pwdだけで機能します。
ls
ファイルやディレクトリの一覧やその情報を出力することができます。
記法 : ls [-オプション] [対象のパス]
よく使うもの
ls -l
: ファイルやディレクトリの一覧をソートして出力しますls -la
: 隠しファイル(.bashrcなど)含めた一覧を出力しますls -ltr
: 更新時間が早いものほど下になるように出力されます
先ほどと同じようにdir
にいるとします。
# ls -l drwxr-xr-x 4 hoge hoge 4096 Jan 12 20:43 dir1 drwxr-xr-x 4 hoge hoge 4096 Jan 12 20:45 dir2
ここにはパーミッション、所有者、所有グループ、タイムスタンプ、名称が出力されます。
mkdir
ディレクトリを作成することができます。
記法 : mkdir [-オプション] [ディレクトリ名]
よく使うもの
※mkdir -p について
mkdir は 未作成のディレクトリ配下に新しく作成することはできません。
そのような場合は mkdir -pとすることで 未作成のディレクトリも合わせて作成できます。
この状態でmkdir dir3/dir
をすることはできません。
# mkdir dir3/dir mkdir: cannot create directory ‘dir3/dir’: No such file or directory これを防ぐための -p です # mkdir -p dir3/dir こうすれば怒られません。
rmdir
空のディレクトリを削除することができます。
記法 rmdir ディレクトリ
よく使うもの
あまり使いませんね。。空のディレクトリしか削除できません。
cat
ファイルの中身を出力することができます。
記法 : cat ファイル名 [ファイル名] ->複数指定可能
よく使うもの
特になし。
less
何スクロールにもわたるファイルを参照するときに使用します。
cat で表示すると、出力はされるものの一気に出力され切ってしまいます。
そのため「最初の方が見たいのに・」という時はスクロールして戻らないとだめです。
それをせずに1ページずつ自分の好きなタイミングで参照することができるのがless
です。
※同じようなものにmore
がありますが、less
の方が便利です。
記法 : コマンド | less (|
はパイプと言います。)
よく使うもの
cat テキストファイル | less
: テキストファイルの中身を1ページずつ見ることができます。ls - l | less
: ls の結果を1ページずつ見ることができます。
tail
テキストファイルの末尾から出力することができます。
例えば末尾10行まで出力したりするといったことが可能です。
記法 : tail [-オプション] テキストファイル
よく使うもの
tail -100 /var/log/messages
: ログファイルの末尾から100行までを出力できます。tail -f /var/log/messages
: ログファイルを開き続け、新しい出力があれば表示しつづけます
※/var/log/messagesは ログファイルが出力され続けるファイルになります。
このファイルをtail -f
で参照することによって何か書き込まれるたびに
その書き込まれたデータを出力して参照することができます。
どういうことかと言いますと。
今、ターミナルを2つ上げた状態です
ここで左でtail -f log.txt(<-ファイルなければ適当に作成します)
と入力すると
カーソルが下に移動しましたね。ここで右側からlog.txt
にechoで書き込んでみます。
こんな形でリアルタイムで内容を出力してくれます。
用途としては/var/log/messages などのような出力され続けるログファイルの中身を
参照し続けたい場合に使用します。
touch
新規ファイルを作成することができます。
記法 : touch ファイル名
よく使うもの
あまり使いません。vim ファイル名 で大抵作ります。
rm
ファイルやディレクトリを削除するコマンドです。
このコマンドについては扱いに注意してください。
記法 : rm [-オプション] ファイル or ディレクトリ
よく使うもの
rm -i ファイル
: ファイルを削除する際、削除するか確認できるrm -f *.csv
: 拡張子csvがつくものを強制的に削除する
絶対にやらないで。rm -rf *
このコマンドを打つと死にます。
全てのファイル(ディレクトリ配下にファイルがあれば再帰的に)を強制的に削除します。
コマンドが打てなくなります。(コマンドのファイルも削除してしまうので)
やる時は個人のぶっ壊れてもいい環境でやってください。
クビになりたい人はどうぞ!退プロ間違いなしです!!
mv
ファイルやディレクトリの移動、名前の変更をすることができます。
記法1 mv 移動したい元ファイル 移動したい先ファイル
記法2 mv 変更前の名前 変更後の名前
よく使うもの
記法1、2の通りですね。
cp
ファイルやディレクトリのコピーをすることができます。
記法 cp コピーする元 コピー先
よく使うもの
cp -p hoge.sh hoge1.sh
:-p
をつけるとパーミッションもコピーしてくれます。cp -r hoge hoge2
: hogeディレクトリ丸ごとhoge2ディレクトリにコピーします。(hoge2なくても可能)
※ちなみにディレクトリコピーするときは-r
必須です。
ln
ハードリンク、シンボリックリンクを作成することができます。
ハードリンクはあるファイルAと同じファイルBを作成することができます。
ハードリンクで作成されたファイルBに対して編集するとファイルAにも反映されます。
そういうことができるのがハードリンクです。
一方シンボリックリンクは、ショートカットです。
記法 ln hoge.txt hoge2.txt (ハードリンク)
記法 ln -s hoge.txt hoge2.txt (シンボリックリンク)
よく使うもの
んー、使うことはあまりありません。
find
この子は奥が深いです。検索したり、コマンド実行したり。
使えば使うほど味が深いコマンドです。私も使い切れてはいません。
そのため今日実務で使った使い方を説明します。
記法(例) find / -name ¥*.sh -type f
これは/
配下にある拡張子がsh
のファイル(f)
を検索することができます。
よく使うもの
(幅が広すぎるので調べて使い倒してください)
今日使ったのはfind ./ -name * type f | xargs sed -i -e 's/hoge/hogeta/g'
です。
何をやっているかというと
カレントディレクトリ配下にある全てのファイルを参照し、
それぞれの中身に記載されているhoge
をhogeta
に置換するというコマンドです。
chmod
パーミッションを変更することができるコマンドです。
パーミッションとは権限のことですね。これが適切に設定されていないと
ファイルを実行できなかったり参照することができません。
sshの公開鍵を設定するときにお世話になります。もしくは喧嘩するかもしれません。
記法 chmod パーミッション(664など) ファイル or ディレクトリ
よく使うもの
記法のまんまです。
chown
ファイルもしくはディレクトリの所有者、所有者グループを変更することができます。
こちらもsshの鍵設定の時ですね。優しくしてあげてください。
記法 chown 所有者:所有グループ 対象のファイルなど
よく使うもの
こちらも記法のまんまですね。
ps
現在稼働しているプロセスを確認することができます。
こちらはオプションが豊富にありますが、よく使うものは-ef
です。
現場では覚えている人は少ないです。こういうもの、みたいな理解の人が多いです。
記法 ps [オプション]
よく使うもの
ps -ef | grep hoge
: 全ユーザのプロセスを省略せずに出力し、hogeという文字がある行のみ表示
kill
殺すコマンドです。kill you です。
嘘です。プロセスにシグナルを送信するコマンドです。
シグナルを送信すると、強制終了させたり中断させたりすることができます。
よくプロセスを殺すと言いますがそれはそのプロセスを強制終了させることを言います。
記法 kill [-オプション] プロセスID
よく使うもの
kill -9 12345
: プロセスID 12345 のプロセスを強制終了させます。
grep
指定した文字列がある行のみを表示するもしくは表示しないようにすることができます。
記法 grep [オプション] ファイル もしくはディレクトリ
よく使うもの
-ps -ef | grep hoge| grep -v grep
: psの結果からhogeのある行のみを出力します。
-v
をすることで 指定した文字が表示されている行以外を出力することができます。
こんなことして意味あるのかと思うかと思います。
-vをしないと出力が邪魔になる時があります。
例えば今test.sh
というプロセスが動いているとします。
それがちゃんと動いているか確認する方法は下記です。
# ps -ef | grep test laraweb 4893 4778 0 22:56 pts/1 00:00:00 sh test.sh laraweb 4896 4778 0 22:56 pts/1 00:00:00 grep --color=auto test これでもいいんですけど 2行めの grepが邪魔ですね。 これはこの今検索のために使用したgrep自身です。 それを防ぐために次のコマンドを実施します。 # ps -ef | grep test | grep -v grep laraweb 4893 4778 0 22:56 pts/1 00:00:00 sh test.sh
echo
文字列を標準出力に出します。
リダイレクトして使用することが多いです。
記法 echo 文字列
よく使うもの
ssh
記法 ssh [オプション] user@接続先IP or ホスト名
よく使うもの
-ssh -i 秘密鍵ファイルパス user@接続先IP
: 秘密鍵を指定して接続することができます。
終わりに
いかがだったでしょうか。
今のところ思いつくのはこのくらいです。
あとはvim
等がありますが、以前他の記事で紹介しているので
そちらも参考にされてみてください。
ただこれでもまだまだ少ないです。
本格的にサーバを運用するためにはfirewall-cmd
とかもあるので
興味がある方は調べてみてください。
自分も完全未経験な人間だったので、頑張って勉強してみてください
応援しています。私も勉強頑張ります。