俺でもわかるシリーズ Advent Calendar 2018 20日目です。
Qiita初挑戦です。よろしくお願いします
はじめに
今年から社会人一年目。ぺーぺーですが学んだことを書きます。
学生時代は一応情報系、Linuxは授業で申し訳程度にやったことがありました。
でも、正直コピペ芸だった… お恥ずかしながらそのコマンドがなにをしてるのか分からない…
ということで、初心者of初心者なコマンド集(少しオプション付き)をつくりました。
調べたコマンドたち
まだまだ沢山ありますが、とりあえず15コ
- man
- cd
- pwd
- mkdir
- touch
- ls
- cat
- view
- tail
- echo
- mv
- rm
- grep
- find
- wc
man:コマンドのマニュアルを見る(manual)
man 使い方を知りたいコマンド名
表示にはlessコマンドが使用されています
・移動:上下キー(矢印)
・終了:q
- NAME:manで調べたコマンドの名前
- SYNOPSIS:書式(調べたコマンドを使うときの書き方)
- DESCRIPTION:解説(使えるオプション一覧も)
ex.)lsの使い方を見たい場合
man ls
cd:指定したディレクトリへ移動する(change directory)
cd ディレクトリ名
ex.)現在いるディレクトリの1つ上のディレクトリへ移動
cd ../
ex.)現在いるディレクトリの2つ上のディレクトリへ移動
cd ../../
ex.)自分のホームディレクトリへ移動
cd ~
ex.)ルートディレクトリへ移動
cd /
pwd:現在操作しているディレクトリを確認する
pwd
迷子にならないように、時々今自分がどこのディレクトリにいるのか確認するといいですよー。
ex.)自分のホームディレクトリでpwdした場合
pwd
/Users/ユーザ名
mkdir:ディレクトリを新規作成する(make directory)
mkdir ディレクトリ名
新規作成しようとしたディレクトリがすでに存在している場合、エラーになり作成されません
ex.)sampleというディレクトリを作る
mkdir sample
もう一度sampleディレクトリを作ろうとすると…
mkdir: sample: File exists
エラーが出ますね
-p オプション
・エラーを表示せず、作成しようとしたディレクトリが存在しなければ作成する
上書き作成ではないので注意!
・指定したディレクトリをサブディレクトリごと作成する
ex.)sampleディレクトリの中にdirAをつくる(一括)
mkdir -p sample/dirA
touch:ファイルを新規作成する
touch ファイル名
新規作成しようとしたファイルがすでに存在する場合、タイムスタンプが更新される(ls -lで確認可)
タイムスタンプで更新されるのは、
・mtime:ファイルの最終更新日
・ctime:アクセス権の最終更新日
ファイルの中身は変わらない
ex.)hoge.txtというファイルを作成する
touch hoge.txt
ls:ファイルやディレクトリの情報を表示する(list)
ls (ファイル名,ディレクトリ名)
ファイルやディレクトリを指定しなければ、現在のディレクトリ内にあるものの一覧が、
ファイルやディレクトリを指定すると、その指定したもののみの情報が表示されます
-a オプション
ファイルの先頭に.(ピリオド)がつくファイルも表示する(隠しファイル)
-l オプション
詳細を表示する
ex.)hoge.txtの詳細を表示する
ls -l hoge.txt
表示
-rw-r--r-- 1 ユーザ名 staff 0 12 18 11:52 hoge.txt
-r オプション
リストを通常の反対の順で表示する
-t オプション
更新時間順に並べて表示する(-lオプションと併用)
ls -tl
-R オプション
サブディレクトリの中も一度に表示する
ex.)sampleディレクトリの中に、dirAディレクトリがある場合
ls -R sample
表示
dirA
sample//dirA:
cat:ファイルの中身を確認したいとき(concatenate)
cat ファイル名
・ファイルの中身を表示のみする
・「grep」コマンドを使用して指定した文字列が存在する行を表示する 際に使用する
複数のファイルを連結して表示可能
ex.)hoge.txtとfuga.txtのファイルの中身を表示する
cat hoge.txt fuga.txt
表示
hoge.txtの中身だよ
fuga.txtの中身だよ
view:ファイルを書き込み禁止で開く
view ファイル名
viで指定したファイルが開かれる
:qで終了
viewとcatの違い
・view:viのreadonlyモード viで開くので、コマンド終了時ターミナルにファイルの中身は表示されない
・cat:コマンド終了時、ターミナルにファイルの中身が表示される
ex.)catとviewでhope.txtを開く
cat home.txt
表示
hoge.txtの中身だよ
→ファイルの中身が表示されている(残っている)
view home.txt
表示
→viで開いているので、表示されない
tail:ファイルの最終行から数行を表示する
tail ファイル名
オプションで行数を指定しない場合、ファイルの最終行から10行分が表示される
ex.)sample.txtをtailで表示
tail sample.txt
-n オプション
出力する行を指定する
ex.)最終行から3行を表示する
tail -n 3 sample.txt
-f オプション
ファイルの追記を監視する
ログファイルのリアルタイム監視などにつかえる
tail -f ファイル名
待機状態になる Ctrl+Cで終了
echo:画面に文字列を表示する
echo 表示する文字列
ex.)Hello!を表示する
echo Hello!
表示
Hello!
変数も表示できる
ex.) messageという変数に、Hi!という値を入れて表示する
message=Hi!
messageにHi!を代入する
echo $message
表示したい変数の前に$をつける
mv:ファイルやディレクトリを移動する,名前を変更する
・移動する
mv 移動元 移動先
・名前を変更する
mv 元の名前 変更後の名前
rm:ファイルやディレクトリを削除する
rm ファイル(ディレクトリ)名
-i オプション
rm -i ファイル名
ファイルの削除前に、本当に削除するか念のため確認したい時
削除しますか?という確認が表示される(複数ファイルある場合は、1ファイルごと確認される)
-r オプション
rm -i ディレクトリ名
ディレクトリも削除の対象とする場合
rmコマンドは、オプション設定無しの場合ディレクトリを削除の対象としない
grep:ファイルの中の文字列を検索する
grep 検索する文字列(正規表現可) ファイル名
ex.)fruit.txtの中から"berry"という文字列を検索する
fruit.txt
apple
blueberry
orange
peach
strawberry
grape
grep berry fruit.txt
表示
blueberry
strawberry
-i オプション
大文字・小文字を区別せずに検索する時
grep -i 検索する文字列(正規表現可) ファイル名
-v オプション
一致しないものを検索する時(指定した文字列を含まないものを探す)
grep -v 検索対象に含まない文字列(正規表現可) ファイル名
find:ファイルやディレクトリを検索する
find ファイル・ディレクトリ名
-name オプション
ワイルドカードを使用して、ファイルやディレクトリ名の一部を指定し検索する
ex.)sampleディレクトリ内にある、拡張子が.txtのファイルのみ検索する
find sample -name \*.txt
\(バッククォート)で*をエスケープするのを忘れずに
-type オプション
-
-type f オプション
ファイルのみを対象として検索する
find ファイル名 -type f
-
-type d オプション
ディレクトリのみを対象として検索する
find ディレクトリ名 -type d
wc:ファイル内のテキストの大きさを表示する(word count)
wc ファイル名
バイト、行数、単語数、文字数を数えられる
単語は空白やタブ文字、改行で区切られた集まり
-l オプション
行数を数える(実際には改行の数を数えている)
wc -l ファイル名
めちゃめちゃに長くなってしまった。反省。
まだコマンドになれないので、操作忘れた!とおもったらチラ見するのに使います。使ってください。