一、时间日期类命令
在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用户下才能使用
2-2、查看磁盘使用情况:df
选项:
- -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统
- -k :以 KBytes 的容量显示各文件系统;
- -m :以 MBytes 的容量显示各文件系统;
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
- -H :以 M=1000K 取代 M=1024K 的进位方式;
- -T :显示文件系统类型,连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
- -i :不用硬盘容量,而以 inode 的数量来显示;
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
五、搜索查找类命令
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
例如:
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、根据文件名字搜索
5-5-2、根据文件大小搜索
这里的+是大于指定大小,-是小于指定大小,单位选项如下:
5-5-3、根据修改时间搜索
Linux中的文件有访问时间(atime),数据修改时间(mtime)以及状态修改时间(ctime),我们可以根据这个时间来查找文件。