1.定义对所有用户都生效的命令别名,例如:cls=clear
echo "alias cls='clear'" >> /etc/bashrc
source /etc/bashrc
2.显示/etc/passwd文件中不以/bin/bash结尾的行
grep -v "/bin/bash$" /etc/passwd
3.找出/etc/passwd文件中,包含两位数字或三位数的行
gerp "\<[0-9]\{2,3\}\>" /etc/passwd
4.找出/proc/meminfo文件中以大写或小写s开头的行;用三种方式实现
grep -i "^s" /proc/meminfo
grep "^[sS]" /proc/meminfo
grep "^(s|S)" /proc/meminfo
5.使用echo输出一个绝对路径,使用egrep取出路径名,类似执行dirname/etc/passwd的结果。
echo "/etc/passwd" | egrep -o "^/.*/"
6.找出ifcongfig命令结果中的IP地址。要求结果只显示IP地址
ifconfig | grep -E -o "(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
7.vim定制自动缩进四个字符。
临时: set tabstop=4 或 永久:vim /etc/vimrc set tabstop=4
8.编写脚本,实现自动添加三个用户,并计算这三个用户的uid之和。
!/bin/bash
useradd test1 && a=$(id -u test1)
useradd test2 && b=$(id -u test2)
useradd test3 && c=$(id -u test3)
echo "$[$a+$b+$c]"
9.find用法以及常用用法的示例演示
find [OPTIONS][查找起始路径][查找条件][处理动作]
[查找条件]
根据文件名查找:
-name“pattern”
-inname"pattern"
支持glob风格的通配符
*,?[],[^]
-regex parttern:基于正则表达式模式查找文件,匹配是整个路径,而非其名
根据文件从属关系查找
-user USERNAME:查找属主指定用户的所有文件
-group GRPNAME:查找属组指定组的所有文件
-uid UID:查找属主指定的UID的所有文件
-gid GID:查找属组指定的GID的所有文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
根据文件类型查找
f:普通文件
d:目录文件
l:符号链接文件
b:块设备文件
c:字符设备文件
p:管道文件
s:套接字文件
根据文件的大小查找
-size [+|-]#UNIT
常用单位:K,M,G
#UNIT :(#-1,#]
-#UNIT [0,#-1]
+#UNIT:(#,OO)
根据时间戳查找
以“天”为单位:
-atime [+|-]#
#:[#,#-1)
-#:(#,0)
+#:(oo,#-1)
-mtime
-ctime
以“分钟”为单位:
-amin
-mmin
-cmin
根据权限查看
-perm [/|-]mode
mode:精确权限匹配
/mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足
9位权限之间存在“或”关系;
-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;
9位权限之间存在“与”关系
[处理动作]
-print:输出至标准输出:默认动作
-ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息
-delete:删除查找到的文件
-fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中
-ok COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令
-exec COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令
示例:查找/tmp目录下属主为root,在一周内容修改过,大于1M且类型为普通文件,至少有一类用户有写权限,而且文件名不包含fstab的文件
find /tmp -user root -mtime -7 -size +1M -type f -perm /222 -not -name '*fstab*' -ls
921362 32 -rw-r--r-- 1 root root 1460584 May 12 01:34 /tmp/log/lastlog