ls命令

ls对文件mtime时间进行排序

降序: ls -lt |  grep '^-'
    升序:   ls -ltr  |  grep '^-'

seq命令

求1000以内所有偶数的和

echo `seq 0 2 1000` | tr -s ' ' + | bc

paste命令

用户名-密码-家目录路径-默认shell

这里需要注意paste 文件的先后顺序问题,不同的顺序会有不同的结果 -f 只能从小到大依次显示,不能调整显示顺序.所以可以通过

调整 paste file1 file2 或者 paste file2 file1 来实现对列的顺序显示.

paste -d: /etc/shadow /etc/passwd | grep "^\<$root\>" | cut -d: -f1,2,15,16

[root@centos7 ~]# paste -d: /etc/passwd /etc/shadow | grep '^\<root\>:'|cut -d: -f1,9,6,7

虽然在后面指定-f1,9,6,7显示,但是最终显示结果还是按照1,6, 7, 9来排列的.这种指定无效.
 root:/root:/bin/bash:$6$RzUIKaLkncGUm9SL$FtuXzR8IpSz2OEQp.LlDrDH1O62SMrZ/Gj06iTSNqlxWma/aHf21lpikhNln6UgNyuL/HqGUrM45feTBkMC1T0

date 命令

[root@centos7 sysconfig]# date +%F
--
[root@centos7 sysconfig]# date +%H:%M:%S
::
[root@centos7 sysconfig]# date -d "$v_date -1 year" +%Y [root@centos7 sysconfig]# date -d last-year +%Y [root@centos7 sysconfig]# date -d next-year +%Y [root@centos7 sysconfig]# date -d next-year +%Y%M [root@centos7 sysconfig]# date -d next-year +%Y%M [root@centos7 sysconfig]# date -d next-year +%Y%m [root@centos7 sysconfig]# date -d next-year +%Y%m%D
//
[root@centos7 sysconfig]# date -d next-year +%Y%m%d

tar 命令

tar打包压缩的同时要指定被压缩的包存储的目录,排除某些子目录

mkdir -p /data/myetc && tar -cvzf     /data/myetc/myetc-`date +%F`-`date +%H:%M:%S`.tar.gz    /etc     --exclude /etc/sysconfig

/data/myetc/  表示压缩包需要存储的路径

myetc-`date +%F`-`date +%H:%M:%S`.tar.gz  表示被压缩的包名

file 命令

stat命令

Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

[root@centos7 ~]# stat sh| grep Uid | cut -d " " -f 2 | cut -d "/" -f 1 | tr -d "("
0755

[root@centos7 ~]# stat sh | sed -n '4p'| sed -r "s/.*([0-9]{4})\/.*/\1/"
0755

使用扩展正则  \+ 符号无效,必须写成+
[root@centos7 ~]# stat sh | sed -n '4p'| sed -r "s/.*([0-9]\+)\/.*/\1/"
 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

[root@centos7 ~]# stat sh | sed -n '4p'| sed -r "s/.*([0-9]+)\/.*/\1/"
0
[root@centos7 ~]# stat sh | sed -n '4p'| sed -r "s/.*\(([0-9]+)\/.*/\1/"
0755

通配符知识

rm -fr  myetc-`date -d "$v_date -1 year" +%Y`*.tar.gz

通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不用在 操作符上)。当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。总之,通配符 实际上就是一种shell实现的路径扩展功能。在 通配符被处理后, shell会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令。

我们回过头分析上面命令吧:在第2个命令中,*.txt 实际shell搜索文件,找到了符合条件的文件,命令会变成:ls a.txt b.txt ,实际在执行ls 时候传给它的是a.txt b.txt .

而命令3,d*.txt 由于当前目录下面没有这样的文件或目录,直接将”d*.txt” 作为ls 参数,传给了 ls .这个时候”*” 只是一个普通的 ls 参数而已,已经失去了它通配意义。 由于找不到文件,所以会出现:无法访问提示!

了解了shell通配符,我们现在看下,shell常见通配符有那一些了。

shell常见通配符:

