🐧
Linux脱"超"初心者になる
🐧"超"基本動作
カーソル操作
Macでもブラウザ等terminal以外でも使えるものは「🖥」アイコンあり。
-
🖥
Ctr + F
:1文字後ろにずらす -
🖥
Ctr + B
:1文字前にずらす-
F
はforward,B
はbackward。 - 矢印キーでもできるが、ホームポジションをずらさないため使ってみると良い
-
-
🖥Ctr + A :文頭にカーソルを合わせる
-
🖥Ctr + E :文末にカーソルを合わせる
- Macだけのショートカットだと思っていたけど、Linuxのものだったぽい
-
esc → B
またはoption(alt) → B
:1つの単語の先頭にカーソルを合わせる-
f
で単語の後ろのスペースにカーソルを合わせる - 単語単位で遡れる。
-
esc
キーを押しながらではなく、esc
キーを押した後にB
-
-
Ctr + W
:カーソルの直前にある単語を1つ削除- たまに、1文字ずつ消してたことがあったのでこれは知れてよかった
-
🖥
Ctr + K
:カーソルから文頭までを削除(カット) -
Ctr + U
:カーソルから文末までを削除(カット) -
🖥
Ctr + Y
:上記kまたはU
カットしたものをペースト(ヤンクと呼ぶ) -
Ctr + L
:terminal上の入力履歴を全て削除する。-
clear
コマンドも同じ意味
-
🐧🐧コマンド関連ショートカット基礎
-
Tab
:コマンド補完- 2回押せば候補が出る
- ファイルも候補として出る
-
Ctr + R
:コマンド履歴を検索できる- インクリメンタル検索というらしい
- 下記プロンプトになる
(reverse-i-search)`':
- 文字を入れると自動で検索してくれる
- 1つしか表示されない
- 検索結果を遡りたいときはさらに
Ctr + R
を押すと、1つずつ前の検索結果に戻れる。 - 知らんかった!ええやんこれ。。
ls
系
🐧超基礎コマンド | -
pwd
:カレントディレクトリのPathを出力 -
ls #Directory
:ls
コマンドの引数としてディレクトリを記載すると、そのディレクトリ以下をlsできる。-
ls ./Desktop /bin
等2つ以上でも可能..!
-
-
ls -l
:でファイル状態詳細表示- ↓↓↓例
-rw-rw-r-- 1 parallels parallels 0 Apr 17 23:38 samplefile
-
1 はリンク数
-
1つ目のparallels は所有者
-
2つ目のparallels は所有グループ
-
0 はサイズ
-
Apr~23:38 はタイムスタンプ
-
samplefile はファイル名またはディレクトリ名
-
ls -F
:ファイルかディレクトリかを含めて表示してくれる- ディレクトリの場合は
/
が名前の後ろについている
- ディレクトリの場合は
-
NN*
:NNで始まるファイル一覧を表示-
*.html
等拡張子単位で検索も可能 -
ls
コマンドに限らず引数を渡すときに利用可能 -
NN???
:NNではじまる5文字を検索可能- ?の数で決まる
-
オプション指定のTips
- ls等で引数は2つ以上指定可能
- その際、
-a -l
のように-
で区切ることも可能 -
-al
のように続けて記載することも可能- 個人的には区切ってわかるようにしたい。
-
--
で始まるオプションはロングオプションという。- 基本的に単語で構成されているのでわかりやすい
- 例:
--width
- wに関しては、
--width=30
,--width 30
でも可能 -
-w 30
,-w30
でも可能。
- 例:
- 基本的に単語で構成されているのでわかりやすい
dir
touch
rm
等)系
🐧超基礎コマンド | ディレクトリ、ファイル作成削除操作(dir
-
mkdir
:ディレクトリ作成-
-p
オプション指定で、階層を一気に作成できる - 指定しないとエラーになる。
-
mkdir -p sample/report/2030/Jan
-
rmdir
:ディレクトリ削除- 指定したディレクトリの中にファイルがあると削除できない
- 誤ってファイルを削除することは防止できる
touch
-touch
:emptyファイル作成
-
touch fileA fileB...
等、スペースで区切ることで一気にファイルを作成可能
rm
-
rm
:ファイル削除- touchと同様にスペースで指定ファイルを区切ることで一気に削除可能
-
rm *.txt
で拡張子を指定してファイル削除 -
rm -r
:ディレクトリも削除可能-
-r
は再帰的な指定を意味する- 意味わからん
-
-
rmdir
とは違い、指定したディレクトリの中にファイル(ディレクトリ含む)があっても全て削除。-
rm -i
:-i
をつけると、実行するか聞いてくれる
-
cat
cp
mv
等)系
🐧超基礎コマンド | ディレクトリ、ファイル出力、移動操作(cat
-
cat #ファイル名
:ファイルの中身を表示- スペースで区切ることで、複数ファイル指定可能
- 複数ファイル指定した場合は、中身が連続して出てくる。
- ※どのファイルの中身とかは明示されていないので注意。
- 複数ファイル指定した場合は、中身が連続して出てくる。
-
cat -n
:行番号表示- 複数ファイル指定していても連番ででてくる。
cat
- スペースで区切ることで、複数ファイル指定可能
cp
-
cp #ファイル1 #ファイル2
:ファイル1を「ファイル2」という名前で、同じ階層にコピー-
cp #ファイル1
だけでは、コピー先等引数が足りていないので、エラー文が返ってくる -
※すでに「ファイル2」という名前が作成されている場合は、内容を上書きしてしまうので注意*
- ファイルが多すぎて不安な場合は検索か
-i
オプションをつけることで、該当する場合にoverwriteしますか?と聞いてくれる。
- ファイルが多すぎて不安な場合は検索か
-
-
cp #ファイル1 #ディレクトリ1
:ファイル1を「ディレクトリ1」直下にコピー- イメージ
- sample
- L file1
- directory1
- L file1
- これは、「ディレクトリ1」というディレクトリがある前提。
- ディレクトリが自動的に作成されるわけではない。
- 該当するディレクトリがcurrent directory直下にない場合は、コピー先のファイル名として作成される
-
cp *.txt #ディレクトリ1
:txt拡張子のファイルを全て「ディレクトリ1」直下コピー
ディレクトリコピー
-
cp - r #ディレクトリ1 #ディレクトリ2
:ディレクトリ1をディレクトリ2にコピー-
-r
が必須。これがないとディレクトリはコピーできない。 - コピー先ディレクトリ(例:ディレクトリ2)が存在しない場合
- ディレクトリ1を「ディレクトリ2」としてコピー。
-
-r
を指定しているので中身も全てコピー
- コピー先ディレクトリ(例:ディレクトリ2)が存在する場合
- ディレクトリ2ごとディレクトリ1の内容に上書きされる。
-
mv
cp
コマンドと動き方は似ている
-
mv #ファイル1 #ファイル2
:ファイル1という名前を「ファイル2」に変更- ただの名前変更。
-
mv #ファイル1 #ディレクトリ1
:ファイル1をディレクトリ1に移動。- ディレクトリ1が存在している場合に移動可能。
- スペースで指定ファイルを区切り、最後に存在するディレクトリ名を指定することで、まとめて移動も可能!
- 存在していない場合は、名前変更とみなされる。
- ディレクトリ1が存在している場合に移動可能。
find
等)系
🐧🐧基礎コマンド | 検索操作(find
-
find
:cd直下の階層を表示してくれる- イメージ
$find
dir1
dir1/file1
dir1/dir22
dir1/dir22/file333
-
find -type #ファイル種別
:特定種類のファイルを出力可能- Pathで出力される
-
d
:ディレクトリのみ -
f
:ファイルのみ
-
- Pathで出力される
-
find -name '#ファイル名'
:該当するファイル(ディレクトリ含む)をPathごと表示してくれる-
-name
は大文字小文字を区別する -
-iname
は区別しない - 検索するファイル名には必ず
''
or""
をつける。-
find -name dir*
等の場合は、-name
の引数を複数指定することになる可能性があり、その場合エラーとなる- 例:cd直下に「dir1」「dir2」というディレクトリがある場合
-
find -name dir*
は、実質find -name dir1 dir2
のようになる。 - findの引数としては、展開後の
dir*
の値が渡されるためこれはエラー。 - findの引数として
'dir*'
でひとまとまりですよ〜と言うために''等でくくる。
-
- 例:cd直下に「dir1」「dir2」というディレクトリがある場合
-
-
findで複数オプションを指定
-
-a
をオプションの間に挟んでANDと明示する - または単純にスペースで区切ってANDとする。
- 例:
find -name 'dir*' -type d
- 例:
--help
man
等)系
🐧🐧基礎コマンド | ヘルプ(help
-
#command --help
:指定したコマンドに関するヘルプが出てくる
man
-
man #command
:指定したコマンドに関する詳細なヘルプ(Manual)が出てくる-
man man
でもいける。 - 表示は
less
コマンド指定と同じくページで表示されるため、抜けるにはq
。- ↑スクロールは
B
、↓スクロールはスペースキー
。
- ↑スクロールは
- manは歴史のあるコマンドらしい。ここが全て的な。
-
Discussion