Linux高阶命令(重定向、wc、alias、gzip、bzip、tar、VIM)

哈喽,大家吼!昨天发布了Linux常用命令后犹豫要不要总结一些高阶命令,想来想去不太喜欢做事卡一半的感觉,嘿嘿所以又出了一篇,有朋友需要常用命令的看上一篇。

Linux常用命令指路:Linux 常用命令-CSDN博客


 管道符

管道符的作用是将一个命令的标准输出(stdout)重定向为另一个命令的标准输入(stdin)。这样,你可以将命令的结果⼀步步地传递给后续的命令,避免冗余的中间步骤。
语法
// A 的输出作为 B 的输入,B 的输出作为 C 的输入
   命令A | 命令B | 命令C
// 查看 passwd 文件前 5 行的信息,并编号
   cat -n /etc/passwd | head -5
/* cat -n /etc/passwd的输出是将标好行号的 passwd 文件内容显示在屏幕上,
** 将这个输出作为 head -5 的输入,即将标好行号的 passwd 文件内容显示前 5 行。
*/

// 逐页显示当前目录下的文件和目录的详细信息
   ls -l | more
/* ls -l 以长格式输出当前目录下的文件详情
** 再以 more 的形式输出
*/

tr 命令:转换形式

bc命令:将文本做运算(文本中必须包含有运算符)

echo : 将后面跟着的内容输出到屏幕上

// 将/etc/issue 的文件内容 ,进⾏转化为⼤写 ,保存到/tmp/issue.out
// 1.查看 /etc/issue
   cat /etc/issue
// 2.⼩写转⼤写
   cat /etc/issue | tr [a-z] [A-Z]
// 3.保存到/tmp/issue.out
   cat /etc/issue | tr [a-z] [A-Z] >/tmp/issue.out

// 计算1+2
// 1.输出1+2
   echo 1+2
// 2.计算输出内容
   echo 1+2 | bc

// 计算 1 加到 100 
// 1.输出 1 到 100
   echo {1..100}
// 2.由于输出的数字以空格分隔,所以用"+"替代空格
   echo {1..100} | tr ' ' '+'
// 3.计算内容
   echo {1..100} | tr ' ' '+' | bc

重定向

重定向是一个非常重要的功能,它允许用户将命令的输出或输入从默认位置(如屏幕或键盘)重定向到文件、另一个命令或其他设备。通过使用重定向符号,用户可以更灵活地控制命令的输入和输出。
重定向主要包括两种类型:输出重定向输入重定向。输出重定向又分为 标准覆盖输出重定向、 标准追加输出重定向、 错误覆盖输出重定向、 错误追加输出重定向。
( ' < ' ' > ' 表示流向)
输入 : 键盘 > 程序系统
输入重定向 : 默认数据流向某个程序,改变数据流向 ,将数据内容导入到其他命令
输出 : 程序系统 > 屏幕
输出重定向 : 默认数据流向屏幕,改变数据流向,导入其他命令或者文件
标准(覆盖/追加)输出重定向
// 以覆盖的形式,覆盖文件内原有内容
命令 >file 
命令 1>file

// 以追加的形式,在文件内原有内容基础上追加信息
命令 >>file   
命令 1>>file 
错误(覆盖/追加)输出重定向

前面加2,则代表只有错误的信息才可以被写到目标文件中,正确的信息不能被写到目标文件中。

命令 2>file  // 以覆盖的形式

命令 2>>file   // 以追加的形式
错误和正确同时存在

 将正确信息和错误信息同时保存

命令 >file 2>&1  // 以覆盖的形式,将命令的正确和错误输出结果都输出到⽂件中

命令 >>file 2>&1 // 以追加的形式,将命令的正确和错误输出结果都输出到⽂件中

将正确信息和错误信息分开保存

// 以覆盖的形式,将命令的正确输出结果输出到file_1⽂件中,错误信息输出到file_2
命令 >file_1 2>file_2

// 以追加的形式,将命令的正确输出结果输出到file_1⽂件中,错误信息输出到file_2
命令 >>file_1 2>>file_2

 不想将输出结果显示到屏幕上,又不想保存到文件中,删除

命令 >/dev/null
输入重定向

正常流向 : 键盘 > 命令

输入重定向 : 不再使用键盘作为命令来源 , 使用文件的内容作为命令的来源。

// 使⽤⽂件的内容作为命令的输⼊
   命令 < file 

// 从键盘读取数据,当遇到分界符 end 时停⽌
   命令 << end

// 将 file1 的内容作为输⼊到命令,将命令的返回结果重定向到 file2 中
   命令 <file1 >file2

补充一个比较有意思的

xargs:将文本内容转化为命令参数,通过这个命令,我们可以完成以下操作:

// 1.创建一些测试文件 file1.txt file2.txt file3.txt 后,给它们各自写一些内容

echo "This is file1" > file1.txt
echo "This is file2" > file2.txt
echo "This is file3" > file3.txt

// 2.创建 filenames.txt 后,存放三个文件名

echo -e "file1.txt\nfile2.txt\nfile3.txt" > filenames.txt

// 使用重定向将 filenames.txt 的内容传给 cat 命令 并使用 xargs 将文本内容转化为命令参数

xargs cat < filenames.txt

// 就会出现以下内容

This is file1
This is file2
This is file3

wc 统计内容

