vim 显示行号:est numberlinux
也就显示行号:vim ~/.vimrc正则表达式
添加:set nu数据库
echo $1 使用空格隔开参数,vim
例如:echo user1,user2 中的“user1,user2”看作一个参数bash
例子:带参数的sh脚本,!!!!(逗号隔开各参数)ide
运行格式:./SOMESHELL.sh OPTION1,OPTION2oop
例子功能:输入用户名,若是用户存在,就显示用户已存在,若是用户不存在,就差建立用户,并用用户名做为密码。测试
#!/bin/bashui
#spa
echo $1
for I in `echo $1 | sed 's/,/ /g'`; do ///////把逗号转化为空格;
if id $I &> /dev/null; then
echo "$I exists."
else
useradd $I
echo $I | passwd --stdin $I &> /dev/null
echo "add $I finished."
fi
done
测试:
./addusertest.sh user1,user2
组合条件测试
例子:让某程序只识别q,Q,quit,Quit做为退出命令的关键字
quitquit.sh
#!/bin/bash
#
if [ $1 == 'q' -o $1 == 'Q' -o $1 == 'Quit' -o $1 == 'quit' ];then
echo "quiting..."
exit 0
else
echo "Unknow commands."
fi
07_03
let I=$[ $I+1 ]
SUM = $ [$SUM+$I]
let SUM+=$I
let I+=1 至关于 let I++
同理:
-=
*=
/=
%=
declare -i EVENSUM = 0
declare -i ODDSUM = 0
grep,egrep,fgrep能够用于文本查找
locate,find文件查找。
locate命令,非实时查找。是根据全系统全系统文件数据库进行(精确查找)。
linux天天会自动把本机全部信息放到数据库中(何时存放,取决于你的任务计划)。
手动执行更新文件数据库的命令:
#updatedb
@@@须要很长时间来更新该文件数据库,不过查找的速度很快。
find:实时、精确、慢(遍历指定目录中的全部文件完成查找,速度慢)(支持众多查找标准)
find 查找路径 查找标准 处理运做
@@@查找路径省略后,默认当前目录;
@@@查找标准,默认为指定目录下的全部文件;
@@@处理运做 默认为显示;
示例:
find /etc -name 'passwd'
选项:
-name 按名字查找
-iname 不区分大小写查找
-regex PATTERN:基于正则表达式查找 ??????????????
-user UNAME:根据属主查找
-group GROUPNAME:根据属组查找
-uid UID:根据uid查找
-gid GID:根据GID查找
-nouser:查找无属主文件
-nogroup:查找无属组文件
-size:指定查找大小
#K #M #G
-size [+|-] #K
(无单位的话默认字节)
例子:
find /etc -name 'e*' -size +10k
查找/etc下大于10k的名字包含e的文件和文件夹
-type:
f:普通文件
d:目录
c:字符
b:块
l:连接文件
p:管道设备
s:套接字设备
例子:find /etc -name 'e*' -type f
在etc内,查找名字包含e的普通文件。
一旦用户被删除,则以前属于该用户的文件都改为属于此用户的ID号(UID)
例如:删除hadoop用户后用
find /tmp -uid 2003
☆组合条件查询
-a且
-o或
-not非
例子:
找当前目录下不是user1也不是user2的文件:
find ./ -not -user user1 -a -not -user user2
或者
find ./ -not\ (-user user1 -o -user user2)
@@@摩根定律:总体取反 等于单个取反 再把里边的符号反过来
07_04
特殊权限
passwd:s
SUID:
运行某些程序时,相应进程的属主是程序文件自身的属主,而不是启动者。
SGID:
运行某些程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组。
sticky:在一个公共目录,每一个均可以建立文件,删除掉本身的文件,但不能删除别人的文件。