LoginSignup
1
1

More than 3 years have passed since last update.

おれのLinuxは適当すぎる〜コマンドのメモ書き篇

Last updated at Posted at 2019-08-11

当たり前の事ができるようになりたい!と思い記事化しました。
内容はバリバリ基本レベルです。

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コマンド集】
が大変参考になりました:pray:

# アーカイブ
# -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

参考文献

Linux標準教科書

入門UNIXシェルプログラミング

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1