语法
wc [选项] [⽂件名]
常用选项
  • -w 统计字数(单词数),以空格或换行符为单词分隔符。

  • -c 统计字节数,在UTF-8编码⽂件中,这通常等同于字符数。

  • -m 统计字符数。

  • -l 统计行数。

  • -L 显示最长的一行的长度(字符数),相当于统计列数。

// 统计/bin 下⼀共有多少命令
   ls /bin | wc -l

alias 别名

别名 :你为命令指定的新名称。

原命令 :你希望别名代表的原始命令,可以包含选项和参数。

alias 命令只局限于本次登录时的操作 ,如果想要永久生效,需要进入用户的家目录下,

bash 初始化文件中定义。.bashrc中存放了永久生效的别名。

语法
alias [别名]=[原命令]   // '='两边无空格
用法
// 创建别名

alias del='rm -rf'   // 该别名将 del 定义为执行 rm -rf 命令,强制递归删除文件或目录

// 查看所有已定义的别名

alias

//查看特定别名

alias ls    // 查看 ls 的定义

// 取消别名

unalias del

// 删除所有别名

unalias -a

// 临时禁用别名

\ls    // ls 实际上为'ls --color=auto'的别名 这条命令临时取消了自动着色的功能

在定义别名时,尽量不要覆盖系统中常用命令的原始功能,否则可能引发混淆。

例如,避免直接将 alias rm='rm -f' 这样的命令覆盖原始 rm ,防止误操作。

绝对路径优先级高于别名高于系统变量

gzip tar 压缩归档

把许多文件合成一个文件叫做归档,归档本身不对文件进行压缩。压缩是对文件进行编码以减少其占用的存储空间。

压缩归档的过程就是先使用工具将文件打包成一个文件(归档),然后对归档文件进行压缩,生一个更小的压缩文件。

常用的压缩工具有:

gzip:生成 .gz 文件

bzip2:生成 .bz2 文件

xz:生成 .xz 文件

tar 归档

常用参数
  • -c :创建归档文件。

  • -x :解压归档文件。

  • -z :使用 gzip 压缩或解压。

  • -j :使用 bzip2 压缩或解压。

  • -v :显示详细操作过程。

  • -f :指定归档文件的名称。

  • -k :解压时保留原文件,不覆盖同名文件。

gzip 压缩
  • 参数解压:-d 

  • 命令解压:gunzip

// 压缩

gzip file

// 解压

gzip -d file.gz //参数解压

gunzip file.gz  //命令解压
bzip2 压缩
  • 参数解压:-d 

  • 命令解压:bunzip2

// 压缩

bzip2 file2  

// 解压

bzip2 -d file2   // 参数解压

bunzip2 file.bz  // 命令解压

两种解压方式需对应同类型的压缩文件,不能交叉使用!

应用
// 将所有文件归档,形成 all.tar 文件
tar -cf all.tar *

// 将全部格式为 .jpg 的文件归档并压缩

// 方法一
tar -cf picture.tar *.jpg
gzip picture.tar

// 方法二
tar -zcvf picture.tar.gz picture.tar

// 解压归档
// gzip压缩的文件
tar -zxf picture.tar.gz

// bzip2压缩的文件
tar -jxf 111.tar.bz2

// 万能解压
tar -xf 222.ar.gz
tar -xf 111.ar.bz2

VIM 编辑器

Vim(Vi IMproved)是 Linux 和 Unix 系统中常用的文本编辑器之一。

VIM 的工作模式

VIM 有三种主要的工作模式:

1. 命令模式/正常模式:

可以在该模式下进行光标移动、复制、粘贴、删除等操作。

进入 VIM 后首先是处于正常模式。

  • 输入"vim" 默认进入的模式,按 Esc 键退出命令模式。

  • x:删除当前光标所在的字符。

  • dd:删除当前行。

  • dw:删除当前单词。

  • u:撤销上⼀次的操作。

  • yy:复制当前行。

  • p:粘贴被复制的内容。

  • r:替换当前字符。

  • cw:替换当前单词(从光标位置到单词结尾)。

  • h、j、k、l:分别向左、下、上、右移动光标(等效于⽅向键)。

  • gg:移动到文件的第一行。

  • G:移动到文件的最后一行。

  • 0 :移动到行首。

  • $ :移动到行尾。

  • w:移动到下一个单词的开头。

  • b:移动到前⼀个单词的开头。

2. 插入模式/输入模式:

可以在该模式下输入文本,键盘的输入会直接插入到文件中。

  • 按键 i 或 a 从正常模式进入插入模式,按 i(在光标前插入)、 a(在光标后插入)、 o(在下一行插入)。按 Esc 键退出插入模式。

3. 末行模式:

在该模式下可以输入命令(如保存、退出、查找等)。

  • " : " 从正常模式进入末行模式。

  •  q :退出末行模式。

  • w :保存。

  • !:强制执行。

  • /  :查找文本。后跟查找内容,n 移动到下一个匹配项,N 移动到上一个匹配项。

  • s/old/new/ :替换文本。将 old 替换为 new。

可视模式
  • v:进入可视模式,用于选择文本块。
  • V:选择整行。
  • Ctrl + v:进入块选择模式(列选择模式),可选择文本的块区域。
  • 选择文本后,可以对其执行删除( d )、复制( y )、粘贴( p )等操作。
撤销:在正常模式下按 u
重做:在正常模式下按 Ctrl + r

总结完毕,感谢阅读~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值