• 推荐使用最新版火狐浏览器或Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Linux 一些有用的shell操作

编程开发 紫鹰 4年前 (2020-06-16) 3123次浏览 0个评论 扫描二维码

Linux 一些有用的shell操作

 

Linux 产生一个随机文件

dd if=/dev/urandom of=rand.bin count=1024 bs=1024

产生count * bs字节的文件,1M

echo 写二进制文件

echo -e -n "\x30\x31" > test.bin
  • -e // 表示使能反斜杠转义,这样遇到\就会转义为二进制
  • -n // 不添加行尾换行标识,默认的 echo 会在末尾添加 0x0A
  • 双引号表示要转义的字符串,\x表示十六进制,\0NNN 表示八进制

 生成随机数

echo $RANDOM             # $RANDOM 的范围是 [0, 32767]

echo $(($RANDOM%255+1))  # 产生 1 ~ 255 之间的随机数

echo $(date +%s%N)       # 使用 date + %s%N 产生随机数

echo $(cat /dev/urandom | head -n 10 | cksum | awk -F ' ' '{print $1}')  # 使用 urandom 避免阻塞

echo $(cat /proc/sys/kernel/random/uuid | cksum | awk -F ' ' '{print $1}')  #使用 uuid 产生随机数

生成随机字符串

# 使用date 生成随机字符串
date +%s%N | md5sum | head -c 10
# 使用 /dev/urandom 生成随机字符串
cat /dev/urandom | head -n 10 |md5sum | head -c -10

/bin/bash^M: bad interpreter: No such file or directory 问题的解决办法

  • 使用sed命令sed -i “s/\r//” filename  或者 sed -i “s/^M//” filename直接替换结尾符为unix格式
  • vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式
  • 使用linux命令dos2unix filename,直接把文件转换为unix格式

输出十六进制数

num=31
echo $((16#$num))     # 输出结果为 49,进制转换
echo -e -n "\x$num"   # 输出结果为字符 1

# 以 16 进制形式存入变量
num=$(($RANDOM%255+1))
hnum=`printf "%02X" ${num}`

xxd 查看二进制文件

xxd -g 1 -c 8 -u msg.bin

版权所有丨如未注明 , 均为原创丨
转载请注明原文链接:Linux 一些有用的shell操作
喜欢 (2)
[谢谢打赏!]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址