Linux学习笔记(1)
基本语法
September 10, 2022
前提介绍:
Linux分成主要(::此处不包括stderr等其他区域::)两大区域:stdin,stdout
传统情况下,stdin是用户的键盘输入,stdout是命令语句执行结束后返回的信息
利用**“ | ”符号来实现信息流向的改变:😗*,就是所谓的“redirect”
将stdout的信息,通过“ | ”符号,进行流向的改变,从而驱动另一个命令语句的运行
Linux命令操作的整体架构
常用命令
wc
wc -l → wc -w → wc -c
分别打印文件的行数,单词数,字符数
注意:每行最后都会有一个隐藏的字符,所以在统计时候会出现字符加1的情况
ls
ls -1 → 以列的形式进行列举
head
默认输出文件的前10行
head -n5 → 输出文件的前5行
cut
功能:整体地进行切片
两种形式:
-f | 以分割符为计数单位,进行切片,例如:cut -f2 将第一与第二个分隔符之间的内容打印 |
---|---|
cut -f1,3 → 将第一个与第三个分割的内容进行输出cut -f1-3 → 将第一到第三的分割内容进行输出 | |
cut -f1-3 → 将第一到第三的分割内容进行输出 | |
- c | 以字符的形式进行切片,对于每行都是一样 |
对于第一段的命令,成功提取出人名,但是名字是一个整体,中间是逗号分割,如果单纯使用cut(cut默认以tap为分割符),无法提取“名”,故通过“-d,”将分割符变换为“,”再利用cut -f1 即可提取“名”
grep
功能:在文件中查找指定字符位置,并打印该行
grep | grep Nutshell animals.txt | 在animals.txt文件中查找Nutshell所在行,并将其打印出来 |
---|---|---|
grep -v | grep -v Nutshell animals.txt | 在animals.txt文件中查找不包含Nutshell字符所在的行 |
统计路径下共有多少附属的directory
- ls -l 列出路径下的所有文件
- cut -c1 截取每个文件的首个字符
- gred d 保留字符为d所在的行
- wc -l 统计总计多少行
sort
sort | 以default的形式进行排序,默认按照字母顺序进行 |
---|---|
sort -n | 按照数字的大小进行排序 |
sort -r | 倒序排列 |
sort -nr | 即-n与-r的结合使用,功能:按照数字进行倒序排列 |
- cat 将路径下的所有文件全部显示
- cut -d:-f1 将分割符变为“:”并提取分隔符的第一段文字
- sort 按照字母顺序进行升序排列
uniq
功能:默认剔除相邻重复的字符
常常与sort联合使用
uniq | 剔除相邻的重复字符 |
---|---|
uniq -c | 统计相邻的重复字符 |
可以看出uniq -c 统计了相邻的重复个数
第三行出现的原因是因为A的相邻位置没有重复的字符,所以才会显示为个数为1
cut -f1 grades 提取成绩文件中第一个分割符对应的字段
sort将等级按照字母顺序进行排序
uniq -c 因为之前的排序,所以此处的功能升级为统计每个等级的个数
sort -nr 按照降序的规则,获取出现次数最多的等级
查找duplicated文件
- md5sum *.jpg 获取所有的jpg文件 的md5码,每一行后面会跟着详细的文件名
- cut -c1-32 截取1到32的字符,剔除文件名
- 利用sort对md5码进行排序,将所有重复文件聚在一起
- uniq -c 获取重复文件个数
- sort -nr 对重复文件个数进行倒序排列