自分の手で未来を創るーlav0

自分のために、誰かのために、今ここにないもの、もっと良くしたいもの、何でも自分の手で創っていく。そして、作ったものを公開していきます

Unixコマンド一覧

今回はUnixのコマンド一覧。都度確認用のメモです。Linaxなどの種類からコマンドまで一気に一覧で行きます

f:id:kslabo51:20191218001648p:plain

 

 

unix

OSの一種。インターネットを構築するサーバー用などに使われている

BSDMinix

無料の互換OS

Distribution

配布形式

Linux

無料の互換OS

Red Hat

LinuxのDistributionの一つ。RHELCentOSがある

Debian

LinuxのDistributionの一つ。Ubuntuなどがある

POSIX

Unixで使える共通規格

プロンプト

入力を促している部分

bin

バイナリ システムを動かすための基本ファイル

etc

エトセ  アプリの設定ファイル

home

ホーム  各ユーザーのホームディレクトリが入っている

sbin

エスビン システム管理用のコマンドが入っている

usr

ユーザー 一般的なアプリケーションが格納されている

var

バー   システムのログファイルなど頻繁に書き換わるファイル

ドットファイル

隠しファイル。薄く表示。簡単にいじれないようになっている

pwd

プリントワーキングディレクト

現在いるディレクトリを表示

clear

画面をクリアー Ctrl + Lでも一緒

cd

チェンジディレクトリ ディレクトリを移動

cd .. /cd - /cd

cd .. 一つ上の階層に戻る

パス

/home/vagrantのような表記のこと。ディレクトリやファイルを一意に指定する

相対指定

現在のディレクトリから相対的に指定する


cd unix_lessons

絶対指定

一番上の階層から絶対的に指定する方法


cd /home/vagrant/unix_lessons

mkdir

メイクディア。ディレクトリを作るためのコード


mkdir (ディレクトリ名)

mkdir myapp

ls

リスコマンド。ディレクトリの内容を見る

lsの後にディレクトリ名を指定するとそのディレクトリの中身が見える


ls -lでさらに権限などの詳細が見える

cp

コピー。ディレクトリなどをコピーする


cp -r (コピーするディレクトリ名) (コピーで作られたディレクトリ名)

-r リカーシブル 再帰的にコピーするという意味

cp -r myapp myapp2

-p

ペアレンツオプション。まだないディレクトリ内にディレクトリを作る場合に使用。親ディレクトリがない場合に一度に作ってくれる


mkdir -p (親ディレクトリ)/( 新しいディレクトリ)

mkdir -p myapp3/config

mv

ムーブ。あるディレクトリを別のディレクトリ内に入れる

同じディレクトリ内で使うと名前の変更になる


mv 移動したいディレクトリ名 ディレクトリ名

mv myapp3 myapp2


mv hello.txt hello2.txt →hello.txtをhello2.txtに名前を変更

rmdir

リムーブディレクトリ。中身が空のディレクトリにしか使えない


rmdir 親1/親2/削除したいディレクト

rmdir myapp2/myapp3/config →configディレクトリが削除される

※configディレクトリは中に何もないので削除できるが、myapp2, myapp3は中身があるので削除できない

rm -r

リムーブ リカーシブルオプション 中身があるディレクトリを削除する方法


rm -r 削除したいディレクト

rm -r myapp2 →myapp2の中にmyapp3があっても削除可

cat

キャットコマンド。ファイルの中身を見る


cat ディレクトリ名/ファイル名

cat myapp/hello.txt

less

レス。長いファイルをターミナルで見る際に使う

レスを使ってファイルを見ているときの操作

▼矢印キー スクロール

▼スペース/Ctrl f  一画面先

▼Ctrl b  一画面前

▼g   ファイルの先頭

▼Shift g 末尾

▼q less の終了

▼/検索したい言葉 検索 n 次の単語に移動 N 前の単語に戻る


less ディレクトリ名/ファイル名

less myapp/hello.txt

cp + .

ファイルを今のディレクトリにコピーする

※. で今のディレクトリを表す


cp myapp/ hello.txt .

タブキー

一文字打った時点でタブキーを押すと補完してくれる。複数の候補がある場合はタブを連打する

Ctrl + c

いまのコマンドをキャンセルする場合

矢印 ↑ ↓

今まで入力したコマンドを辿ることができる

Ctrl + r

コマンドの履歴を確認。escキーかCtrl cで終了

history

コマンドの履歴を見れる

▼!+ 番号 履歴にあるコマンドの呼び出し

!!

直前のコマンドの呼び出し実行

!-2

2個前のコマンドを呼び出し実行

!$

コマンドに与えた最後の文字列を再利用する

!pw

pwから始まる直近のコマンドを実行できる


!pw:p コロンPをつけると実行せずに表示だけしてくれる

その後実行するには‼

--help

コマンド名の後に--helpでそのコマンドの使い方などが見れる


調べたいコマンド名 --help

mkdir --help

man

マニュアル

操作方法はlessと同じ


man 調べたいコマンド名

man ls

vim

ビム。ターミナルでファイルを編集するコマンド

【使い方】

コマンドモード:カーソルの移動と編集コマンドを使用できる

編集モード:編集モードにするには

▼コマンドモード→編集モード iキーを押す(左下にINSERTと表示)

▼編集モード→コマンドモード Escキーを押す

▼:w 保存 コマンドモードで

