当たり前の事ができるようになりたい!と思い記事化しました。
内容はバリバリ基本レベルです。
Linux標準教科書とLPICの参考書で理解しつつ、手を動かしながら覚えます。
環境はmac。
ファイルを作ってコピーしたりディレクトリも作ったり移動したり消したりします(雑)
やってみる
まずはvi testlinuxで適当にファイルを作成。デスクトップに作りました。
vi testlinux ~/Desktop
コピーする前にmkdirでフォルダを作成。
mkdirのオプションはアクセス権を指定する-m、親ディレクトリを同時に作成する-p。
親ディレクトリを同時に作成って要は階層構造にしたいとき、ですね。
mkdir -p ~/Desktop/testdir/okome/chan
mkdirと同時にフォルダ移動する場合は以下のコマンドで可能。
$ mkdir -p ~/Desktop/testdir/okome/chan && cd $_
$ pwd
/Desktop/testdir/okome/chan
cpコマンドを適当に叩きましたが結果は同じ。
実行権はコピーできないんですね。たぶん。
cp testlinux testlinux2
cp -p testlinux testlinux2
cp -a testlinux testlinux2
cpでコピーしてchmodで実行権を与えます。
+で指定するのは結構忘れがち。
chmod +x testlinux2
chmod 755 testlinux2
ついでにchownとchgrp。どちらも-Rで配下の全ファイルの所有者とグループを変更できます。
いつもchownでまとめてやっています。
chown okome:okome testlinux2
ディレクトリのコピーには-rが必須とのこと。
ファイルと同じようにやったらエラーが出ました。なんかすまん。
cp -r testdir testdir2
移動!mvのオプションは2つだけで、同名のファイルやディレクトリが存在するときに
強制上書きするか・上書きする?て聞くかを選択できるようです。
オプション付けなくて同名のファイルやディレクトリが存在するなら
エラーがでる感じだろう。。と思いオプションなしでmvしたら普通に上書きされました。
-iを指定するとちゃんと聞かれたので、業務を意識して-iとセットと覚えた方がよさそうですね。
mv -i testlinux testdir
rmはよく使うので-iとセットで覚えてます。備忘録。
-i 本当に削除していいと?て聞く
-f 強制削除
-r 再帰的にディレクトリ全体を削除
rm -i testlinux2
rm -rf testdir
rmdirは空のディレクトリを削除する。結構忘れがち。
rmdir testdir
gzipでのファイル圧縮はよくわからないまま今日まで来たのでこの機会に。。
何も考えずにgzip。.gz化に成功しますが元のファイルは消えるようです。
gzip testlinux2
元ファイルを残して圧縮したい場合は-cオプションを利用して標準出力を利用するとのこと。
gzip -c testlinux2 > testlinux2.gz
echo
引数で与えた文字列を標準出力に出力する。標準出力。。
echo testlinux
export
環境変数を定義・代入する。
export X
export X=testlinux
time
スクリプトやプログラムの実行時間を知るときに使用する。
下記記事がスーパーわかりやすかったです。
最近Linux楽しいなーとよく思います。
find
本当によく忘れる。ファイル名はわかるけどディレクトリがわからん!ていうよくあるシチュエーションでは以下の通り。
$ find ./ -name "filename.txt"
tar
これもよく忘れる。。ファイルのアーカイブ(と圧縮)、解凍(と展開)を行う。
tarコマンドについて詳しくまとめました 【Linuxコマンド集】
が大変参考になりました
# アーカイブ
# -cでアーカイブを新規作成
tar -cvf [ファイル名.tar] [ディレクトリ]
# 解凍
# -xでアーカイブされたファイルの解凍
tar -xvf [ファイル名.tar]
# 解凍したファイルの展開先を指定
tar -xvf [ファイル名.tar] > $HOME
.tgzはtarでアーカイブしたファイルをgzipで圧縮したときにつく拡張子。
# gzipで解凍
$ gzip -d okome.tgz
$ tar -xvf okome.tar
sed
sedは別でまとめたほうが良さそう。sとgの意味がわからなかったので一旦メモ書き。
sで置換する。gを付与すると全置換。付けないと先頭行のみが対象になる。
s/置換前の文字列/置換後の文字列/g
env
bashはprintenvじゃなくてenvで同等の結果が得られる。
パイプでsortするとアルファベット順で出力される。
$ env | sort