Linux指令
- find
基本查找
find base_path -name ‘xxxx’ -print #根据文件名和正则表达式进行搜索,使用选项 -name或
find base_path -iname ‘xxxx’ -print # 根据文件名和正则表达式进行搜索,使用选项 -iname(忽略大小写)
find的-mtime参数
*-mtime n 按照文件的更改时间来找文件,n为整数。*
- n 表示文件更改时间距离为n天
- -n 表示文件更改时间距离在n天以内
- +n 表示文件更改时间距离在n天以前
find的-exec参数
应用背景:使用find找到某个文件后,一般会有对这个文件的进一步操作,这个时候-exec的作用就显现出来了
形式:-exec command {} \; 该命令以分号作为结束标志,考虑到系统中分号的含义不同,一般前面加“\”反斜杠转义,{}括号表示前面查找出的文件名
- route 打印和操作ip路由表
route print #显示路由信息
route add 目标网络 mask 子网掩码 网关 #添加路由
route -p add 目标网络 mask 子网掩码 网关 #添加永久路由
route delete 目的网络 mask 子网掩码 #删除路由
- ls 显示文件
ll -trl #按文件修改顺序(早—>晚)显示
ll -a #显示所有文件,包括以.开头的隐藏文件
ls —full-time #文件的时间也显示出来,如:-rw———-. 1 root root 2000 2017-09-15 10:46:05.131999449 +0800 anaconda-ks.cfg
- rm删除命令
rm -rf \ * #删除当前目录下的所有文件,删除便不可恢复了
选项:
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
—preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。参数:
指定被删除的文件列表,如果参数中含有目录,则必须加上
-r
或者-R
选项
- date 输出日期
- 输出当前日期:
date +”%Y%m%d” #输出20200824形式的日期
date +”%Y-%m-%d %H:%M:%S” #输出2020-08-24 14:34:01形式的时间
- 输出n天前的日期:
date +”%Y%m%d” ‘-10 day’ #输出10天前的日期
- 输出n天后的日期:
date +”%Y%m%d” ‘+10 day’ #输出10天后的日期
- 输出n小时之前的时间:
date +”%Y-%m-%d %H:%M:%S” ‘-1 hour’
- ….相应可输出n分钟orn秒**之前or之后时间**
- date -d datastr +’%Y%m%d’ #按照’%Y%m%d’的形式输出指定datastr的日期
- date
- << EOF 表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。EOF可以替换成所定义的任何字符串
用法说明:
- 在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell。
EOF只是一个分界符,当然也可以用abcde替换。
当shell遇到<<时,它知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。
此分界符可以是所定义的任何字符串,其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,完全可以换成abcde之类的字符串,只是一个起始和结束的标志罢了。
与 >> 重定向输出
> file #是输出到文件file中, 如果文件存在, 则原来的内容被清空, 不存在则创建文件
> > file #是把输出追加到文件中, 如果文件存在, 追加到末尾, 不存在则创建文件
- if-else-fi 语句中 -e的使用
一、文件比较运算符
- -e filename 如果 filename存在,则为真 如: [ -e /var/log/syslog ]
- -d filename 如果 filename为目录,则为真 如: [ -d /tmp/mydir ]
- -f filename 如果 filename为常规文件,则为真 如: [ -f /usr/bin/grep ]
- -L filename 如果 filename为符号链接,则为真 如: [ -L /usr/bin/grep ]
- -r filename 如果 filename可读,则为真 如: [ -r /var/log/syslog ]
- -w filename 如果 filename可写,则为真 如: [ -w /var/mytmp.txt ]
- -x filename 如果 filename可执行,则为真 如: [ -L /usr/bin/grep ]
- filename1-nt filename2 如果 filename1比 filename2新,则为真 如: [
/tmp/install/etc/services -nt /etc/services ]- filename1-ot filename2 如果 filename1比 filename2旧,则为真 如: [
/boot/bzImage -ot arch/i386/boot/bzImage ]二、字符串比较运算符(请注意引号的使用,这是防止空格扰乱代码的好方法)
- -z string 如果 string长度为零,则为真 如: [ -z “$myvar” ]
- -n string 如果 string长度非零,则为真 如: [ -n “$myvar” ]
- string1= string2 如果 string1与 string2相同,则为真 如: [“$myvar” = “one two three”]
- string1!= string2 如果 string1与 string2不同,则为真 如: [“$myvar” != “one two three”]
三、算术比较运算符
- num1-eq num2 等于 如: [ 3 -eq $mynum ]
- num1-ne num2 不等于 如: [ 3 -ne $mynum ]
- num1-lt num2 小于 如: [ 3 -lt $mynum ]
- num1-le num2 小于或等于 如:[ 3 -le $mynum ]
- num1-gt num2 大于 如:[ 3 -gt $mynum ]
- num1-ge num2 大于或等于 如: [ 3 -ge $mynum ]
四、查看磁盘、文件大小
- df -h 查看磁盘占用情况
2、du -sm ./* 查看当前目录下文件大小,单位M参考:https://blog.csdn.net/nmjhehe/article/details/83038531
- | 和 || 和 & 和 &&的用法
| :表示管道,上一条命令的输出作为下一条命令的输入
||:上一条命令执行失败后,才执行下一条命令
&:表示任务在后台执行
&&:上一条命令执行成功后,才执行下一条命令
- cut
- -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
- -c :以字符为单位进行分割。
- -d :自定义分隔符,默认为制表符。
- -f :与-d一起使用,指定显示哪个区域。
- -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除
11.$?
- $#:传入脚本的参数个数;
- $0: 脚本自身的名称;
- $1: 传入脚本的第一个参数;
- $2: 传入脚本的第二个参数;
- $@: 传入脚本的所有参数;
- $*:传入脚本的所有参数;
- $$: 脚本执行的进程id;
- $?: 上一条命令执行后的状态,结果为0表示执行正常,结果为1表示执行异常;
其中$@与$*正常情况下一样,当在脚本中将$*加上双引号作为“$*”引用时,此时将输入的所有参数当做一个整体字符串对待。比如输入参数有a b c三个参数,则“$*”表示“a b c”一个字符串。
参考:https://www.cnblogs.com/quxiangxiangtiange/p/10290715.html
- shell 脚本以set -e开头
set -e的作用
这句话告诉bash,如果任何语句的执行结果不是true,则应该退出,这样的好处是防止错误像滚雪球一样累积成致命的错误,而这些错误在之前就应该被处理掉。
- export与source的使用
参考:https://blog.csdn.net/qq_39759656/article/details/83547582
还没有评论,来说两句吧...