ubuntu
小风筝123
^_^
展开
-
ubuntu shell取一位随机数
如果随机数只取一位,该如何取?1. 取最高一位${RANDOM:0:1}a=(0 0 0 0 0 0 0 0 0 0);for i in $(seq 0 99);do first=`echo ${RANDOM:0:1}`;let a[${first}]+=1;done取最高一位数字,我们来统计一下这些‘随机数’是否随机:$ for j in ${a[*]} ; do echo -n $j" " ; done;echo ""0 34 40 13 5 4 2 0 1 1 即以0为开头原创 2021-09-16 14:57:46 · 282 阅读 · 0 评论 -
ubuntu终端发邮件
ubuntu发邮件安装组件apt-get install mailutilsapt-get install heirloom-mailx第一个命令会弹框让你填写信息,就用默认的。配置 /etc/s-nail.rcset from=usera@love.3q.com #设置发送邮箱set smtp=smtp.263.net #设置smtp服务器和端口set smtp-auth-user=usera@love.3q.com #设置用户名,记得加域名原创 2021-09-16 14:09:01 · 446 阅读 · 0 评论 -
nohup & 让进程在后台运行的用法
nohup & 让进程在后台运行的用法准备一个可以长时间跑的脚本。$ cat t.sh#!/bin/bashfor i in $(seq 100)dosleep 1secho "i $i"done1.cmd终端A运行/bin/bash t.sh此时终端B可见t.sh进程1.此时终端A Ctrl + C 或者 终端A 关闭此时终端B不可见t.sh进程2.cmd &终端A运行/bin/bash t.sh &此时终端B可见t.sh进程1.终端A Ctrl原创 2021-09-15 17:40:16 · 1504 阅读 · 0 评论 -
usermod -a -G group user修改user用户信息,把user添加到组group中
usermod -a -G groupB userA命令是修改userA用户信息,把userA添加到组groupB中。$ ll总用量 40drwxrwxr-x 10 jenkins jenkins 4096 7月 3 16:24 ./drwxrwxr-x 3 jenkins jenkins 4096 6月 6 10:03 ../$ mkdir uploadmkdir: 无法创建目录"upload": 权限不够$ iduid=1000(userA) gid=1000(userA) 组原创 2021-09-11 11:20:58 · 10407 阅读 · 0 评论 -
sudo -S可以不用手动输入密码,且只要第一次密码正确,后面在有效期内,密码错误也可以
"sudo -S"命令可以从字符串或者文本文件中获取,可以从echo结果中获取,而不用在像在终端上需要等待手动输入密码。 这种方法并不推荐,因为密码会暴露。以下实验中,用户user1有sudo权限,密码是abcdef。输入错误密码,无法执行mount:$ echo 123456 |sudo -S mount system.img mp [sudo] user1 的密码: 对不起,请重试。 [sudo] user1 的密码: sudo: 1 次错误密码尝试 输入正确...原创 2021-09-11 10:50:58 · 9613 阅读 · 0 评论 -
shell脚本内获取该执行文件的路径
准备脚本 /home/peggy/1.sh :echo -n "pwd: ";pwdecho -n "dirname $0: ";dirname $0echo "script_folder: "$(cd `dirname $0`;pwd)用绝对路径调用脚本和用相对路径运行脚本:$ /home/peggy/1.shpwd: /mntdirname /home/peggy/1.sh: /home/peggyscript_folder: /home/peggy$ ../home/peggy/1原创 2021-09-11 10:34:31 · 1776 阅读 · 0 评论 -
zip -ry制作压缩文件没有读取权限导致失败
linux终端上用zip命令来打压缩包zip,$ zip -ry /mnt/aa.zip SYSTEM/etc/fs_config_dirs;echo $?updating: SYSTEM/etc/fs_config_dirsSYSTEM/etc/fs_config_dirs: Permission denied zip warning: could not open for reading: SYSTEM/etc/fs_config_dirs zip warning: will just cop原创 2021-09-11 10:02:24 · 2968 阅读 · 0 评论 -
ubuntu中shell set -u 和set +u
shell中 ,set -u之后,使用没有初始化的变量,会导致报错set -u: 表示该命令之后,当命令使用到未定义过的变量时,脚本直接退出,后续命令不在执行。我们来试试。准备一个脚本t1.sh:echo "1:$1"没有set -u之前,$1存在、不存在都可以,运行不报错:$ /bin/bash t1.sh 1:$ /bin/bash t1.sh 2 1:2/bin/bash -u执行脚本相当于在子shell中做了set -u,/bin/bash -u xx.sh ,如果$1原创 2021-09-11 09:41:16 · 1159 阅读 · 0 评论 -
shell dd命令在bs参数太大的时候出现异常的解决方法
上文讲到了shell dd命令在bs参数太大的时候会出现异常。现在讲讲怎么解决。如果需要dd很大的文件的时候,需要指定很大的bs参数的时候怎么办呢?答案是分块dd。多进行几次dd。我写了个脚本sdd.sh,sdd $file_input $file_output $bs对应于dd if=$file_input of=$file_output bs=$bs count=1其中$bs值可以大于、等于、或小于dd的bs限定大小2147479552 (0x7ffff000)。上脚本sdd.sh#原创 2021-09-09 15:41:00 · 1337 阅读 · 1 评论 -
shell dd命令在bs参数太大的时候会出现异常
shell dd命令在bs参数太大的时候会出现异常。现有一个文件$ ll-rw-r--r-- 1 server server 2787518108 4月 11 14:13 filea我们想用dd命令跳过开头16448字节,得到剩下的内容。$ dd if=filea of=filea.23 bs=16448 skip=1;169473+1 records in169473+1 records out2787501660 bytes (2.8 GB) copied, 3.80907 s, 7原创 2021-09-09 14:49:34 · 459 阅读 · 0 评论 -
shell逐行读取文件
shell中如何逐行读取?在ubuntu下测试。准备2文件:$ cat cfgline1_a line1_bline2_a line2_bline3_a line3_b$ cat cfg.newline line1_a line1_bline2_a line2_bline3_a line3_b注:cfg最后一行是没有换行符的,cfg.newline最后一行是有换行符中。即hexdump -C cfg和hexdump -C cfg.newline两个命令对比可以发现,cfg.newl原创 2021-09-09 14:17:42 · 1588 阅读 · 0 评论 -
shell cd命令在while中不能作用于while外面,cd在for if case中会作用于for和if和case外面
一. 现象while中cd在退出while后失效,for & if & case中cd在退出块后生效。1. while中cd在退出while后失效$ echo line_1 > ~/1$ echo line_2 >> ~/1$ pwd;cat ~/1 | while read l;do echo $l;cd /folder2;pwd;done;pwd/folder1line_1/folder2line_2/folder2/folder12. fo原创 2021-09-09 14:02:13 · 157 阅读 · 0 评论 -
shell快速创建文件的三种方法对比
shell快速创建文件的三种方法对比。以下三个命令都能生产一个4G大小的文件。1. fallocate -l 4G f12. dd if=/dev/zero of=f2 bs=1G count=43. dd if=/dev/zero of=f3 bs=1G count=0 seek=4其中1和3 速度奇快。md5sum f1 f2 f3会发现生成的三个文件内容是一样的。命令2是常规的生成文件的方式。解释一下3,在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘。原创 2021-08-30 16:49:13 · 2178 阅读 · 0 评论 -
ubuntu uninx 命令行通过跳板机连接远程mysql
有三个机器:ubuntu本机A,跳板机B,mysql所在机器C。A当前无法直接访问mysql所在机器。A可以连接B。B可以连接mysql数据库C。希望A可以通过B访问C的数据库。B的跳板机地址是117.78.4.212,用户名是userB。在A上可以通过ssh userB@117.78.4.212连接上远程服务器B。在服务器B上,执行ifconfig命令eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500原创 2021-08-30 16:20:17 · 557 阅读 · 0 评论