字符 含义 实例
* 匹配 0 或多个字符 a*b  a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。
? 匹配任意一个字符 a?b  a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b。
[list]  匹配 list 中的任意单一字符 a[xyz]b   a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。
[!list]  匹配 除list 中的任意单一字符 a[!0-9]b  a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。
[c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] a[0-9]b  0与9之间必须也只能有一个字符 如a0b, a1b... a9b。
{string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串 a{abc,xyz,123}b    a与b之间只能是abc或xyz或123这三个字符串之一。

需要说明的是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆。把通配符理解为shell 特殊代号字符就可。而且涉及的只有,*,? [] ,{} 这几种。

Linux命令实例功能笔记的更多相关文章

  1. shell linux基本命令实例、笔记

    1. 在当前文件夹下.查找20分钟内,被訪问过的文件, 并将文件的详情显示出来: find ./ -name '*.log' -mmin -20 -exec ls -l {} \;   当然,须要指出 ...

  2. 【第三课】常用的Linux命令(学习笔记)

    4月8日 学习笔记打卡

  3. linux命令sed学习笔记

    sed其实就是两个主要的知识点,那就是“怎么选择”和“怎么操作”!

  4. win10的power shell可以学习少部分linux命令_功能与cmd类似

    更新帮助文件:

  5. linux命令之chown命令

    发布:JB01   来源:脚本学堂     [大 中 小] 本文介绍下,linux系统中用于文件与目录权限管理的命令 chown命令的用法,chown将指定文件的拥有者改为指定的用户或组.有需要的朋友 ...

  6. Linux命令--1

    之前一直在学习Linux,不过有点一天打鱼两天晒网的意味,现在希望通过写博客的形式,积累更多的知识,也希望可以帮到同在linux坑中的各位小伙伴们~ PS:我的笔记重点在于通俗,很多命令一百度就有,但 ...

  7. 《Linux命令学习手册》系列分享专栏

    <Linux命令学习手册>系列分享专栏 <Linux命令学习手册>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/207 ...

  8. linux命令注解

    参考: Linux命令实例练习 -- 实验楼 太懒,就不全抄了,把自己觉得有坑的地方记录下来. ls ls命令的20个实用范例 -- linux.cn 常用参数 参数 描述 -a –all 列出目录下 ...

  9. 转 PHP中exec、system等函数调用linux命令问题

    PHP中exec.system等函数调用linux命令问题 先小说两句:今天研究了下PHP调用LINUX命令的功能,一开始怎么做都调用不成功,试了好久才终于成功了,所以发出来分享一下.下面我将详细介绍 ...

随机推荐

  1. [IR] Bigtable: A Distributed Storage System for Semi-Structured Data

    良心博文: http://blog.csdn.net/opennaive/article/details/7532589 这里只是基础简述 众人说: 链接:http://blog.csdn.net/o ...

  2. Kafka Java API获取非compacted topic总消息数

    目前Kafka并没有提供直接的工具来帮助我们获取某个topic的当前总消息数,需要我们自行写程序来实现.下列代码可以实现这一功能,特此记录一下: /** * 获取某个topic的当前消息数 * Jav ...

  3. linux 几个命令

    tail: tail -20 xxx  --查看xxx文件的最后20行 more:分页查看,只能向后,不能向前 less:查看文件,可向前,向后,用的比较多 ll -h|more:当文件较多时,可以通 ...

  4. 【Java并发编程六】线程池

    一.概述 在执行并发任务时,我们可以把任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程,只要池里有空闲的线程,任务就会分配一个线程执行.在线程池的内部,任务被插入一个阻塞队列(Blo ...

  5. angular.js学习笔记--概念总结

    好久没更新了,现在开始学习学习angularjs,并且把学习到的一些知识总结记录一下,方便以后查找以及希望能给初学者一些帮助!(由于本人也是初学ng所以各位慎重理解!) 废话不多说,开始! $root ...

  6. Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embe

    Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationEx ...

  7. LuoguP3834 【模板】可持久化线段树 1(主席树)|| 离散化

    题目:[模板]可持久化线段树 1(主席树) 不知道说啥. #include<cstdio> #include<cstring> #include<iostream> ...

  8. .NET Core开发日志——Peachpie

    .NET Core的生态圈随着开源社区的力量不断注入至其中,正在变得越来越强盛,并且不时得就出现些有意思的项目,比如Peachpie,它使得PHP的代码迁移到.NET Core项目变得可能. 从创建简 ...

  9. python中的argv使用

    sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白.因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list), ...

  10. MySQL复制原理-加强版

    mysql从3.23开始提供复制功能,复制指将主库的ddl和dml操作通过binlog文件传送到从库上执行,从而保持主库和从库数据同步.mysql支持一台主库同时向多台从库复制,从库同时也可以作为其他 ...