研修(コマンドを学ぶ)
svnコマンドをいきなりやったら壁にぶち当たってしまった。
てことで基礎的なところのコマンドから学んでいく。
以下、課題に沿った形で。
1.homeディレクトリの下にworkディレクトリを作成する
コマンド
$ mkdir work $ ls -la 合計 92 drwxr-xr-x 6 sato sato 4096 5月 27 16:16 . drwxr-xr-x 9 root root 4096 5月 25 10:27 .. -rw------- 1 sato sato 668 5月 27 13:42 .bash_history -rw-r--r-- 1 sato sato 304 5月 25 10:27 .bash_logout -rw-r--r-- 1 sato sato 191 5月 25 10:27 .bash_profile -rw-r--r-- 1 sato sato 124 5月 25 10:27 .bashrc -rw-r--r-- 1 sato sato 5619 5月 25 10:27 .canna drwxrwxr-x 3 sato sato 4096 5月 26 18:52 .subversion drwxr-xr-x 2 sato sato 4096 5月 25 16:33 public_html drwxrwxr-x 3 sato sato 4096 5月 26 18:57 trunk drwxrwxr-x 2 sato sato 4096 5月 27 16:16 work
mkdir [作成するディレクトリの名前]でディレクトリ作成
※ディレクトリ=フォルダと認識
2.workディレクトリ内に移動する
コマンド
$ cd work $
cd [移動するディレクトリ]で指定したディレクトリに移動
3.その中にhello.shを作成する
コマンド
$ mktemp hello.sh hello.sh $ ls -la 合計 20 drwxrwxr-x 2 sato sato 4096 5月 27 16:25 . drwxr-xr-x 6 sato sato 4096 5月 27 16:16 .. -rw------- 1 sato sato 0 5月 27 16:25 hello.sh
mktemp [作成するファイル名]でファイル作成
4.hello.shを「echo "hello world";」とエディタで編集
5.hello.shをコマンドで実行
コマンド
$ source hello.sh hello world
source [ファイル名]でファイルを実行
編集したecho "hello world"が実行されている
hello worldはどの言語でも共通なんですね
6.パーミッションを変更して他ユーザーがhello.shを読み書き実行できないようにする
※パーミッション=権限
コマンド
$ chmod o-r hello.sh $ chmod o-w hello.sh $ chmod o-x hello.sh $ ls -la 合計 24 drwxrwxr-x 2 sato sato 4096 5月 27 16:25 . drwxr-xr-x 6 sato sato 4096 5月 27 16:16 .. -rwx------ 1 sato sato 19 5月 27 16:27 hello.sh
chmod [数字or文字] [ファイル名]でファイルのパーティションを変更
※chmodの[数字or文字]が気になったんで追記 ・数字形式と文字形式の違い ・数字形式は絶対変更 →全てのパーミッションを一度に変更するのに有効 ・文字形式は相対変更 →パーミッションのある部分だけ変更したいのに有効 ・文字形式の組み合わせ ユーザーの種類 |選択 |パーミッション権限 -------------------------+-----------------------------+------------------- u:ファイル所有者 |+:パーミッションの追加 |r:読み取り権限 g:ファイル所有グループ |-:パーミッションの削除 |w:書き込み権限 o:その他のユーザー |=:指定したパーミッションを |x:実行権限 a:全てのユーザー | 付加しそれ以外を削除 | ・数字形式の組み合わせ r=4=読みだし可 w=2=書き込み可 x=1=実行可能 rwx=7 (4+2+1)=読み出し可+書き込み可+実行可能 rw-=6 (4+2)=読み出し可+書き込み可 r-x=5 (4+1)=読み出し可+実行可能 -wx=3 (2+1)=書き込み可+実行可能 例: 全員に読み取り権限を与える場合→数字が楽 [home work]$ chmod 444 test.txt ※444=r--r--r-- その他のユーザーから書き込み権限を削除する場合→一部分だから文字が楽 $ chmod o-w test.txt ・ファイルの権限を見る場合 $ ls -la 合計 24 drwxrwxr-x 2 user user 4096 5月 27 13:27 . drwxr-xr-x 6 user user 4096 5月 27 13:20 .. -rwx-w-rw- 1 user user 19 5月 27 14:35 hello.sh 左の-rwx-w-rw-に注目、順番に 1番目 d:なぞのまま・・・時間あるときに調べる 2番目 r 3番目 w 4番目 x:ファイル所有者uの読み取り、書き込み権限、実行権限、 5番目 r 6番目 w 7番目 x:ファイル所有グループgの読み取り、書き込み権限、実行権限、 8番目 r 9番目 w 10番目x:その他のユーザーoの読み取り、書き込み権限、実行権限、 文字ではなく-になってたらその権限がないということ
7.hello.shをhello_copy.shにコピーする
コマンド
$ cp hello.sh hello_copy.sh $ ls -la 合計 32 drwxrwxr-x 2 sato sato 4096 5月 27 16:33 . drwxr-xr-x 6 sato sato 4096 5月 27 16:16 .. -rwx------ 1 sato sato 19 5月 27 16:27 hello.sh -rwx------ 1 sato sato 19 5月 27 16:33 hello_copy.sh
cp [コピー元のファイル名] [コピーしたファイルの名前]でファイルをコピーする
8.hello.shをhello_move.shにリネームする
コマンド
$ mv hello.sh hello_move.sh $ ls -la 合計 32 drwxrwxr-x 2 sato sato 4096 5月 27 16:40 . drwxr-xr-x 6 sato sato 4096 5月 27 16:16 .. -rwx------ 1 sato sato 19 5月 27 16:33 hello_copy.sh -rwx------ 1 sato sato 19 5月 27 16:27 hello_move.sh
mv [変更するファイル名] [変更後のファイル名]でファイルの名前を変更する
9.hello_move.shを削除する
コマンド
$ rm hello_move.sh $ ls -la 合計 24 drwxrwxr-x 2 sato sato 4096 5月 27 16:42 . drwxr-xr-x 6 sato sato 4096 5月 27 16:16 .. -rwx------ 1 sato sato 19 5月 27 16:33 hello_copy.sh
rm [削除するファイル名] でファイルを削除
10.homeディレクトリに戻る
コマンド
$ cd .. $
cd ..で1個上のディレクトリに移動(戻る)
11.workディレクトリをwork_copyにコピーする
コマンド
$ cp -r work work_copy $ ls -la 合計 100 drwxr-xr-x 7 sato sato 4096 5月 27 16:43 . drwxr-xr-x 9 root root 4096 5月 25 10:27 .. -rw------- 1 sato sato 668 5月 27 13:42 .bash_history -rw-r--r-- 1 sato sato 304 5月 25 10:27 .bash_logout -rw-r--r-- 1 sato sato 191 5月 25 10:27 .bash_profile -rw-r--r-- 1 sato sato 124 5月 25 10:27 .bashrc -rw-r--r-- 1 sato sato 5619 5月 25 10:27 .canna drwxrwxr-x 3 sato sato 4096 5月 26 18:52 .subversion drwxr-xr-x 2 sato sato 4096 5月 25 16:33 public_html drwxrwxr-x 3 sato sato 4096 5月 26 18:57 trunk drwxrwxr-x 2 sato sato 4096 5月 27 16:42 work drwxrwxr-x 2 sato sato 4096 5月 27 16:43 work_copy
cp -r [コピー元のディレクトリ名][コピー後のディレクトリ名]でディレクトリをコピー
※-r部分はオプション。他のオプションは以下のとおり。
- a できるだけ属性や構造を保持する
- b 同名ファイルはバックアップして保存する
- d コピー元がリンクファイルの場合はリンクファイルをコピーする
- f 同名ファイルを警告せずに上書きする
- i 上書きするファイルは問い合わせる
- p パーミッションやタイムスタンプを保持したままコピー
- s コピー元へのリンクファイルを作成する
- u 同名ファイルは最終更新日付を比較して古いときのみ上書きする
- v コピー前にファイル名を表示する
12.work_copyディレクトリをwork_moveにリネームする
コマンド
$ mv work_copy work_move $ ls -la 合計 100 drwxr-xr-x 7 sato sato 4096 5月 27 16:46 . drwxr-xr-x 9 root root 4096 5月 25 10:27 .. -rw------- 1 sato sato 668 5月 27 13:42 .bash_history -rw-r--r-- 1 sato sato 304 5月 25 10:27 .bash_logout -rw-r--r-- 1 sato sato 191 5月 25 10:27 .bash_profile -rw-r--r-- 1 sato sato 124 5月 25 10:27 .bashrc -rw-r--r-- 1 sato sato 5619 5月 25 10:27 .canna drwxrwxr-x 3 sato sato 4096 5月 26 18:52 .subversion drwxr-xr-x 2 sato sato 4096 5月 25 16:33 public_html drwxrwxr-x 3 sato sato 4096 5月 26 18:57 trunk drwxrwxr-x 2 sato sato 4096 5月 27 16:42 work drwxrwxr-x 2 sato sato 4096 5月 27 16:43 work_move
mvはファイルと同様にディレクトリも名前変更可能
13.work_moveディレクトリを削除する
コマンド
$ rm -r work_move $ ls -la 合計 92 drwxr-xr-x 6 sato sato 4096 5月 27 16:47 . drwxr-xr-x 9 root root 4096 5月 25 10:27 .. -rw------- 1 sato sato 668 5月 27 13:42 .bash_history -rw-r--r-- 1 sato sato 304 5月 25 10:27 .bash_logout -rw-r--r-- 1 sato sato 191 5月 25 10:27 .bash_profile -rw-r--r-- 1 sato sato 124 5月 25 10:27 .bashrc -rw-r--r-- 1 sato sato 5619 5月 25 10:27 .canna drwxrwxr-x 3 sato sato 4096 5月 26 18:52 .subversion drwxr-xr-x 2 sato sato 4096 5月 25 16:33 public_html drwxrwxr-x 3 sato sato 4096 5月 26 18:57 trunk drwxrwxr-x 2 sato sato 4096 5月 27 16:42 work
rm -r [削除するディレクトリ名]でディレクトリ削除
※この-rもオプション。他は以下を参照。
- f 同名ファイルを警告せずに削除する
- i ファイルの削除前に問い合わせる
- r ディレクトリごと削除する
- v 処理内容を表示する
14.今まで発行したコマンド履歴を確認
コマンド
$ history 1 exit 2 cd 3 ll 4 pwd 5 exit 6 svn st -u 7 svn cat http://svn.fact/sato/trunk 8 svn log 9 svn checkout http://svn.fact/sato/trunk 10 svn st -u ・ ・ ・ 以下略
history でコマンド履歴を全て表示
15.履歴からlsコマンドを使用した行だけを表示
コマンド
$ history | grep ls 63 ls -la 65 ls -la 69 ls -la 71 ls -la 73 ls -la ・ ・ ・ 以下略
history | grep [検索する言葉]で用語検索
16.lsコマンドのヘルプを表示
コマンド
$ ls --help
[コマンド] --helpでコマンドのヘルプ表示
いつもマウスだけでやっている裏側がこうなっているとは。。。
裏側知るのって面白い。