Linux命令学习
仅记录一些常用的案例,不对具体的命令参数进行记录,繁琐且在网络上就能很方便查到。
重定向符号
符号 | 含义 |
---|---|
重定向:将数据传到其他地方 | |
> | 输出覆盖重定向 |
>> | 输出追加重定向 |
<或者<< | 输入重定向 |
举例
1.读取文件内容并覆盖写入另一个文件中。
cat dy.txt > ks.txt
2.读取文件内容并追加写入
cat dy.txt >> ks.txt
3.重定向写入符
cat < ks.txt #把文件中数据发送给cat命令读取
xargs -n 3 < test.txt #将文本内容拆分成多行(每行为3 )
# xargs需要等待输入
4.非交互式写入文件内容
cat >> gushi.txt <<EOF
> 飞流直下三千尺
> 疑是银河落九天
> EOF
cat命令
Linux cat 命令 用于查看纯文本文件内容(内容较少的),是单词concatenate的缩写,指的是连接多个文件且打印到屏幕或重定向到文件中。
功能 | 说明 |
---|---|
查看文件内容 | cat file.txt |
多个文件合并 | cat file.txt file2.txt > file3.txt |
非交互式编辑或追加文件内容 | cat >> gushi.txt <<EOF > 飞流直下三千尺 > 疑是银河落九天 > EOF |
清空文件内容【慎用】 | cat /dev/null > file.txt 【/dev/null是linux的黑洞文件】 |
举例
1.查看文件内容
cat test.txt
cat file.txt file2.txt
-b 对非空行显示行号
-n 对所有行显示行号
2.合并多个文件,写入新的文件中
cat douyin.txt gushi.txt > ./new.txt #new.txt可以是原先不存在的
3.非交互式写入文件内容
cat >> gushi.txt <<EOF
> 飞流直下三千尺
> 疑是银河落九天
> EOF
4.清空文件
echo > gushi.txt #把空行覆盖写入文件,但是会留下一个空行
管道符|
可以用于对字符串进行二次过滤。
查看gushi.txt文件的内容,并对内容进行二次过滤,找出含有黄河的行。
[wg@localhost test]$ cat gushi.txt | grep "黄河"
黄河入海流
grep命令
Linux grep 命令 用于查找文件里符合条件的字符串或正则表达式。
more和less命令
Linux more 命令 用于分屏查看文本内容。
more file.txt #分屏显示文件内容
按enter是下一行
空格向下滚动一个屏幕
=显示行号
按q是退出
head和tail命令
Linux head 命令 用于查看文件开头的n行。
head -5 file.txt
查看前五行
不加参数默认10行
tail默认查看最后的10行,也可以指定行数。
tail file.txt
tail -2 file.txt #显示后2行
-f 实时刷新文件变化
tail -f file.txt
-F会不断打开文件,可以使用在文件还没被创建的情况下的监视
cut命令
Linux cut 命令 用于显示每行从开头算起 num1 到 num2 的文字。
1.截取每一行第4个字符
cut -c 4 file.txt
2.截取第4-6个字符
cut -c 4-6 file.txt
3.截取第5和7个字符
cut -c 5,7 file.txt
4.截取一个范围内的字符,使用首尾
cut -c -8 file.txt
cut -c 7- file.txt
5.指定分隔符,截取字符
cut -d ":" -f 3 file.txt #-d搭配-f使用,-d指定分隔符,-f指定截取的区域。以冒号为分隔符,找出第三个区域的内容
cut -d ":" -f 7- file.txt
cut -d ":" -f -8 file.txt
sort命令
Linux sort 命令 用于将文本文件内容加以排序,然后输出结果。
这个排序只是在显示输出上,并没有对原来的文件进行更改。
1.对文件的第一个字符排序,默认从小到大
sort -n file.txt
2.对排序结果进行反转
sort -n -r file.txt
3.排序结果去重
sort -u file.txt
4.指定分隔符,对指定区域进行排序
sort -n -t "." -k 4 ip.txt #对ip.txt文件定义.为分隔符,对第4块区域从小到大进行排序。
uniq命令
Linux uniq 命令 用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
1.去除连续的重复行
uniq file.txt
2.结合sort使用,去重
sort -n file.txt|uniq
3.统计每一行的重复次数
sort -n file.txt|uniq -c
4.只找出文件的重复行,且统计出现次数
sort -n file.txt|uniq -d -c
5.找出只出现过一次的行
sort -n file.txt|uniq -c -u
wc命令
Linux wc 命令 用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数。
1.统计文件行数
wc -l file.txt
2.统计单词数量
echo "apple huawei vivo oppo xiaomi" |wc -w
3.统计字符数量
[wg@localhost test]$ echo "apple" |wc -m
6
##为什么是6而不是5?因为字符串结尾有$符。$符号时即代表字符串结束。
4.输出最长行的字符数
cat file.txt |wc -L
5.不仅可以用于统计文件。输出当前有多少终端登录。
[wg@localhost test]$ who | wc -l
3
tr命令
Linux tr 命令 用于转换或删除文件中的字符。tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
1.替换标准输入的大小写
[wg@localhost test]$ echo "my name is wg" | tr '[a-z]' '[A-Z]'
MY NAME IS WG
[wg@localhost test]$ echo "my name is wg" | tr a-z A-Z
MY NAME IS WG
2.使用-d参数,删除特定内容
echo "my name is wg and i am 24 years old" | tr -d 'a-z'
24
echo "my name is wg and i am 24 years old" | tr -d a-z
24
echo "my name is wg and i am 24 years old" | tr -d '0-9'
my name is wg and i am years old
# 经过尝试,其中的字符集单引号可以不写,但是不方便阅读。
3.把文件当作标准输入进行字符替换。
[wg@localhost test]$ tr 'i' 'I' < name.txt
my name Is wg
4.使用-s参数缩减连续重复的字符成指定的单个字符
[wg@localhost test]$ echo "iii amm a looosser" | tr -s 'imos'
i am a loser
文件搜索 find命令和xargs命令
首先了解一下stat命令:Linux stat 命令用于显示 inode 内容。
Linux find 命令 用于在指定目录下查找文件和目录。它可以使用不同的选项来过滤和限制查找的结果。
1.全盘搜索
find / -maxdepth 2 -name "*.txt" #从根目录开始全盘搜索最大目录深度为2的.txt结尾的内容
2.按类型搜索
find . -type f -name "[0-9]*" #在当前目录查找名字以数字开头的文件
find . -type d -name "[0-9]*" #在当前目录查找名字以数字开头的目录
3.查找并删除
find . -type f -name "[0-9]*" -delete #在当前目录查找名字以数字开头的文件并删除
4.按时间查找
find . -type f -atime -2 #在当前目录查找访问时间在两天以内被访问的文件
find . -type f -atime 2 #在当前目录查找访问时间恰好在两天前被访问的文件
find . -type f -atime +2 #在当前目录查找访问时间超过两天内被访问的文件
5.按文件大小查找
find . -maxdepth 2 -type f -size +50M #在当前目录查找大小在50M以上的文件,且搜索最大目录深度为2
6.指定忽略的目录进行搜索,需要多个参数配合
find . -path "./test_find" -prune -o -name "*.txt" -print #在当前目录中除了指定路径test_find以外的目录搜索,名字中以.txt结尾的内容并输出
7.使用-ok参数删除找到的文件
find . -type f -name "*.txt" -ok rm {} \; #-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令
Linux xargs 命令
xargs(英文全拼: extended arguments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
1.xargs 也可以将单行或多行文本输入转换为其他格式
[wg@localhost test]$ cat number.txt
1 2 3 4 5
6 7 8 9 10
11 12
[wg@localhost test]$ xargs < number.txt
1 2 3 4 5 6 7 8 9 10 11 12
[wg@localhost test]$ xargs -n 3 < number.txt
1 2 3
4 5 6
7 8 9
10 11 12
#多行变单行出个数
#限制每行输出个数
2.将查找的内容移动到tmptxt目录下,{}指代查找到的内容。
find . -name "*.txt" | xargs -i mv {} tmptxt/
3.将查找的内容移动到tmptxt目录下,将找到的内容命名为alltxt。
find . -name "*.txt" | xargs -I alltxt mv alltxt tmptxt/
标签:wg,文件,cat,命令,file,Linux,txt
From: https://www.cnblogs.com/ganwong/p/17866876.html