首页 > 系统相关 >Linux文件管理命令

Linux文件管理命令

时间:2023-11-30 11:25:17浏览次数:51  
标签:wg 文件 cat 命令 file Linux txt

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

相关文章

  • Docker的常用命令
    Docker的常用命令主要包括以下几类:Docker进程:启动Docker服务:dockerstart关闭Docker服务:dockerstop重启Docker服务:dockerrestart镜像操作:查看镜像列表:dockerimages从镜像仓库中检索镜像:dockersearchxxx下载镜像:dockerpullxxx删除镜像:dockerrmixxx通过容......
  • Linux下实现文件系统(占坑)
    前提知识:先要摸清楚vfs是啥玩意。实现文件系统有两种方式:直接写LinuxKernelModule,另一种是基于现有fuse内核模块,在用户态实现与fuse内核模块交互,在此基础上还可以实现网络分布式文件系统。https://www.kernel.org/doc/html/next/filesystems/vfs.htmlhttps://wushifublog.co......
  • C++中如何使用内存文件
    #include<iostream>#include<strstream>usingnamespacestd;intmain(){charszBuf[16]={"helloworld!"};std::strstreambufmemo(szBuf,sizeof(szBuf));std::istreamss(&memo);ss.seekg......
  • 使用Rkhunter检测linux渗透
    目前可以发现大多数已知的rootkits和一些嗅探器以及后门程序。它通过执行一系列的测试脚本来确认服务器是否已经感染rootkits,比如检查rootkits使用的基本文件,可执行二进制文件的错误文件权限,检测内核模块等等。使用yum或者apt直接安装rkhunter--checkall可以使用unhide查看......
  • SFTP文件本地及远程创建,上传,下载,删除,获取脚本
    关键参数:sftp_route:远程路径local_route:本地路径(windows需要r解析)header:txt表头字段(列表方式)data:txt内容信息(列表嵌套列表方式)filename_success:是否创建success文件默认为falsefilename:文件名称(无需带后缀默认为txt文件) 注意:上传文件需要带文件名称下载只需要到文件路......
  • Python | 将本地文件上传到远程服务器
    在Python中,可以使用paramiko库来通过SSH进行文件的传输。首先,你需要安装paramiko库,可以使用以下命令进行安装:pipinstallparamiko然后,你可以使用以下Python脚本进行文件传输:此脚本使用SFTP协议进行文件传输。在SFTP的上下文中,你可以使用put方法将本地文件上传到远程服务器。import......
  • linux系统运维-基础
    Linux发展史与安装一、Linux发展史1、Linux前身-Unix1968年 Multics项目MIT、Bell实验室、美国通用电气有限公司走到了一起,致力于开发Multics项目。到后期由于开发进度不是很好,MIT和Bell实验室相继离开这个项目的开发,最终导致项目搁浅。 1970年(Unix元年,时间戳)  Unix诞......
  • Windows下读文件二进制模式和文本模式的区别
    前段时间,碰到了一个奇怪的事情,我实现了一个读某文件的类,原本这个文件是以二进制写的,读的时候没太在意,将模式少写了一个“b”,变成了文本模式_tfopen_s(&pFile,m_file,_T("r"))测试了好些文件都没有问题,直到有一天,一同事反应读取函数有问题,数据被截断了。我看了半天,百思不得其......
  • linux命令使用方法(不断更新)
    find/-inametest    #查找所有/目录下文件名为test的文件find/type-f-mtime+30-name"文件名或表达式"   #查找/目录下类型为文件时间为30天以前-name“”中的文件find/type-d-mtime+30    #查找/目录下类型为目录时间为30天以前的目录find/ty......
  • Linux提权3
    本次学习Linux计划任务提权实验原理 实验过程首先攻击机登录普通用户 查看计划任务情况可以看到cleanup.py脚本每一分钟执行一次脚本文件位置/home/cleanup/1.sh查看脚本权限,任意用户都有读写和执行权限这个时候想办法修改脚本文件内容,通过脚本的定时任务执行恶意操......