Tech Blog

Vim

2020-02-09

マニュアル表示

man ls

ページャー

移動

1行下へ

j

1行上へ

y

1ページ下へ

space
# or
f

1ページ上へ

w

検索

/[検索したい文字列]

次の検索文字に移動

n
shift + n

終了

q

ls

-Rは検索したディレクトリの中も再帰的に検索する。

cd

一つ前のディレクトリにもどる

cd -

Homeに戻る

cd
# or
cd ~

空白文字を含むディレクトリの場合

ファイル名に空白文字がある場合はダブルクォートで囲む。

もしくは、空白文字の前に\をいれる。

video tutorialというディレクトリがある場合

cd video\ tutorial
## or
cd "video tutorial"/

とする。

mkdir

複数階層

mkdir -p one/two

rm

ディレクトリの削除

rm -rf one

ワイルドカード記号

*任意の0文字以上の文字に置き換える

ls
drank.txt    drink.txt    drinking.txt drunk.txt    one.html
 
ls *txt
drank.txt    drink.txt    drinking.txt drunk.txt

?は任意の1文字に置き換える

ls
drank.txt    drink.txt    drinking.txt drunk.txt
 
ls dr?nk.txt
drank.txt drink.txt drunk.txt

例:ファイル名の最後の文字がlまたはtである

ls *[lt]

ファイルの内容を閲覧コマンド

catmoreless, headtailがある。

moreはファイルを最後まで表示するとプロンプトに戻る。

headはデフォルトで10行表示する。

head -n2 first.txtでファイルの先頭から10行表示する。

tailででファイルの末尾から2行表示する。

tail -n5 first.txtでファイルの末尾から5行表示する。

file

file

file first.txt
first.txt: ASCII text, with very long lines

ls -lでファイルの詳細を確認できる。

ls -l
-rw-r--r--  1 jun  staff  8165  3 22 10:00 first.txt

パーミッション、リンクの数、所有者、所有グループ、バイト単位のサイズ、月、日、時間、ファイル名の順に表示される。

隠しファイルを表示する場合は、aオプションを追加する。

ls -la

cp

cp コピー元のファイル名 コピー先のファイル名orパス

複数階層をコピーする

-Rオプションでディレクトリ内のファイルもコピーできる。

cp -R one one_copy

mv

find

find . -name "*.txt"

ディレクトリを表示する。

find . -type d

1階層内のディレクトリを表示する。

find . -type d -maxdepth 1

8キロバイト以上のファイルを表示する。

find . -size +8k

grep

grep 検索文字列 first.txt

検索数表示

grep 検索文字列 -c first.txt

ディレクトリ内の文字列検索

grep 検索文字列 -r one

egrep, fgrep, zgrep, zfgrep

パーミッション

u 個人 - user g 団体 - group o その他 - others a - all(全て)

    • 可能

r = 読み取り w = 書き込み x = 実行

  • = 権限なし

chmod *** ファイル名またはディレクトリ名

chmod u+w hello

ディレクトリの実行権限がない場合は、中に入れなくなる。

chmod u+w,g-w,o-w hello

r = 4 w = 2 x = 1

rwx 7 読み取り、書き込み、実行 rw- 6 読み取り、書き込み r-x 5 読み取り、実行 -wx 3 書き込み、実行

chmod 544 test

リダイレクト

標準入出力

標準入力(0) = キーボード

標準出力(1) = ターミナルの画面 標準エラー(2) = ターミナルの画面

redirect = リダイレクト

リダイレクトによって、標準以外の入出力ができる。

標準エラー出力

標準エラー出力をlines.txtに出力

cat abc 2> lines.txt

zip

unzip - 解凍 zip - 圧縮

tar

tar cvf group.tar *

tar tvf group.tar

tar xvf group.tar

gzip, gunzip

サイズ低減

vim

:syntax on :syntax off

gg = ファイルの先頭 G = ファイルの末尾

スクロール ctrl + u = 半画面下 ctrl + b = 前画面上 ctrl + d = 半画面下 ctrl + f = 全画面下

m+キー = マークする ' + キー = マークした位置へジャンプ

:marks = マーク状態の確認 :delmarks キー = マークの解除

インサートモードへ移行

i = カーソルの位置から
I = 行の先頭から
a = 次の文字から
A = 行の末尾から
o = 次の行に空の行を設ける
O = 今の行に空の行を設ける
>> = インデント追加
<< = インデント削除

undo u ctrl + R

全てまとめてキャンセル e!

削除

1文字削除x 7文字削除7x 1文字入れ替えr dwその位置より単語を削除 cw単語を削除 dd行を削除 Dその位置より先の文字を削除 J次の行の改行を無くす

書き込み以外はNORMALモードで行うのが合理的

yy

vVISUALモード 選択後、yでコピーされる V VISUAL LINEモード ctrl + v VISUAL BLOCKモード

:reg クリップボードの履歴を参照

  • ノーマルモード
  • コマンドモード
  • インサートモード
  • ビジュアルモード
  • 検索モード

最終行の末尾から編集 GA

インデント >> <<

選択した文字を削除 v 選択 d

/n /N ?n 逆の動きとなる

#前方検索 *後方検索

[ + I カーソル上の単語の検索結果リスト表示

4行目から20行目までのstaticを削除 :4,20 s/static//g

ファイル内のintlongに置き換え。 :% s/int/long/g

正規表現 行の先頭の空白を削除 % s/^ *//g

コマンドラインモードでも十字キーで履歴を遡ることができる。

1文字ごとに置き換えるか確認する。 % s/int/long/cg

:lsでバックグラウンドで開いているファイル(バッファ)を確認できる。 :bn 次のファイル :bp 前のファイル :b5 バッファ番号を指定する :b filename ファイル名を指定することも可能 :bd バッファを閉じる

複数ウィンドウ

:sp 水平にウィンドウを開く :clear, :q 閉じる :vs 垂直にウィンドウを開く

ウィンドウの移動 <C-w>h 左に移動 <C-w>j 下に移動 <C-w>k 上に移動 <C-w>l 右に移動

バックグラウンドにないファイルを開く :e ファイル名

ウィンドウを1つにする :close

タブを開く :tabnew ファイル名:

タブを閉じる :q,:close,:bd

次のタブに移動 gt, tabnext

前のタブに移動 gT, tabprevious

開いているタブ以外を閉じる :tabonly

開いているタブを閉じる :tabclose

unixコマンドをvim利用時に使用する方法 :! ls

unixコマンドの出力をコピーする方法 :r ! ls

vimの全設定を確認 :set all

プラグイン