Linux常用命令

49 阅读2分钟
#
# 语法	含义	删除位置	匹配方式
# ${var#pattern}	删除开头最短匹配	开头	最短匹配(非贪婪)
# ${var%pattern}	删除结尾最短匹配	结尾	最短匹配(非贪婪)

str="///data///"
echo "${str#/}"
echo "${str%/}"

# 行数统计
cat list.txt | tr '/' '\t' |  awk '{count[$1"/"$2]++} END {for (line in count) print count[line], line}'
awk -v c="$(pwd)" '{print c "/" $1}'
awk '{sum += $2} END {print sum / 1024 / 1024 / 1024 / 1024}' data.txt
sort file | uniq -c | awk '$1 > 1'

# 生成批量执行命令
cat index.txt | awk '{print "{}"$1 " {}"$2 }'

# 查找指定深度的目录
find {} -mindepth 2 -maxdepth 2 -type d | wc -l

# 合并文件(按行合并)
paste 1.txt 2.txt > merge.txt

# 分割文件
split -l 1000 -d  source-cp-conmand {}_

# 并发执行命令文件
xargs -P 8 -I {} bash -c '{}' < commands.txt

#  Network Cat
nc -zv ip port

# NFS挂载
mount -t nfs {} {}
mount -t nfs4 -o proto=tcp,timeo=600,minorversion=1,nconnect=10 {} {}

# c 创建归档文件 z 使用 gzip v 显示过程 f 指定压缩文件名 C 指定目录
tar -czvf Downloads.tar.gz  Downloads
tar -xzvf Downloads1.tar.gz -C /path/to

# 后台运行程序
nohup your_command > output.log 2>&1 &

# 查看系统负载
mpstat -P ALL


# 删除匹配项 -i --in-place
sed '/pattern/d' filename.txt

# 替换匹配项 不加g为替换每行第一个匹配项
sed 's/old/new/g' filename.txt

# 只打印匹配项
sed -n '/pattern/p' filename.txt

# 功能	命令示例
# 字符替换	tr 'a-z' 'A-Z'
# 删除字符	tr -d '0-9'
# 压缩重复字符	tr -s ' '
# 取反操作	tr -c '[:digit:]' '\n'
# 分隔符转换	tr ',' '\t'
cat /proc/6/environ | tr '\0' '\n'

# 换行符转换为unix标准换行符 Linux 换行符:\n(LF) Windows 换行符:\r\n(CRLF)
dos2unix {}.txt

# ansible 批量执行命令
ansible all -i nb-cx.ini -m shell -a 'top -b -n 1 | head -n 2'

# rclone
rclone copy {} {} --transfers=50 --checkers=100 -P

# 目录完全同步
rsync -a --delete empty/ source/

# 修改系统时区
dpkg-reconfigure tzdata

# tmux 命令
# 组合快捷键
# 退出             ctrl+b d
# 左右拆分窗格      ctrl+b %
# 水平拆分窗格      ctrl+b "
# 删除窗格          ctrl+d
# 调整窗格大小      ctrl+b 方向键

tmux new -s session_name # -d 创建但不进入
tmux a -t session_name
tmux kill-session -t session_name
tmux kill-server
tmux ls