▼:q 終了 コマンドモードで

▼Esc :q! コマンドモードで誤って入力した場合保存せずに終了可


vi ファイル名

ln -s

シンボリックリンク。深い階層に何度もアクセスする必要がある場合、何度もそれを入力するのは大変なので、シンボリックリンクを作り入力を短くできる


ln -s 階層1/階層2/階層3/ シンボリックリンク

ln -s config/production/database/ dbconfig

touch

空のファイルを作る


touch ディレクトリ名/ファイル名

touch dbconfig/command.sql

unlink

シンボリックリンクを解除する


unlink シンボリックリンク

unlink dbconfig

権限

drwxrwxr-x. 3 vagrant vagrant 2317 7月 4 17:43 hello.txt

▼1文字目d = ディレクトリ -=一般的なファイル l=シンボリックリンク

▼2-10文字目 アクセス権 user group otherのアクセス権

vagrant ユーザー名

vagrant グループ名

▼2317 ファイルのサイズ

▼日付 更新日時

▼hello.txt ファイル名

▼r 読み込み可 可の場合数値4で表す

▼w 書き込み可 可の場合数値2で表す

▼x 実行可   可の場合数値1で表す

▼それぞれのユーザーのパーミッションは数値の合計で表せる。


cat /etc/passwd この一覧を見れるコマンド

cat /etc/group  グループ一覧を見れる

groups     所属しているグループ名を見える

chmod

パーミッションを変えるコマンド


chmod g+x ファイル名 グループに実行権限を与える

chmod go+x ファイル名 グループとアザーに実行権限を与える

chmod a-x ファイル名  すべてから実行権限を削除する

chmod 774 ファイル名 rwx rwx r--

type

タイプ コマンドが歩かないか調べる。ある場合は情報を教えてくれる


type コマンド名

type hi

echo "文字列"

バッシュで文字列を出力する


echo ”文字列"

echo "hi!"

echo $PATH

コマンドをどこから検索しいているか見る

PATH

環境変数と呼ぶ

printenv

すべての環境変数を見ることができる

export

自分で作ったコマンドをPATHの先頭に加える

※パスを通す→特定のディレクトリとパスをつなげること


export PATH=/home/vagrant/unix_lessons/myapp:$PATH

※PATHという名前で以上のディレクトリとすでに設定されているPATHをつなげて設定しなさいという命令

which

実行しようとしているコマンドがどこのディレクトリから呼び出されようとしているのかを調べる


which コマンド名

su -l

サブスティテュートユーザー

何らかの理由で管理者ユーザーになる方法

sudo

管理者ユーザーとして実行する方法


sudo コマンド

sudo cat /var/log/message 管理者しか見る権限のないログを見る

sudo chown

チェンジオーナー。ファイルの所有者を変える方法 編集や閲覧をするため


sudo chown 権限を持たせるグループ:権限を持たせるユーザー ファイル

sudo chown vagrant:vagrant messages

wc

ワードカウント。行数や文字数などをチェックできる


wc ファイル名

行数 単語数 バイト数 ファイル名 の順で表示


wc -l ファイル名

行数のみ見れる

head

ヘッド。ファイルの先頭の10行が見れる

head ファイル名


head -n 3 messages or head -3 messages

※行数を指定できる

tail

テイル。ファイルの最後から10行が見れる


tail ファイル名

grep

ファイルの中身から特定の単語を検索するコマンド

grep '探したい単語' ファイル名

grep 'etc' messages

>

リダイレクション。あるコマンドの結果をファイルに保存


echo "date" > cmd.txt

※echoでdateと出力した結果をファイルに書き込む

>>

末尾に書き込み保存してくれる

echo "free" >> cmd.txt

<

ファイルの内容を他のコマンドに渡す


bash < cmd.txt

|

パイプ。コマンドの結果を別のコマンドに渡す


ls -l /etc | grep "php"

*

ワイルドカード。大量のファイルやディレクトリなどを扱っている場合に特定の条件を与えて操作したい場合


ls /etc/*.conf 拡張子がconfのものを抜き出す

ls /etc/c??.* cの後に2文字続いているものを抜き出す

find

検索


find /ディレクトリ名 -name "検索したい文字列*"

▼許可がないものも検索する場合

sudo find /ディレクトリ名 -name "検索したい文字列*"

ディレクトリを除いてファイルだけを検索したい場合

sudo find /ディレクトリ名 -name "検索したい文字列*" -type f

▼そのファイルに対して別のコマンドを実行したい場合

sudo find /ディレクトリ名 -name "検索したい文字列*" -type f -exec wc -l {} +

xargs

エックスアーグス。findの検索結果に限らず複数の結果をコマンドに流し込める


find /ディレクトリ名 -name "検索したい文字列*" -type f | -xargs wc -l

{}

bashのブレース( {} )展開


echo {a, b, c} → a b c

echo {1..10} → 1 2 3 4 5 6 7 8 9 10

echo {1..10}{a..g} →1a 1b 1c 1d 1f 1g 2a 2b 2c ....省略......10g

touch app{1..5}/test{1..3}{.txt, .jpeg, .gif}

&&

複数のコマンドを実行。一つ目のコマンドが成功したら二つ目のコマンドを実行という順にすすむ


mkdir test && cd test → testディレクトリを作り、テストディレクトリに移動



忘れたときは都度確認!!