この記事は最終更新日から1年以上が経過しています。
@programming
投稿日 2019/10/28
更新日 2022/3/27 ✏
Linuxコマンドメモ
個人的に忘れやすいけどよく使うLinuxコマンドのメモです。(適時更新)
目次
検索
ファイル名を検索
## カレントディレクトリ配下で "hoge.txt" というファイルを検索:
$ find . -name "hoge.txt"
ファイル名を再帰的に検索
## カレントディレクトリ配下で "hoge.txt" というファイルを再帰的に検索:
$ find ./* | grep "hoge.txt"
特定の文字列が含まれるファイルを検索
## カレントディレクトリ配下で "hoge" が含まれるtxtファイルを検索:
$ grep -r "hoge" --include=*.txt ./
## 'require("fs")' または "require('fs')" を含む.jsファイルを再帰的に検索。
##
## ただし、以下のディレクトリまたはファイル名を無視:
## + node_modules ディレクトリ
## + bundle.js なsuffixのファイル
##
## NOTE: sオプションでエラーメッセージは無視。
grep -rs --regexp="require(\(\"\|'\)fs\(\"\|'\)" --include=*.js --exclude=*bundle.js --exclude-dir=node_modules ./
圧縮と解凍
zipコマンド版
zip圧縮:
# zip圧縮:
$ zip -r mydir.zip mydir/
# またはパスワード付きでzip圧縮:
$ zip -r -e mydir.zip mydir/
Enter password: ここでパスワードを入力
Verify password: ここでパスワードを再入力
zipの中身を確認:
# zip圧縮ファイルの中身を確認:
$ unzip -l mydir.zip
zip解凍:
# zip圧縮ファイルを解凍:
$ unzip mydir.zip
tarコマンド版
tar.gz圧縮:
# tarでgzip圧縮 (czオプション):
$ tar czfv mydir.tar.gz mydir/
tar.gzの中身を確認:
# gzip圧縮ファイルの中身を確認 (tzオプション):
$ tar tzfv mydir.tar.gz
tar.gzを解凍:
# gzip圧縮ファイルを解凍 (xzオプション):
$ tar xzfv mydir.tar.gz
NOTE:tarコマンドは複数のファイルを一つにまとめるコマンドです。gzipコマンドではフォルダを圧縮できないため、tarコマンドにcz
オプションを付けることで、フォルダを一旦一つのファイルにまとめてからgzip圧縮を行っています。
gzip圧縮されたテキストファイルを直接読む
$ zcat ./access.log.1.gz | less
リモートコピー
リモートへアップロード
ローカルのhoge.txtをsshでリモートサーバへアップロード:
$ scp -i ~/.ssh/secret.key hoge.txt user@remotehost:/tmp/hoge.txt
# もしくは:
$ rsync -avz --progress -e 'ssh -i ~/.ssh/secret.key' ./hoge.txt user@remotehost:/tmp/hoge.txt
リモートからダウンロード
$ scp -i ~/.ssh/secret.key user@remotehost:/tmp/hoge.txt ./hoge.txt
# もしくは:
$ rsync -avz --append-verify --progress -e 'ssh -i ~/.ssh/secret.key' user@remotehost:/tmp/hoge.txt ./hoge.txt
TIP:rsync
コマンドに--append-verify
オプションを付けることで、万が一途中で通信が途切れてしまっても同じコマンドを叩けば途中からダウンロードを再開できます。
Bluetooth
Bluetoothでファイル送信
ディスク
マウントポイント確認
$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/nvme0n1p1 ext4 rw,relatime,errors=remount-ro,data=ordered
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755
│ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd
│ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory
│ │ ├─/sys/fs/cgroup/devices cgroup cgroup
...
ディスクの空き容量等を確認
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 778M 9.3M 769M 2% /run
/dev/xxxxxxxp1 ext4 230G 151G 68G 70% /
...
or
$ findmnt -D
SOURCE FSTYPE SIZE USED AVAIL USE% TARGET
udev devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 777.6M 9.3M 768.4M 1% /run
/dev/nvme0n1p1 ext4 229.1G 188.5G 28.9G 82% /
...
特定ディレクトリのディスク使用サイズを確認
$ du -sch ~/ダウンロード/
15G /home/user/ダウンロード/
15G 合計
ディスク使用サイズの大きいフォルダTOP5を表示
カレントディレクトリ直下でディスク使用サイズの大きいフォルダTOP5を表示:
$ du -hs * | sort -rh | head -5
14G var
5.8G home
1.5G usr
926M lib
156M boot
ディスク使用サイズの大きいファイルorフォルダTOP5を表示
カレントディレクトリ配下でディスク使用サイズの大きいファイルorフォルダTOP5を表示:
$ find -type f -exec du -Sh {} + | sort -rh | head -n 5
4.7G ./most/large/folder
45M ./hoge/foo.txt
44M ./bar
27M ./baz/aaa.txt
17M ./baz/bbb.txt
音声・動画データ操作
音声・動画データをトリミング
## 12.34〜56.78秒までの動画データを抽出: (wavファイルなどの音声データにも対応)
$ ffmpeg -i input.mp4 -ss 00:00:12.34 -to 00:00:56.78 -strict -2 output.mp4
音声・動画データを結合
## 1. 結合したいメディアファイルのリストを作成:
$ echo "file 'input1.mp4'
file 'input2.mp4'
" > mylist.txt
### 2. ffmpegでリストを指定して結合:
$ ffmpeg -f concat -i mylist.txt -strict -2 output.wav