- 追加された行はこの色です。
- 削除された行はこの色です。
* UNIXコマンドの基礎(一般ユーザー編) [#o4d6b7f4]
#contents
** UNIXコマンドの利用 [#k284908d]
- ローカル開発環境
- レンタルサーバーのうちSSH接続
- MacOS X
** ログイン、ログアウトをしよう [#yd547b9b]
Terminal.appからyuji.devにログインする
ssh yuji@yuji.dev
password:
[yuji@localhost ~]$
- 「[yuji@localhost ~]$」部分はプロンプトと呼ばれる
- 「localhost」はサーバーが自分自身を指す用語
- 「~」はホームフォルダの意味
- 「$」は一般ユーザーの意味
ログアウトする
$ exit
** パスワードを変更しよう [#y446f205]
$ passwd
** ディレクトリを移動する (1) [#p5bacf96]
現在のディレクトリを表示
pwd
ディレクトリを変更(移動)する
cd
トップディレクトリへ移動する
cd /
ホームディレクトリへ移動する
cd ~
** ディレクトリを移動する (2) [#bce7cd9c]
- 絶対指定
-- 「/home/yuji」
- 相対指定(. ..)
-- 「.」は自分自身
-- 「..」は一つ上のディレクトリ
一つ上のディレクトリへ移動
cd ..
二つ上のディレクトリへ移動
cd ../..
** ディレクトリの中身をみよう [#yef7fffa]
ディレクトリの中身をみる
ls
ディレクトリの中身の詳細をみる
ls -l
隠しファイルも表示する
ls -a
※複数のオプションを組み合わせることも可能
** ディレクトリの詳細情報を読み解こう [#e7f8036a]
ls -l
drwxr-xr-x 20 root root 4096 Dec 19 00:20 var
- 「d」はディレクトリか否か
- 「rwxr-xr-x」はパーミッション
-- 「rwx」は所有者「r-x」はグループ「r-x」は全ての人のパーミッション
-- r : read
-- w : write
-- x : 実行
- 1つ目の「root」は所有者
- 2つ目の「root」はグループ名
- 「4096」サイズ
- 「Dec 19 00:20」は最終更新日
- 「var」は名前
** パーミッションを理解する [#g29c93b1]
パーミションを「rwxr-xr-x」に変更する
$ chmod 755
- 数字は「r」「w」「x」の足し算
-- 4: r : read
-- 2: w : write
-- 1: x : 実行
** ディレクトリの作成、削除 [#s265b0c5]
ディレクトリ「test1」を作成
$ mkdir test1
ディレクトリ「test1」を削除
$ rmdir test1
** ファイルの作成、削除、コピー、移動 [#t99271d8]
「test」ディレクトリおよび「test.txt」ファイルを作成
$ mkdir test
$ vi test.txt
「test.txt」のコピー「text2.txt」を作成
$ cp test.txt test2.txt
ディレクトリ「test」配下にコピー「test3.txt」を作成
$ cp test.txt test/test3.txt
「test3.txt」を削除
$ rm test3.txt
一つ上の階層の「test2.txt」を削除
$ rm ../test.txt
「text.txt」を「test」配下へ移動
$ mv test.txt test/
「text.txt」の名前を「text2.txt」に変更
$ mv test.txt test2.txt
** ファイルの中身をみよう [#o05d8dbb]
「test2.txt」ファイルの中身を全て表示する
cat test2.txt
ファイルの中身を順を追って表示する
more test2.txt
less test2.txt
最初の10行を表示する (オプションで行数を指定可)
head test2.txt
最後の10行を表示する (オプションで行数を指定可)
tail test2.txt
** ワイルドカードについて [#f711069b]
- 「*」:任意の文字いくつでも
- 「?」:任意の一文字
拡張子が「.txt」のファイルを全て削除
$ rm *.txt
「test6.text」というファイルを削除
$ rm test6.te?t
** findを使ってみよう [#b3d7ef94]
カレントディレクトリから「test_」を含むファイルを検索
$ find . -name "test_*" -type f
カレントディレクトリから「test_」を含むディレクトリを検索
$ find . -name "test_*" -type d
** grepを使ってみよう [#l304d203]
使い方は「grep -[option] [文字列] [対象ファイル]」
「111」という文字列を含むファイルを検索
$ grep 111 *
「111」という文字列がマッチした回数をカウントする
$ grep -c 111 *
配下のディレクトリも含めて全て検索
$ grep -r 111 *
「111」且つ「222」という文字列を含むファイルを検索
$ grep 111 * | grep 222
** コマンドラインの便利な使い方 [#i5ec879b]
- [tab]キーを一回押すとコマンドの候補を表示する
- [tab]キーを二回押すと候補一覧を表示する
- 矢印キーを押すと過去に実行したコマンドを遡ることができる
- 過去に実行したコマンド一覧を表示する
$ history
- (history実行後)コマンド番号「255」を指定して再実行
$ !255
- 前回実行したコマンドを実行
$ !!
- 前回実行したgrepコマンドを実行
$ !gr
- 前回実行したgrepコマンドを表示
$ !gr:p
** 便利な小技いろいろ [#ub3cdcd7]
manコマンドでgrepのマニュアルを見る
man grep
※スペースキーでスクロール「q」で終了
ディレクトリ構造を表示する
$ tree
(サーバの)時間を表示する
$ date
カレンダーを表示する
$ cal
2030年のカレンダーを表示する
$ cal -y 2030
「test1.txt」ファイルの行数を表示する
$ wc test1.txt
$ wc -l test1.txt
** lsコマンドのカラーリング [#x483eaf6]
- エイリアスの登録
$ cd $HOME
$ vim .bashrc
alias ls = 'ls -G'
- エイリアスを使用可能に設定
$ cd $HOME
$ vim .bash_profile
source .bashrc
- 変更の反映(下記コマンド実行or再起動)
$ source .bash_profile
** コマンド実行履歴検索(reverse-i-search) [#m5d71335]
- [Ctrl]+[r]
** 改行コード [#m7c416d1]
chr(13) : CR (キャリッジリターン) : MacOS ver.9まで
chr(10) : LF (ラインフィード) : UNIX系システム
chr(13)||chr(10) : CRLF : Windows系
#正規表現
\r : CR (キャリッジリターン)
\n : LF (ラインフィード)
\r\n : CRLF