查看命令历史 history
可以按一下上\下方向键,命令行就会显示相对于当前命令的上一条或下一条历史记录.但如果太多了,那就得使用history了
history [n] n为数字,列出最近的n条命令 n不指定,默认值为200条
所有命令记录在这里:~/.bash_history
使用! 执行历史命令。
- ! number 执行第几条命令
- ! command 从最近的命令查到以command开头的命令执行
- !! 执行上一条
查看系统时间、日期 date、cal
直接输出date、cal能看到系统当前时间、日期、日历等等
格式化输出:date +%Y-%m-%d 输出为: 2018-12-28
cal 2018 :会把2018年12个月的日历都打印出来
cal 12 2018:这查看的是2018年12月指定月的日历
搜索查找 find、locate、grep、whereis、which
先说两个最轻量级的查找whereis、which。
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which 查看可执行文件的位置
whereis 查看文件的位置
locate 配 合数据库查看文件位置
find 实际搜寻硬盘查询文件名称
find
-name 文件名查找
-user 文件所属查找
-size 文件大小查找 +大于 -小于
find /usr -name a.txt 在目录/usr下查找名字叫a.txt的文件
find /usr -user root 查找目录下文件所属为root的目录和文件
find /usr -size +20M /usr目录下所有大于20M的文件
多参数可以联合使用
locate
使用locate数据库快速查找,无需遍历整个文件系统,所以效率还是蛮高的。需要定期更新locate数据库;第一次执行时,updatedb创建locate数据库。执行前,可先执行一遍updatedb命令。。。
缺点:centos系统要使用此命令,请先安装:
yum -y install mlocate
然后执行updatedb
locate命令要比find -name快得多
grep
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
常用参数:
-w或–word-regexp 只显示全字符合的列。
-c或–count 计算符合范本样式的列数。
–color :将匹配到的内容以颜色高亮显示。 这个还挺好用的
# 若有如下文本 db.username=xbk_classroom slave.db.username=xbk_classroom slave1.db.username=xbk_classroom user.ribbon.listOfServers=http://10.102.131.176:9090 isolation.db.username=xbk_classroom grep user -c 结果为:5 效果同grep -c user grep user -wc 结果为:1(完整匹配,所以经常使用) grep -wc user
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :所有字符,长度可以为0。
使用案例:
grep ‘test’ d* #显示所有以d开头的[文件中]包含 test的行。 grep ‘[a-z]\{5\}’ aa #显示所有包含每个字符串至少有5个连续小写字符的字符串的行。 grep man * #会匹配 ‘Batman’、’manic’、’man’等, grep ‘\<man’ * #匹配’manic’和’man’,但不是’Batman’, grep ‘\<man\>’ #只匹配’man’,而不是’Batman’或’manic’等其他的字符串。 ‘^’:指匹配的字符串在行首, ‘$’:指匹配的字符串在行 尾, grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, grep -l pattern files :只列出匹配的文件名, grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’), grep -C number pattern files :匹配的上下文分别显示[number]行, grep -n pattern files 即可显示行号信息 我常用的:grep -A(后面N行) -B(前面N行) -C(前后N行)
过滤符。将前一个命令的结果,通过管道符进行过滤
| 管道命令,将前面命令的处理结果传递给后一个处理
cat a.txt | grep -ni hello 把a.txt的文件内容传递给grep过滤,grep过滤出所有hello字段,-n表示显示行号,-i表示不区分大小写
也可以直接使用:
grep -n aaa /home/a.txt --在home文件下的a.txt查找含有aaa字符的行数(区分大小写匹配aaa)
统计出现的次数 |wc -l
如:
grep -n You README |wc -l
////
输出: 这样只会输出一个总次数数字了
6
压缩与解压
习惯上以.tar后缀代表tar包,用xxx.tar.gz或.tgz代表gzip压缩过的tar文件,用.tar.bz2代表bzip2压缩过的tar文件。
tar
打包:将一大堆文件或目录变成一个总的文件【tar命令】
压缩:将一个大的文件通过一些压缩算法变成一个小文件【gzip,bzip2等】
只是打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。
tar [主选项+辅选项] 文件们或目录
主选项:【一条命令以下5个参数只能有一个】
-c: --create 新建一个压缩文档,即打包
-x: --extract,–get解压文件(解压的时候使用)
-t: --list,查看压缩文档里的所有内容
-r:–append 向压缩文档里追加文件
-u:–update 更新原压缩包中的文件
辅助选项(可多个):
-v:显示操作过程!这个参数很常用
-f:使用文档名,注意,在f之后要立即接文档名,不要再加其他参数!
-z:是否同时具有gzip的属性?即是否需要用gzip压缩或解压?一般格式为xxx.tar.gz或xx.tgz
-j:是否同时具有bzip2的属性?即是否需要用bzip2压缩或解压?一般格式为xx.tar.bz2
常用组合为:
将img1和img2两个文件夹打包成img.tar,仅打包不压缩
tar -cvf img.tar img1 img2
//
将img1和img2两个文件夹打包成img.tar.gz,打包后,以gzip压缩
tar -zcvf img.tar.gz img1 img2
解压:tar -tf img.tar这个不解压直接查看
tar -xvf file.tar //解压 tar包
gzip、gunzip、zip、unzip
gzip 是linux中常见的压缩/解压工具,最常见的使用对象是*.gz格式的文件