Linux系列七之常用命令整理(三):时间日期、磁盘分区、重定向、管道、搜索查找

一、时间日期类命令

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

系统时钟的设定就是我们常用的date命令,而我们写的RTC驱动就是为硬件时钟服务的,它有属于自己的命令hwclock,因此使用date命令是不可能调用到我们的驱动的,我们可以通过hwclock的一些指令来实现更新rtc时钟,也就是系统时钟和硬件时钟的交互。

1-1、硬件时钟:hwclock/clock

  • hwclock/clock -r:显示硬件时钟与日期
  • hwclock/clock -s:将系统时钟调整为与目前的硬件时钟一致
  • hwclockclock/ -w:将硬件时钟调整为与目前的系统时钟一致
  • hwclock --set --date="05/11/19 19:34:00" 或者 clock --set --date="05/11/19 19:34:00":设置硬件时间

1-2、系统时间:date

显示当前时间:

  • date:显示当前时间
  • date +%Y:显示当前年份
  • date +%m:显示当前月份
  • date +%d:显示当前是哪一天
  • date +%Y%m%d,date +%Y/%m/%d:显示当前年月日各种格式
  • date "+%Y-%m-%d %H:%M:%S":显示年月日时分秒

显示非当前时间:

  • date -d '1 days ago':显示前一天日期
  • date -d yesterday +%Y%m%d:同上
  • date -d next-day +%Y%m%d:显示明天日期
  • date -d 'next monday':显示下周一时间

设置时间:

  • date -s '2019-05-11 19:04:00'

1-3、日历:cal

cal命令是查看日历的相关命令

用法:
cal [选项] [[[日] 月] 年]

选项:

  • -1, --one:只显示当前月份(默认)
  • -3, --three:显示上个月、当月和下个月
  • -s, --sunday:周日作为一周第一天
  • -m, --monday:周一用为一周第一天
  • -j,--julian:显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y, --year:输出整年

二、磁盘分区类命令

2-1、查看磁盘分区:fdisk -l

注意:在root用户下才能使用

图片.png
图片.png
图片.png

2-2、查看磁盘使用情况:df

选项:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型,连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示;
图片.png

2-3、挂载/卸载磁盘:mount/umount

对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间挂载到这个目录下。

2-3-1、挂载新磁盘

用法:
mount [-t vfstype] [-o options] device dir

选项:

  • -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。
    常用类型有:
    光盘或光盘镜像:iso9660
    DOS fat16文件系统:msdos
    Windows 9x fat32文件系统:vfat
    Windows NT ntfs文件系统:ntfs
    Mount Windows文件网络共享:smbfs
    UNIX(LINUX) 文件网络共享:nfs

  • -o options 主要用来描述设备或档案的挂接方式。
    常用的参数有:

    • loop:用来把一个文件当成硬盘分区挂接上系统
    • ro:采用只读方式挂接设备
    • rw:采用读写方式挂接设备
    • iocharset:指定访问文件系统所用字符集
  • device 要挂接(mount)的设备

  • dir设备在系统上的挂接点(mount point)

2-3-2、卸载磁盘

用法:umount 设备文件名或挂载点

三、输入/输出重定向:> < >> <<

大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。 一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:

  • 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
  • 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
  • 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

Linux中的重定向符号:

  • >:覆盖输出
  • >>:追加输出
  • set -C: 禁止对已经存在文件使用覆盖重定向
  • set +C: 关闭上述功能
  • 2>: 重定向错误覆盖输出
  • 2>>: 重定向错误覆盖追加
  • &>: 重定向标准输出(1)或错误输出(2)至同一个文件
  • <:输入重定向
  • <<:输入文档

四、管道:|

管道的作用:将前一个命令的输出,作为后一个命令的输入。非常重要的一个命令。

用法:
命令1 | 命令2 | 命令3 | ...

例如:
查找txt文件的个数

ls -d *.txt | wc -l
图片.png

五、搜索查找类命令

5-1、文件内容搜索匹配:grep/egrep/fgrep

grep: 根据模式搜索文本,并将符合模式的文本行显示出来,可以使用基本正则表达式定义的模式来过滤文本;

用法:
grep [options] PATTERN [FILE...]

参数:
Pattern: 文本字符和正则表达式的元字符组合而成的匹配条件

选项:

  • -a:不要忽略二进制的数据
  • -i:忽略大小写
  • -n:显示匹配行及行号
  • -c:只输出匹配行的计数
  • -v:反向匹配
  • -o:只显示被模式匹配到的字符串
  • -A N: 输出匹配行(含)的上面N行
  • -B N:输出匹配行(含)的下面N行
  • -C N: 输出匹配行(含)的上下面N行
  • -E:使用扩展正则表达式
  • --color:显示颜色
  • -h:查询多文件时不显示文件名
  • -l:查询多文件时只输出包含匹配字符的文件名
  • -s:不显示不存在或无匹配文本的错误信息。

关于正则表达式请参考其他文章

注意:

  • grep只能使用基本正则表达式,-E参数可以使用扩展正则表达式。
  • egrep = grep -E。
  • fgrep = fast grep,查找效率更高,但是不支持正则表达式

5-2、搜索系统命令:whereis

whereis只能搜索系统命令,不能搜索文件。并且可以查找到帮助文档的位置。

用法:whereis COMMAND

5-3、搜索命令所在目录及别名信息:which

which也是搜素系统命令的命令,不能搜索文件。并且可以列出命令所在路径。如果该命令有别名,同时会搜索别名。

用法:which COMMAND

例如:

图片.png

5-4、查找文件或者目录:locate

locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行。

注意:locate是非实时查询,只能查询当前数据库里面的文件,搜索速度比较快。可以使用updatedb命令手动更新数据库,但是updatedb命令比较耗时。

用法:Locate [选择参数] [样式]

选项:

  • -e 将排除在寻找的范围之外
  • -1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料
  • -f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中
  • -q 安静模式,不会显示任何错误讯息
  • -n 至多显示 n个输出
  • -r 使用正规运算式 做寻找的条件
  • -o 指定资料库存的名称
  • -d 指定资料库的路径
  • -h 显示辅助讯息
  • -V 显示程式的版本讯息

5-5、查找文件或者目录:find

用法:find 搜索路径 [选项] 搜索内容

选项:

  • -name:按照文件或者路径名查找,例如:find /opt/ -name '*.txt'
  • -user :按照拥有者查找,例如:find /opt/ -user cehae
  • -size:按照文件大小查找:N为数字
    • +N:文件大于N
    • -N:文件小于N
    • N:文件等于N
      例如:find /opt -size +204800
5-5-1、根据文件名字搜索
图片.png
5-5-2、根据文件大小搜索
图片.png

这里的+是大于指定大小,-是小于指定大小,单位选项如下:

图片.png
5-5-3、根据修改时间搜索

Linux中的文件有访问时间(atime),数据修改时间(mtime)以及状态修改时间(ctime),我们可以根据这个时间来查找文件。

图片.png
图片.png
5-5-4、根据权限搜索
图片.png
5-5-5、根据所有者和所属组搜索
图片.png

你可能感兴趣的:(Linux系列七之常用命令整理(三):时间日期、磁盘分区、重定向、管道、搜索查找)