dd:
dd if=/dev/zero of=文件名 bs=1k count=1
文件真正的大小是 bs * count
输出
printf:不会自动换行,需+\n
print :会自动换行
printf:
%c:显示ASCII码
%d:显示十进制证书
%e:科学计数法
%f:浮点数
%s:显示字符串
%u:显示无符号整数
%%:显示%自身
#[.#]:第一个数字控制显示的宽度,第二个#表示小数点后面的精度(%3.1f),
默认右对齐,-号为左对齐,+为显示字符的符号
根据扩展名切分文件:
1、从右往左
非贪婪模式:${var%.*} 从右到左删除第一个 . 连着右侧的字符串
贪婪模式:${var%%.*} 从右到左删除最后一个 . 连着右侧字符串
例:var="hack.fun.book,txt"
${var%.*} -->hack.fun.book
${var%%.*} -->hack
2、从左到右
非贪婪模式:${var#*.} 从左到右删除第一个 . 连着左边的字符串
贪婪模式:${var##*.} 从左到右删除最后一个 . 连着右边的字符串
例:var="hack.fun.book,txt"
${var#*.} --> fun.book.txt
${var##*.} -->txt
内置函数:
1、 rand():0到1之间的随机数
length():字符串的长度
2、split (string, array) -->如果第三个参数没有提供,awk就默认使用当前FS值
3、substr 截取字符串
substr(s,p):返回字符串s中从p开始的后缀部分
substr(s,p,n):返回字符串s中从p开始长度为n的后缀部分
split:
-b:指定分割后的每个文件的大小
-d:使用数字作为后缀
-a length:指定后缀的长度
-l num:按照行进行分隔
PREFIX(前缀名):指定分割后的文件的前缀,写在所有选项最后
使用vim编辑器某文件,并让光标处于这个文件的最后一行 :vim + file
输出现在的时间:date +"%Y%m%d"
1、传递3个参数给脚本,参数均为用户名。将此些用户的帐号信息提取出来后放置于/tmp/testusers.txt文件中, 并要求每一行行首有行号:
#!/bin/bash
2 read -p "please input three username:" username1 username2 username3
3 var=(${username1} ${username2} ${username3})
4 for i in ${var[*]}
5 do
6 if id -u ${i} &> /dev/null
7 then
8 l=`wc -l /tmp/testusers.txt | cut -d " " -f 1`
9 l=$[$l+1]
10 echo $l,`grep "^${i}" /etc/passwd ` >> /tmp/testusers.txt
11 else
12 echo "${i} not exist!"
13 fi
14 done