Linux指令

1. 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 {} \; 该命令以分号作为结束标志,考虑到系统中分号的含义不同,一般前面加“\”反斜杠转义,{}括号表示前面查找出的文件名

2. route 打印和操作ip路由表

route print  #显示路由信息

route  add 目标网络 mask 子网掩码 网关  #添加路由

route  -p add 目标网络 mask 子网掩码 网关  #添加永久路由

route delete 目的网络 mask 子网掩码  #删除路由

3. ls 显示文件

ll -trl  #按文件修改顺序(早-->晚)显示 

ll -a   #显示所有文件,包括以.开头的隐藏文件

ls --full-time #文件的时间也显示出来,如:-rw-------. 1 root root 2000 2017-09-15 10:46:05.131999449 +0800 anaconda-ks.cfg

4. rm删除命令

rm -rf *  #删除当前目录下的所有文件,删除便不可恢复了

选项:

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

参数:

指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项

5. 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

6. << EOF 表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。EOF可以替换成所定义的任何字符串

 用法说明:

  • 在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell。
  • EOF只是一个分界符,当然也可以用abcde替换。
  • 当shell遇到<<时,它知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。
  • 此分界符可以是所定义的任何字符串,其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,完全可以换成abcde之类的字符串,只是一个起始和结束的标志罢了。

7. > 与 >> 重定向输出 

> file  #是输出到文件file中, 如果文件存在, 则原来的内容被清空, 不存在则创建文件

> > file  #是把输出追加到文件中, 如果文件存在, 追加到末尾, 不存在则创建文件

8. if-else-fi 语句中 -e的使用

 一、文件比较运算符 
1. -e filename 如果 filename存在,则为真 如: [ -e /var/log/syslog ] 
2. -d filename 如果 filename为目录,则为真 如: [ -d /tmp/mydir ] 
3. -f filename 如果 filename为常规文件,则为真 如: [ -f /usr/bin/grep ] 
4. -L filename 如果 filename为符号链接,则为真 如: [ -L /usr/bin/grep ] 
5. -r filename 如果 filename可读,则为真 如: [ -r /var/log/syslog ] 
6. -w filename 如果 filename可写,则为真 如: [ -w /var/mytmp.txt ] 
7. -x filename 如果 filename可执行,则为真 如: [ -L /usr/bin/grep ] 
8. filename1-nt filename2 如果 filename1比 filename2新,则为真 如: [ 
/tmp/install/etc/services -nt /etc/services ] 
9. filename1-ot filename2 如果 filename1比 filename2旧,则为真 如: [ 
/boot/bzImage -ot arch/i386/boot/bzImage ]

二、字符串比较运算符(请注意引号的使用,这是防止空格扰乱代码的好方法) 
 1. -z string  如果 string长度为零,则为真 如:  [ -z "$myvar" ]
 2. -n string  如果 string长度非零,则为真  如: [ -n "$myvar" ]
 3. string1= string2  如果 string1与 string2相同,则为真 如:  ["$myvar" = "one two three"]
 4. string1!= string2  如果 string1与 string2不同,则为真 如:  ["$myvar" != "one two three"]

三、算术比较运算符 
 1. num1-eq num2  等于 如: [ 3 -eq $mynum ]
 2. num1-ne num2  不等于 如: [ 3 -ne $mynum ]
 3. num1-lt num2  小于 如: [ 3 -lt $mynum ]
 4. num1-le num2  小于或等于  如:[ 3 -le $mynum ]
 5. num1-gt num2  大于  如:[ 3 -gt $mynum ]
 6. num1-ge num2  大于或等于 如: [ 3 -ge $mynum ]

四、查看磁盘、文件大小 
1. df -h 查看磁盘占用情况 
2、du -sm ./* 查看当前目录下文件大小,单位M

参考:https://blog.csdn.net/nmjhehe/article/details/83038531

9. | 和 || 和 & 和 &&的用法

| :表示管道,上一条命令的输出作为下一条命令的输入

||:上一条命令执行失败后,才执行下一条命令

&:表示任务在后台执行

&&:上一条命令执行成功后,才执行下一条命令

10. 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

12. shell 脚本以set -e开头 

set -e的作用

这句话告诉bash,如果任何语句的执行结果不是true,则应该退出,这样的好处是防止错误像滚雪球一样累积成致命的错误,而这些错误在之前就应该被处理掉。

13. export与source的使用

参考:https://blog.csdn.net/qq_39759656/article/details/83547582 

你可能感兴趣的:(Linux)