Linux (Ubuntu) でterminalを使う時に最低限必要になりそうな知識とコマンド
基本機能関連 =============================
コマンド実行の強制終了
Ctrl + C
コマンドのバックグラウンド処理化
コマンド + &
例えばGUIのツールを呼び出したとき、&を付けないと、GUIのウインドウを落とすまでターミナルに入力ができなくなる。
&を入れると、バックグラウンド処理となり、続いて入力ができる。
結果のファイル出力/入力(リダイレクト)
コマンド > kekka.txt 出力結果をファイルに書き込み。(上書き)
コマンド >> kekka.txt 出力結果をファイルに書き込み。(追加書込み)
コマンド < data_set.txt ファイルの内容をコマンドに渡す。
出力結果を次のコマンドに渡す(パイプ)
コマンドとコマンドの間に「 | 」を付ける。
コマンド1 | コマンド2
コマンドの順次実行(連続実行)
コマンドの後に「;」を付ける。
コマンド1; コマンド2; コマンド3 (コマンドが1→2→3の順に実行)
ファイル・ディレクトリ関連 =====================
ディレクトリの指定
. (現在のディレクトリ (カレントディレクトリ))
.. (1つ上のディレクトリ)
~ (ホームディレクトリ)
ファイル一覧表示
ls (標準)
ls -1 (1列表示)
ls -a (隠しファイル(.ファイル)表示)
ls -l (詳細情報表示)
現在のディレクトリのパスを表示
pwd
現在の作業ディレクトリの移動
cd 移動先ディレクトリパス
cd (パスを書かないと自分のホームディレクトリに移動)
cd .. (1つ上のディレクトリに移動)
ファイル(フォルダ)の移動
mv 移動対象ファイル名 移動場所のパス
mv 移動対象フォルダ名 移動場所のパス
例:mv testdir1/test1.txt testdir2/ (testdir1にあるtest1.txtをtestdir2の中に移動)
ファイル名(フォルダ名)の変更 ※ファイルの移動と同じコマンド
mv ファイル名元 ファイル名変更後
mv フォルダ名元 フォルダ名変更後
例:mv testdir1/test1.txt testdir1/test1_2.txt (testdir1にあるtest1.txtをtest1_2.txtにリネーム)
ファイル(フォルダ)のコピー
cp コピー元ファイル名 コピー先フォルダ名
cp コピー元ファイル名1 コピー元ファイル名2 コピー先フォルダ名 (複数ファイル時)
例:cp -r testdir1/test1.txt testdir2 (testdir1フォルダの中のtest1.txtをtestdir2フォルダの中にコピー)
cp -r コピー元フォルダ名 コピー先フォルダ名 (フォルダコピーは -r オプション必要)
例:cp -r testdir1 testdir2 (testdir1フォルダの中身を全てtestdir2フォルダにコピー)
フォルダ作成
mkdir フォルダ名
例:mkdir testdir2 (現在の場所にtestdir2フォルダを作成)
ファイル(フォルダ)の削除
rm ファイル名
例:rm testdir2/test1.txt (testdir2の中にあるtest1.txtを削除)
rm -r フォルダ名 (フォルダ削除は -r オプション必要)
例:rm -r testdir2 (testdir2の中にあるファイル全てとtestdir2フォルダを削除)
ファイル(フォルダ)の権限操作
chmod nnn ファイル名 (nnnは0~7の数字)
数字は3bitの値で[2:R読, 1:W書, 0:X実行]、順番は左から所有者/グループ/その他
例:chmod 666 test.txt (test.txtを誰でも読み書きできるようにする)
例:chmod 777 test.bat (test.batを誰でも読み書き、実行できるようにする)
例:chmod 644 test.txt (test.txtを自分は読み書き、それ以外は読み込みのみ許可)
ファイル (テキスト) の表示・編集 ==================
ファイルの種類を調べる
file ファイル名
ファイルの中身を表示
less ファイル名 (gzipファイルも読み込み可 方向キー上下で移動可 q で表示終了)
cat ファイル名
ファイルやディレクトリを検索
find -name ファイル名 *:ワイルドカード
例:find -name \*abc* (現在のディレクトリでabcを含むファイル・フォルダを表示)
※ワイルドカードを使うときに、頭に¥を付ける必要がある(?)みたい。
文字検索 (検索ワードがヒットした行を表示する)
grep 検索ワード ファイル名
例:grep “abc” test1.txt (test1.txtから 文字列abcを含む行を表示)
例:python test.py | grep “abc” (python実行結果から文字列abcを含む行を表示)
例:grep “abc” * (現在のディレクトリにある全てのファイルから文字列abcを探す)
grep -v 検索ワード ( -v オプションで文字が当てはまる行を表示しない)
ソート (行の先頭文字を見て、A→B→Cのような順にする)
sort ファイル名
sort -r ファイル名 (逆ソート Z→Y→Xのような順)
ファイル/フォルダ差分比較
diff File1 File2
diff Folder1 Folder2
ファイル/フォルダリンク (ショートカット)
ln -s Orig_File Link_Name
ファイル容量確認
du -h -a
ターミナル上でのテキスト編集 (本当に最低限、数文字書き換えられればいいの範囲での紹介)
vi を使用する ※基本的に標準でインストールされているエディタで、全てコマンドで操作する必要がある。
テキストファイル読み込み
vi ファイル名
vi終了方法 ※ 「:」←忘れない
Esc → :q (ファイル変更がない場合このコマンドで終わる) ※変更があるときはエラー出る
Esc → :q! (ファイル変更後、変更内容を破棄して終了)
Esc → :wq (ファイル変更後、変更内容を保存して終了)
編集方法
カーソルを合わせてから Esc → i を入力し、 文字を打ち込む。 文字削除はDELキー使用できる。
※基本的に Esc押すとコマンドが入力や矢印キーでの移動が可能になる。
その他==================================
ファイルの圧縮・解凍
tar -czvf 圧縮ファイル名.tar.gz 対象フォルダ名 (フォルダ圧縮)
tar -xzvf 圧縮ファイル名.tar.gz (フォルダ解凍)
※ .tar.gz は .tgz の場合もあり
自分のIPアドレスなど確認
ifconfig
指定したアドレスのマシンから反応があるか確認
ping 対象マシンのアドレス
現在のユーザ確認 (ユーザアカウント切替時などに確認用に使う)
who
コマンドの実行ファイルを探す
which 実行名
例:which python (現在実行されるpythonの場所を表示)
現在実行中の処理(プロセス)を表示
top (qで終了) ※別途インストール必要だが htopが好き
ps (最低限の表示)
コマンドの実行結果を引数にして別のコマンドを実行
xargs
例:コマンド1 | xargs コマンド2 (コマンド1の実行結果をコマンド2へ渡す)
例:ls | xargs コマンド (lsで表示したファイル一覧に対して、コマンド処理をおこなう)
特定の処理を強制終了させる
kill プロセスID (PID)
例:geditを強制的に終了させる。
psコマンドで現在実行中の処理を表示させ、対象のPIDを kill する。