外链论坛

 找回密码
 立即注册
搜索
查看: 28|回复: 1

Linux达人必须:一文把握全网最全文件操作命令!120+命令

[复制链接]

2990

主题

312

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99099230
发表于 2024-8-22 11:14:31 | 显示全部楼层 |阅读模式

文件和目录操作

cd /home:进入 /home 目录。

cd ..:返回上级目录。

cd ../..:返回上两级目录。

cd:返回个人主目录。

cd ~tony:进入指定用户(如 tony)的主目录 /home/tony。

cd -:返回上一次所在目录。

pwd:表示当前工作目录。

ls -l:以仔细形式查看文件和目录信息(运用长列表格式输出)。

ls -lt:运用长列表格式输出,按时间排序,最先输出最新的。

ls -lhS:运用长列表格式输出,以 (1K, 234M, 2G) 的形式输出文件体积体积排序,最先输出最大的。

ls - la:表示包含隐匿文件在内的所有文件。

tree:以树状格式列出目录的内容。

tree -d .:只表示当前目录的目录结构,不表示目录下的文件。

mkdir dir1:创建名为 dir1 的目录。

mkdir dir1 dir2 dir3:同期创建多个目录。

mkdir -p /tmp/dir1/dir2:创建多级目录树。

rm -f file1:删除名为 file1 的文件。

rm -rf dir1:递归删除名为 dir1 的目录及其内容。

rmdir dir1:删除名为 dir1 的空目录

mv old_dir new_dir:重命名或移动目录(可操作文件)。

cp file1 file2:复制文件。

cp dir/* .:复制指定目录下的所有文件到当前目录。

cp -a /tmp/dir1 .:复制全部目录到当前目录。

cp -a src_dir new_dir:复制全部目录。

ln -s /path/to/file1 lnk1:创建指向 file1 的软链接(符号链接)。

ln /path/to/file1 lnk2:创建指向 file1 的硬链接。

touch existing_file.txt 将(已存在的)文件的拜访时间和修改时间更新为当前系统时间。

touch file.txt:创建一个名为 file.txt 的新文件,倘若文件已然存在,则不会有任何内容变化,只会更新文件的时间戳。

file file1 file2 file3:识别和报告文件类型,经过检测文件的二进制内容来推测文件的格式或内容类型,而不是依赖于文件名或扩展名。

查看文件内容

cat file1:正向查看文件内容。

tac file1:反向查看文件内容。

more file1:查看长文件内容,支持翻页,但不可逐行向上浏览。

less file1:类似 more 命令,支持前后翻页查看,供给更加多的交互性,例如能够搜索文本、到文件的任意位置,乃至支持高亮表示搜索结果。

head -5 file1:查看文件前 5 行。

tail -5 file1:查看文件最后 5 行。

tail -f /var/log/messages:动态跟踪文件尾部新增内容。

wc example.txt:表示文件 example.txt 的行数、单词数和字节数。

wc -l log.txt:只表示文件 log.txt 的行数。

wc -l file1.txt file2.txt file3.txt:计算多个文件的总行数。

搜索文件

find / -name file1:从根目录起始查询名为 file1 的文件或目录。

find / -user tony:查询属于用户 tony 的文件和目录。

find /home/tony -name "*.bin":在 /home/tony 目录中查询扩展名为 bin 的文件。

find /usr/bin -type f -atime +100:查询过去 100 天内未被拜访过的可执行文件。

find /home/tony -type f -mtime -10:查询 10 天内被创建或修改过的文件。

find / -xdev -name "*.cpp":仅在当前文件系统中查询 .cpp 文件。

locate "*.sh":查询扩展名为 .sh 的文件(需先运行 updatedb 命令)。

whereis zsh:表示 zsh 命令的二进制文件、源代码和手册页位置。

which zsh:表示 zsh 命令的完整路径。

文本处理

cat file* | command > result.txt:合并多个文件并经过命令(如 sed, grep, awk 等)处理再将结果写入新文件。

grep 命令示例

grep Aug /var/log/messages:在指定文件中查询包括关键词 Aug 的行。

grep ^Aug /var/log/messages:查询以 Aug 开头的行。

grep [0-9] /var/log/messages:查询包括数字的行。

grep Aug -R /var/log/*:在指定目录及其子目录中递归查询包括关键词 Aug 的行。

sed 命令示例

sed s/string1/string2/g example.txt:替换 example.txt 中 string1 为 string2。

sed /^$/d example.txt:删除 example.txt 中的空白行。

sed -n 1d result.txt:从 result.txt 中删除第1行。

sed -n /string1/p example.txt:打印输出包括 string1 的行。

sed -i.bak s/[ \t]*$// example.txt:删除行尾空白字符。

sed -i.bak s/string1//g example.txt:从文档中删除所有 string1。

sed -i.bak s/00*/0/g example.txt:用单个零替换连续多个零。

sed -n 1,5p;5q example.txt:打印输出文件的前五行。

sed -n 5p;5q example.txt:打印输出文件的第五行。

awk 命令示例

cat -n example.txt:输出文件内容时表示行号。

cat example.txt | awk NR%2==1:删除 example.txt 中的所有偶数行。

echo a b c | awk {print $1}:打印输出一行的第1个字段。

echo a b c | awk {print $NF}:打印输出一行的最后一个字段。

echo a b c d | awk {print $1,$3}:打印输出一行的第1和第三个字段。

其他命令

paste file1 file2:逐行合并两个文件或两栏的内容。

paste -d + file1 file2:逐行合并两个文件或两栏的内容,中间用 + 分隔。

sort data.txt:对文件 data.txt 的内容按默认方式进行排序,并将结果打印输出。

sort -n numbers.txt:根据数值体积对含有数字的文件进行排序。

