--- title: 1.1 linux常用命令与技巧(1) date: 2018-5-3 00:52:22 tags: linux categories: - linux --- ### md5sum与sha1sum 用于使用hash算法生成文件的摘要信息 , 常用于文件完整性的校验 ```bash # 生成a.txt的md5摘要信息 md5sum a.txt # 生成当前目录下所有文件的sha1摘要信息 sha1sum ./* ``` ### history 显示在终端中执行过的所有命令的历史记录 (按↑方向键快速找到执行过的命令也是利用的这个记录) 如果使用`history -c`可以清空这个列表 ### chown 这个命令是用来改变文件拥有者和所在的组 ``` chown <用户名>:<组> <文件名> ``` 可以改变文件的所有权 ### cal 就是calendar(日历) , 可以用来显示当前月份或者任意年份中的某一月 ``` # 显示当前月份日历 cal # 显示2018年2月的日历 cal 2 2018 # 显示2018年全年日历 cal -y 2018 ``` ### cat 代表了连结 , 通常也可以用它输出单个文件的内容 ```bash # 输出a.txt的内容(带行号) cat -n a.txt # 将a.txt b.txt的内容连结输出 cat a.txt b.txt ``` ### 输出重定向 对于程序的输出 , 我们通常不能一直看着终端 , 而且终端也只能保留最近的内容 除了程序本身可以有对于日志的处理之外 我们也可以将程序向终端的输出重定向到指定的文件里面 使用`>`和`>>`可以实现重定向 前者表示始终覆盖目标文件 , 后者表示如果目标文件存在则执行追加操作 , 不会覆盖 ```bash # 执行java程序并将输出写入到当前目录的output.txt文件当中 java -jar demo.jar > ./output.txt ``` 当然有些程序会在终端打印大量无意义的内容 我们如果想把这些输出直接丢弃 可以使用`/dev/null`作为目标位置 这是个并不存在的虚拟位置 , 定向到这里相当于是把输出内容直接丢弃 , 避免占用磁盘空间 ```bash command > /dev/null 2>&1 # 1表示标准输出 2表示标准错误输出 # 2>&1表示将标准错误输出重定向到标准输出, 这样两者都会被丢弃 ``` #### 与cat的配合使用 cat既然表示连结 , 那么与输出重定向配合使用 , 就可以实现对于压缩分卷的结合了 ```bash # 注意分卷的顺序 cat data.z01 data.z02 data.zip > xdata.zip # 将分卷结合成一个文件之后就可以执行解压了 unzip xdata.zip ``` ### grep 全称是Global Regular Expression Print, 全局正则表达式输出 这个命令的作用是执行全文检索 ``` # 在a.txt当中搜索str1字符串 grep "str1" a.txt # 在当前目录下递归检索所有文件搜索str1字符串 grep -r "str1" ./ ``` 当然不限于固定的字符串, 也可以使用正则表达式 #### 管道符"|" 格式 : 命令A|命令B 作用是将命令A的输出结果作为命令B的操作对象 比如结合`grep`可以对繁杂的输出结果进行过滤 ```bash # 查询当前运行的进程, 并过滤包含tomcat关键字的行 ps ax | grep tomcat ``` 比如`wc -l`可以用来统计行数 ``` # 统计当前目录下总共有多少文件 ls -l | wc -l ``` 因为`ls -l`的输出是逐行输出当前目录下每个文件的详细信息 , 所以统计出的行数实际上就是文件数量了