blog-web/source/_posts/linux/1.1 linux常用命令与技巧(1).md
结发受长生 0d8a9f6739 initial
2018-05-06 01:00:35 +08:00

3.1 KiB

title: 1.1 linux常用命令与技巧(1) date: 2018-5-3 00:52:22 tags: linux categories: - linux

md5sum与sha1sum

用于使用hash算法生成文件的摘要信息 , 常用于文件完整性的校验

# 生成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

代表了连结 , 通常也可以用它输出单个文件的内容

# 输出a.txt的内容(带行号)
cat -n a.txt

# 将a.txt b.txt的内容连结输出
cat a.txt b.txt

输出重定向

对于程序的输出 , 我们通常不能一直看着终端 , 而且终端也只能保留最近的内容 除了程序本身可以有对于日志的处理之外 我们也可以将程序向终端的输出重定向到指定的文件里面 使用>>>可以实现重定向 前者表示始终覆盖目标文件 , 后者表示如果目标文件存在则执行追加操作 , 不会覆盖

# 执行java程序并将输出写入到当前目录的output.txt文件当中
java -jar demo.jar > ./output.txt

当然有些程序会在终端打印大量无意义的内容 我们如果想把这些输出直接丢弃 可以使用/dev/null作为目标位置 这是个并不存在的虚拟位置 , 定向到这里相当于是把输出内容直接丢弃 , 避免占用磁盘空间

command > /dev/null 2>&1
# 1表示标准输出 2表示标准错误输出
# 2>&1表示将标准错误输出重定向到标准输出, 这样两者都会被丢弃

与cat的配合使用

cat既然表示连结 , 那么与输出重定向配合使用 , 就可以实现对于压缩分卷的结合了

# 注意分卷的顺序
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可以对繁杂的输出结果进行过滤

# 查询当前运行的进程, 并过滤包含tomcat关键字的行
ps ax | grep tomcat

比如wc -l可以用来统计行数

# 统计当前目录下总共有多少文件
ls -l | wc -l

因为ls -l的输出是逐行输出当前目录下每个文件的详细信息 , 所以统计出的行数实际上就是文件数量了