关于shell-----1

来源:互联网 发布:宁波软件行业协会 编辑:程序博客网 时间:2024/05/22 04:11
read 是不用输入enter来确定的一个函数
使用方式:只要满足某些条件就可以直接执行了
例如当字符数满足2个时执行:
read -n 2 var
无回显的方式读取:
read -s var
  显示提示信息:
read -p “Enter input: ” var
   在特定时间内读取输入:
read -t 时间 var
    用特定的定界符作为输入行的结束
read -d "符号" var



linux shell 建立一个秒表

#!/bin/bash
#name:变量
echo -n Count:
tput sc
count=1;
while :;
do
if [ $count -gt 0 ];
then
let count++;
sleep 1;
tput rc
tput ed
echo -n $count;
else exit 0;
fi
done

-eq :=
-ne :!=
-gt  :>
-lt   :<
ge: >=
le : <=
文件系统相关测试:
    [ -f $file_var ] :如果给定的变量包含正常的文件路径或者文件名,则返回真
                    [ -x $var ] : 如果给定的变量包含的文件可执行,则返回真;
                    [ -d $var ] : 如果给定的变量包含的是目录,则返回真
                    [ -e $var ] : 如果给定的变量包含的文件存在,则返回真
                    [ -c $var ] : 如果给定的变量包含的是一个字符设备文件的路径,则返回真
                    [ -b $var ] : 如果给定的变量包含的是一个块设备文件的路径,则返回真
                    [ -w $var ] : 如果给定的变量包含的文件可写,则返回真
                    [ -r $var ] : 如果给定的变量包含的可读,则返回真
                    [ -L $var ] : 如果给定的变量包含的是一个符号链接,则返回真

注意事项:注意在=前后各有一个空格,无等于号代表的是赋值,有空格代表比较
逻辑运算符:&&   代表与
||   代表或

对于判断可以使用test来代替[]的使用
  例如:if [ $var -eq 0 ]; then echo "Ture" ;fi
也可以写成:
   if test $var -eq 0 ; then echo "Ture" ; fi


cat 的高级用法
拼接输入
例如: echo "Text through stdin " | cat - flie.txt
上面代码中,-被作为stdin文本的文件名。
摆脱多余的空白行
例如:cat -s filename             #压缩空白行
     cat -tr filename #删除所有的空白行
将制表符指示迟来
  例如:cat -T filename
添加行号
   例如: cat -n filename
跳过空白行并添加行号
cat -bn filename

find的用法: find .代表指定当前目录,..代表指定父目录,这是unix的约定用法

根据名字来寻炸文件的位置,例如:  find  位置  -name filename
寻找多个同类型文件 例如:find 位置 -name "*.txt"2
寻找多个不同类型的文件 例如:find 位置  \ ( -name "*.txt" -o -name "*.pdf" \) 
上面的命令\(以及(\用于将-name  "*.txt" -o -name "*.pdf" 视为一个整体
根据通配符来寻找文件路径 例如:find 位置 -path  "*/slynux/*" 
上面的命令可以匹配目录文件等和slynux相同的文件
寻找邮件的地址 例如:find 位置 -name "[ a-z 0-9 ]+@ [ a-z 0-9 ]+.[ a-z 0-9 ]+"
上面的命令符号+指明在它之前的字符类中的字符可以出现一次或多次

指定寻找的深度来减少或者增加寻找的深度
find 位置 maxdepth 1 -name "f*"
上面的命令指的是寻找在某位置寻找最大深度为1 名字为f*的所有文件
find 位置 mindepth 1 -name "f*"
上面的命令指的是寻找在某位置寻找最小深度为1 名字为f*的所有文件

type 可以对文件搜索进行过滤,例如只列出所以的目录
find 位置 -type d

文件类型 类型参数
普通文件 f
符号链接 l
目录 d
字符设备 c
块设备 b
套接字 s
FIFO p
通过时间来寻找文件例如  : find 位置 -type f -atime -7
     -mtime 7
         -ctime +7
-atime 访问时间 -7 :7天以前
-mtime 修改时间 7    :第7天
-ctime  变化时间 +7  : 超过7天

通过文件大小来寻找 例如 : find 位置 -type f -size +2k +2k指的是大于2k的文件

如果要删除寻找出来的文件 直接在命令后面加上 -delete就可以了
通过权限来寻找文件 例如 find 位置 -type f -perm 644        644代表权限为644的文件
通过用户来寻找文件 例如 find 位置 -type f -usee root root代表root用户

批处理文件属性
find 位置 -type f -user root -exec chown slynux { } \;
上面命令  { } 是一个与-exec 选项搭配使用的特殊字符串,杜宇每一个字符串
都会被替换成相应的文件名,同时上面的命令为寻找用户名为root的文件并将
它修改为slynux的用户

注意:-exec无法直接使用多个命令,但是我们可以把命令写在一个shell脚本
   中,然后在-exec中使用这个脚本 -exec ./commands.sh { } \;