-
Notifications
You must be signed in to change notification settings - Fork 0
Command
hyukke edited this page Jun 9, 2016
·
18 revisions
$ cd sample
$ cd ./sample
- 上の階層への移動は
cd ../..
などを指定
$ pwd [options]
$ ls
-
ls -a
ドットファイル(ファイル名の先頭にピリオドがあるファイル)を含んだすべてのファイルを表示-
ls -al
詳細も併せて表示
-
-
ls -l
詳細を表示-
ll
エイリアスで指定可能、ls -l
と同等
-
$ mkdir sample
-
mkdir -p sample/sub
指定したサブディレクトリごと作成 -
mkdir -m 755
指定したパーミッションでディレクトリを作成
$ rmdir sample
$ rm sample.txt
-
rm -f sample.csv
ファイルが存在しなくてもエラーにしない -
rm -R sample
ディレクトリを再帰的に削除(中身を含めて削除)
$ mv source.txt dest
$ mv source ./dest
-
mv source.txt dest.txt
ファイル名が指定された場合は名前を変更
$ find sample.txt
$ touch sample.txt
- 既存のファイルを指定すると、更新日時を変更できる
$ cat sample.txt
-
tail -n sample.txt
行番号を表示
$ tail sample.log
- デフォルトは10行
-
tail -n 20
末尾から指定した行数を表示 -
tail -f
ファイルの内容を監視し表示を更新
$ script sysout.txt
-
exit
記録を終了
$ tar zcvf /sample/data/something.tar.gz *.txt
-
zcvf
TAR 形式で GZip 圧縮 -
xfvz
TAR 形式で GZip 解凍
$ echo "sample_text" | cut -c 1-8
-
|
パイプは前のコマンドの標準出力を、後ろのコマンドの標準入力にするためのコマンド -
cut -c 2
指定された文字数を切り取る-
2
2文字目を切り取る(位置指定) -
1-8
1~8文字を切り取る(範囲指定)
-
$ grep something sample
-
grep -c something
文字列something
が含まれる件数を抽出 -
grep -v something
文字列something
が含まれない行を抽出
$ chmod +x *.sh
$ chmod 755 sample.csv
- 記号または数値(8進数)でモードを指定
$ chown smpsys sample.csv
$ su
-
su user
ログインするユーザを指定 -
su -
ログイン・シェルを使用してユーザを切り替え(ルート権限を保持するスーパーユーザ)
$ ssh 1.0.0.999
-
ssh -p 99999 1.0.0.999
ポート番号を指定 -
ssh -l sample 1.0.0.999
ログインするユーザ名を指定-
ssh sample@1.0.0.999
ホスト名に指定可能
-
-
ssh -i ~/.ssh/id_rsa 1.0.0.999
秘密鍵ファイルを指定
$ sudo cd /sample
-
sudo -s ssh 1.0.0.999
環境変数 SHELL で指定されたシェルを実行
$ export VAL="Sample"
-
export -p
エクスポートされている環境変数のリストを表示 -
export -n VAL
指定した環境変数を削除
$ vi sample.txt
- ファイルが存在しない場合は新規作成
- 起動直後は編集モード
-
vi -R sample.txt
読取専用でオープン - カーソルの操作
-
h
左←に移動 -
j
下↓に移動 -
k
上↑に移動 -
l
右→に移動 -
0
行頭に移動 -
$
行末に移動
-
- ファイルコマンド(コマンドモードに移行するための
:
を入力)-
:q
vi を終了 -
:q!
vi を保存せずに強制終了 -
:w
ファイルを保存-
:w sample.txt
指定したファイル名に変更して保存
-
-
:wq
ファイルを保存して終了
-
- [Esc] でコマンドモードに切り替え
$ sh sample.sh
$ yum install sample.rpm
-
yum -y install
問い合わせに対してすべて「y」で実行 - 実行できるコマンド
-
yum install sample.rpm
パッケージをインストール- バージョンが同じものをインストールするとエラー
-
yum update sample.rpm
パッケージをアップデート -
yum remove sample.rpm
パッケージをアンインストール -
yum reinstall sample.rpm
パッケージを再インストール -
yum info sample.rpm
パッケージの情報を表示
-
$ echo "Sample"
-
echo -e "Name\t: hoge"
エスケープ・コードを使用可能-
\n
改行 LF -
\r
改行 CR -
\t
水平タブ
-
var1=sample
var2=sample2
echo $var1
echo ${var2}
-
=
の前後にスペースは空けない - 変数はそのスクリプト内でのみ有効
- 他のスクリプトに影響した変数は、
export
による環境変数を利用
if [ sample==1 ]; then
# Do something...
elif [ sample==2 ]; then
# Do something...
else
# Do something...
fi
- 条件では、
0
か0
以外かの真偽値を指定して判定 - 通常は1行につき1つのみ記述できるコマンドを、複数個記述するために指定
array=(aaa bbb ccc)
for data in ${array[@]}; do
// Do something...
echo $data
done
exit 0
- 数値は終了ステータスを表す
- 慣例として、
0
を正常終了、1
(もしくは0
以外の数値)を異常終了とすることが多い
# Define function
function sample() {
arg_1=$1
arg_2=$2
# Do something...
return 0
}
# Call function
sample var_1 var_2
ret=$?
- 呼び出しは、関数の定義後に関数名を記述し、続けて引数を指定
- 関数内において、
$n
で数字を指定して順番に引数を取得 -
return
に指定した値を、標準出力で関数の結果として返却- シェルスクリプトには戻り値という概念はない
-
return
を指定することで関数の終了ステータスになるが、一般的な関数の戻り値ではない
( )
でくくると、親と切り離された子のシェルとして実行が可能になる。
( cd /sample; sh sample.sh )
( cd /sample/data; tar zcvf /sample/data/something.tar.gz *.txt )
バッククォートで囲うと、コマンドの結果を変数に格納することが可能になる。
コマンドが入れ子になる場合は、バッククォートを含む式を$( )
で囲うことで入れ子にすることができる。
result=`ls -l`
result2=$(`grep -c sample* sample.txt` - `grep -c sample001 sample.txt`)