sort -t , -k 2 data.csv:根据逗号分隔的第二列内容进行排序。

uniq input.txt:删除文件 input.txt 中相邻的重复行,并将结果打印输出。

uniq -c input.txt:输出文件中重复行及其显现次数。

uniq -d input.txt:只输出文件中连续重复显现的行内容。

sort input.txt | uniq -u:输出文件中只显现一次的行内容。

字符设置和文件格式转换

iconv -l:列出所有已知的字符集编码。

iconv -f UTF-8 -t GBK -o output_file.gbk input_file.utf8:转换文件编码。

dos2unix filedos.txt fileunix.txt:将 MS-DOS 格式文本文件转换为 UNIX 格式。

unix2dos fileunix.txt filedos.txt:将 UNIX 格式文本文件转换为 MS-DOS 格式。

recode ..HTML < page.txt > page.html:将文本文件转换为 HTML 格式文件。

recode -l | more:表示所有支持转换的格式。

管理文件/目录的权限

chmod - 改变文件或目录的权限:

chmod ugo+rwx directory1:为目录 directory1 的所有者(u)、群组(g)和其它用户(o)赋予读(r)、写(w)和执行(x)权限。

chmod go-rwx directory1:撤销群组和其它用户对目录 directory1 的读、写、执行权限。

chown - 改变文件或目录的所有权:

chown user1 file1:将文件 file1 的所有权改为用户 user1。

chown -R user1 directory1:递归地将目录 directory1 及其下所有文件和子目录的所有权改为用户 user1。

chgrp - 改变文件或目录所属的群组:

chgrp group1 file1:将文件 file1 所属的群组改为 group1。

chown user1:group1 file1:同期更改文件 file1 的所有人和群组属性,将所有人改为 user1,群组改为 group1。

执行权限的增删

chmod +x /path/to/file:为所有者、群组和其他用户增多执行权限。

chmod -x /path/to/file:为所有者、群组和其他用户移除执行权限。

chmod u+x /path/to/file:只为所有者增多执行权限。

chmod g+x /path/to/file:只为所属群组增多执行权限。

chmod o+x /path/to/file:只为其他用户增多执行权限。

chmod ug+x /path/to/file:同期为所有者和所属群组增多执行权限。

chmod =r /path/to/file:将文件设为只读文件。

chmod ug=wx /path/to/file:为所有者和所属群组赋予写和执行权限,同期取消读权限。

文件特殊属性设置与查看

chattr +a file1:设置 file1 文件为追加模式(append-only),只准许以追加方式写入,不准许修改或删除原有内容。

chattr +c file1:准许内核自动对 file1 文件进行透明压缩和解压(仅适用于支持这种特性的文件系统)。

chattr +d file1:标记 file1 文件在进行文件系统备份(如运用 dump 工具)时被忽略。

chattr +i file1:将 file1 文件设置为不可变(immutable),禁止任何对该文件的修改、删除、重命名或链接操作。

chattr +s file1:将 file1 文件设置为安全删除(secure deletion),删除该文件时实质上会重命名并在回收站中保存一段时期,便于后续可能的恢复。

chattr +S file1:设置 file1 文件为同步模式,当应用程序对文件执行写操作时,系统会立刻将改动同步到磁盘上。

chattr +u file1:准许将来恢复已被删除的 file1 文件(undelete attribute)。

lsattr file1:表示 file1 文件的所有特殊属性。这些特殊属性有助于加强文件系统的安全性,并在特定场景下优化文件的存储和处理方式。

打包与压缩/解压缩

Bzip2 压缩与解压:

解压 bz2 格式文件

bunzip2 file1.bz2

压缩文件至 bz2 格式

bzip2 file1

Gzip 压缩与解压:

解压 gz 格式文件

gunzip file1.gz

压缩文件至 gz 格式

gzip file1

最大压缩率压缩文件至 gz 格式

gzip -9 file1

RAR 压缩与解压:

创建 RAR 压缩包

rar a file1.rar test_file

rar a file1.rar file1 file2 dir1

解压 RAR 压缩包

rar x file1.rar

unrar x file1.rar

Tar 打包与解包(不压缩):

创建非压缩 tar 包

tar -cvf archive.tar file1

tar -cvf archive.tar file1 file2 dir1

查看 tar 包内容

tar -tf archive.tar

解压 tar 包

tar -xvf archive.tar

tar -xvf archive.tar -C /tmp

Tar 与压缩工具结合压缩与解压:

创建并压缩至 bzip2 格式

tar -cvfj archive.tar.bz2 dir1

解压 bzip2 格式的 tar 包

tar -xvfj archive.tar.bz2

创建并压缩至 gzip 格式

tar -cvfz archive.tar.gz dir1

解压 gzip 格式的 tar 包

tar -xvfz archive.tar.gz

Zip 压缩与解压:

创建 zip 格式压缩包

zip file1.zip file1

zip -r file1.zip file1 file2 dir1

解压 zip 格式压缩包

unzip file1.zip

参考文档:

man pages

关联阅读:

Linux命令达人:文件目录秒速定位技巧!

在Linux环境下有效解压RAR文件的仔细指南

秒杀实时搜索!揭秘locate命令比find命令查询速度提高成百上千倍的原理

在bash中"cat << EOF"是怎样工作的

怎样将一个大的文本文件拆分为行数相等的小文件

怎样将"find"命令结果存储为Bash中的数组

带有-i选项的sed命令在Linux上执行成功,但在MacOS上失败

更加多好文请关注↓

举荐点击↙

回复

使用道具 举报

2948

主题

2万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569305
发表于 2024-10-8 02:06:20 | 显示全部楼层
祝福你、祝你幸福、早日实现等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-9 04:59 , Processed in 0.068897 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.