Linux 常用命令记录

本文最后更新于 2024年2月29日 上午

保持文件属性

1
cp -p

递归处理目录及文件

1
chowm -R

统计目录大小/排序/前 20

1
du -shc ~/.cache/* | sort -hr | head -20

获取当前目录名称

1
echo $(cd $(dirname $0); pwd)

获取指定 nvme 硬盘的 信息

1
sudo nvme smart-log /dev/nvme0n1

获取目录下的文件列表 重定向 输出到文件

1
find "/home/username/Music/xxx/" -name "*.flac" | sort -n > "/home/username/Music/Playlist/xxx.m3u8"

KDE 桌面环境 终端内执行 *.desktop 文件

1
kioclient exec <path-to-desktop-file>

统计暴力破解 ssh 登录的 ip

1
2
3
4
5
# 查询日志
journalctl -u sshd.service | grep 'Invalid .* from [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'
# 查询日志 重定向 输出 到 ~/Documents/ips.txt
journalctl -u sshd.service | grep 'Invalid .* from [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | uniq | awk '{print "\""$1"\""","}' > ~/Documents/ips.txt

ffmpeg 分割音频文件

1
2
3
# hh:mm:ss.mmm
ffmpeg -i input.file -ss 00:00:00.000 -to 01:00:00.000 -c copy output.file
ffmpeg -i '/path/to/Music/2015-我只在乎你[蜚声环球系列][WAV]/out.flac' -acodec alac out.m4a

shnsplit 按照指定的 cue 文件切割音频文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 手动指定 cue 和待分割的音频文件
shnsplit -f '/path/to/Music/影视OST/仙剑奇侠传/麦振鸿 - 仙剑奇侠传 - 电视原创配乐.cue' -t "%n %p - %t" -d out '/path/to/Music/影视OST/仙剑奇侠传/麦振鸿 - 仙剑奇侠传 - 电视 原创配乐.wav'

# 自动根据文件名分割 wav 文件
mkdir out; for file in *.cue; do shnsplit -f "${file}" -t "%n.%p - %t" -d out "$(basename "${file}" ".cue").wav"; done;
# 批量转换 wav -> m4a 并删除源文件
for file in ./out/*.wav; do ffmpeg -i "$file" -c:a alac "`basename "$file" .wav`.m4a"; done; rm -rf ./out;
# 批量转换 wav -> m4a 并丢弃封面
for file in ./*.wav; do ffmpeg -i "$file" -c:a alac -vn "`basename "$file" .wav`.m4a"; done; rm -f ./*.wav;
# 批量转换 wav -> m4a 并保留封面
for file in ./*.wav; do ffmpeg -i "$file" -c:a alac -c:v copy "`basename "$file" .wav`.m4a"; done; rm -f ./*.wav;
# 批量转换 flac -> flac 并丢弃封面
for file in ./out/*.flac; do ffmpeg -i "$file" -c:a copy -vn "`basename "$file" .flac`.flac"; done; rm -rf ./out;
# 批量转换 m4a -> m4a 并丢弃封面
for file in ./out/*.m4a; do ffmpeg -i "$file" -c:a copy -vn "`basename "$file" .m4a`.m4a"; done; rm -rf ./out;
# 批量重命名(删除指定字符串[qobuz])
for file in *; do mv "${file}" "$(basename "${file}" "[qobuz]")"; done;

distrbox 创建开发容器

1
2
3
4
5
# 创建容器
distrobox create --image opensuse/leap --name opensuse-leap --home /home/distrobox/leap
# 使用 docker 命令 从外部进入容器内部 bash shell
docker exec -it <container> bash
docker exec -it opensuse-leap bash

Linux 常用命令记录
https://tedding.dev/2017/05/08/15be6bd3bc8.html
作者
TED.DING
发布于
2017年5月8日
更新于
2024年2月29日
许可协议