linux常用命令及解释大全(二)

目录

前言

一、文件的权限

二、文件的特殊属性

三、打包和压缩文件

四、查看文件内容

五、文本处理

[5.1 grep](#5.1 grep)

[5.2 sed](#5.2 sed)

[5.3 其它](#5.3 其它)

总结



前言

本篇文章接linux常用命令及解释大全(一)继续介绍了一部分linux常用命令,包括文件的权限,文件的特殊属性,打包和压缩文件,查看文件内容,文本处理这五个部分。linux常用命令及解释详情请看正文。


  • 使用 "+" 设置权限,使用 "-" 用于取消

一、文件的权限

  1. ls -lh:列出文件的详细信息,包括文件权限。

  2. ls /tmp | pr -T5 -W$COLUMNS:将/tmp目录下的文件按照5栏的格式在终端中显示。

  3. chmod ugo+rwx directory1:设置目录directory1的所有者、群组和其他人的读、写和执行权限。

  4. chmod go-rwx directory1:取消目录directory1的群组和其他人的读、写和执行权限。

  5. chown user1 file1:将文件file1的所有者更改为user1。

  6. chown -R user1 directory1:将目录directory1的所有者和其中所有文件的所有者都更改为user1。

  7. chgrp group1 file1:将文件file1的群组更改为group1。

  8. chown user1:group1 file1:将文件file1的所有者和群组同时更改为user1和group1。

  9. find / -perm -u+s:列出系统中所有使用了SUID权限的文件。

  10. chmod u+s /bin/file1:给文件file1设置SUID权限,允许执行该文件的用户具有与所有者相同的权限。

  11. chmod u-s /bin/file1:禁用文件file1的SUID权限。

  12. chmod g+s /home/public:给目录/public设置SGID权限,类似于SUID,但针对目录。

  13. chmod g-s /home/public:禁用目录/public的SGID权限。

  14. chmod o+t /home/public:给文件/public设置粘贴(STIKY)权限,只允许合法的所有者删除文件。

  15. chmod o-t /home/public:禁用目录/public的粘贴(STIKY)权限。

二、文件的特殊属性

  1. chattr +a file1:设置文件 file1 为只追加属性,只允许以追加方式读写文件,禁止修改和删除文件。

  2. chattr +c file1:设置文件 file1 可以被内核自动压缩和解压缩(需要特定的文件系统和工具支持)。

  3. chattr +d file1:设置文件 file1 在进行文件系统备份时,dump 程序将忽略该文件。

  4. chattr +i file1:设置文件 file1 为不可变属性,即不能被删除、修改、重命名或链接。

  5. chattr +s file1:设置文件 file1 可以被安全地删除,即删除后不会被恢复。

  6. chattr +S file1:使系统在应用程序对文件 file1 执行写操作后,立即将修改的结果写到磁盘。

  7. chattr +u file1:设置文件 file1 允许恢复,即如果文件被删除,系统将允许在以后恢复该被删除的文件。

  8. lsattr:显示文件的特殊属性。

三、打包和压缩文件

  1. bunzip2 file1.bz2:解压名为 'file1.bz2' 的文件。

  2. bzip2 file1:压缩名为 'file1' 的文件。

  3. gunzip file1.gz:解压名为 'file1.gz' 的文件。

  4. gzip file1:压缩名为 'file1' 的文件。

  5. gzip -9 file1:以最大程度压缩的方式压缩 'file1'。

  6. rar a file1.rar test_file:创建名为 'file1.rar' 的压缩包,其中包含 'test_file'。

  7. rar a file1.rar file1 file2 dir1:同时压缩 'file1'、 'file2' 和目录 'dir1' 到 'file1.rar'。

  8. rar x file1.rar:解压名为 'file1.rar' 的压缩包。

  9. unrar x file1.rar:解压名为 'file1.rar' 的压缩包。

  10. tar -cvf archive.tar file1:创建一个非压缩的 tarball,将 'file1' 放入其中。

  11. tar -cvf archive.tar file1 file2 dir1:创建一个包含 'file1'、 'file2' 和 'dir1' 的档案文件。

  12. tar -tf archive.tar:显示 tar 包中的内容。

  13. tar -xvf archive.tar:解压 tar 包。

  14. tar -xvf archive.tar -C /tmp:将压缩包解压到 /tmp 目录下。

  15. tar -cvfj archive.tar.bz2 dir1:创建一个使用 bzip2 格式压缩的 tar 包。

  16. tar -jxvf archive.tar.bz2:解压使用 bzip2 格式压缩的 tar 包。

  17. tar -cvfz archive.tar.gz dir1:创建一个使用 gzip 格式压缩的 tar 包。

  18. tar -zxvf archive.tar.gz:解压使用 gzip 格式压缩的 tar 包。

  19. zip file1.zip file1:创建一个 zip 格式的压缩包,其中包含 'file1'。

  20. zip -r file1.zip file1 file2 dir1:将多个文件和目录同时压缩成一个 zip 格式的压缩包。

  21. unzip file1.zip:解压 zip 格式的压缩包。

四、查看文件内容

  1. cat file1:从第一个字节开始正向查看文件 'file1' 的内容。

  2. tac file1:从最后一行开始反向查看文件 'file1' 的内容。

  3. more file1:查看一个长文件 'file1' 的内容,可以逐页浏览。

  4. less file1:类似于 'more' 命令,但允许使用反向操作,可以在文件中进行正向和反向操作。

  5. head -2 file1:查看文件 'file1' 的前两行。

  6. tail -2 file1:查看文件 'file1' 的最后两行。

  7. tail -f /var/log/messages:实时查看被添加到文件 '/var/log/messages' 中的内容,适用于日志文件等需要实时监控的文件。

五、文本处理

5.1 grep

这些命令是使用管道、标准输入(STDIN)和标准输出(STDOUT)进行文本操作的:

  1. 将命令应用于 file1 的内容,并将处理结果输出到 result.txt 文件中:

    复制代码
    cat file1 | command( sed, grep, awk, 等等...) > result.txt
  2. 将命令应用于 file1 的内容,并将处理结果附加到已有的 result.txt 文件末尾:

    复制代码
    cat file1 | command( sed, grep, awk, 等等...) >> result.txt
  3. 在文件 '/var/log/messages' 中查找包含关键词 "Aug" 的行:

    复制代码
    grep Aug /var/log/messages
  4. 在文件 '/var/log/messages' 中查找以 "Aug" 开头的词汇:

    复制代码
    grep ^Aug /var/log/messages
  5. 选择在文件 '/var/log/messages' 中包含数字的所有行:

    复制代码
    grep [0-9] /var/log/messages
  6. 在目录 '/var/log' 及其子目录中递归搜索字符串 "Aug":

    复制代码
    grep Aug -R /var/log/*

5.2 sed

这些 sed 命令能够对文本文件进行替换、删除、查找等操作:

  1. 将 example.txt 文件中的 "string1" 替换为 "string2":

    复制代码
    sed 's/stringa1/stringa2/g' example.txt
  2. 从 example.txt 文件中删除所有空白行:

    复制代码
    sed '/^$/d' example.txt
  3. 从 example.txt 文件中删除所有带有零个或多个空格开头的注释行,以及所有空白行:

    复制代码
    sed '/ *#/d; /^$/d' example.txt
  4. 将输入字符串 "esempio" 转换为大写字母:

    复制代码
    echo 'esempio' | tr '[:lower:]' '[:upper:]'
  5. 从 result.txt 文件中排除第一行:

    复制代码
    sed -e '1d' result.txt
  6. 只查看 example.txt 文件中包含关键词 "string1" 的行:

    复制代码
    sed -n '/stringa1/p' example.txt
  7. 从 example.txt 文件中删除每一行末尾的零个或多个空白字符:

    复制代码
    sed -e 's/ *$//' example.txt
  8. 从文档中删除所有的 "string1" 词汇,保留剩余的内容:

    复制代码
    sed -e 's/stringa1//g' example.txt
  9. 查看 example.txt 文件中从第一行到第五行的内容:

    复制代码
    sed -n '1,5p;5q' example.txt
  10. 查看 example.txt 文件中的第五行内容:

    复制代码
    sed -n '5p;5q' example.txt
  11. 将 example.txt 文件中的每个连续的零替换为单个零:

    复制代码
    sed -e 's/00*/0/g' example.txt

5.3 其它

这些命令可以帮助你进行文件的处理、比较和合并等操作:

  1. 显示 file1 文件的内容,并在每行前面标记行号:

    复制代码
    cat -n file1
  2. 删除 example.txt 文件中的所有偶数行。使用 awk 命令筛选出奇数行:

    复制代码
    cat example.txt | awk 'NR%2==1'
  3. 在字符串 "a b c" 中,使用 awk 命令打印第一列(以空格分隔的单词):

    复制代码
    echo a b c | awk '{print $1}'
  4. 在字符串 "a b c" 中,使用 awk 命令打印第一列和第三列:

    复制代码
    echo a b c | awk '{print $1,$3}'
  5. 将 file1 和 file2 的内容按行合并:

    复制代码
    paste file1 file2
  6. 将 file1 和 file2 的内容按行合并,并使用 "+" 字符进行分隔:

    复制代码
    paste -d '+' file1 file2
  7. 对 file1 和 file2 的内容进行排序:

    复制代码
    sort file1 file2
  8. 取出 file1 和 file2 的并集,并去除重复的行:

    复制代码
    sort file1 file2 | uniq
  9. 删除 file1 和 file2 的交集,并保留其他行:

    复制代码
    sort file1 file2 | uniq -u
  10. 取出 file1 和 file2 的交集,并仅保留同时存在于两个文件中的行:

    复制代码
    sort file1 file2 | uniq -d
  11. 比较 file1 和 file2 的内容,仅删除在 file1 中包含的行:

    复制代码
    comm -1 file1 file2
  12. 比较 file1 和 file2 的内容,仅删除在 file2 中包含的行:

    复制代码
    comm -2 file1 file2
  13. 比较 file1 和 file2 的内容,仅删除两个文件都包含的行:

    复制代码
    comm -3 file1 file2

总结

Linux命令的使用具有灵活性、高效性和强大的功能。它们能够提供快速、可自动化和高度定制的操作方式。使用Linux命令可以以低资源消耗处理大型任务,并且支持编程和批量操作。总而言之,Linux命令是一个强大的工具,能够提供高效、灵活和可定制的操作,对于计算机系统的理解和掌握非常有价值。

关注,点赞,收藏,希望友友们能一键三连哦!

相关推荐
不老刘1 分钟前
行为式验证码技术解析:滑块拼图、语序选词与智能无感知
网络安全·验证码·行为式验证码
tan180°16 分钟前
Boost搜索引擎 网络库与前端(4)
linux·网络·c++·搜索引擎
Mr. Cao code1 小时前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
抓饼先生1 小时前
Linux control group笔记
linux·笔记·bash
挺6的还2 小时前
25.线程概念和控制(二)
linux
您的通讯录好友2 小时前
conda环境导出
linux·windows·conda
代码AC不AC3 小时前
【Linux】vim工具篇
linux·vim·工具详解
码农hbk3 小时前
Linux signal 图文详解(三)信号处理
linux·信号处理
bug攻城狮3 小时前
Skopeo 工具介绍与 CentOS 7 安装指南
linux·运维·centos
宇宙第一小趴菜3 小时前
08 修改自己的Centos的软件源
linux·运维·centos